![]() |
Re: Zugriffsverletzung
1. Bevor du Form.Show verwenden kannst muss Form.Create erfolgreich beendet sein.
Also den Teil aus
Delphi-Quellcode:
Nach
procedure TForm1.FormCreate(Sender: TObject);
Delphi-Quellcode:
verlegen.
procedure TForm1.FormShow(Sender: TObject);
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: |
Re: Zugriffsverletzung
Zitat:
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:
abgeändert:
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)
Delphi-Quellcode:
(Ich hab mir erlaubt eine neue Meldung aufzubauen)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); [Edit] DeddyHs Hinweis mit eingebaut |
Re: Zugriffsverletzung
Delphi-Quellcode:
Sicherer, kommt auch mit einer leeren Datei zurecht ;)
If (updatetext.Lines.Count > 0) and (updatetext.Lines[0] = '3.5') then
|
Re: Zugriffsverletzung
Jetzt startet der Debuger gar nicht mehr...
|
Re: Zugriffsverletzung
Zitat:
Was hast gemacht? Was geht? Was geht nicht mehr? Was hast schon probiert? (manchmal muss man bei deinen Aussagen rätselraten) |
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: |
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) |
Re: Zugriffsverletzung
War der grüne Pfeil aktiv?
|
Re: Zugriffsverletzung
Nachdem ich ihn gedrückt habe nicht! Aber sonst schon
|
Re: Zugriffsverletzung
Zitat:
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. |
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