(一)建立項目
new Items-->Projects-->MDI Application
(二)重新設計MDI子窗體--ChildWin,實現抓取的圖象在ChildWin中顯示。
在ChildWin子窗體中去掉原有的Memo1控件,添加Image控件,Image1.Align=alClIEnt。
Image1.AutoSize=ture表示原尺寸顯示,Strech=false表示不按對象框顯示。
(三)主界面修改
1)去掉 menu,toolbar,ActionList 中與 paste,new 相關的項
2)添加 PrinterSetupDialog1,SaveDialog 控件到MainForm .
添加菜單項file打印,屬性name為filePrintItem;
添加菜單項file打印設置,屬性enabled=false,name為filePrintSet;
添加菜單項editDraw ,它的屬性enabled=false ;
添加菜單項editPreferences,設置它為包含字菜單(create Submenu);
添加菜單項editPreferencesConfiguration;
添加菜單項editPreferencesToolBar,它的checked=true,name=toolbarItem;
添加菜單Image;
添加菜單項ImageCapture Desktop;
添加菜單項ImageCapture Area;
添加菜單項ImageCapture Windows or Controls;
添加菜單項ImageCapture Icon
添加四個toolbar button 到 toolbar,對應Image菜單下的四個菜單項。
添加四個Action到ActionList:cptDestop,cptArea,cptWindows,cptIcon;
將Image菜單下的四個菜單項 的action屬性分別對應上面四個Action;
將新增的四個toolbar button的action屬性分別對應上面四個Action。
3)在Main單元中把implementation的uses CHILDWIN移到interface的uses中,
添加ScrnCpt到interface的uses中;
在TMainForm的public中添加定義:
Child: TMDIChild;
CaptureNum:integer;
FileName:String;
DefaultDirectory:string;
4)在TMainForm添加私有函數:procedure Delay(msecs:integer)
procedure TMainForm.Delay(msecs:integer); //實現延時
var FirstTickCount:Longint;
begin
FirstTickCount:=GetTickCount; //Windows啟動到現在的時間(豪秒)
repeat
begin
Application.ProcessMessages; //中斷程序讓Windows能響應發生的事件
end;
until ((GetTickCount-FirstTickCount)>=Longint(msecs));
end;
5)修改[TMainForm.CreateMDIChild]過程:
去掉變量var Child: TMDIChild,添加參數newFile
procedure TMainForm.CreateMDIChild(const Name: string;newFile:boolean);
begin
Child := TMDIChild.Create(Application); { create a new MDI child window }
Child.Caption := Name;
if (not newFile)and(Name<>'') then begin
Child.Image1.Picture.Bitmap.LoadFromFile(Name);
Child.HorzScrollBar.Range := Child.Image1.Picture.Width;
Child.VertScrollBar.Range := Child.Image1.Picture.Height;
end;
end;