Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Archivo RES y fuente OTF (https://www.clubdelphi.com/foros/showthread.php?t=86526)

Jose Roman 26-08-2014 20:59:40

Archivo RES y fuente OTF
 
Cordial saludo,

Deseo cargar una fuente OTF en mi aplicación por medio de una archivo RES, asi que por favor alguien que me indique que esto haciendo mal ya que no carga la fuente que deseo.

Esta es la estructura del archivo RC (el cual se llama Fuentes.rc):
Código Delphi [-]
1 RCDATA Hallo_sans.otf

Creo el archivo RES con el BRC32.exe:
Código Delphi [-]
brc32.exe -r -v Fuentes.rc

El codigo fuente es:
Código Delphi [-]
implementation

{$R *.dfm}
{$R Fuentes.res}

procedure TForm1.FormCreate(Sender: TObject);
var
  Recursos: TResourceStream;
  MiFuente: TFont;
begin
  MiFuente := TFont.Create;
  Recursos := TResourceStream.Create(hInstance,'#1',RT_RCDATA);
  MiFuente.Charset := SYMBOL_CHARSET;
  MiFuente.Name    := 'HALLO';
  Recursos.Free;
  Label1.Font.Assign(MiFuente);
  Label1.Font.Size := 16;
end;

He tratado pero no carga la fuente que deseo. Gracias de antemano.

ecfisa 26-08-2014 21:04:28

Hola Jose Roman.

Revisa si te sirve este enlace: Embeber font en executable

Saludos :)

Edito: Ups! me apresuré, era otf. Probalo de ese modo por las dudas...

Jose Roman 26-08-2014 21:43:31

Gracias por responder, pero no me da aun.. :(

ecfisa 26-08-2014 21:55:29

Hola Jose.

A ver, proba de este modo:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
   AddFontResource('c:\pruebas\CourierStd-Oblique.otf') ;
   SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0) ;
   Label1.Font.Name:= 'CourierStd-Oblique';
   Label1.Font.Size:= 13;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  RemoveFontResource('C:\pruebas\CourierStd-Oblique.otf') ;
  SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0) ;
end;
En la prueba que realicé funcionó correcto, por lo que tendría que ser igual desde recurso.

Saludos :)

ecfisa 26-08-2014 22:14:48

1 Archivos Adjunto(s)
Hola de nuevo.

Por si te sirviera de ayuda te adjunto la prueba con el recurso incluido, crea una carpeta y descomprimí los archivos fuentes allí.


Saludos :)

Jose Roman 26-08-2014 22:17:24

Gracias ya me funciono, pero me surge la siguiente duda, como no deseo que el usuario pueda utilizar el tipo de letra, como elimino el archivo generado sin que pase por la papelera de reciclaje? como en tu ejemplo se crea con la sentencia:
Código Delphi [-]
SavetoFile('CourierStd-Oblique.otf');

Jose Roman 26-08-2014 23:30:53

Muchas gracias ecfisa, ya solucione la otra parte, tu aporte es de mucha ayuda.

ecfisa 26-08-2014 23:43:25

Hola Jose Roman.

Esa línea me quedó de una prueba, podes eliminarla sin problemas.

Saludos :)


La franja horaria es GMT +2. Ahora son las 19:49:20.

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