Hallo
Ich arbeite zwar schon eine weile mit Delphi aber ich hab noch nicht so den Durchblick bei der Typisierung, deswegen diese (möglichweise blöde) Frage:
Kann ich ein Feld aus unterschiedlichen Arrays (unterschiedliche Records) vergleichen?
Konkret soll das bedeuten dass eine Funktion einen beliebigen Array annehmen soll und darin ein bestimmtes Feld kontrollieren soll (welches immer da ist) während die anderen egal sind.
Pseudocode:
Delphi-Quellcode:
type
rRec1 = record
foo:byte;
flag:boolean;
end;
rRec2 = record
bar:string;
flag:boolean;
end;
function hasFlag(aData:array):boolean;
var
arrayA:array[0..12] of rRec1;
arrayB:array[0..100] of rRec2;
implementation
//irgendein flag auf true?
function hasFlag(aData:array):boolean;
var x:cardinal;
begin
result := false;
for x := low(aData) to high(aData) do
if aData[x].flag = true then
begin
result := true;
break;
end;
end;
das ganze geht natürlich nicht denn ich weiss nicht was ich als Typ for den Parameter aData angeben soll. irgendwie geht da nichts und typecasting ist anscheinend auch nicht möglich da so ein record nicht gerade sehr flexibel ist.
mit Objekten/Klassen wär das wohl einfacher, da gibts ja die Vererbung. der Code ist aber mit Records gemacht da dies bisher ausreichte.
Kann man das irgendwie auch sonst elegant lösen? Denn ich will schon bei den arrays bleiben, auch wenn es nicht optimal ist. Die ganze Applikation baut drauf auf. Sonst müsste ich halt eine Schlaufe für jeden einzelnen Array schreiben.
Dazu kommt dass ich sonst viel mit PHP mache und daher gewöhnt bin dass man mit array so ziemlich alles erdenkbare machen kann.
Dulcet Airman