Delphi图象截取编程示例(3)

类别:Delphi 点击:0 评论:0 推荐:

(五)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;

本文地址:http://com.8s8s.com/it/it4704.htm