Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   D2010: TRadioButton.Font.Color (https://www.delphipraxis.net/160518-d2010-tradiobutton-font-color.html)

hoika 17. Mai 2011 11:25

D2010: TRadioButton.Font.Color
 
Hallo #,

nach durchlese einiger Threads muss ich feststellen,
dass es keine Standard-Möglichkeit gibt, bei einem TRadioButton dir Farbe zu ändern.

Ein Ansatz wäre hier (CN_CTLCOLORSTATIC abfangen).

http://stackoverflow.com/questions/2...be-transparent

Kennt jemand etwas einfacheres ?

Danke


Heiko

himitsu 17. Mai 2011 11:32

AW: D2010: TRadioButton.Font.Color
 
Den Desktopmanager im Taskmanager abschießen und den XP/Vista/7-Style abschalten ... schon kannst'e das wieder ganz einfach ändern. :stupid:

Eine Änderung dieser Farbe ist wohl standardmäßig nicht mehr vorgesehn.

Satty67 17. Mai 2011 12:59

AW: D2010: TRadioButton.Font.Color
 
Selber basteln. Einfach von Checkbox ableiten und ein Label dazugeben. LabelClick leitet man auf die Checkbox um und CheckBox.Caption auf den Label.

(bzw. TRadioButton, weis nicht wo ich Checkbox gelesen habe :gruebel: )
Delphi-Quellcode:
type
  TRadioButtonLabel = class(TRadioButton)
  private
    FLabel : TLabel;
    procedure LabelClickHandler(Sender: TObject);
  public
    constructor Create(AOwner: TComponent); override;
  end;

implementation

constructor TRadioButtonLabel.Create(AOwner: TComponent);
const
  RadioButtonWidth = 20; // über Systemmetrics ermitteln
begin
  inherited;
  Width := RadioButtonWidth;
  FLabel := TLabel.Create(AOwner);
  FLabel.Top := Top +2;
  FLabel.Left := Left + RadioButtonWidth;
  FLabel.Caption := Caption;
  FLabel.OnClick := LabelClickHandler;
  Caption := '';

  if AOwner is TWinControl then
  begin
    Parent := TWinControl(AOwner);
    FLabel.Parent := TWinControl(AOwner);
  end;
end;

procedure TRadioButtonLabel.LabelClickHandler(Sender: TObject);
begin
  Perform(WM_LBUTTONDOWN, 0,0);
  Perform(WM_LBUTTONUP, 0,0);
end;
Geht schon, Propertys für die Label-Optik war ich jetzt zu faul.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz