我正在Delphi 10.2中使用快速报告6。当我将quickreport源路径添加到库路径时,我在qrpdffilt.pas上收到不兼容的类型错误。
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;
有解决方案吗?
答案 0 :(得分:1)
P := @Buff[d];
会将^AnsiChar
指针分配给^pos2table
指针,所以当然编译器会抱怨,因为它们是指向不同类型的指针,但前提是您拥有{{3} }启用,在这种情况下,您需要使用类型转换来解决它,例如:
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)^;