AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Zugriffsverletzung bei Adresse 0045976B ...
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriffsverletzung bei Adresse 0045976B ...

Ein Thema von anoymouserver · begonnen am 19. Aug 2012 · letzter Beitrag vom 19. Aug 2012
Antwort Antwort
Seite 2 von 3     12 3      
anoymouserver
(Gast)

n/a Beiträge
 
#11

AW: Zugriffsverletzung bei Adresse 0045976B ...

  Alt 19. Aug 2012, 01:44
naja das problem ist ich habe den Debugger laufen lassen aber er sag nirgenwo 'Fehler'
Na logo sagt er das, denn
Und in welcher Zeile taucht der Fehler auf?
nach der Meldung ist immer diese Zeile markiert:

Form2.ShowModal; {Infobox öffnen}
ja schon aber das sagt er erst wenn ich das Prog. starte und versuche die Infobox zu öffnen nicht wenn ich mich mit F7 durcharbeite ...

und dann markiert er sie Zeile auch blau und nicht wie sonst bei fehlern rot

Geändert von anoymouserver (19. Aug 2012 um 01:46 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#12

AW: Zugriffsverletzung bei Adresse 0045976B ...

  Alt 19. Aug 2012, 01:46
Upps, jo, das muss TForm2.Create( nil ) heißen, da muss ja ein Owner angegeben werden (bzw. keiner -> nil, weil wir das Freigeben selber übernehmen)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#13

AW: Zugriffsverletzung bei Adresse 0045976B ...

  Alt 19. Aug 2012, 01:49
naja das problem ist ich habe den Debugger laufen lassen aber er sag nirgenwo 'Fehler'
Na logo sagt er das, denn
Und in welcher Zeile taucht der Fehler auf?
nach der Meldung ist immer diese Zeile markiert:

Form2.ShowModal; {Infobox öffnen}
ja schon aber das sagt er erst wenn ich das Prog. starte und versuche die Infobox zu öffnen nicht wenn ich mich mit F7 durcharbeite ...

und dann markiert er sie Zeile auch blau und nicht wie sonst bei fehlern rot
Debugger <> Compiler
Der Compiler sagt dir beim Erzeugen, ob es syntaktische Fehler gibt, weil die eben nicht zu übersetzen sind.
Der Debugger schlägt erst dann an, wenn das Programm an eine Stelle kommt, wo z.B. so ein Zugriff nicht funktioniert.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
anoymouserver
(Gast)

n/a Beiträge
 
#14

AW: Zugriffsverletzung bei Adresse 0045976B ...

  Alt 19. Aug 2012, 01:51
ich hab das jetzt hier eingefügt:
Delphi-Quellcode:
procedure TForm1.Info1Click(Sender: TObject);
begin
with TForm2.Create( nil ) do
  try
    ShowModal;
  finally
    Free;
  end; {Infobox öffnen}
end;
aber jetzt bekomm ich eine ähnliche fehlermeldung
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#15

AW: Zugriffsverletzung bei Adresse 0045976B ...

  Alt 19. Aug 2012, 01:53
ich hab das jetzt hier eingefügt:
Delphi-Quellcode:
procedure TForm1.Info1Click(Sender: TObject);
begin
with TForm2.Create( nil ) do
  try
    ShowModal;
  finally
    Free;
  end; {Infobox öffnen}
end;
aber jetzt bekomm ich eine ähnliche fehlermeldung
Die da lautet und an welcher Stelle?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
anoymouserver
(Gast)

n/a Beiträge
 
#16

AW: Zugriffsverletzung bei Adresse 0045976B ...

  Alt 19. Aug 2012, 02:00
jetzt lautet die Meldung: 'Zugriffsverletzung bei Adresse 004379B8 in Modul 'ProjektBerechnen.exe'. Lesen von Adresse 00000048'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.

aber nach wiederholtem OK drücken tauch immerhin schonmal die Infobox auf
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#17

AW: Zugriffsverletzung bei Adresse 0045976B ...

  Alt 19. Aug 2012, 03:00
Dann passiert etwas beim Erzeugen oder OnShow des TForm2 ein Zugriff ins Nichts. Haltepunkt auf die Zeile mit dem Create(), und mit F7 durchsteppen. Wenn das so weit geht, Haltepunkt auf die Zeile mit OnShow, mit F7 durchsteppen. Spätestens dort sollte die genaue Methode/Zeile klar werden, an der du ins Leere greifst.
Hier in der DP gibt's übrigens ein Tutorial zur Benutzung des Debuggers!
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#18

AW: Zugriffsverletzung bei Adresse 0045976B ...

  Alt 19. Aug 2012, 06:22
Du erzeugst so:
Delphi-Quellcode:
with TForm2.Create( nil ) do
  try
    ShowModal;
  finally
    Free;
  end;
und greifst dann so zu ...
Delphi-Quellcode:
  Form2.Left := Form1.Left +145;
  Form2.Top := Form1.Top +45;
Form1 zeigt hier ins Nirvana, entweder Du verwendest
Delphi-Quellcode:
Form2 := TForm2.Create( nil );

with Form2 do
  try
    ShowModal;
  finally
    Free;
  end;
oder besser, lass den Bezug auf die Instanz weg
Delphi-Quellcode:
  Left := Application.Mainform.Left +145;
  Top := Application.Mainform.Top +45;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#19

AW: Zugriffsverletzung bei Adresse 0045976B ...

  Alt 19. Aug 2012, 09:45
Ok, das bedeutet, dass es noch keine Instanz für die Form gibt

Die Form2 hast du aus der Liste der automatisch zu erstellenden Formulare entfernt.
Das ist schon soweit ok, aber dann musst du dich auch um die Erzeugug einer Instanz kümmern.

Für so eine billige Form-ShowModal Instanz kann man folgendes benutzen:
Delphi-Quellcode:
with TForm2.Create do
  try
    ShowModal;
  finally
    Free;
  end;
Am Besten aber ohne with. Sonst handelt man sich u.U. weitere Ungereimtheiten im Verhalten ein.
Markus Kinzler
  Mit Zitat antworten Zitat
anoymouserver
(Gast)

n/a Beiträge
 
#20

AW: Zugriffsverletzung bei Adresse 0045976B ...

  Alt 19. Aug 2012, 11:03
oder besser, lass den Bezug auf die Instanz weg
Delphi-Quellcode:
  Left := Application.Mainform.Left +145;
  Top := Application.Mainform.Top +45;
damit funktoniert es bestens, vielen Dank

P.S.: wenn aber noch jemand verraten kann wie ich wie geschrieben quelltext spare währe ich sehr erfreut ... denn langsam mach mir die Länge ein wenig zu schaffen
Zitat:
Was er damit meint ist, daß sich Methoden wie aDEdLaengecChange, locker in nur kurzen 3 Zeilen Quellcode schreiben lassen, falls man sich nicht so viel Arbeit machen will.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 22:56 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