Как прочитать значение из массива
У меня есть массив, который мне нужно прочитать первое значение из массива, а затем прочитать следующие значения, когда-то использованные:
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
,