88 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
(* ***** 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: QSELFSTUB.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 QSelfStub;
 | 
						|
 | 
						|
{$IFDEF WIN32}
 | 
						|
  {$APPTYPE CONSOLE}
 | 
						|
{$ENDIF}
 | 
						|
 | 
						|
uses
 | 
						|
  AbArcTyp,
 | 
						|
  AbUnzPrc,
 | 
						|
  AbUtils,
 | 
						|
  AbZipTyp,
 | 
						|
  {$IFDEF Windows}
 | 
						|
  WinCRT,
 | 
						|
  {$ENDIF}
 | 
						|
  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.
 |