Skip to content
Mobius One edited this page Sep 22, 2024 · 17 revisions

Home > Config

Config

Units de criação de banco de dados de valores de configuração no padrão chave:valor

Compatibilidade

Símbolo Significado
Incompatível
Não testado
Compatível
Componente DAC Classe Versão do Delphi
- 7 8 2005 2006 2007 2009 2010
XE XE2 XE3 XE4 XE5 XE6 XE7 XE8
10.0 10.1 10.2 10.3 10.4 11.3 12.2
FireDAC Config.SQLite.FireDAC
Zeos 8 Config.SQLite.Zeos
Componente DAC Classe Versão do Lazarus
< 2.0 2.0 ~ 2.9 3.0+
SQLDB Config.SQLite.SQLDB
Zeos 8 Config.SQLite.Zeos

Recursos:

Função Descrição
ClearDatabase Deleta todos os dados e refaz o banco de dados de config.
getValue (pKey: string): string Retorna um valor baseado na chave pKey informada.
LoadConfig : TJSONObject Instancia um objeto TJSONObject e devolve nele os dados.
LoadForm(aForm: TForm) Varre o form indicado por parâmetro e altera a propriedade valorada do controle de acordo com o seu nome.
SaveForm(aForm: TForm) Varre o form indicado por parâmetro e salva no banco os dados onde a chave é o nome do controle e valor é a propriedade valorada dele.
UpdateConfig (aJSON: TJSONObject) Atualiza os dados ou grava novos baseados no JSONObject informado.
UpdateConfig (aKey, aValue: string) Atualiza ou grava o par informado por parâmetro.

Exemplos:

Exemplo antigo de uso para leitura:
procedure TfConfig.CarregaConfig;
var
  cfg: TSQLiteConfig;
  JSONObj: TJSONObject;
  I, J: Integer;
begin
  cfg := TSQLiteConfig.Create;
  JSONObj := cfg.LoadConfig;
  try
    if JSONObj.Count > 0 then
      with Self do
        for I := 0 to pred(ComponentCount) do
        begin
          if (Components[I] is TLabeledEdit) then
            (Components[I] as TLabeledEdit).Text :=
              JSONObj.GetValue((Components[I] as TLabeledEdit).Name)
              .ToString.Replace('"', '');
      if (Components[I] is TValueListEditor) then
        for J := 1 to pred((Components[I] as TValueListEditor).RowCount) do
          (Components[I] as TValueListEditor).Cells[1, J] :=
            JSONObj.GetValue((Components[I] as TValueListEditor).Keys[J])
            .ToString.Replace('"', '');
    end;

finally
JSONObj.Free;
cfg.Free;
end;
end;

Exemplo de uso para leitura:

Exemplo 1 Exemplo 2
procedure TfConfig.CarregaConfig;
var
  cfg: TSQLiteConfig;
begin
  cfg := TSQLiteConfig.Create;
  try
    cfg.LoadForm(Self);
  Finally
    cfg.Free;
  end;
end;
procedure TfConfig.CarregaConfig;
begin
  with TSQLiteConfig.Create do
  begin
    LoadForm(Self);
    Free;
  end;
end;
Exemplo antigo de uso para gravação:
procedure TfConfig.SalvaConfig;
var
  cfg: TSQLiteConfig;
  JSONObj: TJSONObject;
  I, J: Integer;
begin
  cfg := TSQLiteConfig.Create;
  JSONObj := TJSONObject.Create;
  try
    with Self do
      for I := 0 to pred(ComponentCount) do
      begin
        if Components[I] is TLabeledEdit then
          JSONObj.AddPair((Components[I] as TLabeledEdit).Name,
            (Components[I] as TLabeledEdit).Text);
    if (Components[I] is TValueListEditor) then
      for J := 1 to pred((Components[I] as TValueListEditor).RowCount) do
        JSONObj.AddPair((Components[I] as TValueListEditor).Keys[J],
          (Components[I] as TValueListEditor).Cells[1, J]);
  end;
cfg.UpdateConfig(JSONObj);

finally
JSONObj.Free;
cfg.Free;
end;
end;

Exemplo de uso para gravação:

Exemplo 1 Exemplo 2
procedure TfConfig.SalvaConfig;
var
  cfg: TSQLiteConfig;
begin
  cfg := TSQLiteConfig.Create;
  try
    cfg.SaveForm(Self);
  Finally
    cfg.Free;
  end;
end;
procedure TfConfig.SalvaConfig;
begin
  with TSQLiteConfig.Create do
  begin
    SaveForm(Self);
    Free;
  end;
end;

PascalLibs

Clone this wiki locally