Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Fuentes de letra del programa (https://www.clubdelphi.com/foros/showthread.php?t=89171)

tarco35 08-10-2015 22:58:28

Fuentes de letra del programa
 
Hola, hay alguna forma de obtener un listado de todos los tipos de letra, fuentes, que uso en mi programa delphi 6
Gracias

Casimiro Notevi 08-10-2015 23:01:33

Efectivamente, hay una forma de obtenerla.
¿Y la pregunta?

tarco35 08-10-2015 23:43:11

La pregunta es: como obtengo ese listado (el de tipos de fuentes) de tal forma que cuando genere la instalación pueda incluir esos tipos de letra en el ordenador del cliente.

ecfisa 08-10-2015 23:49:30

Hola tarco35.
Cita:

Empezado por tarco35 (Mensaje 497746)
Hola, hay alguna forma de obtener un listado de todos los tipos de letra, fuentes, que uso en mi programa delphi 6
Gracias

No dispongo de la versión 6, pero en la 7 lo podes obtener de la variable Screen (TScreen):
Código Delphi [-]
  ComboBox1.Items.Assign(Screen.Fonts);

Saludos :)

tarco35 09-10-2015 00:06:22

Gracias, pero me muestra todos los fonts que tengo, y lo que deseo es saber solo los que uso en todos los forms de la aplicacion.

Casimiro Notevi 09-10-2015 01:04:36

Mejor copias las fuentes que uses en algún directorio de tu programa. Así van siempre con la instalación del mismo.

ecfisa 09-10-2015 05:05:14

Hola tarco35.

No sé si será lo que estas buscando, pero podrías obtener las fuentes usadas en los formularios de tus proyectos, escudriñando en los .dfm...
Código Delphi [-]
procedure GetFormsFonts(PrjPath: string; UsedFonts: TStrings);
const
  SEARCHED = 'Font.Name = ';
var
  SR: TSearchRec;
  TS: TStrings;
  SL: TStringList;
  s : string;
  i : Integer;
begin
  PrjPath := IncludeTrailingPathDelimiter(PrjPath);
  if FindFirst(PrjPath + '*.dfm', faArchive, SR) = 0 then
  begin
    SL := TStringList.Create;
    try
      repeat
        TS := TStringList.Create;
        try
          TS.LoadFromFile(PrjPath + SR.Name);
          for i := 0 to TS.Count-1 do
            if Pos(SEARCHED, TS[i]) <> 0 then
            begin
              s := Trim(TS[i]);
              s := Copy(s, Pos(SEARCHED, s) + Length(SEARCHED), MaxInt);
              s := StringReplace(s, '''', '', [rfReplaceAll]);
              SL.Add(s);
            end;
        finally
          TS.Free;
        end;
      until FindNext(SR) <> 0;
      FindClose(SR);
      SL.Sorted     := True;
      SL.Duplicates := dupIgnore;
      SL.Text       := SL.Text;
      UsedFonts.Assign(SL);
    finally
      SL.Free;
    end;
  end;
end;

Ejemplo de uso:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  GetFormsFonts('C:\Carpeta_Del_Proyecto', ListBox1.Items);
end;

Saludos :)


La franja horaria es GMT +2. Ahora son las 12:39:26.

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