Подобная проблема возникает при создании инсталляторов и
деинсталляторов. Наиболее простой и гибкий путь - использование DDE. При
этом посылаются запросы к PROGMAN. Для этого необходимо поместить на форму
компонент для посылки DDE запросов - объект типа TDdeClientConv. Для
определенности назовем его DDEClient. Затем добавим метод для запросов к
PROGMAN:
Function TForm2.ProgmanCommand(Command:string):boolean;
var
macrocmd:array[0..88] of char;
begin
DDEClient.SetLink('PROGMAN','PROGMAN');
DDEClient.OpenLink; { Устанавливаем связь по DDE }
strPCopy(macrocmd,'['+Command+']'); { Подготавливаем ASCIIZ строку }
ProgmanCommand :=DDEClient.ExecuteMacro(MacroCmd,false);
DDEClient.CloseLink; { Закрываем связь по DDE }
end;
При вызове ProgmanCommand возвращает true, если посылка макроса была
успешна. Система команд (основных) приведена ниже:
Create(Имя группы,
путь к GRP файлу) Создать группу с именем "Имя группы", причем в нем
могут быть пробелы и знаки препинания. Путь к GRP файлу можно не указывать,
тогда он создастся в каталоге Windows.
Delete(Имя группы) Удалить
группу с именем "Имя группы"
ShowGroup(Имя группы, состояние)
Показать группу в окне, причем состояние - число, определяющее параметры
окна:
1-нормальное состояние + активация
2-миним.+
активация
3-макс. + активация
4-нормальное
состояние
5-Активация
AddItem(командная строка, имя раздела, путь к
иконке, индекс иконки (с 0), Xpos,Ypos, рабочий каталог, HotKey,
Mimimize) Добавить раздел к активной группе. В командной строке, имени
размера и путях допустимы пробелы,
Xpos и Ypos - координаты иконки в
окне, лучше их не задавать, тогда PROGMAN использует значения по умолчанию
для свободного места.
HotKey - виртуальный код горячей
клавиши.
Mimimize - тип запуска, 0-в обычном окне, <>0 - в
минимизированном.
DeleteItem(имя раздела) Удалить раздел с
указанным именем в активной группе
Пример
использования:
ProgmanCommand('CreateGroup(Комплекс программ для
каталогизации
литературы,)');
ProgmanCommand('AddItem('+path+'vbase.hlp,Справка по
VBase,'+ path +' vbase.hlp,
0, , , '+ path + ',,)');
где path - строка
типа String, содержащая полный путь к каталогу ('C:\Catalog\');
|
Copyright ©
"Мастера DELPHI" E-mail:
delphi@mastak.com
http://www.delphimaster.ru |
Источник получения информации: http://www.delphimaster.ru
|