Главная страница
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.053 c
15-1143024326
Kolan
2006-03-22 13:45
2006.04.16
Ссылки на сайты, с книгами в эл. виде.


2-1144071645
KyRo
2006-04-03 17:40
2006.04.16
На следующую итерацию


1-1141985782
DarkLord
2006-03-10 13:16
2006.04.16
Клонирование TabSheet со всем содержимым


15-1143440326
Ega23
2006-03-27 10:18
2006.04.16
С Днём рождения! 25 марта


3-1140436796
Варяг
2006-02-20 14:59
2006.04.16
Прогр-ное создание индексного файла для FoxPro