Форум: "Основная";
Текущий архив: 2002.09.12;
Скачать: [xml.tar.bz2];
ВнизЧто то меня сегодня распирает вопросами .... :) Найти похожие ветки
← →
Begin (2002-09-01 06:51) [0]Можно внутри обработчика получить имя компонента, которому этот обработчик принадлежит ?
И ешшо... Есть ли в Delphi что то типа eval() ???
Сорри, если вопросов много и они сильно ламерские :)
← →
Song (2002-09-01 08:05) [1]Parent?
← →
Юрий Зотов (2002-09-01 10:57) [2]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.
← →
Криворукий (2002-09-01 11:14) [3]У меня большое подозрение, что человек хотел получить (Sender as TComponent).Name
(А может и просто Sender)
← →
Anatoly Podgoretsky (2002-09-01 11:14) [4]То есть ты написал обработчик и не знаешь где, тогда смотри перед begin сразу за словом procedure все что до точки это твое
← →
Polevi (2002-09-01 12:45) [5]да, в рантайме
← →
Begin (2002-09-01 18:17) [6]Большой спасиб, мастера !
(Sender as TComponent).Name сработало. Просто проблема была в следующем - на форме есть кнопка и панель, при запуске фокус принадлежит кнопке. Когда я писал
procedure TForm1.Panel1Click(Sender: TObject);
]
begin
ShowMessage(ActiveControl.Name);
end;
выдавалось Button1, хотя обработчик вызывался, принадлежащий панели .... :))) А вот (Sender as TComponent).Name работает, как надо ... :)
Спасиб еще раз :)
← →
Юрий Зотов (2002-09-01 19:44) [7]> хотя обработчик вызывался, принадлежащий панели
Увы... Вы были невнимательны... Не панели, а форме.
Ведь написано же:
TForm1 .Panel1Click
← →
Begin (2002-09-01 20:05) [8]Ааааааа ..... Блин, пойду глаза проверять .... :) Спасибо всем !
← →
Юрий Зотов (2002-09-01 20:20) [9]Обработчик ПРИНАДЛЕЖИТ форме. Это часть кода TForm1.
А вот ВЫЗЫВАЕТСЯ он Sender"ом. Хоть панелью, хоть кем угодно еще. Даже nil передавать можно.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.09.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c