Einzelnen Beitrag anzeigen

Benutzerbild von Michael Habbe
Michael Habbe

Registriert seit: 10. Aug 2005
264 Beiträge
 
Turbo Delphi für Win32
 
#1

DDE ClientItem OnChange DDEClientItemChange

  Alt 14. Jan 2007, 22:45
Hi Leute,

auch wenn DDE eigentlich schon totgeschrieben wird/wurde: ich brauchs zur Datenübertragung aus einem Teilekatalog zurück an meine Anwendung.


Ich habe lange gebraucht, um das Visual Basic Demoprogramm zum Laufen zu bringen, aber dieses funktioniert mittlerweile.

Da ich aber hauptsächlich mit Delphi arbeite, wollte ich den Client nun umsetzen. Aber dort ist ein Problem aufgetreten:

Delphi-Quellcode:
procedure Tclientform.Button4Click(Sender: TObject);
begin
  DdeClientConv.CloseLink;
  DdeClientConv.SetLink ('TCD','Parts');
  DDEClientItem.DdeItem := 'PartsSelection';
  DdeClientConv.OpenLink;
end;
Das Öffnen des Kataloges klappt, auch dass "DdeClientItemChange" wird hier noch aufgerufen, d. h. hier werden auch noch Informationen in das Memo geschrieben.

Delphi-Quellcode:
procedure Tclientform.DdeClientItemChange(Sender: TObject);
begin
  inc(count);
  Memo1.Lines.Add(IntToStr(count)+': '+DdeClientItem.Lines.Text);
end;
Wird nun aber versucht, aus dem "DDE-Server" Daten zurückzusenden, gibt es ein TimeOut im Server.
Was ich gefunden habe, ist, das in der Unit "DDEMan" die Eigenschaft "DdeItem" irgendwann auf (leer) gesetzt wird. Somit kann scheinbar auch nicht mehr das Ereignis ausgelöst werden.

HILFE

Ich brauche dringend einen Workaround. Wie der aussieht, ist mir mittlerweile (nach drei Tagen) egal. Meinetwegen auch eine VB.dll die ich aus meinem Programm heraus aufrufe.

Aber bitte: Helft mir......



mfg
Michael
  Mit Zitat antworten Zitat