Problema con ajuste en pixels de controles

Problema con ajuste en pixels de controles

Postby jmartial » Mon Apr 17, 2006 8:07 pm

Antonio,

Me estoy volviendo loco con el tema de los pixels y debe haber algo raro.
Me explico:


Creo desde código: DEFINE DIALOG oDlg FROM 0,0 TO 400,300 PIXEL

y ahora necesito ajustar un control TGRoup, la manera más natural que se me ocurre es

@1, 1 GROUP oG1 TO oDlg:nHeight-10, oDlg:nWidth-10 PIXEL OF oDlg

Por ejemplo, eso debería funcionar, pero, no funciona, o los pixels de ancho y alto que dice tener el Diálogo son incorrectos, o el TGroup se pinta como le da la gana, pero para nada toma bien el tamaño.

Aparte, no sé seguir, porque si es el diálogo el que no es capaz de decir cuanto mide en pixels, ¿como coloco el resto de controles??



Un Saludo,
Joaquín
jmartial
 
Posts: 458
Joined: Tue Mar 14, 2006 7:26 pm

Postby Antonio Linares » Mon Apr 17, 2006 8:21 pm

Joaquín,

Créalo desde la claúsula ON INIT del diálogo, ya que antes son "dialog units" y no pixeles.
regards, saludos

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

Postby jmartial » Mon Apr 17, 2006 8:35 pm

Antonio,

Estoy peor que antes, pongo como me dices lo siguiente:

Function InitDlgPideDat( oDlg )

@1, 1 GROUP oG1 TO oDlg:nHeight-50,;
oDlg:nWidth-10;
PROMPT "Seleccione datos" TRANSPARENT;
PIXEl OF oDlg

Return Nil


Y antes del ACTIVATE:

::oDlglist:bInit := {|| InitDlgPideDat( ::oDlglist ) }


Y ni siquiera me aparece el Tgroup, ha desaparecido del diálogo!!.

¿Podrías ponerme un pequeñísimo ejemplo autocontenido de un Diálogo y un Tgroup ajustado a él quitando algunos pixels por cada lado desde código fuente ??

Te lo agradecería muchísimo, gracias
Joaquín
jmartial
 
Posts: 458
Joined: Tue Mar 14, 2006 7:26 pm

Postby jmartial » Tue Apr 18, 2006 11:04 am

Antonio,


parece que oDLg:binit := {|| MiInit() } no lo ejecuta, hay que llamarla en es ON INIT, por eso no me iba.

Lo que no veo muy correcto es que necesite crear una nueva función sólo para definir los controles, si no, no va en pixels.


Un Saludo,
Joaquín
jmartial
 
Posts: 458
Joined: Tue Mar 14, 2006 7:26 pm

Postby jmartial » Tue Apr 18, 2006 11:30 am

Antonio,

La clase TIcon no tiene la clausula PIXEL ni la Data lPixel, por lo que no se puede trabajar en pixels, siempre en coordenadas simulando el sistema de filas y columnas del DOS.

Por lo que situarlos, se hace bastante complicado.


Un Saludo,
Joaquín
jmartial
 
Posts: 458
Joined: Tue Mar 14, 2006 7:26 pm

Postby Antonio Linares » Tue Apr 18, 2006 11:52 am

Joaquín,

Puedes usar números decimales en @ ..., ... con lo que puedes ajustarlo a la posición que quieras.
regards, saludos

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

Postby jmartial » Tue Apr 18, 2006 12:22 pm

Antonio,


Lo de trabajar con decimales lo sabía y usar ICO_CHARPIX_H y ICO_CHARPIX_W para convertirlos también, lo que quería decir, es que para que fwh funcionara todo igual y no llevarara a confusiones, esa clase TIcon está a falta de la clausula PIXEL.

Además, creo que es un poco chapucero, y aparte desde que el usuario ve que no encuentra donde ha posicionado el icono, hasta que descubre que es lo que está pasando y como solucionarlo son una gran pérdida de tiempo.

Un Saludo y gracias,
Joaquín
jmartial
 
Posts: 458
Joined: Tue Mar 14, 2006 7:26 pm

Postby Antonio Linares » Tue Apr 18, 2006 12:43 pm

Joaquín,

Para eso estan los recursos, para no tener que posicionarlos a mano.
regards, saludos

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

Postby jmartial » Tue Apr 18, 2006 4:27 pm

Antonio,

No sé si se habrá malinterpretado o no me he expresado bien, el término "chapucero" no iba referido a que la librería en sí fuera chapucera, sino que el TIcon queda incompleto sin la clausula pixel y que para que tenga ese comportamiento, el usuario tiene que dar muchas vueltas. He visto el código y pienso que no sería muy complicado de implementar. ¿Como lo ves?

Un Saludo
Joaquín

PD: Muchas veces escribiendo, al no escucharse la entonación, puede parecer que se dicen cosas con otras intenciones o en forma de desprecio, de ahí esta aclaración.
jmartial
 
Posts: 458
Joined: Tue Mar 14, 2006 7:26 pm

Postby Carlos G. » Wed Apr 19, 2006 12:57 pm

También podemos decir que:

Para eso existe FiveWiDi, para no tener que posicionarlos a mano.

Ya que lo he mencionado.

Alguién recuerda que es FiveWiDi? Saben para que sirve?

Alguién quiere continuar el desarrollo?

Actualmente la versión es del 2002 y bajo Fivewin 2.1c.

Saludos
Carlos G.
Carlos G.
 
Posts: 8
Joined: Mon Oct 10, 2005 2:37 pm
Location: Vallirana

Postby Vikthor » Wed Apr 19, 2006 9:21 pm

Un problema similar tenía yo con todos los controles al crearlos desde código, resultaba que no siempre la coordenada :

@ 10 , 10 , era la misma para todos los controles.

Y había que ajustarlos a mano limpia.

Así que le hice una pequeñisma modificación a la clase TDialog y ahora ya puedo pintar todos los controles en la coordenadas que yo le indico.

Code: Select all  Expand view
    // Vikthor 21-Sep-2005
   AEVAL( ::aControls, { | o , n | IF( o:ClassName()=="TIMAGE" .OR. o:ClassName()=="TBITMAP" , ;
                                                   o:Move( o:nTop/2 , o:nLeft/2 , 0 , 0 , .T. ) , ;
                                                                           o:Move( o:nTop/2 , o:nLeft/2 , o:nWidth/2 , o:nHeight/2,.T. ) ) } )


y listo el pollo.
Vikthor
User avatar
Vikthor
 
Posts: 271
Joined: Fri Oct 07, 2005 5:20 am
Location: México


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 82 guests