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

Home > Config

Config

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

DataSet Engine Versão Delphi Versão Lazarus
FireDAC XE3+ N/A
SQLDB N/A 2.0+
Zeos XE3+ 2.0+

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;
begiTfConfig.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:

procedure TfConfig.CarregaConfig;
var
  cfg: TSQLiteConfig;
begin
  cfg := TSQLiteConfig.Create;
  try
    cfg.LoadForm(Self);
  Finally
    cfg.Free;
  end;
end;
procedure TfConfig.SalvaConfig;
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:

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