ZPAQ's Face - eine Benutzeroberfläche zur effizienten Datenkompression v1.0.c

Vorstellungen von Programmen, welche mit Lazarus erstellt wurden.
Antworten
sstvmaster
Beiträge: 582
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 3.8
CPU-Target: 32+64bit
Wohnort: Dresden

Re: ZPAQ's Face - eine Benutzeroberfläche zur effizienten Datenkompression v0.9.3

Beitrag von sstvmaster »

Bei der ComboBox für den Kompressionslevels bitte noch des Style auf csOwnerDrawFixed stellen.
LG Maik

Windows 10,
- Lazarus 3.8 (stable) + fpc 3.2.2 (stable)
- Lazarus 4.99 (trunk) + fpc 3.3.1 (main/trunk)

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: ZPAQ's Face - eine Benutzeroberfläche zur effizienten Datenkompression v0.9.3

Beitrag von Euklid »

sstvmaster hat geschrieben: Mi 22. Jul 2020, 07:15 Bei der ComboBox für den Kompressionslevels bitte noch des Style auf csOwnerDrawFixed stellen.
Danke DIr! Eine gute Idee. Kommt in die v0.9.4 rein.

Beste Grüße, Euklid

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: ZPAQ's Face - eine Benutzeroberfläche zur effizienten Datenkompression v0.9.3

Beitrag von Euklid »

Winni hat geschrieben: Mi 22. Jul 2020, 00:05 Alles von 0% bis 60% wird auf einmal angezeigt.
Abhilfe: In die Timer-Function am Ende

Code: Alles auswählen

application.ProcessMessages;
Grüße Dich Winni,

gerade hatte ich Zeit, diese Zeile einzufügen und zu testen. Bei mir ändert sie jedoch nichts am Anzeigeverhalten, ich vermute tatsächlich, dass die Ursache für die ruckhafte Ausgabe bei zpaq liegt.

DIe Prozedur ZPAQAusgabeEinlesen enthält folgende Repeat-Until-Schleife:

Code: Alles auswählen

  repeat
    VerfuegbareBytes:=ZPAQ.Output.NumBytesAvailable;                              //Speichert, wie viele verfügbare Bytes ZPAQ ausgibt.
    setlength(Buffer, VerfuegbareBytes);                                          //Die Puffergröße wird entsprechend gesetzt
    BytesRead := ZPAQ.Output.Read(Buffer[0], VerfuegbareBytes);                   //Die ZPAQ-Ausgabe wird in den Buffer übertragen...
    OutputStream.Write(Buffer[0], BytesRead);                                     //...und vom Buffer in den OutPutStream übertragen.
  until (BytesRead = 0)and((ZPAQ.Running=false) or (TeilweiseEinlesen=true));     //Falls TeilweiseEinlesen=false, dann läuft die Schleife so lange, bis ZPAQ beendet ist.
  
D.h. er liest den Output bereits so lange ein, bis keine Bytes mehr gelesen werden (BytesRead=0). Kann es sein, dass dadurch bereits das mit appication.ProcessMessages beabsichtigte Verhalten bewirkt wird?

Beste Grüße, Euklid

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: ZPAQ's Face - eine Benutzeroberfläche zur effizienten Datenkompression v0.9.3

Beitrag von Winni »

Hi!

Das hab ich schon öfter bemerkt, dass Windows sowie die verschiedenen X-Window Desktop unterschiedliche Reaktionszeiten haben.

Ich benutze KDE und da bekommen ich bei großen Dateien erstmal garnix angezeigt. Mit Application.ProcessMessages geht es wunderbar.

Das liegt auch nicht an dem Binary von ZPAQ. Das schnurrt bei der gleichen Datei die Zehntel -Prozente runter (bzw. rauf). Als langjähriger Befehlszeilen-Akrobat musste ich natürlich erstmal das erforschen ...

Grüße
Winni

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: ZPAQ's Face - eine Benutzeroberfläche zur effizienten Datenkompression v0.9.3

Beitrag von Euklid »

Winni hat geschrieben: Mi 22. Jul 2020, 00:05

Code: Alles auswählen

Screen.Cursor := crHourglass;
@Winni: Ich finde die Idee super. So sieht es jedoch aus, als ob die Anwendung nicht mehr bedienbar wäre. Dabei sollen die Enabled Buttons weiter bedienbar bleiben. Daher habe ich eine Frage an Dich:

Passend wäre der Mauszeiger mit der Bezeichnung crAppStart auf dieser Seite
https://wiki.freepascal.org/Cursor/de

Dieser Mauszeiger ist noch als Zeiger erkennbar und hat das Uhrenglas am rechten unteren Rand.

Dummerweise bewirkt diese Einstellung rein garnichts, eventuell ist "crAppStart" veraltet und funktioniert nicht mehr.

Weißt Du zufällig, wie das Kürzel für den Mauszeiger mit Uhrenglas in der linken untere Ecke ist?

Danke Dir schonmal!

- Euklid

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: ZPAQ's Face - eine Benutzeroberfläche zur effizienten Datenkompression v0.9.3

Beitrag von Euklid »

Winni hat geschrieben: Mi 22. Jul 2020, 14:02 Ich benutze KDE und da bekommen ich bei großen Dateien erstmal garnix angezeigt. Mit Application.ProcessMessages geht es wunderbar.
Okay, habe es für Version 0.9.4 hinzugefügt :)

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: ZPAQ's Face - eine Benutzeroberfläche zur effizienten Datenkompression v0.9.3

Beitrag von Winni »

Hi!

Bin im Moment auf Win7/Laz 2.04 und nicht zu Hause.

crAppStart ist "erneuert" worden:
Zeiger plus kleiner Busy-Kreisel hier.

Ich hab aber in den Tiefen meiner Festplatte irgendwo noch einen Sanduhr-plus-Zeiger-Cursor.
Wenn ich den finde. Heute abend.

Winni

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: ZPAQ's Face - eine Benutzeroberfläche zur effizienten Datenkompression v0.9.3

Beitrag von Euklid »

Winni hat geschrieben: Mi 22. Jul 2020, 15:04 crAppStart ist "erneuert" worden:
Zeiger plus kleiner Busy-Kreisel hier.
Danke für die Rückmeldung1

Also der Zeiger und ein kleiner Busy-Keisel wäre auch in Ordnung. Nur ändert crAppStart den Mauszeiger bei mir garnicht, d.h. er bleibt gleich....

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Version v0.9.4 veröffentlicht

Beitrag von Euklid »

Hallo zusammen,

eine neue BETA ist raus und es gibt eine Erweiterung für die Experimentierfreudigen unter Euch:

-> Ihr könnt ab der Version v0.9.4 die Anzahl der von ZPAQ genutzten Threads und Die Menge des benötigten Arbeitsspeichers einstellen. Aktiviert hierzu einfach die Experteneinstellungen. Beachtet: Für die Kopressionslevels -m4 und -m5 wird zum Entpacken genau so viel Arbeitsspeicher benötigt, wie zum Komprimieren.

->Weitere Ideen von Euch sind eingeflossen, die vollständige Liste findet Ihr hier:
viewtopic.php?p=115716#p115716

-> Wie immer sind die Dateien der v0.9.4 dem ersten Beitrag dieses Threads angehängt ;)

Danke für Euer Testen, danke für Eure Rückmeldungen! Mit der 0.9.4 kann man schon recht gut arbeiten. Ich schätze, wir kommen am Wochenende zu unserem Release V1.0, ich freue mich schon!

Liebe Grüße, Euklid :)

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: ZPAQ's Face - eine Benutzeroberfläche zur effizienten Datenkompression v0.9.2

Beitrag von Euklid »

Euklid hat geschrieben: So 19. Jul 2020, 22:21 Liebe Forumsmitglieder,

am heutigen Tag hat sich die folgende Liste an Änderungen ergeben, die bis zur genannten Version eingearbeitet werden sollen.

Falls Ihr weitere Bugs findet oder Wünsche für das Programm habt, könnt Ihr mir gerne schreiben und die ToDo-Liste wird erweitert.

Bis zur Version 1.0 (Release)
-> BUG: "Datei hinzufügen" fügt bei geöffnetem Archiv zwar die gewünschte Datei hinzu, allerdings werden beim anschließenden Öffnen alle anderen Dateien im Archiv nicht mehr angezeigt.
//ab v0.9.3:-> Bernds Tipp aus dem Forum zu TShellListView aufnehmen und Gedanken machen, die PFade weg zu lassen.
//ab v0.9.3:-> $IFDEF Unix um BaseUnix-Unit, sonst lässt sich das Programm nicht unter Windows kompilieren
-> Sonderzeichen aus Datei- und Ordnernamen von ZPAQ's Face entfernen.
//ab v0.9.3: -> Nach Vorschlag von Bernd im Forum: Buttons tauschen
-> ggf. Datei&Ordner hinzufügen über selben Dialog
-> Öffnen-&Speichern-Dialog soll sich letztes Verzeichnis merken und automatisch öffnen.
-> Im Archiv-Öffnen-Dialog nur *.zpaq-Dateien anzeigen.
//ab v0.9.3: -> Entsprechend dem Vorschlag von winni "DirectorySeparator" für das Verzeichnistrennzeichen verwenden
//ab 0.9.4: -> Mauszeiger zur Uhr werden lassen, während zpaq arbeitet. (Idee von winni)
//ab v0.9.3:-> (gelöst durch feste Fenstergröße) Mit Panels die sich Automatisch an der Fenster Größe ausrichten. (Pluto)
// ab v0.9.3: Behoben! -> Bug: Bei Archiven mit sehr vielen Dateien werden nicht alle Dateien in der ShellListView angezeigt.
//ab v0.9.3: -> AusgabeMemo soll während der Laufzeit von zpaq aktualisiert werden.
//ab v0.9.3: Behoben!-> Bug: Bei sehr langsamen Datenträgern kommt es beim Öffnen großer Archive zum Zugriffsfehler, da ZPAQ langsamer ist als das Einlesen des Outputs. Dadurch werden in der Prozedur ArchivinhaltAusAusgabeParsen in den Ausgabezeilen auf Zeichen zugegriffen, die "hinter" dem Ende der Zeile liegen.
//ab v0.9.4: -> Wahl der Threadanzahl (mehr=schneller) und des Arbeitsspeicherbedarfs (mehr=bessere Kompression)
//ab v0.9.4: -> application.ProcessMessages einfügen (Tipp von winni, Integration falls es Vorteile bringt--> Rückmeldung erfragt)
//ab v0.9.4: ->Kompressionslevel: Style--> csOwnerDrawFixed
-> Aktualisierung des Memo nur noch 1x pro Sekunde statt 5x pro Sekunde (Ressourcenverbrauch reduzieren)

Bis zur Version 1.1:
-> ggf. Ordnergröße als Gesamtgröße anstelle '' im Archivinhalt angeben.
-> Möglichkeit, noch nicht archivierte Dateien aus der ShellListView zu entfernen.
-> Integration von paq8px_v188 für experimentelle und extrem starke Kompression
-> Mac-Kompatibilität (vermutlich nur mithilfe von Unterstützung aus der Community möglich)
-> Fortschrittsbalken und geschätzte Dauer hinzufügen. (Idee von Winni)
-> Icons für die Dateien in die TShellListView einbauen (Pluto)
-> Möglichkeit hinzufügen, einzelne Dateien aus dem Archiv zu entfernen
-> Möglichkeit, bei großen Archiven nach einem Datei- oder Ordnernamen zu suchen

Bis zur Version 1.2:
-> Verschlüsselung einbauen, falls es interessierte Anwender für Verschlüsselung gibt.

Euch eine gute Zeit! :)

Liebe Grüße, Alexander alias Euklid

EDIT: Mac-Kompatibilität ergänzt.
EDIT 2: Ideen von Winni hinzugefügt.
EDIT 3: Ideen von Pluto hinzugefügt.

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: ZPAQ's Face - eine Benutzeroberfläche zur effizienten Datenkompression v0.9.4

Beitrag von Winni »

Hi!

Ich hab mal nach meinen eigenen Cursor-Kreationen gesucht - leider nicht sehr ergiebig:
* Die gute alte Sanduhr
* Die Sanduhr mit einer Uhr kombiniert
* Ein roter Pfeil
* Eine rauchende Zigarette (genug Nichtraucherzeichen gesehen)

Wie die geladen und aktiviert werden, siehst Du im beiliegenden Demo Programm.

Prinzipiell: Wie geht das mit den eigenen Cursorn??

Entweder im Internet rumplündern - neben viel Schwachsinn gibt es auch Brauchbares.
Oder sich einen Cursor-Editor besorgen und selber machen.

Dann in Lazarus-Ressource wandeln.
Mit {$I ......} Ressoure laden.

Mit
Screen.Cursors := LoadCursorFromLazarusResource(RName]);
wobei i > 0 sein sollte, da die vordefinierten Cursor alle negativ sind.

Winni
Dateianhänge
Cursors.zip
(133.77 KiB) 99-mal heruntergeladen

wennerer
Beiträge: 608
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
CPU-Target: x86_64-linux-gtk2

Re: ZPAQ's Face - eine Benutzeroberfläche zur effizienten Datenkompression v0.9.4

Beitrag von wennerer »

Hallo Alexander,
dein Programm nimmt ja schon richtig Fahrt auf. Habe eben die neueste Version getestet.
Und @winni, was Dir besonders gefallen wird: Man erkennt jetzt beim Komprimieren umfangreicher Ordner den Fortschritt und die von ZPAQ prognostizierte Zeit im Memo unten
Das Funktioniert bei mir leider nicht (Linux Mint). Die Ausgabe erscheint erst wenn die Komprimierung beendet ist.
Stört mich persönlich aber nicht so sehr. Ich vermisse eher das beim Speicherndialog der Dateiname nicht schon als Vorauswahl drin steht. In der Regel wird die komprimierte Datei wohl den selben Namen haben wie das Orginal.
Viel Spaß noch beim Programmieren!
Bernd

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: ZPAQ's Face - eine Benutzeroberfläche zur effizienten Datenkompression v0.9.4

Beitrag von Euklid »

Winni hat geschrieben: Mi 22. Jul 2020, 19:24 Hi!

Ich hab mal nach meinen eigenen Cursor-Kreationen gesucht - leider nicht sehr ergiebig:
* Die gute alte Sanduhr
* Die Sanduhr mit einer Uhr kombiniert
* Ein roter Pfeil
* Eine rauchende Zigarette (genug Nichtraucherzeichen gesehen)
Sehr cool, danke! Ich werde am Wochenende mal schauen, ob eine schöne "Kreation" dabei ist, die ich dann einbinde...

Viele Grüße vom Euklid

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: ZPAQ's Face - eine Benutzeroberfläche zur effizienten Datenkompression v0.9.4

Beitrag von Euklid »

wennerer hat geschrieben: Mi 22. Jul 2020, 20:30
Und @winni, was Dir besonders gefallen wird: Man erkennt jetzt beim Komprimieren umfangreicher Ordner den Fortschritt und die von ZPAQ prognostizierte Zeit im Memo unten
Das Funktioniert bei mir leider nicht (Linux Mint). Die Ausgabe erscheint erst wenn die Komprimierung beendet ist.
Okay! Hast Du mal Ordner mit vielen Dateien damit komprimiert? Z.B. mit Methode -m3. Er müsste jetzt die zpaq-Ausgabe direkt an das Memo weiter leiten. Bei mir klappt das mit der v0.9.4 sowohl auf Mint 10 als auch auf Mint 19.3 (jeweils Cinnamon).
Stört mich persönlich aber nicht so sehr. Ich vermisse eher das beim Speicherndialog der Dateiname nicht schon als Vorauswahl drin steht. In der Regel wird die komprimierte Datei wohl den selben Namen haben wie das Orginal.
Jawoll - den Punkt bearbeite ich noch vor dem Release der V1.0!

Frage an Dich:
--> Dein Vorschlag ist ja eindeutig umsetzbar, falls man nur eine einzige Datei oder einen einzigen Ordner in der Liste hat, den man komprimieren möchte.
--> Hat man mehrere Dateien hinzugefügt, was würdest Du besser finden:
a) Der Speichern-Dialog schlägt den Namen des ersten Eintrags in der Liste der zu komprimierenden Dateien vor und versieht ihn mit einem *.zpaq
b) Der Nutzer findet in diesem Fall ein leeres Feld vor und muss einen eigenen Namen eintippen.

Liebe Grüße, Euklid

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: ZPAQ's Face - eine Benutzeroberfläche zur effizienten Datenkompression v0.9.4

Beitrag von Winni »

Hi!

Wiedergefunden:

Die Seite mit "altmodischen" Cursorn:

http://cool-web.de/mouse-pointer/cursors.htm

Winni

Antworten