Delphi 不同指针类型的不兼容类型
我正在Delphi10.2中使用QuickReport6。当我将quickreport源路径添加到库路径时,我在qrpdfilt.pas上遇到了不兼容的类型错误Delphi 不同指针类型的不兼容类型,delphi,delphi-10.2-tokyo,quickreports,Delphi,Delphi 10.2 Tokyo,Quickreports,我正在Delphi10.2中使用QuickReport6。当我将quickreport源路径添加到库路径时,我在qrpdfilt.pas上遇到了不兼容的类型错误 Var P: ^ pos2table; Buff: array of ansichar; d: dword; RGBCol:TRGBColor; PColor: TColor; Pos2table is of type packed array Incompatible types issue comes
Var
P: ^ pos2table;
Buff: array of ansichar;
d: dword;
RGBCol:TRGBColor;
PColor: TColor;
Pos2table is of type packed array
Incompatible types issue comes for following lines
P:=@Buff[d];
RGBCol:=pcolor;
有什么解决办法吗?
p:=@Buff[d]
将^AnsiChar
指针分配给^pos2table
指针,因此编译器当然会抱怨,因为它们是指向不同类型的指针,但只有在您已启用的情况下,在这种情况下,您需要使用类型转换来解决它,例如:
type
ppos2table = ^pos2table;
var
P: ppos2table;
Buff: array of ansichar;
...
P := ppos2table(@Buff[d]);
RGBCol:=pcolor
正在尝试将TColor
(整数类型,而不是指针类型)分配给TRGBColor
(可能是记录类型)。它们之间没有标准的隐式转换,因此编译器对此表示不满。您也可以使用指针类型转换来解决此问题:
type
PRGBColor = ^TRGBColor;
var
...
RGBCol: TRGBColor;
PColor: TColor;
...
RGBCol := PRGBColor(@pcolor)^;
我们不知道这些类型是什么。不过,我想你可以自己穿上它。我会帮你的。首先,阅读该错误消息的文档。Websearch会带你去的。查找所涉及类型的定义。然后错误会变得清晰。这将隐藏错误消息,但我怀疑代码是否有效:)谢谢您的回复@Remy Lebeau。错误信息消失了。我需要测试代码的功能。