Preview only show first 10 pages with watermark. For full document please download

Visual Foxpro - Criando Mensagens Para Os Usuários

Criando mensagens via Visual FoxPro.

   EMBED


Share

Transcript

iMasters - Por uma Internet mais criativa e dinâmica Página 1 Fabiano Costa Quinta-feira, 01 de março de 2007 Criando mensagens para os usuários É sempre assim. Basta a Microsoft fazer a revisão do layout dos seus produtos e todos os clientes começam a pedir nossos sistemas neste mesmo perfil achando que montar o layout de uma aplicação pode ser feito rapidamente. Algumas novas funcionalidades são muito interessantes, como aquele pequeno aviso de novo e-mail do Outlook. Discreto e ao mesmo tempo informativo ele pode ser muito útil em vários momentos do nosso sistema. Para termos um processo semelhante podemos usar uma função presente na API do Windows chamada SetLayeredWindowAttributes que permite alterar a transparência de uma form, dando o efeito aparecer/desaparecer semelhante ao do Outlook. Observe o fonte para criarmos este efeito: alerta=CREATEOBJECT("alerta") alerta.mensagem("O backup foi realizado com sucesso.") DEFINE CLASS alerta AS form Height = 120 Width = 375 ShowWindow = 2 BorderStyle = 0 Caption = "" TitleBar = 0 AlwaysOnTop = .T. BackColor = RGB(14,173,241) Name = "alerta" ADD OBJECT edtmensagem AS editbox WITH ; FontSize = 20, ; Alignment = 2, ; BackStyle = 0, ; BorderStyle = 0, ; Height = 103, ; Left = 2, ; ScrollBars = 0, ; Top = 3, ; Width = 370, ; IntegralHeight = .T., ; Name = "edtmensagem" PROCEDURE visualizar PARAMETERS m.lnAção as Integer LOCAL m.lnInicio as Integer, m.lnFim as Integer, m.lnStep as Integer m.lnInicio=IIF(m.lnAção=1,10,255) m.lnFim=IIF(m.lnAção=1,255,0) m.lnStep=IIF(m.lnAção=1,10,-10) FOR m.loop1=m.lnInicio TO m.lnFim STEP m.lnStep INKEY(.01,"H") _Sol_SetLayeredWindowAttributes(THISFORM.hWnd, 0, m.loop1, 2) ENDFOR ENDPROC PROCEDURE mensagem PARAMETERS m.lcmensagem thisform.edtmensagem.Value=m.lcmensagem thisform.Visible=.t. _Sol_SetLayeredWindowAttributes(THISFORM.hWnd, 0, 10, 2) thisform.visualizar(1) INKEY(2) thisform.visualizar(0) _Sol_SetLayeredWindowAttributes(THISFORM.hWnd, 0, 0, 2) thisform.Visible=.f. ENDPROC PROCEDURE Init zoom window alerta max m.lnHeight=this.Height m.lnWitdh=this.Width zoom window alerta normal this.left=m.lnWitdh-375-10 this.top=m.lnHeight-120+20 DECLARE SetWindowLong In Win32Api AS _Sol_SetWindowLong Integer, Integer, Integer DECLARE SetLayeredWindowAttributes In Win32Api AS _Sol_SetLayeredWindowAttributes Integer, String, Integer, Integer _Sol_SetWindowLong(THISFORM.hWnd, -20, 0x00080000) _Sol_SetLayeredWindowAttributes(THISFORM.hWnd, 0, 0, 2) ENDPROC http://imasters.uol.com.br/artigo/5625/visual_foxpro/criando_mensagens_para_os_usuarios/imprimir/ 9/28/2010 11:45:36 AM iMasters - Por uma Internet mais criativa e dinâmica Página 2 ENDDEFINE Note que o mais importante pode ser encontrado no procedimento visualizar que contém o código necessário para o efeito proposto. A forma com que você desejar programar este processo pode ser das mais variadas, mas uma das melhores é criar um pequeno executável que passe como parâmetro a informação que deseja informar ao usuário, pois assim o trabalho normal do software não será interrompido, caso contrário, pela falta de execução simultânea do VFP, o usuário não poderia utilizar nada até a mensagem ser apagada. Bom divertimento. http://imasters.uol.com.br/artigo/5625/visual_foxpro/criando_mensagens_para_os_usuarios/imprimir/ 9/28/2010 11:45:36 AM