Settings (gb.settings)

Essa classe gerencia arquivos de configuração global.

Esta classe pode ser usada como um objeto através da criação de uma instância escondida sob demanda.

Esta classe é criável.

Esta classe funciona como um array ler / escrever.

Propriedades estáticas
DefaultDir   Essa propriedade retorna o diretório padrão onde o arquivos de configuração está armazenado.

Métodos estáticos
FromString   Return a value from its settings internal string representation
ToString   Convert a value into its settings internal string representation

Propriedades
Count   Return the number of entries in the settings file
Keys   Retornar um objeto virtual usada para enumerar todas as chaves utilizadas pelo arquivo de configuração.
Path   Retorna o caminho do arquivo de configuração.

Métodos
Clear   Limpa todas as configurações.
Exist   Return if the specified settings key has a value
Read   Inicializa o objeto especificado do arquivo de configurações.
Reload   Cancela todas as alterações nas configurações, recarregando o arquivo de configurações.
Save   Salva o arquivo de configuração para o disco.
Write   Grava as configurações do objeto especificado no arquivo de configurações.

Se você usar essa classe estática, então, o arquivo de configuração padrão do projeto serão utilizados.

O caminho do arquivo de configuração padrão é:

User.Home &/ ".config/gambas3" &/ Application.Name & ".conf"

Por exemplo, o arquivo de configuração do IDE é armazenado em ~/.config/gambas3/gambas3.conf

Este exemplo carrega a posição de uma janela a partir de um arquivo de configurações quando um formulário é aberto. Se o arquivo de configurações não existe, então a posição padrão do formulário será usada. O exemplo também salva a posição do formulário quando este é fechado. É usado o arquivo de configurações padrão para o aplicativo.

Exemplos

PUBLIC SUB Form_Open()
  ' Atualizar a posição da janela a partir do arquivo de configurações
  'Se o arquivo de configurações não for encontrado, então
  'Usar a posição padrão.
  ME.Top = Settings["Window/Top", ME.Top]
  ME.Left = Settings["Window/Left", ME.Left]
  ME.Height = Settings["Window/Height", ME.Height]
  ME.Width = Settings["Window/Width", ME.Width]
END

PUBLIC SUB Form_Close()
  ' Salva as configurações da janela quando fecha o aplicativo
  Settings["Window/Top"] = ME.Top
  Settings["Window/Left"] = ME.Left
  Settings["Window/Height"] = ME.Height
  Settings["Window/Width"] = ME.Width
END

O arquivo de configurações salvo seria algo parecido com as seguintes configurações no grupo Janela.
[Window]
Top=13
Left=18
Height=154
Width=235

PUBLIC SUB ShowASpecialSetting()
  DIM prhOtherConfFile as Settings
  DIM prhLangUsed as String
  ' Ler as configurações de um arquivo usado por outro aplicativo
  ' Localizado em /home/user/.config/otherapp/
  ' E denominado "international.conf"
  ' Primeiro, crie uma nova instância da classe Settings
  ' com o caminho completo para o arquivo desejado
  prhOtherConfFile = NEW Settings("/home/user/.config/otherapp/international.conf")
  'next read the "Lang1" value from the "UserPreferences" section
  prhLangUsed = prhOtherConfFile["UserPreferences/Lang1", NULL]
  IF IsNull(prhLangUsed) THEN
    Message.Info("No Lang1 found in conf file (or no Section named UserPreferences)")
  ELSE
    Message.Info("The value of Lang1 that found in conf file is:\n" & prhLangUsed)
  END IF
END

Note que você pode usar diretamente o método Write para armazenar as configurações de uma janela, e o método Read para recuperá-las.