Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.11.04;
Скачать: [xml.tar.bz2];

Вниз

Подскажите пожалуйста, возможно ли неявно вызвать процедуру   Найти похожие ветки 

 
Al500   (2007-10-10 08:29) [0]

Например, имеется процедура: Label1Click(Sender);, возможно ли ее вызвать зная, например, имя компонента - "Label1".
(FindComponent("Label1") as TLabel)Click(Sender) - не проходит.
(FindComponent("Label1") as TLabel).OnClick(Sender) - не устраивает.
Спасибо.


 
evvcom ©   (2007-10-10 08:54) [1]


> as TLabel)Click(Sender) - не проходит.

а точку перед Click поставить не пробовал?


 
Ega23 ©   (2007-10-10 08:56) [2]


> (FindComponent("Label1") as TLabel).OnClick(Sender) - не
> устраивает.


Чем?


> (FindComponent("Label1") as TLabel)Click(Sender) - не проходит.


А чем это от второго варианта отличается?


 
Ping   (2007-10-10 10:01) [3]

Вариант 1:

var
 L: TComponent;
begin
 L := FindComponent("Label1");
 if (L <> nil) and (L is TLabel) and Assigned(L.OnClick) then
   TLabel(L).OnClick(L);


Вариант 2:

var
 L: TComponent;
type
 TLocalLabel = class(TLabel);
begin
 L := FindComponent("Label1");
 if (L <> nil) and (L is TLabel) then
   TLocalLabel(L).Click;


Можно еще вариант 3 - сообщениями. Но это, мне кажется, лишнее...


 
ЮЮ ©   (2007-10-10 12:22) [4]

Из вопроса непонятно, почему нельзя просто
 Label1Click(Label1);
или автору действительно откуда-то известно только строковое представление имени компонента?


 
Германн ©   (2007-10-10 13:08) [5]


> возможно ли ее вызвать зная, например, имя компонента -
> "Label1".

Стремление использовать имя компонента = = неумение пользоваться свойством Tag и/или параметром Sender.


 
Al500   (2007-10-10 13:09) [6]

To evvcom, ega23:
нет такой ф-ии для Label, kak Click. При событии OnClick происходит закрытие компонетов TPanel, на которых расположены Label.
То ЮЮ: много компонентов Label, нужно для того, чтобы не описывать нажатие клавиш для каждой Label и возникновения события OnClick. У каждого Label - свое OnClick.


 
Al500   (2007-10-10 13:11) [7]

То Герман:
Вопрос был о вызове процедуры, имя компонента здесь ни при чем.


 
Al500   (2007-10-10 13:23) [8]

То Ping:
В обоих случаях происходит закритие родительского для Label компонента Panel.


 
Германн ©   (2007-10-10 13:27) [9]


> Al500   (10.10.07 13:11) [7]

Ну а мышкой-то ты кликаешь? Или хочешь только лишь симулировать клик?


 
Ping   (2007-10-10 13:39) [10]

В обоих случаях происходит закритие родительского для Label компонента Panel.

Это такой баг? Или фича? Или трава? Короче... ты ерундой занимаешься.


 
Al500   (2007-10-10 15:04) [11]

SORRY, ТРАВА, разобрался.
Спасибо всем!


 
Плохиш ©   (2007-10-10 19:01) [12]


> Al500   (10.10.07 13:09) [6]
> To evvcom, ega23:
> нет такой ф-ии для Label, kak Click.

Зато у TControl есть.

> много компонентов Label
...
> У каждого Label - свое OnClick.

Дурость какая-то...


 
evvcom ©   (2007-10-11 09:09) [13]


> Al500   (10.10.07 13:09) [6]
> To evvcom, ega23:
> нет такой ф-ии для Label, kak Click.

Конечно, нет. Это ж не функция, а метод-процедура. Да, я не проверял видимость метода в TLabel, тебе ж тоже надо дать хоть чуточку подумать. А Click для TLabel определен, просто немного спрятан, в секции protected, но добраться до него имеется возможность. См. вариант 2 из [3].

> То ЮЮ: много компонентов Label, нужно для того, чтобы не
> описывать нажатие клавиш для каждой Label и возникновения
> события OnClick. У каждого Label - свое OnClick.

Не понял. Если определил OnClick для каждого свое, то это уже есть "описание нажатия клавиш для каждой TLabel". В этом случае тебе опять же подойдет любой из вариантов в [3]

> SORRY, ТРАВА, разобрался.

Ты прежде чем на форуме слово молвить, от травы отходи :)



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.11.04;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.081 c
2-1192121694
alikon1
2007-10-11 20:54
2007.11.04
SQL запрос требует ненужные поля


15-1190702614
ок
2007-09-25 10:43
2007.11.04
посоветуйте хорошие книги для изучения java se


2-1192367636
WooW
2007-10-14 17:13
2007.11.04
RemoveDir


2-1192018494
@!!ex
2007-10-10 16:14
2007.11.04
Указатель на самого себя.


15-1190924869
Petr V. Abramov
2007-09-28 00:27
2007.11.04
OEM XP





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский