Jump to content
Fivewin Brasil

Duvida em Criar Variaveis


Theotokos

Recommended Posts

Pode parecer besta, mas me surgiu essa questão....

o que muda em relação ao funcionamento do sistema no cliente, com relação a velocidade, memória, algo assim... se criarmos a variaves da seguinte formas :

* Variaveis de todos os botoes de um certo dialog

     aBtn_Dlg1[5]    ==> ou seja são cinco botoes cada um utilizando no fonte aBtn[1], aBtn[2], aBtn[x]

ou

    aBtn_Dlg_1, aBtn_Dlg_2, aBtn_Dlg_3, aBtn_Dlg_4, aBtn_Dlg_4

Link to comment
Share on other sites

Nada, se voce fizer assim:


   LOCAL oBtns := ARRAY(12), IDBotao, oFont
	
   DEFINE FONT oFont   NAME "Ms Sans Serif" SIZE 0, -14 BOLD
	   //->Definicao dos Botoes do Programa
   REDEFINE BUTTON oBtns[01] ID 1000 OF oDlg                                 ;
            ACTION ( INICIACAD( oLbx, DeOndeVem := [INCLUSAO] ) )            ;
            WHEN( .NOT. lEsModi )
	   oBtns[01]:cToolTip := OemToAnsi( "Incluir Novo Registro - Alt+N" )
	   REDEFINE BUTTON oBtns[02] ID 2000 OF oDlg                                 ;
            ACTION ( CARREGACAD( oLbx, DeOndeVem := [ALTERACAO] ),           ;
                                 lEsModi := .T. )                            ; 
            WHEN( .NOT. lEsModi )
	   oBtns[02]:cToolTip := OemToAnsi( "Altera‡Æo de Dados - Alt+A" )
	   REDEFINE BUTTON oBtns[03] ID 3000 OF oDlg                                 ;
            ACTION ( IF( MsgYesNo( "Deseja Apagar Este Registro? "         + ;
                         CRLF+CRLF, "Confirma? " ),                          ;
                     IF( CAD->(Rlock()), CAD->( DbDelete() ),                ;
                         CAD->(DbDelete())), .T. ), DbSkip(+1),              ; 
                         CARREGACAD( oLbx ), oLbx:Refresh() )                ;
            WHEN( .NOT. lEsAlta .AND. .NOT. lEsModi )
	   oBtns[03]:cToolTip := OemToAnsi( "ExclusÆo de Registro - Alt+E" )
	   REDEFINE BUTTON oBtns[04] ID 4000 OF oDlg                                 ;
            ACTION ( BUSCACAD(cTitle, cText, uVar, cBmpFile, cResName, oLbx)); 
            WHEN( .NOT. lEsAlta .AND. .NOT. lEsModi )
	   oBtns[04]:cToolTip := OemToAnsi( "Pesquisar o Dado - Alt+P" )
	   REDEFINE BUTTON oBtns[05] ID 5000 OF oDlg                                 ;
            ACTION ( DbGoTop(), CARREGACAD( oLbx ) )                             ; 
            WHEN( .NOT. lEsAlta .AND. .NOT. lEsModi )
	   oBtns[05]:cToolTip := OemToAnsi( "Inicio do Arquivo - Alt+I" )
	   REDEFINE BUTTON oBtns[06] ID 6000 OF oDlg                                 ;
            ACTION ( IF( !BOF(), DbSkip(-1), DbGoTop() ), CARREGACAD( oLbx ) );
            WHEN( .NOT. lEsAlta .AND. .NOT. lEsModi )
	   oBtns[06]:cToolTip := OemToAnsi( "Registro Anterior do Arquivo - Alt+T" )
	   REDEFINE BUTTON oBtns[07] ID 7000 OF oDlg                                 ;
            ACTION ( IF( !EOF(), DbSkip(+1), Dbskip(-1) ), CARREGACAD( oLbx ) );
            WHEN( .NOT. lEsAlta .AND. .NOT. lEsModi )
	   oBtns[07]:cToolTip := OemToAnsi( "Registro Seguinte do Arquivo - Alt+X" )
	   REDEFINE BUTTON oBtns[08] ID 8000 OF oDlg                                 ;
            ACTION ( DbGoBottom(), CARREGACAD( oLbx ) )                      ;
            WHEN( .NOT. lEsAlta .AND. .NOT. lEsModi )
	   oBtns[08]:cToolTip := OemToAnsi( "Final do Arquivo - Alt+F" )
	   REDEFINE BUTTON oBtns[09] ID 9000 OF oDlg                                 ;
            ACTION ( IMPRIMECAD( oLbx ) )                                    ;
            WHEN( .NOT. lEsAlta .AND. .NOT. lEsModi )
	   oBtns[09]:cToolTip := OemToAnsi( "Listagem do Arquivo - Imprimir - Alt+L" )
	   REDEFINE BUTTON oBtns[10] ID 10000 OF oDlg                                ;
            ACTION ( lSalvar := .T., IF( .NOT. EMPTY( aGets[1] ),            ;
                     SALVARCAD( oLbx ), CIERTO( "Registro em Branco " ) ) )  ;
            WHEN( lEsAlta .OR. lEsModi )
	   oBtns[10]:cToolTip := OemToAnsi( "Gravar Dados no Arquivo - Alt+G" )
	   REDEFINE BUTTON oBtns[11] ID 11000 OF oDlg                                ;
            ACTION ( INICIACAD( oLbx ), CARREGACAD( oLbx ), lSalvar := .F.,  ;
                                                     lEsAlta := .F.,         ;
                                                     lEsModi := .F. ) CANCEL
	   oBtns[11]:cToolTip := OemToAnsi( "Cancelar Opera‡Æo - Alt+C" )
	   REDEFINE BUTTON oBtns[12] ID 12000 OF oDlg                                ;
            ACTION ( oDlg:End() ) CANCEL UPDATE
	   oBtns[12]:cToolTip := OemToAnsi( "Saida - Exit - Cancelar" )
	   //-> Liga as Fontes dos Botoes - Escolha Modelo
   //-> SET FONT OF oBtns[01] TO oFont 
   //-> SET FONT OF oBtns[02] TO oFont 
   //-> SET FONT OF oBtns[03] TO oFont 
   //-> SET FONT OF oBtns[04] TO oFont 
   //-> SET FONT OF oBtns[05] TO oFont 
   //-> SET FONT OF oBtns[06] TO oFont 
   //-> SET FONT OF oBtns[07] TO oFont 
   //-> SET FONT OF oBtns[08] TO oFont 
   //-> SET FONT OF oBtns[09] TO oFont 
   //-> SET FONT OF oBtns[10] TO oFont 
   //-> SET FONT OF oBtns[11] TO oFont 
   //-> SET FONT OF oBtns[12] TO oFont
	   //-> Outra Forma Mais Rapida de Fazer
   FOR IDBotao = 1 TO 12 
      SET FONT OF oBtns[IDBotao] TO oFont 
   NEXT
	
   oFont:End()

Link to comment
Share on other sites

Desde o velho Clipper (RIP)  como constava no manual,  o uso de variáveis definidas como matrizes consome menos memória.
Então eu sempre que possível uso matrizes para todas as variáveis.
Também facilita bastante a programação.

 

IF oQry:nRecCount >0
    cmatriz[10] := oQry:cheques
    cmatriz[11] := oQry:autcartao1
    cmatriz[12] := oQry:valorcartao1
    cmatriz[13] := oQry:venc_cartao1
    cmatriz[14] := oQry:autcartao2
    cmatriz[15] := oQry:valorcartao2
    cmatriz[16] := oQry:venc_cartao2
    cmatriz[17] := oQry:autdebito
    cmatriz[18] := oQry:valordebito
    cmatriz[19] := oQry:dinheiro
    cmatriz[20] := oQry:data
    
    for xx=10 to 20
        ocmatriz[xx]:refresh()
    
    next

END

[]´s

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...