![]() |
Application.Mainform / Code wird ignoriert
Hi zusammen,
ich habe folgendes Problem. In meinem Mainform (Form1) prüfe ich bei OnCreate mittels Dateigrößenvergleich (Lokal/Web) ob ein Update für mein Programm vorhanden ist.
Code:
if FindFirst('Tool.exe', faAnyFile, Search) = 0 then System.SysUtils.FindClose(Search); if Search.Size <> GetRemoteFilesize ('http://schnabbeldidu.de/update.exe') then if Application.MessageBox('New Update Found!' + #13 + 'Start Update now? Otherwise this Program will Terminate!', 'Updater', MB_ICONWARNING or MB_YESNO) = IDNO then Application.terminate; Sollte dem so sein, öffne ich mit folgendem code die Form3 wo sich meine Progresbar und der code zum downloaden befindet und setze ShowMainform:=False;
Code:
Soweit funktioniert alles.
Form3 := Tform3.Create(nil);
Form3.show; Application.ShowMainForm := False; Aber, wenn ich jetzt meine Anwendung nach dem Download der Datei komplett schließen möchte, ignoriert er mein Application.Terminate aus der Form3 heraus. Auch ein Showmainform:=True; wird ignoriert, ich weiß nicht warum?! Welche Möglichkeiten habe ich um meine Programm von dort aus zu beenden? Vielen Dank im Voraus! |
AW: Application.Mainform / Code wird ignoriert
Das ist mMn nach eine ungünstige Stelle - mitten im Constructor einer Form schon ein Application.Terminate aufrufen zu wollen.
Warum nicht in die .dpr bevor Application überhaupt angefasst wird? |
AW: Application.Mainform / Code wird ignoriert
Du meinst die Updateroutine (Prüfung auf Update und Verweis auf Form3) vor dem Application.CreateForm(TForm1, Form1) aufrufen?
Das macht natürlich Sinn. Wird geändert! Löst aber nach wie vor mein Callback Problem nicht ;) |
AW: Application.Mainform / Code wird ignoriert
Zitat:
Delphi-Quellcode:
?
if FindFirst(
Und was heißt "Code wird ignoriert"? - Wird der code wirklich ignoriert und nicht in die EXE eingebaut? (beim debuggen keine blauen Pünktchen links neben den Zeilen) - Oder wird dein Code nur nicht ausgeführt, weil ein IF nein sagt? Application.Terminate sollte dennoch ausfegührt werden. :gruebel: Nja, wenn du den Code vor CreateForm legst und CreateForm(Form1) und Application.Run garnicht erst ausfühst, wenn geupdatet wird, dann sollte sich das Problem von Selber lösen. Relative Pfade ... nja, wenn es daran lieg, daß eventuell FindFirst nichts findet, dann bistz du selber dran Schuld. PS: ![]() ![]() [edit] Oh, es gab noch garkeine GetFileSize-Funktion? (mit war so, als gab's da mal was) Und TFile.GetSize fehlt auch. |
AW: Application.Mainform / Code wird ignoriert
Kann ich denn in der dpr ganz normal die indy komponenten enbinden?
Oder muss ich da was beachten? Vielelicht denke ich da gerade auch in die falsche Richtung, aber wenn ich den code ausführe bevor Application.CreateForm(TForm3, Form3) aufgerufen wird, fehlt mir ja die Progressbar, bzw die vcl Komponenten. Zitat:
Zitat:
Edit: Beim debuggen sehe ich das Application.Terminate, aber er führt es nach dem Update nicht aus. Edit2: Wie starte ich denn explizit die form3 nach einem Application.Create(Form3). So das ich die Mainform (Form1) gar nicht ausführen muss? |
AW: Application.Mainform / Code wird ignoriert
Ok, hat sich erledigt.
Die Sache mit dem Wald und den Bäumen... Vielen Dank nochmal. :-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:14 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