oTop, oLeft, oBottom, oRight, oClient para redimensionar ??

oTop, oLeft, oBottom, oRight, oClient para redimensionar ??

Postby AIDA » Sun Nov 16, 2008 5:06 pm

Hola

Me podrian orientar para saber como se usan los oTop, oLeft, oBottom, oRight , oClient para redimensionar automaticamente lo que se tenga dentro de una windows
tengo el problema, donde usaran la aplicacion que estoy haciendo tienen monitores desde 14 pulgadas en adelante y en esos monitores se pierde el contenido. :shock:

tengo dos xBrowser y unos folders dentro del windows nesesito que se redimensionen si minimisan el tamaño de la windows

los xbrowse y el folder no estan en recursos es puro codigo

algun ejemplo que me puedan dar :D

muchos saluditos a todos :wink:

Aida
Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
User avatar
AIDA
 
Posts: 877
Joined: Fri Jan 12, 2007 8:35 pm

Postby joseluisysturiz » Sun Nov 16, 2008 9:49 pm

Aida, creo el problema no es de oTop y demas cosas.. te recomiendo trabajes con una resolucion minima para diseño de tu sistemas, normalmente uso 1024 x 768 pixel, asi puedes adaptar tus sistema a todo tipo d monitor. es solo una idea...que estes bien..saludos.... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

QUE??

Postby AIDA » Sun Nov 16, 2008 11:15 pm

Tengo que rehacer todo otra vez?? :cry:
Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
User avatar
AIDA
 
Posts: 877
Joined: Fri Jan 12, 2007 8:35 pm

Re: QUE??

Postby joseluisysturiz » Sun Nov 16, 2008 11:49 pm

AIDA wrote:Tengo que rehacer todo otra vez?? :cry:

No aida, solo cuando programes coloca la resolucion de tu monitor en 1024x768 para que tus DLG y FLD veas como se adaptaran a la ventana, las WND no tienes problema ya que al MAXIMIZARLAS se adaptan a cualquier tamaño, ojo es solo una idea, lo mas seguro algun otro tendra una mejor solucion, si trabajaras con recurso solo adaptarias el tamaño del recurso y ya.saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

NO QUEDA

Postby AIDA » Mon Nov 17, 2008 8:43 pm

Hice lo que dijiste y ahora en un monitor de 17 pulgadas todo queda más chico y un espacio vacío dentro de la windows cuando está llenando el monitor, ahora el problema es al revés :cry:


Saludos

Aida
Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
User avatar
AIDA
 
Posts: 877
Joined: Fri Jan 12, 2007 8:35 pm

Postby Antonio Linares » Mon Nov 17, 2008 9:06 pm

Aida,

Puedes poner una imagen de tu pantalla aqui ? gracias

Usa www.imageshack.us
regards, saludos

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

Hola

Postby AIDA » Mon Nov 17, 2008 10:58 pm

Hola Antonio :D

aqui esta un ejemplo

en la primera imagen es como se ve en un monitor de 17 pulgadas

Image

en la segunda imagen es como se ve en un monitor de 14 pulgadas

Image

en la tercera imagen lo modifique como me dijeron pero tampoco ajusta al tamaño de la windows

Image

lo que nesecito es que se ajuste (redimensione) todo si minimiso la windows o la maximiso ya busque ejemplos y no encontre nada :?

Te mando muchos Saludos
y que estes muy bien :wink:

Aida

PD. encontre el ejemplo testspl5.prg creo que es lo que nesecito lo checare :D
Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
User avatar
AIDA
 
Posts: 877
Joined: Fri Jan 12, 2007 8:35 pm

HOLA

Postby AIDA » Tue Nov 18, 2008 6:14 am

use de ejemplo testspl5.prg

ya me funciono ajustar los SPLITTER pero cuando es con el xbrowse me tira un error , que me faltara?

Saludos

Aida

Code: Select all  Expand view

Error description: Error BASE/1004  Message not found: TMDIFRAME:ADJCLIENT

Stack Calls
===========
   Called from: source\rtl\tobject.prg => TMDIFRAME:ERROR(172)
   Called from: source\rtl\tobject.prg => TMDIFRAME:MSGNOTFOUND(205)
   Called from: source\rtl\tobject.prg => TMDIFRAME:ADJCLIENT(0)
   Called from: .\source\classes\WINDOW.PRG => TXBROWSE:RESIZE(0)
   Called from:  => TWINDOW:HANDLEEVENT(0)
   Called from: .\source\classes\CONTROL.PRG => TXBROWSE:HANDLEEVENT(0)
   Called from: .\source\classes\WINDOW.PRG => _FWH(0)
   Called from:  => MOVEWINDOW(0)
   Called from: .\source\classes\WINDOW.PRG => TWINDOW:MOVE(0)
   Called from: .\source\classes\CONTROL.PRG => TXBROWSE:MOVE(0)
   Called from: .\source\classes\SPLITTER.PRG => TSPLITTER:ADJUSTCTROLS(0)
   Called from: .\source\classes\SPLITTER.PRG => TSPLITTER:LBUTTONUP(0)
   Called from:  => TWINDOW:HANDLEEVENT(0)
   Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT(0)
   Called from: .\source\classes\SPLITTER.PRG => TSPLITTER:HANDLEEVENT(0)
   Called from: .\source\classes\WINDOW.PRG => _FWH(0)
   Called from: C:\FWH\BITACORA\PRG\TEST2003.PRG => NOGPF(0)
   Called from: C:\FWH\BITACORA\PRG\TEST2003.PRG => WINRUN(6564)
   Called from: .\source\classes\WINDOW.PRG => TMDIFRAME:ACTIVATE(0)
   Called from: C:\FWH\BITACORA\PRG\TEST2003.PRG => MAIN(1137)
Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
User avatar
AIDA
 
Posts: 877
Joined: Fri Jan 12, 2007 8:35 pm

Postby Manuel Valdenebro » Wed Nov 19, 2008 6:18 am

Si aún no has resuelto el problema, te comento como lo hago:

1) Con recursos, aplicando al ACTIVATE la función AUTRESIZ de Fivewidi, a la que he hecho algunas modificaciones.

2) Con código, multiplicando los valores de los nCol, nFila, nAncho y nAlto por los siguientes coeficientes:

nRancho := GetSysMetrics(0)/800
nRalto := GetSysMetrics(1)/600

800/600 hace referencia a la resolución de pantalla del ordenador donde has programado la aplicación. Si fuera diferete, habria que cambiar estos parámetros.
Un saludo

Manuel
User avatar
Manuel Valdenebro
 
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

HOLA

Postby AIDA » Thu Nov 20, 2008 2:11 am

Hola Manuel :D

Gracias por tu nota pero que es el Fivewidi :oops:


Saludos

Aida
Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
User avatar
AIDA
 
Posts: 877
Joined: Fri Jan 12, 2007 8:35 pm

Re: HOLA

Postby Manuel Valdenebro » Thu Nov 20, 2008 6:49 am

AIDA wrote:que es el Fivewidi


Fivewidi es un colega que publicó la funcion AUTRESIZE en este foro al que de nuevo le doy las gracias por la misma.
Si la buscas en el foro, la encontrarás.
En base a dicha función, he creado la función Auto800() que es la que utilizo con éxito:

//////////////////////////////////////////////////////////////////////
FUNCTION Auto800 ( oWnd, lRepaint, lFolder )
Local nOriWidth := 800, nOriHeight := 600, nWidth := 0, nHeight := 0, ;
nContador, nRancho, nRalto

DEFAULT lRepaint := .T., lFolder := .t.

ScrResolution( @nWidth, @nHeight ) // importante

If nOriHeight < nHeight
nRancho := nWidth / nOriWidth
nRalto := nHeight / nOriHeight

// solo para Tdialog
If lRepaint
oWnd:Hide()
EndIf

If nRalto > 1

If oWnd:ClassName() == "TLISTBOX" .OR. oWnd:ClassName() == "TCOMBOBOX"
oWnd:Move( oWnd:nTop * nRalto , ;
(oWnd:nLeft * nRancho), ;
(oWnd:nWidth * nRancho), ;
oWnd:nHeight , ;
.F. )
Else
oWnd:Move( oWnd:nTop * nRalto , ;
oWnd:nLeft * nRancho, ;
oWnd:nWidth * nRancho, ;
oWnd:nHeight * nRalto , ;
.F. )
EndIf
EndIf

If oWnd:ClassName() == "xTFOLDER"
If ValType( oWnd:aDialogs ) = "A" .AND. lFolder
For nContador := 1 To Len( oWnd:aDialogs )
Auto800( oWnd:aDialogs[nContador], .F. )
EndFor
EndIf
ElseIF oWnd:Classname() == "TWBROWSE"
FOR nContador=1 TO LEN (oWnd:aColSizes)
oWnd:AcolSizes[nContador] *= nRancho
NEXT

ElseIF oWnd:Classname() == "TCOMBOBOX"

Else

If ValType( oWnd:aControls ) = "A" // dialogo
For nContador := 1 To Len( oWnd:aControls )
Auto800( oWnd:aControls[nContador], .F. )
EndFor
EndIf
If oWnd:ClassName() == "TFOLDER"
If lFolder
For nContador := 1 To Len( oWnd:aDialogs )
Auto800( oWnd:aDialogs[nContador], .F. )
EndFor
EndIf
EndIf

EndIf


If lRepaint
If( ( "DIALOG" $ oWnd:Classname() ) .and. oWnd:lCentered, WndCenter( oWnd:hWnd ) , Nil )
oWnd:Show()
EndIf
EndIf

Return Nil

//////////////////////////////////

Una vez que incluyas esta función en tus fuentes, solo tienes en los diálogos que añadir en el ACTIVATE ON INIT AUTO800(oDlg,.t.)

Observa que esta diseñada en base a que la pantalla del programador sea de 800x600. Si tu resolución es mayor, debes cambiar en la función las medidas.
Por otra parte recuerda que el anterior mensaje te comente que esta función es válida solo para diálogos desde recursos. Si los diálogos son con código, el cambio es mas laborioso. Tienes que multiplicar los valores de los nCol, nFila, nAncho y nAlto por los siguientes coeficientes:

nRancho := GetSysMetrics(0)/800
nRalto := GetSysMetrics(1)/600
Un saludo

Manuel
User avatar
Manuel Valdenebro
 
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

HOLA

Postby AIDA » Fri Nov 21, 2008 2:38 am

Hola Manuel :)

Gracias :D por tu ayuda me pondre a leer con cuidado lo que me diste para poder aplicarlo

espero que me funcione ya me siento algo frustrada :cry:

Gracias por todo

Saludos

Aida
Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
User avatar
AIDA
 
Posts: 877
Joined: Fri Jan 12, 2007 8:35 pm

Postby MGA » Tue Nov 25, 2008 2:04 pm

Sr. Manuel,

Como fazer para esta função aplicar tambem a GROUP BOX ?

:)
ubiratanmga@gmail.com

FWH18.02
FWPPC
Harbour/xHarbour
xMate
Pelles´C
TDolphin
MGA
 
Posts: 1234
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá

Postby Manuel Valdenebro » Tue Nov 25, 2008 4:20 pm

SGS wrote:Como fazer para esta função aplicar tambem a GROUP BOX ?


La única condición es que hay siempre que REDEFINE el grupo (o cualquier otro objeto) en nuestro código:

REDEFINE GROUP oGrupo ID 14 OF oDlg TRANSPARENT
.....
.....
REDEFINE SAY oSay2 VAR cM[7] ID 9 OF oDlg

ACTIVATE DIALOG oDlg CENTERED ON INIT ;
Auto800( oDlg, .t. )

Si es con código:

@ 0.1*nRalto,1.5*nRancho GROUP oGrupo TO 6.0*nRalto, 35.1*nRancho OF oDlg TRANSPARENT
Un saludo

Manuel
User avatar
Manuel Valdenebro
 
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Postby MGA » Tue Nov 25, 2008 4:54 pm

Sr. Manuel,

Funciona perfeitamente com GROUP BOX. :)

Tentei fazer funcionar com TXBROWSE e TCBROWSE, não obtive exito:
:(
ElseIF oWnd:Classname() == "TWBROWSE" .or. oWnd:Classname() == "TXBROWSE"

FOR nContador=1 TO LEN (oWnd:aColSizes)
oWnd:AcolSizes[nContador] *= nRancho
NEXT

O Sr. Acha que seria possível com estes dois browses?
ubiratanmga@gmail.com

FWH18.02
FWPPC
Harbour/xHarbour
xMate
Pelles´C
TDolphin
MGA
 
Posts: 1234
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 93 guests