Главная страница
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.03 c
15-1143527410
Ega23
2006-03-28 10:30
2006.04.16
как по аглицки правильно?


15-1142436289
infom
2006-03-15 18:24
2006.04.16
Клиент-сервер чат для локальной сети.


2-1143697782
mariya_mezenceva
2006-03-30 09:49
2006.04.16
аналог for each


2-1143709295
dera
2006-03-30 13:01
2006.04.16
Как "угадать" разрешение экрана пользователя


15-1143101204
pavel_guzhanov
2006-03-23 11:06
2006.04.16
непонятно чтот происходит с excel