![]() |
Array ohne typ, aber wie ?
Hallo,
ich habe mehre array unterschiedlichen typs und nun möchte ich gerne eine funktion haben die mit allen typen was anfangen kann in etwa so: procedure DeleteArrayItem(Liste: array of) // aber das geht ja leider nicht :( hat jemmand eine idee ??? meine derzeitige delete funktion sieht so aus:
Delphi-Quellcode:
procedure TBO.DeleteBall(Index:Integer);
var i:Integer; begin if Length(ball) -1 >= 1 then begin for i:=Index to HIGH(BALL) do BALL[i]:=BALL[i+1]; SetLength(BALL,Length(ball)-1 ); end; end; |
Re: Array ohne typ, aber wie ?
Zitat:
versuch mal
Delphi-Quellcode:
mfG
array of const
mirage228 |
Re: Array ohne typ, aber wie ?
schreib' in den Type Beriech:
TStringDynArray = array of string; Und dann nimm Als Variablentyp TStringDynArray |
Re: Array ohne typ, aber wie ?
Schonmal den Typ Variant angeguckt?
Mit einem Array of Variant kannst Du so ziemlich alles machen. |
Re: Array ohne typ, aber wie ?
ist der typ dann egal ???
|
Re: Array ohne typ, aber wie ?
Wenn Du das gleich richtig machen willst 8) dann verwende verkettete dynamische Listen. Damit geht das garantiert. :P
|
Re: Array ohne typ, aber wie ?
Zitat:
|
Re: Array ohne typ, aber wie ?
"Array of Pointer", und die pointer dann auf dynamisch angelegte Variablen.
Ich hab zwar nicht direkt im Kopf, wie ich dynamisch Speicher anfordern kann, aber so würd ich's in C machen. Statt nem Array geht natürlich auch ne (verkettete) Listenklasse. [edit] natürlich sind dann Typecasts unumgänglich |
Re: Array ohne typ, aber wie ?
Zitat:
Delphi-Quellcode:
Ansonsten sind das normale dynamische Arrays (SetLengtht usw.) Schau mal in der Hilfe unter dem Stichwort VarType nach, da bekommst Du alles aufgelistet.
// Deklaration
var Ball : Array of Variant; // Konstante Zuweisung Ball := VarArrayOf([1, "Zwei", now]); // Abfrage der Werte if VarType(Ball[i]) = varString then... |
Re: Array ohne typ, aber wie ?
ich habs jetzt so gemacht:
Delphi-Quellcode:
aber egal wie ich es mache: schreibe ich z.b. array of const bekomme ich immer den gleichen fehler bei setLength:[Fehler] Tools.pas(87): Inkompatible Typen
procedure DeleteArrayItem(liste:array of Variant; Index:Integer);
var i:Integer; begin if Length(liste) -1 >= 1 then begin for i:=Index to HIGH(liste) do liste[i]:=liste[i+1]; SetLength(liste,Length(liste)-1 ); end; end; woran liegt das ????? was mache ich falsch ! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz