unit ChildWin; interface uses Windows, Classes, Graphics, Forms, Controls, ImageEn, Menus, ImageEnView, RulerBox, ExtCtrls, SysUtils, ImageEnProc, ImageEnIO, ieview, StdCtrls, hyieutils, iexBitmaps, hyiedefs, iesettings, iexLayers, iexRulers; type TMDIChild = class(TForm) ImageEnView1: TImageEnView; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure FormCreate(Sender: TObject); procedure ImageEnView1ImageChange(Sender: TObject); procedure ImageEnView1Progress(Sender: TObject; per: Integer); procedure ImageEnView1ViewChange(Sender: TObject; Change: Integer); private { Private declarations } public { Public declarations } Changed: boolean; end; implementation uses Main, Dialogs; {$R *.DFM} procedure TMDIChild.FormCreate(Sender: TObject); begin ImageEnView1.SelColor1 := clBlack; ImageEnView1.SelColor2 := clWhite; ImageEnView1.SetChessboardStyle(6, bsSolid); ImageEnView1.SetSelectionGripStyle(clblack, clWhite, bsClear, 3, true); ImageEnView1.Proc.UndoLimit := 20; end; procedure TMDIChild.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TMDIChild.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin CanClose := true; if Changed then case MessageDlg('Save Changes to ' + Caption + '?', mtConfirmation, [mbYes, mbNo, mbCancel], 0) of mrYes: MainForm.FileSaveItemClick(self); mrCancel: CanClose := false; end; end; // Image changed procedure TMDIChild.ImageEnView1ImageChange(Sender: TObject); begin Changed := true; MainForm.UpdateChildStatus(); end; procedure TMDIChild.ImageEnView1Progress(Sender: TObject; per: Integer); begin MainForm.ProgressBar1.Position := per; end; procedure TMDIChild.ImageEnView1ViewChange(Sender: TObject; Change: Integer); begin MainForm.UpdateChildStatus(); end; end.