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 03-08-2006
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 417
Poder: 21
lbidi Va por buen camino
Question Colores en los tedits

Hola, amigos. Estuve buscando algun hilo sobre esto y no lo he encontrado.
Seguramente esta, pero no estoy muy despierto q digamos

Como hacen para que en un form con varios tEdits, se cambie de color el q tiene
el foco, lo he visto en varias aplicaciones, pero no he podido hacerlo.

Gracias
Leonardo
Responder Con Cita
  #2  
Antiguo 03-08-2006
kman kman is offline
Miembro
 
Registrado: dic 2005
Ubicación: República Dominicana.
Posts: 67
Poder: 19
kman Va por buen camino
Hola!

Podrías usar el evento onEnter de ese Edit para que cambie de color.
También con la función Focused, si focused es true será un color de lo contrario otro color.

Saluditos.

Última edición por kman fecha: 03-08-2006 a las 23:00:37.
Responder Con Cita
  #3  
Antiguo 03-08-2006
[fer21unmsm] fer21unmsm is offline
Miembro Premium
 
Registrado: dic 2005
Ubicación: Lima
Posts: 627
Poder: 19
fer21unmsm Va por buen camino
Cita:
Empezado por kman
Hola!

Podrías usar el evento onEnter de ese Edit para que cambie de color.
También con la función Focused, si focused es true será un color de lo contrario otro color.

Saluditos.
Hola, tambien falta decir que hay que usar el evento OnExit, para volver el color del edit que pierde el foco.

Saludos.
__________________
"La información tiene más valor cuando se comparte"
Responder Con Cita
  #4  
Antiguo 04-08-2006
kman kman is offline
Miembro
 
Registrado: dic 2005
Ubicación: República Dominicana.
Posts: 67
Poder: 19
kman Va por buen camino
Cita:
Empezado por fer21unmsm
Hola, tambien falta decir que hay que usar el evento OnExit...
Así es, mi amigo, me falto eso. y que nos hagas saber si te funcionó o hay alguna duda.
Responder Con Cita
  #5  
Antiguo 04-08-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Tal vez te conviniera utilizar un componente derivado de "TEdit" que implementara ya lo que necesitas. El siguiente es un componente que escribí hace tiempo (aunque encontrarás muchos más similares y acaso mejor pensados y llevados a cabo) y que te permite asignar un color al "TEdit" cuando este tome el "foco" del usuario, y otro color, para cuando el "TEdit" pierda el "foco" del usuario, o no lo tenga, simplemente.

Lo he "sacado" de un conjunto de componentes y no lo he probado por separado. Si tienes algún problema hazlo saber por aquí. Puedes adaptarlo en todo caso a tus necesidades como mejor te parezca:

Código Delphi [-]
{ *********************************************************************** }
{                                                                         }
{ DecComp - Unos sencillos componentes                                    }
{                                                                         }
{ Copyright (c) 2005 dec - davidesperalta (EN) gmail.com                  }
{ bajo la licencia GNU GPL >> ver en "licencia.txt"                       }
{                                                                         }
{ *********************************************************************** }

unit UFocoEdit;

interface

uses
  Messages, SysUtils, Classes,
  Controls, StdCtrls, Graphics,

  UTypesDecComp;

// Sencillo componente descendiente de TEdit que añade
// dos propiedades que permiten establecer el color y
// la fuente del mismo al obtener el foco del usuario
//
type
  TFocoEdit = class(TEdit)
  private
    FAcercade: TAcercade;
  published
    property Acercade: TAcercade read FAcercade write FAcercade stored false;
  private
    FCopiaColor: TColor;
    FCopiaFuente: TFont;
    FFontEnfocado: TFont;
    FColorEnfocado: TColor;
    procedure FijarFuenteEnfocado(valor: TFont);
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  protected
    procedure CMExit(var Message: TWMNoParams); message CM_EXIT;
    procedure CMEnter(var Message: TCMGotFocus); message CM_ENTER;
  published
    property FuenteEnfocado: TFont read FFontEnfocado write FijarFuenteEnfocado;
    property ColorEnfocado: TColor read FColorEnfocado write FColorEnfocado default clWhite;
  end;
  
procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Samples', [TFocoEdit]);
end;

// Constructor del componente. Damos al color
// por defecto que ha de tener el componente
// cuando este obtenga el foco. Creamos las
// instancias de TFont necesarias
//
constructor TFocoEdit.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  Color := $00F7F7F7;
  FColorEnfocado := clWhite;
  FCopiaFuente := TFont.Create;
  FFontEnfocado := TFont.Create;
end;

// Destructor del componente
//
destructor TFocoEdit.Destroy;
begin
  FFontEnfocado.Free;
  FCopiaFuente.Free;
  inherited Destroy;
end;

// Aprovechar que el componente obtiene el foco
// para cambiar el color y la fuente del mismo
// según lo determinara el usuario
//
procedure TFocoEdit.CMEnter(var Message: TCMGotFocus);
begin
  inherited;
  FCopiaColor := Self.Color;
  FCopiaFuente.Assign(Self.Font);
  Self.Color := FColorEnfocado;
  Font.Assign(FFontEnfocado);
end;

// Aprovechar que el componente pierde el foco
// para establecer el color y la fuente del mismo
// mendiante los valores previamente guardados en
// las variables correspondientes
//
procedure TFocoEdit.CMExit(var Message: TWMNoParams);
begin
  inherited;
  Self.Color := FCopiaColor;
  Self.Font.Assign(FCopiaFuente);
end;

// Establecer la fuente que podrá verse
// en el componente cuando este tome el foco
//
procedure TFocoEdit.FijarFuenteEnfocado(valor: TFont);
begin
  if FFontEnfocado <> valor then
    FFontEnfocado.Assign(valor);
end;

end.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 04-08-2006 a las 07:14:41.
Responder Con Cita
  #6  
Antiguo 04-08-2006
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 417
Poder: 21
lbidi Va por buen camino
Gracias amigos x responder. La verdad q los dos primeros eventos ya los conocia, solo q queria evitar hacerlo para cada tedit q tenga en el form,
voy a probar la sugerencia de dec, a ver como me va. Luego les cuento.

Gracias otra vez.
Saludos desde Uruguay.
Responder Con Cita
  #7  
Antiguo 04-08-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Hola, no necesitas programar el Evento OnEnter y OnExit de cada Edit del form, puedes usar el mismo evento para todos los edits y dentro de cada edit puedes hacer algo así:

Código Delphi [-]
procedure TForm1.edit1Enter(Sender: TObject);
begin
  if (Sender is TEdit) and (TEdit(Sender).Visible) then
    TEdit(Sender).ColorEditbk := clGradientActiveCaption;
end;

procedure TForm1.edit1Exit(Sender: TObject);
begin
  if sender is TEdit then TEdit(Sender).ColorEditbk  := clWindow;
end;

Y todos los edits a los que tengas asignados el mismo OnEnter y OnExit cambiaran de color por separado cada vez que se entre o salga de uno.

Saludos
Responder Con Cita
  #8  
Antiguo 04-08-2006
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 417
Poder: 21
lbidi Va por buen camino
Gracias bicho x responder. En efecto de esa manera q tu dices, lo hice y quedo barbaro. Ahora ya q estoy , repregunto.
Tengo varios forms, con varios edits en cada uno. Es posible de alguna manera asignar estos eventos en forma globar, sin tener q asignarlos edit x edit??

Gracias nuevamente.
Saludos
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
Tedits y botones turminator Varios 4 15-07-2006 13:43:35
Nombre de Tedits creados en ejecución edusus Varios 6 23-04-2006 19:55:13
de lo raro , no se que titulo ponerle..( blanqueo de TEdits..podria ser) ingel Varios 5 12-12-2005 19:17:47
colores del TSPDayPlanner Esti OOP 0 15-11-2005 13:59:10
colores colores superhopi Varios 2 22-05-2003 09:45:10


La franja horaria es GMT +2. Ahora son las 19:45:44.


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