Ich würde den TreeView wirklich nur als visuelle Komponente benutzten und eine interne Datenstruktur verwenden, die die Versionsnummern verwaltet. Du könntest da z.B. Pointer auf ein Record benutzen:
Delphi-Quellcode:
type
PVersionID= ^TVersionID;
TVersionID= record
MainVersion: integer;
SubVersion: PVersion;
NextVersion: PVersion;
end;
In der MainVersion speicher du nur die erste Zahl deiner Version, z.B. 1,2 oder 3. Hast du jetzt die Version 1.0.0.1 und willst nachsehen ob Version 1.0.0.2 schon existiert bzw. ggf. neu anlegen, dann läufst du erstmal ale MainVersions durch bis du bei 1 ankommst. Dann gehst du in die Subversion (das müsste dann 0 sein). Dies stimmt mit deiner neu anzulegenden Nummer überein, also gehst du noch tiefer mit Subversion rein (wieder erhälst du eine 0), das spielchen nochmal von vorne und du erhälst eine 1. Dein Programm erkennt: 1.0.0.2 gibt es noch nicht. D.h. es muss eine NextVersion angelegt werden...usw...
Hoffe, das kann man so halbwegs verstehen?!