Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Zippen mit Turbo Delphi (https://www.delphipraxis.net/152987-zippen-mit-turbo-delphi.html)

I love Delphi 15. Jul 2010 14:53

Zippen mit Turbo Delphi
 
Hallo liebe Delphi-Freunde,
momentan arbeite ich an einem sehr umfangreichen Projekt, und verwende dazu Turbo Delphi 2006. Bekanntermaßen ist man hier ja was Komponenten angeht sehr eingeschränkt.
Mein aktuelles Ziel ist es mehrere dynamisch erzeugte Dateien zu zippen, das erstellen funktioniert ja auch ganz gut, nur das Zippen eben nicht. Ich habe es mit der Komponente MasterZip (http://www.delphizip.org/) versucht, jedoch habe ich das Gefühl, dass diese Komponente nur funktioniert wenn man sie in der IDE installiert, nicht jedoch wenn man sie nur als Klasse einbindet. Explizit liegt mein Problem im Create des Objekts, da ich (warum auch immer) keinen Parameter wie "self" oder "parent" übergeben kann. Allerdings habe ich auf diesem Gebiet auch nicht die größte Ahnung. Falls mir also jemand sagen könnte woran es hier scheitert, bzw. mir eine andere Komponente/Klasse zum Zippen empfehlen könnte, wäre ich dafür sehr dankbar!

Delphi-Quellcode:
    //Kompletten Ordner-Inhalt ZIPPEN
    ZIP:=TZipMaster19.Create(nil);
    ZIP.Active:=true;
    ZIP.DLL_Load:=true;
    ShowMessage(AFile+'.lvlzip');
    ZIP.ZipFileName:=AFile+'.lvlzip';
    ZIP.FSpecArgs.AddStrings(ListFileDir(tmpDir));
    ZIP.Add;
Viele Grüße,
I love Delphi!

mkinzler 15. Jul 2010 14:56

AW: Zippen mit Turbo Delphi
 
Delphi-Quellcode:
ZIP:=TZipMaster19.Create(self);
ZIP.Parent := Self;

I love Delphi 15. Jul 2010 15:00

AW: Zippen mit Turbo Delphi
 
Hallo,
danke erstmal für Deine schnelle Antwort, aber das hatte ich (so halb :)) auch schon probiert. Leider meldet er mir "self" als undefinierten Bezeichner, was ich wiederum nicht zu deuten weiß. Hat noch jemand 'ne Idee?

Viele Grüße,
I love Delphi!

mkinzler 15. Jul 2010 15:01

AW: Zippen mit Turbo Delphi
 
Dann führst du den Code auuserhalb der Formklasse aus.

I love Delphi 15. Jul 2010 15:04

AW: Zippen mit Turbo Delphi
 
Hallo,
das stimmt. Der Code steht innerhalb einer extra Klasse, die jedoch auch keinen Bezug auf die Formklasse hat, sondern nur von dieser aufgerufen wird. Weißt Du vielleicht trotzdem wie ich das lösen könnte?

Viele Grüße,
I love Delphi!

mkinzler 15. Jul 2010 15:06

AW: Zippen mit Turbo Delphi
 
In würde es im onCreate der Form ausführen

himitsu 15. Jul 2010 15:10

AW: Zippen mit Turbo Delphi
 
self geht nur, wenn du z.B. einer Methode einer Form nimmst.
wurde schon gesagt

Du kannst einfach nur (d)eine Form oder irgendein anders passendes Objekt/Komponente verwenden ... notfalls kannst'e immernoch eine unsichtbare Form dafür erstellen.


Wobei ich mich eher fragen, was nicht geht ... "es geht nicht" ist keine Fehlerbeschreibung.

DeddyH 15. Jul 2010 15:16

AW: Zippen mit Turbo Delphi
 
Man könnte dieser Extraklasse auch eine Property spendieren, welche das ParentControl aufnimmt. Alternativ könnte ich mir auch einen Parameter beim Aufruf der Routine vorstellen, der dem selben Zweck dient.
Delphi-Quellcode:
procedure TForm1.Wuppdi;
var DeineKlasse: TDeineKlasse;
begin
  DeineKlasse := TDeineKlasse.Create;
  try
    DeineKlasse.Zippen(self);
  finally
    DeineKlasse.Free;
  end;
end;

hoika 15. Jul 2010 15:48

AW: Zippen mit Turbo Delphi
 
Hallo,

lass mal

Delphi-Quellcode:
ZIP.Active:=true;
ZIP.DLL_Load:=true;
weg.

Das mit dem Create(NIL) ist schon richtig.

Wie heisst das Ausgabe-Verzeichnis.
Viell. kann der Zipmaster dort nicth schrieben ?

Ausserdem fehlt das .Free zum Schluss.



Heiko

DeddyH 15. Jul 2010 15:52

AW: Zippen mit Turbo Delphi
 
Ist das eine nicht-visuelle Komponente? In dem Fall ist der Aufwand wirklich nicht gerechtfertigt, dann genügt ein Create mit nil als Owner und anschließendes manuelles Freigeben, wie Heiko schon schrieb.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:10 Uhr.
Seite 1 von 2  1 2      

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