Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fehler: AccessViolation, nur warum... (https://www.delphipraxis.net/76299-fehler-accessviolation-nur-warum.html)

Chaosente 2. Sep 2006 12:24

Re: Fehler: AccessViolation, nur warum...
 
Nein ich weis leidernicht was breakpoints sind! Für hilfe wär ich dankbar!

Ps: Ich hab den Titel doch schon geändert, mehr information zum fehler kann cih leoder nciht geben, weil ich selbst nicht mehr über den fehler weis!


Zitat:

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project2.exe ist eine Exception der Klasse EAccessViolation mit der Meldung 'Zugriffsverletzung bei Adresse 00460A3F in Modul 'Project2.exe'. Lesen von Adresse 00000000' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------
Hab hier noch mal die genauer Fehler meldung!

Zitat:

WebBrowser1.OleObject.document.forms.item(1).eleme nts.item('name').value:=Edit1.Text;
Und auf diese Zeile verweist er...

Prototypjack 2. Sep 2006 18:58

Re: Fehler: AccessViolation, nur warum...
 
Aber es muss nicht unbedingt die richtige Zeile sein, auf die er verweisst.

Brechpunkte(Breakpoints) setzt in dem du links bei der Zeile einen Mausklick ausfürst(Da wo die Zahlen sind).
Dann sollte sich dort ein roter Punkt befinden und die Zeile eine andere Farbe haben.

Breakpoints halten den Debugger dort an wo du die Zeile markiert hast, wenn du also:
Delphi-Quellcode:
procedure TFrom1.CustomButton(Sender: TObject);
begin
  Showmessage('Hallo');
  Showmessage('Hallo2');
end;
hast und den Breakpoint auf die Zeile mit Hallo2 in der Showmessage setzt, dann hält das Programm an und zeigt dir die Zeile bevor er Hallo2 ausgibt.
Wenn du dann wieder auf F9 drückst läuft die Applikation weiter und dein Hallo2 wird ausgegeben.

Du kannst jetzt folgendes machen:
Setze Breakpoints vor diesen 2 Zeilen:
Delphi-Quellcode:
WebBrowser1.OleObject.document.forms.item(1).elements.item('name').value:=Edit1.Text;
WebBrowser1.OleObject.document.forms.item(1).elements.item('alter').value:=Edit3.Text;
Dann lässt du dein Programm laufen. Wenn es vor dem Anhalten in der ersten Zeile kracht, liegt der Fehler nicht dort, sonder wird bereits früher ausgelöst.
Wird bei der ersten Zeile unterbrochen, du lässt das Programm weiterlaufen und dann kracht es, bevor er bei der zweiten Zeile anhält, kannst du dir ziemlich sicher sein, dass der Fehler in der ersten Zeile liegt.

Mein Gott, ich hoffe das war einigermassen verständlich ;)
Wenn du genauere Ergebnisse hast meld' dich wieder, ok? :)

Gruß,
Max

Lasse2002 2. Sep 2006 19:48

Re: Fehler: AccessViolation, nur warum...
 
Du greifst auf die Controls von WebControl1 zu bevor diese existieren. Probier doch mal folgendes:

Delphi-Quellcode:
procedure TForm1.WebBrowser1DownloadComplete(Sender: TObject);
begin
  if webbrowser1.readystate >= 3 then
  begin
    pagecontrol1.ActivePage:=tabsheet1;
    ProgressBar1.Position := 100;
  end;
end;

procedure TForm1.WebBrowser1ProgressChange(ASender: TObject; Progress,
  ProgressMax: Integer);
begin
if webbrowser1.ReadyState = 0 then begin
progressbar1.Position:=20;
end
else if webbrowser1.ReadyState = 1 then begin
progressbar1.Position:=35;
end
else if webbrowser1.ReadyState = 2 then begin
progressbar1.Position:=60;
end
else if webbrowser1.ReadyState = 3 then begin
progressbar1.Position:=90;
end
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:25 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz