Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Listview einträge laden funzt nicht ganz!! (https://www.delphipraxis.net/15440-listview-eintraege-laden-funzt-nicht-ganz.html)

Wadim 28. Jan 2004 18:46


Listview einträge laden funzt nicht ganz!!
 
hi,

wie schon oben steht versuche ich die listview einträge (items) von einer ini datei zu laden. das speicher hab ich hingekriegt aber das laden funzt irgendwie nicht so wie ich will. der fehler ist das er alles in einer spalte laden, weiß einer warum??

hier erstmal der quellcode:

Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var a,b : integer;
begin
ListItem := ListView1.Items.Add;
with TIniFile.Create((ExtractFilePath(ParamStr(0))+'Einstellungen.ini')) do
  a := readinteger('index','count',0); //definiere ich schon beim speichern damit er weiß wieviel einträge er laden soll
  label1.Caption := inttostr (a);
  b := 1;
  while b <= a do begin
    with TIniFile.Create((ExtractFilePath(ParamStr(0))+'Einstellungen.ini')) do begin
      try
      listitem.Caption := readstring ('Erster Eintrag','Position' + inttostr(b),'');
      listitem.SubItems.Add(readstring ('Zweiter Eintrag','Position' + inttostr(b),''));
      listitem.SubItems.Add(''); // da ich 3 einträge habe und der 3 vorest mal leer sein soll
      b := b +1;
      finally
      free;
      end;
    end;
  end;
end;

APP 28. Jan 2004 18:58

Re: Listview einträge laden funzt nicht ganz!!
 
Hallo Wadim,

Code:
 

procedure TForm1.Button3Click(Sender: TObject);
var a,b : integer;
begin

with TIniFile.Create((ExtractFilePath(ParamStr(0))+'Einstellungen.ini')) do
  a := readinteger('index','count',0); //definiere ich schon beim speichern damit er weiß wieviel einträge er laden soll
  label1.Caption := inttostr (a);
  b := 1;
  while b <= a do begin
    with TIniFile.Create((ExtractFilePath(ParamStr(0))+'Einstellungen.ini')) do begin
      try
      [color=red][b]ListItem := ListView1.Items.Add;[/b] [/color]
      listitem.Caption := readstring ('Erster Eintrag','Position' + inttostr(b),'');
      listitem.SubItems.Add(readstring ('Zweiter Eintrag','Position' + inttostr(b),''));
      listitem.SubItems.Add(''); // da ich 3 einträge habe und der 3 vorest mal leer sein soll
      b := b +1;
      finally
      free;
      end;
    end;
  end;
end;

Ich denke, Du mußt für jeden neuen Eintrag ein neues Listitem "adden".

Warum schreibst Du 2x

Delphi-Quellcode:
with TIniFile.Create((ExtractFilePath(ParamStr(0))+'Einstellungen.ini')) do

Wadim 28. Jan 2004 19:15

Re: Listview einträge laden funzt nicht ganz!!
 
huhuu - thx es geht, warum ich nur nicht selbst drauf gekommen bin :wall:

ich schreibe dies 2 x weil wenn ich es nur einmal schreibe dann sagt er mir das readstring ein undefinierter bezeichern ist - warum weiß ich nicht??

weißt du es vielleicht??

APP 28. Jan 2004 19:23

Re: Listview einträge laden funzt nicht ganz!!
 
Hallo Wadim,

Code:
with TIniFile.Create((ExtractFilePath(ParamStr(0))+'Einstellungen.ini')) do
[color=red][b]BEGIN[/b][/color] [color=darkblue]// hast Du vergessen :-)[/color]
  a := readinteger('index','count',0); //definiere ich schon beim speichern damit er weiß ...
  label1.Caption := inttostr (a);
  b := 1;
  while b <= a do begin
...

Wadim 28. Jan 2004 19:26

Re: Listview einträge laden funzt nicht ganz!!
 
Zitat:

Zitat von APP
Hallo Wadim,

Code:
with TIniFile.Create((ExtractFilePath(ParamStr(0))+'Einstellungen.ini')) do
[color=red][b]BEGIN[/b][/color] [color=darkblue]// hast Du vergessen :-)[/color]
  a := readinteger('index','count',0); //definiere ich schon beim speichern damit er weiß ...
  label1.Caption := inttostr (a);
  b := 1;
  while b <= a do begin
...

hmmm - er startet zwar aber kratzt beim laden ab :?

aber du hast recht - hab dort wirklich ein begin vergessen :thuimb:

APP 28. Jan 2004 19:32

Re: Listview einträge laden funzt nicht ganz!!
 
Hallo Wadim,
nachdem ich noch einemal nachgelesen habe, meine ich

Code:
with TIniFile.Create((ExtractFilePath(ParamStr(0))+'Einstellungen.ini')) do
[color=red][b]TRY[/b][/color] [color=darkblue]// IST BESSER [/color]
  a := readinteger('index','count',0); //definiere ich schon beim speichern damit er weiß ...
  label1.Caption := inttostr (a);
  b := 1;
  while b <= a do begin
...
Du solltest unbedingt wegen dem Create einen Ressourcenschutzblock (mit "Try/Except/End" wie Du es beim 2. With ja richtig machstest) statt einem Begin/End verwenden.

Wadim 28. Jan 2004 19:43

Re: Listview einträge laden funzt nicht ganz!!
 
Zitat:

Zitat von APP
Hallo Wadim,
nachdem ich noch einemal nachgelesen habe, meine ich

Code:
with TIniFile.Create((ExtractFilePath(ParamStr(0))+'Einstellungen.ini')) do
[color=red][b]TRY[/b][/color] [color=darkblue]// IST BESSER [/color]
  a := readinteger('index','count',0); //definiere ich schon beim speichern damit er weiß ...
  label1.Caption := inttostr (a);
  b := 1;
  while b <= a do begin
...
Du solltest unbedingt wegen dem Create einen Ressourcenschutzblock (mit "Try/Except/End" wie Du es beim 2. With ja richtig machstest) statt einem Begin/End verwenden.

joah - danke für die hilfe :thuimb:

mfg wadim


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:02 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