Delphi-PRAXiS
Seite 13 von 16   « Erste     3111213 1415     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)

shmia 13. Mai 2011 12:48

AW: TMSWebUpdate - eine neue WebUpdate-Komponente
 
@gneric: nicht uninteressant aber leider fehlt noch etwas in Richtung OOP.
Hier ein Ausschnitt aus dem Code:
Delphi-Quellcode:
type
  TDownloadActionLoadUrl = class
  public
    class procedure Download(ziel, downloadurl: string; DownloadFeedback:TDownloadProgressEvent);
  end;
....
  TDownloadBits = class
  public
    class procedure DownloadForground(ziel, downloadurl: WideString; DownloadFeedback:TDownloadProgressEvent);
    class procedure DownloadBackground(ziel, downloadurl, ExeName, Params: WideString);
    class procedure CompleteJob(JobId: WideString);
  end;
Hier müsste es natürlich eine gemeinsame Basisklasse mit einer virtuellen, abstrakten Methode geben. DownloadFeedback müsste ein Event sein (anstelle eines Parameters).

generic 13. Mai 2011 14:48

AW: TMSWebUpdate - eine neue WebUpdate-Komponente
 
Wie bei allen Vorträge und Artikeln gilt:
Es handelt sich hier um Beispiele wie etwas gelöst werden kann.
Das die Quellen nicht der Weisheit letzter Schluss sind, sollte jedem klar sein. Der Quelltext ist nur für Demozwecke und muss natürlich für "production use" ausgearbeitet werden.

Ja, du hast Recht - wenn man den Downloader austauschen will, müssten gleiche Interfaces her.
Allerdings sollte dann auch die gleiche Downloadtechnik für das herunterladen der XML genutzt werden.
Das läuft in der Demo komplett über MSXML.

Vorteil von einer einheitlichen Lösung ist u.a. die Konfiguration von Web-Proxies. Idealerweise nimmt man die in Windows hinterlegten Einstellungen.
Ich denke ich würde den BITS mit eine, hohen Prioritätsdownload verwenden. Dieser müsste nicht extra in der Firewall freigeschaltet werden.

thestallion90 25. Jun 2011 17:31

AW: TMSWebUpdate - eine neue WebUpdate-Komponente
 
Hey Leute, hab wieder mal ein kleines Problem.
Die WebUpdate Komponente enthält ja den HTTP-Indy-Client. Jetzt brauche ich diesen aber auch noch seperat in meinem Programm. Sobald ich die Komponete auf die Form ziehen möchte kommt folgende Meldung:

Package "IndySystem150" kann nciht geladen werden. Es enthält die Unit "IdWship6", die auch im Package "WebUpdateKompontente" enthalte ist.

Klar, das Problem ist schon mehrfach diskutiert worden. Besonders interessant finde ich den Ansatz, dass eine Package (in diesem Fall das IdHTTP-Package) einfach in die Requires-Klausel aufzunehmen. Das hat wohl den gleichen effekt wie die uses-Klausel, danach gehts aber wohl. Nur wo ist in der Unit der WebUpdateKomponente die requires Klausel? Das ist wohl eine Klausel die nur in einem Package deklariert werden kann und nicht in einer Unit. Wie auch immer, ich stehe wie der Ochs vorm Berg. Ich weiß zwar welche Unit den Fehler verursacht, aber wie kann ich diese aus der WebUpdateKomponente auslagern so dass siese noch funktioniert UND ich IdHTTP noch seperat benutzen kann? :(

Hat jemand eine Idee? Vllt wie ich mit der requires-Klausel weiter komme? Kann ich diese auch in der Unit der WebUpdateKomponente deklarieren?

lg,
thestallion90

mkinzler 25. Jun 2011 17:34

AW: TMSWebUpdate - eine neue WebUpdate-Komponente
 
In der Projektdatei.

thestallion90 25. Jun 2011 20:52

AW: TMSWebUpdate - eine neue WebUpdate-Komponente
 
In der Projektdatei der Komponente? Also der TUpdateKomponete? Wie komme ich denn da hin? Die Komponente liegt ja wie alle anderen auch in der Tool-Leiste. Oder liegt auf der Form, je nachdem.. Wenn ich mir zB die Deklaration eines Events der Komponente anzeigen lasse öffnet sich die betreffende unit der Komponente. Aber wie komme ich auf die Projektdatei?

lg,
thestallion90

mkinzler 25. Jun 2011 21:00

AW: TMSWebUpdate - eine neue WebUpdate-Komponente
 
Zu Erstellung wurde aber ein Projekt verwendet ( .dpr)

thestallion90 26. Jun 2011 01:18

AW: TMSWebUpdate - eine neue WebUpdate-Komponente
 
Aber wenn ich das richtig sehe liegt mir das Projekt nicht vor, oder übersehe ich da irgendetwas? 8( Es geht mir ja darum, dass ich das Problem beheben kann...

mkinzler 26. Jun 2011 08:17

AW: TMSWebUpdate - eine neue WebUpdate-Komponente
 
Doch diese Datei muss ja vorhanden sein, da ja die Komponente im Quelltext ohne Package vorliegt.
Irgendwo muss WebUpdateKompontente.dpr vorhanden sein

thestallion90 26. Jun 2011 16:08

AW: TMSWebUpdate - eine neue WebUpdate-Komponente
 
Ja, die Komponente liegt als Unit vor. Und ich habe sie in Delphi per "Komponete/Komponente installieren/Unit auwählen" installiert. Ich habe also nur die Unit ausgewählt und hatte keine dpr-Datei. Kann ich vllt einfach eine neue Kompoentente erstellen und dann den Code aus der vorhandenen Unit reinkopieren? Dann weiß ich nicht, von welcher Komponente ich meine neue ableiten soll damit es funktioniert (das muss man ja auswählen, wenn man auf "Komponente erstellen" geht)...

PS: warum bekomme ich eigentlich keine eMail-Benachrichtigung mehr wenn es hier was neues gibt? :(

mkinzler 26. Jun 2011 16:21

AW: TMSWebUpdate - eine neue WebUpdate-Komponente
 
An dieser Stelle hast du die Wahl ein neunes (Package-)Projekt anzulegen oder die Unit einem vorhandenen hinzuzufügen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:13 Uhr.
Seite 13 von 16   « Erste     3111213 1415     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