(* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is TurboPower Abbrevia * * The Initial Developer of the Original Code is * TurboPower Software * * Portions created by the Initial Developer are Copyright (C) 1997-2002 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * ***** END LICENSE BLOCK ***** *) {*********************************************************} {* ABBREVIA: SELFSTUB.DPR *} {*********************************************************} {* ABBREVIA Example program file *} {*********************************************************} (* This program creates a ZIP stub called SELFEX.EXE. This stub can then be used to create self-extracting ZIP files. For more information on self-extracting ZIPs and ZIP stubs see page 112 in the Abbrevia manual. *) program Selfstub; {$APPTYPE CONSOLE} uses AbArcTyp, AbUnzPrc, AbUtils, AbZipTyp, SysUtils; type THelper = class public procedure UnzipProc(Sender : TObject; Item : TAbArchiveItem; const NewName : string); end; procedure THelper.UnzipProc(Sender : TObject; Item : TAbArchiveItem; const NewName : string); begin AbUnzip(Sender, TAbZipItem(Item), NewName); end; {Build this app using the Define "BuildingStub", to keep it smaller!} var ZipArchive : TAbZipArchive; Helper : THelper; begin WriteLn( 'Abbrevia Self Extracting Archive' ); ZipArchive := TAbZipArchive.Create(ParamStr(0), fmOpenRead or fmShareDenyNone); ChDir( ExtractFilePath(ParamStr(0))); Helper := THelper.Create; try ZipArchive.Load; ZipArchive.ExtractHelper := Helper.UnzipProc; ZipArchive.ExtractFiles('*.*'); finally Helper.Free; ZipArchive.Free; end; end.