(V) TMainForm's event and function and TPRinter printing application
/////////////////// Printing knowledge
[Menu Item File/Print] Event:
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; //Start printing
Canvas.Draw(0,0,Image1.Picture.Graphic); //Graphic output
EndDoc; //End printing
end;
end;
Finally
Screen.Cursor := crDefault;
end;
end;
[Menu item file/print settings] event:
procedure TMainForm.filePrintSetClick(Sender: TObject);
Begin
Screen.Cursor:=crHourglass;
PrinterSetupDialog1.Execute;
Screen.Cursor:=crDefault;
end;
[menu item edit/Preferences/ToolBar] event:
procedure TMainForm.toolbarItemClick(Sender: TObject);
Begin
toolbarItem.Checked := not toolbarItem.Checked ;
ToolBar2.Visible := toolbarItem.Checked;
end;
[MainMenu1.OnChange] Event
procedure TMainForm.MainMenu1Change(...);
Begin
filePrintItem.Enabled := MDIChildCount>0;
DrawItem.Enabled := MDIChildCount>0;
end;
[TMainForm.FormCreate] Event
procedure TMainForm.FormCreate(Sender: TObject);
Begin
CaptureNum:=0;
DefaultDirectory:=ExtractFilePath(application.ExeName);
end;
[TMainForm.FileOpen] Event
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] Events
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+' already exists, replace it?',mtInformation,[mbYES,mbNO],0)=mrYES then
DeleteFile(FileName)
else exit;
end;
Image1.Picture.saveToFile(FileName);
Caption:=FileName;
StatusBar.SimpleText := FileName;
end;
end;