PDA

Ver la Versión Completa : acerca de los iconos


tato
20-05-2006, 23:59:56
hola a todos, tal vez mi pregunta se boba, pero la verdad no he dado con el chiste; la pregunta es la siguiente: he desrrollado una aplicacion que genera unos archivos de tipo el nombre de mi aplicaciòn ahora lo que quiero hacer es a esos archivos generado, colocarles un icono caracteristico, asi como los archivos .DOC tienen el icono de Word. agradesco cualquier ayuda que me puedan brindar y gracias de antemano

dec
21-05-2006, 00:57:07
Hola,

Creo que te refieres a asociar una extensión de archivo con tu programa. Las siguientes funciones las uso yo en una aplicación para ello. Las escribí hace tiempo y no he hecho ahora sino copiarlas aquí. Atención, porque puede que tengan algún que otro problema: debes hacer pruebas y asegurarte de que todo va bien para repasar lo que fuera menester.


{ Asociar una determinada extensión de archivo de
forma que el programa se encarge de abrir el tipo
de archivo correspondiente.

Basado en un procedimiento escrito por roman en
los foros del ClubDelphi (www.clubdelphi.com).
}
procedure AsociarExtension(extension: string);
var
reg: TRegistry;
temp, tipo: string;
begin
tipo := rsProyecto + Copy(UpperCase(extension),
2, Length(extension));
reg := TRegistry.Create;
try
with reg do begin
RootKey := HKEY_CLASSES_ROOT;
OpenKey(extension, true);
temp := ReadString(EmptyStr);
WriteString(EmptyStr, tipo);
CloseKey;
OpenKey(tipo + '\shell\open\command', true);
WriteString(EmptyStr, ParamStr(0) +' "%1"');
CloseKey;
OpenKey(tipo + '\DefaultIcon', true);
WriteString(EmptyStr, ParamStr(0) +',0');
CloseKey;
{ Realizamos una copia de seguridad para
que puedan "desasociarse" extensiones de
archivo con el programa y recuperarse la
información relativa a la misma.
}
if (temp <> EmptyStr) and (temp <> tipo) then
begin
RootKey := rsRegRoot;
OpenKey(rsRegExtensiones +rsBarraIzq+ extension, true);
WriteString(EmptyStr, temp);
CloseKey;
end;
end;
finally
reg.Free;
end;
end;

{ Desasociar una determinada extensión de
archivo asociada antes con este programa.
}
procedure DesasociarExtension(extension: string);
var
reg: TRegistry;
temp, tipo: string;
begin
temp := EmptyStr;
tipo := rsProyecto + Copy(UpperCase(extension),
2, Length(extension));
reg := TRegistry.Create;
try
with reg do begin
RootKey := rsRegRoot;
{ Tratamos de recuperar el nombre del tipo
de archivo perteneciente a la extensión,
que previamente, si existía, guardamos
en el procedimiento "AsociarExtension"
}
OpenKey(rsRegExtensiones +rsBarraIzq+ extension, false);
temp := ReadString(EmptyStr);
CloseKey;
DeleteKey(rsRegExtensiones +rsBarraIzq+ extension);
// Y, en cualquier caso...
RootKey := HKEY_CLASSES_ROOT;
OpenKey(extension, false);
WriteString(EmptyStr, temp);
CloseKey;
DeleteKey(tipo);
end;
finally
reg.Free;
end;
end;

diniremix
21-05-2006, 02:39:49
hola tato salu2
sip permites creo q esto t puede ayudar:cool:

poner esto en el FormCreate de tu form


var
pathfile:string;
begin
pathfile:=ParamStr(1);
//esta captura la ruta del archivo
//q llama a la aplicacion ;)
//el parametro 1 es para archivos
//y el 0 es para carpetas

if (pathfile<>'')then
// y aqui se carga la info del
//archivo en la aplicacion
// por Ej en un Memo

memo1.Lines.LoadFromFile(pathfile);
// listo ;)
end;


en español esto hara q al abrir tu archivo la aplicacion q lo abra sea tu programa claro haciendo lo q el amigo dec t dijo primero.:) ;)

ahh gracias dec m sirvío mucho eso hace un tiempo:D
P.D.
amigo tato puede q al principio guindow$ no t ponga el icono del programa en el archivo (para q lo identifiques mejor...) pero despues de una reiniciada lo hara!!
bytes y salu2