Главная страница
    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.46 MB
Время: 0.013 c
3-1130924869
ZaW
2005-11-02 12:47
2005.12.18
Это что еще за ошибка такая?


2-1133445304
oleggar
2005-12-01 16:55
2005.12.18
word8


2-1133761215
Nemiroff
2005-12-05 08:40
2005.12.18
Размеры окна при разворачивании


6-1118759871
Mac333
2005-06-14 18:37
2005.12.18
IdSMTP и TIdAttachment -> Content-Type: text/html -> text/plain ?


8-1121170462
nstur
2005-07-12 16:14
2005.12.18
Выполнить Stretch jpg файла





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский