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

Вниз

События для TLabel   Найти похожие ветки 

 
DJ Vano   (2003-06-10 01:12) [0]

Такой вопрос:
Нужно чтобы при наведении на метку курсора мышки менялся цвет шрифта(это просто), а при отведении становился старым или снова менял цвет на другой.....(а вот с этим проблема)
Как можно это реализовать на Делфи 5 (В Делфи 7 это просто - событие OnMouseLeave)....
Желательно поподробнее....
Заранее спасибо


 
Нуу   (2003-06-10 03:15) [1]

Лови сообщение CM_MouseLeave.
procedure CMMouseLeave(var Mess: TMessage); message CM_MouseLeave;/


 
drin ©   (2003-06-10 03:18) [2]

Создать свой компонент-наследник TLabel:


unit ColorLabel;

interface

uses
Windows, Messages, Graphics, Classes, Controls, StdCtrls;

type
TColorLabel = class(TLabel)
private
FOldColor, FMouseOverColor: TColor;
protected
procedure CMMOUSEENTER(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMOUSELEAVE(var Message: TMessage); message CM_MOUSELEAVE;
public
constructor Create(AOwner: TComponent); override;
published
property OnMouseOverColor: TColor read FMouseOverColor write FMouseOverColor default clBlack;
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents("Samples", [TColorLabel]);
end;

constructor TColorLabel.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FOldColor:=Self.Font.Color;
end;

procedure TColorLabel.CMMOUSEENTER(var Message: TMessage);
begin
Self.Font.Color:=FMouseOverColor;
end;

procedure TColorLabel.CMMOUSELEAVE(var Message: TMessage);
begin
Self.Font.Color:=FOldColor;
end;

end.


 
Спрашивающий   (2003-06-10 03:23) [3]

Пример для панели его можно причесать к чему угодно и в частности для Лабел
................................
private
procedure NewProc(var Msg: TMessage);
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
Old: TWndMethod;

implementation

{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
Old := Panel2.WindowProc;
Panel2.WindowProc := NewProc;
end;

procedure TForm1.NewProc(var Msg: TMessage);
begin
case Msg.Msg of
CM_MOUSELEAVE:
begin
Panel2.Font.Color:=clNavy;//Вот здесь твои изменеия
Panel2.Font.Style:=[];
end;
CM_MOUSEENTER:
begin
Panel2.Font.Color:=clBlue;//Вот здесь твои изменеия
Panel2.Font.Style:=[fsBold,fsUnderline];
end;
end;
Old(Msg);
end;



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

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

Наверх




Память: 0.47 MB
Время: 0.049 c
14-84575
Кен
2003-06-06 02:08
2003.06.26
В Windows найдены секретные API


14-84563
Navi
2003-06-07 07:20
2003.06.26
Психологический тест


3-83885
laao
2003-06-03 00:26
2003.06.26
как убрать хвостовые пробелы в значениях строковых полей TIBTable


3-83995
Sevish
2003-05-30 14:00
2003.06.26
Ошибка конвертации между кодировками!


14-84718
Дмитрий К.К.
2003-06-05 06:23
2003.06.26
Именинники 5 июня