![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Что то меня сегодня распирает вопросами .... :)
Begin © (2002-09-01 06:51:00)Можно внутри обработчика получить имя компонента, которому этот обработчик принадлежит ?
И ешшо... Есть ли в Delphi что то типа eval() ???
Сорри, если вопросов много и они сильно ламерские :)
Юрий Зотов (2002-09-01 20:20:00) [1]Обработчик ПРИНАДЛЕЖИТ форме. Это часть кода TForm1.
А вот ВЫЗЫВАЕТСЯ он Sender"ом. Хоть панелью, хоть кем угодно еще. Даже nil передавать можно.
Begin (2002-09-01 20:05:00) [2]Ааааааа ..... Блин, пойду глаза проверять .... :) Спасибо всем !
Юрий Зотов (2002-09-01 19:44:00) [3]> хотя обработчик вызывался, принадлежащий панели
Увы... Вы были невнимательны... Не панели, а форме.
Ведь написано же:
TForm1 .Panel1Click
Begin (2002-09-01 18:17:00) [4]Большой спасиб, мастера !
(Sender as TComponent).Name сработало. Просто проблема была в следующем - на форме есть кнопка и панель, при запуске фокус принадлежит кнопке. Когда я писал
procedure TForm1.Panel1Click(Sender: TObject);]
begin
ShowMessage(ActiveControl.Name);
end;
выдавалось Button1, хотя обработчик вызывался, принадлежащий панели .... :))) А вот (Sender as TComponent).Name работает, как надо ... :)
Спасиб еще раз :)
Polevi (2002-09-01 12:45:00) [5]да, в рантайме
Криворукий (2002-09-01 11:14:00) [6]У меня большое подозрение, что человек хотел получить (Sender as TComponent).Name
(А может и просто Sender)
Anatoly Podgoretsky (2002-09-01 11:14:00) [7]То есть ты написал обработчик и не знаешь где, тогда смотри перед begin сразу за словом procedure все что до точки это твое
Юрий Зотов (2002-09-01 10:57:00) [8]type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
...
EditN: TEdit;
procedure EditChange(Sender: TObject);
end;
1. Предположим, метод EditChange назначен в качестве обработчика события Edit1.OnChange (только для Edit1). Можно ли внутри него получить имя компонента, которому этот обработчик принадлежит?
Ответ: можно. Он принадлежит форме. Поэтому - просто Name.
2. Теперь предположим, что один и тот же метод EditChange назначен в качестве обработчика события OnChange для всех N Edit"ов. Можно ли внутри него получить имя компонента, которому этот обработчик принадлежит?
Ответ: снова можно. Он по-прежнему принадлежит форме. Поэтому снова - просто Name.
Song (2002-09-01 08:05:00) [9]Parent?