Ver Mensaje Individual
  #2  
Antiguo 05-09-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.112
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Los iconos de los componentes se guardan en archivos ".dcr", que pueden editarse mediante el editor de imágenes de Delphi o con programas como XN Resource Editor. Cada icono se representa por un recurso de tipo "bitmap", que creo que ha de tener 24x24 píxeles y 4 bit de colores (esto es lo general, me parece).

El quid de la cuestión está en guardar cada recurso/bitmap con el mismo nombre del tipo del componente en mayúsculas. Suponiendo que tenemos un componente "TGrandEdit" el recurso/bitmap del icono del componente debería llamarse "TGRANDEDIT". Ojo que en un archivo ".dcr" pueden incluirse varios recursos, bitmaps, iconos...

Si instalas los componentes mediante paquetes lo normal es que tengas al menos dos paquetes, uno para tiempo de diseño y otro para tiempo de ejecución. Pues bien, en el archivo de proyecto del primer paquete (el de diseño) puedes incluir el archivo de recursos ".dcr" en el mismo. A continuación un ejemplo de archivo de proyecto de un paquete para tiempo de diseño de ciertos componentes:

Código Delphi [-]
package CCD_DelphiD;

{$R *.res}
{$R 'CCD.dcr'}
{$ALIGN 8}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO ON}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS ON}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION ON}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO ON}
{$SAFEDIVIDE OFF}
{$STACKFRAMES OFF}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST OFF}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$DESCRIPTION 'Componentes del ClubDelphi (Design time)'}
{$DESIGNONLY}
{$IMPLICITBUILD ON}

requires
  rtl,
  dcldb,
  designide,
  CCD_DelphiR;

contains
  UCCDRegister in 'UCCDRegister.pas',
  UCCDAboutProp in 'UCCDAboutProp.pas';

end.

En la línea "{$R 'CCD.dcr'}" se incluye un archivo ".dcr" que contiene variios iconos en este caso. Delphi se encarga ya de buscar en dicho archivo los iconos correspondientes. Si no usas paquetes puedes incluir (igual que arriba) el archivo ".dcr" que corresponda. Si ya usas archivos ".dcr" fíjate que estos estén donde correspondan.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita