Mam pewien poniżej trochę kodu:
Type
TTypePay = packed record
const
{ Nie wolno zmieniać kolejności i wartości tablicy }
value1 = 'Przedpłata';
value2 = 'Pobranie';
value3 = 'Gotówka';
value4 = 'Odroczony termin płatności';
TypePay: array [1 .. 4] of string = (value1, value2, value3, value4);
end;
Function FindInTable(value: string; table: array of string):Integer;
var
x : Integer;
begin
Result := -1;
for X := Low(table) to High(table) do
if table[x] = value then Exit(X);
end;
procedure Form1.Button1;
var
numer: integer;
begin
numer := FindInTable('Przedpłata',TTypePay.TypePay);
end;
Dlaczego Low(table) w takim przypadku zwraca mi 0 a nie 1? Może się myle ale podając funkcji tablice TTypePay.TypePay tworzy ona w pamięci jej kopie gdzie początek tablicy zaczyna się od 0 i kończy na 3?
Jak rozwiązać ten problem? Wskazywać na tablicę - użyć wskaźników?