Delphi-PRAXiS
Seite 7 von 10   « Erste     567 89     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)

ryLIX 17. Dez 2008 19:03

Re: Zugriffsverletzung
 
1. Bevor du Form.Show verwenden kannst muss Form.Create erfolgreich beendet sein.
Also den Teil aus
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
Nach
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
verlegen.

2. Ein Form welches nicht angezeigt wird kann nicht geschlossen werden.
Und somit ist Form.Close(); ohne Wirkung.
BTW hast du mal auf Fortsetzen geklickt wenn die Fehlermeldung kommt?
Denn die erzwingst du selber in try... except :roll:
Verwende anstatt Form.Close(); Application.Terminate;

[Edit]
Helmi war ein wenig schnell mit schreiben :thumb:

Helmi 17. Dez 2008 19:18

Re: Zugriffsverletzung
 
Zitat:

Zitat von ryLIX
Helmi war ein wenig schnell mit schreiben :thumb:

Aber nur ein bischen :-)

Mir ist noch was aufgefallen.
Diesen Part solltest du etwas umbauen, denn was ist, wenn die Datei nicht vorhanden ist?
(Fehler beim Downloaden, keine Schreibrechte auf c:\Windows\system32\)

Und ein paar If-Anweisungen könntest dir ersparen

Delphi-Quellcode:
   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)
abgeändert:
Delphi-Quellcode:
   
    If FileExists('C:\WINDOWS\system32\Update_sa.txt') then
      begin
        Updatetext.Lines.LoadFromFile('C:\WINDOWS\system32\Update_sa.txt');

        If (updatetext.Lines.Count > 0) and (updatetext.Lines[0] = '3.5') then
         MessageDlg('Sie haben schon die neuste Version!', mtError, [mbOK], 0)
        else
          begin
            updatenform.show;
            MessageDlg('Drücken sie auf Updaten damit sie die neuste Version bekommen', mtError, [mbOK], 0);
          end;
      end
    else
      MessageDlg('Datei: "Update_sa.txt" konnte nicht gefunden werden!', mtError, [mbOK], 0);
(Ich hab mir erlaubt eine neue Meldung aufzubauen)

[Edit]
DeddyHs Hinweis mit eingebaut

DeddyH 17. Dez 2008 19:21

Re: Zugriffsverletzung
 
Delphi-Quellcode:
If (updatetext.Lines.Count > 0) and (updatetext.Lines[0] = '3.5') then
Sicherer, kommt auch mit einer leeren Datei zurecht ;)

milos 17. Dez 2008 19:26

Re: Zugriffsverletzung
 
Jetzt startet der Debuger gar nicht mehr...

Helmi 17. Dez 2008 19:28

Re: Zugriffsverletzung
 
Zitat:

Zitat von milos
Jetzt startet der Debuger gar nicht mehr...

Was willst damit sagen?
Was hast gemacht?
Was geht?
Was geht nicht mehr?
Was hast schon probiert?

(manchmal muss man bei deinen Aussagen rätselraten)

ryLIX 17. Dez 2008 19:29

Re: Zugriffsverletzung
 
Der Hinweis da man die aktuellste version hat kann man sich meiner Meinung nach sparen.
Mich würde es als User nicht interessieren.

Mal was anderes:
Ich habe trotz der Codeverlagerung in die OnShow Methode immer noch die Exception :gruebel:
Und zwar beim Aufruf von Updatenform.Show;
Sollte eigentlich nicht sein oder liege ich da falsch?


Debugger? :wiejetzt:

milos 17. Dez 2008 19:32

Re: Zugriffsverletzung
 
Was willst damit sagen? = Ich drücke F9 - Nichts passiert
Was hast gemacht? = F9 gedrückt :D
Was geht? = Garnichts :(
Was geht nicht mehr? = Der Debuger startet nicht. Ich drücke F9 geht nicht...
Was hast schon probiert? = Schliessen - öffnen (Also delphi)

DeddyH 17. Dez 2008 19:34

Re: Zugriffsverletzung
 
War der grüne Pfeil aktiv?

milos 17. Dez 2008 19:36

Re: Zugriffsverletzung
 
Nachdem ich ihn gedrückt habe nicht! Aber sonst schon

Helmi 17. Dez 2008 19:37

Re: Zugriffsverletzung
 
Zitat:

Zitat von ryLIX
Ich habe trotz der Codeverlagerung in die OnShow Methode immer noch die Exception :gruebel:
Und zwar beim Aufruf von Updatenform.Show;
Sollte eigentlich nicht sein oder liege ich da falsch?

Ich hab das gleiche Problem.

Wenn man aber im Projekt die Reihenfolge der CreateForm-Aufrufe ändert, gehts.
D. h. die Form1 ganz nach hinten, also als letzter Aufruf.
Ist aber nicht so ganz das wahre.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:21 Uhr.
Seite 7 von 10   « Erste     567 89     Letzte »    

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