![]() |
TGroupBox transparent machen
Hi,
ich würde gerne wissen, wie ich eine TGroupBox transparent mache, sodass ich noch die Rahmnung und Beschriftung sehe, aber die Komponenten dahinter sehe.. (quasi: BackgroundColor = Transparent) |
Re: TGroupBox transparent machen
Warum tust du die Komponenten nicht einfach in die Groupbox?
|
Re: TGroupBox transparent machen
Du kannst dir was aus
![]() basteln Müstest du nur anpassen auf Groupbox oder nimm einfach die bereits angepasste Variante von mir:
Delphi-Quellcode:
unit transgroupbox;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,ComCtrls, StdCtrls; type TTransGroupBox = class(TGroupBox) private { Private declarations } procedure WMEraseBkgnd(var Message: TWMEraseBkgnd); message WM_ERASEBKGND; protected { Protected declarations } procedure CreateParams(var Params: TCreateParams); override; public { Public declarations } constructor Create(AOwner: TComponent); override; procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override; published { Published declarations } end; procedure Register; implementation constructor TTransGroupBox.Create(AOwner: TComponent); begin inherited ; end; procedure TTransGroupBox.CreateParams(var Params: TCreateParams); begin inherited CreateParams(Params); Params.ExStyle := Params.ExStyle or WS_EX_TRANSPARENT; end; procedure TTransGroupBox.WMEraseBkgnd(var Message: TWMEraseBkgnd); begin Message.Result := 1; // Prevent background from getting erased end; procedure TTransGroupBox.SetBounds(ALeft, ATop, AWidth, AHeight: Integer); var tlbVisible: Boolean; begin tlbVisible := (Parent <> nil) and IsWindowVisible(Handle); // Check for visibility if tlbVisible then ShowWindow(Handle, SW_HIDE); // Hide-Move-Show strategy... inherited SetBounds(ALeft, ATop, AWidth, AHeight); // ... to prevent background... if tlbVisible then begin ShowWindow(Handle, SW_SHOW); // ... from getting copied Parent.repaint; end; end; procedure Register; begin RegisterComponents('Transparenz', [TTransGroupBox]); end; end. |
Re: TGroupBox transparent machen
Wunderbar! Sieht vielversprechend aus :wink:
:dp: |
Re: TGroupBox transparent machen
Es funktioniert prima, aber wenn ich ein TransGroupBox im Form ändere verzerrt es die Darstellung. Kann das irgendwie "repariert" werden?
Beispiel: Ich habe 3 Edits im TransGroupBox und verkürze sie. Ergebnis: Ich sehe 6 Edits (scheinbar): 3 mit original Länge und 3 verkürzte Noch schlimmer: Ich verschiebe die TransGroupBox. Ergebnis: Die TransGroupBox und alle Komponenten haben sich (scheinbar) dupliziert. Eins ist am original Platz, das andere wo ich es hingetan habe (machmal auch einige auf den Weg dahin!!!) Diese Graphischen Verzerrungen sind nur im Formeditor. Das Programm läuft einwandfrei und die Formdarstellung im Editor ist normal, nachdem ich das Programm durchführen lassen habe. Aber dann fängt es alles wieder von Forne an! :wall: HILFE! :freak: |
Re: TGroupBox transparent machen
Auch wenn es jetzt eine ganze Weile später ist, aber man kann auch die TJvgGroupBox von den Jedis nehmen die hat eine Transparent Einstellung von Hause aus.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:28 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