(五)TMainForm的事件和函数 和 TPrinter打印应用
////////// 打印知识
[菜单项file\打印] 事件:
procedure TMainForm.filePrintItemClick(Sender: TObject);
begin
{kh1}print;{kh2}
Screen.Cursor := crHourglass;
try
if MDIChildCount<>0 then
with ActiveMDIChild as TMDIChild do begin
with Printer do begin
BeginDoc; //开始打印
Canvas.Draw(0,0,Image1.Picture.Graphic); //图形输出
EndDoc; //结束打印
end;
end;
finally
Screen.Cursor := crDefault;
end;
end;
[菜单项file\打印设置] 事件:
procedure TMainForm.filePrintSetClick(Sender: TObject);
begin
Screen.Cursor:=crHourglass;
PrinterSetupDialog1.Execute ;
Screen.Cursor:=crDefault;
end;
[菜单项edit\Preferences\ToolBar] 事件:
procedure TMainForm.toolbarItemClick(Sender: TObject);
begin
toolbarItem.Checked := not toolbarItem.Checked ;
ToolBar2.Visible := toolbarItem.Checked;
end;
[MainMenu1.OnChange] 事件
procedure TMainForm.MainMenu1Change(...);
begin
filePrintItem.Enabled := MDIChildCount>0;
DrawItem.Enabled := MDIChildCount>0;
end;
[TMainForm.FormCreate] 事件
procedure TMainForm.FormCreate(Sender: TObject);
begin
CaptureNum:=0;
DefaultDirectory:=ExtractFilePath(Application.ExeName);
end;
[TMainForm.FileOpen] 事件
procedure TMainForm.OpenDialogExecute(Sender: TObject);
begin
OpenDialog.InitialDir := DefaultDirectory;
if OpenDialog.Execute then
begin
DefaultDirectory:=ExtractFileName(OpenDialog.FileName);
CreateMDIChild(OpenDialog.FileName,false);
end;;
end;
[TMainForm.FileSave、TMainForm.FileSaveAs] 事件
procedure TMainForm.FileSave1Execute(Sender: TObject);
begin
with ActiveMDIChild as TMDIChild do begin
FileName:=ExtractFileName(caption);
FileName:=DefaultDirectory+FileName;
SaveDialog.FileName:=FileName;
if not SaveDialog.Execute then exit;
FileName:=SaveDialog.FileName ;
DefaultDirectory:=ExtractFileName(FileName);
if FileExists(FileName)then begin
if MessageDlg(FileName+' 已存在,替换它吗?',mtInformation,[mbYES,mbNO],0)=mrYES then
DeleteFile(FileName)
else exit;
end;
Image1.Picture.saveToFile(FileName);
Caption:=FileName;
StatusBar.SimpleText := FileName;
end;
end;