AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi CloseQuery erzeugt exception... Komponentenproblem?
Thema durchsuchen
Ansicht
Themen-Optionen

CloseQuery erzeugt exception... Komponentenproblem?

Ein Thema von christian.noeding · begonnen am 15. Jul 2007 · letzter Beitrag vom 15. Jul 2007
Antwort Antwort
Benutzerbild von christian.noeding
christian.noeding

Registriert seit: 26. Mai 2005
Ort: Knw.-Remsfeld
119 Beiträge
 
Delphi XE2 Professional
 
#1

CloseQuery erzeugt exception... Komponentenproblem?

  Alt 15. Jul 2007, 11:26
Hi Leute,

ich sitze seit etlichen Stunden über einer Exception, die ich mir nicht erklären kann. Sobald mein Programm die Funktion "FormCloseQuery" aufruft, kann ich maximal ein ShowMessage('BLABLABLA') ausführen. Danach kommt sofort eine Zugriffsverletzung, die ich nicht orten kann. Es ist egal, ob ich mit canclose das Beenden verbiete oder nicht - die Exception bleibt da.

Seltsamerweise fährt das Programm auch manchmal ganz normal herunter... demnach vermute ich den Fehler in einer der zahlreichen Komponenten (ein paar Jedis, CHPack, etc.).

Hat jemand so ein Problem schonmal gehabt, bzw. könnte mir Tipps geben, wo ich anfangen soll zu suchen?

Delphi-Quellcode:
procedure TMainform.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
  text:string;
  beenden: TCloseAction;
begin
  ShowMessage('BLABLABLA'); // hiernach krachts im Code... keine Ahnung warum - manchmal klappts auch fehlerfrei(!?!?!?!)
  if messagedlg('Programm jetzt beenden?',mtConfirmation,[mbYes,mbNo],0)=mrNo then
  begin
    canclose:=false;
  end;
end;

Ich nutze unter anderem die JCL Debug-Funktionen und habe zeitgleich die MadException-Erweiterung installiert - hatte bislang aber keine Probleme gemacht. Das Programm nutzt zusätzlich die Delphi-Übersetzungstools. (ich glaube jetzt habe ich die wichtigsten Rahmenpunkt abgearbeitet).


Also ein ganz klares "HILFE"!

Besten Dank für ein paar Ideen.



PS: die Meldung (hilft aber nicht viel):

EAccessViolation
Zugriffsverletzung bei Adresse 004A660F in Modul 'PC_DIMMER.exe'. Lesen von Adresse 20726584.
Christian Nöding
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: CloseQuery erzeugt exception... Komponentenproblem?

  Alt 15. Jul 2007, 11:33
Moin Christian,

da ja der gezeigte Code selber keine Exception hervorrufen kann, muss der Fehler woanders liegen.
Irgendwo wird Speicher überschrieben, evtl. durch ein Missachtung von Array-Grenzen.
Aktiviere doch mal unter Projekt\Optionen die Checkbox bei Range Checking.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#3

Re: CloseQuery erzeugt exception... Komponentenproblem?

  Alt 15. Jul 2007, 11:38
Auch aktiviere die Debug-DCUs und gehe mit F7 dem End vom CloseQuery hinterher...
  Mit Zitat antworten Zitat
Benutzerbild von christian.noeding
christian.noeding

Registriert seit: 26. Mai 2005
Ort: Knw.-Remsfeld
119 Beiträge
 
Delphi XE2 Professional
 
#4

Re: CloseQuery erzeugt exception... Komponentenproblem?

  Alt 15. Jul 2007, 12:07
Hmm, seit dem ich die Debug-DCUs drin habe, ist der Fehler nicht mehr aufgetreten... ich kapier das nicht... FormCloseQuery löscht doch noch keine Elemente oder Ändert was an Arrays...!?

Danke für den Debug-DCU Tipp - damit habe ich schonmal ein Hilfsmittel...
Christian Nöding
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

Re: CloseQuery erzeugt exception... Komponentenproblem?

  Alt 15. Jul 2007, 12:12
Verwendest du vlt. Threads irgendwo im Programm?
  Mit Zitat antworten Zitat
Benutzerbild von christian.noeding
christian.noeding

Registriert seit: 26. Mai 2005
Ort: Knw.-Remsfeld
119 Beiträge
 
Delphi XE2 Professional
 
#6

Re: CloseQuery erzeugt exception... Komponentenproblem?

  Alt 15. Jul 2007, 12:18
Jepp - werden die von FormCloseQuery beeinträchtigt? Ich habe drei Threads laufen. Aber das hatte bislang auch keine Probleme gemacht und an den Threads habe ich schon lange nix mehr verändert...
Christian Nöding
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: CloseQuery erzeugt exception... Komponentenproblem?

  Alt 15. Jul 2007, 14:31
Moin Christian,

greifst Du aus den Threads auf die VCL ausserhalb des Threads zu?
Dafür müsstset Du Synchronize verwenden.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von christian.noeding
christian.noeding

Registriert seit: 26. Mai 2005
Ort: Knw.-Remsfeld
119 Beiträge
 
Delphi XE2 Professional
 
#8

Re: CloseQuery erzeugt exception... Komponentenproblem?

  Alt 15. Jul 2007, 14:39
Nein - die Threads verarbeiten nur Daten im Hintergrund. Die Oberfläche wird über andere Timer bei Bedarf aktualisiert. Ich habe mitlerweile extreme Probleme mit Funktionen, die vorher einwandfrei funktioniert haben... scheinbar hat eine Änderungen (neue Komponente) die ich erst kürzlich eingebaut habe irgendwas gemacht... werde jetzt langsam den Code stück für stück zurückbauen, bis ich das weiter orten kann. Mit den Assemblerbefehlen, die mir die Debug-DCUs ausspucken kann ich nix anfangen...

jedenfalls ist mein Programm vor zwei Tagen zu 99% fertig gewesen und jetzt stehe ich vor einem Trümmerhaufen - sporadisch killt sich die Anwendung, Funktionen hauen mir Zugriffsverletzungen um die Ohren - es ist nicht mehr schön.

Problem ist: die Anwendung erzeugt vieles dynamisch, hat Skriptsprachen drin und vieles mehr. Also Quellen für Fehler gibt es sicher reichlich...
Christian Nöding
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: CloseQuery erzeugt exception... Komponentenproblem?

  Alt 15. Jul 2007, 14:44
Moin Christian,

MadExcept hast Du ja schon drin.
Dann könntest Du es noch mit FastMM, MemProof, EurekaLog probieren die Fehlerquelle einzukreisen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von christian.noeding
christian.noeding

Registriert seit: 26. Mai 2005
Ort: Knw.-Remsfeld
119 Beiträge
 
Delphi XE2 Professional
 
#10

Re: CloseQuery erzeugt exception... Komponentenproblem?

  Alt 15. Jul 2007, 19:24
So, ich hab scheinbar die Fehler gefunden... es war zum Einen ein Problem mit der MadException... nachdem ich diese komplett deinstalliert hatte waren ein paar zufällige Exceptions schonmal weg. Sind nach einer Neuinstallation der Komponente aber auch nicht reproduzierbar - schein, dass hier was an den Source-Dateien selbst schief war... keine Ahnung, warum das genau beim FormCloseQuery aufgetaucht war. Jedenfalls feier ich jetzt

Die anderen Fehler waren auf falsche Reihenfolge der Initialisierung zurückzuführen... eine Unterfunktion hat während des FormCreate auf Objekte zugreifen wollen, die noch nicht erstellt waren - klassischer Programmiererfehler also.


Jedenfalls vielen Dank für die Tipps und Infos zu den Debug-Tools - haben sehr geholfen!!



einen schönen Abend noch

Christian!
Christian Nöding
  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 05:11 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