![]() |
Instanzen sind Pointer
Kann so etwas funktionieren?
Delphi-Quellcode:
Oder muss ich da wirklich mit "echten" Pointern arbeiten und referenzieren/dereferenzieren?
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; EDIT: ja es geht anstandslos. hab mich jetzt getraut das ganze zu kompilieren :roll: . Hab den titel jetzt umbenannt um dem ganzen wenigstens ein bisschen sinn zu geben. |
Re: Instanzen sind Pointer
Zitat:
|
Re: Instanzen sind Pointer
Zitat:
Delphi-Quellcode:
lösen.
while Assigned(current) do
|
Re: Instanzen sind Pointer
womit ihr mich gleich auf einen klammerungsfehler aufmerksam gemacht habt, es muss natürlich
Delphi-Quellcode:
heissen.
while not (current=nil) do
@jbg: ja und wie geht das einfacher? @Phoenix: ist ein Funktionsaufruf performanter als zwei boolesche operationen? vor allem angesichts dessen, dass assigned() nicht viel anderes machen wird? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz