Чтение онлайн

на главную - закладки

Жанры

Советы по Delphi. Версия 1.4.3 от 1.1.2001

Озеров Валентин

Шрифт:

type

 EProgManError = class(Exception);

 TProgMan = class(TComponent)

 private

FDdeClientConv: TDdeClientConv;

procedure InitDDEConversation;

function ExecMacroString(Macro: String): Boolean;

 public

constructor Create(AOwner: TComponent); override;

destructor Destroy; override;

Procedure CreateGroup(GroupName: String; ShowGroup:Boolean);

procedure DeleteGroup(GroupName: String);

procedure DeleteItem(ItemName: String);

procedure AddItem(CmdLine, ItemName: String);

 end;

implementation

uses Utils;

const

 { DDE-макростроки
для Program Manager }

 SDDECreateGroup = '[CreateGroup(%s)]';

 SDDEShowGroup = '[ShowGroup(%s, 1)]';

 SDDEDeleteGroup = '[DeleteGroup(%s)]';

 SDDEDeleteItem = '[DeleteItem(%s)]';

 SDDEAddItem = '[AddItem(%s, "%s", %s)]';

constructor TProgMan.Create(AOwner: TComponent);

begin

 inherited Create(AOwner);

 InitDDEConversation;

end;

destructor TProgMan.Destroy;

begin

 if Assigned(FDDEClientConv) then FDdeClientConv.CloseLink;

 inherited Destroy;

end;

function TProgMan.ExecMacroString(Macro: String): Boolean;

Begin

 StringAsPchar(Macro);

 Result := FDdeClientConv.ExecuteMacro(@Macro[1], False);

End;

Procedure TProgMan.InitDDEConversation;

begin

 FDdeClientConv := TDdeClientConv.Create(Self);

 If NOT FDdeClientConv.SetLink('PROGMAN', 'PROGMAN') then

raise EProgManError.Create('Не
могу установить DDE Link');

end;

Procedure TProgMan.CreateGroup(GroupName: String; ShowGroup:Boolean);

Begin

 { Удаляем группу, если она существует }ExecMacroString(Format(SDDEDeleteGroup, [GroupName]));

 If NOT ExecMacroString(Format(SDDECreateGroup, [GroupName])) then

raise EProgManError.Create('Не могу создать группу ' + GroupName);

 If ShowGroup then

If not ExecMacroString(Format(SDDEShowGroup, [GroupName])) then

raise EProgManError.Create('Не могу показать группу ' + GroupName);

End;

Procedure TProgMan.DeleteGroup(GroupName: String);

Begin

 if NOT ExecMacroString(Format(SDDEDeleteGroup, [GroupName])) then

raise EProgManError.Create('Не могу удалить группу ' + GroupName);

End;

Procedure TProgMan.DeleteItem(ItemName: String);

Begin

 if NOT ExecMacroString(Format(SDDEDeleteGroup, [ItemName])) then

raise EProgManError.Create('Не могу удалить элемент ' + ItemName);

End;

Procedure TProgMan.AddItem(CmdLine, ItemName: String);

Var

 P: PChar;

 PSize: Word;

Begin

 PSize := StrLen(SDDEAddItem) + (Length(CmdLine) *2) + Length(ItemName) + 1;

 GetMem(P, PSize);

 try

StrFmt(P, SDDEAddItem, [CmdLine, ItemName, CmdLine]);

if NOT FDdeClientConv.ExecuteMacro(P, False) then

Поделиться:
Популярные книги

Газлайтер. Том 8

Володин Григорий
8. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 8

На Ларэде

Кронос Александр
3. Лэрн
Фантастика:
фэнтези
героическая фантастика
стимпанк
5.00
рейтинг книги
На Ларэде

Охота на попаданку. Бракованная жена

Герр Ольга
Любовные романы:
любовно-фантастические романы
5.60
рейтинг книги
Охота на попаданку. Бракованная жена

Кай из рода красных драконов

Бэд Кристиан
1. Красная кость
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Кай из рода красных драконов

Хозяйка Проклятой Пустоши. Книга 2

Белецкая Наталья
2. Хозяйка Проклятой Пустоши
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Хозяйка Проклятой Пустоши. Книга 2

Безумный Макс. Поручик Империи

Ланцов Михаил Алексеевич
1. Безумный Макс
Фантастика:
героическая фантастика
альтернативная история
7.64
рейтинг книги
Безумный Макс. Поручик Империи

Потусторонний. Книга 2

Погуляй Юрий Александрович
2. Господин Артемьев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Потусторонний. Книга 2

Чапаев и пустота

Пелевин Виктор Олегович
Проза:
современная проза
8.39
рейтинг книги
Чапаев и пустота

Солнечный корт

Сакавич Нора
4. Все ради игры
Фантастика:
зарубежная фантастика
5.00
рейтинг книги
Солнечный корт

Лютая

Шёпот Светлана Богдановна
Любовные романы:
любовно-фантастические романы
6.40
рейтинг книги
Лютая

Ведьмак (большой сборник)

Сапковский Анджей
Ведьмак
Фантастика:
фэнтези
9.29
рейтинг книги
Ведьмак (большой сборник)

Наследие Маозари 4

Панежин Евгений
4. Наследие Маозари
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Наследие Маозари 4

Ученик

Губарев Алексей
1. Тай Фун
Фантастика:
фэнтези
5.00
рейтинг книги
Ученик

Начальник милиции. Книга 5

Дамиров Рафаэль
5. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции. Книга 5