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 Transparente Anwendung, welche Möglichkeiten? (https://www.delphipraxis.net/138514-transparente-anwendung-welche-moeglichkeiten.html)

Piro 11. Aug 2009 20:47


Transparente Anwendung, welche Möglichkeiten?
 
Schönen guten Abend,

sorry für den Titel aber ich wußte nicht, wie ich es in eine Zeile packen sollte.

Also ich möchte gerne eine Anwendung schreiben, die ständig im Vordergrund ist (eine Art Informationfenster). Das ist nooch kein Problem. Nur möchte ich auch, dass ich durch die Anwendung (Form) klicken kann. Zum Beispiel ist eine anderen Anwendung (Fenster) dahinter, möchte ich es uneingeschränkt anklicken oder schließen können ohne das ich meine transparente Anwendung verschieben oder schließen muss.

Ich hoffe, ihr habt mich verstanden. Ist das machbar?

Vielen Dank im voraus.

Gruß, Sven

mkinzler 11. Aug 2009 20:49

Re: Transparente Anwendung, welche Möglichkeiten?
 
Du müsstest die Nachrichten an (das) darunterliegende Fenster weiterreichen

DeddyH 11. Aug 2009 21:34

Re: Transparente Anwendung, welche Möglichkeiten?
 
Für die Transparenz kannst du einmal mit AlphaBlend herumspielen. Für das Durchklicken müsste es ja genügen, dem Fenster den erweiterten Stil Hier im Forum suchenWS_EX_LAYERED zu verpassen.

Oldy 11. Aug 2009 21:45

Re: Transparente Anwendung, welche Möglichkeiten?
 
Was macht die Form denn?
Sind da komponenten drauf?

Eine Idee von mir wäre, einfach die Form auf Fullscreen zu stellen und dann ein Loch in die Form zu machen.
Das machst du mit den Jedis oder mit dem bei den Schweizern bereitgestellten Code:
SwissDelphiCenter
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  region1, region2: hrgn;
begin
  region1 := CreateRectRgn(0, 0, Width, Height);
  region2 := CreateEllipticRgn(30, 30, 200, 200);
  CombineRgn(region1, region1, region2, RGN_DIFF);
  SetWindowRgn(Handle, region1, True);
end;
Mit dem Code heir kannst du allerdings nur ein Loch machen. Da bringen die Jedis schon Mehr :)
Musst hald noch formstyle auf fsStayOnTop setzen.


Möchte nebenbei auch auf einen anderen Beitrag hier hinweiden: http://www.delphipraxis.net/internal...ct.php?t=21986. Dort hat me2u (Beitrag 15) diesen Code gepostet:
Delphi-Quellcode:
SetWindowLong(Handle, GWL_EXSTYLE, getWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TRANSPARENT or WS_EX_LAYERED);
Hab ich noch nicht getestet, aber wie ich aus dem nächsten Beitrag (16) entnehme, ist das auch nicht zufriedenstellend.

Hoffe ich konnte meine Ideen n bisschen verständlich rüberbringen :)

Schönen Abend noch

//Edit1
Zitat:

Zitat von DeddyH
Zitat:

Zitat von Oldy
... oder mit dem bei den Schweißern bereitgestellten Code

Na, wenn das kein geiler Vertipper ist :lol:

:oops: ups :D gleich mal ausgebessert. Aber ich frag mich echt wie ich vom z zum ß komm...

DeddyH 11. Aug 2009 21:48

Re: Transparente Anwendung, welche Möglichkeiten?
 
Zitat:

Zitat von Oldy
... oder mit dem bei den Schweißern bereitgestellten Code

Na, wenn das kein geiler Vertipper ist :lol:


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