gpt4 book ai didi

delphi - TBitmap.Create 在 delphi 控制台应用程序中不起作用

转载 作者:行者123 更新时间:2023-12-03 14:39:42 25 4
gpt4 key购买 nike

我需要使用控制台应用程序处理一组 bmp 文件,我正在使用 TBitmap 类,但由于此错误,代码无法编译

E2003 Undeclared identifier: 'Create'

此示例应用程序重现了该问题

{$APPTYPE CONSOLE}

{$R *.res}

uses
System.SysUtils,
Vcl.Graphics,
WinApi.Windows;

procedure CreateBitMap;
Var
Bmp : TBitmap;
Flag : DWORD;
begin
Bmp:=TBitmap.Create; //this line produce the error of compilation
try
//do something
finally
Bmp.Free;
end;
end;

begin
try
CreateBitMap;

except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.

为什么这段代码无法编译?

最佳答案

问题在于您的uses子句的顺序,WinApi.Windows和Vcl.Graphics单元有一个名为TBitmap的类型,当编译器发现不明确类型时使用最后一个单元解析类型存在的用途列表。在本例中,使用 Windows 单元的 TBitmap,它指向 BITMAP WinAPi 结构,要解决此问题,请将单位顺序更改为

uses
System.SysUtils,
WinApi.Windows,
Vcl.Graphics;

或者您可以使用完整限定名称来声明类型,如下所示

procedure CreateBitMap;
Var
Bmp : Vcl.Graphics.TBitmap;
Flag : DWORD;
begin
Bmp:=Vcl.Graphics.TBitmap.Create;
try
//do something
finally
Bmp.Free;
end;
end;

关于delphi - TBitmap.Create 在 delphi 控制台应用程序中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10474943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com