Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi durch ein Formular "durchklicken" (https://www.delphipraxis.net/33031-durch-ein-formular-durchklicken.html)

gmarts 31. Okt 2004 18:28


durch ein Formular "durchklicken"
 
Hallo,

Ich habe ein halbtransparentes(alphablend) Formular, welches fsOnTop angezeigt wird. Gibt es eine Möglichkeit, durch dieses Formular(und dessen Komponenten) "durchzuklicken", so das man die Anwendung, die sich drunter befindet anspricht?

MfG
GM

Dax 31. Okt 2004 18:34

Re: durch ein Formular "durchklicken"
 
Das geht. Dazu musst du aber das Fenster finden, das im Z-Order direkt hinter deinem transparenten Fenster liegt; Button, Label, etc. zählen hier auch als Fenster. Wenn du das Handle dieses Fensters hast, tunnelst du noch die Mouse-Message und die Sache ist geritzt. Das einzige problem wird sein, das FEnster/Control zu finden, an das die Message gehen soll.
Hier könntest du mit MSDN-Library durchsuchenFindWindow das Fenster mit dem nächstniedrigeren Z-Index holen und mit MSDN-Library durchsuchenEnumChildWindows das Control finden, über dem die Maus ruht..

gmarts 31. Okt 2004 18:36

Re: durch ein Formular "durchklicken"
 
Danke für die Antwort. Das wäre aber eine Lösung bei der geschummelt wird. :mrgreen:

Kann man an dem Programm an sich etwas drehen? So nach dem Motto, ignoriere mich bis auf meine graphische Erscheinung!?!


Man kann auch schließlich durch ein Form klicken, welches transparent dargestellt wird (Nicht Alphablend).

Dax 31. Okt 2004 18:37

Re: durch ein Formular "durchklicken"
 
Nein, das geht nicht. Du würdest fast den Sinn des Multitaskings untergraben, wenn du alle Fenster so modifizieren könntest, dass sie ihre Messages an das darunterliegende weiterleiten.

gmarts 31. Okt 2004 18:39

Re: durch ein Formular "durchklicken"
 
Desillusionator! :wink:
Trotzdem Danke für die Antwort.

Mystic 1. Nov 2004 03:59

Re: durch ein Formular "durchklicken"
 
Es ist möglich das gesamte Formular transparent für Mausklicks zu machen. Ich glaube aber, das das nur geht, wenn das Fenster ein "Layered Window" ist.

Delphi-Quellcode:
setWindowLong(Handle, GWL_EXSTYLE,
      getWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TRANSPARENT);
Wenn das oben nicht geht versuch das hier:
Delphi-Quellcode:
setWindowLong(Handle, GWL_EXSTYLE,
      getWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TRANSPARENT or WS_EX_LAYERED);

gmarts 1. Nov 2004 09:30

Re: durch ein Formular "durchklicken"
 
Vielen vielen Dank!

Never say never again. :firejump:


Funktioniert wunderbar. :dancer2:


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