FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Mejor forma de crear objetos desde codigo - Experiencias
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Mejor forma de crear objetos desde codigo - Experiencias
Posted: Thu Aug 15, 2019 05: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 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Mejor forma de crear objetos desde codigo - Experiencias
Posted: Thu Aug 15, 2019 05: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
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: Mejor forma de crear objetos desde codigo - Experiencias
Posted: 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 (fw): Select all Collapse
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.
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Mejor forma de crear objetos desde codigo - Experiencias
Posted: 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 (fw): Select all Collapse
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 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: Mejor forma de crear objetos desde codigo - Experiencias
Posted: Tue Aug 20, 2019 12:19 PM
Si, aca te la dejo:
Code (fw): Select all Collapse
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
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Mejor forma de crear objetos desde codigo - Experiencias
Posted: Tue Aug 20, 2019 12:20 PM
cmsoft wrote:Si, aca te la dejo:
Code (fw): Select all Collapse
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 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Continue the discussion