Clipper On Line • Ver Tópico - Como mudar cor do botão?

Como mudar cor do botão?

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

Moderador: Moderadores

 

Como mudar cor do botão?

Mensagempor Daiane » 17 Ago 2015 11:01

Estou tentando mudar a cor do botão,mas não consigo
quando mudo de aba ele altera a cor bem rapidamente e volta a cor normal
ja tentei dar refresh() setar o foco e n adiantou.
Vejam como estou fazendo

::bCadNis:SetColor(GetSysColor(8), RGB(249,176,180))
         ::bCadNis:refresh()
         ::gPISPASEP:SetFocus()   


O que mais posso fazer? ou teria alguma outra forma de fazer isso?

Obs: Consigo mudar a cor dos campos editáveis,só não botões.
XHb 1.2.1 + FW 12.05 + Pelles C IDE
"Eu adoraria mudar o mundo, mas não me deram o código-fonte."
Avatar de usuário

Daiane
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 122
Data de registro: 28 Out 2014 15:19
Cidade/Estado: Feira de Santana - BA
Curtiu: 27 vezes
Mens.Curtidas: 13 vezes

Como mudar cor do botão?

Mensagempor Kapiaba » 17 Ago 2015 12:12

Veja se a sua versão suporta o comando: SKINBUTTONS()

Imagem

Senão, somente atualizando sua versão com a Virtual oBjects Informática, representante Oficial do FiveWin no Brasil. Email: gilmer@fivewin.com.br - Att,: Gilmer Tavares.

ou, talvez, usando a classe: TSBUTTON.PRG By Manuel Mercado, mais informações no forum inter ou no Fivewin Brasil.

abs.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1766
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 311 vezes
Mens.Curtidas: 119 vezes

Como mudar cor do botão?

Mensagempor Kapiaba » 17 Ago 2015 12:19

// Quick Browse sample - C:\FWH1505\SAMPLES\FWBROW.PRG

#include "FiveWin.ch"

static oWnd

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

function Main()

   local oBrush, oBar, oBmp

   SET _3DLOOK ON                         // Microsoft 3D Look

   SkinButtons()

   DEFINE BRUSH oBrush STYLE TILED       // FiveWin new predefined Brushes

   DEFINE WINDOW oWnd FROM 4, 4 TO 25, 75 ;
      TITLE FWVERSION + " - Browsing power" ;
      MENU BuildMenu() ;
      BRUSH oBrush

   DEFINE BUTTONBAR oBar OF oWnd

   DEFINE BUTTON FILENAME "..\bitmaps\OpenPrj.bmp" OF oBar ;
      ACTION OpenDbf() MESSAGE "Browse any DBF..."

   DEFINE BUTTON FILENAME "..\bitmaps\Exit.bmp" OF oBar ;
      ACTION If( MsgYesNo( "Do you want to End ?", "Please, Select" ), oWnd:End(), ) ;
      MESSAGE "End this session"

   DEFINE BUTTON FILENAME "..\bitmaps\Edit.bmp" OF oBar GROUP ;
      MESSAGE "Using a Browse with dynamic Bitmap selection" ACTION Clients() ;
      TOOLTIP "Edit"

   DEFINE BUTTON FILENAME "..\bitmaps\Ques2.bmp" OF oBar ;
      MESSAGE "FiveWin info" ACTION MsgAbout()

   SET MESSAGE OF oWnd TO FWVERSION + FWCOPYRIGHT CLOCK DATE

   @ 4, 16 BITMAP oBmp FILENAME "..\bitmaps\Tutanka1.bmp" ADJUST SIZE 280, 200 OF oWnd ;
      ON CLICK ( oBmp:lStretch := ! oBmp:lStretch, oBmp:Refresh( .t. ) )

   ACTIVATE WINDOW oWnd ;
      ON RESIZE oBmp:Center()

return nil

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

function BuildMenu()

   local oMenu

   MENU oMenu

      MENUITEM "&Information"
      MENU
         MENUITEM "&About..." + Chr( 9 ) + "Alt+A" ;
            ACTION MsgAbout( FWCOPYRIGHT, FWVERSION ) ;
            MESSAGE "Some information about this demo" ;
            ACCELERATOR ACC_ALT, Asc( "A" ) ;
            FILENAME "..\bitmaps\16x16\info.bmp"
         SEPARATOR
         MENUITEM "&Exit demo..." ACTION ;
            If( MsgYesNo( "Do you want to end ?", "Please, Select" ), oWnd:End,) ;
            MESSAGE "End the execution of this demo"
      ENDMENU

      MENUITEM "&Clients Control" ACTION Clients()

      MENUITEM "&Utilities"
      MENU
         MENUITEM "&Calculator..." ACTION WinExec( "Calc" ) ;
            MESSAGE "Calling Windows Calculator"

         MENUITEM "C&alendar..."  ACTION WinExec( "Calendar" ) ;
            MESSAGE "Calling Windows Calendar"

         SEPARATOR

         MENUITEM "&Writing..."    ACTION WinExec( "Write" ) ;
            MESSAGE "Calling Windows Write"
      ENDMENU

   ENDMENU

return oMenu

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

function Clients()

   local oDlg
   local oLbx
   local cVar

   local aHBitMaps:= { ReadBitmap( 0, "..\bitmaps\Level1.bmp" ), ; // BitMaps de 14 x 32
                       ReadBitmap( 0, "..\bitmaps\Level2.bmp" ), ;
                       ReadBitmap( 0, "..\bitmaps\Level3.bmp" ), ;
                       ReadBitmap( 0, "..\bitmaps\Level4.bmp" ),;
                       ReadBitmap( 0, "..\bitmaps\Level5.bmp" ) }
   local n

   if ! File( "clientes.dbf" )
      DbCreate( "Clientes.dbf", { { "Nombre",    "C", 40, 0 },;
                                  { "Direccion", "C", 50, 0 },;
                                  { "Telefono",  "C", 12, 0 },;
                                  { "Edad",      "N",  2, 0 },;
                                  { "Productos", "C", 10, 0 },;
                                  { "Nivel",     "N",  2, 0 } } )
   endif

   USE Clientes

   if RecCount() == 0
      APPEND BLANK
   endif

   INDEX ON Clientes->Nombre TO CliName

   SET INDEX TO CliName

   GO TOP

   DEFINE DIALOG oDlg FROM 3, 3 TO 26, 79 TITLE "Clients Management"

   @ 0,  1 SAY " &Clients List"  OF oDlg

   @ 1, 1 LISTBOX oLbx FIELDS aHBitmaps[ Max( 1, Clientes->Nivel ) ],;
                              Clientes->Nombre, AllTrim( Clientes->Direccion ),;
                              Clientes->Telefono,;
                              Str( Clientes->Edad, 3 ) ;
          HEADERS    "L", "Name", "Address", "Phone", "Age" ;
          FIELDSIZES 16, 222, 213, 58, 24 ;
          SIZE 284, 137 OF oDlg

   // Lets use different row colors
   oLbx:nClrText      = { || SelColor( Clientes->Nivel ) }
   oLbx:nClrForeFocus = { || SelColor( Clientes->Nivel ) }
   oLbx:bRClicked     = { | nRow, nCol | ShowPopup( nRow, nCol, oLbx ) }
   // Try different line styles !!!
   oLbx:nLineStyle = 1
   oLbx:bKeyChar := {|nKey| if( nKey == VK_RETURN , EditRecord( oLbx ) , )}

   oLbx:aJustify = { .f., .f., .t., .f., .t. }

   // TWBrowse():lKinetic = .F. // changed as global setting

   // Uncomment this to quickly calculate the desired columns width
   // Right click with the mouse over the browse and you will
   // see the columns sizes!
   // oLbx:bRClicked = { || oLbx:ShowSizes() }

   @ 8.7,  1.4 BUTTON "&New"    OF oDlg ACTION EditClient( oLbx, .t. ) ;
                                            SIZE 40, 12
   @ 8.7,  9.4 BUTTON "&Modify" OF oDlg ACTION EditClient( oLbx, .f. ) ;
                                              SIZE 40, 12
   @ 8.7, 17.4 BUTTON "&Delete" OF oDlg ACTION DelClient( oLbx )  SIZE 40, 12
   @ 8.7, 25.4 BUTTON "&Search" OF oDlg ACTION SeekClient( oLbx ) SIZE 40, 12

   @ 8.7, 33.4 BUTTON "&Print"  OF oDlg ;
      ACTION oLbx:Report( "clients Report", .t. ) ;  // .t. --> wants preview
      SIZE 40, 12

   @ 8.7, 42 BUTTON "&Exit"   OF oDlg ACTION oDlg:End()         SIZE 40, 12

   ACTIVATE DIALOG oDlg

   USE

   AEval( aHBitmaps, { | hBmp | DeleteObject( hBmp ) } )

return nil

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

function EditRecord( oLbx )

  local i
  local cVar
  local cAlias := oLbx:cAlias

   for i := 1 to 4
      cVar = ( cAlias )->( FieldGet( i ) )
      if ! oLbx:lEditCol( i + 1, @cVar,, { || Validate() } )
         exit
      endif
      ( cAlias )->( FieldPut( i , cVar ) )
   next

return nil

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

function Validate()

    local lOk

    lOk := MsgYesNo( 'Is it ok ?' )
    MsgInfo( lOk )

return ( lOk )

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

function ShowPopup( nRow, nCol, oLbx )

   local oPopup

   MENU oPopup POPUP
      MENUITEM "&New"      ACTION EditClient( oLbx, .t. )
      MENUITEM "&Modify"   ACTION EditClient( oLbx, .f. )
      MENUITEM "&Delete"   ACTION DelClient( oLbx )
      MENUITEM "&Search"   ACTION SeekClient( oLbx )
      MENUITEM "&Print"    ACTION oLbx:Report( "clients Report", .t. )
      SEPARATOR
      MENUITEM "&Browse lines style"
      MENU
         MENUITEM "None    (0)" ACTION oLbx:nLineStyle := 0, oLbx:Refresh()
         MENUITEM "Black   (1)" ACTION oLbx:nLineStyle := 1, oLbx:Refresh()
         MENUITEM "Gray    (2)" ACTION oLbx:nLineStyle := 2, oLbx:Refresh()
         MENUITEM "3D      (3)" ACTION oLbx:nLineStyle := 3, oLbx:Refresh()
         MENUITEM "DOTED   (4)" ACTION oLbx:nLineStyle := 4, oLbx:Refresh()
         MENUITEM "V_BLACK (5)" ACTION oLbx:nLineStyle := 5, oLbx:Refresh()
         MENUITEM "V_GRAY  (6)" ACTION oLbx:nLineStyle := 6, oLbx:Refresh()
         MENUITEM "H_BLACK (7)" ACTION oLbx:nLineStyle := 7, oLbx:Refresh()
         MENUITEM "H_GRAY  (8)" ACTION oLbx:nLineStyle := 8, oLbx:Refresh()
      ENDMENU
      SEPARATOR
      MENUITEM "&Exit"     ACTION oLbx:oWnd:End()
   ENDMENU

   ACTIVATE POPUP oPopup AT nRow, nCol OF oLbx

return nil

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

static function SelColor( nNivel )

   local nColor := CLR_BLACK

   do case
      case nNivel == 1
           nColor = CLR_HRED

      case nNivel == 2
           nColor = CLR_HGREEN

      case nNivel == 3
           nColor = CLR_HBLUE
   endcase

return nColor

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

static function EditClient( oLbx, lAppend )

   local oDlg
   local lFivePro
   local lDialog
   local lObjects
   local nNivel
   local cName
   local cAddress
   local cPhone
   local nAge
   local lSave := .f.
   local nOldRec := RecNo()

   DEFAULT lAppend := .f.

   if lAppend
      GOTO BOTTOM
      SKIP
   endif

   lFivePro = "F" $ Clientes->Productos
   lDialog  = "D" $ Clientes->Productos
   lObjects = "O" $ Clientes->Productos
   nNivel   = max( 1, Clientes->Nivel )
   cName    = Clientes->Nombre
   cAddress = Clientes->Direccion
   cPhone   = Clientes->Telefono
   nAge     = Clientes->Edad

   DEFINE DIALOG oDlg FROM 8, 2 TO 25, 65 ;
      TITLE If( lAppend, "New Customer", "Customer Update" )

   @ 1,  1 SAY "&Name:" OF oDlg
   @ 1,  6 GET cName OF oDlg
   @ 2,  1 SAY "&Address:" OF oDlg
   @ 2,  6 GET cAddress OF oDlg

   @ 3,  1 GROUP TO 7, 8 LABEL "&Products" OF oDlg
   @ 4,  2 CHECKBOX lFivePro PROMPT "&FivePro" OF oDlg
   @ 5,  2 CHECKBOX lDialog  PROMPT "&Dialog"  OF oDlg
   @ 6,  2 CHECKBOX lObjects PROMPT "&Objects" OF oDlg

   @ 3,  9 GROUP TO 7, 17 LABEL "&Nivel" OF oDlg
   @ 4,  9 RADIO nNivel PROMPT "&Novice", "A&vanced", "&Expert" OF oDlg

   @ 3.5, 23 SAY "&Phone:" OF oDlg
   @ 4, 21 GET cPhone OF oDlg SIZE 60, 11 PICTURE "@R 99-999-9999999"

   @ 5, 23 SAY OemToAnsi( "&Age:" ) OF oDlg
   @ 6, 21 GET nAge OF oDlg SIZE 20, 11

   @ 6,  9 BUTTON "&Acept"  OF oDlg SIZE 50, 12 ACTION ( lSave := .t. , oDlg:End() )
   @ 6, 19 BUTTON "&Cancel" OF oDlg SIZE 50, 12 ACTION oDlg:End()

   ACTIVATE DIALOG oDlg CENTERED

   if lSave .and. !empty( cName )

      if lAppend
         APPEND BLANK
      endif

      Clientes->Nombre     := cName
      Clientes->Direccion  := cAddress
      Clientes->Productos  := If( lFivePro, "F", "" ) + ;
                              If( lDialog,  "D", "" ) + ;
                              If( lObjects, "O", "" )

      Clientes->Nivel      := nNivel
      Clientes->Telefono   := cPhone
      Clientes->Edad       := nAge

      oLbx:Refresh()          // We want the ListBox to be repainted

   else

      if Empty( cName ) .and. lSave
         MsgAlert( "Please write a name" )
      endif

      GOTO nOldRec

   endif

return nil

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

static function DelClient( oLbx )

   if MsgYesNo( "Are you sure to delete this record ?" )
      DELETE
      PACK
      oLbx:Refresh()  // Repaint the ListBox
   endif

return nil

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

static function SeekClient( oLbx )

   local cNombre := Space( 30 )
   local nRecNo  := RecNo()

   SET SOFTSEEK ON

   if MsgGet( "Search", "Customer Name", @cNombre,;
              "..\bitmaps\lupa.bmp" )

      if ! DbSeek( cNombre )
         MsgAlert( "I don't find that customer" )
         GO nRecNo
      else
         oLbx:UpStable()           // Corrects same page stabilizing Bug
         oLbx:Refresh()            // Repaint the ListBox
      endif
   endif

return nil

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

function OpenDbf()

   local cFile := cGetFile( "Clipper DataBase (*.dbf) | *.dbf", "Select a DBF" )

   if ! Empty( cFile )
      USE ( cFile )

      // Quick and easy browses!
      // Fully integrated into a Dialog Box !!!

      Browse( "FiveWin Automatic Browse Power",;
              "Easy Browses without pain...",;
              { || MsgInfo( "This will be executed from first button...", "Info1" ) },;
              { || MsgInfo( "You can atach any action to the buttons...", "Info2" ) },;
              { || MsgInfo( "We also provide full source code of this...", "Info3" ) },;
              { || MsgInfo( "So you can adapt it to your necesities", "Info4" ) } )
      USE
   endif

return nil

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

procedure AppSys   // XBase++ requirement

return


Kapiaba
Colaborador

Colaborador
 
Mensagens: 1766
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 311 vezes
Mens.Curtidas: 119 vezes

Como mudar cor do botão?

Mensagempor Kapiaba » 17 Ago 2015 12:38

Uma idéia:

#Include "FiveWin.Ch"

//--------------------------//BOTONES DE DIFERENTES COLORES
Function Main()   //ColorBtns()

   local oDlg,oBt1,oBt2

   //SkinButtons()

   DEFINE DIALOG oDlg FROM 5,5 TO 10,60 TITLE "BOTONES DE COLORES"

   @ 3,2  BTNBMP oBt1 PROMPT "Un Color"   SIZE 60,20 ACTION MsgInfo("Nada que hacer")
   @ 3,80 BTNBMP oBt2 PROMPT "Otro Color" SIZE 60,20 ACTION oDlg:End()

   Color_oBot(oBt1,"ORO")   // ouro

   Color_oBot(oBt2,"PLATA") // prata

   ACTIVATE DIALOG oDlg Centered

Return nil
//------------------------------
Function Color_oBot(oBot,cColor)

   DEFAULT cColor := NIL

   IF !cColor = NIL

     if cColor = "ORO"
        oBot:bClrGrad = { | lMouseOver | If( ! lMouseOver,;
        { { 1.00,14481663,38075 }, ;
          { 1.00,38075,14481663 } }, ;
        { { 0.10,16777215,9363707 },;
          { 0.10,9363707,16777215 } } ) }

        oBot:SetColor(0)

      elseif cColor = "PLATA"

        oBot:bClrGrad = { | lMouseOver | If( ! lMouseOver,;
        { { 0.30,12961221,16777215 },;
          { 0.30,16777215,12961221 } },;
        { { 0.10,9363707,16777215 },;
          { 0.10,16777215,9363707 } } ) }

        oBot:SetColor(0)

     endif

   ENDIF

Return nil


Kapiaba
Colaborador

Colaborador
 
Mensagens: 1766
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 311 vezes
Mens.Curtidas: 119 vezes

Como mudar cor do botão?

Mensagempor Daiane » 18 Ago 2015 09:11

Galera eu consegui inserir a cor,mas pra isso tive que mudar o tipo do butão,quando vi o exemplo que Kapiaba postou
eu vi que no exemplo dele é BTNBMP e no que eu estava usando era BUTTUN. Depois que mudei para BTNBMP ele trocou de cor
Porém ele não ta conseguindo dar um action no botão. eu clico no botão e não acontece nada.

O Antes (o botão funcionava mas não mudava a cor )
   REDEFINE BUTTON ::bCadNis ID 4001 OF ::oFld:aDialogs[ 1 ];
      ACTION ::telaCadNis(inc)

Depois (botão muda a cor mas não funciona. ao clicar não acontece nada)
   REDEFINE BTNBMP ::bCadNis ID 4001 OF ::oFld:aDialogs[ 1 ];
      ACTION ::telaCadNis(inc)


Vou postar os resto do codigo para vcs entenderem melhor:
METHOD Confirmar(inc) CLASS CadFuncionarios    
   local xreg,cQuestao:="Confirma dados deste funcionário?"

   IF ::enableSalvar(inc)   
      // Aqui tem varias comandos para verificar os campos e para salvar os dados
      //Retirei pq era enorme
   ELSE
      msgAlert("Preencha os campos obrigatórios antes de prosseguir!","Atenção, campos obrigatórios não preenchidos!")
      if EMPTY(::cCCDATA) .and. inc = .T.
         ::telaCadNis(inc)
      endif   
   ENDIF    
RETURN

METHOD EnableSalvar(campo) CLASS CadFuncionarios
         IF !EMPTY(::cNOMECOMP ) .AND.;
      !EMPTY(::cNASCTO   ) .AND.;
      !EMPTY(::cADMISSAO ) .AND.;
      !EMPTY(::cSINDICATO) .AND.;
      !EMPTY(::cNACIONAL)  .AND.;
      !EMPTY(::cRACA)      .AND.;
      !EMPTY(::cdefici)    .AND.;
      !EMPTY(::cHSNORMAL)  .AND.;
      !EMPTY(::cCODFUN)    .AND.;
      !EMPTY(::cTPCONTRAT) .AND.;
      !EMPTY(::cINSTRUCAO) .AND.;
      !EMPTY(::cRSTPADM)   .AND.;
      !EMPTY(::ccodadmcag) .AND.;
      !EMPTY(::ccateg)     .AND.;
      !EMPTY(::cOCORR)     .AND.;
      !EMPTY(::cRSVINC)    .AND.;
      !EMPTY(::cCTPSDTE)   .AND.;
      !EMPTY(::cCCDATA)
      ELSE
           ::obrigatorios(::gNOMECOMP,::cNOMECOMP)
         ::obrigatorios(::gNASCTO,::cNASCTO)
         ::obrigatorios(::gADMISSAO,::cADMISSAO)
         ::obrigatorios(::gSINDICATO,::cSINDICATO)
         ::obrigatorios(::gNACIONAL,::cNACIONAL)
         ::obrigatorios(::gRACA,::cRACA)
         ::obrigatorios(::gdefici,::cdefici)
         ::obrigatorios(::gHSNORMAL,::cHSNORMAL)
         ::obrigatorios(::gCODFUN,::cCODFUN)
         ::obrigatorios(::gTPCONTRAT,::cTPCONTRAT)
         ::obrigatorios(::gINSTRUCAO,::cINSTRUCAO)
         ::obrigatorios(::gRSTPADM,::cRSTPADM)
         ::obrigatorios(::gcodadmcag,::ccodadmcag)
         ::obrigatorios(::gcateg,::ccateg)
         ::obrigatorios(::gOCORR,::cOCORR)
         ::obrigatorios(::gRSVINC,::cRSVINC)
         ::obrigatorios(::gCTPSDTE,::cCTPSDTE)   
          ::obrigatorios(::bCadNis,"")
                   return .F.
   ENDIF
return .T.

METHOD Obrigatorios(obj,texto) CLASS CadFuncionarios
::obj:=obj
::texto:=texto
   if EMPTY(::texto)                 //Cor personalisada vermelho claro
     ::obj:SetColor( GetSysColor(8), RGB(249,176,180))
     ::obj:refresh()
   else
     ::obj:SETCOLOR(GetSysColor(8),GetSysColor(5))
     ::obj:refresh()
   endif
RETURN .T.


No method confirmar eu chamo minha dlg e quando a fecho e vou clicar no botão,acontece esse erro em anexo
Anexos
error.txt
(14.08 KiB) Baixado 42 vezes
XHb 1.2.1 + FW 12.05 + Pelles C IDE
"Eu adoraria mudar o mundo, mas não me deram o código-fonte."
Avatar de usuário

Daiane
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 122
Data de registro: 28 Out 2014 15:19
Cidade/Estado: Feira de Santana - BA
Curtiu: 27 vezes
Mens.Curtidas: 13 vezes

Como mudar cor do botão?

Mensagempor Kapiaba » 18 Ago 2015 09:36

E o que:

 ACTION ::telaCadNis(inc)


Tem a ver com METHOD Confirmar()???

????

abs.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1766
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 311 vezes
Mens.Curtidas: 119 vezes

Como mudar cor do botão?

Mensagempor Kapiaba » 18 Ago 2015 09:39

Error description: Warning BASE/1004  Message not found: TBTNBMP:TELACADNIS


Em TELACADNIS, tem um ID, que não é reconhecido pela classe, para usar BTNBMP, veja \samples.

Veja a chamada nesta linha, chamada de(Called From):

Called from: C:\mfolhawin\CadFuncionarios.000 => (b)CADFUNCIONARIOS:INCOUALT( 1169 ) ???


Abs
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1766
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 311 vezes
Mens.Curtidas: 119 vezes

Como mudar cor do botão?

Mensagempor Daiane » 18 Ago 2015 09:41

Acontece que esse method é a chamada de uma nova janela
ou seja eu estou numa janela e ao clicar nesse botão é chamada outra janela de casdatro

Ai tipo quando eu vou no confirmar se os campos que estão nessa janela nova tiverem em branco ele deixa o botão vermelho para
o usuario saber que falta ainda cadastrar as informações do PIs
como eu não havia conseguida ainda mudar a cor do botão,eu chamei este method para abrir a janela caso os campos estivessem em branco

O fato deu ter mudado de BUTTON para BTNBMP,pode esta causando este problema?
pq quando mudo novamente para BUTTON ele abre a janela direitinho

Essa linhda de codigo:
Called from: C:\mfolhawin\CadFuncionarios.000 => (b)CADFUNCIONARIOS:INCOUALT( 1169 ) ???

é o action do botão,ja dei uma olhada e aparentemente ta ok.

Vou postrar o method da nova dlg,acho que tem algo nela que não esteja reconhecendo o BTNBMP
so que eu sou nova no fivewin e não tenho muita experiencia se é mesmo o BTNBMP
pode dar uma olhada?
REDEFINE BTNBMP ::bCadNis ID 4001 OF ::oFld:aDialogs[ 1 ];
      ACTION ::telaCadNis(inc)


METHOD telaCadNis(inc) CLASS CadFuncionarios

  DEFINE DIALOG oDlgNis RESOURCE "#1152" OF ::oDlg
   ::IniciaVarNis(inc)
   
   REDEFINE SAY ID 4005 OF oDlgNis                 
   REDEFINE SAY ID 4008 OF oDlgNis
   REDEFINE SAY ID 4011 OF oDlgNis
   REDEFINE SAY ID 4013 OF oDlgNis
   REDEFINE SAY ID 4015 OF oDlgNis
   REDEFINE SAY ID 4017 OF oDlgNis
   REDEFINE SAY ID 4021 OF oDlgNis
 
     REDEFINE GET ::dCCDATA VAR ::cCCDATA ID 4010 PICTURE "99/99/9999" OF oDlgNis  VALID ( ::ChecaData())
   REDEFINE GET ::dCCTERM VAR ::cCCTERM ID 4012 PICTURE "" OF oDlgNis 
   REDEFINE GET ::dCCLIVR VAR ::cCCLIVR ID 4014 PICTURE "99999999" OF oDlgNis when ( IF (!EMPTY(::cCCDATA) .AND. IF (VALTYPE(::cCCDATA)="C",CTOD(::cCCDATA),::cCCDATA) > CTOD("01/01/2010"),.F.,.T.) )
   REDEFINE GET ::dCCFOLH VAR ::cCCFOLH ID 4016 PICTURE "9999" OF oDlgNis   when ( IF (!EMPTY(::cCCDATA) .AND. IF (VALTYPE(::cCCDATA)="C",CTOD(::cCCDATA),::cCCDATA) > CTOD("01/01/2010"),.F.,.T.) )
   REDEFINE GET ::dCCCART VAR ::cCCCART ID 4018 PICTURE "" OF oDlgNis   
   REDEFINE GET ::dCCUF VAR    ::cCCUF ID 4020 PICTURE "" OF oDlgNis
   REDEFINE GET ::dCCMUNI VAR ::cCCMUNI ID 4022 PICTURE "" OF oDlgNis
   REDEFINE COMBOBOX ::dCCTIPO VAR ::cCCTIPO ID 4006 OF oDlgNis;                  
                     ITEMS {"Certidão Administrativa de Nascimento Indígena",; 
                                        "Certidão de Casamento",; 
                                        "Certidão de Nascimento",; 
                                          "Certidão de óbito"}
                                          
   REDEFINE GET ::dCCLOG2 VAR ::cCCLOG2 ID 4026 PICTURE "" OF oDlgNis
   REDEFINE GET ::dCCNUM2 VAR ::cCCNUM2 ID 4027 PICTURE "9999" OF oDlgNis
   
   REDEFINE GET ::dTpLograd VAR ::cTpLograd   ID 4113 OF oDlgNis 
   REDEFINE BUTTONBMP ID 4114 OF  oDlgNis BITMAP "#7002" ;
      ACTION (JSLOGRADOURO():New(oDlgNis,@::dTpLograd),::dCCLOG2:setFocus())
   
   REDEFINE GET ::dCodOrgao VAR ::cCodOrgao   ID 4060 OF oDlgNis VALID ::GetDescUm()
   REDEFINE SAY ::dDescOrgao VAR ::cDescOrgao ID 4044 OF oDlgNis
   REDEFINE BUTTONBMP ID 4108 OF  oDlgNis BITMAP "#7002" ;
      ACTION (JSOrgaoEmi():New(oDlgNis,@::dCodOrgao,::dDescOrgao,,,.t.),::dCCTIPO:setFocus())
      
   REDEFINE GET ::dCodMunPis VAR ::cCodMunPis   ID 4109 OF oDlgNis VALID (::DescMunicipio())
   REDEFINE BUTTONBMP ::bcodmunpis ID 4110 OF oDlgNis BITMAP "#7002";
   ACTION (JSCodCid():New(oDlgNis, ::dCodMunPis,::dCCMUNI,::dCCUF), ::bSalvarNis:setFocus()) CANCEL   
      
   REDEFINE BUTTON ::bSalvarNis ID 4009 OF oDlgNis;
      ACTION oDlgNis:End() when(!empty(::cCCDATA) .and. !empty(::cCCTERM) .and. !empty(::cCCCART) .and. !empty(::cCCCART);
      .and. !empty(::cCCUF) .and. !empty(::cCCMUNI) .and. !empty(::cCCTIPO) .and. !empty(::cCCLOG2) .and. !empty(::cCCNUM2);
      .and. !empty(::cTpLograd) .and. !empty(::cCodOrgao) .and. !empty(::cCodMunPis) )
      
      //oDlgNis:End()
    ACTIVATE DIALOG oDlgNis CENTERED
RETURN
Anexos
Cadastro PISNIS_2.jpg
XHb 1.2.1 + FW 12.05 + Pelles C IDE
"Eu adoraria mudar o mundo, mas não me deram o código-fonte."
Avatar de usuário

Daiane
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 122
Data de registro: 28 Out 2014 15:19
Cidade/Estado: Feira de Santana - BA
Curtiu: 27 vezes
Mens.Curtidas: 13 vezes

Como mudar cor do botão?

Mensagempor Kapiaba » 18 Ago 2015 10:25

Para usar BTNBMP é assim, tem que ter a BITMAP do botao:

BTN.PRG

#include "Fivewin.ch"

FUNCTION MAIN()

    LOCAL oDlg

    DEFINE DIALOG oDlg;
           RESOURCE "TEST"

    REDEFINE BTNBMP;
             ID 101 OF oDlg;
             RESOURCE "TEST" NOROUND

    ACTIVATE DIALOG oDlg;
             CENTER

RETURN NIL


BTN.RC

TEST BITMAP 
{
'42 4D 12 04 00 00 00 00 00 00 36 00 00 00 28 00'
'00 00 11 00 00 00 13 00 00 00 01 00 18 00 00 00'
'00 00 DC 03 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 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 00 FF FF FF F1 C6 B7'
'F1 C6 B7 F2 C9 B8 F3 C9 B9 F3 C9 B9 F3 C9 B9 F3'
'C9 B9 F2 C9 B8 F5 C8 B3 F5 C8 B3 F5 C8 B3 F4 C8'
'B2 F2 C5 B0 FF FF FF FF FF FF FF FF FF 00 F4 C1'
'AB F9 CB B7 F9 CB B7 FB CE B9 FA CE BC FA CE BC'
'FA CE BC FA CE BC FB CF B9 FB CD B6 FB CD B2 FB'
'CD B2 FA CB B1 F7 C8 AE F2 C5 B0 FF FF FF FF FF'
'FF 00 F6 C3 AD FC CD BA FC CD BA FC D0 BE FB D2'
'C1 FC D0 BE FC D0 BE FC D0 BE FB D3 BD FC D3 B7'
'FB D1 B6 FB D1 B6 FB CF B2 F9 C9 AD F3 C6 B1 FF'
'FF FF FF FF FF 00 F6 C3 AD FC CD BA FC CD BA FC'
'D0 BE FB D2 C1 FC D0 BE FC D0 BE FC D0 BE FB D3'
'BD FC D3 B7 FB D1 B6 FB D1 B6 FB CF B2 F9 C9 AD'
'F3 C6 B1 FF FF FF FF FF FF 00 F6 C3 AD FC D0 BE'
'FC D0 BE FC D3 C2 FC D3 C2 FC D5 C2 FC D5 C2 FC'
'D5 C2 FC D5 C2 FC D4 BA FC D3 B7 FC D3 B7 FC D1'
'B3 FA CB AF F4 C8 B2 FF FF FF FF FF FF 00 F6 C3'
'AD FC D0 BE FC D0 BE FC D3 C2 FC D3 C2 FC D5 C2'
'FC D5 C2 FC D5 C2 FC D5 C2 FC D4 BA FC D3 B7 FC'
'D3 B7 FC D1 B3 FA CB AF F4 C8 B2 FF FF FF FF FF'
'FF 00 F6 C7 B1 FC D3 C2 FC D3 C2 FC D6 C5 FC D6'
'C5 FC D6 C5 FC D6 C5 FD D5 C3 00 00 00 FC D4 BA'
'FB CF B2 FB CF B2 FB CF B2 FA CB B1 F5 C8 B3 FF'
'FF FF FF FF FF 00 F6 C8 B4 FC D5 C5 FC D5 C5 FC'
'D5 C5 FC D5 C5 FC D5 C5 FC D5 C5 00 00 00 00 00'
'00 00 00 00 FB D3 BD FB D3 BD FB CE B6 FA CD B5'
'F3 C9 B5 FF FF FF FF FF FF 00 F5 CA B7 FB D6 C8'
'FB D6 C8 FB D6 C8 FB D6 C8 FB D3 C1 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 FB CE B6 FB CE'
'B6 FB CD B6 F3 CB B9 FF FF FF FF FF FF 00 F6 CB'
'B8 FC D8 C9 FC D8 C9 FD D8 CA FD D8 CA 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 FB CE B6 FB CD B9 F4 CC BA FF FF FF FF FF'
'FF 00 F6 CB B8 FC D8 C9 FC D8 C9 FD D8 CA FC DB'
'CD FC DB CD FC DB CD FC DB CD FB D6 C8 FB CD B9'
'FB CD B9 FB CD B9 FB CD B9 FB CD B9 F4 CC BA FF'
'FF FF FF FF FF 00 F7 CE BD FC DB CD FC DB CD FC'
'DB CD FC DB CD FC DB CD FC DB CD FC DB CD FB D6'
'C8 FB CD B9 FB CD B9 FB CD B9 FB CD B9 FB CD B9'
'F3 CC BC FF FF FF FF FF FF 00 F8 D0 BF FC DD D0'
'FC DD D0 FD DD CE FD D9 CA FB D6 C8 FB D6 C8 FB'
'D6 C8 FB D6 C8 FD CE BB FC CD BA FC CD BA FB CD'
'B9 FC CD BA F3 CC BC FF FF FF FF FF FF 00 F7 D3'
'C4 FC E1 D4 FC E1 D4 FD E0 D1 FC DB CD FC D8 C9'
'FC D8 C9 FC D8 C9 FB D5 C8 FC D0 BE FD CE BB FD'
'CE BB FD CE BB FA CE BC F3 CC BC FF FF FF FF FF'
'FF 00 F7 D3 C4 FC E1 D4 FC E1 D4 FD E0 D1 FC DB'
'CD FC D8 C9 FC D8 C9 FC D8 C9 FB D5 C8 FC D0 BE'
'FD CE BB FD CE BB FD CE BB FA CE BC F3 CC BC FF'
'FF FF FF FF FF 00 F9 D8 CA FE E6 DA FE E6 DA FC'
'E3 D8 FD DE D1 FD DB CE FD DB CE FD D9 CA FC D8'
'C9 FC D5 C5 FC D3 C5 FC D3 C5 FC D3 C2 FA CE BC'
'F4 CC BA FF FF FF FF FF FF 00 FD E0 D1 FE EA E1'
'FE EA E1 FE E6 DA FC E1 D4 FD E0 D1 FD E0 D1 FC'
'DD D0 FD DB CE FD D9 CA FB D8 C8 FB D8 C8 FC D6'
'C5 FA CE BC F3 C9 B9 FF FF FF FF FF FF 00 FF FF'
'FF FD E0 D1 FD E0 D1 F9 D8 CA F7 D3 C4 F8 D0 BF'
'F8 D0 BF F7 CE BD F4 CC BA F6 CB B8 F5 CA B7 F5'
'CA B7 F7 C8 B5 F4 C5 AF FF FF FF FF FF FF FF FF'
'FF 00'
}

TEST DIALOG 37, 56, 225, 100
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
FONT 8, "MS Sans Serif"
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
{
CONTROL "", 101, "TBtnBmp", WS_CHILD | WS_VISIBLE, 15, 20, 12, 13
}


Abs

Kapiaba
Colaborador

Colaborador
 
Mensagens: 1766
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 311 vezes
Mens.Curtidas: 119 vezes




Retornar para FiveWin

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 11 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