FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Crear ventana en una determinada posición
Posts: 728
Joined: Fri Oct 07, 2005 07:38 AM
Crear ventana en una determinada posición
Posted: Mon Apr 27, 2020 11:30 AM
Buenas amigos, tengo un diálogo creado y al pulsar un botón quiero que se cree UNA VENTANA en la misma posición.
He montado este pequeño ejemplo :

Code (fw): Select all Collapse
#include "fivewin.ch"

Static oMain, oDlgGet, oBtn, oWndPop

function main()
   
   define dialog oMain title "Principal" FROM 0,0 TO 50,160 
   activate dialog oMain CENTERED NOMODAL

   define dialog oDlgGet title "Test Autoget" size 600, 50 pixel COLOR CLR_WHITE, CLR_BLUE OF oMain
   @ 0.5,20 BUTTON oBtn PROMPT "&Crear" OF odlgGet ACTION MuestraPop()

   activate dialog oDlgGet centered 

return nil

Function Muestrapop()
   Local oRect

      // Prueba 1
      oRect:=oDlgGet:GetRect()
      nTop:= oRect:nTop
      nLeft:= oRect:nLeft

      // Prueba 2
      aRect := GetWndRect( oDlgGet:hWnd )
      nTop := aRect[ 1 ]
      nLeft := aRect[ 2 ]
   
      // Coincide 
      DEFINE DIALOG oWndPop FROM nTop, nLeft TO nTop+300, nLeft+500 OF oMain PIXEL 
      ACTIVATE DIALOG oWndPop 

      // No coincide 
      DEFINE WINDOW oWndPop FROM nTop, nLeft TO nTop+300, nLeft+500 OF oMain PIXEL 
      ACTIVATE WINDOW oWndPop 
   
REturn (nil)


Si se trata de un diálogo respeta las posiciones, pero si lo que se crea es una ventana (que es lo que necesito) ésta aparece desplazada abajo y a la derecha de la posición que debería.

¿Alguna explicación?

Gracias!
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
Posts: 199
Joined: Wed Jan 02, 2019 08:36 AM
Re: Crear ventana en una determinada posición
Posted: Tue Apr 28, 2020 10:26 AM

Buenos días Ángel.
Saludos desde La Eliana (Valencia)

Como veo que nadie te contesta, me atrevo a comentarte....
¿tienes en tu versión, en cuanto a la creación de los diálogos, la opción TRUEPIXEL ?

Los diálogos creo recordar que utilizan coordenadas distintas.

Por si sirve de ayuda .

Saludos

Jesús Marín
deumare@gmail.com
Posts: 728
Joined: Fri Oct 07, 2005 07:38 AM
Re: Crear ventana en una determinada posición
Posted: Tue Apr 28, 2020 11:05 AM
Gracias Jesús, al final lo solucioné de otro modo :
Code (fw): Select all Collapse
  
oRectGet    :=oGet:GetRect()
oRectDialogo:=oWnd:GetRect()

nTop :=(oRectGet:nBottom-oRectDialogo:nTop)
nLeft:=(oRectGet:nLeft-oRectDialogo:nLeft)


Quería montar una ventana justo debajo del objeto oGet, con esta operación obtengo la posición del diálogo y la posición del get y obtengo la posición relativa del get dentro del diálogo.

Son mejoras que estoy haciendo a la clase tAutoget.
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
Posts: 564
Joined: Thu Oct 13, 2005 09:23 AM
Re: Crear ventana en una determinada posición
Posted: Wed Apr 29, 2020 09:23 AM

Angel, creo que la clase Autoget de Daniel García te hace esto de manera automática.

Saludos,

Posts: 728
Joined: Fri Oct 07, 2005 07:38 AM
Re: Crear ventana en una determinada posición
Posted: Wed Apr 29, 2020 09:37 AM

José Luis, precisamente esa clase es la que he adaptado para que muestre la TGetlist() en el diálogo padre del AUTOGET en el que estoy editando.
Imagina el escenario: un diálogo en el que el Autoget está "rozando" el borde inferior. Al desplegarse la lista no se ve nada ya que no cabe en el diálogo contenedor (en otro post pregunté si sería posible obtener el mismo funcionamiento que un combobox que se muestra sin límites), lo que he hecho es que si se le indica un diálogo padre, la tGetList se crea allí, con estupendos resultados.

Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4

Continue the discussion