AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Instanzen sind Pointer

Ein Thema von DGL-luke · begonnen am 21. Mai 2005 · letzter Beitrag vom 21. Mai 2005
Antwort Antwort
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#1

Instanzen sind Pointer

  Alt 21. Mai 2005, 15:31
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
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: Instanzen sind Pointer

  Alt 21. Mai 2005, 17:25
Zitat:
while not current= nil do
Das geht aber einfacher.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.611 Beiträge
 
#3

Re: Instanzen sind Pointer

  Alt 21. Mai 2005, 17:28
Zitat von jbg:
Zitat:
while not current= nil do
Das geht aber einfacher.
Dann zeig aber auch gleich wie. Ich würde sowas über while Assigned(current) do lösen.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Instanzen sind Pointer

  Alt 21. Mai 2005, 19:44
womit ihr mich gleich auf einen klammerungsfehler aufmerksam gemacht habt, es muss natürlich

while not (current=nil) do heissen.

@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?
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz