Главная страница
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.021 c
7-35933
Sammary
2002-07-01 17:17
2002.09.12
Ошибка при копировании


3-35616
Vlad2
2002-08-23 09:02
2002.09.12
работа с TADOConnection


1-35664
Nebuchadnezzar
2002-08-30 15:25
2002.09.12
TActionManager


1-35638
SomeQ
2002-09-01 10:08
2002.09.12
FindNext in RichEdit


3-35620
SERY
2002-08-22 20:20
2002.09.12
Защита базы данных