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

ЖАНРЫ

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

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

Шрифт:

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

 finally

FreeMem(P, PSize);

 end;

End;

end.

GROUPFILE и ADDITEM для групп

Delphi 1

Вот код для создания файла группы и добавления в группу файла-элемента. Чтобы использовать эту процедуру, определите DDE clientconv App

как ProgMan.

procedure TMainForm.CreateWinGroup(Sender: TObject);

var

 Name: string;

 Name1: string;

 Macro: string;

 Macro1: string;

 Cmd, Cmd1: array[0..255] of Char;

begin

 {destDir - dos-каталог, хранящий YourFile.Ext'}

 Name := 'GroupName';

 Name1 := destDir + 'YourFile.Ext, FileName_in_Group ';

 Macro := Format('[CreateGroup(%s)]', [Name]) + #13#10;

 Macro1 :=Format('[Additem(%s)]',[Name1]) +#13#10;

 StrPCopy(Cmd, Macro);

 StrPCopy(cmd1, Macro1);

 DDEClient.OpenLink;

 if not DDEClient.ExecuteMacro(Cmd, False) then

MessageDlg('Невозможно создать группу '+Name, mtInformation, [mbOK], 0)

 else begin

DDEClient.ExecuteMacro(Cmd1, False);

 end;

 DDEClient.CloseLink;

end;

Как можно работать с DDE под Delphi, используя вызовы API?

Delphi 3

Кстати, достаточно легко: следующий пример демонстрирует как можно научить общаться клиентскую программу с программой-сервером. Обе программы полностью созданы на Delphi. В итоге мы имеем 2 проекта, 3 формы и 3 модуля. Для работы с DDE-запросами данный пример использует методы DDE ML API.

Сервер должен начать свою работу перед тем, как клиент будет загружен. Данный пример демонстрирует 3 способа взаимодействия между клиентом и сервером:

1. Клиент может "пропихивать" (POKE) данные на сервер.

2. Сервер может автоматически передавать данные клиенту, после чего клиент обновляет свой вид на основе результатов, полученных от сервера.

3. Данные сервера изменяются, после чего клиент делает запрос серверу для получения новых данных и обновляет свой вид.

Как работает программа.

Ниже приведены 8 файлов, сконкатенированных в единое целое. Каждый файл имеет следующую структуру:

{ *** НАЧАЛО КОДА FILENAME.EXT *** } КОД { *** КОНЕЦ КОДА FILENAME.EXT *** },

поэтому вам остается всего-лишь взять код, расположенный между маркерами { *** }, скопировать в файл с соответствующим именем, и собрать оба проекта в среде Delphi.

{ *** НАЧАЛО КОДА DDEMLCLI.DPR *** }

program Ddemlcli;

uses Forms,Ddemlclu in 'DDEMLCLU.PAS' {Form1};

{$R *.RES}

begin

 Application.CreateForm(TForm1, Form1);

 Application.Run;

end.

{ ***
КОНЕЦ КОДА DDEMLCLI.DPR *** }

{ *** НАЧАЛО КОДА DDEMLCLU.DFM *** }

object Form1: TForm1

 Left = 197

 Top = 95

 Width = 413

 Height = 287

 HorzScrollBar.Visible = False

 VertScrollBar.Visible = False

 Caption = 'Демонстрация DDEML, Клиентское приложение'

 Font.Color = clWindowText

 Font.Height = -13

 Font.Name = 'System'

 Font.Style = []

 Menu = MainMenu1

 PixelsPerInch = 96

 OnCreate = FormCreate

 OnDestroy = FormDestroy

 OnShow = FormShow

 TextHeight = 16

 object PaintBox1: TPaintBox

Left = 0

Top = 0

Width = 405

Height = 241

Align = alClient

Color = clWhite

ParentColor = False

OnPaint = PaintBox1Paint

 end

 object MainMenu1: TMainMenu

Top = 208

object File1: TMenuItem

Caption = '&Файл'

object exit1: TMenuItem

Caption = 'В&ыход'

OnClick = exit1Click

end

end

object DDE1: TMenuItem

Caption = '&DDE'

object RequestUpdate1: TMenuItem

Caption = '&Запрос на обновление'

OnClick = RequestUpdate1Click

end

object AdviseofChanges1: TMenuItem

Caption = '&Сообщение об изменениях'

OnClick = AdviseofChanges1Click

end

object N1: TMenuItem

Caption = '-'

end

Поделиться с друзьями: