[Gambas-user] gb.settings: Detect if a slot exists

Charlie Reinl Karl.Reinl at ...2345...
Tue Oct 29 13:38:24 CET 2013


Am Dienstag, den 29.10.2013, 13:57 +1030 schrieb Bruce:
> I have a need to detect if a particular Slot exists in the .config
> file for an application. Just the Slot not whether any value lines exist
> under it.
> 
> There doesn't seem to be a way to do this via gb.settings?  I have tried
> using 
> 
>         If Settings.Keys["Filter"] then
> 
> but this seems always to be true. Similarly
> 
>         If Settings["Filter"] then
> 
> always seems to be false.
> 
> So is there a way to find out if a Slot does exist?
> 
> ---- more info -----
> The problem is that the value lines depend on about 8 text boxes set or
> cleared by the user. If one or more of the text boxes are empty then
> that value line will not appear under the [Filter] slot. So I can't
> detect the existence of the slot by detecting a particular value line.
> In fact if they clear all the filter strings then that whole slot will
> disappear.
> 
> Thus I need to check if the slot exists, so then I could
>         If Settings.Exist["Filter"] then 
>           GetFilterSettings
>         Else
>           SetDefaultFilter
>         Endif
> 

Salut Bruce,

Settings.Read (gb.settings)
Sub Read ( hObject As Object [ , sKey As String, vDefault As Variant ] )

Settings("Filter", GetFilterSettings, SetDefaultFilter)

or

Public Function KeyExists(objSetting As Settings, sFindKey As String) As
Boolean
Dim sKey As String
Dim bRet As Boolean
   bRet = False
   For Each sKey In objSetting.Keys
      If sKey = sFindKey Then
          bRet = True
         Break
      Endif
   Next
   Return bRet
End



-- 
Amicalement
Charlie





More information about the User mailing list