Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Problem mit DynArray und SetLength
Jerk - Fr 08.08.08 21:48
Titel: Problem mit DynArray und SetLength
Ich habe eine Prozedur geschrieben um ein Feld in einem Dyn Array zu löschen und die anderen aufrücken zu lassen.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| Procedure TToolSet.DeleteField(var DynArray: array of string; Index: Integer); var i : Integer; begin if (Index > -1) and (Index < Length(DynArray)) then begin if Index<Length(DynArray)-1 then for i := Index to Length(DynArray)-2 do DynArray[i] := DynArray[i+1]; setLength(DynArray,Length(DynArray)-1); end; end; |
Beim setLength bekomme ich allerdings einen Fehler:
E2008 Inkompatible Typen
Ich habe schon @DynArray probiert, da kommt das gleiche und bei ^DynArray kommt E2035 Nicht genügend wirkliche Parameter.
Delete - Fr 08.08.08 23:22
Wie hast du denn das dynamische Array deklariert? Normaler weise sollte es so funktionieren.
Jerk - Fr 08.08.08 23:23
Der Fehler kommt beim Compilen, d.h. die Procedure wird garnicht aufgerufen.
Christian S. - Fr 08.08.08 23:24
Versuch mal:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| type TStringArray = Array of String;
Procedure TToolSet.DeleteField(var DynArray: TStringArray; Index: Integer); |
Jerk - Fr 08.08.08 23:27
Christian S. hat folgendes geschrieben: |
Versuch mal:
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| type TStringArray = Array of String;
Procedure TToolSet.DeleteField(var DynArray: TStringArray; Index: Integer); | |
Nach wie vor, Inkompatible Typen.
Wie gesagt ich rufe die Procedure nichtmal auf, der Compiler meckert bereits.
Kann jemand die Procedure mal bei sich Compilen, evtl liegt es ja an Delphi 2006 ?
jaenicke - Sa 09.08.08 01:56
Also mit Christians Tipp lässt es sich bei mir unter D 2006 aber (wie ich nicht anders erwartet hatte) kompilieren... :nixweiss: :gruebel:
Jerk - Sa 09.08.08 11:59
Habe es heute nochmal ausprobiert, jetzt funktionierts. Bei der Umsetzung von Christain S. Vorschlag hab ich gestern wohl irgendwas falsch gemacht.
Vielen Dank aufjedenfall jetzt funktioniert es!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!