Главная страница
    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.045 c
3-1182663843
celeron
2007-06-24 09:44
2007.11.04
Чтение типа Binary из MS SQL Server 2000


2-1192106025
Ega23
2007-10-11 16:33
2007.11.04
Поясните про TTreeNode.StateIndex


15-1190289015
de.
2007-09-20 15:50
2007.11.04
Кто программирует под Linux? Отзовитесь !!!


11-1175375566
Nsp
2007-04-01 01:12
2007.11.04
How to drag Form или как таскать форму


15-1191433347
ке
2007-10-03 21:42
2007.11.04
про формы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский