Delphi-PRAXiS
Seite 2 von 10     12 34     Letzte »    

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)

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:47 Uhr.
Seite 2 von 10     12 34     Letzte »    

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