[Delphi] Dynamiczny typ enumeracyjny...

0

To co mam na mysli to stworzenie dynamicznie typu enumeracyjnego lub tablicy dynamicznej z odwoływaniem sie do pól poprzez dynamicznie zdefiniowane nazy czyli np.

Tablica[imie]
Tablica[nazwisko]

Jeżeli to jest mozliwe jeśli nie to trudno sie mówi.

0

Zrob sobie funkcje Szukaj, która bedzie przeszukiwać tablice i zwracać nr rekordu a potem tylko: Tablica[Szukaj(Imie)]

Przykładowa: (musisz to dopracować, bo jak f-cja niczego nie znajdzie to zwroci 0, a taki rekord też istnieje)

Function Szukaj(Const S:String):Word;
Var I:Word;
Begin
Result:=0;
For I:=0 TO Length(Tablica)-1 Do If S=Tablica[I] Then
Begin
Result:=I;
Break;
End;
End;

0

Chyba zle sie wyraziłem nie mam na mysli wywolania procedury w celu sprawdzenia zawartosci komorki zeby to zwrocilo tą samą zawartość co podalem w parametrze.

Chcę dynamicznie stworzyc nowy typ np

type Nazwy = (Imie, Nazwisko, Adres)

Jak stworzyc takie cosik dynamicznie albo jak sprawic aby uzyskać efekt taki jak po zrobieniu czegos w tym stylu

type Nazwy = (Imie, Nazwisko, Adres)

var Tablica: array[Nazwy] of string;

procedure wykonaj
begin
Tablica[Imie] := 'Igor'
end;

Typ nazwy ma być generowany DYNAMICZNIE albo ma to dzialac w identyczny sposób ale dynamicznie. "identyczny" odnosi sie do działania odwołan w tablicy.

Jakby ktos nie wiedział czym jest typ enumeracyjny niech wpisze w helpie enumerated i poczyta sobie.

0

To jest bez sensu. Typ enumeracyjny, to jedynie odpowiednio przyporządkowane liczby. W czasie kompilacji zastępowany jest liczbami. Takie coś:
type Nazwy = (Imie, Nazwisko, Adres)
jest równoważne:
type Nazwy = (0, 1, 2);
A to z kolei:
type Nazwy = 0..2;
A to już zawsze zajmuje 1 bajt, więc spokojnie można zastąpić przez:
type Nazwy = Byte;
Tyle, że bez kontroli zakresu jest :)

0

No nie powiedziałbym bo jednakowoż jakoś rozpoznaje ze to jest tyle a to tyle no nie. A nawet jezeli to i tak chce wiedziec jak mozna dynamicznie je stworzyć!!

0

Nie można. To wynika z charakteru tych typów: jak pisał Dryo, kompilator każdej nazwie przypisuje liczbę. Tworząc to dynamicznie kompilator musiałby dowalić nieźle kodu dla przydzielania liczb i rozpoznawania nazw.

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