Autor Beitrag
Mike_C
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 207

Win XP
D7 Enterprise
BeitragVerfasst: Do 11.03.04 14:41 
Hi

ich habe ein dynamisches array vom typ TEntry, aus dem ich gerne einen Eintrag an der Stelle index löschen möchte. kann mir jemand sagen, wie das geht?

hier mal meine Definitionen
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
type TEntry = record
  Text: string;
  Priority: boolean;
end;

var Content: array of TEntry;


wenn ich jetzt einfach sage
ausblenden Delphi-Quelltext
1:
2:
Content[index].Text := '';
Content[index].Priority := False;
und später dann wieder was in das Array rein schreibe, kann es (soweit ich weiß) dazu kommen, dass ich lücken im Array habe. kann mir jemand sagen, wie ich das vermeiden kann?

Gruß
Mike

Moderiert von user profile iconDeCodeGuru: Topic verschoben

_________________
Life is, what some people call a mystery. To me life's just a lesson, you're learning when you're through. So why do we try to understand?
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Do 11.03.04 20:44 
Hallo

einfach in einer Schleife vom zu löschenden index bis zum vorletztem Index des array die Einträge "nachrücken" (Eintrag[i]:=eintrag[i+1]) und evtl anschließend das array mit setlength anpassen. Bei einfügen genau anders rum vorgehen.

Wenn du sowas öfters brauchst, bist du vielleicht mit einer TList oder Tobjectlist besser dran, die verfügen bereits über insert,delete, move - Methoden .

Mfg Frank

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
Brainiac
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 11.03.04 22:19 
Also schneller geht's vermutlich mit Move:

ausblenden Delphi-Quelltext
1:
Move(Content[Index+1], Content[Index], (High(Content)-Index)*SizeOf(TEntry) );					


Danach einfach das Array verkleinern.
toms
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1099
Erhaltene Danke: 2



BeitragVerfasst: Do 11.03.04 22:32 
Hi,

Kannst auch mal diesen Link anschauen: www.swissdelphicente.../showcode.php?id=816