Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: TCheckBox.Color über WM_CTLCOLOR

  Alt 2. Aug 2016, 08:28
Hallo,
ja daran lag es u.a.
vielleicht braucht ja jemand auch die Lösung unten.

Der Bereichsfehler kam daher, dass ich immer RGB-Werte erzeugen wollte,
das SetTextColor klappt aber auch mit den TColor-Werten direkt.

Delphi-Quellcode:
unit Unit101;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm101 = class(TForm)
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
    procedure WMCTLColor(var msg: TWMCtlColorStatic); message WM_CTLCOLORSTATIC;
  public
    { Public-Deklarationen }
  end;

var
  Form101: TForm101;

implementation

{$R *.dfm}

uses
  UxTheme;

{ TForm101 }

procedure TForm101.FormCreate(Sender: TObject);
begin
  SetWindowTheme(CheckBox2.Handle, '', '');
  // SetWindowTheme(CheckBox2.Handle, nil, nil); ist falsch !
end;

procedure TForm101.WMCTLColor(var msg: TWMCtlColorStatic);
begin
  inherited ;

  if msg.ChildWnd=CheckBox2.Handle then
  begin
    SetTextColor(Msg.ChildDC,clRed);
  end;
end;

end.
Heiko
  Mit Zitat antworten Zitat