[Gambas-user] Clicking a TreeView item by program

Rolf-Werner Eilert eilert-sprachen at ...221...
Wed Nov 25 18:29:00 CET 2015


Am 25.11.2015 18:07, schrieb Benoît Minisini:
> Le 25/11/2015 17:58, Rolf-Werner Eilert a écrit :
>> Am 25.11.2015 13:59, schrieb Benoît Minisini:
>>> Le 25/11/2015 09:07, Rolf-Werner Eilert a écrit :
>>>> In one of my older projects, there was kinda timeout after 2 minutes of
>>>> inactivity. In the TreeView the next parent was jumped at and "clicked"
>>>> to let the data of the child disappear from screen. This is the code,
>>>> "baum" is the TreeView:
>>>>
>>>>              baum.MoveParent
>>>>              baum.Item.Selected = True
>>>>              baum_Click
>>>>
>>>> Now in Gambas3, when the program doesn't have the focus anymore, I get a
>>>> "Null object" error at the baum.Item.Selected line.
>>>>
>>>> I know, Item is for the internal cursor. And I want the real cursor. But
>>>> Current is readonly, right? So how can I set the visible cursor? Or does
>>>> the error come from something quite different?
>>>>
>>>> Regards
>>>> Rolf
>>>>
>>> Provide more code. If baum.Item returns NULL, that should mean that
>>> MoveParent() failed.
>>>
>> Ok, that gives me an idea where to look.
>>
>> There is not much more code:
>>
>> Public Sub Timer2_Timer()
>>
>>      If PrivacyPause Then
>>        Timer2EventZlr = 1
>>        Return
>>      End If
>>
>>      If Timer2EventZlr > 0 Then
>>        Timer2EventZlr = 0
>>
>>      Else
>>        If tab.Index = 0 Then
>>          If Left$(baum.Current.Key, 1) = "#" Then
>>            baum.MoveParent
>>            baum.Item.Selected = True
>>            baum_Click
>>          End If
>>        Else
>>          tab.Index = 0
>>        End If
>>
>>      End If
>>
>> End
>>
>> Every 60 seconds the Timer looks if there is another Tab than 0 open. If
>> yes, the first action is to set it back to the first Tab. The next time,
>> it should set the cursor from the personal entry (child) back to its
>> parent, so the personal data aren't shown anymore and you cannot see who
>> was clicked.
>>
>> Of course, there is a check for activity at some places in the program,
>> but this still seems to run as expected. The problem appears only when
>> the program window is hidden and has no focus or when it's on another
>> screen. Maybe the TreeView "forgets" about its position then?
>>
>> Regards
>> Rolf
>>
> No. I guess that accessing baum.Current does not move the Item cursor
> anymore. Just try to add baum.MoveCurrent before baum.MoveParent, it
> should fix your problem.
>
> Regards,
>

Ah sure, I had this at other parts of code too. Ok, I tested it, and it 
really seems to work now. Tomorrow I will run a longer test.

Thanks for the hint!

Regards
Rolf





More information about the User mailing list