Difference between revisions of "TXMLPropStorage/fr"

From Lazarus wiki
(StoredValues property)
Line 15: Line 15:
  
  
== StoredValues property ==
+
== Propriété StoredValues ==
TINIPropStorage and TXMLPropStorage has a ''StoredValues'' property which stores some value (it's useful to uses no others configs file)...
+
TINIPropStorage et TXMLPropStorage ont une propriété ''StoredValues'' qui stockent des valeurs (ce qui est pratique pour ne pas utiliser d'autre fichier de configuration)...
  
* Why is this really util?
+
* Pourquoi est-ce vraiment utile?
*# Some properties (as CheckGroup.Item[n].Checked) cannot be saved in SessionProperties of TForm, then you need do this manually. It's useful to save others settings informations too.
+
*# Quelques propriétés (comme CheckGroup.Item[n].Checked) ne peuvent pas être sauvées dans SessionProperties de TForm, donc vous devez le faire manuellement. C'est également pratique pour esauver d'autres informations de configuration.
  
Let's write a simple demo:
+
Ecrivons une petite démo:
  
* Run Lazarus and start a new application;
+
* Lancez Lazarus et commencez une nouvelle application;
* Drop a TXMLPropStorage and TCheckGroup component;
+
* Déposez un composant TXMLPropStorage et un TCheckGroup;
* Add one item in TCheckGroup (Item Test);
+
* Ajoutez un item au TCheckGroup (Item Test);
* Click in XMLPropStorage1 and access StoredValues property editor;
+
* Cliquez sur XMLPropStorage1 et accédez à l'editeur de propriété StoredValues;
* Add a new value with name = item0_checked and value = -1 (True = -1);
+
* Ajoutez une nouvelle valeur avec un name = item0_checked et value = -1 (True = -1);
* In OnShow event add this code:
+
* Dans l'évenement OnShow ajoutez ce code:
 
<delphi>
 
<delphi>
 
CheckGroup1.Checked[0] := StrToBool(XMLPropStorage1.StoredValue['item0_checked']);
 
CheckGroup1.Checked[0] := StrToBool(XMLPropStorage1.StoredValue['item0_checked']);
 
</delphi>
 
</delphi>
* In OnClose event add this code:
+
* Dans l'événement OnClose ajoutez ce code:
 
<delphi>
 
<delphi>
 
XMLPropStorage1.StoredValue['item0_checked'] := BoolToStr(CheckGroup1.Checked[0]);
 
XMLPropStorage1.StoredValue['item0_checked'] := BoolToStr(CheckGroup1.Checked[0]);
 
</delphi>
 
</delphi>
* Run the demo program, change checked property of TCheckGroup.Items[n] and close form. Your changes was saved? :)
+
* Lancez le programme de démo, changez la propriété checked de TCheckGroup.Items[n] et fermez votre form. Vos changements ont été sauvés? :)
 
 
You can change ''Key'' property of StoredValues.Items[n] if you're saving some information confidential (it uses XOREncode and XORDecode functions of RTL on saving and restoring routines).
 
 
 
 
 
  
 +
Vous pouvez changer la propriété ''Key'' de StoredValues.Items[n] si vous sauvez quelque information confidentielle (elle utilise les fonctions XOREncode et XORDecode de la RTL lors de l'enregistrement et de la restauration).
  
 
== Une note sur des noms de fichier ==
 
== Une note sur des noms de fichier ==

Revision as of 16:52, 24 June 2008

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

TXMLPropStorage est un composant pour enregistrer/restaurer des propriétés choisies (soit TForm soit n'importe quel contrôle au dessus de lui) Travaille avec la propriété TForm.SessionProperties.

Utilisation :

  1. déposer un composant TXMLPropStorage sur le form et choisir le nom de fichier, par exemple: session.xml
  2. Ouvrir une fenêtre d'édition pour la propriété SessionProperties de TForm.
  3. Ajouter la les propriétés de la form et/ou des contrôles à être stocké dans session.xml.
  4. Compiler l'application.

Votre application maintenant lira les valeurs de propriété choisie de session.xml et l'appliquer pendant la durée d'exécution (comme Width,Height,Left,Top pour TForm)

TINIPropStorage travaille de la même manière que TXMLPropStorage, excepté qu'il stocke l'information de session dans un fichier fichier Ini.


Propriété StoredValues

TINIPropStorage et TXMLPropStorage ont une propriété StoredValues qui stockent des valeurs (ce qui est pratique pour ne pas utiliser d'autre fichier de configuration)...

  • Pourquoi est-ce vraiment utile?
    1. Quelques propriétés (comme CheckGroup.Item[n].Checked) ne peuvent pas être sauvées dans SessionProperties de TForm, donc vous devez le faire manuellement. C'est également pratique pour esauver d'autres informations de configuration.

Ecrivons une petite démo:

  • Lancez Lazarus et commencez une nouvelle application;
  • Déposez un composant TXMLPropStorage et un TCheckGroup;
  • Ajoutez un item au TCheckGroup (Item Test);
  • Cliquez sur XMLPropStorage1 et accédez à l'editeur de propriété StoredValues;
  • Ajoutez une nouvelle valeur avec un name = item0_checked et value = -1 (True = -1);
  • Dans l'évenement OnShow ajoutez ce code:

<delphi> CheckGroup1.Checked[0] := StrToBool(XMLPropStorage1.StoredValue['item0_checked']); </delphi>

  • Dans l'événement OnClose ajoutez ce code:

<delphi> XMLPropStorage1.StoredValue['item0_checked'] := BoolToStr(CheckGroup1.Checked[0]); </delphi>

  • Lancez le programme de démo, changez la propriété checked de TCheckGroup.Items[n] et fermez votre form. Vos changements ont été sauvés? :)

Vous pouvez changer la propriété Key de StoredValues.Items[n] si vous sauvez quelque information confidentielle (elle utilise les fonctions XOREncode et XORDecode de la RTL lors de l'enregistrement et de la restauration).

Une note sur des noms de fichier

TXMLPropStorage a un handler par défaut si vous ne choisissez pas un nom de fichier. Sous windows/macos les paramètres seront sauvés dans le répertoire de l'application sous PROGRAMNAME.xml

Sous des clônes Unix il sera sauvé dans le répertoire local de l'utilisateur courant sous .PROGRAMNAME

C'est donc une très bonne idée de laisser les noms de fichier blanc pour des programmes d'unix signifiant l'exécution par des utilisateurs normaux.