Читаем Советы по 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;

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

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

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT
Программист-прагматик. Путь от подмастерья к мастеру
Программист-прагматик. Путь от подмастерья к мастеру

Находясь на переднем крае программирования, книга "Программист-прагматик. Путь от подмастерья к мастеру" абстрагируется от всевозрастающей специализации и технических тонкостей разработки программ на современном уровне, чтобы исследовать суть процесса – требования к работоспособной и поддерживаемой программе, приводящей пользователей в восторг. Книга охватывает различные темы – от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость и простоту в адаптации и повторном использовании.Прочитав эту книгу, вы научитесь:Бороться с недостатками программного обеспечения;Избегать ловушек, связанных с дублированием знания;Создавать гибкие, динамичные и адаптируемые программы;Избегать программирования в расчете на совпадение;Защищать вашу программу при помощи контрактов, утверждений и исключений;Собирать реальные требования;Осуществлять безжалостное и эффективное тестирование;Приводить в восторг ваших пользователей;Формировать команды из программистов-прагматиков и с помощью автоматизации делать ваши разработки более точными.

А. Алексашин , Дэвид Томас , Эндрю Хант

Программирование / Книги по IT