unit Main;

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, Menus,
  StdCtrls, Dialogs, Buttons, Messages, ExtCtrls, ComCtrls, StdActns,
  ActnList, ToolWin, ImgList,
  ActiveX, AggrLib_TLB;

type
  TMainForm = class(TForm)
    MainMenu1: TMainMenu;
    File1: TMenuItem;
    FileNewItem: TMenuItem;
    Window1: TMenuItem;
    Help1: TMenuItem;
    N1: TMenuItem;
    FileExitItem: TMenuItem;
    HelpAboutItem: TMenuItem;
    StatusBar: TStatusBar;
    ImageList1: TImageList;
    Start1: TMenuItem;
    Stop1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    procedure FileNew1Execute(Sender: TObject);
    procedure HelpAbout1Execute(Sender: TObject);
    procedure FileExit1Execute(Sender: TObject);
    procedure Start1Click(Sender: TObject);
    procedure Stop1Click(Sender: TObject);
  private
    { Private declarations }
    procedure CreateMDIChild;
  public
    { Public declarations }
    constructor Create(AOwner: TComponent); override;
  end;

var
  MainForm: TMainForm;
  OAggr:IMyXTimer;
implementation
{$R *.DFM}

uses ChildWin, About;

procedure TMainForm.CreateMDIChild;
var
  Child: TMDIChild;
begin
  { create a new MDI child window }
  Child := TMDIChild.Create(Application);
  Child.Caption := Format('Child %d',[MDIChildCount]);
end;

procedure TMainForm.FileNew1Execute(Sender: TObject);
begin
  CreateMDIChild;
end;

procedure TMainForm.HelpAbout1Execute(Sender: TObject);
begin
  AboutBox.ShowModal;
end;

procedure TMainForm.FileExit1Execute(Sender: TObject);
begin
  Close;
end;

constructor TMainForm.Create(AOwner: TComponent);
var  Obj1:ICoOuterObj;
begin
 inherited;
 if S_OK <> CoCreateInstance(CLASS_CoOuterObj,
    nil, CLSCTX_INPROC_SERVER,
    IID_ICoOuterObj, Obj1) then
   raise Exception.Create('Ýððîð 1!');
 if S_Ok <> Obj1.QueryInterface(IID_IMyXTimer, OAggr) then
   raise Exception.Create('Ýððîð 2!');
 OAggr.SetInterval(50);
end;

procedure TMainForm.Start1Click(Sender: TObject);
begin
 OAggr.Start;
end;

procedure TMainForm.Stop1Click(Sender: TObject);
begin
 OAggr.Stop;
end;

end.
