Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi ich glaub ich bin blind?! (https://www.delphipraxis.net/4350-ich-glaub-ich-bin-blind.html)

sharkx 25. Apr 2003 14:52


ich glaub ich bin blind?!
 
ich seh den fehler nit :/

Problem:
Ich öffne eine datei, lese die dateinamen aus dieser datei heraus und füge sie mit der dateigroesse in ein ListView ein. gleichzeitig möchte ich die Dateien, die auch wirklich da sind, in der listview nen haken haben. Aber genau dort scheitert es.

Delphi-Quellcode:
ListView1.Items.Item[i].Checked := True;
funktioniert nicht

Ganzer source:


Delphi-Quellcode:
procedure TForm1.Open1Click(Sender: TObject);
var
  sfvfile: TStrings;
  filen: string;
  i: integer;
  item: TListitem;
begin
  if opendialog1.Execute then
  begin
    sfvfile := TStringList.Create;
    sfvfile.LoadFromFile(opendialog1.FileName);
    for i := 0 to sfvfile.Count - 1 do
    begin
      if (Pos(';', sfvfile.Strings[i]) = 1) or (Pos(' ', sfvfile.Strings[i]) = 1) then
        continue;
      // Kommentare überspringen
      filen := Copy(sfvfile.Strings[i], 1,Pos(' ', sfvfile.Strings[i]) - 1);
      if fileexists(filen) then
      begin
        item := Listview1.Items.Add;
        item.SubItems.Add(filen);
        item.SubItems.Add(IntToStr(GetFileSize(filen)));
        ListView1.Items.Item[i].Checked := True;
      end
      else
      begin
        if length(filen) = 0 then continue;
        item := Listview1.Items.Add;
        item.SubItems.Add(filen);
        item.SubItems.Add('not found');
      end;
    end;
    Memo1.Lines.Add('Sfv File Loading Complete');
    sfvfile.Free;
    Start1.Enabled := True;
  end;
end;
[edit=Daniel B]Delphi-Tags ergänzt. MfG Daniel B.[/edit]

Dezipaitor 25. Apr 2003 15:14

hey
ich geb dir da einen tipp,

wenn sowas ist, ein blackout,
dann würde ich einfach mal den pc ausschalten und eine leichte
lektüre lesen (nix mit pc)!
einfach entspannen und an etwas anderes denken.
so mache ich es immer :)

danach kannste wieder dich an den quellcode wagen.

und da haste ja schon die fehlerhafte zeile gepostet :D
Delphi-Quellcode:
ListView1.Items.Item[i].Checked := True;
das i ist nämlich für die Stringlist gedacht und nicht für
das listview.

ich würde das dann so schreiben
Delphi-Quellcode:
if fileexists(filen) then
   begin
    item := Listview1.Items.Add;
    item.SubItems.Add(filen);
    item.SubItems.Add(IntToStr(GetFileSize(filen)));
   end
   else
   begin
    if length(filen) = 0 then continue;
    item := Listview1.Items.Add;
    item.SubItems.Add(filen);
    item.SubItems.Add('not found');
   end;

 ->>>>>>> ListView1.Items.Item[item.index].Checked := fileexists(filen);
[edit=Daniel B]Delphi-Tags ergänzt. MfG Daniel B.[/edit]

sharkx 25. Apr 2003 15:27

Tausend Dank ...

Ich hab vor lauter Bäume den Wald nimmer gesehen :/

In zukunft werde ich deinen rat befolgen und nen Comic lesen *gg*


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