Einzelnen Beitrag anzeigen

Int3g3r

Registriert seit: 28. Nov 2018
Ort: Schweiz
118 Beiträge
 
Delphi 10.3 Rio
 
#1

Kommunikation zwischen zwei Delphi-Programmen

  Alt 27. Mai 2020, 16:22
Guten Tag,

Ich habe zwei Delphi-Programme die miteinander kommunizieren sollen.

Programm 1 -> Sendet Telefonnummer per Startparametern an Programm 2
Programm 2 -> Soll Name, Adresse, Ort etc. zurück an Programm 1 liefern.

Wie lässt sich dies elegant lösen ?
Das einfachste was ich mir überlegt habe ist das Programm 2 die Daten in eine textdatei schreibt und Programm 1 diese ausliest.
Damit bin ich aber nicht wirklich zufrieden. Am liebsten möchte ich das Programm 2 einen Record mit allen Daten zurückliefern.
Somit habe ich mich schlau gemacht und bin auf "Memory Mapped Files" gestossen.

Delphi-Treff
Beispiel

Das Obere Beispiel habe ich getestet. Dies wäre genau das was ich suche.
Beim Empfänger kommen nur keine Daten an.

1) Muss die "WMMFNOTIFY" procedure manuell ausgeführt werden ?
Da hier "NOTIFY" geschrieben ist gehe ich davon aus das der Sender den Empfänger informiert und die daten danach gelesen werden, ist dies korrekt ?

2) Für mich ist auch unklar für was die Variable "(var msg: TMessage)" benutzt wird.
Bzw "procedure WMMMFNOTIFY(var msg: TMessage); message WM_MMFNOTIFY;" -> Habe eine solche procedure definition noch nie gesehen.

Delphi-Quellcode:
procedure TTReceiver.WMMMFNOTIFY(var msg: TMessage);
var
  MyData: TMyData;
begin
  MyData := ReadFromMMF('MyFileMapping');
  Edit1.Text := MyData.Zeichenkette;
  CheckBox1.Checked := MyData.BoolVar;
  Edit2.Text := IntToStr(MyData.Zahl);
end;
Freundliche Grüsse,
Int3g3r
  Mit Zitat antworten Zitat