Me acabo de dar cuenta de una cosa muy extraña y no se como solucionarlo, es lo siguiente en cualquier tipo de botón o por lo menos los dos que yo utilizo (BUTTON y BNTBMP) cuando utilizas una combinación de teclas para hacer lo mismo con el teclado que pulsando con el ratón y lo que haces es ocultar la ventana donde estás y crear una nueva esta se duplica. Sin embargo si lo que haces es eliminar la ventana primera y crear la segunda en este caso crea solo una y si pulsas el botón con el ratón también lo hace bien.
Pongamos un ejemplo: Yo tengo una ventana wGestPunt que entre otras muchas cosas tiene este botón con una imagen y un PROMPT (LocaText(2,1,85) = C&liente") y ejecuta Nue2Punt()
- Code: Select all Expand view
@359*ProPorV,1040*ProPorH BTNBMP xPul11 FILE xruta + "clie.bmp" PROMPT space(10) + LocaText( 2, 1, 85) OF wGestPunt PIXEL SIZE 190*ProPorH, 40*ProPorV FONT xFont ACTION Nue2Punt() LEFT
FUNCTION Nue2Punt()
wGestPunt:bKeyDown = { | nKey | contpunt2 ( nKey ) }
xOpc1 = 2
va067 = va107
va069 = va107
va068 = va108
SELECT 8
seek va067
wGestPunt:Disable()
wGestPunt:Hide()
CreaVent(110,350,"wGestPunt1","oVentPrinc",Locatext( 1, 2, 24),"NO")
xIniBot = (xLar - 160) / 2
@ 10*ProporV, 20*ProporH SAY tDlg060 VAR LocaText( 1, 1,136) OF wGestPunt1 PIXEL COLOR escri1, fondo1 FONT xFont SIZE 130*ProporH,xProPorV*ProPorV
@ 10*ProporV,220*ProporH SAY tDlg061 VAR LocaText( 1, 1,211) OF wGestPunt1 PIXEL COLOR escri1, fondo1 FONT xFont SIZE 130*ProporH,xProPorV*ProPorV
@ 30*ProporV, 10*ProporH SAY vDlg060 VAR " " + nombre OF wGestPunt1 PIXEL COLOR escri3, fondo3 FONT xFont SIZE 321*ProporH,xProPorV*ProPorV BORDER
@ 10*ProporV,130*ProporH GET gDlg060 VAR va067 OF wGestPunt1 PIXEL COLOR escri2, fondo2 FONT xFont SIZE 78*ProporH,xProPorV*ProPorV PICTURE "!!!!!!!!!" valid BuC2Punt()
@ 10*ProporV,285*ProporH GET gDlg061 VAR va068 OF wGestPunt1 PIXEL COLOR escri2, fondo2 FONT xFont SIZE 46*ProporH,xProPorV*ProPorV PICTURE "##.##" RIGHT
@(xAnc-50)*ProPorV,(xIniBot )*ProPorH BTNBMP xPul60 FILE xruta + "sele.bmp" TOOLTIP LocaText( 2, 1, 6) OF wGestPunt1 PIXEL SIZE 70*ProPorH, 40*ProPorV FONT xFont ACTION Nue2Punt1(1)
@(xAnc-50)*ProPorV,(xIniBot+ 80)*ProPorH BTNBMP xPul61 FILE xruta + "canc.bmp" TOOLTIP LocaText( 2, 1, 16) OF wGestPunt1 PIXEL SIZE 70*ProPorH, 40*ProPorV FONT xFont ACTION Nue2Punt1(2)
@-1,0 BUTTON xPul71 PROMPT LocaText( 2, 1, 6) OF wGestPunt1 ACTION Nue2Punt1(1) SIZE 0,0
@-1,0 BUTTON xPul72 PROMPT LocaText( 2, 1, 16) OF wGestPunt1 ACTION Nue2Punt1(2) SIZE 0,0
xPul71:bGotFocus:={||xPul60:SetFocus()}
@ 10*ProPorV,100*ProPorH BUTTON xPul62 PROMPT "?" OF wGestPunt1 PIXEL SIZE 16*ProPorH,xProPorV*ProPorV FONT xFont ACTION BuC2Punta()
gDlg060:SetFocus()
RETURN (NIL)
Cuando pulso el botón me lo hace todo correcto oculta wGestPunt y crea una wGestPunt1 pero si pulso la combinación de ALT+L lo que hace es crearme dos wGestPunt1 una encima de otra pero separándolas se ven así:
Y se cierra una de las dos ventanas pero la otra no hay forma de cerrarla.
Pero si cambio la línea :
wGestPunt:Hide()
por
wGestPunt:End()
Entonces si lo hace bien y crea solo una ventana wGestPunt1.
Alguien me podría ayudar.
Gracias
Un saludo
Carlos