Clipper On Line • Ver Tópico - Mensagem BALÃO

Mensagem BALÃO

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

 

Mensagem BALÃO

Mensagempor Itamar M. Lins Jr. » 12 Nov 2021 18:03

Olá!
Peguei no Harbour user do google. Autor: Maurizio la Cecilia ?

Function MsgBalloon( cMessage, cTitle )

   ShowNotifyInfo( 0, .F. , NIL, NIL, NIL, NIL )
   ShowNotifyInfo( 0, .T. , Nil, Nil, cMessage, cTitle )

   Return Nil

#pragma BEGINDUMP

      #include <windows.h>
      #include <commctrl.h>
      #include <shlobj.h>

      #include "hbapi.h"
      #include "hbvm.h"
      #include "hbstack.h"
      #include "hbapiitm.h"
      #define HDIB HANDLE

      #include "hbapiitm.h"

      static void ShowNotifyInfo(HWND hWnd, BOOL bAdd, HICON hIcon, LPSTR szText, LPSTR szInfo, LPSTR szInfoTitle);

      HB_FUNC ( SHOWNOTIFYINFO )
      {

         HICON hIcon;
         if ( HB_ISNUM( 3 ) )
         {
            hIcon = LoadIcon( ( HINSTANCE ) GetModuleHandle( NULL ), MAKEINTRESOURCE( hb_parni( 3 ) ) );
         }
         else
         {
            hIcon = ( HICON ) LoadImage( ( HINSTANCE ) NULL, hb_parc( 3 ), IMAGE_ICON, 0, 0, LR_LOADFROMFILE );
         }

         ShowNotifyInfo( (HWND) hb_parnl(1), (BOOL) hb_parl(2), hIcon , (LPSTR) hb_parc(4), (LPSTR) hb_parc(5), (LPSTR) hb_parc(6) );

      }

      static void ShowNotifyInfo(HWND hWnd, BOOL bAdd, HICON hIcon, LPSTR szText,
      LPSTR szInfo, LPSTR szInfoTitle)
      {
          NOTIFYICONDATA nid;

          ZeroMemory( &nid, sizeof(nid) );

          nid.cbSize        = sizeof(NOTIFYICONDATA);
          nid.hIcon        = hIcon;
          nid.hWnd        = hWnd;
          nid.uID            = 0;
          nid.uFlags        = NIF_INFO | NIF_TIP | NIF_ICON;
          nid.dwInfoFlags        = NIIF_INFO;

          lstrcpy( nid.szTip, TEXT(szText) );
          lstrcpy( nid.szInfo, TEXT(szInfo) );
          lstrcpy( nid.szInfoTitle, TEXT(szInfoTitle) );

          if(bAdd)
              Shell_NotifyIcon( NIM_ADD, &nid );
          else
              Shell_NotifyIcon( NIM_DELETE, &nid );

          if(hIcon)
              DestroyIcon( hIcon );
      }

   #pragma ENDDUMP


Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6959
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 312 vezes
Mens.Curtidas: 508 vezes

Mensagem BALÃO

Mensagempor JoséQuintas » 16 Nov 2021 07:49

balloon.png


Uia....
Causando mudanças internacionais....

Então... se funções da API Windows existirem no XHarbour também, na hbwin dele, fechou o uso de apenas Harbour/XHarbour.

/*------------------------------------------------------
hbs_NotifyIcon( cMessage, [ cTitle ], [ xIcon ], [ nFlags ] ) -> .T./.F.

Copyright 2007-2013 Grigory Filatov <gfilatov@inbox.ru>

Parameters:
cMessage        -> info text
cTitle          -> info title
xIcon           -> resource id / resource name / filename
                   of the icon
nFlags          -> bit masked icon flags (default = WIN_NIIF_INFO)
                   for the icon displayed to the left of the message
                  set from ShellNotifyIcon() dwInfoFlags values:
                  #define WIN_NIIF_NONE                      0x00000000
                  #define WIN_NIIF_INFO                      0x00000001
                  #define WIN_NIIF_WARNING                   0x00000002
                  #define WIN_NIIF_ERROR                     0x00000003
                  #define WIN_NIIF_USER                      0x00000004
                  #define WIN_NIIF_NOSOUND                   0x00000010
                  #define WIN_NIIF_LARGE_ICON                0x00000020
                  #define WIN_NIIF_RESPECT_QUIET_TIME        0x00000080
                  #define WIN_NIIF_ICON_MASK                 0x0000000F
                  if nFlags is used via symbolic names it's needed to include "hbwin.ch" in source

Samples:
#include "hbwin.ch"
hbs_NotifyIcon( "Some text" )
hbs_NotifyIcon( "Some text", "A title" )
hbs_NotifyIcon( "Some text", "A title", 123 )        // 123 is the id of the icon set in resource file
hbs_NotifyIcon( "Some text", "A title", "PRGICON" )  // "PRGICON" is the icon name set in resource file
hbs_NotifyIcon( "Some text", "A title", "c:\path\icon.ico" )
hbs_NotifyIcon( "Some text", "A title", "c:\path\icon.ico", WIN_NIIF_ERROR )                   // same as previous, but with an error icon
hbs_NotifyIcon( "Some text", "A title", "c:\path\icon.ico", WIN_NIIF_USER + WIN_NIIF_NOSOUND ) // no sound, same icon as title icon

--------------------------------------------------------*/

function hbs_NotifyIcon( cMessage, cTitle, xIcon, nFlags )

   local hWnd := wapi_GetModuleHandle()
   local hIcon

   if Empty( hIcon := wapi_LoadImage( hWnd, xIcon, WIN_IMAGE_ICON ) ) .and. ;
      Empty( hIcon := wapi_LoadImage( , xIcon, WIN_IMAGE_ICON, , , WIN_LR_LOADFROMFILE ) )
      return .f.
   endif

   win_ShellNotifyIcon( hWnd, , , , , .f. )
   return win_ShellNotifyIcon( hWnd, , , hIcon, , .t., cMessage, , cTitle, nFlags )


Não é porque o Harbour/XHarbour não tem uma GUI própria, que ele não pode ter as funções necessárias pra isso.
Acho que as APIs Windows devem estar com os dias contados, mas.... antes tarde do que nunca.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18161
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Mensagem BALÃO

Mensagempor JoséQuintas » 17 Nov 2021 13:51

oohg.png


Olhem aí a comprovação do que venho falando.
Também existe a função no Harbour 3.2.
Dá pra ver no fonte "JPA ", que foi retirado do meu post, inclusive com um erro meu, onde esse último parâmetro não existe.
Chegou lá no fórum da OOHG. (variação minigui)

Mas a parte importante é:
Uma vez a função estando dentro da hbwin, do Harbour e XHarbour, as coisas se multiplicam por todas as LIBs.
É disso que venho falando faz tempo: No Harbour, a GTWVG serve como "desculpa" pra expandir a hbwin, porque ela usa funções do Windows, e faz parte do Harbour.
Fazendo isso no Harbour e XHarbour, as coisas podem tomar um rumo diferente do que está hoje.

EU NÃO CRIEI NADA. Apenas repassei a função que existe no Harbour. E por existir no Harbour.... tá disponível pra quem quiser, de qualquer lib.

Tá tudo lá, dentro do Harbour, da hbwin, da gtwvg, trata-se apenas de "mostrar para o mundo" que elas existem, padronizando na hbwin do Harbour e XHarbour.
Muita coisa que não tem na hbwin, tem na gtwvg, trata-se apenas de mover de uma lib pra outra, deixar de ser "particular".
A gtwvg não vai ganhar nada com isso, quem vai ganhar são os usuários do Harbour/XHarbour.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18161
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Mensagem BALÃO

Mensagempor Itamar M. Lins Jr. » 17 Nov 2021 15:41

Olá!
Às vezes quem sabe, não quer divulgar.
Quer vender alguma coisa. Nisso prejudica a linguagem. Quem vende xIDE, Xailer, Fivewin, Minigui Extend... mesmo não tem pq ficar divulgando isso.
Quem vende SQLRDD não quer saber de SQLMIX, tão pouco ADO, que dirá ensinar. Querem vender os produtos deles.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6959
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 312 vezes
Mens.Curtidas: 508 vezes

Mensagem BALÃO

Mensagempor JoséQuintas » 17 Nov 2021 16:39

O Viktor, do Harbour 3.4 (pra quem não sabe), sempre procurou deixar tudo padronizado e disponível.

Tem horas que fico imaginando se a saída dele do Harbour 3.2 não foi provocada por isso: ele quer dar recursos, mas alguém lá de cima não quer que seja liberado.

Mas temos que tentar.

Também não sei se vai ajudar a nós, mas atrapalhar aos desenvolvedores C.
Parece que algumas coisas ficam fáceis em C, porque fica tudo na mão, enquanto por PRG acontece o contrário.

Mas nem que fosse uma única função por mês...
São tantos anos... que uma função por mês já teria feito muita diferença.

Nota:
Tenho a impressão de que o fivewin vém com fontes, não sei se todos.
Com certeza, nele é do jeito que falei, até melhor.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18161
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Mensagem BALÃO

Mensagempor microvolution » 20 Nov 2021 11:03

Itamar M. Lins Jr. escreveu:Às vezes quem sabe, não quer divulgar.
Quer vender alguma coisa. Nisso prejudica a linguagem.
é isso q venho falando há tempos: euzinho, que sou o menor de todos, tenho a impressão que quem fez alguma função, procedure, classe, sei lá como chamam, nas linguagens "C" ou "C++", ou fez somente para eles mesmos, ou alguém os paga para que não seja divulgado.
por exemplo:
a HBWIN que vem junto com o harbour da HMG 3.5, tem isso aqui:
DYNAMIC wapi_WNetGetLastError
DYNAMIC wapi_TextOut
DYNAMIC wapi_TrackPopupMenu
DYNAMIC wce_SimPhonebookStatus
DYNAMIC wce_SimReadPhonebookEntry
DYNAMIC wce_SimDeInitialize
DYNAMIC win_AbortDoc
DYNAMIC win_ShellNotifyIcon
DYNAMIC win_SHFileOperation
DYNAMIC __axGetControl
DYNAMIC __oleCreateObject
DYNAMIC __wapi_DEVMODE_Get

essa lista acima, peguei aleatoriamente, de dentro do HBWIN.HBX da minha HMG 3.5 (oficial do https://hmgforum.com).

Se os nobres professores, os poucos que estão interagindo, fizessem como foi aberto este tópico "MENSAGEM BALÃO", com exemplos de como funciona, ou nos mostrasse onde pesquisar e saber como usar essas "belezuras", talvez, quem não sabe HMG, OOHG, HMGE, WVG, WVT, WVW, HWGUI, etc, faria alguma coisa melhor, de forma padronizada de dentro mesmo do harbour, e, talvez nem precisasse das libs, pra fazer "janelas" gráficas...

#ficaadica
#praajudar
#os+leigos
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
microvolution
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

Mensagem BALÃO

Mensagempor microvolution » 20 Nov 2021 11:53

Basta o Harbour 3.2 puxar as alterações do 3.4.

a propósito, compilei de dentro da IDE/HMG, e, não funcionou com o comando "?", mas substituindo por "@say" deu certinho.
obs.: o harbour que vem na HMG 3.5 é o harbour 3.2
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
microvolution
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

Mensagem BALÃO

Mensagempor frazato » 20 Nov 2021 13:30

Tarde!!!! como faço pra usar isso no xharbour... tente direto e não funcionou..
Erro de falta da função..
frazato
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 219
Data de registro: 08 Jul 2004 07:45
Curtiu: 0 vez
Mens.Curtidas: 4 vezes

Mensagem BALÃO

Mensagempor Linguagemclipper » 22 Abr 2023 12:35

Qual seria o HBWIN do xHarbour?
Um simples Wapi_MessageBeep( 0x00000010 ) no xHarbour como seria?
Esses wapi da vida como faz no xharbour?
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
Avatar de usuário

Linguagemclipper
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 214
Data de registro: 16 Abr 2016 17:33
Cidade/Estado: Maceió/AL
Curtiu: 38 vezes
Mens.Curtidas: 12 vezes

Mensagem BALÃO

Mensagempor JoséQuintas » 22 Abr 2023 17:18

Linguagemclipper escreveu:Qual seria o HBWIN do xHarbour?
Um simples Wapi_MessageBeep( 0x00000010 ) no xHarbour como seria?
Esses wapi da vida como faz no xharbour?


O Viktor deu uma padronizada na HBWIN, xHarbour também tem HBWIN, precisa ver se nela tem.

WAPI_ são funções de passagem, apenas deixam os parâmetros compatíveis com o que o Windows precisa.
WIN_ são funções pra Windows que tem algo mais, e não apenas passagem.

Pode tentar criando chamadas à API.
Mas tem que ver no XHarbour como faz.
Ou então puxar o fonte C, se souber mexer.

Ao invés de colocar aquelas coisas esquisitas em tudo que é função, dei uma padronizada.

FUNCTION ze_CallDllStd( cDll, cName, ... )

   LOCAL hDll, xResult

   hDll    := hb_LibLoad( cDll )
   xResult := hb_DynCall( { cName, hDll, HB_DYN_CALLCONV_STDCALL }, ... )
   hb_LibFree( hDll )

   RETURN xResult


E o resto, SE PRECISAR, uso por aí.

FUNCTION ze_DestroyIcon( hWnd )

   LOCAL xResult

   xResult := ze_CallDllStd( "User32.dll", "DestroyIcon", hWnd )

   RETURN xResult


Na classe de RMChart fiz semelhante, tente imaginar sem a função intermediária:

METHOD Init()                           INLINE ::hDLL := hb_libLoad( "RMChart.dll" )
   METHOD Destroy()                        INLINE hb_libFree( ::hDLL )
   METHOD CallDllStd( cName, ... )         INLINE hb_DynCall( { cName, ::hDLL, HB_DYN_CALLCONV_STDCALL }, ... )
   METHOD AddBarSeries(a,b,c, ... )        INLINE ::CallDllStd( "RMC_ADDBARSERIES", a, b, ::ToDouble( c ), ... )
   METHOD AddRegion( ... )                 INLINE ::CallDllStd( "RMC_ADDREGION", ... )
   METHOD AddCaption( ... )                INLINE ::CallDllStd( "RMC_ADDCAPTION", ... )
   METHOD AddDataAxis(a,b,c,d,e, ... )     INLINE ::CallDllStd( "RMC_ADDDATAAXIS", a, b, c, ::ToDecimal( d ), ::ToDecimal( e ), ... )
   METHOD AddGrid( ... )                   INLINE ::CallDllStd( "RMC_ADDGRID", ... )
   METHOD AddGridLessSeries(a,b,c,d,e,...) INLINE ::CallDllStd( "RMC_ADDGRIDLESSSERIES", a, b, ::ToDouble( c ), d, ::ToLong( e ), ... )
   METHOD AddHightLowSeries(a,b,c,...)     INLINE ::CallDllStd( "RMC_ADDHIGHTLOWSERIES", a, b, ::ToDouble( c ), ... )
   METHOD AddLabelAxis( ... )              INLINE ::CallDllStd( "RMC_ADDLABELAXIS", ... )
   METHOD AddLegend( ... )                 INLINE ::CallDllStd( "RMC_ADDLEGEND", ... )
   METHOD AddLineSeries( a,b,c, ... )      INLINE ::CallDllStd( "RMC_ADDLINESERIES", a, b, ::ToDouble( c ), ... )
   METHOD AddToolTips( ... )               INLINE ::CallDllStd( "RMC_ADDTOOLTIPS", ... )
   METHOD AddVolumeBarSeries(a,b,c,...)    INLINE ::CallDllStd( "RMC_ADDVOLUMEBARSERIES", a, b, ::ToDouble( c ), ... )
   METHOD AddXAxis(a,b,c,d,e,...)          INLINE ::CallDllStd( "RMC_ADDXAXIS", a, b, c, ::ToDouble( d ), ::ToDouble( e ), ... )
   METHOD AddXSeries(a,b,c,d,e,...)        INLINE ::CallDllStd( "RMC_ADDXSERIES", a, b, ::ToDouble( c ), d, ::ToDouble( e ), ... )
   METHOD AddYAxis(a,b,c,d,e,...)          INLINE ::CallDllStd( "RMC_ADDYAXIS", a, b, c, ::ToDouble( d ), ::ToDouble( e ), ... )
   METHOD AddYSeries(a,b,c,d,e,...)        INLINE ::CallDllStd( "RMC_ADDYSERIES", a, b, ::ToDouble( c ), d, ::ToDouble( e ), ... )
   METHOD CalcAverage(a,b,c,d,...)         INLINE ::CallDllStd( "RMC_CALCAVERAGE", a, b, c, ::ToDouble( d ), ... )
   METHOD CalcTrend(a,b,c,d,e,... )        INLINE ::CallDllStd( "RMC_CALLTREND", a, b, c, ::ToDouble( d ), ::ToDouble( e ), ... )
   METHOD CoBox( ... )                     INLINE ::CallDllStd( "RMC_COBOX", ... )
   METHOD CoCircle( ... )                  INLINE ::CallDllStd( "RMC_COCIRCLE", ... )
   METHOD CoDash( ... )                    INLINE ::CallDllStd( "RMC_CODASH", ... )
   METHOD CoDelete( ... )                  INLINE ::CallDllStd( "RMC_CODELETE", ... )
   METHOD CoImage( ... )                   INLINE ::CallDllStd( "RMC_COIMAGE", ... )
   METHOD CoLine( a, b, c, d, ... )        INLINE ::CallDllStd( "RMC_COLINE", a, b, ::ToLong( c ), ::ToLong( d ), ... )
   METHOD CoPolygon( ... )                 INLINE ::CallDllStd( "RMC_COPOLYGON", ... )
   METHOD CoSymbol( ... )                  INLINE ::CallDllStd( "RMC_COSYMBOL", ... )
   METHOD CoText( ... )                    INLINE ::CallDllStd( "RMC_COTEXT", ... )
   METHOD CoVisible( ... )                 INLINE ::CallDllStd( "RMC_COVISIBLE", ... )
   METHOD CreateChart( ... )               INLINE ::CallDllStd( "RMC_CREATECHART", ... )
   /* METHOD CreateChartOnDc( ... )           INLINE ::CallDllStd( "RMC_CREATECHARONDC", ... )  // uncomment if you know what you are doing */
   METHOD CreateChartFromFile( ... )       INLINE ::CallDllStd( "RMC_CREATECHARFROMFILE", ... )
   METHOD DeleteChart( ... )               INLINE ::CallDllStd( "RMC_DELETECHART", ... )
   METHOD Draw( ... )                      INLINE ::CallDllStd( "RMC_DRAW", ... )
   METHOD Draw2Clipboard( ... )            INLINE ::CallDllStd( "RMC_DRAW2CLIPBOARD", ... )
   METHOD Draw2Printer( ... )              INLINE ::CallDllStd( "RMC_DRAW2PRINTER", ... )
   METHOD Draw2File( ... )                 INLINE ::CallDllStd( "RMC_DRAW2FILE", ... )
   METHOD GetChartSizeFromFile( ... )      INLINE ::CallDllStd( "RMC_GETCHARTSIZEFROMFILE", ... )
   METHOD GetCtrlHeight( ... )             INLINE ::CallDllStd( "RMC_GETCTRLHEIGHT", ... )
   METHOD GetCtrlWidth( ... )              INLINE ::CallDllStd( "RMC_GETCTRLWIDTH", ... )
   METHOD GetData( ... )                   INLINE ::CallDllStd( "RMC_GETDATA", ... )
   METHOD GetDataCount( ... )              INLINE ::CallDllStd( "RMC_GRETDATACOUNT", ... )
   METHOD GetDataLocation( ... )           INLINE ::CallDllStd( "RMC_GETDATALOCATION", ... )
   METHOD GetDataLocationXY( ... )         INLINE ::CallDllStd( "RMC_GETDATALOCATIONXY", ... )
   METHOD GetGridLocation( ... )           INLINE ::CallDllStd( "RMC_GETGRIDLOCATION", ... )
   METHOD GetHighPart( ... )               INLINE ::CallDllStd( "RMC_GETHIGHPART", ... )
   METHOD GetImageSizeFromFile( ... )      INLINE ::CallDllStd( "RMC_GETIMAGESIZEFROMFILE", ... )
   METHOD GetInfo( ... )                   INLINE ::CallDllStd( "RMC_GETINFO", ... )
   METHOD GetInfoXY( ... )                 INLINE ::CallDllStd( "RMC_GETINFOXY", ... )
   METHOD GeTLowPart( ... )                INLINE ::CallDllStd( "RMC_GETLOWPART", ... )
   METHOD GetSeriesDataRange( ... )        INLINE ::CallDllStd( "RMC_GETSERIESDATARANGE", ... )
   METHOD GetVersion( ... )                INLINE ::CallDllStd( "RMC_GETVERSION", ... )
   METHOD Magnifier( ... )                 INLINE ::CallDllStd( "RMC_MAGNIFIER", ... )
   METHOD Paint( ... )                     INLINE ::CallDllStd( "RMC_PAINT", ... )
   METHOD Reset( ... )                     INLINE ::CallDllStd( "RMC_RESET", ... )
   METHOD Rnd( ... )                       INLINE ::CallDllStd( "RMC_RND", ... )
   METHOD SaveBMP( ... )                   INLINE ::CallDllStd( "RMC_SAVEBMP", ... )
   METHOD SetCaptionText( ... )            INLINE ::CallDllStd( "RMC_SETCAPTIONTEXT", ... )
   METHOD SetCaptionBGColor( ... )         INLINE ::CallDllStd( "RMC_SETCAPTIONBGCOLOR", ... )
   METHOD SetCaptionTextColor( ... )       INLINE ::CallDllStd( "RMC_SETCAPTIONTEXTCOLOR", ... )
   METHOD SetCaptionFontBold( ... )        INLINE ::CallDllStd( "RMC_SETCAPTIONFONTBOLD", ... )
   METHOD SetCaptionFontSize( ... )        INLINE ::CallDllStd( "RMC_SETCAPTIONFONTSIZE", ... )
   METHOD SetCtrlBGColor( ... )            INLINE ::CallDllStd( "RMC_SETCTRLBGCOLOR", ... )
   METHOD SetCtrlBGImage( ... )            INLINE ::CallDllStd( "RMC_SETCTRLBGIMAGE", ... )
   METHOD SetCtrlFont( ... )               INLINE ::CallDllStd( "RMC_SETCTRLFONT", ... )
   METHOD SetCtrlSize( ... )               INLINE ::CallDllStd( "RMC_SETCTRLSIZE", ... )
   METHOD SetCtrlStyle( ... )              INLINE ::CallDllStd( "RMC_SETCTRLSTYLE", ... )
   METHOD SetCustomTooltipText( ... )      INLINE ::CallDllStd( "RMC_SETCUSTOMTOOLTIPTEXT", ... )
   METHOD SetDataXAlignment( ... )         INLINE ::CallDllStd( "RMC_SETDATAXALIGNMENT", ... )
   METHOD SetDaXDecimalDigits( ... )       INLINE ::CallDllStd( "RMC_SETDAXDECIMALDIGITS", ... )
   METHOD SetDaXFontSize( ... )            INLINE ::CallDllStd( "RMC_SETDAXFONTSIZE", ... )
   METHOD SetDaXLineColor( ... )           INLINE ::CallDllStd( "RMC_SETDAXLINECOLOR", ... )
   METHOD SetDaXLineStyle( ... )           INLINE ::CallDllStd( "RMC_SETDAXLINESTLE", ... )
   METHOD SetDaXMaxValue( ... )            INLINE ::CallDllStd( "RMC_SETDAXMAXVALUE", ... )
   METHOD SetDaXMinValue( ... )            INLINE ::CallDllStd( "RMC_SETDAXMINVALUE", ... )
   METHOD SetDaXText( ... )                INLINE ::CallDllStd( "RMC_SETDAXTEXT", ... )
   METHOD SetDaXTextColor( ... )           INLINE ::CallDllStd( "RMC_SETDAXTEXTCOLOR", ... )
   METHOD SetDaXTickCount( ... )           INLINE ::CallDllStd( "RMC_SETDAXTICKCOLOR", ... )
   METHOD SetDaXUnit( ... )                INLINE ::CallDllStd( "RMC_SETDAXUNIT", ... )
   METHOD SetGridBGColor( ... )            INLINE ::CallDllStd( "RMC_SETGRIDBGCOLOR", ... )
   METHOD SetGridBIColor( ... )            INLINE ::CallDllStd( "RMC_SETGRIDBICOLOR", ... )
   METHOD SetGridGradient( ... )           INLINE ::CallDllStd( "RMC_SETGRIDGRADIENT", ... )
   METHOD SetGridMargin( ... )             INLINE ::CallDllStd( "RMC_SETGRIDMARGIN", ... )
   METHOD SetHelpIngGrid( ... )            INLINE ::CallDllStd( "RMC_SETHELPINGGRID", ... )
   METHOD SetLAXAlignment( ... )           INLINE ::CallDllStd( "RMC_SETLAXALIGNMENT", ... )
   METHOD SetLAXCount( ... )               INLINE ::CallDllStd( "RMC_SETLAXCOUNT", ... )
   METHOD SetLAXFontSize( ... )            INLINE ::CallDllStd( "RMC_SETLAXFONTSIZE", ... )
   METHOD SetAXLabelAlignment( ... )       INLINE ::CallDllStd( "RMC_SETAXLABELALIGNMENT", ... )
   METHOD SetAXLabels( ... )               INLINE ::CallDllStd( "RMC_SETAXLABELS", ... )
   METHOD SetAXLabelsFile( ... )           INLINE ::CallDllStd( "RMC_SETAXLABELSFILE", ... )
   METHOD SetAxLabelsRange( ... )          INLINE ::CallDllStd( "RMC_SETAXLABELSRANGE", ... )
   METHOD SetAXLineColor( ... )            INLINE ::CallDllStd( "RMC_SETAXLINECOLOR", ... )
   METHOD SetAXLineStyle( ... )            INLINE ::CallDllStd( "RMC_SETAXLINESTYLE", ... )
   METHOD SetLAXText( ... )                INLINE ::CallDllStd( "RMC_SETLAXTEXT", ... )
   METHOD SetLAXTickCount( ... )           INLINE ::CallDllStd( "RMC_SETLAXTICKCOUNT", ... )
   METHOD SetLegendAlignment( ... )        INLINE ::CallDllStd( "RMC_SETLEGENDALIGNMENT", ... )
   METHOD SetLegendBGColor( ... )          INLINE ::CallDllStd( "RMC_SETLEGENDBGCOLOR", ... )
   METHOD SetLegendFontBold( ... )         INLINE ::CallDllStd( "RMC_SETLEGENDFONTBOLD", ... )
   METHOD SetLegendFontSize( ... )         INLINE ::CallDllStd( "RMC_SETLEGENDFONTSIZE", ... )
   METHOD SetLegendHide( ... )             INLINE ::CallDllStd( "RMC_SETLEGENDHIDE", ... )
   METHOD SetLegendStyle( ... )            INLINE ::CallDllStd( "RMC_SETLEGENDSTYLE", ... )
   METHOD SetLegendText( ... )             INLINE ::CallDllStd( "RMC_SETLEGENDTEXT", ... )
   METHOD SetLegendTextColor( ... )        INLINE ::CallDllStd( "RMC_SETLEGENDTEXTCOLOR", ... )
   METHOD SetMouseClick( ... )             INLINE ::CallDllStd( "RMC_SETMOUSECLICK", ... )
   METHOD SetRegionFooter( ... )           INLINE ::CallDllStd( "RMC_SETREGIONFOOTER", ... )
   METHOD SetRegionMargin( ... )           INLINE ::CallDllStd( "RMC_SETREGIONMARGIN", ... )
   METHOD SetRegionBorder( ... )           INLINE ::CallDllStd( "RMC_SETREGIONBORDER", ... )
   METHOD SetRMCFile( ... )                INLINE ::CallDllStd( "RMC_SETRMCFILE", ... )
   METHOD SetSeriesColor( ... )            INLINE ::CallDllStd( "RMC_SETSERIESCOLOR", ... )
   METHOD SetSeriesExplodeMode( ... )      INLINE ::CallDllStd( "RMC_SETSERIESEXPLODEMODE", ... )
   METHOD SetSeriesStartAngle( ... )       INLINE ::CallDllStd( "RMC_SETSERIESSTARTANGLE", ... )
   METHOD SetSeriesData( ... )             INLINE ::CallDllStd( "RMC_SETSERIESDATA", ... )
   METHOD SetSeriesDataFile( ... )         INLINE ::CallDllStd( "RMC_SETSERIESDATAFILE", ... )
   METHOD SetSeriesDataRange( ... )        INLINE ::CallDllStd( "RMC_SETSERIESDATARANGE", ... )
   METHOD SetSeriesSingleData( ... )       INLINE ::CallDllStd( "RMC_SETSERIESSINGLEDATA", ... )
   METHOD SetSeriesDataAxis( ... )         INLINE ::CallDllStd( "RMC_SETSERIESDATAAXIS", ... )
   METHOD SetSeriesHarchMode( ... )        INLINE ::CallDllStd( "RMC_SETSERIESHARCHMODE", ... )
   METHOD SetSeriesHide( ... )             INLINE ::CallDllStd( "RMC_SETSERIESHIDE", ... )
   METHOD SetSeriesHightLowColor( ... )    INLINE ::CallDllStd( "RMC_SETSERIESHIGHLOWCOLOR", ... )
   METHOD SetSeriesLineStyle( ... )        INLINE ::CallDllStd( "RMC_SETSERIESLINESTYLE", ... )
   METHOD SetSeriesLucent( ... )           INLINE ::CallDllStd( "RMC_SETSERIESLUCENT", ... )
   METHOD SetSeriesPPColumn( ... )         INLINE ::CallDllStd( "RMC_SETSERIESPPCOUMN", ... )
   METHOD SetSeriesPPColumnArray( ... )    INLINE ::CallDllStd( "RMC_SETSERIESPPCOLUMNARRAY", ... )
   METHOD SetSeriesVertical( ... )         INLINE ::CallDllStd( "RMC_SETSERIESVERTICAL", ... )
   METHOD SetSeriesStyle( ... )            INLINE ::CallDllStd( "RMC_SETSERIESSTYLE", ... )
   METHOD SetSeriesSymbol( ... )           INLINE ::CallDllStd( "RMC_SETSERIESSYMBOL", ... )
   METHOD SetSeriesValueLabel( ... )       INLINE ::CallDllStd( "RMC_SETSERIESVALUELABEL", ... )
   METHOD SetSeriesXAxis( ... )            INLINE ::CallDllStd( "RMC_SETSERIESXAXIS", ... )
   METHOD SetSeriesYAxis( ... )            INLINE ::CallDllStd( "RMC_SETSERIESYAXIS", ... )
   METHOD SetSingleBarColors( ... )        INLINE ::CallDllStd( "RMC_SETSINGLEBARCOLORS", ... )
   METHOD SetTooltipWidth( ... )           INLINE ::CallDllStd( "RMC_SETTOOLTIPWIDTH", ... )
   METHOD SetWaterMark( ... )              INLINE ::CallDllStd( "RMC_SETWATERMARK", ... )
   METHOD SetXAXAlignment( ... )           INLINE ::CallDllStd( "RMC_SETXYALIGNMENT", ... )
   METHOD SetYAXAlignment( ... )           INLINE ::CallDllStd( "RMC_SETYAXALIGNMENT", ... )
   METHOD SetXAXDecimalDigits( ... )       INLINE ::CallDllStd( "RMC_SETXAXDECIMALDIGITS", ... )
   METHOD SetYAXDecimalDigits( ... )       INLINE ::CallDllStd( "RMC_SETYAXDECIMALDIGITS", ... )
   METHOD SetXAXFontSize( ... )            INLINE ::CallDllStd( "RMC_SETXAXFONTSIZE", ... )
   METHOD SetYAXFontSize( ... )            INLINE ::CallDllStd( "RMC_SETYAXFONTSIZE", ... )
   METHOD SetXAXLabels( ... )              INLINE ::CallDllStd( "RMC_SETXAXLABELS", ... )
   METHOD SetYAXLabels( ... )              INLINE ::CallDllStd( "RMC_SETYAXLABELS", ... )
   METHOD SetXAXLabelAlignment( ... )      INLINE ::CallDllStd( "RMC_SETXAXLABELALIGNMENT", ... )
   METHOD SetYAXLabelAlignment( ... )      INLINE ::CallDllStd( "RMC_SETYAXLABELALIGNMENT", ... )
   METHOD SetXAXLineColor( ... )           INLINE ::CallDllStd( "RMC_SETXAXLINECOLOR", ... )
   METHOD SetYAXLineCOlor( ... )           INLINE ::CallDllStd( "RMC_SETYAXLINECOLOR", ... )
   METHOD SetXAXLineStyle( ... )           INLINE ::CallDllStd( "RMC_SETXAXLINESTYLE", ... )
   METHOD SetYAXLineStyle( ... )           INLINE ::CallDllStd( "RMC_SETYAXLINESTYLE", ... )
   METHOD SetXAXMaxValue( ... )            INLINE ::CallDllStd( "RMC_SETXAXMAXVALUE", ... )
   METHOD SetYAXMaxValue( ... )            INLINE ::CallDllStd( "RMC_SETYAXMAXVALUE", ... )
   METHOD SetXAXMinValue( ... )            INLINE ::CallDllStd( "RMC_SETXAXMINVALUE", ... )
   METHOD SetYAXMinValue( ... )            INLINE ::CallDllStd( "RMC_SETYAXMINVALUE", ... )
   METHOD SetXAXText( ... )                INLINE ::CallDllStd( "RMC_SETXAXTEXT", ... )
   METHOD SetYAXText( ... )                INLINE ::CallDllStd( "RMC_SETYAXTEXT", ... )
   METHOD SetXAXTextColor( ... )           INLINE ::CallDllStd( "RMC_SETXAXTEXTCOLOR", ... )
   METHOD SetYAXTextColor( ... )           INLINE ::CallDllStd( "RMC_SETYAXTEXTCOLOR", ... )
   METHOD SetXAXTickCount( ... )           INLINE ::CallDllStd( "RMC_SETXAXTICKCOUNT", ... )
   METHOD SetYAXTickCount( ... )           INLINE ::CallDllStd( "RMC_SETYAXTICKCOUNT", ... )
   METHOD SetXAXUnit( ... )                INLINE ::CallDllStd( "RMC_SETXAXUNIT", ... )
   METHOD SetYAXUnit( ... )                INLINE ::CallDllStd( "RMC_SETYAXUNIT", ... )
   METHOD ShowTooltips( ... )              INLINE ::CallDllStd( "RMC_SHOWTOOLTIPS", ... )
   METHOD Split( s, a )                    INLINE ::CallDllStd( "RMC_SPLIT", s, a )            // RMChart 4.14 String/Array
   METHOD Split2Double( s, a )             INLINE ::CallDllStd( "RMC_SPLIT2DOUBLE", s, a )     // RMChart 4.14 String/Array
   METHOD Split2Long( s, a )               INLINE ::CallDllStd( "RMC_SPLIT2LONG", s, a )       // RMChart 4.14 String/Array
   METHOD WriteRMCFile( ... )              INLINE ::CallDllStd( "RMC_WRITERMCFILE", ... )
   METHOD Zoom( ... )                      INLINE ::CallDllStd( "RMC_ZOOM", ... )
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18161
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Mensagem BALÃO

Mensagempor Itamar M. Lins Jr. » 12 Jul 2023 08:27

Olá!
Tentei achar se tem como aparecer a mensagem com SIM/Não (botões) e aguardar. Eu vi assim em um programa. Mas não sei se o programador usou o ShellNotify.
Fiz aqui usando a Hwgui, não sei pq a função da Hwgui não funciona.
//Código funcionando na Hwgui SVN 12/07/2023

cMsg := 'Sr(a) '+alltrim(us->nome)+'.'+CRLF+;
              'Desconto acima do valor permitido.'+CRLF+ ;
              'Máximo de: '+transform( ((nSemDesc*nDescPerm)/100) ,'@e 999,999.99')
      oIconEXE   := HIcon():AddResource("ICON_1")
     
      win_ShellNotifyIcon(Nil,Nil,Nil,Nil,Nil,.F.)             
      lRet := win_ShellNotifyIcon(Nil,Nil,Nil,oIconExe:Handle,Nil,.T.,cMsg,Nil,"Senha Desconto",WIN_NIIF_WARNING)

      PREPARE FONT oFont NAME "MS Sans Serif" WIDTH 0 HEIGHT -16           
     
      INIT DIALOG oDlg CLIPPER TITLE "Senha Gerência 2" Font oFont AT 0,0 SIZE 240,220
   
      @ 010,010 groupbox oGr CAPTION "Senha" SIZE 220,070 FONT oFont
      @ 020,040 get oSenha VAR cSenha Size 200,25 PASSWORD
      @ 020,070 get oPhanton VAR cPhanton size 0,0
     
      @ 020,140 ButtonEx oBOk Caption 'Confirmar'  Size 200,40 BITMAP HBitmap():AddResource('RUN'):handle TRANSPARENT ON CLICK {||lOk := .T. , hwg_EndDialog()} Style WS_TABSTOP
      oDlg:Activate(,,,.T.)



Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6959
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 312 vezes
Mens.Curtidas: 508 vezes

Mensagem BALÃO

Mensagempor clodoaldomonteiro » 18 Jul 2023 10:42

Itamar M. Lins Jr. escreveu:Olá!
Peguei no Harbour user do google. Autor: Maurizio la Cecilia ?

Function MsgBalloon( cMessage, cTitle )

   ShowNotifyInfo( 0, .F. , NIL, NIL, NIL, NIL )
   ShowNotifyInfo( 0, .T. , Nil, Nil, cMessage, cTitle )

   Return Nil

#pragma BEGINDUMP

      #include <windows.h>
      #include <commctrl.h>
      #include <shlobj.h>

      #include "hbapi.h"
      #include "hbvm.h"
      #include "hbstack.h"
      #include "hbapiitm.h"
      #define HDIB HANDLE

      #include "hbapiitm.h"

      static void ShowNotifyInfo(HWND hWnd, BOOL bAdd, HICON hIcon, LPSTR szText, LPSTR szInfo, LPSTR szInfoTitle);

      HB_FUNC ( SHOWNOTIFYINFO )
      {

         HICON hIcon;
         if ( HB_ISNUM( 3 ) )
         {
            hIcon = LoadIcon( ( HINSTANCE ) GetModuleHandle( NULL ), MAKEINTRESOURCE( hb_parni( 3 ) ) );
         }
         else
         {
            hIcon = ( HICON ) LoadImage( ( HINSTANCE ) NULL, hb_parc( 3 ), IMAGE_ICON, 0, 0, LR_LOADFROMFILE );
         }

         ShowNotifyInfo( (HWND) hb_parnl(1), (BOOL) hb_parl(2), hIcon , (LPSTR) hb_parc(4), (LPSTR) hb_parc(5), (LPSTR) hb_parc(6) );

      }

      static void ShowNotifyInfo(HWND hWnd, BOOL bAdd, HICON hIcon, LPSTR szText,
      LPSTR szInfo, LPSTR szInfoTitle)
      {
          NOTIFYICONDATA nid;

          ZeroMemory( &nid, sizeof(nid) );

          nid.cbSize        = sizeof(NOTIFYICONDATA);
          nid.hIcon        = hIcon;
          nid.hWnd        = hWnd;
          nid.uID            = 0;
          nid.uFlags        = NIF_INFO | NIF_TIP | NIF_ICON;
          nid.dwInfoFlags        = NIIF_INFO;

          lstrcpy( nid.szTip, TEXT(szText) );
          lstrcpy( nid.szInfo, TEXT(szInfo) );
          lstrcpy( nid.szInfoTitle, TEXT(szInfoTitle) );

          if(bAdd)
              Shell_NotifyIcon( NIM_ADD, &nid );
          else
              Shell_NotifyIcon( NIM_DELETE, &nid );

          if(hIcon)
              DestroyIcon( hIcon );
      }

   #pragma ENDDUMP


Saudações,
Itamar M. Lins Jr.

Tentei compilar com xHarbour 123 BCC7.30 e não deu certo.
Mensagem de erro:
Error E2451 Funcoes_C.PRG 84: Undefined symbol 'dwInfoFlags' in function ShowNotifyInfo
Error E2451 Funcoes_C.PRG 87: Undefined symbol 'szInfo' in function ShowNotifyInfo
Error E2451 Funcoes_C.PRG 88: Undefined symbol 'szInfoTitle' in function ShowNot
ifyInfo

Grato pela dica.
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Avatar de usuário

clodoaldomonteiro
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 752
Data de registro: 30 Dez 2006 12:17
Cidade/Estado: Teresina-PI
Curtiu: 115 vezes
Mens.Curtidas: 31 vezes

Mensagem BALÃO

Mensagempor rochinha » 19 Jul 2023 02:58

Amiguinhos,

Faça um teste com minha solução:

ballon.rc
Ballon DIALOG 6, 4, 163, 121
STYLE 0x4L | WS_CHILD | WS_VISIBLE | WS_BORDER
FONT 8, "Helv"
{
LTEXT "Mensagem do Sistema:", 100, 6, 8, 135, 10, NOT WS_GROUP
LTEXT "Text", 101, 5, 28, 152, 81, NOT WS_GROUP
}

icon_PNSRV ICON
{
'00 00 01 00 01 00 20 20 00 00 00 00 00 00 A8 08'
'00 00 16 00 00 00 28 00 00 00 20 00 00 00 40 00'
'00 00 01 00 08 00 00 00 00 00 80 04 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF'
'FF 00 CC FF FF 00 99 FF FF 00 66 FF FF 00 33 FF'
'FF 00 00 FF FF 00 FF CC FF 00 CC CC FF 00 99 CC'
'FF 00 66 CC FF 00 33 CC FF 00 00 CC FF 00 FF 99'
'FF 00 CC 99 FF 00 99 99 FF 00 66 99 FF 00 33 99'
'FF 00 00 99 FF 00 FF 66 FF 00 CC 66 FF 00 99 66'
'FF 00 66 66 FF 00 33 66 FF 00 00 66 FF 00 FF 33'
'FF 00 CC 33 FF 00 99 33 FF 00 66 33 FF 00 33 33'
'FF 00 00 33 FF 00 FF 00 FF 00 CC 00 FF 00 99 00'
'FF 00 66 00 FF 00 33 00 FF 00 00 00 FF 00 FF FF'
'CC 00 CC FF CC 00 99 FF CC 00 66 FF CC 00 33 FF'
'CC 00 00 FF CC 00 FF CC CC 00 CC CC CC 00 99 CC'
'CC 00 66 CC CC 00 33 CC CC 00 00 CC CC 00 FF 99'
'CC 00 CC 99 CC 00 99 99 CC 00 66 99 CC 00 33 99'
'CC 00 00 99 CC 00 FF 66 CC 00 CC 66 CC 00 99 66'
'CC 00 66 66 CC 00 33 66 CC 00 00 66 CC 00 FF 33'
'CC 00 CC 33 CC 00 99 33 CC 00 66 33 CC 00 33 33'
'CC 00 00 33 CC 00 FF 00 CC 00 CC 00 CC 00 99 00'
'CC 00 66 00 CC 00 33 00 CC 00 00 00 CC 00 FF FF'
'99 00 CC FF 99 00 99 FF 99 00 66 FF 99 00 33 FF'
'99 00 00 FF 99 00 FF CC 99 00 CC CC 99 00 99 CC'
'99 00 66 CC 99 00 33 CC 99 00 00 CC 99 00 FF 99'
'99 00 CC 99 99 00 99 99 99 00 66 99 99 00 33 99'
'99 00 00 99 99 00 FF 66 99 00 CC 66 99 00 99 66'
'99 00 66 66 99 00 33 66 99 00 00 66 99 00 FF 33'
'99 00 CC 33 99 00 99 33 99 00 66 33 99 00 33 33'
'99 00 00 33 99 00 FF 00 99 00 CC 00 99 00 99 00'
'99 00 66 00 99 00 33 00 99 00 00 00 99 00 FF FF'
'66 00 CC FF 66 00 99 FF 66 00 66 FF 66 00 33 FF'
'66 00 00 FF 66 00 FF CC 66 00 CC CC 66 00 99 CC'
'66 00 66 CC 66 00 33 CC 66 00 00 CC 66 00 FF 99'
'66 00 CC 99 66 00 99 99 66 00 66 99 66 00 33 99'
'66 00 00 99 66 00 FF 66 66 00 CC 66 66 00 99 66'
'66 00 66 66 66 00 33 66 66 00 00 66 66 00 FF 33'
'66 00 CC 33 66 00 99 33 66 00 66 33 66 00 33 33'
'66 00 00 33 66 00 FF 00 66 00 CC 00 66 00 99 00'
'66 00 66 00 66 00 33 00 66 00 00 00 66 00 FF FF'
'33 00 CC FF 33 00 99 FF 33 00 66 FF 33 00 33 FF'
'33 00 00 FF 33 00 FF CC 33 00 CC CC 33 00 99 CC'
'33 00 66 CC 33 00 33 CC 33 00 00 CC 33 00 FF 99'
'33 00 CC 99 33 00 99 99 33 00 66 99 33 00 33 99'
'33 00 00 99 33 00 FF 66 33 00 CC 66 33 00 99 66'
'33 00 66 66 33 00 33 66 33 00 00 66 33 00 FF 33'
'33 00 CC 33 33 00 99 33 33 00 66 33 33 00 33 33'
'33 00 00 33 33 00 FF 00 33 00 CC 00 33 00 99 00'
'33 00 66 00 33 00 33 00 33 00 00 00 33 00 FF FF'
'00 00 CC FF 00 00 99 FF 00 00 66 FF 00 00 33 FF'
'00 00 00 FF 00 00 FF CC 00 00 CC CC 00 00 99 CC'
'00 00 66 CC 00 00 33 CC 00 00 00 CC 00 00 FF 99'
'00 00 CC 99 00 00 99 99 00 00 66 99 00 00 33 99'
'00 00 00 99 00 00 FF 66 00 00 CC 66 00 00 99 66'
'00 00 66 66 00 00 33 66 00 00 00 66 00 00 FF 33'
'00 00 CC 33 00 00 99 33 00 00 66 33 00 00 33 33'
'00 00 00 33 00 00 FF 00 00 00 CC 00 00 00 99 00'
'00 00 66 00 00 00 33 00 00 00 00 00 EE 00 00 00'
'DD 00 00 00 BB 00 00 00 AA 00 00 00 88 00 00 00'
'77 00 00 00 55 00 00 00 44 00 00 00 22 00 00 00'
'11 00 00 EE 00 00 00 DD 00 00 00 BB 00 00 00 AA'
'00 00 00 88 00 00 00 77 00 00 00 55 00 00 00 44'
'00 00 00 22 00 00 00 11 00 00 EE 00 00 00 DD 00'
'00 00 BB 00 00 00 AA 00 00 00 88 00 00 00 77 00'
'00 00 55 00 00 00 44 00 00 00 22 00 00 00 11 00'
'00 00 EE EE EE 00 DD DD DD 00 BB BB BB 00 AA AA'
'AA 00 88 88 88 00 77 77 77 00 55 55 55 00 44 44'
'44 00 22 22 22 00 11 11 11 00 00 00 00 00 FF FF'
'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
'F9 F9 FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
'FF FF FF FF FF FF FF FF FF FF FF FF FF FF 33 5E'
'FF F9 F9 FF FF FF FF FF FF FF FF FF FF FF FF FF'
'FF FF FF FF FF FF FF FF FF FF FF FF 33 33 33 5E'
'5E FF F9 F9 FF FF FF FF FF FF FF FF FF FF FF FF'
'FF FF FF FF FF FF FF FF FF FF 33 33 33 33 33 5E'
'5E 5E FF F9 F9 FF FF FF FF FF FF FF FF FF FF FF'
'FF FF FF FF FF FF FF FF 33 33 33 33 33 33 33 5E'
'5E 5E 5E FF F9 F9 FF FF FF FF FF FF FF FF FF FF'
'FF FF FF FF FF FF 33 33 08 08 08 33 33 33 33 5E'
'5E 5E 5E 5E FF F9 F9 FF FF FF FF FF FF FF FF FF'
'FF FF FF FF 33 33 08 08 5E 5E 08 33 33 33 33 5E'
'08 5E 5E 5E 5E FF F9 F9 FF FF FF FF FF FF FF FF'
'FF FF 33 33 08 08 5E 5E 5E 5E 08 33 33 33 08 08'
'F8 08 5E 5E 5E 5E FF F9 F9 FF FF FF FF FF FF 89'
'33 33 33 33 89 5E 5E 5E 89 89 33 33 08 08 F6 2B'
'F6 56 08 5E 5E 5E 5E FF F9 F9 FF FF FF FF FF 89'
'33 33 33 33 89 5E 89 89 33 33 08 08 F6 2B F6 F6'
'2B 2B F8 08 5E 5E 5E 5E FF F9 F9 FF FF FF FF 89'
'33 33 33 33 89 89 33 33 08 08 F6 F6 F6 F6 2B 2B'
'2B F8 2B 56 08 5E 5E 5E 5E FF F9 F9 FF FF FF 89'
'33 33 33 33 33 33 08 08 F6 F6 F6 F6 2B F6 2B F6'
'2B 2B 2B F8 56 08 5E 5E 5E 5E FF F9 F9 FF FF 89'
'33 33 33 33 08 08 F6 F6 F6 F6 2B F6 F6 FA 2B 2B'
'2B F8 2B F8 56 FA 08 5E 5E 5E 5E FF F9 FF FF 89'
'33 33 08 08 F6 F6 F6 F6 F6 2B 2B FF FC 2B 2B 2B'
'56 2B 2B 56 F8 56 FA 08 5E 5E 5E 5E FF FF FF 89'
'08 08 5E 00 F6 F6 F6 2B 2B FF FF 2B 2B 2B 2B FA'
'2B F8 56 FA F8 56 F8 FA 08 5E 5E 5E FF FF FF 89'
'08 08 5E 5E 5E 00 2B 2B 2B 2B 2B F6 2B FF FF 2B'
'2B FC FC F8 56 F8 F6 F6 56 08 5E 5E FF FF FF FF'
'89 89 08 08 5E 5E 5E 00 2B 2B 2B FF FF 2B 2B FF'
'FF 56 F8 F6 F6 F6 33 33 33 33 08 5E FF FF FF FF'
'FF FF 89 89 08 08 5E 5E 5E 00 2B 2B 2B FF FF F8'
'F6 F6 F6 33 33 33 33 33 33 08 08 08 FF FF FF FF'
'FF FF FF FF 89 89 08 5E FF FD 5E 00 F6 2B F6 F6'
'33 33 33 33 33 33 08 08 08 89 89 89 FF FF FF FF'
'FF FF FF FF FF FF 89 FF A6 FF FD 5E 5E F6 33 33'
'33 33 33 08 08 08 89 89 89 FF FF FF FF FF FF FF'
'FF FF FF FF FF FF FF A6 C5 C5 FF FD 5E 5E 33 33'
'08 08 08 89 89 89 FF FF FF FF FF FF FF FF FF FF'
'FF FF FF FF FF FF A6 C5 C5 C5 C5 FF FD 08 08 08'
'89 89 89 FF FF FF FF FF FF FF FF FF FF FF FF FF'
'FF FF FF FF FF A6 C5 BE BE BE BE C5 FF FD 89 89'
'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
'FF FF FF FF A6 C5 C5 BE BE BE BE BE BE FF FF FF'
'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
'FF FF FF FF FF FF FF C5 BE BE FF FF FF FF FF FF'
'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
'FF FF FF FF FF FF FF C5 BE BE FF FF FF FF FF FF'
'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
'FF FF FF FF FF FF FF C5 BE BE FF FF FF FF FF FF'
'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
'FF FF FF FF FF FF FF C5 BE BE FF FF FF FF FF FF'
'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
'FF FF FF FF FF FF FF C5 BE BE FF FF FF FF FF FF'
'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
'FF FF FF FF FF FF FF C5 BE BE FF FF FF FF FF FF'
'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
'0F FF FF FC 07 FF FF F0 03 FF FF C0 01 FF FF 00'
'00 FF FC 00 00 7F F0 00 00 3F C0 00 00 1F 80 00'
'00 0F 80 00 00 07 80 00 00 03 80 00 00 01 80 00'
'00 01 80 00 00 01 80 00 00 01 80 00 00 01 C0 00'
'00 01 F0 00 00 01 FC 00 00 03 FF 00 00 1F FF 00'
'00 FF FE 00 07 FF FC 00 3F FF F8 00 FF FF F0 00'
'7F FF FF 07 FF FF FF 07 FF FF FF 07 FF FF FF 07'
'FF FF FF 07 FF FF FF 07 FF FF FF FF FF FF'
}

PNSRVon  ICON "pnsrvon.ico"
PNSRVoff ICON "pnsrvof.ico"


ballon.prg
...
      Ballon( "Novo pedido chegou", 10 )
...
//-------------------------------------
Function Ballon(cBallonMsg,nBallonTime,nTransparence,cBMPFundo,nMoveAte,cSide)
//-------------------------------------
   local oDlgBallon, oBmp, cTitulo := "MENSAGEM DO SISTEMA",nLarg:=247,nAltu:=199
   default cBallonMsg := "Nova mensagem chegando...", nTransparence := 80, nMoveAte := 20,;
           cBMPFundo := "gercred.bmp"
   DEFINE BITMAP oBmp1 FILENAME cBMPFundo
   DEFINE BITMAP oBmp2 FILENAME cBMPFundo
   DEFINE BRUSH oBrush STYLE NULL
   DEFINE FONT oFont NAME "Arial" SIZE 14, -14 // Ms Sans Serif
   ACTIVATE FONT oFont // MDICHILD OF OWND
   DEFINE WINDOW oDlgBallon FROM GetSysMetrics(1),GetSysMetrics(0)-200 TO nLarg, nAltu PIXEL NO CAPTION BORDER NONE BRUSH oBrush STYLE WS_POPUP
          DEFINE DIALOG oDlg RESOURCE "ballon" OF oDlgBallon //BRUSH oBrush STYLE WS_POPUP
                 REDEFINE SAY oSay100 VAR cTitulo         ID 100 OF oDlg FONT oFont
                 REDEFINE SAY oSay101 VAR cBallonMsg MEMO ID 101 OF oDlg FONT oFont
                 oSay100:lTransparent := .t.
                 oSay101:lTransparent := .t.
          ACTIVATE DIALOG oDlg NOWAIT VALID (oDlgBallon:End(),.T.) ;
            ON PAINT ( PalBmpDraw( oDlg:hDC, 0, 0, oBmp2:hBitmap, 0, 0, 0, 15597702 ),;
                       PalBmpDraw( oDlg:hDC, 0, 0, oBmp1:hBitmap, 0, 0, 0,  8913094 ) )
   ACTIVATE WINDOW oDlgBallon ;
            ON INIT ( SetWindowPos( oDlgBallon:hWnd, -1, 0, 0, 0, 0, 3 ), ;
                      oDlg:Move(0,0), LayeredWindow( oDlgBallon,nTransparence ), ;
                      MoveDLG(oDlgBallon,nBallonTime,nMoveAte,nLarg,nAltu), ;
                      ImprimeCupom() ) ;
            ON RESIZE (oDlgBallon:SetSize(nLarg,nAltu)) // VALID (oDlgBallon:=Nil,.T.)
   Release oDlgBallon, oBmp
   return nil

//-------------------------------------
Function LayeredWindow( oWnd, nLay )
//-------------------------------------
   //SetWindowLong( oWnd:hWnd, GWL_EXSTYLE, GetWindowLong( oWnd:hWnd, GWL_EXSTYLE ) | WS_EX_LAYERED )
   SetWindowLong( oWnd:hWnd, GWL_EXSTYLE, WS_BORDER )
   SetWindowLong( oWnd:hWnd, GWL_EXSTYLE, WS_EX_LAYERED )
   SetLayeredWindowAttributes( oWnd:hWnd, 0, ( 255 * nLay ) / 100, LWA_ALPHA )
   return nil

//-------------------------------------
Function MoveDLG(oDlgBallon,oDlgTime)
//-------------------------------------
   oDlgAltura := GetSysMetrics(1)
   //                   
   oTray:oIcon := oIconOn
   oTray:refresh()
   //
   SndPlaySound( "sound.wav", 0 )
   for i = 1 to 20
       oDlgAltura := oDlgAltura - i
       oDlgBallon:Move( oDlgAltura, 100, 200, 200, .t. )
       SysWait(.02)
   next
   SysWait(oDlgTime)
   SndPlaySound( "sound.wav", 0 )
   for i = 1 to 20
       oDlgAltura := oDlgAltura + i
       oDlgBallon:Move( oDlgAltura, 100, 200, 200, .t. )
       SysWait(.02)
   next
   oDlgBallon:end()
   //
   oTray:oIcon := oIconOff
   oTray:refresh()
   //
   return nil

Function ImprimeCupom()
   return nil
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4548
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 808 vezes
Mens.Curtidas: 246 vezes




Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 18 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro