[Gambas-user] Finding the Draw event name of controls not in gb.form or gb.gu.base

Bruce Steers bsteers4 at gmail.com
Thu Dec 22 13:48:29 CET 2022


I found this way...

Dim sClass As String = "Label"
  For c As Integer = 0 To Classes[sClass].Symbols.Max
    Dim sName As String = Classes[sClass].Symbols[c]
    If InStr(sName, "_") > 1 Then Print sName
  Next

I guess that's all that can be done?
BruceS


On Thu, 22 Dec 2022 at 12:21, Bruce Steers <bsteers4 at gmail.com> wrote:

>
> I have figured out a way to modify controls by simply making a class of
> the same name and overriding the Draw event.
>
> For example Label.class
> I make a class called Label.class
> Then by looking at the gb.gui.base/Label.class source i can see that the
> Draw event is called UserControl_Draw()
> So in my Label.class I can do the following example to add a gradient
> background...
>
> ' Gambas class file
>
> Export
>
> Public Sub UserControl_Draw()
>
>   Paint.Rectangle(0, 0, Me.W, Me.h)
>   Paint.Brush = Paint.LinearGradient(0, 0, 0, Me.H, [Color.Yellow,
> Color.Red], [0, 1])
>   Paint.Fill
>   'Paint.Restore
>   Paint.Background = Me.Foreground
>
>   Super.UserControl_Draw
>
> End
>
> That overrides UserControl_Draw, does my thing, then runs the
> Super.UserControl_Draw
>
> Now my question is for if i want to the a similar thing to say HBox.class
>
> I cannot find HBox.class to find the name of the Draw event to override it.
>
> Is it possible to find the event method names of a native control?
>
> Many thanks
> BruceS
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gambas-basic.org/pipermail/user/attachments/20221222/8cd6bfe1/attachment.htm>


More information about the User mailing list