AGB  ·  Datenschutz  ·  Impressum  







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

Zugriffsverletzung nach Einbau einer Groupbox

Ein Thema von KPBecker · begonnen am 14. Feb 2010 · letzter Beitrag vom 16. Feb 2010
Antwort Antwort
KPBecker

Registriert seit: 1. Mär 2004
Ort: Mannheim
120 Beiträge
 
Delphi 2010 Architect
 
#1

Zugriffsverletzung nach Einbau einer Groupbox

  Alt 14. Feb 2010, 19:19
Hallo Delphi-Praktiker,

Ich starte mein Programm, drücke auf einen Knopf und eine Application.Messagebox kommt hoch. Wunderbar, kein Problem!

Jetzt setze ich irgendwo direkt auf das Formular oder ein untergeordnetes Panel eine neue Groupbox, mit der noch nichts weiter gemacht wird. Dann starte ich das Programm, drücke auf den Knopf und beim Aufruf von Application.MessageBox kommt jetzt eine Fehlermeldung: "Zugriffsverletzung bei Adresse 00469B1E in Modul 'Hauptprogramm.exe'. Lesen von Adresse 00000008.".

Die Fehlermeldung hängt offensichtlich mit Application.xxx zusammen:
Das Programm läuft dann auf einen Fehler, wenn irgendetwas mit Application ausgeführt wird. Wenn ich die Messagebox auskommentiere, kommt es bei Application.Run zum Fehler. Wenn ich vorher Application.ProcessMessages aufrufe, eben da.

Das Witzige ist, dass es funktioniert, wenn ich statt der Groupbox ein Panel oder ein Label oder eine Combobox etc. verwende.
An anderer Stelle werden schon mehrere Groupboxen auch auf Panels verwendet, ohne dass es zum Fehler kommt. Nur eben eine zusätzliche wird jetzt, egal wo, nicht mehr toleriert.

Wichtig noch: Die Aktionen nach dem ButtonClick haben Nichts mit dem Programmteil zu tun, in dem die GroupBox vorkommt.

Hat mein Delphi auf einmal eine Aversion gegen Groupboxen? An einer Maximalzahl für GBen kann es nicht liegen.

Die Sache ist in diesem Programm reproduzierbar: GB ausgebaut --> alles in Ordnung; wieder eingebaut --> Fehler.

Das Programm ist mehrere 1000 Zeilen lang, daher kann ich es leider nicht hier posten. In einem kleinen Testprogramm konnte der Fehler nicht reproduziert werden.

Hilfe !

Beste Grüße
Klaus-Peter
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#2

Re: Zugriffsverletzung nach Einbau einer Groupbox

  Alt 14. Feb 2010, 19:34
hmmm... die Info´s sind etwas dürftig.
Zitat:
Wenn ich die Messagebox auskommentiere, kommt es bei Application.Run zum Fehler
- Zeig uns einfach mal die HAUPTPROGRAMM.DPR deines Projektes
- welche Formulare gibt es ?
- welche Formulare erzeugst du dynamisch ?
- auf welchem Formular sind die Groupboxen die "funktionieren" und wo nicht ?

...wäre mal ein Anfang
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Zugriffsverletzung nach Einbau einer Groupbox

  Alt 14. Feb 2010, 20:18
Die Adresse verrät das du auf ein nicht instanziertes Objekt zugreifst. Du hast also irgendwo vergessen mit TIrgendwas.Create() ein Object zu erstellen bevor du darauf zugreifst.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
KPBecker

Registriert seit: 1. Mär 2004
Ort: Mannheim
120 Beiträge
 
Delphi 2010 Architect
 
#4

Re: Zugriffsverletzung nach Einbau einer Groupbox

  Alt 15. Feb 2010, 20:53
Hallo Jens,

Zitat:
Die Adresse verrät das du auf ein nicht instanziertes Objekt zugreifst. Du hast also irgendwo vergessen mit TIrgendwas.Create() ein Object zu erstellen bevor du darauf zugreifst.
Ob der Fehler auftritt oder nicht, hängt nur davon ab, ob ich noch diese eine Groupbox einbaue oder nicht. Es wird aber nie auf diese Groupbox zugegriffen, der Fehler (EAccessViolation...) tritt an einer ganz anderen Stelle beim Aufruf von Application.Messagebox (in UZModVerw s.u.) auf.


Hallo haentschman,

Zitat:
- welche Formulare gibt es ?
- welche Formulare erzeugst du dynamisch ?
- auf welchem Formular sind die Groupboxen die "funktionieren" und wo nicht ?
Ich verwende nur ein Formular, das nicht dynamisch erzeugt wird. Alle Groupboxen sind auf diesem Formular fest integriert, keine erzuge ich zur Laufzeit. (Die Anzeigen steuere ich über Visible:= true/false)
Alle Komponenten stehen in UHauptteil.

Zitat:
- Zeig uns einfach mal die HAUPTPROGRAMM.DPR deines Projektes
Delphi-Quellcode:
program Hauptprogramm;

uses
  Forms,
  UHauptteil in 'UHauptteil.pas{fmHauptteil},
  UKonstanten1 in 'UKonstanten1.pas',
  UHandlung_PT in 'UHandlung_PT.pas',
  UZModDef in 'UZModDef.pas',
  UModell in 'UModell.pas',
  UZModVerw in 'UZModVerw.pas',
  UZHandlung_PT in 'UZHandlung_PT.pas',
  UZKofaktoren in 'UZKofaktoren.pas',
  UKofaktoren in 'UKofaktoren.pas',
  UZPerson_PT in 'UZPerson_PT.pas',
  UPerson_PT in 'UPerson_PT.pas',
  UZGebiet_PT in 'UZGebiet_PT.pas',
  UGitter in 'UGitter.pas',
  UHilfsmethoden in 'UHilfsmethoden.pas',
  UGebiet_PT in 'UGebiet_PT.pas',
  UZRegion_PT in 'UZRegion_PT.pas',
  URegion_PT in 'URegion_PT.pas',
  UZModSim in 'UZModSim.pas',
  USimInit in 'USimInit.pas',
  URegion in 'URegion.pas',
  USimMethoden1 in 'USimMethoden1.pas',
  USimMethoden2 in 'USimMethoden2.pas',
  UStatistik in 'UStatistik.pas',
  UGesamt in 'UGesamt.pas';

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TfmHauptteil, fmHauptteil);
  Application.Run;
end.
Beste Grüße
Klaus-Peter
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Zugriffsverletzung nach Einbau einer Groupbox

  Alt 15. Feb 2010, 21:02
Hallo,

Zitat:
Ob der Fehler auftritt oder nicht, hängt nur davon ab, ob ich noch diese eine Groupbox einbaue oder nicht.
Es liegt nicht an der GroupBox.
Du machst irgendwas anderes falsch,
zufällig wird das durch die GroupBox aber hervorgerufen.

Ich würde erst mal FastMM4 oder MemCheck als Mem-Manager laufen lassen,
der zeigt dir ein paar "mögliche Fehler ab".

Was ist mit Compiler Warnungen ?

Wenn wir helfen sollen,
brauchen wir ein Minimal-Projekt, was den Fehler zeigt.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#6

Re: Zugriffsverletzung nach Einbau einer Groupbox

  Alt 15. Feb 2010, 21:19
Ich stimme meinem Vorredner zu. Auf den ersten Blick sehen deine Info´s nicht ungewöhnlich aus.

  Mit Zitat antworten Zitat
KPBecker

Registriert seit: 1. Mär 2004
Ort: Mannheim
120 Beiträge
 
Delphi 2010 Architect
 
#7

Re: Zugriffsverletzung nach Einbau einer Groupbox

  Alt 16. Feb 2010, 17:31
Hallo Delphi-Praktiker,

Ihr hattet Recht, es lag nicht an der Groupbox. Es kam dadurch, dass ich aus einer Datei ein zweidimensionales dynamisches Array "auf einen Schlag" auslesen wollte. Jetzt, da ich das Array zeilenweise schreibe und lese, funktioniert es. Warum der Fehler gerade bei Application.xxx auftrat, nachdem ich die Groupbox eingebaut hatte, ist mir allerdings schleierhaft.

Der Tipp mit dem Speichermanager FastMM4 war sehr gut, dadurch konnte ich einige Speicherlecks beheben.

Vielen Dank
Klaus-Peter
  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 21: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