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

Вниз

События для 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.031 c
3-83940
Alex_x
2003-05-28 11:41
2003.06.26
Вопрос по TField


14-84647
NighCold
2003-06-10 11:15
2003.06.26
Подскажите....


14-84653
Думкин
2003-06-10 11:59
2003.06.26
Паттерны ошибок


1-84412
AbrosimovA
2003-06-06 16:54
2003.06.26
Выполнение процедуры в потоке


1-84167
Кот
2003-06-08 12:58
2003.06.26
картинки





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