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/)
-   -   Delphi Komponenten Regions? (https://www.delphipraxis.net/71373-komponenten-regions.html)

cherry 14. Jun 2006 08:29


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?

mkinzler 14. Jun 2006 08:35

Re: Komponenten Regions?
 
Ein Canvas ist immer rechteckig. Du kannst ihn aber zum Teil transparent machen.

Vjay 14. Jun 2006 08:44

Re: Komponenten Regions?
 
Delphi-Quellcode:
 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;
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.

Gruss


**EDIT**

Mir fällt noch eine Lösung ein:

Delphi-Quellcode:
constructor TDeinButton.Create(AOwner: TComponent);
begin
 inherited Create (AOwner);
 ControlStyle := ControlStyle - [csOpaque];
end;
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.

cherry 14. Jun 2006 12:40

Re: Komponenten Regions?
 
Super, vielen Dank. Die erste Version mit Regions funkzt perfekt.
Doch das hier bringt gar nichts:

Delphi-Quellcode:
constructor TDeinButton.Create(AOwner: TComponent);
begin
inherited Create (AOwner);
ControlStyle := ControlStyle - [csOpaque];
end;
Vielen Dank


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:22 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