AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zipmaster OnProgress

Ein Thema von mgiggle · begonnen am 15. Apr 2007 · letzter Beitrag vom 16. Apr 2007
Antwort Antwort
mgiggle

Registriert seit: 15. Apr 2007
1 Beiträge
 
#1

Zipmaster OnProgress

  Alt 15. Apr 2007, 20:22
Hallo liebe Gemeinde,

ich habe ein Problem mit dem Zipmaster, genauer mit dem Ereignis OnProgress.
Link:
Zipmaster OnProgress

Es steht geschrieben:
Zitat:
ProgressUpdate: Dieser Wert ist wichtig, wenn man den Verlauf in Form einer Fortschirttsanziege visualisieren möchte.

Ich moechte jetzt genau die Fortschrittsanzeige mithilfe einer Progress oder Statusbar realisieren.
In Demo1 ist sowas (laut Webseite) schon integriert. Aber ich sehe da keine Progressbar.

Habe hier durch die Forensuche auch schon einen Eintrag gefunden, allerdings steht
da nur "Ich habe es geschafft den Verlauf auf einer Progressbar anzuzeigen..."

Vielen Dank!
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: Zipmaster OnProgress

  Alt 16. Apr 2007, 16:20
Zitat von mgiggle:
ich habe ein Problem mit dem Zipmaster, genauer mit dem Ereignis OnProgress.
Link:
Zipmaster OnProgress

Es steht geschrieben:
Zitat:
ProgressUpdate: Dieser Wert ist wichtig, wenn man den Verlauf in Form einer Fortschirttsanziege visualisieren möchte.

Ich moechte jetzt genau die Fortschrittsanzeige mithilfe einer Progress oder Statusbar realisieren.
Hi,
soweit ist alles klar, wie lautet die eigentliche Frage? Ich meine klar, Du möchtest gerne den Fortschritt anzeigen, woran scheiterst Du? Bist Du mit der Idee von Call-Backs vertraut? Hast Du noch nie mit Funktionszeigern gearbeitet? Ein wenig mehr Information wäre immer nett für die Leute, die Dir helfen wollen/sollen.

Mal ganz grob zur allgemeinen Idee: Du hast eine Komponente, Zipmaster. Ein Zipmaster führt eine Aktion aus (z.B. Entpacken) und kann andere über den Fortschritt dieser Aktion benachrichtigen. Dazu muss ihr aber eine Rückruf-Adresse mitgeteilt werden (die Komponente kann ja Deine Anwendung nicht kennen). In Delphi wird dies über Methodenzeiger realisiert. Ein Methodenzeiger ist (wie der Name schon verrät) ein Zeiger auf eine Methode. Eine Methode ist eine Prozedur oder Funktion, die zu einem Objekt (Instanz einer Klasse) gehört.
Alles was Du tust ist, dass Du der Komponente einen Methodenzeiger für das entsprechende Ereignis zuweist (auch durch Doppelklick im OI möglich), tritt dann das Ereignis auf, so wird die Komponente einfach die Methode, auf die sie zeigt, aufrufen.
Jetzt muss natürlich auch noch Information übermittelt werden (Du willst ja schließlich nicht nur wissen, dass es irgendeinen Fortschritt gab, sondern auch wie groß dieser war). Dazu dienen die Argumente der Methode. Alles was hier übergeben wird, stellt eigentlich nur Information für Dich da. In Deinem Fall wären das
  • Sender: TObject;
  • ProgrType: ProgressType;
  • Filename: string;
  • FileSize: Integer

Hier wird Dir mitgeteilt, wer überhaupt die Aktion ausgelöst hat, was für ein Fortschritt gerade angezeigt wird und welche Form er hat. Jetzt hat der Entwickler der Komponente aber verschiedene Ereignisse vorgesehen, aber nur eine Benachrichtigungsfunktion (also es gibt mehr, nur nicht für diese Ereignisse). Deshalb ist in ProgrType codiert, um was für eine Form von Fortschritt es sich handelt. Welche es gibt kannst Du der Hilfe zu TZipMaster entnehmen.
So gibt es zum Beispiel ein initiales Ereignis, in dem wird Dir die gesamte Anzahl der Dateien, die verarbeitet werden mitgeteilt. Oder es wird Dir mitgeteilt, dass eine neue Datei entpackt wird. In diesem Fall wird Dir natürlich nicht die Anzahl der Dateien insgesamt, sondern die Größe der entpackten Datei mitgeteilt. Zudem gibt es noch Updates, die den Fortschritt anzeigen. Was für Werte als in Filename und FileSize stehen und wie sie zu interpretieren sind, hängt vom ProgrType ab.
Willst Du hier den Fortschritt für eine Datei anzeigen, so musst Du Dir nur die Größe merken, die beim Eintritt des Ereignisses mit ProgrType = NewFile in fileSize steht (das wären 100%) und bei jedem ProgrType = ProgressUpdate die Relation zwischen bereits bearbeiter Größe und dieser Gesamtgröße berechnen. Das ist dann schon alles.

Hoffe es hilft ein wenig weiter.

Gruß Der Unwissende
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:40 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