AGB  ·  Datenschutz  ·  Impressum  







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

AV beim Schließen des Fensters

Ein Thema von Luckie · begonnen am 15. Dez 2004 · letzter Beitrag vom 15. Dez 2004
Antwort Antwort
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

AV beim Schließen des Fensters

  Alt 15. Dez 2004, 19:35
Noch ein letztes Problem. Ich habe folgenden Code:
Delphi-Quellcode:
type
  TThreadParams = packed record
    cntFileLists: Integer;
    DriveArray: TStringDynArray;
    Filter: ShortString;
    Listview: TListView;
  end;
  PThreadParams = ^TThreadParams;

[..]

procedure TForm1.btnFindClick(Sender: TObject);
var
  i : Integer;
  cnt : Integer;
  DriveArray : TStringDynArray;
  Index : Integer;
  FindFilesParams: PThreadParams;
  ThreadID : Cardinal;
begin
  lvFiles.Items.Clear;
  cnt := 0;
  SetLength(FileList, 0);
  StatusBar1.SimpleText := rsDoSearch;
  // für jedes ausgewählte Laufwerk eine Dateiliste
  for i := 0 to lstDrives.Items.Count - 1 do
  begin
    if lstDrives.Checked[i] then
    begin
      Inc(cnt);
    end;
  end;
  SetLength(FileList, cnt);
  SetLength(DriveArray, cnt);

  // alle Laufwerksbuchstaben in eine Liste eintragen
  Index := 0;
  for i := 0 to lstDrives.Items.Count - 1 do
  begin
    if lstDrives.Checked[i] then
    begin
      DriveArray[Index] := lstDrives.Items.Strings[i];
      Inc(Index);
    end;
  end;

  // Thread starten
  GetMem(FindFilesParams, sizeof(TThreadParams));
  FindFilesParams.cntFileLists := cnt;
  GetMem(FindFilesParams.DriveArray, cnt); // <-- !!
  FindFilesParams.DriveArray := DriveArray;
  FindFilesParams.Filter := edtFilter.Text;
  FindFilesParams.Listview := lvFiles;
  CloseHandle(BeginThread(nil, 0, @FindFilesThread, FindFilesParams, 0, ThreadID));

  StatusBar1.SimpleText := Format(rsFilesCount, [lvFiles.Items.Count]);
end;
In dem Record habe ich ein dynamisches Array für das ich Speicher alloziieren muss. Dies geschieht in der markierten Zeile. So weit so gut. Nur bekomme ich eine AV, wenn ich das Fenster schließe. Kommentiere ich die Zeile aus, bekomme ich eine AV wenn ich den Button klicke, aber nicht beim Schließen. Daraus schließe ich, dass es an dieser Zeile liegen muss. Nur warum? Im OnClose oder OnDestroy habe ich keinen Code mehr.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: AV beim Schließen des Fensters

  Alt 15. Dez 2004, 20:28
Bin einen anderen Weg gegangen. Jetzt geht es.
Michael
Ein Teil meines Codes würde euch verunsichern.
  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 22:30 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