Delphi Clipboard[3] HasFormat、Assign及Image图片的加载
{该文首发于博客园 滔Roy,无须授权即可转发,请自觉保留头部申明}
Delphi Clipboard[3] HasFormat、Assign及Image图片的加载
1、Assign //将给定对象分配到剪贴板
procedure TClipboard.Assign(Source: TPersistent);
begin
if Source is TPicture then
AssignPicture(TPicture(Source))
else if Source is TGraphic then
AssignGraphic(TGraphic(Source))
else inherited Assign(Source);
end;
2、HasFormat //如果剪贴板上有给定格式,则返回true
function TClipboard.HasFormat(Format: Word): Boolean;
function HasAPicture: Boolean;
var
Format: Word;
begin
Open;
try
Result := False;
Format := EnumClipboardFormats(0);
while Format <> 0 do
if TPicture.SupportsClipboardFormat(Format) then
begin
Result := True;
Break;
end
else Format := EnumClipboardFormats(Format);
finally
Close;
end;
end;
begin
Result := IsClipboardFormatAvailable(Format) or ((Format = CF_PICTURE) and
HasAPicture);
end;
3、Image图片的加载示例
3.1 加载Image1上的图片到剪贴板
if Image1.Picture = nil then Exit; //没有图片退出
Clipboard.Assign(Image1.Picture); //剪贴板加载image1上的图片
3.2 输出方式1(通过bitmap方式输出图片到Image2)
var
bmp: TBitmap;
begin
if Clipboard.HasFormat(CF_BITMAP) then begin
bmp:=TBitmap.Create;
bmp.Assign(Clipboard);
Image2.Picture.Assign(bmp);
bmp.Free;
end;
end;
3.3 输出方式2(直接输出图片到Image2)
if Clipboard.HasFormat(CF_BITMAP) then begin //HasFormat如果剪贴板上有给定格式,则返回true。
Image2.Picture.Assign(Clipboard);
end;
创建时间:2022.04.14 更新时间:
博客园 滔Roy https://www.cnblogs.com/guorongtao 希望内容对你有所帮助,谢谢!