Auteur

Origineel door D7EE, in deze thread

Omschrijving

Procedure waarmee je de font color van een TBitBtn of een TSpeedButton** kunt
wijzigen met behulp van de MouseEnter en MouseLeave Message.

Code
Hieronder een volledige unit welke werkt alszijnde voorbeeld, even een
TBitBtn of een TSpeedButton op het Form zetten en klaar ben je.


Code:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Graphics, Forms,
  Buttons, Controls, Classes, StdCtrls;

type
  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
  private
    procedure CMMouseEnter(var Msg: TMessage); message CM_MOUSEENTER;
    procedure CMMouseLeave(var Msg: TMessage); message CM_MOUSELEAVE;
    procedure UpdateButton(Param: lParam; fActivate: Boolean);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.CMMouseEnter(var Msg: TMessage);
begin
  inherited;
  UpdateButton(Msg.lParam, True);
end;

procedure TForm1.CMMouseLeave(var Msg: TMessage);
begin
  inherited;
  UpdateButton(Msg.lParam, False);
end;

procedure TForm1.UpdateButton(Param: LParam; fActivate: Boolean);
begin
  if not (TObject(Param) is TBitBtn) then
    Exit;

  with TBitBtn(Param).Font do
  begin
    if fActivate then
      Color := clRed
    else
      Color := clBtnText;
  end;
end;

end.
** indien je in de code wel de TBitBtn class aanpast.