coordenadas de ventanas (SDI, MDI)

coordenadas de ventanas (SDI, MDI)

Postby wmormar » Fri Aug 29, 2008 5:18 am

Amigos,

podrían verificar si las coordenadas de las ventanas (anexo ejemplo) se actualizan al mover dicha ventana?

he revisado lo que he podido y nada, al mover la ventana no actualiza las coordenadas, lo cual debería actualizar.

Code: Select all  Expand view
FUNCTION main()
   LOCAL owin, omenu

   MENU omenu
     MENUITEM "Child" ACTION childwin( owin )
   ENDMENU

   DEFINE WINDOW owin MENU omenu MDI
      owin:cTitle( "Izquierda: "+ AllTrim(Str(owin:nLeft)) +"  Derecha: "+ AllTrim(Str(owin:nRight)))
      owin:bMoved := {|| owin:cTitle( "Izquierda: "+ AllTrim(Str(owin:nLeft)) +"  Derecha: "+ AllTrim(Str(owin:nRight)))}
   ACTIVATE WINDOW owin

   RETURN NIL

FUNCTION childwin( oWnd )
   LOCAL ochild

   DEFINE WINDOW ochild MDICHILD OF oWnd
      ochild:cTitle( "Izquierda: "+ AllTrim(Str(ochild:nLeft)) +"  Derecha: "+ AllTrim(Str(ochild:nRight)))
      ochild:bMoved := {|| ochild:cTitle( "Izquierda: "+ AllTrim(Str(ochild:nLeft)) +"  Derecha: "+ AllTrim(Str(ochild:nRight)))}
   ACTIVATE WINDOW ochild

   RETURN NIL


Gracias por anticipadas
William, Morales
Saludos

méxico.sureste
User avatar
wmormar
 
Posts: 1074
Joined: Fri Oct 07, 2005 10:41 pm
Location: México

Postby Antonio Linares » Fri Aug 29, 2008 7:12 am

William,

Code: Select all  Expand view
#include "FiveWin.ch"

FUNCTION main()
   LOCAL owin, omenu

   MENU omenu
     MENUITEM "Child" ACTION childwin( owin )
   ENDMENU

   DEFINE WINDOW owin MENU omenu MDI
      owin:cTitle( "Izquierda: "+ AllTrim(Str(owin:nLeft)) +"  Derecha: "+ AllTrim(Str(owin:nRight)))
      owin:bMoved := {|| oWin:CoorsUpdate(), owin:cTitle( "Izquierda: "+ AllTrim(Str(owin:nLeft)) +"  Derecha: "+ AllTrim(Str(owin:nRight)))}
   ACTIVATE WINDOW owin

   RETURN NIL

FUNCTION childwin( oWnd )
   LOCAL ochild

   DEFINE WINDOW ochild MDICHILD OF oWnd
      oChild:CoorsUpdate()
      ochild:cTitle( "Izquierda: "+ AllTrim(Str(ochild:nLeft)) +"  Derecha: "+ AllTrim(Str(ochild:nRight)))
      ochild:bMoved := {|| oChild:CoorsUpdate(), ochild:cTitle( "Izquierda: "+ AllTrim(Str(ochild:nLeft)) +"  Derecha: "+ AllTrim(Str(ochild:nRight)))}
   ACTIVATE WINDOW ochild

   RETURN NIL
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41404
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Antonio Linares » Fri Aug 29, 2008 7:15 am

William,

Otra forma de hacerlo sin llamar a CoorsUpdate():

Code: Select all  Expand view
#include "FiveWin.ch"

FUNCTION main()
   LOCAL owin, omenu

   MENU omenu
     MENUITEM "Child" ACTION childwin( owin )
   ENDMENU

   DEFINE WINDOW owin MENU omenu MDI
      owin:cTitle( "Izquierda: "+ AllTrim(Str( WndLeft( owin:hWnd ))) +"  Derecha: "+ AllTrim(Str(WndTop( owin:hWnd ))))
      owin:bMoved := {|| owin:cTitle( "Izquierda: "+ AllTrim(Str(WndLeft( owin:hWnd ))) +"  Derecha: "+ AllTrim(Str(WndTop(owin:hWnd))))}
   ACTIVATE WINDOW owin

   RETURN NIL

FUNCTION childwin( oWnd )
   LOCAL ochild

   DEFINE WINDOW ochild MDICHILD OF oWnd
      ochild:cTitle( "Izquierda: "+ AllTrim(Str(WndLeft( ochild:hWnd ))) +"  Derecha: "+ AllTrim(Str(WndTop( ochild:hWnd ))))
      ochild:bMoved := {|| ochild:cTitle( "Izquierda: "+ AllTrim(Str(WndLeft( ochild:hWnd ))) +"  Derecha: "+ AllTrim(Str(WndTop( ochild:hWnd ))))}
   ACTIVATE WINDOW ochild

   RETURN NIL
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41404
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby wmormar » Fri Aug 29, 2008 10:16 pm

Antonio,

muchas gracias por contestar.

pero todo esto salió por la cuestión de que quería mover a una ubicación especificada una child, y cuando le daba:

nLeft := oWin:nwdth - 190

nomás no hacia caso a la instrucción.

sigo investigando las coordenadas de una win y una child.
William, Morales
Saludos

méxico.sureste
User avatar
wmormar
 
Posts: 1074
Joined: Fri Oct 07, 2005 10:41 pm
Location: México

Postby Antonio Linares » Fri Aug 29, 2008 10:43 pm

William,

Las funciones WndTop(), WndLeft(), WndWidth() y WndHeight() son de tipo setget, por lo que puedes usarlas para cambiar esos valores:

WndTop( hWnd [, nNewTop ] ) --> nTop
WndLeft( hWnd [, nNewLeft ] ) --> nLeft
WndWidth( hWnd [, nNewWidth ] ) --> nWidth
WndHeight( hWnd [, nNewHeight ] ) --> nHeight
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41404
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby wmormar » Sat Aug 30, 2008 1:21 am

Antonio Linares wrote:William,

Las funciones WndTop(), WndLeft(), WndWidth() y WndHeight() son de tipo setget, por lo que puedes usarlas para cambiar esos valores:

WndTop( hWnd [, nNewTop ] ) --> nTop
WndLeft( hWnd [, nNewLeft ] ) --> nLeft
WndWidth( hWnd [, nNewWidth ] ) --> nWidth
WndHeight( hWnd [, nNewHeight ] ) --> nHeight


Antonio,

muchas gracias, es lo que necesitaba.
William, Morales
Saludos

méxico.sureste
User avatar
wmormar
 
Posts: 1074
Joined: Fri Oct 07, 2005 10:41 pm
Location: México


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 9 guests