我有一个数组,我需要从数组中读取第一个值,然后在使用后读取以下值:
type
TMyCardRecord = record
CardSet:integer;
CardValue:integer;
CardPicture:TBitmap;
end;
Var
PlayerCards : array[1..12] of TMyCardRecord;
procedure TForm2.StartClick(Sender: TObject); //Start New Game Button
var
duplicate : boolean;
pc,p,i : integer;
y, filename : String;
begin
FileName:=('S1.bmp'); ;
for i := 1 to 12 do
begin
y := (playercards[i]+filename);
image1.Picture.LoadFromFile(y);
end;
当我尝试添加playercards[i]+filename
时,它会说不兼容的类型:string
和TMyCardRecord
。
我如何才能使值playercards[i]
兼容? playercards
数组包含基于其指定图像的值。我需要将值转换为integer
才能工作。
答案 0 :(得分:4)
playercards[i]
是TMyCardRecord
的一个实例。
您正尝试向此TMyCardRecord
实例添加一个字符串。未定义此字符串和自定义类型的添加
这就是“不兼容类型”的含义 - 德尔福不知道如何添加字符串和记录,因为它们完全不同,并且它们之间的添加没有定义。
您显然想要的是基于特定卡片的文件名
您需要在文件名中检索所需的值 - 可能是卡片和套装的值(CardValue
和CardSet
)。然后你需要将这些转换为字符串。您可以使用IntToStr
命令。
所以:IntToStr(playercards[i].CardValue)
和IntToStr(playercards[i].CardSet)
。
最简单的方法是创建一个获取这些值并将其转换为字符串的函数
然后将该字符串添加到filename
。