Ver Mensaje Individual
  #8  
Antiguo 21-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.141
Reputación: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Al cabo me he decidido con un ejemplo que consigue más o menos lo que precisas, recuerda que los componentes utilizados son bastante más potentes que lo que se muestra aquí, quiere decirse que pueden dar mucho más de sí.

Código Delphi [-]
 uses
   // Delphi 7
   Dialogs, ExtDlgs, SysUtils,
 
   // Turbo Power Abbrevia 3.05
   AbZipKit, AbArcTyp, AbZipTyp;
 
 // TODO : Renombrar este procedimiento 
 //
 procedure ComprimirImagenesDentroArchivoZip;
 resourcestring
   rsExtensioZip = 'zip';
   rsFiltrDlgZip = 'Archivos Zip (*.zip)|*.zip';
   rsTitleDlgZip = '¿Dónde quieres guardar el archivo Zip?';
   rsTitleDlgImg = 'Elige las imágenes que quieres comprimir';
 var
   i: integer;
   zip: TAbZipKit;
   dlgZip: TSaveDialog;
   dlgImg: TOpenPictureDialog;
 begin
   zip := TAbZipKit.Create(nil);
   dlgZip := TSaveDialog.Create(nil);
   dlgImg := TOpenPictureDialog.Create(nil);
   try
     dlgZip.Title := rsTitleDlgZip;
     dlgImg.Title := rsTitleDlgImg;
     dlgZip.Filter := rsFiltrDlgZip;
     dlgZip.DefaultExt := rsExtensioZip;
     dlgZip.Options := dlgZip.Options + [ofOverwritePrompt];
     dlgImg.Options := dlgImg.Options + [ofAllowMultiSelect];
     if dlgImg.Execute then
     begin
       if dlgZip.Execute then
       begin
         zip.DeflationOption := doMaximum;
         zip.OpenArchive(dlgZip.FileName);
         zip.FileName := dlgZip.FileName;
         zip.StoreOptions := [soStripDrive, soStripPath, soFreshen];
         for i := 0 to dlgImg.Files.Count-1 do
         begin
           zip.AddFiles(dlgImg.Files[i], faAnyFile);
         end;
         zip.Save;
         zip.CloseArchive;
       end;
     end;
   finally
     zip.Free;
     dlgZip.Free;
     dlgImg.Free;
   end;
 end;
 
 // Ejemplo de llamada al procedimiento
 //
 procedure TfrmPrincipal.Button1Click(Sender: TObject);
 begin
   ComprimirImagenesDentroArchivoZip;
 end;
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita