Problem z recordami...

0

Mam problem z wariantami w rekordach.
A mianowicie:

Pancerz = record
Zuzycie : Integer;
ZuzycieMax : Integer;
case Typ: (brak, Tytanowy, Adamentowy, Helionowy) of
brak: (Przestrzen:10..10);
Tytanowy: (Przestrzen:30..30);
end;

Jak widzicie w zaleznosci od tego jaka wartosc przyjmie Typ zmienia sie
wartosc zmiennej Przestrzen.
Jednak zapisanie wartosci zmiennej w taki sposob nie wydaje mi sie zbyt
eleganckie i moze nie jest tez do konca poprawne?
Chcialbym sie dowiedziec czy mozna jakos inaczej nadac jedna wartosc
zmiennej Przestrzen. Np. Przestrzen:=30. Tylko czy mozna cos takiego zrobic
w rekordach?

Pozdrawiam i z gory dziekuje za poswiecony czas...--take care,

Wodzu

0

Nie wiem czy rozumiem o co Ci chodzi. jesli rozumiem, to nie powinienes uzywac rekordu wariantowego. jesli rozumiem rekordy wariantowe, to nie sluza one do nadawania roznych wartosci polom, ale do interpretacji pol na rozne sposoby.

np

type czteryznaki=record
case integer of
0: (znak1 : char;
znak2: char;
znak3: char;
znak4: char;);
1: (znaki12: array[1..2] of char;
znaki34: array[1..2]of char;);
end;

var
x:czteryznaki;

{...}

x.znak1:='a';
x.znak2:='s';

Label1.Caption:=string(x.znaki12); //powinno byc as

w twoim wypadku uzylbym raczej klasy z odpowiednimi wlasciwosciami

cos w stylu

property Przestrzen : integer read GetPrzestrzen;

function GetPrzestrzen:integer;
begin
case fTyp of
brak: Result:=10;
Tytanowy: Result:=30;

itd
--Pawel {Delphi 6 Personal}

Po pierwsze: naciśnij F1

0

Dzieki za pomoc, to dobre rozwiazanie.--take care,

Wodzu

1 użytkowników online, w tym zalogowanych: 0, gości: 1