Page 1 of 2

problema picture

PostPosted: Wed Jul 10, 2013 5:26 pm
by elvira
Amigos,

Necesito por favor su ayuda para alinear los campos numéricos también a la izquierda (101, 102 y 103), para que se vean como el primero, el Nombre, pero no lo consigo:

Image

Este es el código:

Code: Select all  Expand view
#include "FiveWin.ch"

//----------------------------------------------------------------------------//

function Main()

   local oDlg, lSave := .f.

   local c100 := "TEST ELVIRA            "
   local c101 := 0
   local c102 := 0
   local c103 := 0



   DEFINE DIALOG oDlg RESOURCE "ELVIRA" TITLE "Prueba Elvira"

   REDEFINE GET c100        ID  100 OF oDlg
   REDEFINE GET c101        ID  101 OF oDlg   PICTURE "@E 9,999,999"
   REDEFINE GET c102        ID  102 OF oDlg   PICTURE "@E 9,999,999"
   REDEFINE GET c103        ID  103 OF oDlg   PICTURE "@E 9999"




   REDEFINE BUTTON ID 701 OF oDlg  ACTION( lSave := .T., oDlg:End() )
   REDEFINE BUTTON ID 702 OF oDlg  ACTION( lSave := .F., oDlg:End() )

   ACTIVATE DIALOG oDlg CENTERED





return nil

//----------------------------------------------------------------------------//





Y el .rc:

Code: Select all  Expand view

#include "c:\fwh\include\WinApi.ch"

#ifdef __FLAT__
  1 24 "c:\fwh\samples\WinXP\WindowsXP.Manifest"
#endif



ELVIRA DIALOG 23, 16, 258, 163
STYLE DS_MODALFRAME | 0x4L | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Búsquedas"
FONT 10, "MS Sans Serif"
{
 EDITTEXT 100, 51, 14, 86, 12, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP
 EDITTEXT 101, 51, 62, 24, 11
 EDITTEXT 102, 127, 62, 20, 11
 EDITTEXT 103, 180, 62, 23, 11, ES_RIGHT | WS_BORDER | WS_TABSTOP
 LTEXT "&Nombre:", -1, 10, 16, 28, 8
 RTEXT "&Págs.:", -1, 155, 63, 23, 12
 RTEXT "&Vols:", -1, 30, 63, 17, 8
 RTEXT "&Ejemplares:", -1, 85, 63, 38, 8
 PUSHBUTTON "&Aceptar", 701, 73, 128, 36, 14
 PUSHBUTTON "&Cancelar", 702, 140, 128, 36, 14
}


 



Muy agradecida, me estoy volviendo loca.

;)

Re: problema picture

PostPosted: Wed Jul 10, 2013 5:40 pm
by jrestojeda
Hola...
Si usas un generador de recursos, en el mismo deberías tener una opción que indica la alineación del contenido del control.
Por otro lado puedes probar agregar "ES_LEFT" a los controles que quieres poner a la izquierda.
Espero te sirva.
Saludos,

Re: problema picture

PostPosted: Wed Jul 10, 2013 5:43 pm
by elvira
Hola,

Muchas gracias, ya lo había probado antes y nada:

EDITTEXT 101, 51, 62, 24, 11, ES_LEFT | WS_BORDER | WS_TABSTOP
EDITTEXT 102, 127, 62, 20, 11


No se qué puede ser.

A ver si alguna alma caritativa me ayuda por favor.

Re: problema picture

PostPosted: Wed Jul 10, 2013 5:48 pm
by jrestojeda
Entonces creo que deberías probar con poner en el GET el ALLTRIM(STR( c101 )) y luego a la hora de usar la variable aplicarle el VAL( c101 )
Saludos,

Re: problema picture

PostPosted: Wed Jul 10, 2013 5:58 pm
by karinha
Code: Select all  Expand view

#include "c:\fwh\include\WinApi.ch"

#ifdef __FLAT__
  1 24 "c:\fwh\samples\WinXP\WindowsXP.Manifest"
#endif



ELVIRA DIALOG 134, 65, 258, 163
STYLE DS_ABSALIGN | DS_MODALFRAME | 0x4L | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Búsquedas"
FONT 10, "MS Sans Serif"
{
 EDITTEXT 100, 51, 14, 86, 12, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP
 CONTROL "0", 101, "EDIT", ES_MULTILINE | WS_BORDER | WS_TABSTOP, 43, 63, 35, 11
 CONTROL "0", 102, "EDIT", ES_MULTILINE | WS_BORDER | WS_TABSTOP, 137, 63, 35, 11
 EDITTEXT 103, 215, 63, 25, 11, ES_RIGHT | ES_MULTILINE | WS_BORDER | WS_TABSTOP
 PUSHBUTTON "&Aceptar", 701, 73, 128, 36, 14
 PUSHBUTTON "&Cancelar", 702, 140, 128, 36, 14
 LTEXT "&Nombre:", -1, 10, 16, 28, 8
 RTEXT "&Vols:", -1, 22, 63, 17, 8
 RTEXT "&Ejemplares:", -1, 95, 63, 38, 8
 RTEXT "&Págs.:", -1, 190, 63, 23, 12
}
 




Re: problema picture

PostPosted: Wed Jul 10, 2013 6:08 pm
by elvira
Hola,

Muchas gracias, sigue igual.

El campo es numérico, y el problema viene con el picture.

Quizás es un bug de fivewin.

Re: problema picture

PostPosted: Wed Jul 10, 2013 6:17 pm
by karinha
Hola, aca funciona perfecto con FWH13.05 Mayo de 2013

Code: Select all  Expand view

#include "FiveWin.ch"

//----------------------------------------------------------------------------//

function Main()

   local oDlg, lSave := .f.

   local c100 := "TEST ELVIRA            "
   local c101 := 0.00
   local c102 := 0.00
   local c103 := 0.00
   LOCAL aGet := ARRAY(5)

   DEFINE DIALOG oDlg RESOURCE "ELVIRA" TITLE "Prueba Elvira"

   REDEFINE GET aGet[1] VAR c100 ID  100 OF oDlg

   REDEFINE GET aGet[2] VAR c101 ID  101 OF oDlg PICTURE "@KE 9,999,999"

   REDEFINE GET aGet[3] VAR c102 ID  102 OF oDlg PICTURE "@KE 9,999,999"

   REDEFINE GET aGet[4] VAR c103 ID  103 OF oDlg PICTURE "@KE 9999"

   REDEFINE BUTTON ID 701 OF oDlg  ACTION( lSave := .T., oDlg:End() )
   REDEFINE BUTTON ID 702 OF oDlg  ACTION( lSave := .F., oDlg:End() )

   ACTIVATE DIALOG oDlg CENTERED

return nil

//----------------------------------------------------------------------------//
 



Re: problema picture

PostPosted: Wed Jul 10, 2013 6:21 pm
by elvira
Hola,

Muchas gracias por la ayuda. Yo lo sigo viendo alineado a la derecha, cuando lo quiero a la izquierda al igual que el campo nombre:

Image

¿Qué editor de recursos usas?.

Muchas gracias por tu atención!.

Re: problema picture

PostPosted: Wed Jul 10, 2013 6:33 pm
by jrestojeda
Claro...
El inconveniente naturalmente está en el picture, pero no lo veo como un problema, sino que que le está piniendo el picture que tu pones.
Si le dices al control que ponga un picture de 3 enteros pero el número solo tiene uno vas a visualizar dos espacios y luego tu numero.

Re: problema picture

PostPosted: Wed Jul 10, 2013 6:59 pm
by elvira
Fíjate en el campo Ejemplares, 1, debería quitar los espacios que hay en la izquierda.

Re: problema picture

PostPosted: Wed Jul 10, 2013 7:15 pm
by jrestojeda
Si lo que quieres hacer es esto:

Image

Deberías definir la variable asociada al GET como caracter con un picture que sólo permita ingresar números. Luego al momento de usar la variable aplicarle el VAL()

Re: problema picture

PostPosted: Wed Jul 10, 2013 7:17 pm
by elvira
Hola,

Quiero que fuese 123,456 y el campo sólo debe permitir números.

Y la alineación al igual que tú, pegado el número a la izquierda sin espacios.

Muchas gracias.

Re: problema picture

PostPosted: Wed Jul 10, 2013 7:24 pm
by jrestojeda
En ese caso poné en el picture "###,###"

Re: Alinear Numeros a la izquierda

PostPosted: Mon Aug 17, 2015 5:59 pm
by Maggiro
Elvira:
Tu problema está en el Picture que usas:
- Si tu variable numerica tiene el numero 123
- y tu PICTURE tiene '9,999,999'
- el PICTURE toma la parte más a la derecha de la plantilla para mostrar tu variable.
- (seis espacios mas tu variable numerica)
- La alternativa, eliminar el PICTURE innecesario para el ancho numerico.

Prueba lo siguiente:

Code: Select all  Expand view

FUNCTION Main()
  LOCAL MiDialog,oGet,MiNumero
  MiNumero=123
  DEFINE DIALOG MiDialog TITLE 'Probando Numeros ajustados a la izquierda'
       @ 1,1 GET oGet VAR MiNumero OF MiDialog PICTURE nPict(MiNumero)
       @ 2,1 BUTTON 'Aceptar' OF MiDialog ACTION MiDialog:End()
  ACTIVATE DIALOG MiDialog
RETU nil

FUNCTION nPict(VaNum)
   LOCAL LenNum,PicNum
   LenNum=LEN(ALLTRIM(STR(VaNum)))
   PicNum=''
   IF LenNum=1
      PicNum='9'
   ELSEIF LenNum=2
      PicNum='99'
   ELSEIF LenNum=3
      PicNum='999'
   ELSEIF LenNum=4
      PicNum='9999'
   ELSEIF LenNum=5
      PicNum='99999'
   ELSEIF LenNum=6
      PicNum='999999'
   ELSEIF LenNum=7
      PicNum='9999999'
   ELSEIF LenNum=8
      PicNum='99999999'
   ELSEIF LenNum=9
      PicNum='999999999'
   ELSEIF LenNum=10
      PicNum='9999999999'
   ENDI
RETU PicNum

 

La variable PicNum puedes usarla con la plantilla que desees ... Espero te sirva


Julio César Gómez Cortéz
Godryc Experiencias
Lima Perú
FWH 6.12 me está gustando

Re: problema picture

PostPosted: Tue Aug 18, 2015 4:44 pm
by joseluisysturiz
jrestojeda wrote:Si lo que quieres hacer es esto:

Image

Deberías definir la variable asociada al GET como caracter con un picture que sólo permita ingresar números. Luego al momento de usar la variable aplicarle el VAL()

Me pasa algo igual, cuando manejo valores numericos que identifican dinero, los alineo a la derecha, pero hay momentos que necesito valores que tengan miles y decimales como por lo menos peso...pero que debe estar alineado a la izqierda pero con su picture que muestre los enteros y decimales...pictu "999,999.99"... como al colega igual me lo pone a la derecha si el valor no llena toda la mascara, pero esto es dinamico...como se haria en ese caso.?