![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать какой обьет выделен.
JIurasdfsdf © (2006-02-07 21:33:00)Есть форма и на ней находится несколько обьектов и одна процедура, обрабатывающая щелчок на них. Как мне узнать какой из обьектов выбран (например кнопка или текстовое поле), и как есть к примеру выбарана именно кнопка, воспользоватьс свойствами, присущими именно кнопе (т.е. которые на обьект текстового поля не распространяются)?
evvcom (2006-02-08 08:51:00) [1]
> if Sender is TComboBox then
> with Sender as TComboBox then
если тип объекта уже проверил ( is), то приведение через asлишнее. Оптимальнее так TComboBox(Sender). Через as, имхо, есть смысл приводить, если по логике работы программы Sender может быть только к примеру TComboBox, но ты допускаешь, что кто-то (может даже ты сам) возможно это когда-нибудь забудешь и не учтешь. В этом случае разработчик должен словить exception, и поправить этот момент.
Джо (2006-02-07 21:35:00) [2]> Как мне узнать какой из обьектов выбран (например кнопка
> или текстовое поле),
ActiveControl.
> и как есть к примеру выбарана именно кнопка, воспользоватьс
> свойствами, присущими именно кнопе (т.е. которые на обьект
> текстового поля не распространяются)?
Используй операторisдля проверки класса. Или конкретизируй вопросю
kblc (2006-02-07 21:35:00) [3]Используй Sender - это и есть указатель на то, что именно должно обрабатываться.
if Sender is TComboBox then
with Sender as TComboBox then
begin
end;