Урок 1. Введение в COM (TDdeClientConv, OLE). |
Автор megabax | ||||
06.12.2010 г. | ||||
Урок 1. Введение в COM (TDdeClientConv, OLE).Исходники к уроку можно скачать здесь.. Для начала давайте определимся, что такое COM и с чем его "едят". Данная аббревиатура означает Component Object Model (модель составных объектов). Эта технология создавалась с целью решить две проблемы, с которым сталкиваются программисты, работающие под Windows:
Сначала технология COM начала развиваться как технология OLE (Object Linking and Embedding - связывание и внедрение объектов). Само OLE, в свою очередь, появилось как одно из направлений DDE (Dinamic Data Excange - динамический обмен данными). Эти технологии позволяли получать и сохранять данные от приложения сервера, а так же получать информацию о самом приложении сервере. Вот сейчас мы это и продемонстрируем. на примере простенькой программы, которая отображает содержимое меню "все программы", вызываемое через кнопочку "Пуск"*: И так, положите на форму два компонента TListBox**: Затем кладем на форму компонент TDdeClientConv**: Вот та в итоге у вас должна выглядеть форма**: Свойствам DDEService и DDETopic компонента TDdeClientConv присвоим значение ProgMan**: Создадим обработчик событий формы OnCreate:
Несколько комментариев к коду. Строкой
мы обращаемся к серверу DDE программ менеджера, что бы получить список групп (поэтому мы задавали значение ProgMan у соответствующих свойств компонента TDdeClientConv). Эта функция возвращает текст в виде строки с завершающим нулем (PChar). Метод SetText устанавливает в качестве содержимого списка содержимое этой самой строки. При этом он копирует данные, преобразуя их в нужный компоненту TListBox формат. Поэтому, что бы не засорять память, нам надо уничтожить исходный буфер, выделенный системой под строку с завершающим нулем. Это мы делаем процедурой StrDispose. Затем создадим обработчик нажатия на пункт верхнего списка (назовем его lbGroups, а нижний, соответственно lbItems):
Здесь мы делаем почти тоже самое, только компоненту TDdeClientConv указываем, что бы он получил не список групп, а содержимое группы, котору в данный момент юзер выделил в списке. Теперь запускаем программу и смотрим, как он работает: (C) Шуравин Александр Скриншоты, помеченные знаком * , являются цитатами и иллюстрациями программного продукта "Windows XP", авторское право на который принадлежит корпорации "Microsoft" Скриншоты, помеченные знаком ** , являются цитатами и иллюстрациями программного продукта "Turbo Delphi", авторское право на который принадлежит "Borland Software Corporation"
|
||||
Последнее обновление ( 03.09.2013 г. ) |
« След. |
---|