2017-03-06 14 views
-1

私は一度使用、次の値を:読んでその配列から最初の値を読んでする必要がある配列を持っている私はそれをplayercards[i]+filenameを追加しよう配列から値を読み取る方法

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; 

互換性のないタイプ:stringTMyCardRecordと言います。

playercards[i]はどのようにして互換性がありますか? playercards配列には、割り当てられたイメージに基づく値が含まれています。私は考えるためにintegerに変換する必要があります。

+0

"filename"には既にファイル名がありますが、その前に何を追加したいのですか? –

+1

なぜ 'filename'を配列要素に追加しようとしていますか? –

+0

あなたの質問は、あなたの実際のファイル名がどのように見えるか、あなたの配列要素が実際に保持しているものを説明することで、より明確になります。 –

答えて

4

playercards[i]は、TMyCardRecordのインスタンスです。 TMyCardRecordのこのインスタンスに文字列を追加しようとしています。この文字列とカスタムタイプの追加は定義されていません。
「互換性のない型」とは、Delphiでは文字列とレコードをどのように追加できるかという手がかりを持っていません。

明らかに必要なのは、特定のカードに基づくファイル名です。
ファイル名に必要な値、おそらくカードとスーツの値(CardValueCardSet)を取得する必要があります。次に、これらを文字列に変換する必要があります。これにはIntToStrコマンドを使用できます。
So:IntToStr(playercards[i].CardValue)およびIntToStr(playercards[i].CardSet)

これを実行する最も簡単な方法は、これらの値を取り込んで文字列に変換する関数を作成することです。
次に、その文字列をfilenameに追加します。

関連する問題