Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Можно ли обратиться к свойствам компонента через форму? [D5, 95/98]


Pil ©   (2005-12-01 16:11:00) 

Уважаемые мастера!
Допустим на форме несколько компонентов Edit(edtA, edtB, edtC). Мне нужно написать универсальную функцию для них, которая бы проверяла введенный текст.
Как можно обратиться к свойству Text активного компонента Edit через форму, на которой он расположен (чтобы не писать edtA.Text, edtB.Text, edtC.Text)? Возможно ли такое?


Pil   (2005-12-01 17:15:00) [1]

Ega23, спасибо большое, теперь все прояснилось! ))


Pil   (2005-12-01 17:14:00) [2]

Господа, внимание! Вопрос состоит не в том, когдавызывается обработчик, а какобратиться к свойству Text активного Edit!

procedure TForm1.edtFromExit(Sender: TObject);
Var S: string;
begin
   S := Sender.Text;// Undeclared identifier: 'Text'
end;


Ega23   (2005-12-01 17:13:00) [3]


> procedure TForm1.edtFromExit(Sender: TObject);
> Var S: string;
> begin
>    S := Sender.Text;//здесь ошибка Undeclared identifier:
>  'Text'
> end;
>


if (Sender is TEdit) then s:=TEdit(Sender).Text;


Pil   (2005-12-01 17:09:00) [4]


> У TEdit есть событие OnExit
> Там единственный параметр - Sender. Это тот объект, который
> вызвал обработчик, т.е. твой Edit. Если одну и ту же процедуру
> повесить на OnExit всех Edit-ов, получишь требуемый результат


Хорошо, пусть будет так:
procedure TForm1.edtFromExit(Sender: TObject);
Var S: string;
begin
   S := Sender.Text;// здесь ошибка Undeclared identifier: 'Text'
end;


Плохиш   (2005-12-01 17:06:00) [5]


> Pil ©   (01.12.05 16:47) [5]
> нужен именно активный контрол, т.к. проверка осуществляется
> перед выходом из Эдита.

TEdit.OnExit + F1


Vlad   (2005-12-01 17:03:00) [6]

У TEdit есть событие OnExit
Там единственный параметр - Sender. Это тот объект, который вызвал обработчик, т.е. твой Edit. Если одну и ту же процедуру повесить на OnExit всех Edit-ов, получишь требуемый результат


Pil   (2005-12-01 16:47:00) [7]


> ты уверен что тебе нужен именно активный контрол?
> Или тебе нужно в цикле перебрать все Editы на форме и проверить
> их текст?


нужен именно активный контрол, т.к. проверка осуществляется перед выходом из Эдита. Цикл тут не подходит.


Vlad   (2005-12-01 16:41:00) [8]

ты уверен что тебе нужен именно активный контрол?
Или тебе нужно в цикле перебрать все Editы на форме и проверить их текст?


Pil   (2005-12-01 16:32:00) [9]


> TEdit(FindComponent( Твой эдит)).Text


Что значит "мой эдит"? Вы имеете ввиду:
TEdit(FindComponent(Form1.ActiveControl.Name)).Text?

FindComponent требует параметр типа строка, а через ActiveControl.Name типа TComponentName.


begin...end   (2005-12-01 16:16:00) [10]

ActiveControl


stone   (2005-12-01 16:14:00) [11]

TEdit(FindComponent(Твой эдит)).Text


Наверх

Титульная страница Поиск, карта сайта Написать письмо