TXMLPropStorage/fr

From Lazarus wiki
Revision as of 16:14, 24 June 2008 by LazarusBob (talk | contribs)
Jump to navigationJump to search

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.


StoredValues property

TINIPropStorage and TXMLPropStorage has a StoredValues property which stores some value (it's useful to uses no others configs file)...

  • Why is this really util?
    1. 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.

Let's write a simple demo:

  • Run Lazarus and start a new application;
  • Drop a TXMLPropStorage and TCheckGroup component;
  • Add one item in TCheckGroup (Item Test);
  • Click in XMLPropStorage1 and access StoredValues property editor;
  • Add a new value with name = item0_checked and value = -1 (True = -1);
  • In OnShow event add this code:

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

  • In OnClose event add this code:

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

  • Run the demo program, change checked property of TCheckGroup.Items[n] and close form. Your changes was saved? :)

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).



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.