Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Client Area von Formular disablen (https://www.delphipraxis.net/157121-client-area-von-formular-disablen.html)

Assarbad 31. Dez 2010 12:38

AW: Client Area von Formular disablen
 
Zitat:

Zitat von s.h.a.r.k (Beitrag 1071417)
Daher eben auch die Idee, die Client Area zu "sperren", analog zu den Elementen auf einem Panel, die gesperrt sind, wenn ich Panel.Enabled auf False setze.

Und jetzt rate mal woran das liegt? ;)
Es sind Kindfenster. Nur daß hier dein Elternfenster das Formular wäre. Da du also Windows umgehen willst (weil nicht das Formular deaktiviert werden soll, sondern nur die Kindfenster), mußte es selber machen. Um MSDN-Library durchsuchenEnumWindows wirste hier nicht herumkommen.

s.h.a.r.k 31. Dez 2010 13:40

AW: Client Area von Formular disablen
 
Aber das Panel selbst selbst Enabled der Unterkomponenten ja gar nicht auf False. Muss mir mal den Code dahinter anschauen, in der Hoffnung, ich finde die passende(n) Stelle(n).

Assarbad 31. Dez 2010 13:50

AW: Client Area von Formular disablen
 
Zitat:

Zitat von s.h.a.r.k (Beitrag 1071434)
Aber das Panel selbst selbst Enabled der Unterkomponenten ja gar nicht auf False. Muss mir mal den Code dahinter anschauen, in der Hoffnung, ich finde die passende(n) Stelle(n).

Ich weiß. Und wenn du dein Formular deaktivieren würdest, würde Windows es auch für dich übernehmen. Immerhin ist dann das gemeinsame Elternfenster (nämlich das Formular) deaktiviert, weshalb es auf die Kindfenster durchgreift.

Du willst aber ganz offensichtlich Windows und seine Mechanismen umgehen. Ansonsten hättest du wohl kaum das Panel so kategorisch ausgeschlossen. Dieses wäre ja wiederum ein gemeinsames Elternfenster für alle enthaltenen Elemente. Wenn du Windows austricksen willst, mußt du damit leben, daß du die Mechanismen selber nachimplementieren mußt. Ist nunmal so. Da wird auch eine lange Diskussion nix dran ändern :zwinker:

Das einzige was ich mir noch denken könnte, wäre irgendeine Schweinerei mit dem Formular während es geladen wird anzustellen und das Panel sozusagen zur Laufzeit zu injizieren. Aber auf Anhieb fiele mir dazu nicht mehr ein als im VCL-Code nachzuschlagen.

s.h.a.r.k 31. Dez 2010 14:08

AW: Client Area von Formular disablen
 
Das mit dem Panel habe ich ja nur ausgeschlossen, dass es sonst evtl. an gewissen Stellen krachen könnte, wie der Code oben andeuten sollte. Man soll die Overlay-Form ja nutzen können, ohne großartig seinen Code dafür anpassen zu müssen.

Aber auf die Dauer blende ich den Overlay echt modal ein. Was mich daran aber stört ist, dass ich die Parent-Form dann nicht mehr verschieben kann...


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:45 Uhr.
Seite 2 von 2     12   

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