Entwickler-Ecke
Dateizugriff - Flag aus DLL an Hauptprogramm senden
Mike_C - Mi 10.09.03 12:20
Titel: Flag aus DLL an Hauptprogramm senden
Hi Leute!
Ich möchte für ein Programm einen Dialog zum Einstellen von bestimmten Optionen in eine DLL verpacken. Wenn dieser Dialog geschlossen wird, will ich ein Flag setzten und der Hauptanwendung mitteilen, dass das Flag gesetzt wurde, dass bestimmte Folgeaktionen vom Hauptprogramm ausgeführt werden können. Das Flag soll dem Hauptprogramm in meinem Fall sagen: "Pass auf, hier gibt's ne INI-Datei, die du lesen musst und aus der du dir Informationen holen musst um weiter zu machen."
Wie kann ich das realisieren?
:mrgreen:
MSCH - Mi 10.09.03 16:50
via Send/Postmessage() an die Hauptanwendung.
grez
msch
Mike_C - Mi 10.09.03 17:55
Noch ne Frage:
GetActiveWindow liefert mir ja das aktive Fenster als Handle zurück. Funktioniert das auch bei MDI-Applikationen?
und nocheine zu Sendmessage:
kann ich auch irgendwie nen string an die hauptanwendung schicken?
MSCH - Mi 10.09.03 18:15
ob getactiveWindow() funzt weiss ich nicht, aber du kannst den Fenstern doch das Parent-Handle mitgeben, überschreibst einfach den Create() Konstruktor und erweiterst diesen.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| const wm_sendMail = wm_user +1; type TMDIClient = class(TForm) private MasterWindow:Hwnd; public constructor Create(AOwner:TComponent;AMasterWindow:Hwnd);reintroduce; procedure WMSendMail(var Msg:TMessage);Message wm_SendMail; end;
constructor TMDIClient.Create; begin Inherited Create(Aowner); MasterWIndow:= AMasterWindow; end;
procedure TMDIClient.WMPrintItem(var Msg: TMessage); begin PostMessage(MasterWindow,wm_sendmail,0,0); end; |
und in deiner MainForm
Delphi-Quelltext
1: 2: 3:
| ... TMDIClient.Create(self,Self.Handle); ... |
Strings kannst du auch versenden, allerdings nicht direkt, sondern nur den Zeiger in lParam einer Message.
grez
msch
Mike_C - Mi 10.09.03 20:41
thx, ich werd's ma probieren...
:mrgreen:
Mike_C - Do 11.09.03 14:12
Gibt's eigentlich eine bestimmte stelle im programm, wo messages abgefangen werden?
MSCH - Do 11.09.03 19:27
wie? abfangen?
erklär mal genauer.
grez
msch
Mike_C - Do 11.09.03 20:13
naja ich muss ja an irgendeiner stelle vom programm mitbekommen, ob eine nachricht gesendet wurde oder nicht. das nennt man im allgemeinen "abfangen von nachrichten" - wenn ich mich nicht irre :)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!