![]() |
KAZip - ich hab da mal ne' Frage zu
Hallo alle zusammen,
ich habe eine Frage und hoffe, dass ich mich verständlich ausdrücke: Ich will mehrere Dateien zu einen Archiv zusammenfassen. Nun möchte ich eine procedur aufrufen die das für mich erledigt. Die procedur liegt in einer eigenen .pas (ohne Form) Datei und war schon lauffähig bevor ich diese procdeur eingepflegt habe. Als Fehlermeldung bekomme ich eine "Access Violation" und ich weiss nicht warum... Vielleicht kann mir jemand helfen, hier der Code
Delphi-Quellcode:
...
unit blah; interface uses SysUtils, FileCtrl, Windows, Forms, inifiles, ShellApi, Messages, Dialogs, classes, KAZip; procedure WriteLog(sText: string); procedure packer(IniAList:TStrings); var s, i, sec : string; KAZip1 : TKAZip; const .... implementation
Delphi-Quellcode:
In den Variablen stehen die Werte drin, die reingehören, soweit alles gut (Hoffe ich ....)procedure packer(IniAList:TStrings); var s, str1, str2, str3: string; i : integer; Alist: TStringlist; begin AList:=TStringlist.Create; AList.Assign(IniAList); s:='='; str2:=readsini('Archiv','Name0','newarc'); str3:=readsini('Verzeichnis','TPFad',''); if DirectoryExists(str3) then begin KAZip1.CreateZip(str3+'\'+str2+'.zip'); KAZip1.FileName:=str2+'.zip'; <============ Hier fällt er anscheinend auf die Nase KAZip1.Active:=true; Form3.ProgressBar1.Min:=0; Form3.Show; Form3.ProgressBar1.Max:=AList.Count; for i := 0 to AList.Count -1 do begin str1:=copy(AList[i],Pos(s,AList[i])+1,255); KAZip1.AddFile(str1); Form3.Label1.Refresh; Form3.ProgressBar1.Position:=Form3.ProgressBar1.Position + 1; end; KAZip1.Active:=false; KAZip1.Close; KAZip1.Free; Form3.ProgressBar1.Position:=0; Form3.Close; AList.Free; end else begin MessageDlg( MTP + Msupp ,mtInformation, [mbOk], 0); WriteLog(MTP); end; end; Kann mir bitte jemand weiterhelfen???! Ich habe keine Ahnung was da schief läuft. Gruss && danke ascotlx |
Re: KAZip - ich hab da mal ne' Frage zu
Bevor du KAZip1 benutzt:
Delphi-Quellcode:
OT: Du solltest mal in Betracht ziehen, aussagekräftige Namen für Variablen zu benutzen, statt zu nummerieren.
KAZip1 := TKAZip.Create;
|
Re: KAZip - ich hab da mal ne' Frage zu
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
wenn ich Deinen Vorschlag probiere, bekomme ich die Fehlermeldung: "Nicht genügend wirkliche Parameter" Ich hänge auch mal die meldung an, wenn ich TKAZip.Create eintippe. Was muss den als AOwner eingetragen werden? Ich habe schon "Self" ausprobiert, da sagt der Compiler aber nur "Self" wäre ein nicht definierter Bezeichner. Leider fehlt mir noch das Hintergrundwissen, um mit solchen Dingen "fertig" zu werden. Das mit dem "Self" habe ich mal in Verbindung mit einem Form.Create benutzt. hat noch jemand eine Idee ??? Gruss && Danke für Eure Unterstützung ascotlx EDIT - NACHTRAG - EDIT ich habe es mit:
Delphi-Quellcode:
probiert und es funktioniert, ich weiss zwar nicht wieso, aber vielleicht kann mir das ja jemand mal erklären...
KAZip1 := TKAZip.Create(nil);
vielen Dank schon mal .... ich wünsche allen DP'lern (und nicht DP'lern) ein tolles Wochenende |
Re: KAZip - ich hab da mal ne' Frage zu
Zitat:
Mit nil sagst du, dass das Objekt keiner Komponente zugeordnet werden soll, die für das Freigeben zuständig ist. Da du manuell frei gibst ist also nil in Ordnung. Mach dich mal mit der Hilfe vertraut. Bei so gut wie jeder Komponente steht die Erklärung zu AOwner im Abschnitt der Methode Create. |
Re: KAZip - ich hab da mal ne' Frage zu
@Alien426
Besten Dank für die Erklärung.... Ich werde wohl doch nicht um das Lesen eines Buches herumkommen, mit der Hilfe hab ich ab und zu noch so meine Verständisprobleme ;o) gruss ascotlx |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:30 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 by Thomas Breitkreuz