Главная страница
    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.012 c
14-1132506308
Pazitron_Brain
2005-11-20 20:05
2005.12.18
Нужно поговорить с врачом.


2-1133454377
stef
2005-12-01 19:26
2005.12.18
Вопрос по image


2-1133353696
MasterVovan
2005-11-30 15:28
2005.12.18
Отслеживание события из функции.


2-1133424502
Харько
2005-12-01 11:08
2005.12.18
Вопрос по пакетам


2-1133380429
неважно
2005-11-30 22:53
2005.12.18
SizeOf





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский