Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Zugriffsverletzung (https://www.delphipraxis.net/126040-zugriffsverletzung.html)

milos 16. Dez 2008 18:53


Zugriffsverletzung
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo schönen Abend!
Ich habe so ein Fehler! Ich habe schon probiert TConfig zu ändern!

Fehler:
Zitat:

Zugriffsverletzung bei Adresse 00424603 bei Lesen von Adresse 000001D3
[edit=Matze]Screenshot angehängt, damit zukünftig auch andere etwas mit dem Thema anfangen können. MfG, Matze[/edit]
[edit=SirThornberry]Titel geändert und Bild durch Fehlermeldung ersetzt - Mfg, SirThornberry[/edit]
[edit=SirThornberry]Bild wieder angehangen - Mfg, SirThornberry[/edit]

ryLIX 16. Dez 2008 18:55

Re: Ein Fehler! kA wie der Fehler heisst =(
 
Was ist denn TConfig?

DP-Maintenance 16. Dez 2008 18:55

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Delphi-Frage

milos 16. Dez 2008 18:56

Re: Ein Fehler! kA wie der Fehler heisst =(
 
Das ist ein Forumular

mkinzler 16. Dez 2008 18:56

Re: Ein Fehler! kA wie der Fehler heisst =(
 
Zeig mal den Konstruktor

milos 16. Dez 2008 18:58

Re: Ein Fehler! kA wie der Fehler heisst =(
 
Was ist das xD

mkinzler 16. Dez 2008 19:01

Re: Ein Fehler! kA wie der Fehler heisst =(
 
Der Code der zum Erzeugen aufgerufen wird. Bei einer Form schreibt man den Code meisst in den Create-Event

milos 16. Dez 2008 19:06

Re: Zugriffsverletzung
 
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  Datei,Ziel:PChar;
begin
IF FileExists('config_sa.txt') THEN
config2.Lines.LoadFromFile('config_sa.txt');

try
    Datei := 'Link Privat;
    Ziel := 'C:\WINDOWS\system32\Update_sa.txt';
     UrlDownloadToFile(nil, Datei, Ziel, 0, nil);


   IF FileExists('C:\WINDOWS\system32\Update_sa.txt') THEN
   Updatetext.Lines.LoadFromFile('C:\WINDOWS\system32\Update_sa.txt');
if (not (updatetext.Lines.Strings[0] = '3.5')) then
updatenform.show;
if (not (updatetext.Lines.Strings[0] = '3.5')) then
MessageDlg('Drücken sie auf Updaten damit sie die neuste Version bekommen', mtError, [mbOK], 0);
if (updatetext.Lines.Strings[0] = '3.5') then
   MessageDlg('Sie haben schon die neuste Version!', mtError, [mbOK], 0);

  except
ShowMessage('Ein Fehler ist aufgetreten! Programm wird beendet!');
Form1.Close;


end;

end;

end.

mkinzler 16. Dez 2008 19:07

Re: Zugriffsverletzung
 
Setzte mal einen Breakpoint in die Methode und schaue in welcher Zeile der Fehler auftritt

milos 16. Dez 2008 19:09

Re: Zugriffsverletzung
 
Der Fehler tritt bei Projekt1 auf.

Fussball-Robby 16. Dez 2008 19:10

Re: Zugriffsverletzung
 
Ich könnte mir höchstens vorstellen, dass beim ausführen von
Delphi-Quellcode:
updatenform.show;
updatenform noch nicht erzeugt ist. Setz doch im Projektquelltext mal das CreateForm von updatenform davor.

Andreas L. 16. Dez 2008 19:11

Re: Zugriffsverletzung
 
Zitat:

Zitat von milos
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  Datei,Ziel:PChar;
begin
IF FileExists('config_sa.txt') THEN
config2.Lines.LoadFromFile('config_sa.txt');

try
    Datei := 'Link Privat';
    Ziel := 'C:\WINDOWS\system32\Update_sa.txt';
     UrlDownloadToFile(nil, Datei, Ziel, 0, nil);


   IF FileExists('C:\WINDOWS\system32\Update_sa.txt') THEN
   Updatetext.Lines.LoadFromFile('C:\WINDOWS\system32\Update_sa.txt');
if (not (updatetext.Lines.Strings[0] = '3.5')) then
updatenform.show;
if (not (updatetext.Lines.Strings[0] = '3.5')) then
MessageDlg('Drücken sie auf Updaten damit sie die neuste Version bekommen', mtError, [mbOK], 0);
if (updatetext.Lines.Strings[0] = '3.5') then
   MessageDlg('Sie haben schon die neuste Version!', mtError, [mbOK], 0);

  except
ShowMessage('Ein Fehler ist aufgetreten! Programm wird beendet!');
Form1.Close;


end;

end;

end.

IMHO ist config2 (ein Memo?) zu diesem Zeitpunkt noch nicht erstellt. Außerdem solltest du anstatt relativen Pfaden wie z. B. 'config_sa.txt', absolute Pfade benutzen. Schau dir hierzu mal Hier im Forum suchenExtractFilePath und Hier im Forum suchenApplication.ExeName an.

ryLIX 16. Dez 2008 19:14

Re: Zugriffsverletzung
 
Zitat:

Zitat von milos
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  Datei,Ziel:PChar;
begin
IF FileExists('config_sa.txt') THEN
config2.Lines.LoadFromFile('config_sa.txt');

try
    Datei := 'Link Privat; //<-- da fehlt ein ' ! 
    Ziel := 'C:\WINDOWS\system32\Update_sa.txt'; // Öhm was hast du im Systemordner von Windows zu suchen? Mißbrauchst du den gerade als Tempordner?
     UrlDownloadToFile(nil, Datei, Ziel, 0, nil);


   IF FileExists('C:\WINDOWS\system32\Update_sa.txt') THEN
   Updatetext.Lines.LoadFromFile('C:\WINDOWS\system32\Update_sa.txt');
if (not (updatetext.Lines.Strings[0] = '3.5')) then
updatenform.show;
if (not (updatetext.Lines.Strings[0] = '3.5')) then
MessageDlg('Drücken sie auf Updaten damit sie die neuste Version bekommen', mtError, [mbOK], 0);
if (updatetext.Lines.Strings[0] = '3.5') then
   MessageDlg('Sie haben schon die neuste Version!', mtError, [mbOK], 0);

  except
ShowMessage('Ein Fehler ist aufgetreten! Programm wird beendet!');
Form1.Close;


end;

end;

end.


milos 16. Dez 2008 19:15

Re: Zugriffsverletzung
 
Doch config2 ist als Komponent auf dem Formular :D

Zitat:

Zitat von ryLIX
Zitat:

Zitat von milos
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  Datei,Ziel:PChar;
begin
IF FileExists('config_sa.txt') THEN
config2.Lines.LoadFromFile('config_sa.txt');

try
    Datei := 'Link Privat; //<-- da fehlt ein ' ! 
    Ziel := 'C:\WINDOWS\system32\Update_sa.txt'; // Öhm was hast du im Systemordner von Windows zu suchen? Mißbrauchst du den gerade als Tempordner?
     UrlDownloadToFile(nil, Datei, Ziel, 0, nil);


   IF FileExists('C:\WINDOWS\system32\Update_sa.txt') THEN
   Updatetext.Lines.LoadFromFile('C:\WINDOWS\system32\Update_sa.txt');
if (not (updatetext.Lines.Strings[0] = '3.5')) then
updatenform.show;
if (not (updatetext.Lines.Strings[0] = '3.5')) then
MessageDlg('Drücken sie auf Updaten damit sie die neuste Version bekommen', mtError, [mbOK], 0);
if (updatetext.Lines.Strings[0] = '3.5') then
   MessageDlg('Sie haben schon die neuste Version!', mtError, [mbOK], 0);

  except
ShowMessage('Ein Fehler ist aufgetreten! Programm wird beendet!');
Form1.Close;


end;

end;

end.


Ja tu ich :D

mkinzler 16. Dez 2008 19:20

Re: Zugriffsverletzung
 
Setze mal vor
Delphi-Quellcode:
IF FileExists('config_sa.txt') THEN
einen BreakPoint und gehe den Code dann Zeile für Zeile durch
Und wie schon geschrieben, sind unvollständige Pfadangaben immer eine Quelle für Fehler und Seiteneffekte

ryLIX 16. Dez 2008 19:21

Re: Zugriffsverletzung
 
1. Wenn du Unbedingt ein temporäres Verzeichnis benötigst dann benutze sowas wie
Delphi-Quellcode:
GetTempPath()
2. Hast du das fehlende ' eingesetzt ? Ich denke das dort der Fehler auftaucht.
Hast du das mit dem Breakpoint versucht?

milos 16. Dez 2008 19:26

Re: Zugriffsverletzung
 
Was ist ein Brakpoint :D

mkinzler 16. Dez 2008 19:30

Re: Zugriffsverletzung
 
Ein Haltepunkt, an dem der Debugger die Ausführung des Codes anhält. Klick vor die Zeile, dann erscheint dort ein roter Punkt, Starte das Programm und es bleibt dann dort stehen. Nun kannst du mit F7/F8 den Code durchsteppen

milos 16. Dez 2008 19:31

Re: Zugriffsverletzung
 
Ein ; das hab ich schon probiert :(

milos 16. Dez 2008 19:32

Re: Zugriffsverletzung
 
Edit: Wenn ich F7 klicke, bleibt er bei END. stehen! Und end. wird blau

Helmi 16. Dez 2008 19:35

Re: Zugriffsverletzung
 
Hallo,

auf welcher Form liegt "config2"?

milos 16. Dez 2008 19:36

Re: Zugriffsverletzung
 
Form1 wieso?

mkinzler 16. Dez 2008 19:38

Re: Zugriffsverletzung
 
Ja mit F7 führt er gerade eine Zeile aus. Wiederhole das bis der Fehlet kommt, dann siehst du in welcher Zeile

Helmi 16. Dez 2008 19:39

Re: Zugriffsverletzung
 
war nur so ein Verdacht.


Kommentier doch mal die ersten zwei Zeilen aus und sag uns dann was passiert.

Delphi-Quellcode:
IF FileExists('config_sa.txt') THEN
config2.Lines.LoadFromFile('config_sa.txt');
Und, wie schon mehrmals vorgeschlagen, setz nen BreakPoint.
Ein BreakPoint ist eine Marke an der der Debugger stehen bleibt und von dem
man dann Schritt für Schritt den Code weiter durchgehen kann.

Einen BreakPoint setzt du, in dem du links neben der Codezeile mal in die
Zeile klickst. Dann wird die Zeile rot und es erscheint ein roter Punkt links.

milos 16. Dez 2008 19:42

Re: Zugriffsverletzung
 
Ihr hattet recht! Ich dachte ein BreakPoint ist ; :D

Wenn ich den Breakpoint hintuhe dan geht es! Ohne BreakPoint geht es nich

Helmi 16. Dez 2008 19:43

Re: Zugriffsverletzung
 
Zitat:

Zitat von milos
Wenn ich den Breakpoint hintuhe dan geht es! Ohne BreakPoint geht es nich

Wo tust du ihn hin und was passiert?

mkinzler 16. Dez 2008 19:44

Re: Zugriffsverletzung
 
Zitat:

Wenn ich den Breakpoint hintuhe dan geht es! Ohne BreakPoint geht es nich
? :gruebel:

milos 16. Dez 2008 19:45

Re: Zugriffsverletzung
 
Ich tu den BreakPoint neben:
Delphi-Quellcode:
IF FileExists('config_sa.txt') THEN
hin! Danach führt es mein Programm aus!

Helmi 16. Dez 2008 19:47

Re: Zugriffsverletzung
 
Zitat:

Zitat von milos
Ich tu den BreakPoint neben:
Delphi-Quellcode:
IF FileExists('config_sa.txt') THEN
hin! Danach führt es mein Programm aus!

Ich möchte mkinzler zitieren:
? :gruebel:

Was macht es dann?
kommt ein Fehler?
Wenn ja, wo? - bei welcher Zeile?

mkinzler 16. Dez 2008 19:47

Re: Zugriffsverletzung
 
Und er bleibt nirgends stehen?

milos 16. Dez 2008 19:48

Re: Zugriffsverletzung
 
Nein mein Programm läuft dann.

mkinzler 16. Dez 2008 19:52

Re: Zugriffsverletzung
 
Das macht keine Sinn; denn das würde bedeuten das dieser Code gar nicht ausgeführt wird

milos 16. Dez 2008 19:54

Re: Zugriffsverletzung
 
Ich habe keine Ahnung :D

Helmi 16. Dez 2008 19:56

Re: Zugriffsverletzung
 
Hast du jetzt noch die Zugriffsverletzung?

milos 16. Dez 2008 19:58

Re: Zugriffsverletzung
 
Bei einem Breakpoint kommt es nicht! Aber ohne BreakPoint kommt es! Ich will das es ohne brakpoint geht

mkinzler 16. Dez 2008 20:00

Re: Zugriffsverletzung
 
Und du bist dir sicher, dass das Programm durchläuft und nicht das es am Haltepunkt stoppt?

milos 16. Dez 2008 20:04

Re: Zugriffsverletzung
 
Ich habe herrausgefunden, das der Fehler bei TConfig (Forumular) ist! Da ich es nicht öffnen kann! Und ich brauche kein BreakPoint beim anderen Code... :D

milos 16. Dez 2008 20:16

Re: Zugriffsverletzung
 
Edit: Ich gehe jetzt! Ich komme morgen wieder :D Schönen Abend noch!

ryLIX 16. Dez 2008 20:53

Re: Zugriffsverletzung
 
Zitat:

Zitat von milos
Delphi-Quellcode:
    Datei := 'Link Privat; //<-- da fehlt ein ' !

Hast du diese Zeile korrigiert?

Wenn schon dann setzt den Breakpoint mal nach "Ziel :="

milos 17. Dez 2008 12:36

Re: Zugriffsverletzung
 
Ja ich habs probiert!


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:28 Uhr.
Seite 1 von 3  1 23      

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