![]() |
Komponenten Regions?
Hi..
Es geht immer noch um meine Button Komponente(von TCustomControl). Wie mache ich meine Canvas z.B. Rund? Gibts da so was wie Canvas Regions, oder wie tu ich das machen? |
Re: Komponenten Regions?
Ein Canvas ist immer rechteckig. Du kannst ihn aber zum Teil transparent machen.
|
Re: Komponenten Regions?
Delphi-Quellcode:
Dashier gibt z.B. einem Panel runde Ecken, du modifizierst also nicht den Canvas, sondern das Fenster selber. Den rest solltest du über die Hilfe, bzw. über die Forensuche zu setWindowRgn herausbekommen.
procedure modPanel( const PagePanel: TPanel);
var Rgn: HRGN; begin Rgn:= CreateRoundRectRgn(0, 0, PagePanel.width, PagePanel.height, 9, 9); setWindowRgn(PagePanel.Handle, Rgn, true); deleteObject( Rgn); end; Gruss **EDIT** Mir fällt noch eine Lösung ein:
Delphi-Quellcode:
DU überschreibst den Constructor und nimmst ihm den csOpaque Controlstyle. Nun wird wann immer der Button gezeichnet wird, das Fenster darunter zuerst gezeichnet. In der Paint/WM_PAINT malst du nun halt nur das was du willst.
constructor TDeinButton.Create(AOwner: TComponent);
begin inherited Create (AOwner); ControlStyle := ControlStyle - [csOpaque]; end; |
Re: Komponenten Regions?
Super, vielen Dank. Die erste Version mit Regions funkzt perfekt.
Doch das hier bringt gar nichts:
Delphi-Quellcode:
Vielen Dank
constructor TDeinButton.Create(AOwner: TComponent);
begin inherited Create (AOwner); ControlStyle := ControlStyle - [csOpaque]; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:34 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-2025 by Thomas Breitkreuz