小编Bob*_*Bob的帖子

画布不允许绘图

我想从整个屏幕到TForm1画布绘制一个屏幕截图。

该代码在Delphi XE3中运行良好

procedure TForm1.Button1Click(Sender: TObject);
var
  c,scr: TCanvas;
  r,r2: TRect;
begin

  c := TCanvas.Create;
  scr := TCanvas.Create;
  c.Handle := GetWindowDC(GetDesktopWindow);
  try

    r := Rect(0, 0, 200, 200);
    form1.Canvas.CopyRect(r, c, r);

  finally
    ReleaseDC(0, c.Handle);
    c.Free;
  end;
Run Code Online (Sandbox Code Playgroud)

现在,我想先将屏幕快照复制到另一个画布。有没有办法做到这一点而不会出现此错误?

procedure TForm1.Button1Click(Sender: TObject);
var
  c,scr: TCanvas;
  r,r2: TRect;
begin

  c := TCanvas.Create;
  scr := TCanvas.Create;
  c.Handle := GetWindowDC(GetDesktopWindow);
  try

    r := Rect(0, 0, 200, 200);

    scr.CopyRect(r,c,r); <-- Error, canvas does not allow drawing
    form1.Canvas.CopyRect(r, scr, r); <-- Error, canvas does not allow drawing …
Run Code Online (Sandbox Code Playgroud)

delphi delphi-xe3

5
推荐指数
1
解决办法
1万
查看次数

获取setup.exe文件的FileName

我如何获得安装文件本身的Exe-Name?

我想将exe文件名本身写入inno安装脚本中的变量.

Inno Setup版本5.5.3

inno-setup

4
推荐指数
1
解决办法
1717
查看次数

标签 统计

delphi ×1

delphi-xe3 ×1

inno-setup ×1