<div dir="ltr"><div>At least here you seem to give a new handle:  mTxt[fldNr] = New TextBox(Maske) As "MaskeFeld"</div><div>The events are raised by the name: <span>My_Button1_Change, <span>My_Button2_Change, etc.</span></span></div><div><span><span>If they are grouped you can just use Last (no dot) keyword.<br></span></span></div><div><span><span><br></span></span></div><div><span><span>Jussi<br></span></span></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Nov 27, 2020 at 5:35 PM Rolf-Werner Eilert <<a href="mailto:rwe-sse@osnanet.de">rwe-sse@osnanet.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Interesting, Jussi!<br>
<br>
My version also uses the same handle and event name for each object, and <br>
it finds its events with the .Last property. This was described in some <br>
help text. Maybe it's obsolete meanwhile? I always wondered how it could <br>
work, but I just accepted it as given.<br>
<br>
Your version "New ToolButton(Me) As "My_Button" & CStr(intIndex)" is <br>
much clearer to me, but how would I use .Last in this case? Or: how can <br>
I find just "the object which has produced the Change event (for example)?<br>
<br>
Rolf<br>
<br>
<br>
Am 27.11.20 um 16:17 schrieb Jussi Lahtinen:<br>
> I'm surprised that works at all, because you are using the same handle <br>
> and the event name for multiple buttons.<br>
> <br>
>    Dim intIndex As Integer[3]<br>
>     For intIndex = 0 To 2<br>
>       hToolButton[intIndex] = New ToolButton(Me) As "My_Button" & <br>
> CStr(intIndex)<br>
> ...<br>
> <br>
> That should behave predictable.<br>
> <br>
> Jussi<br>
> <br>
> <br>
> <br>
> On Fri, Nov 27, 2020 at 12:35 PM KKing <<a href="mailto:kicking177@gmail.com" target="_blank">kicking177@gmail.com</a> <br>
> <mailto:<a href="mailto:kicking177@gmail.com" target="_blank">kicking177@gmail.com</a>>> wrote:<br>
> <br>
>     I've just run the following code in 3.12.2 on Debian10 LXDE and<br>
>     Debian10<br>
>     KDE.<br>
>     NB I'm creating as just "Graphical Application" (i.e. not QT or GTK)<br>
>        - - - - - -<br>
>     Private hToolButton As ToolButton<br>
> <br>
>     Public Sub btnTest_Click()<br>
>         Dim intIndex As Integer<br>
>         For intIndex = 0 To 2<br>
>           hToolButton = New ToolButton(Me) As "My_Button"<br>
>           hToolButton.Top = 0 + (intIndex * 30)<br>
>           hToolButton.Left = 0<br>
>           hToolButton.Width = 300<br>
>           hToolButton.Height = 30<br>
>           hToolButton.Text = "MyButton" & CStr(intIndex)<br>
>         Next<br>
>     End<br>
> <br>
>     Public Sub btnRemove_Click()<br>
> <br>
>         Me["My_Button"].Delete<br>
> <br>
>     End<br>
> <br>
>     Public Sub My_Button_Click()<br>
> <br>
>         Message.Info("Hello")<br>
> <br>
>     End<br>
>        - - - - - -<br>
> <br>
>     On LXDE the btnTest generates the 3 buttons<br>
>     click btnRemove once removes the first drawn button the remaining<br>
>     buttons still function<br>
>     click again and it removes the second drawn button the remaining button<br>
>     still functions<br>
>     click again and it removes the third and last drawn button.<br>
> <br>
>     *** How could I just selectively remove a button based on index?<br>
> <br>
>     NB the index for 0 to 2 is just for this example test, in desired<br>
>     application there would be a variable and large number of buttons<br>
>     determined by data and user interaction.<br>
> <br>
>     As a workaround I could do<br>
>           hToolButton = New ToolButton(Me) As "My_Button" & CStr(intIndex)<br>
>     which allows me to absolutely delete individual buttons but it means<br>
>     instead of having one<br>
>           Public Sub My_Button_Click()<br>
>     I would have to code a large number sub just in case needed, for this<br>
>     example it would just need<br>
>           Public Sub My_Button0_Click()<br>
>           Public Sub My_Button1_Click()<br>
>           Public Sub My_Button2_Click()<br>
>     But in the real application I may needs something like potentially<br>
>     60 of<br>
>     them!<br>
> <br>
>     ALSO<br>
>     running the same code in Debian10 KDE does not work the same.<br>
>     Clicking btnRemove once removes the last drawn button only (and the<br>
>     first two buttons still work)<br>
>     But when click btnRemove again to remove next button it complains<br>
>     Me["My_Button"] is a null object<br>
>     K.<br>
> <br>
>     ----[ <a href="http://gambaswiki.org/wiki/doc/netiquette" rel="noreferrer" target="_blank">http://gambaswiki.org/wiki/doc/netiquette</a> ]----<br>
> <br>
> <br>
> <br>
> ----[ <a href="http://gambaswiki.org/wiki/doc/netiquette" rel="noreferrer" target="_blank">http://gambaswiki.org/wiki/doc/netiquette</a> ]----<br>
> <br>
<br>
<br>
----[ <a href="http://gambaswiki.org/wiki/doc/netiquette" rel="noreferrer" target="_blank">http://gambaswiki.org/wiki/doc/netiquette</a> ]----<br>
</blockquote></div>