Главная страница
    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.48 MB
Время: 0.049 c
15-1190822043
Dark Lord
2007-09-26 19:54
2007.11.04
Недостаточно памяти для обработки команды


2-1192022237
Саня
2007-10-10 17:17
2007.11.04
помогите вередать выборку в генератор отчетов Rave


11-1175322891
Trible
2007-03-31 10:34
2007.11.04
Содержимое RichEdit


2-1191938001
em240
2007-10-09 17:53
2007.11.04
Возможно ли работать с DTS MSSQL 2000 как COM?


6-1172822574
Wahnsinng
2007-03-02 11:02
2007.11.04
Каким образом вытащить информацию из frame





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