Página 2 de 3

mensagens subindo e descendo

Enviado: 12 Jul 2014 09:11
por asimoes
Deu trabalho pra fazer este exemplo
eu peguei o exemplo da minigui, não consegui compilar com mingw somente com msvc.
a biblioteca é hwgui.

Segue os fontes do exemplo.

mensagens subindo e descendo

Enviado: 12 Jul 2014 10:56
por Abel
realmente, nao deu, ele baixa mas da arquivo corrimpido quando vou abrir.

Abel

mensagens subindo e descendo

Enviado: 12 Jul 2014 11:27
por asimoes
Abel,

Fiz upload do arquivo para a seção de download, tem que aguardar o toledo aprovar o envio.

mensagens subindo e descendo

Enviado: 12 Jul 2014 12:30
por Toledo
Abel escreveu:realmente, nao deu, ele baixa mas da arquivo corrimpido quando vou abrir.
Abel, tente baixar novamente o arquivo, fiz um teste e agora está funcionando, sem erros.
asimoes escreveu:Fiz upload do arquivo para a seção de download, tem que aguardar o toledo aprovar o envio.
Alexandre, o arquivo em anexo neste tópico agora já está baixando corretamente.

Abraços,

mensagens subindo e descendo

Enviado: 12 Jul 2014 14:30
por Abel
asimoes, consegui baixar, era isso mesmo que eu queria, este efeito mesmo. Pelo que percebi o quadro que movimenta é um BMP, entao eu teria que criar os BMP´s e exibir quando desejado, é isso ?

nem sei se vou conseguir compilar estas rotinas com meu sistema, minha programacao é modo console ainda e utilizo o harbour.

Abel

mensagens subindo e descendo

Enviado: 12 Jul 2014 14:40
por asimoes
Abel,

Isso mesmo um bmp.

Este exemplo foi compilado com o harbour + hwgui + msvc

Quanto a hwgui é opcional.

mensagens subindo e descendo

Enviado: 12 Jul 2014 15:59
por Nascimento
amigo assimoes no caso este exemplo funcionaria em modo console so com harbour+gtwvt?

mensagens subindo e descendo

Enviado: 12 Jul 2014 16:11
por asimoes
Josivan,
Não testei, mas deve funcionar sim.

mensagens subindo e descendo

Enviado: 12 Jul 2014 21:38
por JoséQuintas
Basicamente é usar savescreen/restorescreen.
Tá querendo fazer estilo o messenger.

Seria assim:

- salva a tela

e em um loop:
- desenha sua janela começando na linha inferior
- vai reduzindo a linha, restaurando a tela e repetindo o loop

Tentando postar diretamente aqui sem teste, algo mais ou menos assim:

Código: Selecionar todos

SAVE SCREEN TO wTela
nRow := 24
DO WHILE nRow > 5
    DesenhaAviso( nRow )
    nRow -= 1 // ou nRow := nRow - 1
    Inkey(0.1)
    RESTORE SCREEN FROM wTela
ENDDO
RETURN

FUNCTION DesenhaAviso( nRow )
   @ nRow, 40 CLEAR TO nRow + 5, 79
   @ nRow, 40 TO nRow + 5, 79
   @ nRow + 2, 45 SAY "AVISO"
   @ nRow + 3, 45 SAY "Tem este aviso"
   RETURN NIL

mensagens subindo e descendo

Enviado: 12 Jul 2014 23:31
por Nascimento
Usando o Exemplo do Amigo josequincas
Adicionei Para descer Nao testei pois usei a logica que ele usou
so fazendo o efeito contrario

Código: Selecionar todos

SAVE SCREEN TO wTela
nRow := 24
DO WHILE nRow >=5
    DesenhaAviso( nRow )
    nRow -= 1 // ou nRow := nRow - 1
	 Inkey(0.1)
if nrow>=5    
 RESTORE SCREEN FROM wTela
endif
ENDDO
*RETURN
inkey(2)
@ nRow, 40 CLEAR TO nRow + 5, 79
nRow :=5
DO WHILE nRow<24
    DesenhaAviso( nRow )
     nRow+=1  // ou nRow := nRow + 1
	 Inkey(0.1)
       
 RESTORE SCREEN FROM wTela
ENDDO
RETURN
FUNCTION DesenhaAviso( nRow )
   @ nRow, 40 CLEAR TO nRow + 5, 79
   @ nRow, 40 TO nRow + 5, 79
   @ nRow + 2, 45 SAY "AVISO"
   @ nRow + 3, 45 SAY "Tem este aviso"
RETURN NIL

mensagens subindo e descendo

Enviado: 13 Jul 2014 10:09
por JoséQuintas
Testei. O clear entre as rotinas não precisa, já que ela sempre faz o restore screen.
Ajustado, já pra qualquer tamanho de tela, ficou assim:

Código: Selecionar todos

PROCEDURE Main
   SAVE SCREEN TO wTela
   nRow := MaxRow()
   DO WHILE nRow >= 5
      DesenhaAviso( nRow )
      nRow -= 1 // ou nRow := nRow - 1
      Inkey( iif( nRow < 5, 2, 0.1 ) )
      RESTORE SCREEN FROM wTela
   ENDDO
   nRow := 5
   DO WHILE nRow < MaxRow()
      DesenhaAviso( nRow )
      nRow += 1 // ou nRow := nRow + 1
      Inkey(0.1)
      RESTORE SCREEN FROM wTela
   ENDDO
   RETURN

FUNCTION DesenhaAviso( nRow )
   Scroll( nRow, 40, nRow + 5, 79, 0 )
   @ nRow, 40 TO nRow + 5, 79
   @ nRow + 2, 45 SAY "AVISO"
   @ nRow + 3, 45 SAY "Tem este aviso"
   RETURN NIL

mensagens subindo e descendo

Enviado: 15 Jul 2014 09:59
por JoséQuintas
Esqueci de dizer:
Baixei o exemplo que tem EXE, e o visual é muito bonito.
Mas no final dá GPF, então não dá pra usar.
Não testei nada de compilar aqui, apenas usei o EXE que estava junto.
Windows 7 Ultimate 64 bits.

mensagens subindo e descendo

Enviado: 15 Jul 2014 11:22
por asimoes
Tem incluir a função ExitProcess() antes de sair.

mensagens subindo e descendo

Enviado: 31 Jul 2014 08:45
por Abel
Ola Jose M.C.Quintas,
a minha ideia inicial era fazer o aviso surgir da tela e ir "entrando na mesma". se entendi bem seu exemplo exibe a mensagem em uma area da tela e depois vai movendo o "quadro", é isso ?

Abracos,
ABEL

mensagens subindo e descendo

Enviado: 31 Jul 2014 13:02
por JoséQuintas
Não começa com o quadro inteiro, mas com uma única linha.
Vai subindo, aguarda, e depois vai descendo até sumir.
Por ser console, depende da tela estar aberta, igual seria no clipper.
Mas é só compilar e vai ver funcionando.
Talvez seja bom acrescentar SetMode(25,80), porque se sua janela tiver 300 linhas vai ficar esquisito.