Mam taki kod:
type
TColumnField = record
FieldName: string;
ColName: string;
Width: integer;
end;
TArrayOfCf = array of TColumnField;
PArrayOfCf = ^TArrayOfCf;
const
CF_PRZYJECIE: array[0..1] of TColumnField = (
(FieldName: 'ID'; ColName: 'ID'; Width: 20),
(FieldName: 'Name'; ColName: 'Nazwa'; Width: 50)
);
CF_KSIEGOWOSC: array[0..2] of TColumnField = (
(FieldName: 'ID'; ColName: 'ID'; Width: 0),
(FieldName: 'Group'; ColName: 'Grupa'; Width: 15),
(FieldName: 'Name'; ColName: 'Nazwa'; Width: 120)
);
Chciałbym stworzyć tablicę tych tablic. Robię tak:
CF_2: array[0..1] of PArrayOfCf = (
@CF_PRZYJECIE,
@CF_KSIEGOWOSC
);
Mam także funkcje, która zwraca mi odpowiedni CF_ w zależności od parametru:
function GetColFields(k: integer): TArrayOfCf;
var
i : integer;
begin
case k of
101 : result := TArrayOfCf (CF_2[0]);
102 : result := PArrayOfCf(CF_2[1])^;
end;
end;
.
.
.
var
CF : TArrayOfCf;
CF := GetColFields(101);
Wywołanie funkcji GetColFields wywala błąd. Nie wiem jak to obejść.
Mogę oczywiście funkcje tą zrobić tak: (To działa):
case k of
101 : begin
SetLength(b, Length(CF_PRZYJECIE));
for I := 0 to Length(CF_PRZYJECIE) - 1 do
b[I] := CF_PRZYJECIE[I];
end;
102 : begin
SetLength(b, Length(CF_KSIEGOWOSC));
for I := 0 to Length(CF_KSIEGOWOSC) - 1 do
b[I] := CF_KSIEGOWOSC[I];
end;
end;
result := b;
Proszę o pomoc.