Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Exception EAccessViolation? (https://www.delphipraxis.net/85114-exception-eaccessviolation.html)

cugar 26. Jan 2007 05:46


Exception EAccessViolation?
 
Moin,
wenn ich das Prog. beende, kommt: Exception EAccessViolation.
Es ist komisch, lege ich 2 Comboboxen auf mein Panel ist alles ok, kommt eine Dritte hinzu, bekomme ich die Fehlermeldung.
Habe versucht einem Tipp zu folgen, finde Suchen/Laufzeitfehler suchen aber nicht, habe dann vom Debuger behandelt eingeschaltet und mir den CPU-Register angezeigt, immer wieder bleibt es beim call dword ptr [ecx+$00000134] zu stehen.
Wie soll ich vorgehen?? (Habe selber nichts auf NILL gestellt)


Viele Grüsse
cugar

Bernhard Geyer 26. Jan 2007 06:07

Re: Exception EAccessViolation?
 
1, Komplierst Du mit Debug-DCU's? Falls nein bekommst Du keinen VCL-Sourcecode zu sehen wenn der fehler dort liegen würde
2, Ohne Quellcode ist das alles Hellseherrei. Ich habe öfters mehr als 2 ComboBoxen auf eine Formular und keine Probleme. Als wird es höchtwahrscheinlich schon etwas mit deinem Code zu tun haben.

cugar 26. Jan 2007 06:22

Re: Exception EAccessViolation?
 
Hab nur "Behandel vom Debugger" eingeschaltet, wo finde ich "mit Debug-DCU komplieren"? (verwende Delphi Prof.2006)

marabu 26. Jan 2007 07:48

Re: Exception EAccessViolation?
 
Hallo,

du findest den Schalter (bei D7) in den Projektoptionen in der Schaltergruppe "Debuggen". Aber ich muss Bernhard beipflichten: Der Fehler ist für uns wahrscheinlich sofort zu sehen, wenn wir nur sehen könnten. Du aber wirst ihn vielleicht auch dann nicht erkennen können, wenn du mit dem Debugger in immer größere Tiefen des VCL-Codes hinabsteigst.

Kannst du nicht zumindest die relevanten Code-Teile posten, z.B. OnDestroy() deiner Form?

Freundliche Grüße

cugar 26. Jan 2007 12:21

Re: Exception EAccessViolation?
 
Danke für deine Mühe, in meiner Form gibt es nur zum Schluß diese Procedute:

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose:=False;
if MessageDlg('Anwendung beenden?',mtConfirmation, [mbYes,mbNo],0) = mrYes then begin
ActionDBaseDeaktiv;
TimerDatumZeit.Enabled:=False;
CanClose:=True;
end;
end;
Er bearbeitet alles ohne Probleme, dann kommt die Fehlermeldung.

zecke 26. Jan 2007 12:29

Re: Exception EAccessViolation?
 
:hi:

Zitat:

if MessageDlg('Anwendung beenden?',mtConfirmation, [mbYes,mbNo],0) = mrYes then begin
mrYes = mbYes oder nicht?

SubData 26. Jan 2007 13:17

Re: Exception EAccessViolation?
 
mbYes ist für den Button, mrYes für den Result

cugar 26. Jan 2007 13:34

Re: Exception EAccessViolation?
 
Richtig,
auch wenn ich diese Procedure auslasse und schreibe: Application.Terminate gibt es die Fehlermeldung, habe ich event. mein Formular überladen, dh. zu viele Panels und Co. ???

marabu 26. Jan 2007 14:35

Re: Exception EAccessViolation?
 
Nein, dass mag ich nicht glauben. Solche Probleme gab es mal unter Delphi 1, aber das ist lange her. Beim Beenden deines Programms laufen eine Vielzahl von Routinen ab, die stellenweise auch wieder auf Code zurückgreifen, welchen du selbst bereit gestellt hast. Ich würde einen BreakPoint im Event-Handler für OnCloseQuery() setzen und dann mit F7/F8 die eigenen Programmzeilen durchgehen. Auch würde ich prüfen, ob die Fehlersituation ausbleibt, wenn ich das Programm nach dem Start sofort wieder beende. Vielleicht kannst du größere Teile deines Codes auf Kommentar setzen und so die Stelle einkreisen, in welcher der Fehler vorbereitet wird. Wenn dein Projekt portabel ist, dann kannst du es auch anhängen.

Freundliche Grüße

cugar 26. Jan 2007 14:47

Re: Exception EAccessViolation?
 
Mit F7 hab ich schon versucht, ohne Probleme, er geht Zeile für Zeile ab, dann zum Schluß Sprung zum Manager.RUN (Projekt-Datei) und dann die Fehlermeldung.
Benutze paar Komponenten von PDJ-Tools, Edit-Felder usw. ob die event. unsauber programmiert wurden?
Es ist mir aufgefallen, das der Rechner langsam wird wenn ich das Programm laufen lasse, z.B. comboboxen brauchen etwas länger bevor sie die Listen zeigen.


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