🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.bd.misc
Article #863

RE: Ayuda con el control activo. (SOLUCION)

#863
From: John Doe
Date: Wed, 12 May 1999 00:00
106 lines
5088 bytes
Hari-Sheldon <olarte@arrakis.es> escribi� en el mensaje de noticias
373459e5@news.arrakis.es...
> > > Os pido ayuda sobre lo siguiente: en un formulario con varios
> > > controles,  me gustar�a tener un procedimiento que cambie el
> > > color de fondo del control
> > > activo al entrar y le devuelva el color ordinario al salir.
> > > S� que se puede hacer introduciendo en cada control un evento On Enter
> > > y On Exit, pero hacerlo individualmente es un rollo cuando hay un
mont�n
> > > de controles. Supongo que hay alguna forma m�s sencilla de hacerlo,
pero
> > > no  s� cual y por eso os pido ayuda (no hace falta decir que no s�
mucho
> > > de VBA).
> > No s� si te has dado cuenta de que acces cambia el color de fondo del
> > control cuando este toma el enfoque. Creo que no servir�a de nada
> > establecer uno
> > cuando acces va a colorearte la selecci�n con el color complementario
> > adecuado para el color ordinario del fondo del control. Si es posible
> > establecer el color del fondo (sin cambiar a vista dise�o como habr�a
> > que hacer con otras propiedades de los controles) me temo que tendr�as
> > que especificar todos los controles en una macro o c�digo de VB. Incluso
> > si usas los eventos del formulario o informe tendr�as que referirte
> > siempre a todos los controles individualmente. Creo yo.
> > Espero haberte echado una manita.

Como hoy estoy de buen humor, aqui teneis un truqui y un poquito de codigo:

TRUQUI DE LA ABUELITA PAZ
========================

Access NO pone el color complementario al tomar el enfoque, lo que hace es,
simplemente, seleccionar automaticamente el texto que hubiera escrito en el
control. Esto se puede habilitar o deshabilitar a voluntad, cambiando el
campo correspondiente en el menu .... er... esto... ummm.... (tengo el
Access 2000 en inglis pitinglis, as� que har� una suposici�n) de
Herramientas -
Opciones - Teclado

Si lo que queremos es  tener una indicaci�n visual del campo en el que
estamos editando nos aprovechamos de una peque�a "caracteristica" de
Access, que solo funciona cuando el color de fondo del cuadro de texto
es TRANSPARENTE.

A�adimos el cuadro de texto, seleccionamos un color como color de fondo
(amarillo que te la pillo), seleccionamos color de fondo TRANSPARENTE.

SI, SI, habeis leido bien. Primero seleccionamos el color de fondo que
queremos para el control cuando lo estamos editando, y a continuaci�n
el color transparente.

De esta forma, el cotrol ser� del mismo color que el fondo que haya debajo,
hasta que entremos a editar y VOILA! El color de fondo cambiar� al
primero que habiamos seleccionado Y SIN METER UNA LINEA DE
CODIGO!!!!!

Si adem�s empleas ese control como control por defecto (o como salga en la
version espa�ola), te har� lo mismo con todos los controles nuevos que
a�adas
a tu formulario.

Si quieres que el fondo del control no sea el mismo que el fondo del
formulario, tendras que poner un cuadro de color DEBAJO del cuadro
transparente.

Ahora bien, como tenemos que ganarnos el sueldo y justificar el tiempo
derrochado durante nuestra jornada laboral, me veo en la obligaci�n de
meter algo de c�digo.... ;-)

WARNING: Esto NO funciona cuando el estilo del control es 3D (con lo feo que
es, hay alguien  que use ese estilo?)

En un modulito metes estas dos funciones:

----------------------------------------------------------------------------
Public Function SetBorderColor()
    On Error Resume Next

    Screen.ActiveControl.BorderColor = vbRed
    Screen.ActiveControl.BorderStyle = 1

End Function
----------------------------------------------------------------------------
Public Function ResetBorderColor()
    On Error Resume Next

    Screen.ActiveControl.BorderColor = 0
    Screen.ActiveControl.BorderStyle = 0

End Function
----------------------------------------------------------------------------
Ahora debes editar los eventos del control:

al recibir el enfoque      SetBorderColor()
al perder el enfoque      ResetBorderColor()

y ya est�.

Yo lo pongo en todos los controles de texto, porque las bases de datos que
hago las emplean luego en portatiles de "baja visibilidad" y cualquier ayuda
es
buena. Adem�s, lo puedes combinar con el truqui del fondo transparente.


Saludos,
John Doe
Technical Details
Message-ID: <7hacl1$qga$12@talia.mad.ttd.net>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <371dff89@news.arrakis.es> <7floki$48g$1@nnrp1.dejanews.com> <373459e5@news.arrakis.es>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: 111a5a,aa351b15219545d5
X-Google-Attributes: gid111a5a,public
X-Google-Thread: 106e2f,aa351b15219545d5
X-Google-Attributes: gid106e2f,public
From: "John Doe" <john_doe@microsoft.com>
Subject: RE: Ayuda con el control activo. (SOLUCION)
Date: 1999/05/12
Message-ID: <7hacl1$qga$12@talia.mad.ttd.net>
X-Deja-AN: 477724824
References: <371dff89@news.arrakis.es> <7floki$48g$1@nnrp1.dejanews.com> <373459e5@news.arrakis.es>
X-Priority: 3
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2014.211
Organization: Telefonica Transmision de Datos
X-MSMail-Priority: Normal
Newsgroups: es.comp.bd.misc,es.comp.bd.ms-access