Codigo exemplo de Modulo de PDV

Discussão sobre a biblioteca Fivewin - O Clipper para Windows.

Moderador: Moderadores

Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Codigo exemplo de Modulo de PDV

Mensagem por rochinha »

Amiguinhos

Disponibilizo codigo completo de um modulo de PDV, ou seja, o .PDG principal esta completo.

Nele esta exemplificado o trabalho do controle TWBROWSE e de como capturar teclas de função desde F1 até F9.

As teclas INSERT e DELETE e os botões funcionam perfeitamente.

A melhoria fica por conta de voce no que tange abertura de base de dados, pesquisas em estoque, impressão do cupom, etc.

Esta bem básico e como aprendizado irá ser de grande valia.

Usei WorkShop, Blinker 7 e Fivewin 2.4.

Codigo fonte do sample01.prg

Código: Selecionar todos

#include "FiveWin.ch"
#xcommand Column Header <(h)> of <oMG> ;
                 Init     <i>       ;
                 [Picture <p>]      ;
                 [When    <w>]      ;
                 [Valid   <v>]      ;
                 [Fail    <f>]      ;
                 [action  <for>]    ;
                 [Align   <a>]    ;
                 [Size    <s>]      ;
                 [Like    <(n)>]      ;
       => AddColumn(<h>, <i>, [<p>], [<{w}>], [<{v}>], [<{f}>], [<s>], [<{for}>], [<a>], [<(n)>], <oMG>)

Function Main()
    LOCAL aTotal:= {0,0,0, Nil, Nil, Nil}
    LOCAL aDatos:= {} // Array MultiDimensional
    LOCAL aLine := {0,"",   0,   0,   0, .t.} // Formato da linha
    LOCAL aJust := {2, 2, .f., .t., .t., .t.} // Colunas justificadas

                      // Cod.Art.  Descrip.  Cantidad  $Unitario  $Total  MarcaDeNuevo
    LOCAL l3d:= .F.
    LOCAL oDlg, cPic:= "@ze 999,999.99", oFont
    LOCAL hBmp:= LoadBitmap( GetResources(), "triangle" ) // Dedicado a mi amigo Mario Goanzalez
    PUBLIC oLbx

    LoadLibrary( "bwcc.dll" )

    DEFINE FONT oFont NAME "Times New Roman" SIZE 0,-15 BOLD
    DEFINE FONT oFnt1 NAME "MS Sans Serif" SIZE 0, -12
    DEFINE FONT oFnt2 NAME "Arial Black"   SIZE 18, -36 // SIZE 5, -10
    DEFINE FONT oFnt3 NAME "Arial Black"   SIZE  8, -16 // SIZE 5, -10
    ACTIVATE FONT oFont
    ACTIVATE FONT oFnt1
    ACTIVATE FONT oFnt2
    ACTIVATE FONT oFnt3

    DEFINE DIALOG oDlg RESOURCE "dlgPDV"
           TWBrowse():lHScroll:= .F.
           REDEFINE LISTBOX oLbx FIELDS "" ID 8000 ;
                         HEADER "","Codigo", "Descricao", "Quantidade",  ;
                                "Unitario", "Total"                     ;
                         OF oDlg ;
                         SIZES 25,50, 250, 67,60,60
           oLbx:bLine:= {|nAt| nAt:= oLbx:nAt,                      ;
                               If( Len(aDatos)<1 .or. nAt>Len(aDatos),;
                                 Array(6),                            ;
                                 { If( oLbx!=Nil .and. oLbx:lSelect, hBmp, 0 ),;
                                   If( aDatos[nAt,1]==0,Space(4),StrZero( aDatos[nAt,1], 4 ) ),    ;
                                   aDatos[nAt,2],                       ;
                                   Transform( aDatos[nAt,3], cPic ),    ;
                                   Transform( aDatos[nAt,4], cPic ),    ;
                                   Transform( aDatos[nAt,5], cPic )  } ) }
           oLbx:aJustify    := aJust
           oLbx:SetArray( aDatos )
           //oLbx:SetCols( aLine, {"","Codigo", "Descricao", "Quantidade", "Unitario", "Total" }, {25,50, 250, 67,60,60} )
           oLbx:lAdjLastCol := .f.
           oLbx:lAutoEdit   := .t.
           oLbx:lAutoSkip   := .t.
           oLbx:nLineStyle  := 2
           oLbx:nHeaderStyle:= 2
           oLbx:bKeyDown    := {|nKey| Pressionei( nKey, aDatos, oLbx, aTotal, aLine ) }
           oLbx:bBkColor    := {|nRow,nCol,nStyle| ;
                                 if( nStyle==1,if( nCol%2==0, CLR_RED   , CLR_GREEN ),) }
           oLbx:bTextColor  := {|nRow,nCol,nStyle| ;
                                 if( nStyle==1,if( nCol%2==0, CLR_YELLOW, CLR_WHITE ),) }
           oLbx:bEdit       := {|nCol, cBuffer, lFirstEdit|;
                                 EditaCelda( oLbx, nCol, cBuffer, aDatos, lFirstEdit, aTotal ) }
           /*
           Column Header "Codigo"  of oLbx ;
                Init 0 Picture "9999" ;
                Size 10
           Column Header "Descricao" of oLbx  ;
                Init Space(30) ;
                Picture "@!" ;
                Size 150
           Column Header "Quantidade" of oLbx;
                Init 0.0 ;
                Picture "999999" ;
                Size 67 
           Column Header "Unitario"  of oLbx ;
                Init 0.0    ;
                Picture "999,999.99" ;
                Size 60
           Column Header "Total"  of oLbx ;
                Init 0.0          ;
                Picture "99,999,999.99" ;
                Size 90     ;
                action oLbx:Cantidad * oLbx:Unitario;
                When .f.
           */
           REDEFINE BTNBMP ID 8301 OF oDlg RESOURCE "bmp_plus"    TOOLTIP "Adiciona mais itens ao orcamento" ;
                    ACTION ( NewReg( aDatos, oLbx ), oLbx:Edit() )
           REDEFINE BTNBMP ID 8302 OF oDlg RESOURCE "bmp_minus"   TOOLTIP "Exclui o registro atual"          ;
                    ACTION If( Len(aDatos) > 0 .and.                      ;
                           oLbx:nAt <= Len(aDatos) .and. oLbx:nAt > 0 .and.  ;
                           Alert("Exclui o registro atual ?",{"ok","Cancela"}) == 1,      ;
                           DelReg( aDatos, oLbx, aTotal ),)
           REDEFINE BTNBMP ID 8303 OF oDlg RESOURCE "bmp_editar"  TOOLTIP "Altera dados do registro atual"   ;
                    ACTION If( Len(aDatos) > 0 .and.                      ;
                           oLbx:nAt <= Len(aDatos) .and. oLbx:nAt > 0,;
                           oLbx:Edit(), )
           REDEFINE BTNBMP ID 8304 OF oDlg RESOURCE "bmp_printer" TOOLTIP "Imprime o orcamento"              ACTION fun() // Cupom("LPT1",M->TT_DESCT)
           // -> Botoes de edicao de registros
           REDEFINE SAY oSay8101 ID 8101 OF oDlg
           REDEFINE SAY oSay8102 ID 8102 OF oDlg
           REDEFINE SAY oSay8103 ID 8103 OF oDlg
           REDEFINE SAY oSay8104 ID 8104 OF oDlg FONT oFnt2 COLOR nRGB( 255, 255, 000 ),nRGB( 064, 064, 064 )
           // -> Botoes de funcao
           REDEFINE BUTTON ID 8001 OF oDlg ACTION Pressionei( VK_F1, aDatos, oLbx, aTotal )
           REDEFINE BUTTON ID 8002 OF oDlg ACTION Pressionei( VK_F2, aDatos, oLbx, aTotal )
           REDEFINE BUTTON ID 8003 OF oDlg ACTION Pressionei( VK_F3, aDatos, oLbx, aTotal )
           REDEFINE BUTTON ID 8004 OF oDlg ACTION Pressionei( VK_F4, aDatos, oLbx, aTotal )
           REDEFINE BUTTON ID 8005 OF oDlg ACTION Pressionei( VK_F5, aDatos, oLbx, aTotal )
           REDEFINE BUTTON ID 8006 OF oDlg ACTION Pressionei( VK_F6, aDatos, oLbx, aTotal )
           REDEFINE BUTTON ID 8007 OF oDlg ACTION Pressionei( VK_F7, aDatos, oLbx, aTotal )
           REDEFINE BUTTON ID 8008 OF oDlg ACTION Pressionei( VK_F8, aDatos, oLbx, aTotal )
           REDEFINE BUTTON ID 8009 OF oDlg ACTION Pressionei( VK_F9, aDatos, oLbx, aTotal )
    ACTIVATE DIALOG oDlg

    RELEASE FONT oFont
    ReleaseDC( hBmp )
    return Nil

/*
function SetCols( aData, aHeaders, aColSizes ) CLASS TWBrowse
   local aFields
   local nElements, n
   nElements   := Len( aData )
   ::aHeaders  := If( aHeaders  != nil, aHeaders, ::aHeaders )
   ::aColSizes := If( aColSizes != nil, aColSizes, {} )
   ::bLine     := {|| _aData( aData ) }
   ::aJustify  := AFill( Array( nElements ), .F. )
   if Len( ::GetColSizes() ) < nElements
      ::aColSizes = AFill( Array( nElements ), 0 )
      aFields = Eval( ::bLine )
      for n = 1 to nElements
          ::aColSizes[ n ] := If( ValType( aFields[ n ] ) != "C",;
                                   15,; // Bitmap handle
                                   GetTextWidth( 0, Replicate( "B", ;
                                   Max( Len( ::aHeaders[ n ] ), ;
                                        Len( aFields[ n ] ) ) + 1 ),;
                                   If( ! Empty( ::oFont ), ::oFont:hFont,) ) )
      next
   endif
   if ::oHScroll != nil
      ::oHScroll:nMax := ::GetColSizes()
   endif
   return nil

static function _aData( aFields )
  local aFld
  local nFor, nLen
  nLen = Len( aFields )
  aFld = Array( nLen )
  for nFor = 1 to nLen
     aFld[ nFor ] = Eval( aFields[ nFor ] )
  next
  return aFld */

//----------------------------------------------------------------------------//

//----------------------------------------------------------------------------*/
function AddColumn(cHead, cVal, cPic, bWhen, bValid, bFail, nSize, bFormula, xJustify, cVarName)
  ///Guarda los valores a usar en cada linea
  Default bValid := {|| .t. }
  Default bWhen  := {|| .t. }
  Default bFail  := {|| .t. }
  //aAdd(oLbx:aMultiGet, { cVal, cPic, bWhen, bValid, bFail, bFormula, ;
  //                    Upper(if(cVarName <> Nil, cVarName, cHead)), cVal })
  //oLbx:nColumns++
  // Si se manda un picture, mayormente es para numeros
//  If ( cPic <> Nil )
//    aAdd( oLbx:aLineData, Transform(cVal, cPic) )
//  Else
//    aAdd( oLbx:aLineData, cVal )
//  End
  aAdd(oLBx:aJustify , xJustify)
  aAdd(oLBx:aHeaders , cHead)
  aAdd(oLBx:aColSizes, nSize)
  aAdd(oLbx:aDefault , cVal)
  Return oLbx

//----------------------------------------------------------------------------//
function xTransLine( aArray,cPic )
  Local aData := {}, _i_
  For _i_ := 1 To len(aArray)
     aAdd(aData, xTransType( aArray[_i_],cPic ) )
  Next
  Return ( aData )

//----------------------------------------------------------------------------//
function xTransType( aDado,cPic )
  do case
     case ValType( aDado ) == "C"
          return aDado
     case ValType( aDado ) == "L"
          return aDado
     case ValType( aDado ) == "D"
          return dtoc(aDado)
     case ValType( aDado ) == "N"
          return transf(aDado,cPic)
  endcase

//----------------------------------------------------------------------------//
STATIC function Pressionei( nKey, aDatos, oLbx, aTotal, aLine )
    Do Case
       Case nKey = VK_F1;           MsgInfo( "Pressionei F1" )
       Case nKey = VK_F2;           MsgInfo( "Pressionei F2" )
       Case nKey = VK_F3;           MsgInfo( "Pressionei F3" )
       Case nKey = VK_F4;           MsgInfo( "Pressionei F4" )
       Case nKey = VK_F5;           MsgInfo( "Pressionei F5" )
       Case nKey = VK_F6;           MsgInfo( "Pressionei F6" )
       Case nKey = VK_F7;           MsgInfo( "Pressionei F7" )
       Case nKey = VK_F8;           MsgInfo( "Pressionei F8" )
       Case nKey = VK_F9;           MsgInfo( "Pressionei F9" )
       Case nKey = 45  // Insert
            NewReg( aDatos, oLbx, aLine )
            oLbx:Edit()
       Case nKey = 46  // Delete
            If Len(aDatos) > 0 .and. oLbx:nAt <= Len(aDatos) .and. oLbx:nAt > 0 .and. Alert("Exclui o registro atual ?",{"ok","Cancela"}) == 1
               DelReg( aDatos, oLbx, aTotal )
            endif
    //otherwise
    //   MsgInfo( str(nkey) ) // Para descobrir o codigo de outras teclas
    endcase

//----------------------------------------------------------------------------//
Function HelpIndex()
   Pressionei( VK_F1 )
   return nil

//----------------------------------------------------------------------------//
Function GetSysFont()
   return "MS Sans Serif"

//----------------------------------------------------------------------------//
STATIC Function EditaCelda( oLbx, nCol, cBuffer, aDatos, lFirstEdit, aTotal )
    LOCAL aResult, nAt:= oLbx:nAt, uBuffer, lContinue:= .t.
    LOCAL bValid, nColReal:= nCol
    nCol--  // Para que sea como si no exisiera BitMap
    uBuffer:= aDatos[nAt,nCol]
    While .t.
       Do Case
          Case ( nCol == 2 .or. nCol == 5 ) .and. lFirstEdit
               Alert( "Colunas nao editaveis" )
               return .f.
          Case nCol == 1
               bValid:= {|| If( Empty( aResult:= SeekItem( uBuffer ) ), ;
                            (Alert( "Codigo Inexistente :-("),.F.) , .T. ) }
               If lContinue:= oLbx:lEditCol( nColReal, @uBuffer, "@ZE 9999", bValid,,CLR_YELLOW )
                  aDatos[nAt,1]:= uBuffer
                  aDatos[nAt,2]:= aResult[1]
                  aDatos[nAt,4]:= aResult[2]
               EndIf
          Case nCol == 3  // Cantidad
               If lContinue:= oLbx:lEditCol( nColReal,  @uBuffer, "@ZE 999,999.99",,,CLR_YELLOW )
                  If uBuffer <= 0
                     Alert("Especifique uma quantidade !!!")
                     Loop
                  EndIf
                  aDatos[nAt,3]:= uBuffer
               EndIf
          Case nCol == 4  // Unitario
               If lContinue:= oLbx:lEditCol( nColReal, @uBuffer, "@ZE 999,999.99",,,CLR_YELLOW )
                  aDatos[nAt,4]:= uBuffer
                  aDatos[nAt,6]:= .f.  // Ya no es un Nuevo Registro !!!
               EndIf
          Case nCol == 5 .and. ! lFirstEdit .and. Len( aDatos ) == nAt
               NewReg( aDatos, oLbx )
       EndCase
       If ! lContinue .and. aDatos[nAt,6] // Se habia agregado un nuevo Item !!!
          DelReg( aDatos, oLbx, aTotal )
          return .f.
       EndIf
       Exit
    EndDo
    If Len( aDatos ) > 0
       aDatos[nAt,5]:= Round( aDatos[nAt,3] * aDatos[nAt,4], 2 )
       Suma( aDatos, aTotal )
    EndIf
    If lContinue
       Do Case
          Case oLbx:nLastKey == VK_UP
               return If( !GetKeyState(VK_SHIFT), -3, -2 )
          Case oLbx:nLastKey == VK_DOWN
               return If( !GetKeyState(VK_SHIFT),  3,  2 )
          Case oLbx:nLastKey == VK_TAB
               return If( GetKeyState(VK_SHIFT), -1, 1 )
       EndCase
    EndIf
    return lContinue
//----------------------------------------------------------------------------//
STATIC Function SeekItem( nCod )  // Simulamos busqueda en Base de Datos :-)
    If nCod >= 1 .and. nCod <= 500
       return { "Produto " + StrZero( nCod, 4 ), nCod + 0.55 }
    EndIf
    return ""
//----------------------------------------------------------------------------//
STATIC Function NewReg( aDatos, oLbx, aLine )
    Aadd( aDatos, {0,"",0,0,0,.t.} )
    oLbx:Refresh()
    oLbx:lHitBottom:= .f.
    oLbx:GoBottom()
    SysRefresh()
    return Nil
//----------------------------------------------------------------------------//
STATIC Function DelReg( aDatos, oLbx, aTotal )
    ADel( aDatos, oLbx:nAt )
    ASize( aDatos, Len( aDatos ) - 1 )
    oLbx:GoUp()
    oLbx:Refresh()
    Suma( aDatos, aTotal )
    return Nil
//----------------------------------------------------------------------------//
STATIC Function Suma( aDatos, aTotal )
    aTotal[1]:= 0
    AEval( aDatos, {|aItem| aTotal[1]+= aItem[5] } )
    oSay8101:SetText( transf(Round( aTotal[1], 2 )           , "@ze 999,999.99") )
    oSay8102:SetText( transf(Round( aTotal[1] * 0.21, 2 )    , "@ze 999,999.99") )
    oSay8103:SetText( transf(Round( aTotal[1] + aTotal[2],2 ), "@ze 999,999.99") )
    oSay8104:SetText( "R$ "+alltrim(transf(Round( aTotal[1] + aTotal[2],2 ), "@ze 999,999.99")) )
    oSay8101:Refresh(.F.)
    oSay8102:Refresh(.F.)
    oSay8103:Refresh(.F.)
    oSay8104:Refresh(.F.)
    return Nil
//----------------------------------------------------------------------------//
STATIC Function fun( aDatos, aTotal )
    return Nil
//----------------------------------------------------------------------------//

Codigo fonte do sample01.rc

Código: Selecionar todos

dlgPDV DIALOG 17, 29, 523, 302
STYLE DS_MODALFRAME | 0x4L | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "PDV - Modulo de Vendas"
FONT 8, "Helv"
{
 CONTROL "", 8000, "TWBrowse", WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 117, 77, 404, 96
 PUSHBUTTON "&Fechar", 9102, 456, 277, 63, 14
 PUSHBUTTON "Executar pesquisa", 8015, 5, 254, 106, 14
 CONTROL "", -1, "BorShade", BSS_VDIP | BSS_LEFT | WS_CHILD | WS_VISIBLE, 114, 20, 1, 252
 CONTROL "", -1, "BorShade", BSS_HDIP | BSS_LEFT | WS_CHILD | WS_VISIBLE, -4, 272, 530, 1
 CONTROL "", -1, "static", SS_BLACKRECT | WS_CHILD | WS_VISIBLE, 117, 21, 405, 20
 CONTROL "", -1, "static", SS_BLACKRECT | WS_CHILD | WS_VISIBLE, 3, 20, 109, 164
 PUSHBUTTON "F1 - Funcao 01", 8001, 7, 24, 102, 14
 PUSHBUTTON "F2 - Funcao 02", 8002, 7, 40, 102, 14
 PUSHBUTTON "F3 - Funcao 03", 8003, 7, 56, 102, 14
 PUSHBUTTON "F4 - Funcao 04", 8004, 7, 72, 102, 14
 PUSHBUTTON "F5 - Funcao 05", 8005, 7, 88, 102, 14
 PUSHBUTTON "F6 - Funcao 06", 8006, 7, 104, 102, 14
 PUSHBUTTON "F7 - Funcao 07", 8007, 7, 120, 102, 14
 PUSHBUTTON "F8 - Funcao 08", 8008, 7, 136, 102, 14
 PUSHBUTTON "F9 - Funcao 09", 8009, 7, 152, 102, 14
 PUSHBUTTON "F10 - Funcao 10", 8010, 7, 168, 102, 14
 CONTROL "", -1, "static", SS_BLACKRECT | WS_CHILD | WS_VISIBLE, 3, 186, 109, 66
 RTEXT "TOTAL BRUTO:", -1, 345, 178, 86, 13
 RTEXT "DESCONTO:", -1, 345, 194, 86, 13
 RTEXT "ARREDONDAMENTO:", -1, 345, 210, 86, 13
 RTEXT "0,00", 8101, 435, 176, 86, 13, SS_RIGHT | WS_BORDER | WS_GROUP
 RTEXT "0,00", 8102, 435, 192, 86, 13, SS_RIGHT | WS_BORDER | WS_GROUP
 RTEXT "0,00", 8103, 435, 208, 86, 13, SS_RIGHT | WS_BORDER | WS_GROUP
 LTEXT "Text", 8201, 282, 49, 60, 8
 CONTROL "", 8301, "TBtnBmp", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 118, 175, 14, 15
 CONTROL "", 8302, "TBtnBmp", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 135, 175, 14, 15
 CONTROL "", 8303, "TBtnBmp", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 153, 175, 14, 15
 CONTROL "", 8304, "TBtnBmp", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 171, 175, 14, 15
 CTEXT "0,00", 8104, 335, 226, 186, 42
}

bmp_editar BITMAP 
{
'42 4D F6 00 00 00 00 00 00 00 76 00 00 00 28 00'
'00 00 10 00 00 00 10 00 00 00 01 00 04 00 00 00'
'00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 80'
'00 00 00 80 80 00 80 00 00 00 80 00 80 00 80 80'
'00 00 C0 C0 C0 00 80 80 80 00 00 00 FF 00 00 FF'
'00 00 00 FF FF 00 FF 00 00 00 FF 00 FF 00 FF FF'
'00 00 FF FF FF 00 77 77 77 77 77 77 77 77 74 44'
'44 87 77 77 77 77 74 46 66 48 77 77 77 77 74 66'
'66 64 87 77 77 77 74 6E E6 66 48 77 77 77 74 FF'
'EE 66 64 87 77 77 77 4F FE E6 66 48 77 77 77 74'
'FF EE 66 64 87 77 77 77 4F FE E6 66 48 77 77 77'
'74 FF EE 66 64 77 77 77 77 4F FE E6 44 47 77 77'
'77 74 FF E4 66 47 77 77 77 77 4F 4E 46 47 77 77'
'77 77 74 4E E4 77 77 77 77 77 77 44 47 77 77 77'
'77 77 77 77 77 77'
}

bmp_Somatoria BITMAP 
{
'42 4D F6 00 00 00 00 00 00 00 76 00 00 00 28 00'
'00 00 10 00 00 00 10 00 00 00 01 00 04 00 00 00'
'00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 10 00 00 00 00 00 00 00 00 00 80 00 00 80'
'00 00 00 80 80 00 80 00 00 00 80 00 80 00 80 80'
'00 00 C0 C0 C0 00 80 80 80 00 00 00 FF 00 00 FF'
'00 00 00 FF FF 00 FF 00 00 00 FF 00 FF 00 FF FF'
'00 00 FF FF FF 00 77 77 77 77 77 77 77 77 77 77'
'70 77 77 77 77 77 77 77 70 07 77 77 77 77 77 77'
'70 F0 77 77 77 77 77 70 00 0F 07 77 77 77 77 70'
'FB FB F0 77 77 77 77 77 0F B0 00 07 77 77 77 77'
'0B FB 07 77 77 77 77 00 00 BF B0 77 77 77 77 0B'
'FB FB FB 07 77 77 77 70 BF B0 00 07 77 77 77 70'
'FB FB 07 77 77 77 77 77 0F BF B0 77 77 77 77 77'
'0B FB FB 07 77 77 77 77 70 BF BF B0 77 77 77 77'
'70 00 00 00 07 77'
}

bmp_plus BITMAP 
{
'42 4D 24 02 00 00 00 00 00 00 76 00 00 00 28 00'
'00 00 1A 00 00 00 1A 00 00 00 01 00 04 00 00 00'
'00 00 A0 01 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 BF 00 00 BF'
'00 00 00 BF BF 00 BF 00 00 00 BF 00 BF 00 BF BF'
'00 00 C0 C0 C0 00 80 80 80 00 00 00 FF 00 00 FF'
'00 00 00 FF FF 00 FF 00 00 00 FF 00 FF 00 FF FF'
'00 00 FF FF FF 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 00 00 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 00 00 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 00 00 00 77 77 77 77 77 78 88 88 77 77'
'77 77 77 00 00 00 77 77 77 77 77 FA AA AA 87 77'
'77 77 77 00 00 00 77 77 77 77 77 FA AA AA 87 77'
'77 77 77 00 00 00 77 77 77 77 77 FA AA AA 87 77'
'77 77 77 00 00 00 77 77 77 77 77 FA AA AA 87 77'
'77 77 77 00 00 00 77 77 77 77 77 FA AA AA 87 77'
'77 77 77 00 00 00 77 77 77 77 77 FA AA AA 87 77'
'77 77 77 00 00 00 77 77 88 88 88 8A AA AA 88 88'
'88 87 77 00 00 00 77 7F AA AA AA AA AA AA AA AA'
'AA A8 77 00 00 00 77 7F AA AA AA AA AA AA AA AA'
'AA A8 77 00 00 00 77 7F AA AA AA AA AA AA AA AA'
'AA A8 77 00 00 00 77 7F AA AA AA AA AA AA AA AA'
'AA A8 77 00 00 00 77 77 FF FF FF FA AA AA 8F FF'
'FF F7 77 00 00 00 77 77 77 77 77 FA AA AA 87 77'
'77 77 77 00 00 00 77 77 77 77 77 FA AA AA 87 77'
'77 77 77 00 00 00 77 77 77 77 77 FA AA AA 87 77'
'77 77 77 00 00 00 77 77 77 77 77 FA AA AA 87 77'
'77 77 77 00 00 00 77 77 77 77 77 FA AA AA 87 77'
'77 77 77 00 00 00 77 77 77 77 77 FA AA AA 87 77'
'77 77 77 00 00 00 77 77 77 77 77 7F FF FF 77 77'
'77 77 77 00 00 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 00 00 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 00 00 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 00 00 00 77 77 77 77 77 77 77 77 77 77'
'77 00 00 00'
}

bmp_minus BITMAP 
{
'42 4D 24 02 00 00 00 00 00 00 76 00 00 00 28 00'
'00 00 1A 00 00 00 1A 00 00 00 01 00 04 00 00 00'
'00 00 A0 01 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 BF 00 00 BF'
'00 00 00 BF BF 00 BF 00 00 00 BF 00 BF 00 BF BF'
'00 00 C0 C0 C0 00 80 80 80 00 00 00 FF 00 00 FF'
'00 00 00 FF FF 00 FF 00 00 00 FF 00 FF 00 FF FF'
'00 00 FF FF FF 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 00 00 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 00 00 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 00 00 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 00 00 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 00 00 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 00 00 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 00 00 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 00 00 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 00 00 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 00 00 00 77 77 88 88 88 88 88 88 88 88'
'87 77 77 00 00 00 77 79 11 11 11 11 11 11 11 11'
'18 77 77 00 00 00 77 79 11 11 11 11 11 11 11 11'
'18 77 77 00 00 00 77 79 11 11 11 11 11 11 11 11'
'18 77 77 00 00 00 77 79 11 11 11 11 11 11 11 11'
'18 77 77 00 00 00 77 77 99 99 99 99 99 99 99 99'
'97 77 77 00 00 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 00 00 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 00 00 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 00 00 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 00 00 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 00 00 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 00 00 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 00 00 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 00 00 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 00 00 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 00 00 00 77 77 77 77 77 77 77 77 77 77'
'77 00 00 00'
}

triangle BITMAP 
{
 '42 4D 84 01 00 00 00 00 00 00 76 00 00 00 28 00'
 '00 00 1A 00 00 00 10 00 00 00 01 00 04 00 00 00'
 '00 00 00 01 00 00 00 00 00 00 00 00 00 00 10 00'
 '00 00 00 00 00 00 00 00 00 00 00 00 BF 00 00 BF'
 '00 00 00 BF BF 00 BF 00 00 00 BF 00 BF 00 BF BF'
 '00 00 C0 C0 C0 00 80 80 80 00 00 00 FF 00 00 FF'
 '00 00 00 FF FF 00 FF 00 00 00 FF 00 FF 00 FF FF'
 '00 00 FF FF FF 00 77 77 77 77 77 77 77 77 77 77'
 '77 77 77 00 00 00 77 77 77 77 07 77 77 77 77 77'
 '77 77 77 00 00 00 77 77 77 77 00 07 77 77 77 77'
 '77 77 77 00 00 00 77 77 77 77 00 00 07 77 77 77'
 '77 77 77 00 00 00 77 77 77 77 00 00 00 07 77 77'
 '77 77 77 00 00 00 77 77 77 77 00 00 00 00 07 77'
 '77 77 77 00 00 00 77 77 77 77 00 00 00 00 00 07'
 '77 77 77 00 00 00 77 77 77 77 00 00 00 00 00 00'
 '77 77 77 00 00 00 77 77 77 77 00 00 00 00 00 00'
 '07 77 77 00 00 00 77 77 77 77 00 00 00 00 00 07'
 '77 77 77 00 00 00 77 77 77 77 00 00 00 00 07 77'
 '77 77 77 00 00 00 77 77 77 77 00 00 00 07 77 77'
 '77 77 77 00 00 00 77 77 77 77 00 00 07 77 77 77'
 '77 77 77 00 00 00 77 77 77 77 00 07 77 77 77 77'
 '77 77 77 00 00 00 77 77 77 77 07 77 77 77 77 77'
 '77 77 77 00 00 00 77 77 77 77 77 77 77 77 77 77'
 '77 77 77 00 00 00 77 77 77 77 77 77 77 77 77 77'
 '77 00 00 00'
}

@braços :?)
Editado pela última vez por rochinha em 30 Nov 2005 14:10, em um total de 1 vez.
ReinaldoFreitas
Usuário Nível 2
Usuário Nível 2
Mensagens: 97
Registrado em: 02 Jul 2005 15:39

Nao Consigo Fazer download!!!

Mensagem por ReinaldoFreitas »

Amigo rochinha, sou novo aqui no forum e estou iniciando no fw, nao estou conseguindo fazer dowload do arquivos!!! Mostra que a pagina nao foi encontrada!!
Iniciante em Xharbour / Hwgui
Paulao
Usuário Nível 3
Usuário Nível 3
Mensagens: 186
Registrado em: 09 Jul 2004 11:03
Localização: Franca
Contato:

Não estou conseguindo fazer o download

Mensagem por Paulao »

Boa tarde Rochina, não estou conseguindo fazer o download, parece que o link ta quebrado, pode passar o link novamente pra mim?

Grande abraço


Paulão
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinho

Me mande seu email em irochinha@itelefonica.com.br

@braços :?)
Responder