Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.12;
Скачать: CL | DM;

Вниз

Что то меня сегодня распирает вопросами .... :)   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
3-35550
AndbyOne
2002-08-21 15:56
2002.09.12
В триггере в поле DATE вставить текущую дату


6-35831
poiuytrewq
2002-06-06 21:24
2002.09.12
how to get all host names in local network


1-35814
WASYA
2002-09-01 14:21
2002.09.12
StringGrid


14-35916
Malder
2002-08-19 15:28
2002.09.12
Эпидемия клеза


3-35533
battar
2002-07-26 11:20
2002.09.12
Как сделать сортировку в Quantum Grid