Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-05-2015
sac sac is offline
Miembro
 
Registrado: abr 2007
Posts: 109
Poder: 18
sac Va por buen camino
Procedimiento para cambio de propiedades de Fonts

En el programa que estoy haciendo hago referencia muchas veces a cambiar a un tipo de letra específico.
Necesito crear un procedure donde le pueda asignar propiedades Name, Color, Size y Style a una fuente para no repetir código innecesariamente.
Alguna solución (código) sencillo que me puedan pasar?
Responder Con Cita
  #2  
Antiguo 29-05-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
sac,

Cita:
Empezado por sac
...crear un procedure donde le pueda asignar propiedades Name, Color, Size y Style a una fuente...


Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    Edit1: TEdit;
    Memo1: TMemo;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure ChangeFont(F : TFont; Name : String; Color : TColor; Size : Byte; Style : TFontStyles);
begin
   F.Name := Name;
   F.Color := Color;
   F.Size := Size;
   F.Style := Style;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
   S : String;

begin

   S := 'Ejemplo de cambio de propiedades de un Font';

   Label1.Caption := S;
   Edit1.Text := S;
   Memo1.Lines.Add(S)

end;

procedure TForm1.Button1Click(Sender: TObject);
var
   FontName : String;
   FontColor : TColor;
   FontSize : Byte;
   FontStyle : TFontStyles;

begin

   FontName := 'Arial';;
   FontColor := clNavy;
   FontSize := 12;
   FontStyle := [];

   ChangeFont(Label1.Font, FontName, FontColor, FontSize, FontStyle);
   ChangeFont(Edit1.Font, FontName, FontColor, FontSize, FontStyle);
   ChangeFont(Memo1.Font, FontName, FontColor, FontSize, FontStyle);

end;

procedure TForm1.Button2Click(Sender: TObject);
var
   FontName : String;
   FontColor : TColor;
   FontSize : Byte;
   FontStyle : TFontStyles;

begin

   FontName := 'Arial Rounded MT';
   FontColor := clGreen;
   FontSize := 10;
   FontStyle := [fsBold];

   ChangeFont(Label1.Font, FontName, FontColor, FontSize, FontStyle);
   ChangeFont(Edit1.Font, FontName, FontColor, FontSize, FontStyle);
   ChangeFont(Memo1.Font, FontName, FontColor, FontSize, FontStyle);

end;

procedure TForm1.Button3Click(Sender: TObject);
var
   FontName : String;
   FontColor : TColor;
   FontSize : Byte;
   FontStyle : TFontStyles;

begin

   FontName := 'Elephant';
   FontColor := clBlue;
   FontSize := 10;
   FontStyle := [fsItalic, fsUnderline];

   ChangeFont(Label1.Font, FontName, FontColor, FontSize, FontStyle);
   ChangeFont(Edit1.Font, FontName, FontColor, FontSize, FontStyle);
   ChangeFont(Memo1.Font, FontName, FontColor, FontSize, FontStyle);

end;

end.
El código anterior en Delphi 7 sobre Windows 7 Professional x32, Permite modificar selectivamente las propiedades de un TFont, como se muestra en la siguiente imagen:



Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 29-05-2015 a las 20:28:52.
Responder Con Cita
  #3  
Antiguo 29-05-2015
sac sac is offline
Miembro
 
Registrado: abr 2007
Posts: 109
Poder: 18
sac Va por buen camino
Gracias...

Muchas gracias por la respuesta... Probando
Responder Con Cita
  #4  
Antiguo 29-05-2015
sac sac is offline
Miembro
 
Registrado: abr 2007
Posts: 109
Poder: 18
sac Va por buen camino
Pregunto...

Pregunto... No se puede crear una variable de tipo TFont donde se cargue una sola vez las propiedades que te dije antes y que desde el programa haga referencia cambiando como por ejemplo :

Declarar
FuenteElegida:Tfont
y después algo así: fuente elegida.Name := 'Tahoma', Size, color , style etc.

y después, desde el programa ppal. una linea tipo memo1.lines.font:= fuenteElegida...

Algo así se podrá?
Responder Con Cita
  #5  
Antiguo 29-05-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
sac,

Cita:
Empezado por sac
...No se puede crear una variable de tipo TFont donde se cargue una sola vez las propiedades...


Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    Edit1: TEdit;
    Memo1: TMemo;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  FontBase : TFont;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
   S : String;

begin

   S := 'Ejemplo de cambio de propiedades de un Font';

   Label1.Caption := S;
   Edit1.Text := S;
   Memo1.Lines.Add(S);

   FontBase := TFont.Create;

   FontBase.Name := 'Tahoma';
   FontBase.Color := clBlue;
   FontBase.Size := 11;
   FontBase.Style := [fsBold, fsItalic, fsUnderline];

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   Label1.Font := FontBase;
   Edit1.Font := FontBase;
   Memo1.Font := FontBase;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   Action := caFree;
   FontBase.Free;
end;

end.
El código anterior en Delphi 7 sobre Windows 7 Professional x32, Permite modificar las propiedades de un TFont por medio de otro TFont, como se muestra en la siguiente imagen:



Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 29-05-2015 a las 20:25:58.
Responder Con Cita
  #6  
Antiguo 29-05-2015
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
nlsgarcia, OJO con el asignar a TFont a otro.
En tu último ejemplo, si no me falla los conceptos, cualquier posterior modificación de FontBase afectará al TFont de Label1, Edit1, Memo1 ya que en realidad cuando se hace Objeto.Font := OtroFont se está apuntándo a éste.

Asi que habrá que tener cuidado de lo que se hace.

Si se quiere copiar el contenido de un Font a otro puede usarse AsingTo()

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
agregar fonts Celta Varios 3 14-03-2011 23:34:19
Fonts en mi Aplicación Ledian_Fdez Varios 1 07-05-2010 01:16:24
como cambio propiedades de la impresora omy Impresión 3 12-01-2009 18:13:57
como crear fonts para windows? Citlalli Varios 1 24-11-2006 02:30:48
InstallShield + instalar fonts miguelb Varios 1 16-07-2003 06:32:21


La franja horaria es GMT +2. Ahora son las 22:32: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
Copyright 1996-2007 Club Delphi