【问题标题】:Cannot assign TBitmapOfItem to TClipBoard?无法将 TBitmapOfItem 分配给 TClipBoard?
【发布时间】:2019-05-06 17:44:35
【问题描述】:

我需要裁剪 pdf 并通过将裁剪后的 png 图像粘贴到 word 文档中来创建该裁剪后的 png 图像的 word 文档。

我正在使用 Firemonkey 平台

这是代码:

    procedure TForm2.Button1Click(Sender: TObject);
    begin
     ShellExecute(FormToHWND(Self),'open',PChar(GetCurrentDir+'\cairo.exe')
     ,PWideChar('-opw '+Edit1.Text+
     ' -cropbox -png -x 64 -y 215 -W 144 -H 375 -r 167 '+
     PdfFile+' tools/card'),'',SW_Hide);
     Sleep(500);
     Image1.Bitmap.LoadFromFile(Output);
    end;

    procedure TForm2.Button2Click(Sender: TObject);
    begin
         ClipBoard.Assign(Image1.Bitmap);
    end;

        procedure TForm2.FormCreate(Sender: TObject);
    begin
    Output:= GetCurrentDir+'\tools\card-1.png';
    end; 

单击 button2 会弹出错误无法将 TBitmapOfItem 分配给 TClipBoard

如何将图片复制到剪贴板并创建word文档(不太了解)?

【问题讨论】:

  • 不要破坏剪贴板对象。使用从文件加载的位图而不是古怪的 ShellExecute 来测试复制到剪贴板。一旦成功,您需要修复 ShellExecute 以不使用睡眠。问题也比较模糊。这里看不到任何word文档。
  • @DavidHeffernan 正如你所说,我删除了剪贴板的破坏,但错误是一样的。我正在使用睡眠,因为 pdftocairo.exe 需要花时间在驱动器中创建 png 文件,我正在将其加载到 TImage 中,但无法复制让我感到困惑的内容。
  • 我的建议是分解问题。暂时忘掉这些开罗的东西吧。专注于学习如何将位图复制到剪贴板。一旦您有了minimal reproducible example,我们就可以告诉您出了什么问题。但这是混乱、混乱和低质量的。请通过干净的minimal reproducible example来改进问题。
  • 我的意思是我可以猜到这个问题与您在 Firemonkey 应用程序中使用 VCL 代码有关。但不要让我们猜测。这个网站是关于持久的帖子。质量和清晰度对我们很重要。
  • 在 FMX 中使用剪贴板的方法如下:Multi-Device Apps and Clipboard Support

标签: delphi firemonkey word poppler delphi-10.3-rio


【解决方案1】:

如何在 FMX 中将一些图像复制到剪贴板的简单示例:

uses
  FMX.Platform;

...

procedure TForm1.Button1Click(Sender: TObject);
var
  VClipboard: IFMXClipboardService;
begin
  if TPlatformServices.Current.SupportsPlatformService(IFMXClipboardService, VClipboard) then begin
    Image1.Bitmap.LoadFromFile('c:\image_1.png');
    VClipboard.SetClipboard(Image1.Bitmap);
  end;
end;

有关在 FMX 应用程序中使用剪贴板的更多信息:Multi-Device Apps and Clipboard Support

【讨论】:

  • 我的 uses 子句是 FMX.Platform.Win,所以它没有找到 IFMXClipboardService。请帮我创建word文档以将复制的图像粘贴到文档中吗?
  • @Winsye 一个问题就是一个要解决的问题。我在剪贴板方面帮助了你,再问一个问题,也许有人会在 Word 方面帮助你。
猜你喜欢
  • 2020-03-31
  • 2012-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-30
  • 2021-06-21
  • 2013-02-11
相关资源
最近更新 更多