Jens Köhler
2016-02-23 18:44:03 UTC
Hallo Leute,
ich versuche per DDE Daten von einem Programm abzufragen.
1.
Lt. Hilfe wartet ExecuteMacro mit WaitFlag = true auf die Abarbeitug
des Macro. Was muß man den auf Serverseite tun, um zu sagen: "Ich habe
fertig". Denn nach dem Aufruf gibt es keine weitere Kommunikation mehr.
Es funktioniert allerdings auch mit false, da RequestData erst
zurückkehrt, wenn die Daten da sind. Getestet mit einem sleep auf der
Serverseite. Wie geht es mit WaitFlag = true?
if DdeClientConv1.ExecuteMacro(Befehl, true) then
begin
res := DdeClientConv1.RequestData(DDEClientItem1.DDEItem);
if res <> nil then
begin
//s := StrPas(res);
s := res;
StrDispose(res);
...
2.
RequestData liefert ein PChar, das man lt. Hilfe mit StrDispose
freigeben soll. Bei StrDispose steht allerding, das es nur noch aus
Gründen der Abwärtskompatibilität dabei ist. Genau wie bei StrPas.
Als Ergebnis möchte ich einen String. Was verwende ich zum freigeben
oder muß ich überhaupt freigeben?
D5 unter WinXP
Jens
ich versuche per DDE Daten von einem Programm abzufragen.
1.
Lt. Hilfe wartet ExecuteMacro mit WaitFlag = true auf die Abarbeitug
des Macro. Was muß man den auf Serverseite tun, um zu sagen: "Ich habe
fertig". Denn nach dem Aufruf gibt es keine weitere Kommunikation mehr.
Es funktioniert allerdings auch mit false, da RequestData erst
zurückkehrt, wenn die Daten da sind. Getestet mit einem sleep auf der
Serverseite. Wie geht es mit WaitFlag = true?
if DdeClientConv1.ExecuteMacro(Befehl, true) then
begin
res := DdeClientConv1.RequestData(DDEClientItem1.DDEItem);
if res <> nil then
begin
//s := StrPas(res);
s := res;
StrDispose(res);
...
2.
RequestData liefert ein PChar, das man lt. Hilfe mit StrDispose
freigeben soll. Bei StrDispose steht allerding, das es nur noch aus
Gründen der Abwärtskompatibilität dabei ist. Genau wie bei StrPas.
Als Ergebnis möchte ich einen String. Was verwende ich zum freigeben
oder muß ich überhaupt freigeben?
D5 unter WinXP
Jens