Luckie hat bei diesem Ansatz eine Listbox als Container verwendet, die ihrerseits mit
Items vom Typ
TStrings die notwendige Funktionalität zum Verschieben (
Move), Tauschen (
Exchange) und auch Löschen (
Delete) anbietet.
Delphi-Quellcode:
// verschieben des zweiten Elements auf die erste Position
Listbox1.Items.Move(1, 0);
Die tatsächlichen Daten werden nach diesem Ansatz jedoch mithilfe von Pointern auf einen Record abgelegt, für die bei Erzeugen Speicher alloziiert (
GetMem bzw
New) und beim Löschen wieder freigegeben werden muss (
FreeMem bzw
Dispose).
Sieh Dir einmal die Methoden
btnAddClick und
FormDestroy genauer an...
Wenn Du später mehr mit diesen Daten vorhast, als sie in Listboxen anzuzeigen, rate ich Dir von diesem einfach scheinenden Ansatz ab. Nicht nur, weil Du gezwungen bist, für jede Menge von Elementen eine ListBox zu verwenden oder weil Du bei jedem Hinzufügen und Entfernen selbst "Hand anlegen" musst, sondern weil eine elementare Funktionalität nichts mit dem
GUI zu tun hat (spätestens wenn Du eine Kommandozeilenversion zum Sortieren Deiner Listen oä entwickeln willst, wirst Du feststellen, dass es merkwüdig ist, hierzu eine Listbox instanzieren zu müssen), oder willst Du für 5 Listen jeweils eine Listbox unsichtbar "auf Vorrat" halten, wenn Du nur eine zur Zeit anzeigen möchtest...?