![]() |
Transparenter Frame?!
Guten Abend :)
Wiedermal bin ich seit Stunden in gange und versuche diesesmal einen Frame durchsichtig zu machen... also den hintergrunde verschwinden zu lassen, aber die komponenten die drauf sind sollen sichtbar sein... sprich: ein Frame mit durchsichtigem hintergrund :P ich hab viel gesucht nach fertigen komponenten bei torry und auch bei delphi32 und vclcomponents und vieeeele foren durchstöbert... ich habe eine einzige quelle gefunden die mir plausibel erscheint... nur versteh ich nicht recht was ich machen soll... deshelb frag ich euch einfach mal in der hoffnung einer kann helfen :) hier die quelle: Zitat:
|
Re: Transparenter Frame?!
Also WS_EX_LAYERED kannst du z.B. mit SetWindowLong setzen, wie das geht siehst du z.B. hier:
![]() |
Re: Transparenter Frame?!
komm ich nicht mit klar :(
|
Re: Transparenter Frame?!
Why not?
Delphi-Quellcode:
Dein Frame hat auch ein Handle, z.B. Frame1.Handle - das musst du anstelle von 67034 übergeben, dann sollte es funktionieren.
Beispielaufruf, um das Fenster mit dem Handle 67034 mit einer AlphaBlendValue von 150 transparent zu schalten:
procedure TForm1.Button2Click(Sender: TObject); begin MakeWindowTransparent(67034, 150); end; |
Re: Transparenter Frame?!
Nein, tut es nicht, ich habe es gerade ausprobiert. ;-)
Was wx.TRANSPARENT_WINDOW ist müsste ich mal schauen, denn abgesehen von WS_EX_LAYERED soll das ja auch notwendig sein. |
Re: Transparenter Frame?!
wenn ich den frame mit alphablend durchsichtig mache dann werden auch die kompos die drauf sind durchsichtig :P
diese funktion ist um fremden fenstern alphablends zu verpassen |
Re: Transparenter Frame?!
What a pity!
Hab's natürlich nicht ausprobiert, sorry folks! |
Re: Transparenter Frame?!
Okay hab noch ne runde gesucht... konnts einfach nicht sein lassen... bin auf eine quelle gestoßen und habs letztendlich mit viel probieren geschafft :D
Natürlich für die nachwelt, denn ich habe echt oft Fragen danach gefunden :P Also hier der Code für nen "Semi-Transparent-Frame"
Delphi-Quellcode:
:D endlich hab ich auch mal was beigesteuert was es nicht gab :cheers:
unit unit2;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TFrame1 = class(TFrame) Button1: TButton; procedure CreateParams(var Params: TCreateParams);override; procedure PaintWindow(DC: HDC); override; private { Private declarations } public constructor Create(AOwner:TComponent);override; { Public declarations } end; var Frame1: TFrame1; implementation {$R *.dfm} constructor TFrame1.Create(AOwner: TComponent); begin inherited; Brush.Style := bsClear; end; procedure TFrame1.CreateParams(var Params: TCreateParams); begin inherited; Params.ExStyle := Params.ExStyle or WS_EX_TRANSPARENT; end; procedure TFrame1.PaintWindow(DC: HDC); begin // Muss stehen bleiben :D end; end. |
Re: Transparenter Frame?!
sorry fürs doppelpost, aber irgendwie haut das doch nicht so richtig hin...
wenn der frame geladen wird, dann ist es genauso, wie es sein soll... aber ich habe ja durchsichtige buttons auf dem "semi-frame" und wenn ich jetzt mit der maus über die buttons fahre, dann wird der bereich in dem der button ist nach dem verlassen weiss und bleibt es auch... selbst wenn ich das mit timer wieder neu machen lasse...
Delphi-Quellcode:
constructor TFrame3.Create(AOwner: TComponent);
begin inherited; Brush.Style := bsClear; end; procedure TFrame3.CreateParams(var Params: TCreateParams); begin inherited; Params.ExStyle := Params.ExStyle or WS_EX_TRANSPARENT; end; procedure TFrame3.PaintWindow(DC: HDC); begin // Muss stehen bleiben :D end; procedure TFrame3.Timer1Timer(Sender: TObject); var Params: TCreateParams; begin inherited; Brush.Style := bsClear; Params.ExStyle := Params.ExStyle or WS_EX_TRANSPARENT; end; |
Re: Transparenter Frame?!
Es wird bei Veränderungen auch nicht neu gezeichnet
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:00 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 by Thomas Breitkreuz