FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Un componente sencillísimo
Hola a todos soy nuevo en este foro, aunque ya hace varios dias que lo frecuento, pero no había participado, sólo leído los mensajes publicados.
Debo decir que soy un programador de VFP 7 que viendo las bondades de Linux y Kylix desea incursionar en ellos. He leído varios manuales de diseño de componentes pero no encuentro lo que necesito, espero que me ayuden. Cuando yo programo en VFP tengo diseñado una clase (en Delphi se llaman componentes) basada en el textbox que simplemente cambia de color blanco a amarillo cuando recibe el foco (evento OnEnter) y de amarillo a blanco nuevamente cuando pierde el foco (evento OnExit). Eso es lo que por ahora me trasnocha. Gracias por todo JOHN W. VILORIA AMARIS. |
#2
|
||||
|
||||
Pues está la componente TEdit que tiene los mismos eventos que mencionas, OnEnter y OnExit.
// Saludos |
#3
|
|||
|
|||
Gracias por tu respuesta Roman, pero creo que no me entendiste, lo que deseo es ver un ejemplo de un componente basado en el Tedit que cuando reciba el foco cambie de color y cuando pierda el foco recupere el color inicial, esto con el fin de que el usuario sepa en todo momento cual es el cuadro de texto activo.
JOHN W. VILORIA A. |
#4
|
||||
|
||||
Sí entendí que deseas eso. Lo puedes hacer con el mismo que ya está cambiando los colores en los eventos que te menciono.
Ahora, sí quieres hacer un descendiente de TEdit que ya tenga tal comportamiento entonces tienes que redefinir sus métodos DoEnter y DoExit cambiando en ellos los colores. // Saludos |
#5
|
||||
|
||||
Aprovechando que no están mis papás aquí te mando un ejemplo completito:
Código:
unit FocusEdit; interface uses SysUtils, Classes, Controls, StdCtrls, Graphics; type TFocusEdit = class(TEdit) private FFocusColor: TColor; FNormalColor: TColor; procedure SetFocusColor(const Value: TColor); protected procedure DoEnter; override; procedure DoExit; override; public constructor Create(AOwner: TComponent); override; published property FocusColor: TColor read FFocusColor write SetFocusColor default clInfoBk; end; procedure Register; implementation procedure Register; begin RegisterComponents('ClubDelphi', [TFocusEdit]); end; { TFocusEdit } constructor TFocusEdit.Create(AOwner: TComponent); begin inherited; FFocusColor := clInfoBk; end; procedure TFocusEdit.DoEnter; begin inherited; FNormalColor := Color; Color := FFocusColor; end; procedure TFocusEdit.DoExit; begin inherited; Color := FNormalColor; end; procedure TFocusEdit.SetFocusColor(const Value: TColor); begin if FFocusColor <> Value then begin FFocusColor := Value; if Self.Focused then begin FNormalColor := Color; Color := FFocusColor; end; end; end; end. // Saludos Última edición por roman fecha: 21-04-2004 a las 05:43:09. Razón: Explicación |
#6
|
|||
|
|||
Gracias, lo voy a probar y te cuento como me fue
|
|
|
|