Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.47 MB
Время: 0.04 c
9-1127849380
Signate
2005-09-27 23:29
2006.04.16
Выделение объектов мышкой...


2-1144147269
Nick_serov
2006-04-04 14:41
2006.04.16
Работа в Grid t от TMS


15-1143527410
Ega23
2006-03-28 10:30
2006.04.16
как по аглицки правильно?


2-1143830068
Turbid
2006-03-31 22:34
2006.04.16
Как узнать, что курсор мыши над иконкой в трее?


1-1141998060
MixAnOL
2006-03-10 16:41
2006.04.16
DoubleBuffered:=true





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский