Einzelnen Beitrag anzeigen

TheAn00bis

Registriert seit: 7. Jun 2004
386 Beiträge
 
#1

Position eines Objekts im Array

  Alt 3. Apr 2006, 18:42
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?
  Mit Zitat antworten Zitat