Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   cambiar Color de la fuente de un Tdbedit (https://www.clubdelphi.com/foros/showthread.php?t=32055)

nenufer 25-05-2006 12:48:47

cambiar Color de la fuente de un Tdbedit
 
Buenas!! Tengo un formulario con un pagecontrol. Dentro de un tabsheet,un Colorbox con mis propios colores,y un groupbox y dentro de este unos cuantos Dbedits,Datatimepicker y un TdbMemo. Lo que quiero es que al elegir un color del colorbox me cambie el color de la letra de todos loc componentes que tengo en el groupbox.
Hice una prueba a parte y si que me salio(pero eran con edits y memos normales), pero al introducirlo en mi aplicacion no cambia el color y tampoco me da ningun error. El codigo que utilizo es :

Código Delphi [-]
procedure TForm1.ColorBoxChange(Sender: TObject);
var
  Colorfont : String;
  i : Integer;
  Componente : TComponent;
begin
  ColorFont := ColorBox.ColorNames[ColorBox.itemindex];
  for i:=0 to groupbox.ComponentCount-1 do
  begin
    Componente := groupbox.Components[i];
    if (Componente is TDBEdit) then
     (Componente as TDBEdit).Font.Color := StringToColor(ColorFont)
    else
      if (Componente is TDBMemo) then
        (Componente as TDBMemo).Font.Color := StringTocolor(ColorFont)
      else
       if (Componente is TDateTimepicker) then
          (Componente as TDateTimepicker).Font.Color := StringToColor(ColorFont);
  end;
end;

Gracias de antemano

ContraVeneno 25-05-2006 17:33:43

Pues de entrada no logro ver nada raro en tu código, habría que revisar línea por línea y ver si las condiciones se cumplen.

nenufer 25-05-2006 20:21:51

Buenas. Gracias por contestar. He puesto los puntos de ruptura y cuando cambio de color y recorre el groupbox con el for no llega a entrar dentro. Si se te ocurre algo porque puede ser, porque estado mirando y buscando y no se porque lo hace. En cambio en la otra aplicacion de prueba con edits normales si q me lo cambia. :confused:

Gracias

ContraVeneno 25-05-2006 22:42:48

¿ a que te refieres cuando dices que "no llega a entrar"?
¿el for nunca se ejecuta? Habrá que revisar si los controles estan dentro de groupbox

¿no se cumplen las condicionales? habrá que revisar que componente es el que estas comprobando. (¿tdbedit=tdbedit?)

nenufer 26-05-2006 00:04:45

Cita:

Empezado por ContraVeneno
¿ a que te refieres cuando dices que "no llega a entrar"?

¿el for nunca se ejecuta?
[/quote]

Eso, no se ejecuta el for:D

Cita:

Empezado por ContraVeneno
Habrá que revisar si los controles estan dentro de groupbox

¿no se cumplen las condicionales? habrá que revisar que componente es el que estas comprobando. (¿tdbedit=tdbedit?)

:confused: Los Tdbedits estan todos dentro del groupbox, porque lo he mirao en el inspector de objetos

Como puedo comprobar que componente es el que esta comprobando?

Si el color se lo asigno al Groupbox si que me lo cambia. :confused

Gracias:)

ContraVeneno 26-05-2006 00:20:27

si el for no se ejecuta, entonces quiere decir que
groupbox.ComponentCount-1 = 0

¿seguro que groupbox contiene todos los controles?
¿no estarán dentro de un panel o algo?

nenufer 26-05-2006 08:20:22

Buenos dias
 
Mira te digo todo lo que tengo, a ver si te puede ayudar. En el formulario tengo un pagecontrol,en el 1º tabsheet tengo varios paneles,dbgrid,navigator y el famoso groupbox y dentro de este todos los Tdbedtis. Eso seguro que estan ahi porque lo he visto,antes te dije inspector de objetos,perdon en el object treeview.
Me coloco en este object y despliego el groupbox y estan todos los componentes a los que quiero cambiar el color. ¿Tengo que meterme dentro del tabsheet recorrerlo y buscar el groupbox y cuando lo tenga entonces recorrer el groupbox?? Es lo unico que se me ocurre pero creia q recorriendo directamente el groupbox ya saldria.

Muchisimas gracias por tu atencion!!!;)

madriles 26-05-2006 11:00:25

no son component
 
hola
prueba cambiando ComponentCount y Components[i] por
ControlCount y Controls[i]

si te entra en el bucle, pero no se ejecuta porque ComponentCount = 0

un saludo

nenufer 26-05-2006 16:30:52

Gracias!!!!!!! ahora si que me funciona.:D


La franja horaria es GMT +2. Ahora son las 20:39:10.

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