Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.30;
Скачать: CL | DM;

Вниз

Изменение цвета Label или StaticText   Найти похожие ветки 

 
VinRaider ©   (2003-01-16 23:37) [0]

Как сделать так, чтобы при наведении курсора мышки на Label или StaticText он изменял цвет?


 
Олег   (2003-01-16 23:45) [1]

на событие onMouseEnter Label или StaticText пишешь Label1.Font.Color := clBlue;

а на событие onMouseLeave
Label1.Font.Color := clBlack;

при наведении мыской на этот Лабел, текст будет становится цинего цвета.


 
xn0bys ©   (2003-01-17 08:16) [2]

Если не поможет обрабатывай WM_NCHITTEST.


 
VinRaider ©   (2003-01-20 22:47) [3]

Собственно говоря я не понял куда собачить onMouseEnter. Если это
событие Label, то оно должно быть в списке возможных событий(или нет)?
Насчет WM_NCHITTEST - его куда? В события приложения? Если да, то по какому действию. Заранее спасибо.


 
Романов Р.В. ©   (2003-01-20 23:33) [4]

Посмотри для примера. Можно и не создавать новый компонент, а подменить WindowProc у имеющегося.

Юрий Зотов © (25.09.02 20:56)
1. В обработчиках сообщений нет вызыовов inherited. Подозркваю, что дело может быть в этом (разорвана "родная" цепочка передачи сообшений Parent"ам, что нарушает механизмы VCL).

2. Если делать грамотно, то нужно вводить методы диспетчеризации. Они позволяют наследникам класса безопасно встроить свой код в цепочку обработки события.

TMyImage = class(TImage)
private
FOnMouseEnter: TNotifyEvent;
FOnMouseLeave: TNotifyEvent;
procedure CMMouseEnter(var Msg: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Msg: TMessage); message CM_MOUSELEAVE;
protected
procedure DoMouseEnter; dynamic;
procedure DoMouseLeave; dynamic;
published
property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
end;

procedure TMyImage.CMMouseEnter(var Msg: TMessage);
begin
inheried;
DoMouseEnter
end;

procedure TMyImage.CMMouseLeave(var Msg: TMessage);
begin
inherited;
DoMouseLeave
end;

procedure TMyImage.DoMouseEnter;
begin
if Assigned(FOnMouseEnter) then FOnMouseEnter(Self)
end;

procedure TMyImage.DoMouseLeave;
begin
if Assigned(FOnMouseLeave) then FOnMouseLeave(Self)
end;


 
VinRaider ©   (2003-01-21 22:21) [5]

Романов Р.В., пью пиво за то, чтобы Коннектий был к тебе благосклонен!


 
Романов Р.В. ©   (2003-01-21 22:28) [6]


> VinRaider © (21.01.03 22:21)


Юрий Зотов © (25.09.02 20:56)


 
VinRaider ©   (2003-01-21 22:58) [7]


> Романов Р.В. © (21.01.03 22:28)

И за него - тоже!


 
VinRaider ©   (2003-01-22 22:40) [8]

Пытаюсь сделать тоже самое используя TDBText. В момент нсталяции
возникает ошибка: Error: Illegel character in input file: ""($A0)
на позициях: Private: Cmmouseleave..., Published: Onmouseleave...
Что неправильно и как его можно сделать? Заранее спасибо.


 
Anatoly Podgoretsky ©   (2003-01-22 22:54) [9]

Не надо копировать из страницы



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

Текущий архив: 2003.01.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.025 c
6-96930
mdaemon
2002-12-04 13:40
2003.01.30
Как зделать чтобы прога исполнялась в определённое время?


14-96953
cc43294
2003-01-12 14:27
2003.01.30
Почта


8-96892
Vadim SA
2002-10-10 13:17
2003.01.30
И снова ICO


4-97078
valmont
2002-12-15 15:51
2003.01.30
как получиь handle окна, кнопки и т.д.


7-97044
lavish
2002-11-17 20:26
2003.01.30
Виртуальный диск