Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Problem mit Search procedure (https://www.delphipraxis.net/112909-problem-mit-search-procedure.html)

Darksniper 29. Apr 2008 13:08


Problem mit Search procedure
 
Hi all.

Kann mir jemand hierbei helfen.
Immer wenn ich mit dieser procedure suche dann tritt eine Exeption auf.

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt TXT.exe ist eine Exception der Klasse EAccessViolation mit der Meldung 'Zugriffsverletzung bei Adresse 00456CB2 in Modul 'TXT.exe'.
Lesen von Adresse 00000000' aufgetreten.

Hier mal der Code:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ExtCtrls, ComCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    Memo1: TMemo;
    Splitter1: TSplitter;
    Datei: TMenuItem;
    Aktualisieren1: TMenuItem;
    ListBox1: TListBox;
    procedure Aktualisieren1Click(Sender: TObject);
  private
    { Private-Deklarationen }

  public
   mompath:string;
   files:TStrings;
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure FindAllFiles(var FileList: TStrings; RootFolder: string; Mask: string =
  '*.*'; Recurse: Boolean = True);

var
  SR: TSearchRec;
begin
  RootFolder := IncludeTrailingPathDelimiter(RootFolder);

  if Recurse then
    if FindFirst(RootFolder + '*.*', faAnyFile, SR) = 0 then
    try
      repeat
        if SR.Attr and faDirectory = faDirectory then
          if (SR.Name <> '.') and (SR.Name <> '..') then
            FindAllFiles(FileList, RootFolder + SR.Name, Mask, Recurse);
      until FindNext(SR) <> 0;
    finally
      FindClose(SR);
    end;
  if FindFirst(RootFolder + Mask, faAnyFile, SR) = 0 then
  try
    repeat
      if SR.Attr and faDirectory <> faDirectory then
      begin
       FileList.Add(RootFolder + SR.Name); // hier tritt der Fehler auf
      end;
    until FindNext(SR) <> 0;
  finally
    FindClose(SR);
  end;
end;


procedure TForm1.Aktualisieren1Click(Sender: TObject);
var i:integer;
begin
FindAllfiles(files,'C:\Programme\Selfmade\Reader\TXT files','*.txt',false);

for i:=0 to files.count -1 do
Listbox1.Items.addObject(extractFileName(files.Strings[i]),TObject(files.Strings[i]));
end;
end.

Bernhard Geyer 29. Apr 2008 13:10

Re: Problem mit Search procedure
 
und wo wird deine StringListe "files" erzeugt?

Darksniper 29. Apr 2008 13:16

Re: Problem mit Search procedure
 
Danke für den Hinweis.
Jetzt geht's.

DeddyH 29. Apr 2008 13:26

Re: Problem mit Search procedure
 
Wieso wird die Liste eigentlich als Var-Parameter übergeben? :gruebel:

Darksniper 29. Apr 2008 13:30

Re: Problem mit Search procedure
 
Weil ich sie noch mehrmals im programm brauchen werde.

DeddyH 29. Apr 2008 13:32

Re: Problem mit Search procedure
 
Ich meinte den Funktionskopf.
Zitat:

Delphi-Quellcode:
procedure FindAllFiles(var FileList: TStrings;...


Darksniper 29. Apr 2008 13:42

Re: Problem mit Search procedure
 
Da musst du hier schauen:

DeddyH 29. Apr 2008 13:46

Re: Problem mit Search procedure
 
Gut, dann schau Du mal hier :lol: :zwinker:

s-off 29. Apr 2008 14:12

Re: Problem mit Search procedure
 
Hallo,

wenn Du Code von irgendwo kopierst, dann ist das vollkommen ok.
Allerdings solltest Du um deinetwillen auch versuchen, das Ganze zu verstehen.

Zitat:

Zitat von Darksniper
Da musst du hier schauen:

zeigt, dass Du es in diesem Fall nicht verstanden hast.

=> nachholen? ;)

Darksniper 29. Apr 2008 14:23

Re: Problem mit Search procedure
 
Ich habs verstanden.
Die Stringlist wird während der Procedure verändert also muss des eine variable sein.
Weis aber jetzt dass man Stringlisten erstellen/freigeben muss.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:23 Uhr.
Seite 1 von 2  1 2      

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