![]() |
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 ( ![]()
Delphi-Quellcode:
Viele Grüße,
//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; I love Delphi! |
AW: Zippen mit Turbo Delphi
Delphi-Quellcode:
ZIP:=TZipMaster19.Create(self);
ZIP.Parent := Self; |
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! |
AW: Zippen mit Turbo Delphi
Dann führst du den Code auuserhalb der Formklasse aus.
|
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! |
AW: Zippen mit Turbo Delphi
In würde es im onCreate der Form ausführen
|
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. |
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; |
AW: Zippen mit Turbo Delphi
Hallo,
lass mal
Delphi-Quellcode:
weg.
ZIP.Active:=true;
ZIP.DLL_Load:=true; 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 |
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 10:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz