Hola foro como estan
Vuelvo a insistir con la creacion de dialogos y objetos sin el uso de recursos. Quien ha logrado conseguir la forma mas rapida de colocar objetos en el dialogo en forma efectiva en cuanto a posicion y/o ubicacion : Framnes, Say, get, Button, combobox, etc
Atento a sus comentarios
Mejor forma de crear objetos desde codigo - Experiencias
Re: Mejor forma de crear objetos desde codigo - Experiencias
Compuin:
Temo que no hay forma más rápida que usar un editor de recursos, por código es ir
a prueba y error, tu experiencia te ira llevando a determinar las coordenadas más
fácilmente.
Por qué te resistes a usar un editor de recursos?.
Saludos
Temo que no hay forma más rápida que usar un editor de recursos, por código es ir
a prueba y error, tu experiencia te ira llevando a determinar las coordenadas más
fácilmente.
Por qué te resistes a usar un editor de recursos?.
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Re: Mejor forma de crear objetos desde codigo - Experiencias
Es una buena pregunta...
A mi me gusta mucho utilizar diálogos desde código, porque vengo de la época del Clipper.
Mi conclusión fue:
Escribir los Says de 15 en 15 pixels, comenzando desde 7
Escribir los Gets de 15 en 15 pixels, comenzando desde 5
Los says ponerlos alineados a la derecha en 60 pixels comenzando en la fila 5
Los gets ponerlos a partir de la fila 70
Utilizar font TAHOMA SIZE 0,-11
Crear una funcion para que me de las coordenadas donde poner los botones Grabar y Cancelar (con un recuadro)
Claro que siempre cuando el formulario no es un estandar de renglon bajo renglon, hay que tocarlo...
Es cuestion de gustos y comodidades.
A mi me gusta mucho utilizar diálogos desde código, porque vengo de la época del Clipper.
Mi conclusión fue:
Escribir los Says de 15 en 15 pixels, comenzando desde 7
Escribir los Gets de 15 en 15 pixels, comenzando desde 5
Los says ponerlos alineados a la derecha en 60 pixels comenzando en la fila 5
Los gets ponerlos a partir de la fila 70
Utilizar font TAHOMA SIZE 0,-11
Crear una funcion para que me de las coordenadas donde poner los botones Grabar y Cancelar (con un recuadro)
Claro que siempre cuando el formulario no es un estandar de renglon bajo renglon, hay que tocarlo...
Code: Select all
DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-11.5
DEFINE DIALOG oForm TITLE IF(lAlta,"Alta","Modificacion") + " de Legajos" FROM 05,10 TO 20,90 OF oWnd1 FONT oFont
acor := AcepCanc(oForm) // Me llena un arreglo con las coordenadas y me hace un box que los encierra.
@ 07, 05 SAY "D.N.I.:" OF oForm PIXEL SIZE 60,12 RIGHT
@ 22, 05 SAY "Nombre:" OF oForm PIXEL SIZE 60,12 RIGHT
@ 37, 05 SAY "Fecha Ingr.:" OF oForm PIXEL SIZE 60,12 RIGHT
@ 52, 05 SAY "Fecha Egr.:" OF oForm PIXEL SIZE 60,12 RIGHT
@ 67, 05 SAY "Caja:" OF oForm PIXEL SIZE 60,12 RIGHT
@ 82, 05 SAY "Jubilado?:" OF oForm PIXEL SIZE 60,12 RIGHT
@ 05, 70 GET oGet[1] VAR base:dni PICTURE "99999999" OF oForm PIXEL RIGHT
@ 20, 70 GET oGet[2] VAR base:nombre OF oForm PIXEL VALID(base:nombre <> SPACE(30))
@ 35, 70 GET oGet[3] VAR base:fecing OF oForm PIXEL
@ 50, 70 GET oGet[4] VAR base:fecegr OF oForm PIXEL
@ 65, 70 GET oGet[5] VAR base:caja OF oForm PIXEL
@ 80, 70 GET oGet[6] VAR base:jubila OF oForm PIXEL PICTURE "@!" SIZE 15,12 VALID(base:jubila$"SN")
@ acor[1],acor[2] BUTTON oBot[1] PROMPT "&Grabar" OF oForm SIZE 30,10 ;
ACTION ((lRta := .t.), oForm:End() ) PIXEL
@ acor[3],acor[4] BUTTON oBot[2] PROMPT "&Cancelar" OF oForm SIZE 30,10 ;
ACTION ((lRta := .f.), oForm:End() ) PIXEL CANCEL
ACTIVATE DIALOG oForm CENTER
Re: Mejor forma de crear objetos desde codigo - Experiencias
Excelente, gracias por el aportecmsoft wrote:Es una buena pregunta...
A mi me gusta mucho utilizar diálogos desde código, porque vengo de la época del Clipper.
Mi conclusión fue:
Escribir los Says de 15 en 15 pixels, comenzando desde 7
Escribir los Gets de 15 en 15 pixels, comenzando desde 5
Los says ponerlos alineados a la derecha en 60 pixels comenzando en la fila 5
Los gets ponerlos a partir de la fila 70
Utilizar font TAHOMA SIZE 0,-11
Crear una funcion para que me de las coordenadas donde poner los botones Grabar y Cancelar (con un recuadro)
Claro que siempre cuando el formulario no es un estandar de renglon bajo renglon, hay que tocarlo...Es cuestion de gustos y comodidades.Code: Select all
DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-11.5 DEFINE DIALOG oForm TITLE IF(lAlta,"Alta","Modificacion") + " de Legajos" FROM 05,10 TO 20,90 OF oWnd1 FONT oFont acor := AcepCanc(oForm) // Me llena un arreglo con las coordenadas y me hace un box que los encierra. @ 07, 05 SAY "D.N.I.:" OF oForm PIXEL SIZE 60,12 RIGHT @ 22, 05 SAY "Nombre:" OF oForm PIXEL SIZE 60,12 RIGHT @ 37, 05 SAY "Fecha Ingr.:" OF oForm PIXEL SIZE 60,12 RIGHT @ 52, 05 SAY "Fecha Egr.:" OF oForm PIXEL SIZE 60,12 RIGHT @ 67, 05 SAY "Caja:" OF oForm PIXEL SIZE 60,12 RIGHT @ 82, 05 SAY "Jubilado?:" OF oForm PIXEL SIZE 60,12 RIGHT @ 05, 70 GET oGet[1] VAR base:dni PICTURE "99999999" OF oForm PIXEL RIGHT @ 20, 70 GET oGet[2] VAR base:nombre OF oForm PIXEL VALID(base:nombre <> SPACE(30)) @ 35, 70 GET oGet[3] VAR base:fecing OF oForm PIXEL @ 50, 70 GET oGet[4] VAR base:fecegr OF oForm PIXEL @ 65, 70 GET oGet[5] VAR base:caja OF oForm PIXEL @ 80, 70 GET oGet[6] VAR base:jubila OF oForm PIXEL PICTURE "@!" SIZE 15,12 VALID(base:jubila$"SN") @ acor[1],acor[2] BUTTON oBot[1] PROMPT "&Grabar" OF oForm SIZE 30,10 ; ACTION ((lRta := .t.), oForm:End() ) PIXEL @ acor[3],acor[4] BUTTON oBot[2] PROMPT "&Cancelar" OF oForm SIZE 30,10 ; ACTION ((lRta := .f.), oForm:End() ) PIXEL CANCEL ACTIVATE DIALOG oForm CENTER
Tendras la funcion para las coordenadas de los botones ?
Re: Mejor forma de crear objetos desde codigo - Experiencias
Si, aca te la dejo:
Code: Select all
FUNCTION AcepCanc(oDlg)
LOCAL acor, arr := ARRAY(4), oGru
acor := GetDialogBaseUnits()
oDlg:lHelpIcon := .f.
arr[1] := oDlg:nHeight/ acor[2] - 15
arr[2] := INT(oDlg:nWidth/acor[1]/2/2 -20)
arr[3] := oDlg:nHeight/ acor[2] - 15
arr[4] := INT(oDlg:nWidth/acor[1]/2/2*3 -20)
@ oDlg:nHeight/ acor[2] - 22,01 GROUP oGru TO oDlg:nHeight/acor[2] -1,oDlg:nWidth/acor[1]-1 PIXEL
RETURN arr
Re: Mejor forma de crear objetos desde codigo - Experiencias
cmsoft wrote:Si, aca te la dejo:Code: Select all
FUNCTION AcepCanc(oDlg) LOCAL acor, arr := ARRAY(4), oGru acor := GetDialogBaseUnits() oDlg:lHelpIcon := .f. arr[1] := oDlg:nHeight/ acor[2] - 15 arr[2] := INT(oDlg:nWidth/acor[1]/2/2 -20) arr[3] := oDlg:nHeight/ acor[2] - 15 arr[4] := INT(oDlg:nWidth/acor[1]/2/2*3 -20) @ oDlg:nHeight/ acor[2] - 22,01 GROUP oGru TO oDlg:nHeight/acor[2] -1,oDlg:nWidth/acor[1]-1 PIXEL RETURN arr
Muchas gracias
Voy a probar a ver como me sale