-
-
Notifications
You must be signed in to change notification settings - Fork 10
Config
Mobius One edited this page Sep 22, 2024
·
17 revisions
Home > Config
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 | ❔ | ✔ | ✔ |
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. |
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; |