Ver Mensaje Individual
  #7  
Antiguo 06-07-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - Espańa
Posts: 18.286
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Basta con que crees un fichero de recursos como los estandard de Delphi y lo añadas a un proyecto de DLL.

Crea un archivo .RC como este (icons.rc):
Código:
BACK          BITMAP ".\back.bmp"
BARCODE    BITMAP ".\barcode.bmp"
...
Lo compilas usando el programa brcc32 (desde la linea de comandos)
Código:
brcc32 icons.Rc > Errores.txt
Desde Delphi creas un nuevo proyacto en: File/New/Other/DLL Wizard

y donde pone {$R *.res} cambias eso por {$R ICONS.RES}
Compila, linka y la DLL resultante ya tiene los iconos.

Una vez que tengas la DLL creada, en mi caso, por ejemplo con el nombre: ResDLL.dll para recuperar los iconos haz lo siguiente:
(1) Crea una nueva aplicación de delphi.
(2) Coloca dos TImage y un botón.
(3) En el Onclick del botón coloca el siguiente código:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  DllHandle: THandle;
begin
  // Cargar la DLL (debe estar en el mismo directorio)
  DllHandle := LoadLibrary('.\ResDLL.dll');
  // Cargada correctamente?
  if DllHandle <> 0 then begin
    // proteccion
    try
      //Cargar los recursos desde la DLL
      Image1.Picture.Bitmap.Handle := LoadBitmap(DllHandle, 'BACK');
      Image2.Picture.Bitmap.Handle := LoadBitmap(DllHandle, 'BARCODE');
    finally
      // Liberarla
      FreeLibrary(DllHandle)
    end;
  end
  else begin
    // Error
    ShowMessage(SysErrorMessage(GetLastError))
  end;
end;

Una vez compilado si la DLL y el EXE están en el ismo directorio deberían funcionar.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.

Última edición por Neftali [Germán.Estévez] fecha: 06-07-2006 a las 16:28:54.
Responder Con Cita