Читаем Советы по Delphi. Версия 1.4.3 от 1.1.2001 полностью

  for I := Low(ItemHSz) to High(ItemHSz) do begin

   hDdeTemp:= DdeClientTransaction(nil, 0, HConversation, ItemHSz[I], cf_Text, xtyp_Request, 0, nil);

   if hDdeTemp <> 0 then  begin

    DdeGetData(hDdeTemp, @DataStr, SizeOf(DataStr), 0);

    Val(DataStr, DataSample[I], Err);

   end; { if }

  end; { for }

  Paintbox1.Refresh; { Обновляем экран }

 end; { if }

end;


procedure TForm1.FormCreate(Sender: TObject);

var I : Integer;

{ Создаем экземпляр окна DDE-клиента. Создаем окно, используя унаследованный конструктор, инициализируем экземпляр данных.}

begin

 Inst:= 0;

 { Должен быть нулем для первого вызова DdeInitialize }

 CallBackPtr:= nil;

 { MakeProcInstance вызывается из SetupWindow }

 ConvHdl:= 0;

 ServiceHSz := 0;

 TopicHSz:= 0;

 for I := Low(DataSample) to High(DataSample) do begin

  ItemHSz[I]:= 0;

  DataSample[I] := 0;

 end;

end;


procedure TForm1.FormDestroy(Sender: TObject);

{ Уничтожаем экземпляр клиентского окна. Освобождаем дескрипторы DDE строк, и освобождаем экземпляр функции обратного вызова, если она существует. Также, для завершения диалога, вызовите DdeUninitialize. Затем, для завершения работы, вызовите разрушителя предка. }

var I : Integer;

begin

 if ServiceHSz <> 0 then DdeFreeStringHandle(Inst, ServiceHSz);

 if TopicHSz <> 0 then DdeFreeStringHandle(Inst, TopicHSz);

 for I := Low(ItemHSz) to High(ItemHSz) do

  if ItemHSz[I] <> 0 then DdeFreeStringHandle(Inst, ItemHSz[I]);

 if Inst <> 0 then DdeUninitialize(Inst); { Игнорируем возвращаемое значение }

 if CallBackPtr <> nil then FreeProcInstance(CallBackPtr);

end;


procedure TForm1.RequestUpdate1Click(Sender: TObject);

begin

 { Генерируем запрос DDE в ответ на выбор пункта меню DDE | Request.}

 Request(ConvHdl);

end;


procedure TForm1.FormShow(Sender: TObject);

{ Завершаем инициализацию окна сервера DDE. Выполняем те действия, которые требует правильное окно. Инициализируем использование DDEML. }

var

 I: Integer;

 InitOK: Boolean;

begin

 CallBackPtr := MakeProcInstance(@CallBackProc, HInstance);

 { Инициализируем DDE и устанавливаем функцию обратного вызова. Если сервер отсутствует, вызов терпит неудачу. }

 if CallBackPtr <> nil then begin

  if DdeInitialize(Inst, TCallback(CallBackPtr), AppCmd_ClientOnly,0) = dmlErr_No_Error then begin

   ServiceHSz:= DdeCreateStringHandle(Inst, DataEntryName, cp_WinAnsi);

   TopicHSz:= DdeCreateStringHandle(Inst, DataTopicName, cp_WinAnsi);

   InitOK := True;

   {for I := Low(DataItemNames) to High(DataItemNames) do begin }

   for I := 1 to NumValues do begin

  ItemHSz[I]:= DdeCreateStringHandle(Inst, DataItemNames[I], cp_WinAnsi);

    InitOK := InitOK and (ItemHSz[I] <> 0);

   end;

Перейти на страницу:

Похожие книги

Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript

Данная книга посвящена программированию игр с помощью ActionScript. Здесь вы найдете подробные указания, необходимые для создания самых разных игр – аркад, головоломок, загадок и даже игровых автоматов. В тексте приведены исходные коды программ и детальные, доступно изложенные инструкции. Базовые принципы программирования ActionScript рассматриваются на примере игр, однако вы без труда сможете применить полученные знания и для разработки неигровых проектов, таких как Web-дизайн и реклама. Рекомендации Гэри Розенцвейга помогут вам не только придумывать занимательные игры и размещать их на Web-сайте, но и оптимизировать скорость их работы, а также защищать свои творения от несанкционированного копирования. Представленный в книге код несложно изменить для использования в других программах.Книга предназначена для широкого круга читателей – создателей анимационных роликов, художников-оформителей, программистов и разработчиков Web-сайтов. Издание может также выступать в качестве практического пособия по изучению ActionScript.

Гэри Розенцвейг

Программирование, программы, базы данных / Программирование / Книги по IT
Программирование. Принципы и практика использования C++ Исправленное издание
Программирование. Принципы и практика использования C++ Исправленное издание

Специальное издание самой читаемой и содержащей наиболее достоверные сведения книги по C++. Книга написана Бьярне Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка. Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный -ориентированный подход к созданию программных продуктов. Третье издание бестселлера было существенно переработано автором. Результатом этой переработки стала большая доступность книги для новичков. В то же время, текст обогатился сведениями и методиками программирования, которые могут оказаться полезными даже для многоопытных специалистов по C++. Не обойдены вниманием и нововведения языка: стандартная библиотека шаблонов (STL), пространства имен (namespaces), механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие. Настоящее специальное издание отличается от третьего добавлением двух новых приложений (посвященных локализации и безопасной обработке исключений средствами стандартной библиотеки), довольно многочисленными уточнениями в остальном тексте, а также исправлением множества опечаток. Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук».

Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова

Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT