for
hDdeTemp:= DdeClientTransaction(nil
if
DdeGetData(hDdeTemp, @DataStr, SizeOf(DataStr), 0);
Val(DataStr, DataSample[I], Err);
end
end
Paintbox1.Refresh; { Обновляем экран }
end
end
procedure
var
{ Создаем экземпляр окна DDE-клиента. Создаем окно, используя унаследованный конструктор, инициализируем экземпляр данных.}
begin
Inst:= 0;
{ Должен быть нулем для первого вызова DdeInitialize }
CallBackPtr:= nil
{ MakeProcInstance вызывается из SetupWindow }
ConvHdl:= 0;
ServiceHSz := 0;
TopicHSz:= 0;
for
ItemHSz[I]:= 0;
DataSample[I] := 0;
end
end
procedure
{ Уничтожаем экземпляр клиентского окна. Освобождаем дескрипторы DDE строк, и освобождаем экземпляр функции обратного вызова, если она существует. Также, для завершения диалога, вызовите DdeUninitialize. Затем, для завершения работы, вызовите разрушителя предка. }
var
begin
if
if
for
if
if
if
end
procedure
begin
{ Генерируем запрос DDE в ответ на выбор пункта меню DDE | Request.}
Request(ConvHdl);
end
procedure
{ Завершаем инициализацию окна сервера DDE. Выполняем те действия, которые требует правильное окно. Инициализируем использование DDEML. }
var
I: Integer;
InitOK: Boolean;
begin
CallBackPtr := MakeProcInstance(@CallBackProc, HInstance);
{ Инициализируем DDE и устанавливаем функцию обратного вызова. Если сервер отсутствует, вызов терпит неудачу. }
if
if
ServiceHSz:= DdeCreateStringHandle(Inst, DataEntryName, cp_WinAnsi);
TopicHSz:= DdeCreateStringHandle(Inst, DataTopicName, cp_WinAnsi);
InitOK := True;
{for I := Low(DataItemNames) to High(DataItemNames) do begin }
for
ItemHSz[I]:= DdeCreateStringHandle(Inst, DataItemNames[I], cp_WinAnsi);
InitOK := InitOK and
end
Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT