Hey,
ich würde gerne wissen, an welcher Stelle sich ein Objekt im Array befindet.
Die Funktion sollte aber mit verschiedenen Array-Typen kompatibel sein.
Ich will keine TList, TObjectList verwenden, auch wenn diese die passende
Funktion "IndexOf" mitliefern.
Ist es überhaupt möglich für ein "Array of Txyz" den gleichen Code zum heraus-
finden der Position zu benutzen, wie für ein "Array of Tabc"?
Mein Wissen über Pointer ist begrenzt, aber ich will nicht extra einen neuen
Typen definieren, um der Funktion das entsprechende Array übergeben zu können,
deshalb muss ich Pointer verwenden.
Mein Problem:
Delphi-Quellcode:
function Where(pArrayPointer, pObjekt: Pointer):integer;
var i:integer;
begin
while ((pArrayPointer[i])<>pObjekt) and (i<10000) do inc(i);
result:=i;
end;
kann nicht funktionieren, weil ich den Pointer pArrayPointer nicht als
Array definiere. Wie deklariere ich ihn als "allgemeines Array"?
Oder geht das nicht und ich muss das irgendwie so machen?:
Delphi-Quellcode:
function Where(pabcArrayPointer, pdefArrayPointer, pObjekt: Pointer):integer;
var i:integer;
begin
if pabcArrayPointer <> nil then
while ((pabcArrayPointer[i])<>pObjekt) and (i<10000) do inc(i);
if pdefArrayPointer <> nil then
while ((pdefArrayPointer[i])<>pObjekt) and (i<10000) do inc(i);
result:=i;
end;
Hier auch das selbe Problem wie oben, wie sage ich Delphi, dass der Pointer auf ein "Array of pabc" zeigt?