AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Unerklärliche EAccessViolation am Ende einer Prozedur!?
Thema durchsuchen
Ansicht
Themen-Optionen

Unerklärliche EAccessViolation am Ende einer Prozedur!?

Ein Thema von milchschnitte · begonnen am 7. Aug 2007 · letzter Beitrag vom 7. Aug 2007
Antwort Antwort
milchschnitte

Registriert seit: 26. Mär 2007
Ort: Berlin
4 Beiträge
 
#1

Unerklärliche EAccessViolation am Ende einer Prozedur!?

  Alt 7. Aug 2007, 16:33
Ja hallo, ich hab ein mir unerklärliches Problem mit Delphi 6..

Ich habe, grob gesagt, mehrere dynamisch erzeugte Buttons mit derselben OnClick-Prozedur. Die Buttons sollen halt Einträge in einer Liste löschen. Ist aber eigentlich auch irrelevant.

Nun tritt manchmal (abhängig davon, in welcher Reihenfolge ich die Listeneinträge lösche!) eine EAccesViolation beim Klicken des Buttons auf.

Kein Problem denk ich mir, ich setze also einen Haltepunkt an das "begin" der OnClick-Prozedur.

Ergebnis: Die gesamte Prozedur läuft ohne Probleme durch! Erst wenn ich am "end;" der Prozedur angelangt bin, und fortfahren will, erscheint die Exception.. Dabei ist die Prozedur doch schon beendet!? Der "Zeiger" im Quelltext springt dann auf das "end." des Projekt-Quellcodes.

Woran könnte das liegen!? Was passiert beim Beenden einer OnClick-Prozedur, das eventuell den Fehler auslösen könnte?

Der Button, auf den ich klicke, wird in der OnClick-Prozedur gelöscht (halt dynamisch erstellt). Das dürfte allerdings auch kein Problem sein, da es ja in den meisten Fällen funktioniert..

[edit] Hier noch die gesamte Fehlermeldung:
Project termine.exe raised exception class EAccessViolation with message 'Access violation at address 004039B5 in module 'termine.exe'. Read of address 00000028'. Process stopped. Use Step or Run to continue.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Unerklärliche EAccessViolation am Ende einer Prozedur!?

  Alt 7. Aug 2007, 16:36
Zitat von milchschnitte:
Der Button, auf den ich klicke, wird in der OnClick-Prozedur gelöscht (halt dynamisch erstellt). Das dürfte allerdings auch kein Problem sein, da es ja in den meisten Fällen funktioniert..
Autsch! Genau das ist das problem weil du die im Aurufstack verwendeten Objekte freigibst und je nachdem ob der Speicher beim Zurückspringen durch den Stack noch unzerstört (überschrieben) ist es klappt oder auch nicht.

Lösche niemals Objekte in deren Eventhandler du dich gerade befindest!
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
milchschnitte

Registriert seit: 26. Mär 2007
Ort: Berlin
4 Beiträge
 
#3

Re: Unerklärliche EAccessViolation am Ende einer Prozedur!?

  Alt 7. Aug 2007, 16:52
ah also liegt es doch daran.. Super, danke für die Antwort

Wie krieg ich das denn dan am besten hin, die Buttons zu löschen, wenn ich auf sie drauf klicke?

Erstmal invisible und dann nen Timer einbauen, der nach nicht mehr benutzten Buttons sucht und sie in die Pfanne haut? Geht doch sicherlich eleganter oder?
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Unerklärliche EAccessViolation am Ende einer Prozedur!?

  Alt 7. Aug 2007, 17:00
Hallo,

xaromz hat das in diesem Beitrag beschrieben.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Unerklärliche EAccessViolation am Ende einer Prozedur!?

  Alt 7. Aug 2007, 17:02
Ich würde "PostMessage" vorschlagen. Damit kannst du eine beliebige Nachricht (2 x 32bit) an dein Fenster senden und die Nachricht wird erst abgearbeitet, wenn die davor fertig (also dein Buttonclick) ist.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: Unerklärliche EAccessViolation am Ende einer Prozedur!?

  Alt 7. Aug 2007, 17:14
Code-Library: Controls, die sich selbst zerstören
Andreas
  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 09:43 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