Sign in Join
Wiki copytemporary

TXMLPropStorage/pt: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: TXMLPropStorage/pt

OldNewLine
1+## Introdução
2+
3+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.
4+
5+## Utilização
6+
7+1. Jogue um componente [[doc:lcl/xmlpropstorage/txmlpropstorage.html|TXMLPropStorage]] em um formulário e ajuste a propriedade filename, por exemplo: session.xml
8+2. 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.
9+3. Adicione aqui propriedades do formulário e/ou controles a serem armazenadas dentro de session.xml (exemplo: width;height).
10+4. Compile a aplicação.
11+
12+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).
13+
14+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](http://lazarus-ccr.sourceforge.net/docs/fcl/inifiles/index.html).
15+
16+## Propriedade StoredValues
17+
18+TINIPropStorage e TXMLPropStorage têm uma propriedade *StoredValues* que armazena algum valor (isso é útil para não usar outros arquivos de configuração)...
19+
20+- Por que isso é realmente útil?
21+ 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.
22+
23+Vamos escrever uma simples demonstração:
24+
25+- Execute o Lazarus e inicie uma nova aplicação;
26+- Jogue um componente TXMLPropStorage e TCheckGroup;
27+- Adicione um item no TCheckGroup (Item Teste);
28+- Click no XMLPropStorage1 e acesse o editor de propriedades para StoredValues;
29+- Adicione um novo valor com name = item0_checked e value = -1 (True = -1);
30+- No evento OnShow adicione esse código:
31+
32+``` pascal
33+CheckGroup1.Checked[0] := StrToBool(XMLPropStorage1.StoredValue['item0_checked']);
34+```
35+
36+- No evento OnClose adicione esse código:
37+
38+``` pascal
39+XMLPropStorage1.StoredValue['item0_checked'] := BoolToStr(CheckGroup1.Checked[0]);
40+```
41+
42+- Execute o programa demonstração, mude a propriedade checked de TCheckGroup.Items\[n\] e feche o formulário. Suas mudanças foram salvas? :)
43+
44+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).
45+
46+## Notas
47+
48+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.
49+
50+Nos Unix likes (FreeBSD, Linux, macOS) ela será salva em um diretório home do usuário atual como .PROGRAMNAME
51+
52+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.
53+
54+---
55+*From the Free Pascal wiki, page "TXMLPropStorage/pt", as it stood on 2020-01-22 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
56+Category: Components/pt
57+Category: Português

Back to history