Kann so etwas funktionieren?
Delphi-Quellcode:
procedure TForm1.ExpandFromListClick(Sender: TObject);
var expanded:TStringList;
reference,current:TListItem;
s:string;
begin
expanded:=TStringList.Create;
expanded.Assign(ExpandDirs(LVList.Selected.Caption + LVList.Selected.SubItems[0])); //Expanddirs liefert eine stringlist
for s in expanded do
begin
current:=LVList.Items.Insert(LVList.Selected.Index+1); //das hier sollte noch gehen, current wird automatisch zeiger.
current.Caption:=ExtractFilePath(s);
current.SubItems.Add(ExtractFileName(s))
end;
reference:=LVList.Selected; //wird auch automatisch zum zeiger
current:= LVList.GetNextItem(reference,sdbelow,[isSelected]); //current wird neu belegt
while not (current = nil) do //schleife
begin
expanded.Assign(ExpandDirs(current.Caption+current.SubItems[0]));
for s in expanded do
begin
current:=LVList.Items.Insert(LVList.Selected.Index+1); //current dient wieder als zeiger auf eingefügtes listitem
current.Caption:=ExtractFilePath(s);
current.SubItems.Add(ExtractFileName(s))
end;
reference:=current; //altes current wird neue referenz
current:=LVList.GetNextItem(reference,sdbelow,[isSelected]);//current wird neu belegt
end;
reference.Free;
current.Free;
end;
Oder muss ich da wirklich mit "echten" Pointern arbeiten und referenzieren/dereferenzieren?
EDIT:
ja es geht anstandslos. hab mich jetzt getraut das ganze zu kompilieren . Hab den titel jetzt umbenannt um dem ganzen wenigstens ein bisschen sinn zu geben.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1