FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour ScrResolution(), descontrol de dialogos?
Posts: 418
Joined: Wed Nov 26, 2008 06:33 PM
ScrResolution(), descontrol de dialogos?
Posted: Sat Jul 11, 2015 03:33 AM

Saludos

Estimados, uso la funcion ScrResolution() para poder ubicar la ventana principal en cierto lugar de la pantalla (ejemplo abajo).
Pero al usarla, algunos dialogos que creo posterior a la funcion ScrResolution() ya no me funcionan igual.
por ejemplo: en un dialogo uso:

nBot:=oDlg:nBottom

y este ya no tiene relacion alguna con el oDlg:Bottom del dialogo...

Esta funcion tiene algo que ver con las dimensiones o posiciones de mis dialogos o ventanas que creo?

Gracias.

// --- regresa las coor. de pantalla
function CoordenadasPant(nAncho,nAlto)

nAncho:=ScrResolution()[1]
nAlto :=ScrResolution()[2]
return NIL

No茅 Aburto S谩nchez
Tec. Prog. de Sistemas. -Morelia, Mich. M茅xico.
fwh 20.06, Harbour 3.2.0, bcc 7.4
TsBrowse 9.0, TsButton 7.0, xEdit 6.1
naburtos@gmail.com, noeaburto67@hotmail.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: ScrResolution(), descontrol de dialogos?
Posted: Sat Jul 11, 2015 02:47 PM
Noe,

Tienes que modificar la posici贸n del di谩logo desde la cla煤sula ON INIT:

ACTIVATE DIALOG oDlg ON INIT ...

ya que en ese momento el di谩logo ha sido creado por Windows y las coordenadas ya estan basadas en pixeles y no en "units":

https://msdn.microsoft.com/en-us/library/windows/desktop/ms645475(v=vs.85).aspx

Retrieves the system's dialog base units, which are the average width and height of characters in the system font. For dialog boxes that use the system font, you can use these values to convert between dialog template units, as specified in dialog box templates, and pixels
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 195
Joined: Fri Jan 23, 2009 02:50 AM
Re: ScrResolution(), descontrol de dialogos?
Posted: Sat Jul 11, 2015 04:48 PM

Noe buen dia

Yo he utilizado con exito pero en ventanas
nResoancho := GetSysMetrics(0)
nResoAlto := GetSysMetrics(1)

Si te puedo colaborar en algo cuenta conmigo con gusto

Jairo

Posts: 498
Joined: Thu May 10, 2007 08:30 PM
Re: ScrResolution(), descontrol de dialogos?
Posted: Wed Jul 15, 2015 09:51 AM
Noe, Antonio tiene raz贸n, la 煤nica soluci贸n es el ON INT.

Normalmente creo mis di谩logos asi:
Code (fw): Select all Collapse
LOCAL aCtrl[10]
*
DEFINE DIALOG oDlg ...
聽 聽@ 0,0 SAY oCtrl[1] ....
聽 聽@ 0,0 SAY oCtrl[2] ....
聽 聽...
聽 聽@ 0,0 SAY oCtrl[10] ....
ACTIVATE DCIALOG oDLg ON INIT IniDiag(oCtrl)
*
FUNCTION IniDiag(oCt)
聽 聽oCt[1]:Move(10,10)
聽 聽oCt[2]:Move(26,10)
聽 聽...
聽 聽oCt[10]:Move(144,10,100,20)
聽 聽...
RETURN NIL

Y para solventar problemas de resoluci贸n, utilizo coordenadas relativas en luigar de absolutas.
Por ejemp,lo 50 pixel antes del bottom, Ancho pabntalla/3+20, oCtrl[1]:nLeft+oCtrl[1]:nWidth+10, etc..

los GetSysMetrics son muy socorridos. Por ejemplo, para calcular la parte baja de mi pantalla, justo por encima de la barra de estado utilizo:
Code (fw): Select all Collapse
GetSysMetrics(4)+GetSysMetrics(17)
Que es lo que mide el titulo+altura 谩rea de clientes


Un saludo
Peaaaaaso de foro...

FWH 2007 - xHarbour - BCC55

Continue the discussion