Как прочитать значение из массива

У меня есть массив, который мне нужно прочитать первое значение из массива, а затем прочитать следующие значения, когда-то использованные:

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 на работу я думаю.

1 ответ

playercards[i] это пример TMyCardRecord, Вы пытаетесь добавить строку в этот экземпляр TMyCardRecord, Это добавление строки и пользовательского типа не определено.
Вот что означает "несовместимые типы" - Delphi не имеет ни малейшего представления о том, как можно добавлять строку и запись, потому что это совершенно разные вещи, и сложение между ними не определено.

Что вы, очевидно, хотите, это имя файла, основанное на конкретной карте.
Вам нужно получить значения, которые вы хотите в имени файла - вероятно, значение карты и масти (CardValue а также CardSet). Затем вам нужно преобразовать их в строки. Вы можете использовать IntToStr Команда для этого.
Так: IntToStr(playercards[i].CardValue) а также IntToStr(playercards[i].CardSet),

Самый простой способ сделать это - создать функцию, которая принимает эти значения и превращает их в строку.
Затем вы добавляете эту строку в filename,

Другие вопросы по тегам