Ver Mensaje Individual
  #16  
Antiguo 27-02-2008
Avatar de gulder
gulder gulder is offline
Miembro
 
Registrado: abr 2005
Ubicación: colombia-sucre
Posts: 384
Reputación: 22
gulder Va por buen camino
disculpen la demora

Bueno foro aqui ba todo lo que hace mi programa:

DicsImage v 1.0 crea imagenes para tus albunes de musica de forma facil

http://img.tomatone.net/big/vnbv.PNG

DicsImage v 1.0 es una herramienta que te permite de una manera fácil dar a conocer las propiedades de un álbum de música por medio de imágenes con el fin de promocionarlo entre los demás usuarios de algún foro.
DicsImage v 1.0 guarda imagenes en formatos como lo son .jpg .bmp y .png las de formato png son las preferidas para subir a servidores de imagenes puesto que dan una resolucion buena y no pesan demasiado, aqui unos ejemplos hechos con esta aplicacion las cuales se encuentran en formato png:


http://img.tomatone.net/big/paramore.PNG

http://img.tomatone.net/big/patamore_riot.PNG

http://img.tomatone.net/big/patamore_live.PNG

//////////////////////////////////////////////////////////////////////////////////////
aqui esta el codigo de la aplicacion

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, JvExStdCtrls, JvListBox, JvPlaylist, ExtCtrls, ExtDlgs,
  JvBaseDlg, JvSelectDirectory, Menus, jpeg, JvComponent, JvID3v1,shellapi,math,
  JvID3v2Base, JvID3v2, JvDialogs,IniFiles,pngimage ;


type
  TForm1 = class(TForm)
    OpenDialog1: TOpenDialog;
    JvSelectDirectory1: TJvSelectDirectory;
    MainMenu1: TMainMenu;
    Archvo1: TMenuItem;
    AbrirDirectorio1: TMenuItem;
    GuardarImagen1: TMenuItem;
    N2: TMenuItem;
    Opciones1: TMenuItem;
    N3: TMenuItem;
    Salir1: TMenuItem;
    Ayuda1: TMenuItem;
    AcercadeDiscImage1: TMenuItem;
    Panel1: TPanel;
    Panel2: TPanel;
    Image1: TImage;
    N4: TMenuItem;
    AgregarImagenDeDisco1: TMenuItem;
    OpenPictureDialog1: TOpenPictureDialog;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    JvID3v21: TJvID3v2;
    Label8: TLabel;
    SaveDialog1: TJvSaveDialog;
    N1: TMenuItem;
    Nuevo1: TMenuItem;
    Panel3: TPanel;
    JvPlaylist1: TJvPlaylist;
    AyudaDicsImagev101: TMenuItem;
    N5: TMenuItem;
    procedure AbrirDirectorio1Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure GuardarImagen1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Nuevo1Click(Sender: TObject);
    procedure Opciones1Click(Sender: TObject);
    procedure AcercadeDiscImage1Click(Sender: TObject);
    procedure AyudaDicsImagev101Click(Sender: TObject);
    procedure Salir1Click(Sender: TObject);
  private
    { Private declarations }

  public
    { Public declarations }
  MiFichero: Tinifile;
  dir : String;
  procedure information(direccion:String);




  end;

var
  Form1: TForm1;
  Tamano:Int64;
  jpeg: TJPEGImage;
  Bitmap: TBitmap;
  PNG: TPNGObject;
implementation

uses Unit2, Unit3;

{$R *.dfm}

// ESTA FUNCION DETERMINA EL TAMAÑO DE LOS ARCHIVOS MP3 PARA CALCULAR
// EL TAMAÑO TOTAL DEL DIRECTORIO
function GetSizeOfFile(const Filename:string): Int64;
var Sr:TSearchRec;
begin
  try
    if FindFirst(FileName,faAnyFile,sr) <> 0 then
      raise Exception.Create('Archivo ' + FileName+' no encontrado');
      Result:=sr.FindData.nFileSizeHigh * maxdword + sr.Finddata.nFileSizeLow;
  finally
    FindClose(sr);
  end;
end;

//AQUI MUESTRO TODA LA INFORCACION DEL ALBUN COMO LO ES NOMBRE DEL ALBUM
//AUTOR, GENERO, AÑO Y TAMAÑO EN MG
procedure TForm1.information(direccion:String);
begin
  JvID3v21.Active:=false;
  JvID3v21.FileName:=direccion;
  JvID3v21.Active:=true;
  label4.Caption:=JvID3v21.Texts.Album;
  label5.Caption:=JvID3v21.Texts.LeadArtist.CommaText;
  label6.Caption:=JvID3v21.Texts.ContentType.CommaText;
  label7.Caption:=inttostr(JvID3v21.Texts.year);
  form2.Edit1.Text:=label4.Caption;
  form2.Edit2.Text:=label5.Caption;
  form2.Edit3.Text:=label6.Caption;
  form2.Edit4.Text:=label7.Caption;
end;

// AQUI AGREGO EL DIRECTORIO DONDE SE ENCUENTRA EL ALBUN DE MUSICA
procedure TForm1.AbrirDirectorio1Click(Sender: TObject);
var
resultado:TModalResult;
var
  TS:TStrings;
  i:Integer;
  //ESTA PARTE DE CODIGO LA SAQUE DEL FORO CLUBDELPHI Y ES PARA SACAR UNA LISTA DE LOS ARCHIVOS DE UN DIRECTORIO
  procedure ArchivosDirectorio(dir, mascara: string;var lista: TStrings; const soloNombres: boolean);
  var
    SR: TSearchRec;
  begin
        dir := IncludeTrailingPathDelimiter(dir);
        if FindFirst(dir + mascara, faAnyFile, SR) = 0 then
        begin
            //***
            information(dir+SR.Name);
            //***
                  repeat
                        if not soloNombres then
                          lista.Add(ExtractFileName(ChangeFileExt(dir + SR.Name, '')))
                        else
                        begin
                          lista.Add(dir + SR.Name);
                          Tamano:=Tamano+GetSizeOfFile(dir+SR.Name);
                        end;
                  until FindNext(SR) <> 0;
                 SysUtils.FindClose(SR);
                end;

     label8.Caption:=inttostr(Tamano div 1048576)+'  Mb';


          if (JvID3v21.Texts.Album ='')  or (JvID3v21.Texts.LeadArtist.CommaText='')  or (JvID3v21.Texts.ContentType.CommaText='')  or (JvID3v21.Texts.year=0) then
          begin

            resultado:= MessageDlg('¿ DicsImage 1.0 No No Encontro Toda La Informacio Del Album Desea Agregarla Manualmente  ?',mtConfirmation, [mbYes,mbCancel], 0);

                    if resultado = mryes then
                    begin
                     Form2.ShowModal;
                     Form2.PageControl1.ActivePageIndex:=0;
                    end;
           end;
     end;
   begin

   //AQUI CAPTURO EL DIRECTORIO ESCOGIDO POR EL USUARIO
   if JvSelectDirectory1.Execute then
      begin
             TS := TStringList.Create();
                try
                  ArchivosDirectorio(JvSelectDirectory1.Directory,'*.mp3', TS, True);

                        for i := 0 to (TS.Count - 1) do begin
                          TS.Strings[i] := ExtractFileName(TS.Strings[i]);
                        end;

                  JvPlaylist1.Items.Clear;
                  JvPlaylist1.Items.AddStrings(TS);
                  JvPlaylist1.ItemIndex := 0;
                finally
                   FreeAndNil(TS);
                end;
      end;

end;


// AQUI AGREGO LA CARATULA DEL ALBUM
procedure TForm1.N4Click(Sender: TObject);
begin
   if OpenPictureDialog1.Execute then
   Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
end;


//AQUI GUARDO LA IMGEN QUE CAPTURO DEL AREA CLIENTE DE MI APLICACION
//Y LE DOY LA OPCION QUE ME PERMITE ESCOGER ENTRE TRES TIPOS DE FIORMATO
//A LA HORA DE GUARDARLO
procedure TForm1.GuardarImagen1Click(Sender: TObject);
begin
  Bitmap := TBitmap.Create;
  jpeg   := TJPEGImage.Create;
  PNG := TPNGObject.Create;

        //capturo la imagen de mi form


       if SaveDialog1.Execute then
       begin
       
        Form1.Update;
        Application.ProcessMessages;

        Bitmap.Width := ClientWidth;
        Bitmap.Height := ClientHeight;
        Bitmap.Canvas.CopyRect(ClientRect, Canvas, ClientRect);


              try
                      //si el formato escogido es jpg
                      if SaveDialog1.FilterIndex =1 then begin
                        jpeg.Assign(Bitmap);
                        jpeg.CompressionQuality:=90; //25% de calidad
                        jpeg.Compress;
                        //guardamos la imagen en formato jpg
                        jpeg.SaveToFile(SaveDialog1.FileName+'.jpg');
                      end;

                      if SaveDialog1.FilterIndex =2 then begin
                       // si el formato escogido es bmp
                        Bitmap.SaveToFile(SaveDialog1.FileName+'.bmp');
                      end;

                      if SaveDialog1.FilterIndex =3 then begin

                        PNG.Assign(Bitmap);    //Convert data into png
                        PNG.SaveToFile(SaveDialog1.FileName+'.png');
                        
                      end;

              finally
                jpeg.Free;
                Bitmap.Free;
                PNG.Free;
              end;
       end;
end;


//AQUI ESTA EL EVENTO CUANDO SE CREA EL PROGRAMA, BUENO AQUI LO QUE HAGO ES
//BUSCAR EM MI ARCHIVO DE CONFIGURACION .INI EL TIPO DE LETRA Y COLORES DE
//MI APLICACION Y CARGO LA IMAGEN QUE TRAE POR DEFECTO EN LA PORTADA
procedure TForm1.FormCreate(Sender: TObject);
var
T_letra,C_letra,C_panel:string;
T_letra1,C_letra1,C_fondo:string;
begin
    dir := ExtractFilePath(ParamStr(0));
    Image1.Picture.LoadFromFile(dir+'Portada.bmp');

    if FileExists(dir+'\DicsImage_cfg.ini') then begin
     form1.MiFichero := Tinifile.create (form1.dir+'\DicsImage_cfg.ini');

     T_letra:=MiFichero.ReadString('OPC_Titulo', 'T_letra','');
     C_letra:=MiFichero.ReadString('OPC_Titulo', 'C_letra','');
     C_panel:=MiFichero.ReadString('OPC_Titulo', 'C_panel','');
     Form2.llenar_informacion(T_letra,C_letra,C_panel);//carga las propiedades del titulo

     T_letra1:=MiFichero.ReadString('OPC_Lista', 'T_letra','');
     C_letra1:=MiFichero.ReadString('OPC_Lista', 'C_letra','');
     C_fondo:=MiFichero.ReadString('OPC_Lista', 'C_fondo','');
     Form2.llenar_informacion2(T_letra1,C_letra1,C_fondo);//carga las propiedades de la lista
    end;
end;

//NUEVO PROYECTO DE MI APLICACION OSEA BORA TODO
procedure TForm1.Nuevo1Click(Sender: TObject);
begin

    Image1.Picture.LoadFromFile(dir+'Portada.bmp');
    label4.Caption:='-----';
    label5.Caption:='-----';
    label6.Caption:='-----';
    label7.Caption:='-----';
    label8.Caption:='-----';
    JvPlaylist1.Items.Clear;
    JvPlaylist1.Items.Add('Titulo De Canciones De Este Album');

end;

//AQUI LLAMO A LA SEGUNDA FORMA DONDE TENGO LAS OPCIONEC
procedure TForm1.Opciones1Click(Sender: TObject);
begin
form2.JvFontComboBox1.Text:=form1.Label1.Font.Name;
form2.JvColorComboBox1.ColorValue:=form1.Label1.Font.Color;
form2.JvColorComboBox2.ColorValue:=form1.Color;

form2.JvFontComboBox2.Text:=form1.JvPlaylist1.Font.Name;
form2.JvColorComboBox3.ColorValue:=form1.JvPlaylist1.Font.Color;
form2.JvColorComboBox4.ColorValue:=form1.JvPlaylist1.Color;

form2.ShowModal;
end;

//MUESTRO EL ACERCA DE
procedure TForm1.AcercadeDiscImage1Click(Sender: TObject);
begin
  form3.ShowModal;
end;

//EJECUTO EL MANUAL DE AYUDA
procedure TForm1.AyudaDicsImagev101Click(Sender: TObject);
begin
  if FileExists(dir+'\ayuda.pdf') then
  ShellExecute(Handle,'open',pchar(dir+'ayuda.pdf'), nil, nil,SW_NORMAL);
end;

//SALGO DEL PROGRAMA
procedure TForm1.Salir1Click(Sender: TObject);
begin
  close;
end;

end.




aqui esta lo que contiene la segunda parte donde estan las funciones que se llaman en el foncreate de la forma primcipal

Código Delphi [-]
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, JvDialogs, JvColorCombo, JvExStdCtrls,
  JvCombobox,IniFiles;

type
  TForm2 = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Button1: TButton;
    Button2: TButton;
    GroupBox2: TGroupBox;
    Label5: TLabel;
    Label7: TLabel;
    JvColorComboBox1: TJvColorComboBox;
    JvFontComboBox1: TJvFontComboBox;
    Label8: TLabel;
    JvColorComboBox2: TJvColorComboBox;
    Button5: TButton;
    Button4: TButton;
    TabSheet3: TTabSheet;
    GroupBox3: TGroupBox;
    Label6: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    JvColorComboBox3: TJvColorComboBox;
    JvFontComboBox2: TJvFontComboBox;
    JvColorComboBox4: TJvColorComboBox;
    Button6: TButton;
    Button7: TButton;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Button7Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure llenar_informacion(T_letra: string;color1,color2:string);
    procedure llenar_informacion2(T_letra: string;color1,color2:string);
  end;

var
  Form2: TForm2;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm2.llenar_informacion(T_letra: string;color1,color2:string);
begin
    form1.Label1.Font.Name:=T_letra;
    form1.Label1.Font.Color:=StringToColor(color1);
    form1.Label2.Font.Name:=T_letra;
    form1.Label2.Font.Color:=StringToColor(color1);
    form1.Label3.Font.Name:=T_letra;
    form1.Label3.Font.Color:=StringToColor(color1);
    form1.Label4.Font.Name:=T_letra;
    form1.Label4.Font.Color:=StringToColor(color1);
    form1.Label5.Font.Name:=T_letra;
    form1.Label5.Font.Color:=StringToColor(color1);
    form1.Label6.Font.Name:=T_letra;
    form1.Label6.Font.Color:=StringToColor(color1);
    form1.Label7.Font.Name:=T_letra;
    form1.Label7.Font.Color:=StringToColor(color1);
    form1.Label8.Font.Name:=T_letra;
    form1.Label8.Font.Color:=StringToColor(color1);
    form1.Label9.Font.Name:=T_letra;
    form1.Label9.Font.Color:=StringToColor(color1);
    form1.Label10.Font.Name:=T_letra;
    form1.Label10.Font.Color:=StringToColor(color1);

    form1.Panel1.Color:=StringToColor(color2);
    form1.Color:=StringToColor(color2);

end;

procedure TForm2.llenar_informacion2(T_letra: string;color1,color2:string);
begin
    form1.JvPlaylist1.Font.Name:=T_letra;
    form1.JvPlaylist1.Font.Color:=StringToColor(color1);
    form1.JvPlaylist1.Color:=StringToColor(color2);
    form1.panel3.Color:=StringToColor(color2);
end;



procedure TForm2.Button2Click(Sender: TObject);
begin
    Form2.PageControl1.ActivePageIndex:=0;
    form2.Close;
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
    form1.label4.Caption:=Edit1.Text;
    form1.label5.Caption:=Edit2.Text;
    form1.label6.Caption:=Edit3.Text;
    form1.label7.Caption:=Edit4.Text;
    form2.Close;
end;

procedure TForm2.Button5Click(Sender: TObject);
begin
    llenar_informacion(JvFontComboBox1.Text,ColorToString(JvColorComboBox1.ColorValue),ColorToString(JvC  olorComboBox2.ColorValue));


     form1.MiFichero := Tinifile.create (form1.dir+'\DicsImage_cfg.ini');
     form1.MiFichero.WriteString('OPC_Titulo', 'T_letra', Trim(JvFontComboBox1.Text));
     form1.MiFichero.WriteString('OPC_Titulo', 'C_letra', Trim(ColorToString(JvColorComboBox1.ColorValue)));
     form1.MiFichero.WriteString('OPC_Titulo', 'C_panel', Trim(ColorToString(JvColorComboBox2.ColorValue)));

     form2.Close;
end;

procedure TForm2.Button4Click(Sender: TObject);
begin
  Form2.PageControl1.ActivePageIndex:=0;
  form2.Close;
end;

procedure TForm2.FormShow(Sender: TObject);
begin

end;

procedure TForm2.Button7Click(Sender: TObject);
begin
    llenar_informacion2(JvFontComboBox2.Text,ColorToString(JvColorComboBox3.ColorValue),ColorToString(Jv  ColorComboBox4.ColorValue));

     form1.MiFichero := Tinifile.create (form1.dir+'\DicsImage_cfg.ini');
     form1.MiFichero.WriteString('OPC_Lista', 'T_letra', Trim(JvFontComboBox2.Text));
     form1.MiFichero.WriteString('OPC_Lista', 'C_letra', Trim(ColorToString(JvColorComboBox3.ColorValue)));
     form1.MiFichero.WriteString('OPC_Lista', 'C_fondo', Trim(ColorToString(JvColorComboBox4.ColorValue)));

    form2.Close;
end;

end.

Bueno aqui les dejo todo el codigo de mi aplicacion esta en subido en rapidshare

http://rapidshare.com/files/95383384..._DicsImage.rar

y aqui el instalador de mi aplicacion que tambien esta rapidshare, el instaldor esta hecho con Inno Setup Compiler v 5.2.2 este fue el que no funciona en otras computaroras execto lamia jeje

http://www.linkdirecto.com/noref.php...0____setup.exe

bueno les recuerdo para que les funcione bien utilizo los siguientes paquetes de compoenetes y delphi 7:

JEDI VCL o mas bien JVCL 3.0 de la cual utilizo los siguientes comopentes

1. JvID3v21
2. JvSelectDirectory
3. JvPlaylist

y tambien utilizo un componenete que me permite pasar imagenes a formato png ese instalador lo incluyo aqui en codigo,
bueno Neftali me estoy bajando el programa que me mencionas, bueno espero que ser claro saludos de antemano gulder.

Última edición por gulder fecha: 27-02-2008 a las 17:05:38.
Responder Con Cita