Форум: "WinAPI";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
ВнизГлючит 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 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.04 c