BTNBMP

BTNBMP

Postby MarcoBoschi » Thu Mar 13, 2014 2:29 pm

Hi to all :lol:
How to obtain a vertical center and horizontal center in BTNBMP buttons?
My goal is to display only a coloured button without a bmp contained in it
in other words a coloured Button it's ok
Best regards
Marco


Code: Select all  Expand view

#include "fivewin.ch"
FUNCTION MAIN()

LOCAL oDlg

LOCAL oBtn1
LOCAL oBtn2

DEFINE DIALOG oDlg FROM 100 , 100 TO 500 , 500   PIXEL

@ 40 , 10 BTNBMP oBtn1 PROMPT "Button &1" OF oDlg  SIZE 60 , 20   ACTION MsgInfo( "1" )

@ 70 , 10 BTNBMP oBtn2 PROMPT "Button &2" OF oDlg  SIZE 60 , 20   ACTION MsgInfo( "2" )
oBtn2:setcolor( CLR_WHITE, CLR_HRED )
ACTIVATE DIALOG oDlg

RETURN NIL
 
User avatar
MarcoBoschi
 
Posts: 1027
Joined: Thu Nov 17, 2005 11:08 am
Location: Padova - Italy

Re: BTNBMP

Postby ukoenig » Thu Mar 13, 2014 3:03 pm

Marco,

do You mean a GRADIENT painted horizontal or vertical ?

oBtn1:bClrGrad = { | lMouseOver | If( ! lMouseOver,;
{ { 0.50, 11513775, 16777215 }, ;
{ 0.50, 16777215, 11513775 } }, ;
{ { 0.50, 16761992, 16777215 }, ;
{ 0.50, 16777215, 16761992 } } ) }


best regards
Uwe :?:
Since 1995 ( the first release of FW 1.9 )
i work with FW.
If you have any questions about special functions, maybe i can help.
User avatar
ukoenig
 
Posts: 4043
Joined: Wed Dec 19, 2007 6:40 pm
Location: Germany

Re: BTNBMP

Postby karinha » Thu Mar 13, 2014 3:10 pm

Code: Select all  Expand view

#include "fivewin.ch"

FUNCTION MAIN()

   LOCAL oDlg

   LOCAL oBtn1
   LOCAL oBtn2

   DEFINE DIALOG oDlg FROM 100 , 100 TO 500 , 500   PIXEL

   // LEFT, CENTER OR RIGHT

   @ 40 , 10 BTNBMP oBtn1 PROMPT "Button &1" OF oDlg  SIZE 60 , 20 RIGHT  ;
             ACTION MsgInfo( "1" )

   @ 70 , 10 BTNBMP oBtn2 PROMPT "Button &2" OF oDlg  SIZE 60 , 20 CENTER  ;
             ACTION MsgInfo( "2" )

   oBtn2:setcolor( CLR_WHITE, CLR_HRED )

   ACTIVATE DIALOG oDlg

RETURN NIL
 


João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7431
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: BTNBMP

Postby MarcoBoschi » Thu Mar 13, 2014 3:31 pm

Dear friends,
I want to obtain a simple Button with a different colour

Is it possible to colour a BUTTON?
Text is centered in a perfect way!


Image

Code: Select all  Expand view

#include "fivewin.ch"

FUNCTION MAIN()

   LOCAL oDlg

   LOCAL oBut
   LOCAL oBtn

   DEFINE DIALOG oDlg FROM 100 , 100 TO 500 , 500   PIXEL

   // LEFT, CENTER OR RIGHT

   @ 40 , 10 BUTTON oBut PROMPT "Button" OF oDlg  SIZE 60 , 20   PIXEL

   @ 70 , 10 BTNBMP oBtn PROMPT "BtnBmp"  OF oDlg  SIZE 60 , 20
   oBtn:setcolor( CLR_WHITE, CLR_HRED )


   ACTIVATE DIALOG oDlg

RETURN NIL
User avatar
MarcoBoschi
 
Posts: 1027
Joined: Thu Nov 17, 2005 11:08 am
Location: Padova - Italy

Re: BTNBMP

Postby ukoenig » Thu Mar 13, 2014 3:48 pm

Marco,
I changed the two buttons as a test :

Image


@ nSHeight - 685, nSWidth - 105 BTNBMP oSBtn[2] OF oWnd ;
SIZE 95, 65 PIXEL 2007 ;
NOBORDER ;
PROMPT " &Window" + CRLF + "painter" ;
ACTION ( W_PAINTER(oSay1), oWnd:Refresh() ) ;
FONT oFont1 ;
CENTER
oSBtn[2]:bClrGrad = { | lMouseOver | If( ! lMouseOver,;
{ { 1, 11513775, 11513775 }, { 1, 11513775, 11513775 } }, ;
{ { 1, 16761992, 16761992 }, { 1, 16761992, 16761992 } } ) }
oSBtn[2]:cToolTip = { "Select the" + CRLF + "Window-painter","SELECT", 1, CLR_BLACK, 14089979 }
oSBtn[2]:SetColor( 0, )


@ nSHeight - 610, nSWidth - 105 BTNBMP oSBtn[3] OF oWnd ;
SIZE 95, 65 PIXEL 2007 ;
NOBORDER ;
PROMPT " &Dialog" + CRLF + "painter" ;
ACTION D_PAINTER(oSay1) ;
FONT oFont1 ;
CENTER
oSBtn[3]:bClrGrad = { | lMouseOver | If( ! lMouseOver,;
{ { 1, 255, 255 }, { 1, 255, 255 } }, ;
{ { 1, 16761992, 16761992 }, { 1, 16761992, 16761992 } } ) }
oSBtn[3]:SetColor( 16777215, )
oSBtn[3]:cToolTip = { "Select the" + CRLF + "Dialog-painter","SELECT", 1, CLR_BLACK, 14089979 }

best regards
Uwe :?:
Since 1995 ( the first release of FW 1.9 )
i work with FW.
If you have any questions about special functions, maybe i can help.
User avatar
ukoenig
 
Posts: 4043
Joined: Wed Dec 19, 2007 6:40 pm
Location: Germany

Re: BTNBMP

Postby MarcoBoschi » Thu Mar 13, 2014 5:02 pm

Uwe and karinha
Many thanks
marco
User avatar
MarcoBoschi
 
Posts: 1027
Joined: Thu Nov 17, 2005 11:08 am
Location: Padova - Italy

Re: BTNBMP

Postby MarcoBoschi » Mon Mar 17, 2014 3:58 pm

Another problem using BTNBMP
If I click using Mouse on btnbmp I can see that settext method works fine
If I press "1" or "2" on keyboard I cannot see changes into buttons.
I can't understand the reason

Help needed

Best regars
Marco

Code: Select all  Expand view

#include "fivewin.ch"
FUNCTION MAIN()
LOCAL oDlg
LOCAL oBut1
LOCAL oBut2


DEFINE DIALOG oDlg FROM 100 , 100 TO 500 , 500   PIXEL

@   1 , 10   BTNBMP oBut1  PROMPT "&1.First" OF oDlg      ;
                   SIZE 100 , 20                              ;
                   ACTION ( oBut1:settext( "Pressed..." )   , ;
                            sysrefresh()                    , ;
                            sleep( 1000 )                   , ;
                            oBut1:settext( "&1.First" )     , ;
                            sysrefresh() , MsgInfo( "OK1" )  )                   ;
                            CENTER
oBut1:setcolor( CLR_WHITE , CLR_HBLUE )

@   30 , 10   BTNBMP oBut2  OF oDlg      ;
                   SIZE 100 , 20                              ;
                   ACTION ( oBut2:settext( "Pressed..." )   , ;
                            sysrefresh()                    , ;
                            sleep( 1000 )                   , ;
                            oBut2:settext( "&2.Second" )    , ;
                            sysrefresh()  , MsgInfo("OK2"))                   ;
                            CENTER
oBut2:setcolor( CLR_WHITE , CLR_HRED )


oDlg:bKeyDown := { |nKey| Premi( nKey , oBut1 , oBut2 ) }


ACTIVATE DIALOG oDlg CENTER ON INIT ( oBut1:settext( "&1.First" ) , oBut2:settext( "&2.Second" )  )

RETURN NIL

FUNCTION PREMI( nKey , oBut1 , oBut2 )
LOCAL cPressed := UPPER( CHR( nKey ) )

DO CASE
   CASE cPressed = "1"
        oBut1:Click()
   CASE cPressed = "2"
        oBut2:Click()

ENDCASE
RETURN .T.
User avatar
MarcoBoschi
 
Posts: 1027
Joined: Thu Nov 17, 2005 11:08 am
Location: Padova - Italy

Re: BTNBMP

Postby ukoenig » Mon Mar 17, 2014 4:55 pm

Marco,

try these changes :

Code: Select all  Expand view

#include 'fivewin.ch'

FUNCTION MAIN()
LOCAL oDlg
LOCAL oBut1
LOCAL oBut2

DEFINE DIALOG oDlg FROM 100 , 100 TO 500 , 500   PIXEL

@ 1 , 10  BTNBMP oBut1  PROMPT "&1.First" SIZE 100 , 20 ;
ACTION ( sleep( 1000 ), ;
     MsgInfo( "OK1" ), ;
     oBut1:cCaption  := "&1.First", ; // back to original promttext
     oBut1:Refresh() ) ;
CENTER
oBut1:setcolor( CLR_WHITE , CLR_HBLUE )

@ 30 , 10  BTNBMP oBut2  PROMPT "&2.Second" SIZE 100 , 20 ;
ACTION ( sleep( 1000 ), ;
     MsgInfo( "OK1" ), ;
     oBut2:cCaption  := "&2.Second", ; // back to original promttext
     oBut2:Refresh() ) ;
CENTER
oBut2:setcolor( CLR_WHITE , CLR_HRED )

oDlg:bKeyDown := { |nKey| Premi( nKey , oBut1 , oBut2 ) }

ACTIVATE DIALOG oDlg CENTER

RETURN NIL

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

FUNCTION PREMI( nKey , oBut1 , oBut2 )
LOCAL cPressed := UPPER( CHR( nKey ) )

DO CASE
     CASE cPressed = "1"
          oBut1:cCaption  := "Pressed..."
          oBut1:Refresh()
          oBut1:Click()
     CASE cPressed = "2"
          oBut2:cCaption  := "Pressed..."
          oBut2:Refresh()
          oBut2:Click()
ENDCASE

RETURN .T. 
 


Best regards
Uwe :?:
Since 1995 ( the first release of FW 1.9 )
i work with FW.
If you have any questions about special functions, maybe i can help.
User avatar
ukoenig
 
Posts: 4043
Joined: Wed Dec 19, 2007 6:40 pm
Location: Germany

Re: BTNBMP

Postby MarcoBoschi » Tue Mar 18, 2014 4:40 pm

Ok,
many thanks
:D
User avatar
MarcoBoschi
 
Posts: 1027
Joined: Thu Nov 17, 2005 11:08 am
Location: Padova - Italy


Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 129 guests