I have a Delphi7 DDE client that talks do a 16 bit DDE server application.
This ran beautifully until recently. The 16 bit server is not mine so I have no
control over it.
When I try the openlink ( with the 16 bit server not running ( or modally busy ),
the D7 client freezes and I get an "application not responding" type message in
the Windows task manager.
(a timer running in the client application don't trigger ontimer events when this
If the 16 bit server IS running, everything works as expected.
Tried the code below but 16 bit server not seen with DDE.WaitStat (understandably)
procedure TForm1.mIRCDDE(Service, Topic, Cmd: string);
DDE := TDDEClientConv.Create(nil);
DDE.ConnectMode := ddeManual;
Timer1.Enabled := true; // for freeze test to see if ontimer event
If DDE.WaitStat then // If DDE server available //won't work with 16
I changed the code to
if DDE.OpenLink then
Basically the application freezes on the openlink and stays frozen until terminated
with a three fingered salute. I tried wrapping the Openlink in a Try/except but it
stayed frozen. Eureka doesn't work either.
I need a timeout on the DDEOpenlink I guess. Any help greatly appreciated.