Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #11  
Antiguo 06-01-2005
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.610
Poder: 32
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

¡Buen día a todos!

Hola Gluglu.

La solución que se ha planteado es válida y ciertamente, como lo comentas, tendrías que llamar a la función GetFocus2 desde cada manejador de evento «GetFocus»/Enter (evento OnEnter).

Antes de continuar, hago un paréntesis para precisar que no siempre es necesaria la calificación de una función. Es decir, puedes escribir simplemente «GetFocus2» en lugar de «GeneralFunctions.GetFocus2».

Ahora, entiendo que la solución propuesta no satisface por completo tu necesidad de ahorro de código. Existen otras dos alternativas que puedes implementar:

1. Usar una plantilla de forma.
2. Crear un componente derivado de TDBEdit.

En algunos casos, la opción 1 resulta la más práctica. Consiste en crear una forma padre con los manejadores de eventos que comunmente se requieren (y el código necesario dentro de ellos). Una vez que la forma pertenece al proyecto, puedes crear tantas formas derivadas (clases hijas) de ella como desees; y con el inspector de objetos puedes enlazar eventos de sus componentes a los manejadores de eventos de la clase padre. De esta manera centralizas en la unidad de la forma padre (la plantilla) el código que es común para varios componentes de las formas derivadas.

La opción 2 se recomienda cuando deseas que un componente tenga una característica específica y bien definida. En este caso, buscas que los TDBEdit cambien de color al ser enfocados. Afortunadamente TDBEdit y todas las demás clases derivadas de TWinControl cuentan con un método virtual llamado DoEnter. Puedes crear una nueva clase de componente, derivada de TDBEdit, que redefina (Override) el método DoEnter para incluir en esa redefinición (el nuevo DoEnter) sentencias que cambien el color del control.

Personalmente, optaría por la opción 2 si ya tengo identificados los tipos de componentes que deben cambiar de color. Usaría la opción 1, cuando el cambio de color pueda darse sobre una amplia variedad de controles o de clases no claramente identificadas.

Espero esto sea de utilidad, seguimos en contacto.

Al González .
Responder Con Cita
 



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


La franja horaria es GMT +2. Ahora son las 21:25:28.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi