Delphi-PRAXiS
Seite 4 von 16   « Erste     234 5614     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)

Pif 18. Mai 2008 21:00

Re: TWebUpdate - eine neue WebUpdate-Komponente
 
Hallo.
Ich helf dir gerne, nur kann ich die Zeile nicht finden. Bzw sieht sie bei mir anders aus.

So sieht meine WebUpdateThread.pas aus:

Delphi-Quellcode:
unit WebUpdateThread;

interface

uses
  classes, IdComponent, IdHTTP;

type
  TOnWorkEvent = procedure(Sender: TThread; AWorkCount: Integer) of object;
  TDownloadThread = Class (TThread)
    private
      fIdHTTP: TIdHTTP;
      fName: string; // Name einer herunterzuladenden Datei
      fPfad: string; // wohin soll die Datei auf Platte gespeichert werden
      fURL: string; // URL der Datei
      fWorkCount: integer;
      fOnWorkEvent: TOnWorkEvent;
      procedure InternalOnWork (Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer);
      procedure DoNotifyWork;
    protected
      procedure execute; override;
    public
      property name: string read fName write fName;
      property Pfad: string read fPfad write fPfad;
      property URL: string read fURL write fURL;
      property OnWork: TOnWorkEvent read FOnWorkEvent write FOnWorkEvent;
  end;

implementation

uses
  SysUtils;

procedure TDownloadThread.Execute;
var
  fs: TFileStream;
begin
  fIdHTTP := TIdHTTP.Create(nil);
  fIdHTTP.OnWork := InternalOnWork;
  fs := TFileStream.Create (fPfad + fName, fmCreate or fmShareExclusive);
  try
    fIdHTTP.Get(fURL + fName, fs);
  finally
    fs.Free;
    fIdHTTP.Free;
  end;
end;

procedure TDownloadThread.InternalOnWork(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer);
begin
  FWorkCount := AWorkCount;
  Synchronize(DoNotifyWork);
end;

procedure TDownloadThread.DoNotifyWork;
begin
  if Assigned(OnWork) then
    OnWork (Self, FWorkCount);
end;

end.

Marco Steinebach 18. Mai 2008 21:05

Re: TWebUpdate - eine neue WebUpdate-Komponente
 
Huhu Pif,
aaah, ich hatte im Beitrag davor, noch 'ne geänderte Version gepostet, aber die vergiß mal. ;-)
okay:
Die Zeile heißt
Delphi-Quellcode:
procedure InternalOnWork (Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer);
das
Delphi-Quellcode:
const
vor dem aWorkCount muß raus, und unten auch nochmal.
Jetzt sollte es gehen ...
Hoffnungsvolle Grüße
Marco

Pif 18. Mai 2008 21:10

Re: TWebUpdate - eine neue WebUpdate-Komponente
 
JAWOLLLLL

Es geht =) n1 Arbeit.

Besten Dank!

MfG Pif

Marco Steinebach 18. Mai 2008 21:16

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

Zitat von Pif
JAWOLLLLL

Es geht =) n1 Arbeit.

Na gottseidank! ;-)
Jetzt muß ich's nur noch verallgemeinern.
Viel Spaß beim testen, morgen oder übermorgen sollte es 'ne Version geben, die das schon drin hat.
Viele Grüße
Marco

Pif 22. Mai 2008 20:22

Re: TWebUpdate - eine neue WebUpdate-Komponente
 
Wie siehtsn mit der neuen Version aus?

Marco Steinebach 22. Jun 2008 21:40

Re: TWebUpdate - eine neue WebUpdate-Komponente
 
Hallo zusammen,
... und hier ist V1.01.1.
Neuerungen:
Das Ereignis OnFehler tritt auf, wenn z.B. keine Verbindung zum Internet hergestellt werden kann, oder ein anderer Fehler auftritt.
Ebenso wurden die notwendigen Compiler-Schalter in die WebUpdate.inc ausgelagert.
Ein zweiter Schalter
Indey10
ist dazu gekommen. Der Muß gesetzt werden, wenn Indy10 eingesetzt wird.
Tut mir leid, daß das jeder von Hand machen muß, aber ich hab absolut nicht rausfinden können, wie man's Programmseitig ermitteln kann.
Viel Spaß beim Testen und einen schönen Abend
Marco

Assertor 22. Jun 2008 22:30

Re: TWebUpdate - eine neue WebUpdate-Komponente
 
Hi Marco,

Zitat:

Zitat von Marco Steinebach
Ein zweiter Schalter
Indy10
ist dazu gekommen. Der Muß gesetzt werden, wenn Indy10 eingesetzt wird.
Tut mir leid, daß das jeder von Hand machen muß, aber ich hab absolut nicht rausfinden können, wie man's Programmseitig ermitteln kann.

Delphi-Quellcode:
{$IFDEF INDY100}
Wird in IdGlobal.pas per IdCompilerDefines.inc gesetzt. Also einfach IdGlobal einbinden und per IFDEF prüfen.

Gruß Assertor

Diamondback2007 23. Jun 2008 05:03

Re: TWebUpdate - eine neue WebUpdate-Komponente
 
Also ich muss sagen, deine Komponente gefällt mir richtig gut :)
Ich habe sie direkt mal in mein aktuelles Projekt eingebaut.
Allerdings vermisse ich sehr einen funktionierenden Fortschritt.
Dass das Progress nicht funktioniert wurde ja schon angesprochen.
Außerdem wäre eine Anzeige der Dateigrößen schön :)

gruß

Diamondback2007 24. Jun 2008 23:36

Re: TWebUpdate - eine neue WebUpdate-Komponente
 
Ein weiteres nettes Feature wäre die Anzeige aller zu downloadeden Dateien und ein Event sobald eine Datei fertig ist. Als Parameter dann den Namen der Datei. Das ganze könnte man dann schön in ein Log einbauen.

Diamondback2007 24. Jun 2008 23:55

Re: TWebUpdate - eine neue WebUpdate-Komponente
 
Ah, ich sehe schon, das mit der Dateiliste gibt es wohl schon, tut mir leid.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:02 Uhr.
Seite 4 von 16   « Erste     234 5614     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