![]() |
ListView (Access Violation) beim Beenden
Hallöle.
Ich hab nen Formular mit nem ListView, wenn ich da Items erstelle mit dem Code :
Delphi-Quellcode:
habe ich das Problem, das beim Schliessen des Programmes Ne Access Violation entsteht.
procedure TForm2.ListView1DragDrop(Sender, Source: TObject; X, Y: Integer);
var li : TListItem; t : integer; begin if Source is TShellTreeView then begin for t := 0 to pred(ListView1.Items.Count) do if ListView1.Items[t].Caption = (Source as TShellTreeView).SelectedFolder.PathName then exit; li := ListView1.Items.Add; li.Caption :=(Source as TShellTreeView).SelectedFolder.PathName; li.SubItems.Add('X'); end; end; Ne Idee wodran das liegt ? habe ich was vergessen ? |
Re: ListView (Access Violation) beim Beenden
*push*
Hat denn keiner ne Idee ? |
Re: ListView (Access Violation) beim Beenden
Was machst du noch beim Beenden?
|
Re: ListView (Access Violation) beim Beenden
Gar nichts,...
Das ListView ist auf Form2 (mit dem ShellTreeView), welches ich mit einem Menu-Item auf Form1 öffne. Form2 schliessen (BitBtn mit Modalresult := mrClose) funktioniert, aber wenn ich dann Form1 schliesse gibts ne AV. Aber nur wenn ich in die Listview auch was rein-ge-drog-drop-ed habe. Form1 (unit1):
Delphi-Quellcode:
Form2 (unit2) :
procedure TForm1.Optionen1Click(Sender: TObject);
begin Form2.ShowModal; end; procedure TForm1.FormCreate(Sender: TObject); begin Pfad := IncludeTrailingPathDelimiter(Extractfilepath(Application.ExeName)); end;
Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
begin if not Fileexists(Form1.pfad + 'hash.dat') then begin dat := TFileStream.Create(Form1.pfad + 'hash.dat', fmCreate OR fmShareExclusive ); dat.Free; end; if not Fileexists(Form1.pfad + 'hash.dat') then Application.Terminate; dat := TFileStream.Create(Form1.pfad + 'hash.dat', fmOpenReadWrite OR fmShareExclusive ) end; procedure TForm2.FormDestroy(Sender: TObject); begin dat.free; end; PS : Die AV hatte ich auch schon bevor ich den FileStream darein gebaut habe. |
Re: ListView (Access Violation) beim Beenden
Sorry,
Jetzt bekomme ich beim Schliessen (BitBtn.modalresult:=mrClose) von Form2 schon eine Exception "EIlligalPointer". |
Re: ListView (Access Violation) beim Beenden
Hmmmm...
1. Bei mir gibt es kein Modalresult = mrClose (D7 Personal), sondern nur folgendes:
Code:
2. Verwende ich Form2.ShowModal lässt sich in das ListView von Form1 gar nichts reindroppen
mrNone 0 Keine. Wird als Vorgabewert verwendet, bevor der Benutzer das Dialogfeld verlässt.
mrOk idOK Der Benutzer verlässt das Dialogfeld mit der Schaltfläche OK. mrCancel idCancel Der Benutzer verlässt das Dialogfeld mit der Schaltfläche Abbrechen. mrAbort idAbort Der Benutzer verlässt das Dialogfeld mit der Schaltfläche Abbruch. mrRetry idRetry Der Benutzer verlässt das Dialogfeld mit der Schaltfläche Wiederholen. mrIgnore idIgnore Der Benutzer verlässt das Dialogfeld mit der Schaltfläche Ignorieren. mrYes idYes Der Benutzer verlässt das Dialogfeld mit der Schaltfläche Ja. mrNo idNo Der Benutzer verlässt das Dialogfeld mit der Schaltfläche Nein mrAll mrNo + 1 Der Benutzer verlässt das Dialogfeld mit der Schaltfläche Alle. mrNoToAll mrAll + 1 Der Benutzer verlässt das Dialogfeld mit der Schaltfläche Nein für alle. mrYesToAll mrNoToAll + 1 Der Benutzer verlässt das Dialogfeld mit der Schaltfläche Ja für alle. 3. Verwende ich Form2.Show klappt das Drag'n'Drop und das schliessen ohne Probleme 4. Wast steht bei dir im TForm1.ListView1DragOver()? |
Re: ListView (Access Violation) beim Beenden
Zitat:
zu 2-3.) Das ListView ist auf Form2, nicht auf Form1.... zu 4.)
Delphi-Quellcode:
procedure TForm2.ListView1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean); var a : string; begin Accept := Source is TShellTreeView; end; |
Re: ListView (Access Violation) beim Beenden
Achso, wenn das ListView auch auf Form2 ist, entsteht ebenfalls keine Zufgriffsverletung. Der Fehler muss also woanders liegen.
|
Re: ListView (Access Violation) beim Beenden
Liste der Anhänge anzeigen (Anzahl: 1)
Ich häng einfach mal das ganze Projekt an :
|
Re: ListView (Access Violation) beim Beenden
Ich bekomme zwar keine Zugrifssverletzung, dafür zeigt er mir aber nur die Laufwerke an und keine Unterordner.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:44 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