Dann wäre es ja keine modale Form ...
Jain. Es soll sich in etwa so verhalten, wie z.B. das Zoomen von Bildern auf manchen Webseiten (Ein Klick neben dem Bilder verkleinert es wieder).
Aber es soll schon Modal sein, heißt der Benutzer soll während diese Form offen ist, nicht in der aufrufenden etwas ändern können.
Es geht hier rein um den Komfort nicht zwingen das X oben rechts treffen zu müssen
Ist auch nicht auf meinen Mist gewachsen, sondern ein Wunsch von einem Kunden, der das selbst einer seiner Anwendungen wohl so hat(Name ist mir nicht bekannt).
Vorschlag: Keine eigene Form verwenden, sondern ein Panel auf einem durchsichtigem Panel in Applikationsgröße plazieren. Klicks auf dieses Panel können problemlos erkannt und ausgewertet werden. Einzig das verschieben des "Fenstres" ist dann nicht mehr so ganz einfach....aber machbar.
Hm...klingt für mich etwas aufwendig. Müsste doch einfacher gehen.
Die Idee mit dem Panel-Gefrickel erinnert mich an dubiose Software ala Registry-Cleaner und Konsorten im pseudo-professionellen Stil.
ich würde einfach ein nicht-modales Fenster anzeigen lassen, was aber OnTop ist.
OnTop heißt dann aber, dass er doch Zugriff auf die Controls der aufrufenden Form hat. Das darf aber nicht sein (gut, ich könnte die alle irgendwie disablen, aber das ist nicht ganz was ich möchte)
Auch wenn das, wie Markus schon sagt, dem Prinzip der modalen Form etwas zuwiderläuft, könntest Du die X- und Y-Werte des Mausklicks erfassen und feststellen ob sie
a) außerhalb der modalen Form
b) aber innerhalb der X- und Y-Werte Deiner Hauptform liegen.
Aber persönlich halte ich es für besser, eine modale Form durch eine Aktion innerhalb dieser Form zu schließen.
Das ist es, woran ich gerade rumprobiere. Letztlich brauch ich ja nur einen Event und schicke dann einfach eine Message an die modale Form. Dann kann sie sich ja "von innen" schließen.
Zur Zeit probiere ich gerade mit Application.OnMessage rum. Könnte auch funktionieren, allerdings wir die Message WM_LBUTTONDOWN nicht geschickt, wenn außerhalt der modalen Form (aber noch auf der Hintergrundform) geklickt wird.