Delphi-PRAXiS
Seite 3 von 16     123 4513     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   TMSWebUpdate - eine neue WebUpdate-Komponente (https://www.delphipraxis.net/109301-tmswebupdate-eine-neue-webupdate-komponente.html)

Marco Steinebach 13. Mai 2008 18:46

Re: TWebUpdate - eine neue WebUpdate-Komponente
 
Huhu,
Zitat:

Zitat von Svenkan
Gefällt mir schonmal ganz gut,

Danke!
Zitat:

Zitat von Svenkan
aber ich hab 2 Probleme:

1. Ich lasse die Dateien in das Unterverzeichnis '\downloads' laden. Nachdem das Update-Programm geschlossen wird, werden diese Dateien allerdings nicht ins Hauptverzeichnis verschoben.

stimmt! Sollen sie auch nicht. Gedacht ist das runterladen in ein Unterverzeichnis beispielsweise für Sound-Dateien, Updates von Bildern o.ä.
Kannst du die Dateien, die du im Hauptverzeichnis brauchst, nicht gleich dorthin laden?
Zitat:

Zitat von Svenkan
2. Fällt bei mir AWorkCount in den negativen Bereich. Da ich eigtl einen Fortschrittsbalken einbauen wollte, kann ich das erstmal vergessen, da mir negative Werte rein gar nichts bringen. Denn so kann es bei größeren Dateien schnell den Anschein haben, dass der Download steckengeblieben ist.

ähm, der WorkCount ist der der Indy-Komponenten ... wann wird der denn negativ?
Grüße
Marco

Marco Steinebach 17. Mai 2008 18:57

Re: TWebUpdate - eine neue WebUpdate-Komponente
 
Hallo Listers,
Es gibt eine Neue Version der WebUpdate-Komponente, V1.01.0.
Es hat sich einiges Neue getan.
An dieser Stelle ein Dank an Fylo und Svenkan für die Ideen.
Das SSL gibt's im nächsten update.

Neuerungen:
Für jede, in der Versionsdatei angegebene Datei, gilt:
ist ein Pfad angegeben, wird die Datei beim Herunterladen
dort hinein kopiert. (wie gehabt).
Ist
Pfad=
angegeben, oder wird die Angabe schlicht weggelassen, wird die Datei in ein Unterverzeichnis, unterhalb des Programmverzeichnisses, mit dem Namen WebUpdateDateien kopiert.
All diese Dateien werden, nach Programmende, ins eigentliche Programmverzeichnis kopiert.
Das hat den vorteil, daß auch mehrere Dateien, beispielsweise dlls, im Programmverzeichnis ersetzt werden können.
Wird z.B.
Pfad=sound
angegeben, wird die Datei ins Verzeichnis sound\ unterhalb des eigentlichen Programmverzeichnisses kopiert.
So kann, weiterhin, eine Image, sound,-...-Datei ersetzt werden.
Die erste datei, die den Zusatz
Start=1
hat, wird von der Batch-Datei als letzte Aktion ausgeführt.
Auf diese Weise, kann das Programm sofort nach dem Update automatisch wieder neu gestartet werden.
Schaut euch auch das Beispiel im demo an.
Das bringt u.a. den enormen vorteil, daß man als neue Programmversion schlicht die Programmdatei benutzen kann, und die nicht umständlich erst umbenennen muß.

Die Section
[Einstellungen]
samt
[DirektesUpdate]
entfällt dadurch komplett.

Um ein indirektes Update, also das Ganze über ein setup.exe durchzuführen, sieht die Sektion für Datei001 dann so aus:
[Datei001]
name=setup.exe
; die eigentliche Update-Datei, als Setup verpackt.
Pfad=
; wird ins Programmverzeichnis kopiert.
Start=1
; wird, nach dem alles kopiert ist, ausgeführt.

Hier bleibt dem Programmierer lediglich, die Setup.exe nach Programmstart von Hand zu löschen, da WebUpdate nicht weiß, daß es sich um eine Update-Datei handelt.
Also z.B.
Code:
UpdateName := ExtractFilePath (Application.ExeName) + 'setup.exe';
If FileExists (UpdateName) then
  DeleteFile (UpdateName);
Die Batchdatei entfernt, um keinen Müll zu hinterlassen, gnadenlos alle Dateien in
WebUpdateDateien
und auch das verzeichnis selbst.

Ebenso wurden das Demo und die Doku ein wenig überarbeitet - ich hoffe,zum Besseren hin.

So. Ich warte, wieder, auf Lob, Kritik, Anregungen und sowas schönes alles!
Einen schönen Abend!
Marco
p.s.: ach ja, ;-), geänderte Version, wie immer, im ersten Beitrag.

Pif 17. Mai 2008 22:10

Re: TWebUpdate - eine neue WebUpdate-Komponente
 
Zitat:

Zitat von Marco Steinebach
Hallo,
Zitat:

Zitat von Delphi Code Anfänger
Zitat:

Zitat von Pif
Danke für deine hilfe, das mit dem package habsch begriffen.
aber wenn ich das installieren will kommt ein fehler im quelltext der komponente

Delphi-Quellcode:
fIdHTTP.OnWork := InternalOnWork;
[DCC Fehler] WebUpdateThread.pas(39): E2009 Inkompatible Typen: 'Liste der Parameter ist unterschiedlich'

Mach ich da was falsch oder liegt es am quellcode?

Ich bekomme genau den gleichen Fehler.

Ich weiß nicht wie ich es beheben kann. Kann mir vielleicht einer helfen?


Also ich bekomm die Komponente nicht richtig installiert. Ka wieso ... -.- ich machn package und wenn ichs dann installieren will kommt der oben genannte fehler.

Was genau brauchst du um mir zuhelfen Marco? ^^

FAlter 17. Mai 2008 22:21

Re: TWebUpdate - eine neue WebUpdate-Komponente
 
Hi,

hört sich an wie unterschiedliche Indy-Versionen.

Mfg
FAlter

Pif 17. Mai 2008 23:30

Re: TWebUpdate - eine neue WebUpdate-Komponente
 
Was kann ich da machen?

Marco Steinebach 18. Mai 2008 08:22

Re: TWebUpdate - eine neue WebUpdate-Komponente
 
Hallo,
Jetzt geht mir dieser Fehler wirklich auf den Geist. ;-) Den werden wir doch irgendwie behoben kriegen!!!
Zitat:

Zitat von Pif
Was kann ich da machen?

Entweder in der Hilfe nachschlagen, oder, eine neue Anwendung erstellen, ein TIDHTTP auf die Form legen, ein OnWork definieren und mir den Procedure-Kopf schicken, damit man mal die, bestimmt unterschiedlichen, Parameter angleichen kann.

Aber jetzt hab ich 'ne Frage: wie kann ich feststellen, welche Indy-Version läuft, also z.B. Compiler-Schalter, oder geht sowas mit Overload?
Viele Grüße
Marco

Pif 18. Mai 2008 15:50

Re: TWebUpdate - eine neue WebUpdate-Komponente
 
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    IdHTTP1: TIdHTTP;
    procedure IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
      AWorkCount: Integer);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCount: Integer);
begin

end;

end.
Also ich bin jetzt nich so der Delphi-Pro. Ich hoffe du meinst das so. Ich hab ne neue Anwendung gemacht dieses TIDHTTP draufgezogen und dann onwork definiert...

Das ist der Code (oben). "TWorkMode" wird mir als nicht deklarierter Bezeichner angezeigt.


Ich hoffe ich kann dir helfen ...

Marco Steinebach 18. Mai 2008 16:23

Re: TWebUpdate - eine neue WebUpdate-Komponente
 
Liste der Anhänge anzeigen (Anzahl: 1)
Huhu Pif,
Zitat:

Zitat von Pif
Also ich bin jetzt nich so der Delphi-Pro.
Ich hoffe du meinst das so. Ich hab ne neue Anwendung gemacht dieses
TIDHTTP draufgezogen und dann onwork definiert...

Ja genau, das meinte ich. Ich hab den Fehler gefunden, kleines Wort, große Wirkung.
Ich häng dir hier mal eine geänderte WebUpdateThread.pas dran. Die bitte mal drüberkopieren und mir sagen, ob's jetzt geht!
Dank dir und viele Grüße
Marco

Pif 18. Mai 2008 20:29

Re: TWebUpdate - eine neue WebUpdate-Komponente
 
Ich muss dich enttäuschen.... Also ich bekomme den gleichen fehler immernoch. :wall:

Vllt. mache ich ja auch was falsch beim installieren.

Ich mache ein neues Package. Dann füge ich unter "Enthält" WebUpdate.pas und WebUpdateThread.pas hinzu.
Dann mach ich aufs Package rechtsklich und dann installieren.

Dabei bringt er mir dann den fehler!

MfG Pif

Marco Steinebach 18. Mai 2008 20:48

Re: TWebUpdate - eine neue WebUpdate-Komponente
 
Huhu,
Zitat:

Zitat von Pif
Ich muss dich enttäuschen....

Das gibt's doch gar nicht. Ich hab noch 'ne bitte: in der WebUpdateThread.pas gibt es eine Zeile
Delphi-Quellcode:
procedure InternalOnWork (Sender: TObject; AWorkMode: TWorkMode; {$IFNDEF Indy100} const {$ENDIF} AWorkCount: Integer);
Ändere die doch bitte mal so, daß das ganze {$ifndef} draußen ist, also die Zeile so aussieht:
Delphi-Quellcode:
procedure InternalOnWork (Sender: TObject; AWorkMode: TWorkMode; AWorkCount: Integer);
Das gleiche gibt es dann weiter unten nocheinmal, bitte genauso verfahren.
Klappt es jetzt?
Wenn du mir hilfst, wär' das echt klasse!
Viele Grüße
Marco


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:35 Uhr.
Seite 3 von 16     123 4513     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