PDA

Ver la Versión Completa : Como cambiar color de Formulario,Etc


Gustavo Gowdak
20-01-2005, 20:40:47
Hola, tengo un formulario que se llama configuracion, en donde tengo todos las opciones que decee el usuario, tales como: colores de formularios, colores de las grillas, formatos de letras, etc, necesito saber como puedo hacer eso??, por ejemplo el color de los formulario es negro y el usuario quiere cambiar a gris, al seleccionar gris se cambie todos los formularios del sistema a gris, me entienden???, y asi con todos los casos citados mas arriba.....

roman
20-01-2005, 21:31:59
Puedes hacer una rutina que recorra todas las componentes del formulario que le pases. Por cada componente examinas de qué tipo es (TLabel, TEdit, TComboBox, etc.) y según el caso asignas propiedades:


procedure CambiaAdornos(Formulario: TForm);
var
Componente: TComponent;
I: Integer;

begin
for I := 0 to Formulario.ComponentCount - 1 do
if Componente is TLabel then
begin
Asignas propiedades a TLabel(Component)
end
else if Componente is TEdit then
begin
Asignas propiedades a TEdit(Component)
end
else if Componente is TComboBox then
begin
Asignas propiedades a TComboBox(Component)
end
else
etcétera
end;


Cuando el usuario escoja los colores, recorres esta rutina para todos los formularios abiertos:


var
I: Integer;

begin
for I := 0 to Screen.FormCount - 1 do
CambiaAdornos(Screen[I]);
end;


Si quieres además que los cambios se reflejen al volver a abrir laaplicación entonces tendras que correr esta rutina cada vez que crees un formulario.

// Saludos

ISKANDAR
20-01-2005, 21:36:47
Lo que podrias hacer es crear algún objeto cuyas propiedades sean valores de configuración de tu aplicación (color de formulario, tamaño máximo o mínimo de ventana, etc) que se cree al inicio, junto con el primer formulario. De este modo cuando cambias el color como en tu caso, le asignás el color al objeto y luego cuando creas un formulario (si los creas dinámicamente) o lo mostrás, le das el color que contiene el objeto. También lo podrías utilizar para otros parámetros. Saludos.