Subject |
Re: Borderless Button |
From |
Michael <michael@itntgroup.com.au> |
Date |
Sun, 17 Feb 2019 21:29:51 -0500 |
Newsgroups |
dbase.getting-started |
Thanks Mervyn, thats exactly what I was looking for, I would never have worked out how to do it.
What limitations are there?
Best Regards,
Michael.
Mervyn Bick Wrote:
> On 2019-02-17 9:37 AM, Michael wrote:
> > Hi Guys,
> >
> > Is there some way we can make the button completely borderless?
> > It seems if you put it on a blank canvass and select none as the border it still have a slight line on the right and bottom. I would like to have it completely borderless so that I can blend it in with images but still have all the button characteristics.
>
> Yes but there are conditions and limitations.
>
> In the form's form_onOpen event handler add
>
> if type("SendMessageA") # "FP"
> extern clong SendMessageA(chandle, cint, cword, clong) user32
> endif
> #define TB_MARKBUTTON 0x406
> #define TB_BUTTON_IDENTIFIER 0x10
> #define TB_FALSE 0
> #define TB_TRUE 1
>
> SendMessageA(this.pushbutton1.hWnd,TB_MARKBUTTON,TB_BUTTON_IDENTIFIER,TB_FALSE)
> //Send the message to all pushbuttons you want to appear flat
>
>
> Each pushbutton must have it's systemTheme property set false.
>
> If you set the pushbutton's speedBar property true the user can't tab to it.
>
> If you leave the pushbutton's speedBar property false (the default) the
> user can tab to the control but a dotted box appears on the pushbutton
> when it has focus.
>
> A little example is attached.
>
> Mervyn.
>
> ** END HEADER -- do not remove this line
> //
> // Generated on 2019-02-17
> //
> parameter bModal
> local f
> f = new flat_buttonForm()
> if (bModal)
> f.mdi = false // ensure not MDI
> f.readModal()
> else
> f.open()
> endif
>
> class flat_buttonForm of FORM
> with (this)
> onOpen = class::FORM_ONOPEN
> height = 16.0
> left = 52.5714
> top = 1.1364
> width = 40.0
> text = ""
> systemTheme = true
> endwith
>
> this.PUSHBUTTON1 = new PUSHBUTTON(this)
> with (this.PUSHBUTTON1)
> onClick = class::PUSHBUTTON1_ONCLICK
> systemTheme = false
> height = 1.0909
> left = 12.0
> top = 1.0
> width = 15.2857
> text = ""
> borderStyle = 4 // Single
> endwith
>
> this.PUSHBUTTON2 = new PUSHBUTTON(this)
> with (this.PUSHBUTTON2)
> onClick = class::PUSHBUTTON2_ONCLICK
> systemTheme = false
> height = 1.0909
> left = 12.0
> top = 4.5
> width = 15.2857
> text = ""
> speedBar = true
> borderStyle = 4 // Single
> endwith
>
> this.PUSHBUTTON3 = new PUSHBUTTON(this)
> with (this.PUSHBUTTON3)
> height = 1.0909
> left = 12.0
> top = 8.0
> width = 15.2857
> text = "Pushbutton3"
> endwith
>
> this.RADIOBUTTON1 = new RADIOBUTTON(this)
> with (this.RADIOBUTTON1)
> onChange = class::RADIOBUTTON1_ONCHANGE
> height = 1.0909
> left = 12.0
> top = 11.5
> width = 15.7143
> text = "Show borders"
> group = true
> value = true
> endwith
>
> this.RADIOBUTTON2 = new RADIOBUTTON(this)
> with (this.RADIOBUTTON2)
> height = 1.0909
> left = 12.0
> top = 14.0
> width = 15.7143
> text = "Hide borders"
> endwith
>
> this.TEXTLABEL1 = new TEXTLABEL(this)
> with (this.TEXTLABEL1)
> height = 1.0
> left = 8.0
> top = 1.0909
> width = 3.0
> text = "*"
> fontSize = 14.0
> alignHorizontal = 2 // Right
> endwith
>
> this.TEXTLABEL2 = new TEXTLABEL(this)
> with (this.TEXTLABEL2)
> height = 1.0
> left = 8.0
> top = 4.5
> width = 3.0
> text = "*"
> fontSize = 14.0
> alignHorizontal = 2 // Right
> endwith
>
> this.TEXTLABEL3 = new TEXTLABEL(this)
> with (this.TEXTLABEL3)
> height = 1.0
> left = 28.0
> top = 1.0909
> width = 12.0
> text = "*"
> fontSize = 14.0
> endwith
>
> this.TEXTLABEL4 = new TEXTLABEL(this)
> with (this.TEXTLABEL4)
> height = 1.0
> left = 28.0
> top = 4.5
> width = 12.0
> text = "*"
> fontSize = 14.0
> endwith
>
>
> function PUSHBUTTON1_onClick()
> ? 'PB1 clicked'
> return
>
> function PUSHBUTTON2_onClick()
> ? 'PB2 clicked'
> return
>
> function RADIOBUTTON1_onChange()
> if this.value = true
> form.pushbutton1.borderStyle = 4
> form.pushbutton2.borderStyle = 4
> else
> form.pushbutton1.borderStyle = 3
> form.pushbutton2.borderStyle = 3
> endif
> return
>
> function form_onOpen()
> if type("SendMessageA") # "FP"
> extern clong SendMessageA(chandle, cint, cword, clong) user32
> endif
> #define TB_MARKBUTTON 0x406
> #define TB_BUTTON_IDENTIFIER 0x10
> #define TB_FALSE 0
> #define TB_TRUE 1
> SendMessageA(this.pushbutton1.hWnd,TB_MARKBUTTON,TB_BUTTON_IDENTIFIER,TB_FALSE)
> SendMessageA(this.pushbutton2.hWnd,TB_MARKBUTTON,TB_BUTTON_IDENTIFIER,TB_FALSE)
> clear
> return
>
> endclass
>
|
|