// TransparentPanel // //! Delphi/CBuilder transparent panel component // // /*! \file // // \Author Timo Lappalainen, Instrumentarium Imaging\n // // \Purpose // // \History // \hd 05.04.2004 TTL // \dl Created // \DxEnd unit TransparentPanel; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; type TTransparentPanel = class(TPanel) private { Private declarations } protected { Protected declarations } procedure WndProc(var Message: TMessage); override; procedure CreateParams(var Params: TCreateParams); override; // procedure WMEraseBackground(var Msg:TMessage); message WM_ERASEBKGND; public { Public declarations } constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure Paint; override; published { Published declarations } end; procedure Register; implementation procedure Register; begin RegisterComponents('KaveOptions', [TTransparentPanel]); end; (* procedure TTransparentPanel.WMEraseBackground(var Msg: TMessage); begin // end; *) constructor TTransparentPanel.Create(AOwner: TComponent); begin ControlStyle := ControlStyle - [csOpaque]; inherited; end; procedure TTransparentPanel.CreateParams(var Params: TCreateParams); begin inherited CreateParams(Params); with Params do begin { Enable full repaint } Style := Style and not WS_CLIPCHILDREN; Style := Style and not WS_CLIPSIBLINGS; { Add transparency } ExStyle := ExStyle or WS_EX_TRANSPARENT; end; end; procedure TTransparentPanel.WndProc(var Message: TMessage); begin if (Message.Msg = WM_ERASEBKGND ) then begin Message.Result := 1; end else begin inherited; end; end; //************************************************************************************************* procedure TTransparentPanel.Paint; begin // inherited; end; destructor TTransparentPanel.Destroy; begin inherited; end; end.