Re: TMSWebUpdate - eine neue WebUpdate-Komponente
Hallo,
ich probiere gerade Deine Komponente aus. Ich habe Dein Demo Programm genommen und nur soweit abgeändert, dass ich es zur Laufzeit erzeuge. Nur jedesmal, wenn ich das Projekt compilieren möchte kommt der Fehler Zitat:
Delphi-Quellcode:
Kannst Du mir da weiterhelfen ?
procedure TDownloadThread.Execute;
var fs: TFileStream; begin fIdHTTP := TIdHTTP.Create(nil); fIdHTTP.OnWork := InternalOnWork; fs := TFileStream.Create (fPath + fName, fmCreate or fmShareExclusive); try fIdHTTP.Get(fURL + fName, fs); finally fs.Free; fIdHTTP.Free; end; end; |
Re: TMSWebUpdate - eine neue WebUpdate-Komponente
Hallo,
Aber klar kann ich dir helfen. Der fehler tritt deshalb auf, weil das OnWorkEvent in Indy9 und Indy10 unterschiedlich deklariert ist. Öffnne bitte mal die WebUpdate.inc. Hier gibts einen Compiler-Schalter Indy10. Den mußt du setzen, also den Punkt davor weg, und der Fehler sollte sich behoben haben. Es gibt leider keine Möglichkeit irgendwie per Automatik herauszufinden, wann Indy9 und Indy10 installiert sind. Einen schönen Abend Marco |
Re: TMSWebUpdate - eine neue WebUpdate-Komponente
Zitat:
danke für Deine Hilfe, jetzt hat es wunderbar funktioniert. Ich habe auch gleich schon wieder ein neues Problem. Kann ich den Download und das neu Starten der Anwendung auch selber über eigene Buttons starten ? |
Re: TMSWebUpdate - eine neue WebUpdate-Komponente
Hallo Marco,
Zitat:
Das hatte ich schon hier erklärt, wie man das lösen kann.
Delphi-Quellcode:
unit WebUpdateThread;
{$i WebUpdate.inc} // hier das Indy-Def gelöscht {$i IdCompilerDefines.inc} // hier wird die Indy Version definiert // Indy 9 = INDY90 und Indy 10 = INDY100 ! procedure InternalOnWork(Sender: TObject; AWorkMode: TWorkMode; {$IFDEF INDY100} AWorkCount: Int64 {$ELSE} const AWorkCount: Integer {$ENDIF} ); |
Re: TMSWebUpdate - eine neue WebUpdate-Komponente
Hi Fylo,
Zitat:
Einen schönen Sonntag wünscht Marco |
Re: TMSWebUpdate - eine neue WebUpdate-Komponente
Hallo Rolf,
Prima, das es geklappt hat. Mir ist nicht genau klar, was du machen willst, aber: Den Download startest du, in dem du im OnUpdateFound die variable Download auf True setzt. Das Neustarten kannst du mittels der Prozedur Restart auslösen, wenn du's nicht gleich nach dem Download haben willst. Beispiel:
Delphi-Quellcode:
Das Prog läuft weiter, bis es geschlossen wird. Im OnCloseEvent dann bitte ...
// aus einem Programm von mir ...
procedure TTerminHauptFormular.WebUpdateDownloadComplete(sender: TObject; var Start: Boolean); begin Application.MessageBox (PChar('Der Download ist abgeschlossen.'+#13#10+'Bitte starten Sie DiKa neu!'), 'Information', MB_Ok); UpdateDurchfuehren := true; end;
Delphi-Quellcode:
Die Restart erstellt dann die Batch, aber das Prog wird von dir selber beendet.
if UpdateDurchfuehren then
WebUpdate.Restart (false); Application.Terminate; end; Ich hoffe, das beantwortet deine Frage? Wenn nicht, dann nochmal das Ganze! Einen schönen Sonntag Marco |
Re: TMSWebUpdate - eine neue WebUpdate-Komponente
Dann stelle ich meine Frage anderst. Kann ich die Versionsinformationen auslesen, ohne das die Komponente in das OnUpdateFound-Ereignis reingeht ? Denn der Download der Dateien soll erst beim betätigen des Button "Update" ausgeführt werden.
|
Re: TMSWebUpdate - eine neue WebUpdate-Komponente
Hallo Rolf,
nicht direkt, aber über einen Umweg. Du brauchst eine variable, sagen wir
Delphi-Quellcode:
Dann sowas wie ...
var
DownloadStarten: boolean;
Delphi-Quellcode:
So denke ich, könnte es gehen.
procedure TForm1.NeuerungenClick (sender: TObject);
begin DownloadStarten := false; WebUpdate.CheckForUpdates; end; procedure TForm1.DownloadStartenClick (sender: TObject); begin DownloadStarten := true; WebUpdate.CheckForUpdates; end; procedure TForm1.WebUpdateOnUpdateFound (...) begin if not DownloadStarten then // ist beim click auf "Neuerungen zeigen" der Fall. Hier werden die // Neuerungen angezeigt, der Download aber nicht gestartet. with TWhatsNewFormular.Create (self) do try ShowModal (WebUpdate.NewVersion, WebUpdate.WhatsNewList); finally free; end; download := false; else // DownloadStarten ist true, neuerungen wurden schon angezeigt ... download := true end; Viele Grüße Marco |
Re: TMSWebUpdate - eine neue WebUpdate-Komponente
Dann mache ich hiermit doch einen Verbesserungsvorschlag, so das man den Download und die Überprüfung auf eine neue Version auch über Buttons anstoßen kann. Also einzelnd, zu dem Zeitpunkt wo es benötigt wird.
|
Re: TMSWebUpdate - eine neue WebUpdate-Komponente
Wo und an welcher stelle beendest Du das laufende Programm ? Ich habe das ganze jetzt in eine DLL gepackt, nur leider wird das eigentliche Programm nicht beendet, wenn ich die Variable Start auf True setze. Hättest Du da für mich eine Idee oder Vorschlag, wie ich das realisieren könnte ?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:07 Uhr. |
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