Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.16;
Скачать: CL | DM;

Вниз

Глючит DDE   Найти похожие ветки 

 
Anton B.   (2006-01-23 18:14) [0]

Есть DDE сервер (сервер работает нормально,  проверено через Excel).
Но получать данные правильно не удается. Использую стандартные компоненты Delphi: DDEClientConv и DDEClientItem.

Вот код (все просто)

procedure TForm1.FormCreate(Sender: TObject);
Begin

DDeClientConv1.SetLink("ICTS", "PAIR");

DDeClientItem1.DdeConv := DDEClientConv1;
DDeClientItem2.DdeConv := DDEClientConv1;

DdeClientItem1.DdeItem := "BID_EUR_USD";
DdeClientItem2.DdeItem := "ASK_EUR_USD";

End;

procedure TForm1.DdeClientItem1Change(Sender: TObject);
begin
 StringGrid1.Cells[1,1] := DdeClientItem1.Text;
end;

procedure TForm1.DdeClientItem2Change(Sender: TObject);
begin
 StringGrid1.Cells[2,1] := DdeClientItem2.Text;
end;

Проблема в том что в первый раз данные передаются для обоих, но потом событие onChange срабатывает лишь для того кто был обозначен первым, в этом примере это
DdeClientItem1.DdeItem := "BID_EUR_USD";

Помогите пожалуйста, что я не так делаю?


 
Eraser ©   (2006-01-23 21:16) [1]


> Anton B.   (23.01.06 18:14)

DDE это мёртвая технология, не стоит себе голову морочить.


 
Anton B.   (2006-01-23 21:24) [2]

Я согласен, что мертвая, но никаким другим способом мне данные не получить :(


 
Eraser ©   (2006-01-23 23:00) [3]


> Anton B.   (23.01.06 21:24) [2]

Ещё как получить. COM в помощь. В Делфи даже для удобства спец. компоненты разработали.


 
Anton B.   (2006-01-23 23:17) [4]

Через COM можно получить данные с DDE сервера? где можно по подробней это узнать


 
Stifler   (2006-01-24 17:08) [5]

Mastera help, ta ze problema !!! Mozet problema v samom Delphi 6 ?


 
Digitman ©   (2006-01-24 17:25) [6]


> Anton B.   (23.01.06 23:17) [4]
> Через COM можно получить данные с DDE сервера?


Нельзя.
Но с неменьшим успехом можно получить данные с СОМ-сервера, каковым может являться то самое интересующее тебя приложение, одновременно и в том числе являющееся и DDE-сервером и COM/OLE-сервером.


 
Anton B.   (2006-01-24 23:38) [7]

Проблема в том, что это самое приложение никак нельзя подправить или переделать, оно есть и все тут, в нем есть DDE сервер, по которому можно забрать из этого приложения необходимые данные. А этот гребаный DDE компонент в Delphi работает через …

Очень нужно решить эту проблему, pliz help me :(


 
Digitman ©   (2006-01-25 09:19) [8]

т.е. если изменить порядок присвоения на

DdeClientItem1.DdeItem := "ASK_EUR_USD";
DdeClientItem2.DdeItem := "BID_EUR_USD";

то теперь событие будет возникать лишь для "ASK_EUR_USD" ?
я правильно понял ?


 
Anton B.   (2006-01-25 21:27) [9]

да


 
Digitman ©   (2006-01-26 08:31) [10]

Для начала убедись средствами, например, станд.утилиты DDESPY.EXE в составе MS VisualStudio в том что упомянутые события на самом деле возникают, при том что Делфи-компонент их почемк-то не транслирует в кл.программу.

Если шпион покажет, что дело обстоит именно так, есть резон изучить и прогнать исходники используемых DDE-компонентов под отладчиком пошагово с целью выяснения , где и в каком месте кода компонента происходят "чудеса".

На крайний случай можно реализовать собственный клиентский DDE-доступ непосредственно на WinAPI, пользуясь станд.справкой и примерными фрагментами кода борландовского компонента.



Страницы: 1 вся ветка

Текущий архив: 2006.04.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.027 c
8-1131566457
[dvs]digiman
2005-11-09 23:00
2006.04.16
Aero Glass эффект


2-1143925921
AlexeyT
2006-04-02 01:12
2006.04.16
Установить шрифт при печати


15-1142945762
OutbacK
2006-03-21 15:56
2006.04.16
Проблема с мышкой в Винде (мышь: Logitech MX500)


11-1124640908
hunn
2005-08-21 20:15
2006.04.16
Форму в центр


4-1138289292
_zx
2006-01-26 18:28
2006.04.16
слот PCI