Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   TIniFiles y Controles (https://www.clubdelphi.com/foros/showthread.php?t=66040)

pablonill 29-01-2010 05:47:08

TIniFiles y Controles
 
Hola buenas noches, muchas gracias por su tiempo. Ahora paso a mi consulta.
Necesito aplicarle una configuracion a mi aplicacion, tanto de fuentes como de colores, mi idea es crear un formulario donde uno elija la fuente y los colores, la idea es que sea una configuracion general, el tema es el siguiente como hago para que dicha configuracion se aplice a cada uno de los controles de cada una de las ventanas, pudiendo asi cada ventana tener su propia configuracion, ya tengo el modelo del tinifile, mi principal pregunta es la siguiente, si tengo un procedimiento de la siguiente forma:

Código Delphi [-]
procedure AplicarConfigControl(va Control: TWinControl);
begin
  Control.Font := Font; //Variable leida del tinifile
end;

el tema es que la clase TWinControl no posee la propiedad Font, la pregunta seria cual es la clase adecuada para poder usar objetos generales con las propiedades de font y color. Muchas gracias, espero haber sido claro.

Al González 29-01-2010 06:06:41

¡Hola!

Esto puede ser de utilidad:

Código Delphi [-]
Uses
  TypInfo;

Procedure SetFontColor (Const Control :TWinControl; Const Color :TColor);
Begin
  (GetObjectProp (Control, 'Font') As TFont).Color := Color;
End;

procedure TForm1.Button1Click(Sender: TObject);
begin
  SetFontColor (Edit1, clRed);
  SetFontColor (RadioButton1, clRed);
end;

La clave es obtener el objeto Font mediante RTTI. :)

Saludos.

Al González.

Neftali [Germán.Estévez] 29-01-2010 10:35:34

Utilizando RTTI puedes también recorrer todos los componentes de un formulario y "preguntar" cuales de ellos tienen la propiedad Font para aplicarles el cambio.

pablonill 29-01-2010 12:31:21

Ya lo pruebo, armo algo de codigo y subo.

Muchisimas gracias!


La franja horaria es GMT +2. Ahora son las 22:35:54.

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