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
public
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}
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;
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;
procedure TForm1.AbrirDirectorio1Click(Sender: TObject);
var
resultado:TModalResult;
var
TS:TStrings;
i:Integer;
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
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;
procedure TForm1.N4Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute then
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
end;
procedure TForm1.GuardarImagen1Click(Sender: TObject);
begin
Bitmap := TBitmap.Create;
jpeg := TJPEGImage.Create;
PNG := TPNGObject.Create;
if SaveDialog1.Execute then
begin
Form1.Update;
Application.ProcessMessages;
Bitmap.Width := ClientWidth;
Bitmap.Height := ClientHeight;
Bitmap.Canvas.CopyRect(ClientRect, Canvas, ClientRect);
try
if SaveDialog1.FilterIndex =1 then begin
jpeg.Assign(Bitmap);
jpeg.CompressionQuality:=90; jpeg.Compress;
jpeg.SaveToFile(SaveDialog1.FileName+'.jpg');
end;
if SaveDialog1.FilterIndex =2 then begin
Bitmap.SaveToFile(SaveDialog1.FileName+'.bmp');
end;
if SaveDialog1.FilterIndex =3 then begin
PNG.Assign(Bitmap); PNG.SaveToFile(SaveDialog1.FileName+'.png');
end;
finally
jpeg.Free;
Bitmap.Free;
PNG.Free;
end;
end;
end;
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);
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); end;
end;
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;
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;
procedure TForm1.AcercadeDiscImage1Click(Sender: TObject);
begin
form3.ShowModal;
end;
procedure TForm1.AyudaDicsImagev101Click(Sender: TObject);
begin
if FileExists(dir+'\ayuda.pdf') then
ShellExecute(Handle,'open',pchar(dir+'ayuda.pdf'), nil, nil,SW_NORMAL);
end;
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
public
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.