如何从数组中读取值

时间:2017-03-06 14:07:59

标签: arrays delphi static record

我有一个数组,我需要从数组中读取第一个值,然后在使用后读取以下值:

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时,它会说不兼容的类型:stringTMyCardRecord

我如何才能使值playercards[i]兼容? playercards数组包含基于其指定图像的值。我需要将值转换为integer才能工作。

1 个答案:

答案 0 :(得分:4)

playercards[i]TMyCardRecord的一个实例。 您正尝试向此TMyCardRecord实例添加一个字符串。未定义此字符串和自定义类型的添加 这就是“不兼容类型”的含义 - 德尔福不知道如何添加字符串和记录,因为它们完全不同,并且它们之间的添加没有定义。

您显然想要的是基于特定卡片的文件名 您需要在文件名中检索所需的值 - 可能是卡片和套装的值(CardValueCardSet)。然后你需要将这些转换为字符串。您可以使用IntToStr命令。
所以:IntToStr(playercards[i].CardValue)IntToStr(playercards[i].CardSet)

最简单的方法是创建一个获取这些值并将其转换为字符串的函数 然后将该字符串添加到filename