Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.18;
Скачать: CL | DM;

Вниз

Можно ли обратиться к свойствам компонента через форму?   Найти похожие ветки 

 
Pil ©   (2005-12-01 16:11) [0]

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


 
stone ©   (2005-12-01 16:14) [1]

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


 
begin...end ©   (2005-12-01 16:16) [2]

ActiveControl


 
Pil ©   (2005-12-01 16:32) [3]


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


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

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


 
Vlad ©   (2005-12-01 16:41) [4]

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


 
Pil ©   (2005-12-01 16:47) [5]


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


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


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

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


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


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

TEdit.OnExit + F1


 
Pil ©   (2005-12-01 17:09) [8]


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


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


 
Ega23 ©   (2005-12-01 17:13) [9]


> 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:14) [10]

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

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


 
Pil ©   (2005-12-01 17:15) [11]

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



Страницы: 1 вся ветка

Текущий архив: 2005.12.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.034 c
14-1132694308
Богдан1024
2005-11-23 00:18
2005.12.18
Файлы *.HXI


6-1125919503
ДимДимыч
2005-09-05 15:25
2005.12.18
TIdTCPServer &amp; TIdTCPClient <OnDisconnect>


8-1121256964
webpauk
2005-07-13 16:16
2005.12.18
Рисование


2-1133772234
Term
2005-12-05 11:43
2005.12.18
Потоки


14-1132905454
wHammer
2005-11-25 10:57
2005.12.18
Скомпилированный .exe файл