FreePascalArchivePackage und Progressbar

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
oldman2
Beiträge: 7
Registriert: Sa 9. Mär 2013, 13:46

FreePascalArchivePackage und Progressbar

Beitrag von oldman2 »

Hallo,
ich benutze zum entpacken von Zip-Dateien die FreePascalArchivePackage. Das Entpacken funktioniert soweit damit ganz gut. Nur hätte ich gerne eine Anzeige in einer Progressbar über den Fortschritt. Stehe da jetzt etwas auf dem Schlauch und weiss nicht wie ich die einbinden soll. Kann mir da jemand weiterhelfen ?
Danke

Benutzeravatar
theo
Beiträge: 10952
Registriert: Mo 11. Sep 2006, 19:01

Re: FreePascalArchivePackage und Progressbar

Beitrag von theo »

Das geht mit Bordmitteln (ohne extra Package) so:

Code: Alles auswählen

uses zipper;
...
procedure TForm1.Button1Click(Sender: TObject);
var
  root: string;
  UnZipper: TUnZipper;
begin
  if OpenDialog1.Execute then
  begin
    Root := extractfilepath(openDialog1.FileName);
    UnZipper := TUnZipper.Create;
    UnZipper.OnProgress := @UnZipperProgress;
    UNzipper.OutputPath := Root;
    UnZipper.FileName := openDialog1.FileName;
    Unzipper.UnZipAllFiles;
    UnZipper.Free;
  end;
end;
 
procedure TForm1.UnZipperProgress(Sender: TObject; const Pct: double);
begin
  writeln(pct);
end;   

oldman2
Beiträge: 7
Registriert: Sa 9. Mär 2013, 13:46

Re: FreePascalArchivePackage und Progressbar

Beitrag von oldman2 »

Danke für die schnelle Hilfe. Habe ich sofort getestet aber es funktioniert nicht. "TForm1.UnZipperProgress" kennt er nicht.

creed steiger
Beiträge: 958
Registriert: Mo 11. Sep 2006, 22:56

Re: FreePascalArchivePackage und Progressbar

Beitrag von creed steiger »

procedure UnZipperProgress(Sender: TObject; const Pct: double);

hast du aber schon deklariert?
(da wo auch dein button1.click ist)

weil "kennen" sollte das Programm es schon:
http://www.freepascal.org/docs-html/fcl ... gress.html

btw. "nicht kennen" ist äußerst schwammig,es wird doch eine Fehlermeldung angezeigt.
Die wäre schon hilfreich.

oldman2
Beiträge: 7
Registriert: Sa 9. Mär 2013, 13:46

Re: FreePascalArchivePackage und Progressbar

Beitrag von oldman2 »

Ja habe den Code so wie von Theo übernommen. Beim Compilieren markiert er mir die Zeile:
"UnZipper.OnProgress := @UnZipperProgress;" und macht nicht weiter ?

oldman2
Beiträge: 7
Registriert: Sa 9. Mär 2013, 13:46

Re: FreePascalArchivePackage und Progressbar

Beitrag von oldman2 »

Er gibt diese Fehlermeldung aus: unit1.pas(44,45) Error: Identifier not found "UnZipperProgress"

Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

Re: FreePascalArchivePackage und Progressbar

Beitrag von Scotty »

creed steiger hat geschrieben:procedure UnZipperProgress(Sender: TObject; const Pct: double);...hast du aber schon deklariert?
Das bedeutet;

Code: Alles auswählen

type 
  TForm1=class(TForm)
  ...
  private
    procedure UnZipperProgress(Sender: TObject; const Pct: double); //erst damit ist diese Prozedur eine Methode der Klasse TForm1
  public
  end;
 
procedure TForm1.UnZipperProgress(Sender: TObject; const Pct: double);
...

Benutzeravatar
theo
Beiträge: 10952
Registriert: Mo 11. Sep 2006, 19:01

Re: FreePascalArchivePackage und Progressbar

Beitrag von theo »

Ein paar Grundlagen in Objektorientierter Programmierung wären vielleicht ganz hilfreich:

http://www.delphi-treff.de/tutorials/ob ... ammierung/

oldman2
Beiträge: 7
Registriert: Sa 9. Mär 2013, 13:46

Re: FreePascalArchivePackage und Progressbar

Beitrag von oldman2 »

Danke jetzt bekomme ich es compiliert. Dafür bleibt die Progressbar beim entpacken stumm !

Benutzeravatar
theo
Beiträge: 10952
Registriert: Mo 11. Sep 2006, 19:01

Re: FreePascalArchivePackage und Progressbar

Beitrag von theo »

oldman2 hat geschrieben:Danke jetzt bekomme ich es compiliert. Dafür bleibt die Progressbar beim entpacken stumm !
Tja, schade! Ohne anständige Gefechtsmeldung kann man dazu leider gar nichts sagen.

oldman2
Beiträge: 7
Registriert: Sa 9. Mär 2013, 13:46

Re: FreePascalArchivePackage und Progressbar

Beitrag von oldman2 »

Diesmal kam ja keine Fehlermeldung. Exe erzeugt, Zipdatei geöffnet, Zip wird entpackt. Aber Progressbar zeigt nichts an. Woher weiss das Programm eigentlich das es die Progressbar1 nutzen soll ? Muss ich da noch eine zuweisung machen ?

Benutzeravatar
theo
Beiträge: 10952
Registriert: Mo 11. Sep 2006, 19:01

Re: FreePascalArchivePackage und Progressbar

Beitrag von theo »

oldman2 hat geschrieben:Woher weiss das Programm eigentlich das es die Progressbar1 nutzen soll ? Muss ich da noch eine zuweisung machen ?
:roll:
Ist das dein Ernst? Natürlich musst du die Position Eigenschaft des Progressbar setzen.
http://lazarus-ccr.sourceforge.net/docs ... ssbar.html

oldman2
Beiträge: 7
Registriert: Sa 9. Mär 2013, 13:46

Re: FreePascalArchivePackage und Progressbar

Beitrag von oldman2 »

Habe ich mir schon gedacht. Weiss nur nicht was ich bei Position und Max eintragen soll ? Bin halt ein blutiger Anfänger.
Danke für die Hilfe und die vielen Antworten.

Benutzeravatar
theo
Beiträge: 10952
Registriert: Mo 11. Sep 2006, 19:01

Re: FreePascalArchivePackage und Progressbar

Beitrag von theo »

oldman2 hat geschrieben:Weiss nur nicht was ich bei Position und Max eintragen soll ? Bin halt ein blutiger Anfänger.
Versuch doch mal dein eigenes Köpfchen zu gebrauchen, statt hier eine Schritt-für-Schritt-Anleitung zu verlangen.

UnZipperProgress hat einen Parameter Pct. Was heisst das wohl? Wozu ist der gut?
Ich "weiss" das auch nicht, aber der scheint doch sehr verlockend.

Wenn du damit nichts anfangen kannst, dann mach erst ein paar Tutorials durch, um etwas Sicherheit zu gewinnen.
z.B. hier http://www.delphi-treff.de/tutorials

Antworten