Hi,
in einer MDI-Applikation habe ich den Fall, dass der User unter bestimmten Bedingungen ein Feld bzw. den Text des Feldes von FormularA nach FormularB automatisch übertragen bekommt.
Der genaue Ablauf sähe wie folgt aus:
1. FormA wird geöffnet (MDI-Child).
2. FormB wird auch geöffnet (Kein MDI, immer im Vordergrund bis es geschloßen wird).
3. Benutzer klickt in FormA, in ein Editfeld. FormA hat somit den Focus.
4. In FormB soll sich ein Label mit dem Text aus FormA füllen.
Was ich suche ist eine geeignete Variante, da dieses "Feature" sich quer die Applikation ziehen kann (oh man..).
Ich hatte erst überlegt, ob ich das ganze Eventgesteuert mache und sozusagen über Vererbungshirachien ein entsprechendes OnClick-Event einbaue. Allerdings stößt das an seine Grenzen schon allein in dem Moment, da ich für ein Formular kein Event erhalte, wenn ein Button geklickt wird. Sonst hätte ich das Event in das MDI-Hauptformular eingebaut und einfach geschaut, welches Window sich grade am Cursor befindet.
Wenn ich ein Event einbauen könnte, welches von jeder Komponente separat aufgerufen werden würde wäre das fast optimal, allerdings bedarf das viel Arbeit wie ich vermute und außerdem befürchte ich, wäre das ein Overhead an Aufrufen.
a) Ein weiterer Ansatz wäre ein Mouse-Hook mit MouseProc.
b) Ein anderer wäre ein Thread, der per GetMessage und Einschränkung durch WM_LBUTTONDOWN
die Nachrichten abfängt.
Für beide Varianten gilt natürlich, dass sie nur laufen, sobald FormB aktiv ist.
Hat noch jemand Ideen für geschmeidigere Lösungen?
Danke für's lesen... und evtl. auch für die Hilfe.
P.S.: Eine andere Variante wäre ja noch das ganze so zu steuern, dass FormA FormB bescheid gibt oder den Wert übermittelt. Allerdings wäre so'ne Lösung Käse (IMHO). Zudem besteht ja das Problem, dass sich dieses "Featuere" durch die ganze Applikation ziehen kann und dann müßte ich für jedes Modul die Übermittlung einbauen.
Stellen Sie sich bitte Zirkusmusik vor.