|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.07.2007, 12:00 | #1 |
Форумчанин
Регистрация: 26.04.2007
Сообщений: 440
|
имя компонента и его отслеживане
Привет всем!!!
Как узнать имя поледнего компонента над которым мы произвели некоторое действие- например нажали кнопку? Я сделал такой код : label1.Caption:=application.MainForm.ActiveControl. Name; Правилен ли он? Если да то почему этот код не работает для speedbutton? С уважением, bill. |
23.07.2007, 15:42 | #2 |
;-)
Пользователь
Регистрация: 18.07.2007
Сообщений: 69
|
ActiveControl и тот, с которым было последнее действие - не одно и то же.
А для SpeedButton не работает, потому что она не может иметь фокус, т.к. наследуется от TGraphicControl и не имеет собственного окна. |
26.07.2007, 11:25 | #3 |
Форумчанин
Регистрация: 26.04.2007
Сообщений: 440
|
ладно. Ну тогда как узнать имя последнего компонента над которым мы произвели какое то действие?
|
26.07.2007, 12:38 | #4 |
;-)
Пользователь
Регистрация: 18.07.2007
Сообщений: 69
|
знаю только один способ - завести переменную и в коде каждого обработчика изменять ее на Sender. но если же обработчика нету, например, какого то checkbox1click, при щелчке на checkbox1, он не запишется в переменную.
|
27.07.2007, 10:33 | #5 |
Форумчанин
Регистрация: 26.04.2007
Сообщений: 440
|
Т.е переменная насколько понял типа tobject?
|
27.07.2007, 11:15 | #6 |
;-)
Пользователь
Регистрация: 18.07.2007
Сообщений: 69
|
TControl. приводить ее к TControl.
|
28.07.2007, 18:35 | #7 | |
Форумчанин
Регистрация: 26.04.2007
Сообщений: 440
|
Ок. Я сделал такой код(привожу отрывок)-
Цитата:
Как это сделать все таки через tnotifyevent(если мозможно конечно)? Надо просто проследить какая кнопка была нажата(по ней активируется некое действие). У них единое свойство parent. И повторюсь узнать имя кнопки. |
|
02.08.2007, 12:29 | #8 | |
Форумчанин
Регистрация: 26.04.2007
Сообщений: 440
|
Я собстно пересмотрел свою прогу и пришел к выводу что этот код мне подходит . Но возникла новая, тесно связанная с предыдущей.
Цитата:
|
|
02.08.2007, 13:18 | #9 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Не проблема :
Вот в таком духе [I]//********* FOR ****************** for i :=0 to Form1.ComponentCount-1 do begin //caption:=Application.Components[i].Name; if (form1.Components[i].ClassType=TButton) and (form1.Components[i].name=st_name_My) then tbutton(form1.Components).Left:=0; end; //******* END FOR ****************{}
I'm learning to live...
|
05.09.2007, 21:26 | #10 | |
Старожил
Регистрация: 06.08.2007
Сообщений: 2,183
|
Цитата:
for i :=0 to Form1.ComponentCount-1 do begin [I] //caption:=Application.Components.Name; if (form1.Components[i] is TButton) and (form1.Components[i].name = st_name_My) then TButton(form1.Components[I]).Left:=0; end; |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Имя компонента... | prizrak1390 | Общие вопросы Delphi | 11 | 17.04.2008 14:47 |
Прозрачность компонента | JoanM | Общие вопросы Delphi | 14 | 16.02.2008 15:40 |
Нужны два компонента | delphin100 | Компоненты Delphi | 2 | 13.01.2008 01:54 |
Регистрация компонента | Zonder | Компоненты Delphi | 0 | 06.12.2006 18:17 |