Odwołanie się do stałej w tablicy rekordów


(Mr Hektor) #1

Cześć. Mam kolejne głupie pytanie. Ułożyłem dziś taki kod:

procedure TForm1.Button1Click(Sender: TObject);

type

  TKarta = record

    Karta : string;

    Punkty : integer;

  end;

const

i : integer=1;

tablica : array[1..3] of TKarta = (

(Karta: 'dwojka.bmp'; Punkty: 2;),

(Karta: 'trojka.bmp'; Punkty: 3;),

(Karta: 'czworka.bmp'; Punkty: 4;));

begin

Randomize;

case i of

1: Image1.Picture.LoadFromFile(tablica[random(3) + 1]); //Tutaj jak mi wylosuje juz jakis indeks to chce odwolac sie do konkretnej zmiennej wylosowanego indeksu

   Label1.Caption := IntToStr(Punkty); //To samo co wyżej

2: Image2.Picture.LoadFromFile(Karta);

          end;

i:=(i+1);

        end;

end.

Moje pytanie to właśnie to które dodałem w komentarzu. Za pierwszym razem kiedy mi wylosuje indeks z tablicy to chcę odwołać się do stałej o nazwie Karta, żeby podać nazwę pliku który ma być wczytany do Image1, a za drugim do stałej o nazwie Punkty żeby w Caption1 napisać ile wylosowana przed chwilą karta daje punktów. Czy to jest to wykonalne? Jeśli tak to proszę o jakieś wskazówki. Jakby ktoś się zastanawiał to próbuje BlackJacka napisać :stuck_out_tongue:


([alex]) #2

k:=random(3)+1;

Image1.Picture.LoadFromFile(tablica[k].Karta);

Label1.Caption:=IntToStr(tablica[k].Punkty);


(Mr Hektor) #3

Heh, dzięki, tego mi brakowało. Twoja wiedza się chyba nigdy nie kończy :slight_smile: