Controles en dialogos no se alinean

Controles en dialogos no se alinean

Postby Compuin » Thu Oct 26, 2017 2:28 pm

Saludos

Cual es la mejor manera de trabajar los controles en un dialogo incrustrado en una Windows ?

A pesar que hago las alineaciones nunca quedan donde deben estar

Los dialogos se trabajan en columnas/filas o en pixeles ?

Ventajas / desventajasde cada uno ?

Gracias a todos lo que puedan aclarar
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1213
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Controles en dialogos no se alinean

Postby karinha » Thu Oct 26, 2017 4:28 pm

Que usas, @Say ó Recursos del Workshop.exe the best? Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7208
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Controles en dialogos no se alinean

Postby Compuin » Thu Oct 26, 2017 4:40 pm

No uso recursos, todos los controles hecho a codigo

PS (No quiero usar recursos)
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1213
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Controles en dialogos no se alinean

Postby cnavarro » Thu Oct 26, 2017 4:42 pm

Yo hace tiempo que en mis desarrollos intento por todos los medios no usarlos, solo para las imagenes
Pon un ejemplo de como lo haces
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Controles en dialogos no se alinean

Postby Compuin » Thu Oct 26, 2017 5:46 pm

cnavarro wrote:Yo hace tiempo que en mis desarrollos intento por todos los medios no usarlos, solo para las imagenes
Pon un ejemplo de como lo haces


@ 1,01 SAY "Nombre: " RIGHT
@ 2,01 SAY "Apellido : " RIGHT
@ 3,01 SAY "Curso : " RIGHT
@ 4,01 SAY "Horario : " RIGHT

@ 1,20 GET oNombre VAR cNombre

@ 3,06 GET oApellido VAR cApellido;

@ 3,06 COMBOBOX oHorario VAR cHorario ITEMS {"Diurno","Nocturno"}

@ 4,06 CHECKBOX lStatus PROMPT "Status"
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1213
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Controles en dialogos no se alinean

Postby cnavarro » Thu Oct 26, 2017 6:23 pm

Entiendo que los controles son esos o cualquier otros
No me refería sólo a eso, sino a la definición del diálogo ( o contenedor ) y del font ( también importante )
Es decir, un ejemplo completo para su implementación
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Controles en dialogos no se alinean

Postby Compuin » Thu Oct 26, 2017 6:28 pm

DEFINE DIALOG oDlg;
FROM 0,0 TO 80, 80;
PIXEL TITLE 'Test' OF oWnnPPal

@ 1,01 SAY "Nombre: " RIGHT
@ 2,01 SAY "Apellido : " RIGHT
@ 3,01 SAY "Curso : " RIGHT
@ 4,01 SAY "Horario : " RIGHT

@ 1,20 GET oNombre VAR cNombre

@ 3,06 GET oApellido VAR cApellido;

@ 3,06 COMBOBOX oHorario VAR cHorario ITEMS {"Diurno","Nocturno"}

@ 4,06 CHECKBOX lStatus PROMPT "Status"

ACTIVATE DIALOG oDlg NOWAIT
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1213
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Controles en dialogos no se alinean

Postby cnavarro » Thu Oct 26, 2017 6:32 pm

Veo que no utilizas la clausula SIZE en los controles
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Controles en dialogos no se alinean

Postby Compuin » Thu Oct 26, 2017 6:35 pm

Eso influye para que los muestre desordenados?
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1213
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Controles en dialogos no se alinean

Postby cnavarro » Thu Oct 26, 2017 6:40 pm

Compuin wrote:Saludos

Cual es la mejor manera de trabajar los controles en un dialogo incrustrado en una Windows ?

A pesar que hago las alineaciones nunca quedan donde deben estar

Los dialogos se trabajan en columnas/filas o en pixeles ?

Ventajas / desventajasde cada uno ?

Gracias a todos lo que puedan aclarar


No hombre, no es exactamente eso
Pero, lo que quiero exponer es que el hecho de que no use recursos para el diseño, no me hace olvidar la información que incluyen los .rc para su diseño y uso posterior.
Eso sí, todos los elementos de cada control estará definido con variables y no valores fijos

Ejemplo:

@ nRow, nCol SAY "Nombre: " RIGHT

Ah!, yo utilizo siempre PIXEL
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Controles en dialogos no se alinean

Postby Compuin » Thu Oct 26, 2017 6:46 pm

cnavarro wrote:
Compuin wrote:Saludos

Cual es la mejor manera de trabajar los controles en un dialogo incrustrado en una Windows ?

A pesar que hago las alineaciones nunca quedan donde deben estar

Los dialogos se trabajan en columnas/filas o en pixeles ?

Ventajas / desventajasde cada uno ?

Gracias a todos lo que puedan aclarar


No hombre, no es exactamente eso
Pero, lo que quiero exponer es que el hecho de que no use recursos para el diseño, no me hace olvidar la información que incluyen los .rc para su diseño y uso posterior.
Eso sí, todos los elementos de cada control estará definido con variables y no valores fijos

Ejemplo:

@ nRow, nCol SAY "Nombre: " RIGHT

Ah!, yo utilizo siempre PIXEL


No entendi lo del .RC
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1213
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Controles en dialogos no se alinean

Postby cnavarro » Thu Oct 26, 2017 6:49 pm

No quiero decir que has de utilizar RC, justo es lo que intentamos evitar
Quiero decir que intentes definir los controles con las características que puedes llegar a necesitar para manejar su ubicación en el contenedor
Cuando defines un control en el RC, siempre aparece la fila, columna, ancho y alto, no?
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Controles en dialogos no se alinean

Postby Compuin » Thu Oct 26, 2017 6:56 pm

cnavarro wrote:No quiero decir que has de utilizar RC, justo es lo que intentamos evitar
Quiero decir que intentes definir los controles con las características que puedes llegar a necesitar para manejar su ubicación en el contenedor
Cuando defines un control en el RC, siempre aparece la fila, columna, ancho y alto, no?


Ok podrias darme un ejemplo de como hacerlo ?
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1213
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Controles en dialogos no se alinean

Postby cnavarro » Thu Oct 26, 2017 7:21 pm

Ok, algo asi, lo he copiado de un ejemplo que tengo, sin comprobar su funcionamiento, pero por lo menos ves lo que quiero decir
Faltaría parametrizar tambien las columnas, pero tal y como están definidas en esta ejemplo, no creo que te sea muy difícil

Code: Select all  Expand view

Static nPorHeight := 1    // Estas son para distintas resoluciones quizás
Static nPorWidth  := 1
Function Main()

    DlgClient()

Return nil


Function DlgClient( )

   local oDlg
   local aCtl[ 25 ]
   local oFont
   local oFontBold
   local lRet        := .F.
   local nFil        := 10
   local nClrT       := CLR_BLUE
   local nClrTG      := CLR_BLUE
   local nClrB       := CLR_HGRAY //WHITE
   local oChk
   local cId         := Space( 9 )
   local cNombre     := Space( 20 )
   local cApells     := Space( 20 )
   local dDateI      := Date() //Ctod( "9999/99/99" )
   local nF1         := 91 * nPorHeight
   local nC1         := 300
   local nF2         := 480 * nPorHeight
   local nC2         := 720
   local aRet        := {}
   local nOld        := Select()
   local n           := 0
   local nInc        := 14 * nPorHeight
   
      cId       := PadR( aDats[ 1 ], 9 )
      cNombre   := PadR( aDats[ 2 ], 15 )
      cApells   := PadR( aDats[ 3 ], 30 )
 
   
   DEFINE FONT oFont NAME "Calibri" SIZE 0, -14 * nPorHeight
   DEFINE FONT oFontBold NAME "Calibri" SIZE 0, -18 * nPorHeight BOLD

   DEFINE DIALOG oDlg FROM nF1, nC1 TO nF2, nC2 PIXEL COLORS nClrT, nClrB ;
          TITLE "Add/Edit Client" // FONT oFontBold //;
   
   oDlg:lHelpIcon := .F.
   oDlg:nOpacity  := 240    // 0 .. 255      //oDlg:nSeeThroClr := <nColor>

   @ nFil,  5 SAY aCtl[ 1 ] PROMPT "Codigo:" OF oDlg ;
            FONT oFont UPDATE ;
            COLORS nClrTG, nClrB SIZE 70 * nPorWidth, 11 * nPorHeight PIXEL

   @ nFil, 45 GET aCtl[ 2 ] VAR cId OF oDlg ;
            FONT oFont UPDATE PICTURE "@!" ;
            COLORS nClrT, nClrB SIZE 56 * nPorWidth, 11 * nPorHeight PIXEL

   nFil  += nInc
   @ nFil,  5 SAY aCtl[ 5 ] PROMPT "Nombre:" OF oDlg ;
            FONT oFont UPDATE ;
            COLORS nClrTG, nClrB SIZE 70 * nPorWidth, 11 * nPorHeight PIXEL

   @ nFil, 45 GET aCtl[ 6 ] VAR cNombre OF oDlg ;
            FONT oFont UPDATE PICTURE "@K" ;
            COLORS nClrT, nClrB SIZE 100 * nPorWidth, 11 * nPorHeight PIXEL
   
   nFil += nInc
   @ nFil,  5 SAY aCtl[ 11 ] PROMPT "Apellidos:" OF oDlg ;
            FONT oFont UPDATE ;
            COLORS nClrTG, nClrB SIZE 70 * nPorWidth, 11 * nPorHeight PIXEL

   @ nFil, 45 GET aCtl[ 12 ] VAR cApells OF oDlg ;
            FONT oFont UPDATE PICTURE "@K" ;
            COLORS nClrT, nClrB SIZE 156 * nPorWidth, 11 * nPorHeight PIXEL
           

   nFil  += nInc
   @ nFil, 83 BUTTON aCtl[ 23 ] PROMPT "&Aceptar" OF oDlg ;     //164
            FONT oFont SIZE 53 * nPorWidth, 14 * nPorHeight PIXEL ACTION ( lRet := .T., oDlg:End() )
   
   @ nFil, 145 BUTTON aCtl[ 24 ] PROMPT "&Cancelar" OF oDlg ;
            FONT oFont SIZE 53 * nPorWidth, 14 * nPorHeight PIXEL ACTION oDlg:End()

   ACTIVATE DIALOG oDlg VALID ( .T. )  //NOWAIT

   oFont:End()
   oFontBold:End()

Return nil

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


 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Controles en dialogos no se alinean

Postby Compuin » Thu Oct 26, 2017 7:30 pm

cnavarro wrote:Ok, algo asi, lo he copiado de un ejemplo que tengo, sin comprobar su funcionamiento, pero por lo menos ves lo que quiero decir
Faltaría parametrizar tambien las columnas, pero tal y como están definidas en esta ejemplo, no creo que te sea muy difícil

Code: Select all  Expand view

Static nPorHeight := 1    // Estas son para distintas resoluciones quizás
Static nPorWidth  := 1
Function Main()

    DlgClient()

Return nil


Function DlgClient( )

   local oDlg
   local aCtl[ 25 ]
   local oFont
   local oFontBold
   local lRet        := .F.
   local nFil        := 10
   local nClrT       := CLR_BLUE
   local nClrTG      := CLR_BLUE
   local nClrB       := CLR_HGRAY //WHITE
   local oChk
   local cId         := Space( 9 )
   local cNombre     := Space( 20 )
   local cApells     := Space( 20 )
   local dDateI      := Date() //Ctod( "9999/99/99" )
   local nF1         := 91 * nPorHeight
   local nC1         := 300
   local nF2         := 480 * nPorHeight
   local nC2         := 720
   local aRet        := {}
   local nOld        := Select()
   local n           := 0
   local nInc        := 14 * nPorHeight
   
      cId       := PadR( aDats[ 1 ], 9 )
      cNombre   := PadR( aDats[ 2 ], 15 )
      cApells   := PadR( aDats[ 3 ], 30 )
 
   
   DEFINE FONT oFont NAME "Calibri" SIZE 0, -14 * nPorHeight
   DEFINE FONT oFontBold NAME "Calibri" SIZE 0, -18 * nPorHeight BOLD

   DEFINE DIALOG oDlg FROM nF1, nC1 TO nF2, nC2 PIXEL COLORS nClrT, nClrB ;
          TITLE "Add/Edit Client" // FONT oFontBold //;
   
   oDlg:lHelpIcon := .F.
   oDlg:nOpacity  := 240    // 0 .. 255      //oDlg:nSeeThroClr := <nColor>

   @ nFil,  5 SAY aCtl[ 1 ] PROMPT "Codigo:" OF oDlg ;
            FONT oFont UPDATE ;
            COLORS nClrTG, nClrB SIZE 70 * nPorWidth, 11 * nPorHeight PIXEL

   @ nFil, 45 GET aCtl[ 2 ] VAR cId OF oDlg ;
            FONT oFont UPDATE PICTURE "@!" ;
            COLORS nClrT, nClrB SIZE 56 * nPorWidth, 11 * nPorHeight PIXEL

   nFil  += nInc
   @ nFil,  5 SAY aCtl[ 5 ] PROMPT "Nombre:" OF oDlg ;
            FONT oFont UPDATE ;
            COLORS nClrTG, nClrB SIZE 70 * nPorWidth, 11 * nPorHeight PIXEL

   @ nFil, 45 GET aCtl[ 6 ] VAR cNombre OF oDlg ;
            FONT oFont UPDATE PICTURE "@K" ;
            COLORS nClrT, nClrB SIZE 100 * nPorWidth, 11 * nPorHeight PIXEL
   
   nFil += nInc
   @ nFil,  5 SAY aCtl[ 11 ] PROMPT "Apellidos:" OF oDlg ;
            FONT oFont UPDATE ;
            COLORS nClrTG, nClrB SIZE 70 * nPorWidth, 11 * nPorHeight PIXEL

   @ nFil, 45 GET aCtl[ 12 ] VAR cApells OF oDlg ;
            FONT oFont UPDATE PICTURE "@K" ;
            COLORS nClrT, nClrB SIZE 156 * nPorWidth, 11 * nPorHeight PIXEL
           

   nFil  += nInc
   @ nFil, 83 BUTTON aCtl[ 23 ] PROMPT "&Aceptar" OF oDlg ;     //164
            FONT oFont SIZE 53 * nPorWidth, 14 * nPorHeight PIXEL ACTION ( lRet := .T., oDlg:End() )
   
   @ nFil, 145 BUTTON aCtl[ 24 ] PROMPT "&Cancelar" OF oDlg ;
            FONT oFont SIZE 53 * nPorWidth, 14 * nPorHeight PIXEL ACTION oDlg:End()

   ACTIVATE DIALOG oDlg VALID ( .T. )  //NOWAIT

   oFont:End()
   oFontBold:End()

Return nil

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


 



Muchas gracias Cristobal
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1213
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 12 guests