Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   acerca de los iconos (https://www.clubdelphi.com/foros/showthread.php?t=31894)

tato 20-05-2006 23:59:56

acerca de los iconos
 
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.

Código Delphi [-]
{ 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

Código Delphi [-]
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


La franja horaria es GMT +2. Ahora son las 10:22:34.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi