FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Problemas de la versi贸n 11.12 en Terminal Server SOLUCIONADO
Posts: 694
Joined: Fri Oct 07, 2005 06:58 AM
Problemas de la versi贸n 11.12 en Terminal Server SOLUCIONADO
Posted: Thu Jan 19, 2012 12:44 PM
Al cerrar la ventana mdichild no la elimina de la ventana principal, s贸lo sucede con la versi贸n 11.12 y ejecutando la aplicaci贸n en Terminal Server.

En el ejemplo que adjunto, se puede abrir la ventana mdichild y al pulsar "Esc" la cierra correctamente. Pero cuando esto se hace varias veces, a partir de la segunda o tercera vez que se cierra ya no la limpia de la ventana principal.

Prg:
Code (fw): Select all Collapse
#include "FiveWin.ch"
#include "Splitter.ch"

function Main()
local oWnd

Define Window oWnd Title "Principal" Mdi Menu ps_Menu(oWnd) Brush TBrush():New(, CLR_WHITE ) VSCROLL HSCROLL
Activate Window oWnd MAXIMIZED Valid MsgYesNo('Desea salir')
return nil


static func ps_Menu(oWnd)
local oMenu
Menu oMenu
MenuItem "Child" Action ps_Child(oWnd)
EndMenu
return oMenu

static proc ps_Child( oWnd )
local oChild
Define Window oChild MdiChild Title 'Child' of oWnd
Activate Window oChild On Init ps_Dialog(oChild) Valid ps_Salir(oChild)
return



static func ps_Salir(oChild)
oChild := ''
hb_gcAll(.T.)
return .T.



static proc ps_Dialog( oChild )
local oDlg, aGet[8], aVar[8]
local oOutlook, oControl, aRect, oSplitOut, nWidth, nHeight

DEFINE DIALOG oDlg Resource "Dialogo" OF oChild Transparent Gradient { { 1, RGB(229, 233, 238), RGB(255, 255, 255) } }
SetParent( oDlg:hWnd, oChild:hWnd )

DEFINE OUTLOOK2003 oOutLook OF oChild PROMPTS "Accesos"
SetParent( oOutLook:hWnd, oChild:hWnd )
oChild:oLeft := NIL

aVar[1] := space(2)
Redefine Get aGet[1] Var aVar[1] Id 102 Update Message 'Indique el c贸digo del usuario' Of oDlg
aVar[2] := space(50)
Redefine Get aGet[2] Var aVar[2] Id 103 Update Message 'Indique el nombre del usuario' Of oDlg

aVar[3] := space(50)
Redefine Get aGet[3] Var aVar[3] Id 104 Update Message 'Indique el c贸digo de la empresa' Of oDlg
aVar[4] := space(50)
Redefine Get aGet[4] Var aVar[4] Id 105 Update Message 'Indique el nombre de la empresa' Of oDlg

for each oControl in oDlg:aControls
聽 oControl:bLClicked = GenBlock( oChild, oControl )
next 聽 聽 

aRect := oOutLook:aDialogs[ 1 ]:GetCliRect()
@ 0, aRect:nRight SPLITTER oSplitOut ;
聽 聽VERTICAL _3DLOOK ;
聽 聽PREVIOUS CONTROLS oOutLook ;
聽 聽HINDS CONTROLS oDlg ; 
聽 聽SIZE 4, oChild:nHeight - 70 PIXEL ;
聽 聽OF oChild
SetParent( oSplitOut:hWnd, oChild:hWnd )

ACTIVATE DIALOG oDlg NoWait Valid oChild:End()
oDlg:Move( 0, oSplitOut:nRight,,, .F. )
nWidth 聽:= oDlg:nWidth
nHeight := oDlg:nHeight

oSplitOut:bLDblClick := {|| oSplitOut:SetPosition(oSplitOut:nFirst) }
Eval( oSplitOut:bLDblClick )

oChild:bResized := {|| oSplitOut:AdjClient()}
oDlg:bResized := {|| Ghe_Resize(oDlg)}

nWidth += oOutLook:nWidth
nWidth += oSplitOut:nWidth
nWidth += 7

if oChild:nWidth > nWidth
聽 nWidth := oChild:nWidth
endif
nHeight += 7
if oChild:nHeight > nHeight
聽 nHeight := oChild:nHeight
endif
oChild:SetSize(nWidth, nHeight, .F.)
return



function GenBlock( oWndChild, oControl )
return { || oWndChild:SetFocus(), oControl:SetFocus() }



Proc Ghe_Resize( oDlg )
if oDlg:oBrush<>NIL
聽 oDlg:SetColor(,, oDlg:oBrush:Resized( oDlg:nWidth, oDlg:nHeight, 2) )
endif
return


Rc:
Code (fw): Select all Collapse
DIALOGO DIALOG DISCARDABLE 0, 0, 332, 86
STYLE WS_CHILD|WS_VISIBLE
FONT 8, "MS Sans Serif"
{
聽 CONTROL "123", 102, "Edit", ES_AUTOHSCROLL|WS_BORDER|WS_TABSTOP, 89, 31, 39, 12
聽 CONTROL "123456", 103, "Edit", ES_AUTOHSCROLL|WS_BORDER|WS_TABSTOP, 136, 31, 146, 12
聽 CONTROL "12", 104, "Edit", WS_BORDER|WS_TABSTOP, 89, 58, 32, 12
聽 CONTROL "1", 105, "Edit", WS_BORDER|WS_TABSTOP, 136, 58, 105, 12
聽 CONTROL "Usuario:", -1, "Static", SS_CENTERIMAGE|WS_GROUP, 50, 33, 31, 12
聽 CONTROL "Empresa:", -1, "Static", SS_CENTERIMAGE|WS_GROUP, 50, 60, 31, 12
}
Un saludo

Fernando Gonz谩lez Diez

ALSIS Sistemas Inform谩ticos
Posts: 694
Joined: Fri Oct 07, 2005 06:58 AM
Re: Problemas de la versi贸n 11.12 en Terminal Server
Posted: Thu Jan 19, 2012 12:49 PM
El problema esta en:
Code (fw): Select all Collapse
oDlg:SetColor(,, oDlg:oBrush:Resized( oDlg:nWidth, oDlg:nHeight, 2) )


Que es llamado en:
Code (fw): Select all Collapse
oDlg:bResized := {|| Ghe_Resize(oDlg)}

Para redimensionar el gradient a los distintos tama帽os del dialogo.

Recuerdo que s贸lo pasa ejecutando la aplicaci贸n a trav茅s de Terminal Server. En modo local funciona bien.
Un saludo

Fernando Gonz谩lez Diez

ALSIS Sistemas Inform谩ticos
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Problemas de la versi贸n 11.12 en Terminal Server
Posted: Thu Jan 19, 2012 02:06 PM

Fernando,

Tienes alguna funci贸n que te permita detectar que estas en corriendo terminal server ?

En el foro italiano en estos foros hace poco publicaron algunas funciones. Tal vez podriamos usarlas para corregir el comportamiento solo en Terminal Server.

Si ejecutas tu aplicaci贸n desde un RDP (Remote Desktop) te ocurre lo mismo ? Yo uso el RDP Lite (gratis) en el iPad para usar Windows en 茅l. Es solo por comprobar si el problema tambien se presenta ahi, gracias

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 694
Joined: Fri Oct 07, 2005 06:58 AM
Re: Problemas de la versi贸n 11.12 en Terminal Server
Posted: Thu Jan 19, 2012 05:10 PM

Antonio,

Actualmente compruebo si estoy en terminal con "Os_IsWtsClient" y en caso afirmativo no incluyo el gradient.

Uso el RDP de windows contra un server 2003 con 24 bits de color
Acabo de probar con 2X client y no falla.

Parece que s贸lo da problemas con el RDP de Windows.

Un saludo

Fernando Gonz谩lez Diez

ALSIS Sistemas Inform谩ticos
Posts: 694
Joined: Fri Oct 07, 2005 06:58 AM
Re: Problemas de la versi贸n 11.12 en Terminal Server
Posted: Thu Jan 19, 2012 07:09 PM
En 2X client para Android no falla

En 2X Client para Windows si falla

Adem谩s, tambi茅n terminal server, una de las ventanas mdi (con dialog incrustado) que tengo muestra un folder donde una de las pesta帽as contiene la clase tpage.
Pues los say's y los checkbox's que se muestran en las distintas paginas de la clase tpage no se ven transparentes.

Uploaded with ImageShack.us
Un saludo

Fernando Gonz谩lez Diez

ALSIS Sistemas Inform谩ticos
Posts: 694
Joined: Fri Oct 07, 2005 06:58 AM
Re: Problemas de la versi贸n 11.12 en Terminal Server
Posted: Sat Jan 21, 2012 10:47 AM

up

Un saludo

Fernando Gonz谩lez Diez

ALSIS Sistemas Inform谩ticos
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Problemas de la versi贸n 11.12 en Terminal Server
Posted: Sat Jan 21, 2012 02:45 PM

Fernando,

Un ejemplo peque帽o ser铆a usar un di谩logo con un gradiente y redimensionarlo, si ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 694
Joined: Fri Oct 07, 2005 06:58 AM
Re: Problemas de la versi贸n 11.12 en Terminal Server
Posted: Mon Jan 23, 2012 09:22 AM

Antonio,

Lo que yo he probado es un dialogo incrustado en una mdi.
Un dial贸go s贸lo no se si funciona.

En el primer post incluyo un ejemplo sencio para probarlo

Un saludo

Fernando Gonz谩lez Diez

ALSIS Sistemas Inform谩ticos
Posts: 694
Joined: Fri Oct 07, 2005 06:58 AM
Re: Problemas de la versi贸n 11.12 en Terminal Server
Posted: Wed Jan 25, 2012 12:00 PM

Up

Un saludo

Fernando Gonz谩lez Diez

ALSIS Sistemas Inform谩ticos
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Problemas de la versi贸n 11.12 en Terminal Server
Posted: Wed Jan 25, 2012 01:49 PM

Fernando,

Como lo podriamos probar desde aqui ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 694
Joined: Fri Oct 07, 2005 06:58 AM
Re: Problemas de la versi贸n 11.12 en Terminal Server
Posted: Thu Jan 26, 2012 11:06 AM

Antonio,

Teneis un servidor con windows server?

Un saludo

Fernando Gonz谩lez Diez

ALSIS Sistemas Inform谩ticos
Posts: 694
Joined: Fri Oct 07, 2005 06:58 AM
Re: Problemas de la versi贸n 11.12 en Terminal Server
Posted: Mon Jan 30, 2012 07:10 PM

Antonio,

En la versi贸n 12.01 ya esta solucionado el pintado erroneo de la clase tpage para terminal. (Que me preocupaba mucho)

El error inicial en el redimensionado (oBrush:Resized) sigue dando problemas.
Pero no me preocupa ya que tengo desconectado todos los brush en terminales.
Es aumentar el tiempo que tarda en pintar las ventanas innecesariamente.

Un saludo

Fernando Gonz谩lez Diez

ALSIS Sistemas Inform谩ticos
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Problemas de la versi贸n 11.12 en Terminal Server
Posted: Mon Jan 30, 2012 09:09 PM

Fernando,

ok, gracias por la informaci贸n :-)

Si activas el acceso remoto en un Windows 7 y accedes desde otro ordenador se reproduce el efecto ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 694
Joined: Fri Oct 07, 2005 06:58 AM
Re: Problemas de la versi贸n 11.12 en Terminal Server
Posted: Tue Jan 31, 2012 10:14 AM

Antonio,

No lo s茅. Me imagino que el problema es que windows server 2003 s贸lo acepta hasta 24 bits. Windows 7 y server 2008 ya permiten 32 bits.

De todas formas no te preocupes,
La ventaja del trabajo en terminal es que s贸lo viaja por internet las pantalla, no se mueve la informaci贸n, por lo que es bastante rapido.
Por lo que no tiene ning煤n sentido dotar a las ventanas de ning煤n brush, est贸 hace que el dibujo de las ventanas se vea afectado.

Un saludo

Fernando Gonz谩lez Diez

ALSIS Sistemas Inform谩ticos
Posts: 694
Joined: Fri Oct 07, 2005 06:58 AM
Re: Problemas de la versi贸n 11.12 en Terminal Server SOLUCIONADO
Posted: Tue Jan 31, 2012 10:55 AM

Antonio,

Ya lo he solucionado he cambiado:
oDlg:SetColor(,, oDlg:oBrush:Resized( oDlg:nWidth, oDlg:nHeight, 2) )

por
oDlg:Gradient( oDlg:aGradColors )

Un saludo

Fernando Gonz谩lez Diez

ALSIS Sistemas Inform谩ticos

Continue the discussion