Mejor forma de crear objetos desde codigo - Experiencias

Mejor forma de crear objetos desde codigo - Experiencias

Postby Compuin » Thu Aug 15, 2019 5:18 pm

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
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: Mejor forma de crear objetos desde codigo - Experiencias

Postby Armando » Thu Aug 15, 2019 5:57 pm

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
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
User avatar
Armando
 
Posts: 3061
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Mejor forma de crear objetos desde codigo - Experiencias

Postby cmsoft » Tue Aug 20, 2019 12:05 pm

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...
Code: Select all  Expand view

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

Es cuestion de gustos y comodidades.
User avatar
cmsoft
 
Posts: 1189
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Mejor forma de crear objetos desde codigo - Experiencias

Postby Compuin » Tue Aug 20, 2019 12:11 pm

cmsoft 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...
Code: Select all  Expand view

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

Es cuestion de gustos y comodidades.


Excelente, gracias por el aporte

Tendras la funcion para las coordenadas de los botones ?
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: Mejor forma de crear objetos desde codigo - Experiencias

Postby cmsoft » Tue Aug 20, 2019 12:19 pm

Si, aca te la dejo:
Code: Select all  Expand view

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
User avatar
cmsoft
 
Posts: 1189
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Mejor forma de crear objetos desde codigo - Experiencias

Postby Compuin » Tue Aug 20, 2019 12:20 pm

cmsoft wrote:Si, aca te la dejo:
Code: Select all  Expand view

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
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


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 66 guests