Страница 1 из 1
Определение всех topic'ов данного DDE-сервера
Добавлено: 08 мар 2004, 10:16
delphi-coder
Подскажите, можно ли определить все доступные топики у указанного DDE-сервера? Средствами паскаля\дельфи\системы\какими-то сторонними утилитами - не важно. В частности, интересует взаимодействие по DDE с MetaTrader'ом, но топики, которые я пока у него нашёл - это HIGH, LOW, ASK, BID и TIME. А мне бы ещё OPEN и CLOSE хотелось... Подозреваю что он их тоже может передать, но по какому-то другому топику... Если кто уже решал подобную проблему - откликнетесь в асю 282529094 плиз. Спасибо.
Добавлено: 08 мар 2004, 23:00
Eugie
Любой DDE-сервер поддерживает
System topic и несколько
обязательных итемов в нем, которые предоставляют клиентам общую информацию о сервере. В частности, итем 'Topics' (в коде лучше использовать константу SZDDESYS_ITEM_TOPICS) возвращает список топиков (см. 'Supporting the DDE System Topic' в MSDN).
Вот как можно это сделать средствами Дельфи:
Код: Выделить всё
procedure TForm1.btnGetDataClick(Sender: TObject);
var data: PChar;
begin
memData.Lines.Text := '';
with DdeClientConv1 do begin
ServiceApplication := edServer.Text;
if SetLink(edServer.Text, 'SYSTEM') then begin
data := RequestData(SZDDESYS_ITEM_TOPICS);
{ Replace TABs (which usually used as string delimiters in DDE) on CRs. }
AnsiTABtoCR(data);
memData.Lines.Text := String(data);
StrDispose(data);
end
end;
end;