Moin,
ich habe die gleichen Probleme gesehen und hier mal einen erweiterten Vorschlag...
Delphi-Quellcode:
type
TMyArray = array of boolean;
TMyArrays = class
private
_Arrays:array of TMyArray;
function GetArray(index: word): TMyArray;
public
constructor create;
destructor destroy; override;
function Count:word;
procedure addArray(x:array of boolean);
property Arrays[index:word]:TMyArray read GetArray;
end;
:
{ TMyArrays }
procedure TMyArrays.addArray(x: array of boolean);
var i, j:integer;
abbruch:boolean;
begin
abbruch:=false;
i:=0;
while (i < length(_Arrays)) and not abbruch do begin
if length(_Arrays[i]) = length(x) then begin
j:=0;
while (j < length(x)) and not abbruch do begin
abbruch:=(x[j] <> _Arrays[i][j]);
inc(j);
end;
abbruch:=not abbruch;
end;
if not abbruch then
inc(i);
end;
if not abbruch then begin
setlength(_Arrays, length(_Arrays)+1);
setlength(_Arrays[length(_Arrays)-1], length(x));
for i:=1 to length(x) do
_Arrays[length(_Arrays)-1][i-1]:=x[i-1];
end;
end;
function TMyArrays.Count: word;
begin
Result:=length(_Arrays);
end;
constructor TMyArrays.create;
begin
setlength(_Arrays, 0);
end;
destructor TMyArrays.destroy;
begin
setlength(_Arrays, 0);
inherited;
end;
function TMyArrays.GetArray(index: word): TMyArray;
begin
Result:=_Arrays[index];
end;
Diese Klasse realisiert dein Problem.
und hier ein Beispiel für den Aufruf:
Delphi-Quellcode:
procedure TForm.ButtonClick(Sender: TObject);
var a, b:array of boolean;
MyArrays:TMyArrays;
begin
setlength(a, 1);
a[0]:=true;
setlength(b, 1);
b[0]:=false;
MyArrays:=TMyArrays.create;
try
MyArrays.addArray(a);
MyArrays.addArray(b);
showmessage(inttostr(MyArrays.Count));
finally
MyArrays.Free;
end;
end;
hoffe es ist zuverstehen und es hilft dir...
MfG
Thorsten