Compartir con vosotros un trozo de código

Post Reply
User avatar
informaticaeloy
Posts: 118
Joined: Fri Dec 20, 2013 10:39 am
Location: Zaragoza, España
Contact:

Compartir con vosotros un trozo de código

Post by informaticaeloy »

Hola. Tengo una parte del código de mi programa principal de gestión. Querría compartirlo con vosotros por si a alguien le sirve de referencia para algo y también por si os apetece echarle un ojo y hacer cualquier comentario para mejorar mi forma de trabajar. No se si hay algún sitio para subirlo. Están los PRG, las DBF, los BMP, ... y el EXE.
Antonio, te lo mando y lo cuelgas en algún sitio? o lo puedo poner en el foro?

Cualquier crítica o comentario será bienvenido.
Un saludo.
Windows 10 + FWH 20.08 + BCC 7.4 + Harbour 3.2.0 + PSPad 5.0.3
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Compartir con vosotros un trozo de código

Post by karinha »

Puedes usar:

http://www.4shared.com

un excelente anfitrión para sus archivos.

Salu2
João Santos - São Paulo - Brasil
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Compartir con vosotros un trozo de código

Post by FranciscoA »

+1
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
User avatar
informaticaeloy
Posts: 118
Joined: Fri Dec 20, 2013 10:39 am
Location: Zaragoza, España
Contact:

Re: Compartir con vosotros un trozo de código

Post by informaticaeloy »

Hola. Como tengo una cuenta lo subo al dropbox

https://www.dropbox.com/s/z7me5lpy6v7k8tv/agenda.rar

Si a alguien le sirve como referencia genial, y si alguien lo revisa y me comenta mejoras en mi forma de programar pues entonces ......
genial:=genial*100

Un saludo
Windows 10 + FWH 20.08 + BCC 7.4 + Harbour 3.2.0 + PSPad 5.0.3
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Compartir con vosotros un trozo de código

Post by FranciscoA »

Gracias.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
User avatar
mastintin
Posts: 1502
Joined: Thu May 27, 2010 2:06 pm

Re: Compartir con vosotros un trozo de código

Post by mastintin »

Muchas Gracias por compartir tu código .
Como nos dices que podemos hacer comentarios ( siempre constructivos :-) ) sobre el código , quiero decirte que veo que en la edicion de la agenda usas los arrays para sostener los objetos get y las variables . Yo tambien los usaba hasta que descubrí los Hash que permiten que mi codigo sea mucho mas "comprensible" cuando se alarga el numero de lineas a realizar ....
Me explico un poco : tu codigo

Code: Select all


    GNRL:={}
 
         OBJ_GNRL=ARRAY(FCOUNT())
         FOR N=1 TO FCOUNT()
             AADD(GNRL,FIELDGET(N))
         NEXT
         DBSETORDER(INDICE)
         GO POS

            DEFINE DIALOG EDIT_GNRL FROM 0, 0 TO 27, 72;
            TITLE  "Gestión de la Agenda";
            font ofontdlg

            @ 15,  15  SAY "Código" PIXEL SIZE 50,10 right
            IF NUEVO
               GNRL[1]=ULT
               @ 15,  70  GET OBJ_GNRL[1] VAR GNRL[1] PIXEL  SIZE 26,10  UPDATE;
                          VALID TRATAR_AGEN(1) COLOR CLR_AZULETE,CLR_AMARILLO
               OBJ_GNRL[1]:bLostFocus={||OBJ_GNRL[1]:SetColor(CLR_AMARILLO,CLR_AZULETE)}
               OBJ_GNRL[1]:bGotFocus={||OBJ_GNRL[1]:SetColor(CLR_AZULETE,CLR_AMARILLO)}

 
mi codigo seria asi :

Code: Select all


    GNRL:= {=>}
    OBJ_GNRL:= {=>}

        FOR N=1 TO FCOUNT()
             GNRL[ fieldname(n) ] := FIELDGET(N)            
         NEXT
         DBSETORDER(INDICE)
         GO POS

            DEFINE DIALOG EDIT_GNRL FROM 0, 0 TO 27, 72;
            TITLE  "Gestión de la Agenda";
            font ofontdlg

            @ 15,  15  SAY "Código" PIXEL SIZE 50,10 right
            IF NUEVO

               GNRL["codigo"]=ULT

               @ 15,  70  GET OBJ_GNRL["codigo"] VAR GNRL["codigo"] PIXEL  SIZE 26,10  UPDATE;
                          VALID TRATAR_AGEN(1) COLOR CLR_AZULETE,CLR_AMARILLO
               OBJ_GNRL["codigo"]:bLostFocus={||OBJ_GNRL["codigo"]:SetColor(CLR_AMARILLO,CLR_AZULETE)}
               OBJ_GNRL["codigo"]:bGotFocus={||OBJ_GNRL["codigo"]:SetColor(CLR_AZULETE,CLR_AMARILLO)}

 
User avatar
Joaquim Ferrer
Posts: 58
Joined: Sat Jan 14, 2012 3:46 pm
Location: Barcelona

Re: Compartir con vosotros un trozo de código

Post by Joaquim Ferrer »

Como apunte, intenta no incluir llamadas a función en la iteracion de bucles, es decir

Code: Select all

for n:=1 to fcount() o for n:=1 to len()
es preferible

Code: Select all

nCount:= fcount(); for n:=1 to nCount
o

Code: Select all

nLen := len(a); for n:=1 to nLen
Tambien puedes simplificar este codigo

Code: Select all

 OBJ_GNRL["codigo"]:bGotFocus={||OBJ_GNRL["codigo"]:SetColor(CLR_AZULETE,CLR_AMARILLO)}
Por este otro

Code: Select all

 OBJ_GNRL["codigo"]:bGotFocus={|this|this:SetColor(CLR_AZULETE,CLR_AMARILLO)}
Fivewinner desde 1.9, programador PHP y Javascript, HTML5 evangelista
Post Reply