![]() |
ListView -> FileExists -> Checked
Hallo :>
Ich habe Folgendes Problem: ich lade in eine ListView den Inhalt einer Datei. In dieser Datei stehen Dateinamen und deren CRC32 Wert. Nun Prüfe ich wenn die Datei geladen wird, ob die Dateien die in dieser sogenannten SFV file stehen auch in diesem DIR gibt, so adde ich diese mit der FileSize in das ListView. ist die File aber nicht da, schreib ich in das ListView als SubItem 'not found' Nun Sollen auch alle gefundenen Files auch gleichzeitig die CheckBox aktiviert werden. jedoch scheitert da mein Source (ohne jegliche Fehlermeldung) ...
Delphi-Quellcode:
[edit=Daniel B]Delphi-Tags ergänzt. MFG Daniel B.[/edit]
procedure TForm1.Open1Click(Sender: TObject);
var sfvfile: TStrings; filen: string; i: integer; item: TListitem; begin if opendialog1.Execute then begin // ListView Clearen und Status auf 0 setzen ListView1.Items.Clear; ClearStatus; // SFV File auslesen sfvfile := TStringList.Create; sfvfile.LoadFromFile(opendialog1.FileName); for i := 0 to sfvfile.Count - 1 do begin // Kommentare überspringen if (Pos(';', sfvfile.Strings[i]) = 1) or (Pos(' ', sfvfile.Strings[i]) = 1) then continue; filen := Copy(sfvfile.Strings[i], 1,Pos(' ', sfvfile.Strings[i]) - 1); // Existiert Datei -> Subitem[size] - Dateigroesse -> Checke Listeneintrag if fileexists(filen) then begin item := Listview1.Items.Add; item.SubItems.Add(filen); item.SubItems.Add(IntToStr(GetFileSize(filen))); filen := sfvfile.Strings[i]; Delete(filen, 1,Pos(' ', sfvfile.Strings[i])); filen := Trim(filen); item.SubItems.Add(filen); item.SubItems.Add(''); // do not remove !!! ListView1.Items.Item[item.index].Checked := fileexists(filen); end // Existiert datei NICHT -> Subitem[size] - not found else begin if length(filen) = 0 then continue; item := Listview1.Items.Add; item.SubItems.Add(filen); item.SubItems.Add('not found'); item.SubItems.Add(''); // do not remove !!! item.SubItems.Add(''); // do not remove !!! end; end; // SFV File freigeben | Start Button enablen | Alle Not Found Files zählen sfvfile.Free; Start1.Enabled := True; Label3.Caption := IntToStr(NotFound(ListView1)) + ' Not Found'; end; end; |
Hallo sharkx,
Die einfachste Erklärung könnte sein, dass Du die TListview-Eigenschaft CheckBoxes auf false stehen hast. Gruß, Tom |
Per Hand kann ich die CheckBoxes ja aktivieren, nur in der Proecdur selbst nicht :/
CheckBoxes steht auf True! |
Hallo sharkx,
Delphi-Quellcode:
Du übergibst der Funktion GetFileSize nur einen Parameter des falschen Typs !?
GetFileSize(hFile: Cardinal: lpFileSizeHigh: Pointer): Cardinal;
Delphi 6 Professional Gruß, Tom |
hmm, noe .. GetFileSize funktioniert 1a.
Es funktioniert alles bis auf das checked = true der gefundenen files |
Liste der Anhänge anzeigen (Anzahl: 1)
Komisch ist das schon,
hast Du evtl. eine eigene GetFileSize Methode geschrieben. Gruß, Tom Ich hab Dir mal ne kleine App gebastelt ! |
Die Function GetFileSize:
Delphi-Quellcode:
Vielen dank für des kleine Programm :>
function TForm1.GetFileSize(Filename: string): integer;
var SR: TSearchRec; begin if FindFirst(Filename, faAnyFile, SR) = 0 then begin Result := SR.Size; end else begin Result := -1; end; FindClose(SR); end; [edit=Daniel B]Delphi-Tags ergänzt. MfG Daniel B.[/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:57 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-2025 by Thomas Breitkreuz