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

Вниз

Назначить событие всем компонентам   Найти похожие ветки 

 
Krants   (2006-11-27 14:00) [0]

Имеется группа Label-ов, разбросаная по формам, им всем нужно переназначить событие OnMouseDown. Сам код события находиться в отдельном модуле(библиотеке), к примеру

procedure LabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  (Sender as TLabel).Font.Style:=[fsBold];
end;


при попытке задать событие
Label1.OnMouseDown:=MyUnit1.LabelMouseDown;

Delphi ругается "incompatible types..."

Можно ли как-нибудь зарегистрировать процедуру как событие?


 
alex810 ©   (2006-11-27 14:10) [1]

В инспекторе объектов в кладке Events всем лайбелам назначаешь одну и туже процедуру обработки события


 
Krants   (2006-11-27 14:14) [2]


> alex810

нужно програмно. реально таких событий несколько и они должны добавлятся и изменяются в ран-тайме...


 
Palladin ©   (2006-11-27 14:15) [3]


> [1] alex810 ©

Вопрос читал?


 
umbra ©   (2006-11-27 14:15) [4]

Метод класса - это не простая процедура. В него неявно передается указатель на класс, в котором он вызывается. Есть несколько способов преобразовать процедуру в метод. Самый простой - объявить ее методом какого-нибудь класса.

THandlerContainer = class(TObject)
public
 procedure LabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
end;

{...............................}
implementation

procedure THandlerContainer.LabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
 (Sender as TLabel).Font.Style:=[fsBold];
end;


 
alex810 ©   (2006-11-27 14:20) [5]

Извеняюсь не дочитал


 
Krants   (2006-11-27 14:36) [6]


> umbra

хороший вариант, спасибо, сгодится.


 
Leonid Troyanovsky ©   (2006-11-27 17:50) [7]


> Krants   (27.11.06 14:36) [6]

> хороший вариант, спасибо, сгодится.

Вариант хороший, но я б не рекомендовал его для
широкого применения, скажем, в библиотеке.

--
Regards, LVT.

PS Т.е., надо говорить так: спасибо, испытаю и доложу.



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

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

Наверх




Память: 0.46 MB
Время: 0.042 c
2-1164893329
aht
2006-11-30 16:28
2006.12.17
в общем, терзаюсь тожа, но по другому вопросу :-)


15-1164629045
Cyrax
2006-11-27 15:04
2006.12.17
Какой антивирус наиболее удобен ?


15-1164613554
vidiv
2006-11-27 10:45
2006.12.17
HTML - растянуть по вертикали.


2-1164738540
Hollander
2006-11-28 21:29
2006.12.17
Не могу прочитать файл ;-)


3-1160293193
AntiUser
2006-10-08 11:39
2006.12.17
В тригере Before Update узнать имя измененного field а





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