[Gambas-user] Modify a control in another form

richard rterry at ...1823...
Sun Sep 23 01:03:20 CEST 2012


On 23/09/12 08:44, richard wrote:
> On 23/09/12 08:31, Keith Clark wrote:
>> On 12-09-22 06:23 PM, richard wrote:
>>> On 23/09/12 08:03, Keith Clark wrote:
>>>> How do I modify settings of a control on another form?  Let's say that I
>>>> want to be able to control the number of rows and columns of a grid
>>>> view, gvSampleGrid, on form, fGameGrid from form, fGameSetup.
>>>>
>>>> Would it not be fGameGrid.gvSampleGrid.rows.count=10?
>>>>
>>>> I am working with the book A beginner's Guide to Gambas but find it
>>>> confusing on the basics.
>>>>
>>>> Thanks.
>>>> If you have set your projects options to make your controls public you
>>>> can address any control on anther form with the correct syntax
>>>>
>>>> What error message to you get when you run your code?
>>>>
>>>> richard
>>>>
>>>>
>> That is exactly what I didn't do!  Set the controls to public.  Done now
>> and it works fine.  Thanks!
>>
>> Keith
>>
>>
> Also remember you can pass anything from form to form even forms, or
> pass forms to code modules. Also you can declare a form
>
> For example if  you used alot of say columnviews all over a large
> project and did the same sort of thing to the columnview in all the
> forms, simple example, allow the user to change the font of a columnview
> and save it to a settings file via a pop-up menu over the columnview,
> you could have a general module in your project, and pass the columnview
> to that module, do whatever on it you wanted. Then you have a single few
> lines of code you re-use in dozens and dozens of situations.
>
> e.g I have a module I call modUtil and puts lots of stuff in it which is
> used all over the place
>
> Public Sub Columnview_SetFont(cvw As Columnview, Settings_Section As String)
> '----------------------------------------------------------------------------------------------------------------
>      'Attempts to change the font of a columnview and save to settings
> '---------------------------------------------------------------------------------------------------------------
>
>      Dialog.font = cvw.font
>      If Dialog.SelectFont() Then Return
>      cvw.font = Dialog.Font
>      Settings[Settings_Section & "/" & cvw.name & ".font"] =
> cvw.Font.ToString()
>
> End
>
>
>
As an addendum you will have to in this case load your previously saved 
font value from your settings file.
I always have  a Private sub Settings_Load() in each form and a Public 
Sub Settings_Save()

e.g

Private sub Settings_Load()

   Try cvwItemsBilled.Font = 
Font[Settings["Billing_RecordVisit/cvwItemsBilled.font"]]

end sub

Note the Settings_Save is Public, as then, if I have multiple sub-forms 
on another form which is closed, the the 'Parent' form can call all the 
Settings_Save subroutines in all its embedded forms when it closes.

Regards

richard







More information about the User mailing list