Jump to content
Fivewin Brasil

TGif


oliveiros

Recommended Posts

Olá Pessoal,

Estou precisando usar a classe TGif, porém tenho o seguinte problema:

Ao abrir um dialog com o gif e executar bStart o gif para. Abaixo o código:

Function Executar_Acao( bAcao )

..

WITH OBJECT oDialog

        :bStart := { | | lRetorno := Eval( bAcao, oDialog ) }

END

..

ACTIVATE DIALOG oDialog CENTERED NOWAIT CENTERED ;

                 ON INIT TGif( oDialog, cLocal + "meter.gif", 10,10 )

 

Alguém sabe o que pode estar acontecendo?

 

Att.,

 

Oliveiros

Link to comment
Share on other sites

// Animated GIFs support for FWH
	#include "FiveWin.ch"
	function Main()
	   local oWnd
   
   DEFINE WINDOW oWnd TITLE "Animated GIFs"
	   TGif():New( oWnd, "..\gifs\halo.gif", 10, 10 )
   
   ACTIVATE WINDOW oWnd ;
      ON INIT BuildDialog()
	return nil
	function BuildDialog()
	   local oDlg
   
   DEFINE DIALOG oDlg SIZE 400, 300 TITLE "Non modal dialog"
	   /*
   ACTIVATE DIALOG oDlg CENTERED NOWAIT ;
      ON INIT TGif():New( oDlg, "..\gifs\halo.gif", 10, 10 )
      */
	   ACTIVATE DIALOG oDlg CENTERED        ;
      ON INIT TGif():New( oDlg, "..\gifs\halo.gif", 10, 10 )
   
return nil


 

Link to comment
Share on other sites

  • 4 weeks later...

Olá Kapiaba,

Não é indexação. Gostaria de usar o gif para qualquer ação que o usuário tenha que aguardar. O que já verifiquei foi o seguinte:

A ação necessita poder dar um refresh, se puder funciona bem:

No exemplo que dei acima, se a cada inserção que realizar no banco de dados der um refresh() ele vai funcionar. Porém se eu der um ReQuery() ele não vai funcionar pois

a função ReQuery() não tem um refresh() intermediário.

Att.,

Oliveiros Junior

Link to comment
Share on other sites

Amigos... 

Me perdoem, pois vou dar meu Pitaco.

Já fazem alguns anos que decidi retirar do meu Sistema esse tipo de Função/Rotinas por não acrescentar nada além de estética e perfumaria.

Tive sérios problemas em alguns clientes, principalmente onde o equipamento era mais antigo. O maior problema estava relacionado com o Consumo de Recursos e por consequência Lentidão no Sistema.

Agora cada um tem a sua sistemática de trabalho e não faço críticas, apenas expresso a minha opinião visando colaborar com os amigos.

Abraços.

Link to comment
Share on other sites

Penso a mesma coisa que o Valdir, não vejo nenhuma necessidade de GIF em uma aplicação comercial. Não acrescenta nada. Só minha opinião. Não estou criticando ninguém. Se for na janela principal, para dar um efeito especial, blz, mas em diálogos, acho desnecessário, além de irritante.  Abs.

Link to comment
Share on other sites

Olá,

Desculpe discordar: 1) O gif é um recurso que consome pouca memória se funcionar corretamente; 2) é importante avisar ao cliente que o sistema está processando alguma demanda, pois ele pode achar que o sistema travou e não aguardar o processamento de uma ação importante. Você por exemplo: aguardando retorno de NF da Secretária de Fazenda, "querys" com alguns "joiners", principalmente com banco de dados remoto.

Att.,

Oliveiros Junior

 

 

 

Link to comment
Share on other sites

Olá aferra,

Em meus aplicativos atuais já uso um meter. Peguei o gif disponível no fivewin o circular e acrescentei o percentual no centro para substituir o meter, funciona bem para ações em que de tempo em tempo consigo dar um refresh, o problema são ações complexas que não consigo dar um refresh intermediário. Pensei inicialmente que o tgif funcionaria independente de qualquer processo, e só pararia quando desse um comando end().

Mais uma vez obrigado pela resposta.

Att.,

Oliveiros Junior

Link to comment
Share on other sites

Também somente como pitaco.

Também acho que muito recurso visual acaba não sendo legal em uma ferramenta comercial mais acho que temos que ter disponível a opção de usar ou não a ferramenta.

Tenho problemas com a apresentação de gifs a anos e tive q. fazer um recurso técnico == gatilho para em alguns clientes fazer com que não apresente este recurso e isso é complicado.

 

 

 

Link to comment
Share on other sites

Teste esta função. Use do mesmo modo que usa a MsgRun(...)

function MyMsgRun( cCaption, cTitle, bAction )

     LOCAL oRunDlg, nWidth, uReturn, oRunBr, nLenCp
     DEFINE BRUSH oRunBr COLOR GetSysColor(5)
     DECLARE oGif

     DEFAULT cCaption := "Please, wait...",;
             bAction  := { || WaitSeconds( 1 ) }

     IF ! EMPTY(cCaption)
        IF cTitle == NIL
           nLenCp := (Len( cCaption )*0.8)+13
        ELSE
           nLenCp := (Max( Len( cCaption ), Len( cTitle ) )*0.8)+13
        ENDIF   
     ELSE
        nLenCp := 13
     ENDIF
     IF cTitle == NIL
          DEFINE DIALOG oRunDlg ;
               FROM 0,0 TO 7.0, nLenCp ;
               STYLE nOr( DS_MODALFRAME, WS_POPUP ) ;
               TRANSPARENT BRUSH oRunBr
     ELSE
          DEFINE DIALOG oRunDlg ;
               FROM 0,0 TO 8.4, nLenCp ;
               TITLE cTitle ;
               STYLE DS_MODALFRAME ;
               TRANSPARENT BRUSH oRunBr
     ENDIF

     oGif := NIL
     oRunDlg:bStart := {|| (oGif := TGif():New( oRunDlg, ".\bitmaps\loading.gif", 2, 2 ),;
                            SysRefresh(), uReturn := Eval( bAction, oRunDlg ), oRunDlg:End())}

     nWidth := oRunDlg:nRight - oRunDlg:nLeft
     oSay := NIL
     IF ! EMPTY(cCaption)
        @20, 55 SAY oSay PROMPT cCaption SIZE nWidth - 13, 16 PIXEL OF oRunDlg
     ENDIF
     ACTIVATE DIALOG oRunDlg CENTER ON PAINT IIF(oSay<>NIL,oSay:Refresh(),) // ;
              // VALID (!GetKeyState( VK_ESCAPE ) .AND. !GetKeyState( VK_MENU )) // Não usar isso. Dá erro ao fechar a tela de cadastro de produtos com Alt F4.
     
return uReturn

 

Link to comment
Share on other sites

  • 2 years later...

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