![]() |
[DevExpress-HowTo] TcxButton mit beliebigem Inhalt
Um einen geskinnten cxButton mit beliebigen Inhalt (z.B. mehrzeilig mit unterschiedlichen Fonts und Images links und rechts) zu versehen, sind diese Schritte nötig:
Der Text wird in einer eigenen Subklasse mittels einer virtuellen Methode gezeichnet. Durch das Ableiten kann man sie überschreiben:
Delphi-Quellcode:
Ableiten des TcxButtons, um die protected-Methode überschreiben zu können, die den obigen Subklassen-Typ liefert:
TdcButtonGlyph = class(TcxButtonGlyph)
protected procedure DrawButtonText(ACanvas: TCanvas; const ACaption: TCaption; ATextBounds: TRect; AState: TcxButtonState; ABiDiFlags: LongInt; ANativeStyle: Boolean; AWordWrap: Boolean; ASkinsUsed: Boolean = False); override; end;
Delphi-Quellcode:
In der Implementierung wird der neue Subklassentyp gemeldet:
TdcButton = class(TcxButton)
protected function GetGlyphClass: TcxButtonGlyphClass; override; end;
Delphi-Quellcode:
Und schließlich wird der gewünschte Inhalt gezeichnet:
function TdcButton.GetGlyphClass: TcxButtonGlyphClass;
begin Result := TdcButtonGlyph; end;
Delphi-Quellcode:
HTH.
procedure TdcButtonGlyph.DrawButtonText(ACanvas: TCanvas;
const ACaption: TCaption; ATextBounds: TRect; AState: TcxButtonState; ABiDiFlags: Integer; ANativeStyle, AWordWrap, ASkinsUsed: Boolean); begin ACanvas.Brush.Style := bsClear; ACanvas.TextOut(32, 10, 'Titel: ' + ACaption ); ACanvas.Font.Color := clGray; ACanvas.TextOut(32, 25, 'Beschreibung: '); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz