Problema con ajuste en pixels de controles

Post Reply
jmartial
Posts: 457
Joined: Tue Mar 14, 2006 7:26 pm

Problema con ajuste en pixels de controles

Post by jmartial »

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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

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
jmartial
Posts: 457
Joined: Tue Mar 14, 2006 7:26 pm

Post by jmartial »

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: 457
Joined: Tue Mar 14, 2006 7:26 pm

Post by jmartial »

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: 457
Joined: Tue Mar 14, 2006 7:26 pm

Post by jmartial »

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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

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
jmartial
Posts: 457
Joined: Tue Mar 14, 2006 7:26 pm

Post by jmartial »

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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Joaquín,

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

Antonio Linares
www.fivetechsoft.com
jmartial
Posts: 457
Joined: Tue Mar 14, 2006 7:26 pm

Post by jmartial »

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.
Carlos G.
Posts: 8
Joined: Mon Oct 10, 2005 2:37 pm
Location: Vallirana

Post by Carlos G. »

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.
User avatar
Vikthor
Posts: 271
Joined: Fri Oct 07, 2005 5:20 am
Location: México

Post by Vikthor »

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

	 // 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
Post Reply