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 Wie bekomme ich ein TCustomControl transparent? (https://www.delphipraxis.net/107424-wie-bekomme-ich-ein-tcustomcontrol-transparent.html)

DeddyH 27. Jan 2008 16:06


Wie bekomme ich ein TCustomControl transparent?
 
Mal wieder zu meinem runden Button: ich habe ihn von TCustomControl abgeleitet, damit ich solche Dinge wie DoubleBuffered nutzen kann. Leider bekomme ich es nur unter Verwendung einer Maske hin, ihn transparent zu zeichnen, was ihn aber am Rand wieder pixelig aussehen lässt. Das muss doch auch anders gehen, oder? TransparentColor, ControlStyle - [csOpaque] etc. haben alle nichts gebracht :cry:

toms 27. Jan 2008 16:12

Re: Wie bekomme ich ein TCustomControl transparent?
 
Hallo, kannst du das Control nicht mit WS_EX_Transparent transparent machen?

Delphi-Quellcode:
type
  TDeinButtonControl = class(TCustomControl)
    public
        procedure CreateParams(var Params: TCreateParams); override;
        constructor Create(AOwner: TComponent); override;
        destructor Destroy; override;
    end;

//..

procedure TDeinButtonControl.CreateParams(var Params: TCreateParams);
begin
 inherited CreateParams(Params);
 Params.ExStyle := Params.ExStyle+WS_EX_TRANSPARENT;
 // Evtl ControlStyle := ControlStyle-[csOpaque];
end;

DeddyH 27. Jan 2008 16:25

Re: Wie bekomme ich ein TCustomControl transparent?
 
Danke, aber das bringt leider nichts (wie bereits gesagt, ControlStyle hatte ich auch schon versucht).

toms 27. Jan 2008 16:51

Re: Wie bekomme ich ein TCustomControl transparent?
 
Zitat:

Danke, aber das bringt leider nichts (wie bereits gesagt, ControlStyle hatte ich auch schon versucht).
Das ist wohl nur ein Teil des ganzen transparenten Kuchens.

Hast du auch schon mit WM_ERASEBKGND gespielt?

DeddyH 27. Jan 2008 17:02

Re: Wie bekomme ich ein TCustomControl transparent?
 
Zitat:

Zitat von toms
Hast du auch schon mit WM_ERASEBKGND gespielt?

Jepp. Im Moment mache ich es nun so, dass man sich die Hintergrundfarbe aussuchen kann. Diese stellt man dann halt sinnigerweise auf diejenige des Elterncontrols. Ist allerdings bei Hintergrundbildern oder Farbverläufen nicht so günstig.


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