首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 將窗體客戶區圖像保存至文件或剪貼簿

     編輯:Delphi

概述

TForm.GetFormImage 可快速獲取窗體客戶區的位圖,配合 TBitmap.SaveToFile 與 Clipboard.SetAsHandle 即可實現保存與複製。

完整代碼範例

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses Clipbrd;

{ 保存為圖片文件 }
procedure TForm1.Button1Click(Sender: TObject);
var
  bit: TBitmap;
begin
  bit := TBitmap.Create;
  try
    bit.Assign(Self.GetFormImage);
    bit.SaveToFile('c:\temp\img1.bmp');
  finally
    bit.Free;
  end;
end;

{ 一行代碼完成保存 }
procedure TForm1.Button2Click(Sender: TObject);
begin
  Self.GetFormImage.SaveToFile('c:\temp\img2.bmp');
end;

{ 複製到剪貼簿 }
procedure TForm1.Button3Click(Sender: TObject);
var
  Format: Word;
  Data: Cardinal;
  APalette: HPALETTE;
begin
  GetFormImage.SaveToClipboardFormat(Format, Data, APalette);
  Clipboard.SetAsHandle(Format, Data);
end;

end.

關鍵點說明

  • GetFormImage 返回窗體客戶區的快照,不含邊框、標題欄。
  • 剪貼簿操作需引用 Clipbrd 單元,調用 SaveToClipboardFormat 獲取格式數據,再用 SetAsHandle 放入。
  • 注意釋放位圖對象,避免內存洩漏。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved