Difference between revisions of "TXMLPropStorage/pt"

From Lazarus wiki
Jump to navigationJump to search
 
m (→‎Notas: Updated note)
 
(7 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
{{TXMLPropStorage}}
 
{{TXMLPropStorage}}
  
'''TXMLPropStorage é um componente para salvar/restaurar propriedades selecionadas (qualquer TForm ou algum controle nele)
+
== Introdução ==
Trabalha com a propriedade TForm.[[doc:lcl/forms/tform.sessionproperties.html|SessionProperties]].'''
 
  
Utilização:
+
TXMLPropStorage é um componente para salvar e restaurar propriedades selecionadas (de qualquer TForm ou quaisquer controle nele). Ele trabalha com a propriedade TFormTForm.[[doc:lcl/forms/tform.sessionproperties.html|SessionProperties]]. Ele está disponível na guia '''Misc''' da paleta de componentes.
# Jogue um componente [[doc:lcl/xmlpropstorage/txmlpropstorage.html|TXMLPropStorage]] no formulário e ajuste o nome do arquivo, por exemplo: session.xml
+
 
# Abra a janela do editor para a proriedade [[doc:lcl/forms/tform.sessionproperties.html|SessionProperties]] do TForm.
+
== Utilização ==
# Adicione propriedades do formulário e/ou controles a ser armazenados em session.xml.
+
# Jogue um componente [[doc:lcl/xmlpropstorage/txmlpropstorage.html|TXMLPropStorage]] em um formulário e ajuste a propriedade filename, por exemplo: session.xml
 +
# Selecione o formulário, vá até o Object Inspector e abra a janela do editor para a propriedade [[doc:lcl/forms/tform.sessionproperties.html|SessionProperties]] de TForm.
 +
# Adicione aqui propriedades do formulário e/ou controles a serem armazenadas dentro de session.xml (exemplo: width;height).
 
# Compile a aplicação.
 
# Compile a aplicação.
  
Sua aplicação agora lerá o valor da propriedade selecionada do session.xml e aplicara ela em runtime (como Width,Height,Left para TForm)
+
Sua aplicação agora irá ler o valor das propriedades selecionadas do arquivo session.xml e aplicará elas em tempo de execução (como Width, Height, Left, Top para TForm).
 +
 
 +
O componente TINIPropStorage funciona da mesma forma que TXMLPropStorage, exceto pelo fato de armazenar as informações de sessão em um arquivo do tipo [http://lazarus-ccr.sourceforge.net/docs/fcl/inifiles/index.html IniFile].
 +
 
 +
== Propriedade StoredValues ==
 +
TINIPropStorage e TXMLPropStorage têm uma propriedade ''StoredValues'' que armazena algum valor (isso é útil para não usar outros arquivos de configuração)...
 +
 
 +
* Por que isso é realmente útil?
 +
*# Algumas propriedades (como CheckGroup.Item[n].Checked) não podem ser salvas no SessionProperties do TForm, então você precisa fazer isso manualmente. Isso é útil para salvar outras informações de configuração também.
 +
 
 +
Vamos escrever uma simples demonstração:
 +
 
 +
* Execute o Lazarus e inicie uma nova aplicação;
 +
* Jogue um componente TXMLPropStorage e TCheckGroup;
 +
* Adicione um item no TCheckGroup (Item Teste);
 +
* Click no XMLPropStorage1 e acesse o editor de propriedades para StoredValues;
 +
* Adicione um novo valor com name = item0_checked e value = -1 (True = -1);
 +
* No evento OnShow adicione esse código:
 +
 
 +
<syntaxhighlight lang="pascal">
 +
CheckGroup1.Checked[0] := StrToBool(XMLPropStorage1.StoredValue['item0_checked']);
 +
</syntaxhighlight>
 +
 
 +
* No evento OnClose adicione esse código:
 +
 
 +
<syntaxhighlight lang="pascal">
 +
XMLPropStorage1.StoredValue['item0_checked'] := BoolToStr(CheckGroup1.Checked[0]);
 +
</syntaxhighlight>
 +
 
 +
* Execute o programa demonstração, mude a propriedade checked de TCheckGroup.Items[n] e feche o formulário. Suas mudanças foram salvas? :)
 +
 
 +
Você pode mudar a propriedade ''Key'' de StoredValues.Items[n] se você está salvando alguma informação confidencial (isso usa as funções da RTL XOREncode e XORDecode nas rotinas de salvamento e restauração).
 +
 
 +
== Notas ==
 +
 
 +
TXMLPropStorage tem um manipulador padrão se você não ajustar um nome de arquivo.
 +
No Windows as configurações serão salvas no diretório da aplicação como PROGRAMNAME.xml.
 +
 
 +
Nos Unix likes (FreeBSD, Linux, macOS) ela será salva em um diretório home do usuário atual como .PROGRAMNAME
 +
 
 +
Por essa razão é uma boa idéia deixar o nome de arquivo em branco para programas unix que pretendem ser executados por usuários normais.
  
TINIPropStorage trabalha como TXMLPropStorage, exceto que ele armazena a informação em um arquivo INI.
+
[[Category:Components/pt]]
 +
{{AutoCategory}}

Latest revision as of 05:36, 22 January 2020

Deutsch (de) English (en) español (es) français (fr) polski (pl) português (pt) русский (ru)

Introdução

TXMLPropStorage é um componente para salvar e restaurar propriedades selecionadas (de qualquer TForm ou quaisquer controle nele). Ele trabalha com a propriedade TFormTForm.SessionProperties. Ele está disponível na guia Misc da paleta de componentes.

Utilização

  1. Jogue um componente TXMLPropStorage em um formulário e ajuste a propriedade filename, por exemplo: session.xml
  2. Selecione o formulário, vá até o Object Inspector e abra a janela do editor para a propriedade SessionProperties de TForm.
  3. Adicione aqui propriedades do formulário e/ou controles a serem armazenadas dentro de session.xml (exemplo: width;height).
  4. Compile a aplicação.

Sua aplicação agora irá ler o valor das propriedades selecionadas do arquivo session.xml e aplicará elas em tempo de execução (como Width, Height, Left, Top para TForm).

O componente TINIPropStorage funciona da mesma forma que TXMLPropStorage, exceto pelo fato de armazenar as informações de sessão em um arquivo do tipo IniFile.

Propriedade StoredValues

TINIPropStorage e TXMLPropStorage têm uma propriedade StoredValues que armazena algum valor (isso é útil para não usar outros arquivos de configuração)...

  • Por que isso é realmente útil?
    1. Algumas propriedades (como CheckGroup.Item[n].Checked) não podem ser salvas no SessionProperties do TForm, então você precisa fazer isso manualmente. Isso é útil para salvar outras informações de configuração também.

Vamos escrever uma simples demonstração:

  • Execute o Lazarus e inicie uma nova aplicação;
  • Jogue um componente TXMLPropStorage e TCheckGroup;
  • Adicione um item no TCheckGroup (Item Teste);
  • Click no XMLPropStorage1 e acesse o editor de propriedades para StoredValues;
  • Adicione um novo valor com name = item0_checked e value = -1 (True = -1);
  • No evento OnShow adicione esse código:
CheckGroup1.Checked[0] := StrToBool(XMLPropStorage1.StoredValue['item0_checked']);
  • No evento OnClose adicione esse código:
XMLPropStorage1.StoredValue['item0_checked'] := BoolToStr(CheckGroup1.Checked[0]);
  • Execute o programa demonstração, mude a propriedade checked de TCheckGroup.Items[n] e feche o formulário. Suas mudanças foram salvas? :)

Você pode mudar a propriedade Key de StoredValues.Items[n] se você está salvando alguma informação confidencial (isso usa as funções da RTL XOREncode e XORDecode nas rotinas de salvamento e restauração).

Notas

TXMLPropStorage tem um manipulador padrão se você não ajustar um nome de arquivo. No Windows as configurações serão salvas no diretório da aplicação como PROGRAMNAME.xml.

Nos Unix likes (FreeBSD, Linux, macOS) ela será salva em um diretório home do usuário atual como .PROGRAMNAME

Por essa razão é uma boa idéia deixar o nome de arquivo em branco para programas unix que pretendem ser executados por usuários normais.