Difference between revisions of "TXMLPropStorage/fr"

From Lazarus wiki
m (Fixed syntax highlighting)
 
(19 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{TXMLPropStorage}}
+
{{ TXMLPropStorage }}
  
'''TXMLPropStorage est un composant pour enregistrer/restaurer des propriétés choisies (soit TForm soit n'importe quel contrôle au dessus de lui)
+
== Introduction ==
Travaille avec la propriété TForm.[[doc:lcl/forms/tform.sessionproperties.html|SessionProperties]].'''
+
'''TXMLPropStorage''' [[image:txmlpropstorage.png]] est un composant pour enregistrer/restaurer des propriétés choisies (soit TForm soit n'importe quel contrôle au dessus de lui). Il travaille avec la propriété TForm.[[doc:lcl/forms/tform.sessionproperties.html|SessionProperties]]. {{ComponentTab/fr|TXMLPropStorage|Misc}}.
  
Utilisation :
+
== Utilisation : ==
# déposer un composant [[doc:lcl/xmlpropstorage/txmlpropstorage.html|TXMLPropStorage]] sur le form et choisir le nom de fichier, par exemple: session.xml
+
# Déposer un composant [[doc:lcl/xmlpropstorage/txmlpropstorage.html|TXMLPropStorage]] sur la fiche et choisir le nom de fichier, par exemple: session.xml
 
# Ouvrir une fenêtre d'édition pour la propriété [[doc:lcl/forms/tform.sessionproperties.html|SessionProperties]] de TForm.
 
# Ouvrir une fenêtre d'édition pour la propriété [[doc:lcl/forms/tform.sessionproperties.html|SessionProperties]] de TForm.
# Ajouter la les propriétés  de la form et/ou des contrôles à être stocké dans session.xml.
+
# Ajouter la les propriétés  de la fiche et/ou des contrôles à stocker dans session.xml.
# Compiler l'application .
+
# 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)
+
Votre application maintenant lira les valeurs de propriétés choisies de session.xml et les conservera 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 ini.
+
TINIPropStorage travaille de la même manière que TXMLPropStorage, excepté qu'il stocke l'information de session dans un [http://lazarus-ccr.sourceforge.net/docs/fcl/inifiles/index.html fichier Ini].
  
 +
== Propriété StoredValues ==
 +
[[TINIPropStorage/fr|TINIPropStorage]] et TXMLPropStorage ont une propriété ''StoredValues'' qui stocke des valeurs (ce qui est pratique pour ne pas utiliser d'autres fichier de configuration)...
  
'''Une note sur des noms de fichier '''
+
* Pourquoi est-ce vraiment utile ?
 +
*# 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 sauver d'autres informations de configuration.
  
TXMLPropStorage a un handler par défaut si vous ne choisissez pas un nom de fichier.
+
Ecrivons une petite démo :
Sous windows/macos les paramètres seront sauvés dans le répertoire de l'application sous  PROGRAMNAME.xml
+
* 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'évènement OnRestoreProperties ajoutez ce code :
 +
<syntaxhighlight lang=pascal>
 +
CheckGroup1.Checked[0] := StrToBool(XMLPropStorage1.StoredValue['item0_checked']);
 +
</syntaxhighlight>
 +
* Dans l'évènement OnSavingProperties ajoutez ce code :
 +
<syntaxhighlight lang=pascal>
 +
XMLPropStorage1.StoredValue['item0_checked'] := BoolToStr(CheckGroup1.Checked[0]);
 +
</syntaxhighlight>
 +
* Lancez le programme de démo, changez la propriété checked de TCheckGroup.Items[n] et fermez votre fiche. Vos changements ont été sauvés ? :)
  
Sous des clônes Unix il sera sauvé dans le répertoire local de l'utilisateur courant sous .PROGRAMNAME
+
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).
  
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.
+
== Une note sur des noms de fichier ==
 +
TXMLPropStorage a un gestionnaire par défaut si vous ne choisissez pas un nom de fichier.
 +
Sous Windows les paramètres seront sauvés dans le répertoire de l'application sous PROGRAMNAME.xml
 +
 
 +
Sous des clônes Unix (Linux/FreeBSD/macOS) 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 par défaut pour les programmes unix qui doivent être lancer par des utilisateurs normaux.
 +
 
 +
Selon le rapport d'anomalie [http://bugs.freepascal.org/view.php?id=13949 13949, note 28856] : "The StoredValues[] array can only be used during the OnRestoreProperties or OnSaveProperties events. Outside these events, the values will not be stored." et "If you want to save/load values that are not published properties of a component or control, you should save them in a OnSaveProperties event, and load them using the OnRestoreProperties event."
 +
 
 +
Soit en Français : "Le tableau StoredValues[] peut seulement être utilisé pendant les événements OnRestoreProperties ou OnSaveProperties. En dehors de ceux-ci, les valeurs ne seront pas enregistrées." et "Si vous voulez enregistrer/charger des valeurs qui ne sont pas des propriétés d'un composant ou d'un contrôle, vous devriez les enregistrer dans un événement OnSaveProperties et les charger en utilisant un événement OnRestoreProperties".
 +
 
 +
= Voir aussi =
 +
* [[doc:lcl/xmlpropstorage/txmlpropstorage.html|Doc. TXMLPropStorage]]
 +
* [[doc:lcl/forms/tform.sessionproperties.html|Doc. SessionProperties]]
 +
* [[Hardware Access/fr|Hardware Access]]
 +
 
 +
{{LCL Components/fr}}

Latest revision as of 02:24, 2 March 2020

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

Introduction

TXMLPropStorage txmlpropstorage.png est un composant pour enregistrer/restaurer des propriétés choisies (soit TForm soit n'importe quel contrôle au dessus de lui). Il travaille avec la propriété TForm.SessionProperties. Le composant TXMLPropStorage est disponible depuis l'onglet Misc de la palette de composants.

Utilisation :

  1. Déposer un composant TXMLPropStorage sur la fiche 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 fiche et/ou des contrôles à stocker dans session.xml.
  4. Compiler l'application.

Votre application maintenant lira les valeurs de propriétés choisies de session.xml et les conservera 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 Ini.

Propriété StoredValues

TINIPropStorage et TXMLPropStorage ont une propriété StoredValues qui stocke des valeurs (ce qui est pratique pour ne pas utiliser d'autres 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 sauver 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'évènement OnRestoreProperties ajoutez ce code :
CheckGroup1.Checked[0] := StrToBool(XMLPropStorage1.StoredValue['item0_checked']);
  • Dans l'évènement OnSavingProperties ajoutez ce code :
XMLPropStorage1.StoredValue['item0_checked'] := BoolToStr(CheckGroup1.Checked[0]);
  • Lancez le programme de démo, changez la propriété checked de TCheckGroup.Items[n] et fermez votre fiche. 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 gestionnaire par défaut si vous ne choisissez pas un nom de fichier. Sous Windows les paramètres seront sauvés dans le répertoire de l'application sous PROGRAMNAME.xml

Sous des clônes Unix (Linux/FreeBSD/macOS) 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 par défaut pour les programmes unix qui doivent être lancer par des utilisateurs normaux.

Selon le rapport d'anomalie 13949, note 28856 : "The StoredValues[] array can only be used during the OnRestoreProperties or OnSaveProperties events. Outside these events, the values will not be stored." et "If you want to save/load values that are not published properties of a component or control, you should save them in a OnSaveProperties event, and load them using the OnRestoreProperties event."

Soit en Français : "Le tableau StoredValues[] peut seulement être utilisé pendant les événements OnRestoreProperties ou OnSaveProperties. En dehors de ceux-ci, les valeurs ne seront pas enregistrées." et "Si vous voulez enregistrer/charger des valeurs qui ne sont pas des propriétés d'un composant ou d'un contrôle, vous devriez les enregistrer dans un événement OnSaveProperties et les charger en utilisant un événement OnRestoreProperties".

Voir aussi


Composant LCL
Onglet de palette Composants
Standard TMainMenu • TPopupMenu • TButton • TLabel • TEdit • TMemo • TToggleBox • TCheckBox • TRadioButton • TListBox • TComboBox • TScrollBar • TGroupBox • TRadioGroup • TCheckGroup • TPanel • TFrame • TActionList
Additional TBitBtn • TSpeedButton • TStaticText • TImage • TShape • TBevel • TPaintBox • TNotebook • TLabeledEdit • TSplitter • TTrayIcon • TControlBar • TFlowPanel • TMaskEdit • TCheckListBox • TScrollBox • TApplicationProperties • TStringGrid • TDrawGrid • TPairSplitter • TColorBox • TColorListBox • TValueListEditor
Common Controls TTrackBar • TProgressBar • TTreeView • TListView • TStatusBar • TToolBar • TCoolBar • TUpDown • TPageControl • TTabControl • THeaderControl • TImageList • TPopupNotifier • TDateTimePicker
Dialogs TOpenDialog • TSaveDialog • TSelectDirectoryDialog • TColorDialog • TFontDialog • TFindDialog • TReplaceDialog • TOpenPictureDialog • TSavePictureDialog • TCalendarDialog • TCalculatorDialog • TPrinterSetupDialog • TPrintDialog • TPageSetupDialog • TTaskDialog
Data Controls TDBNavigator • TDBText • TDBEdit • TDBMemo • TDBImage • TDBListBox • TDBLookupListBox • TDBComboBox • TDBLookupComboBox • TDBCheckBox • TDBRadioGroup • TDBCalendar • TDBGroupBox • TDBGrid • TDBDateTimePicker
Data Access TDataSource • TBufDataset • TMemDataset • TSdfDataSet • TFixedFormatDataSet • TDbf
System TTimer • TIdleTimer • TLazComponentQueue • THTMLHelpDatabase • THTMLBrowserHelpViewer • TAsyncProcess • TProcessUTF8 • TProcess • TSimpleIPCClient • TSimpleIPCServer • TXMLConfig • TEventLog • TServiceManager • TCHMHelpDatabase • TLHelpConnector
Misc TColorButton • TSpinEdit • TFloatSpinEdit • TArrow • TCalendar • TEditButton • TFileNameEdit • TDirectoryEdit • TDateEdit • TTimeEdit • TCalcEdit • TFileListBox • TFilterComboBox • TComboBoxEx • TCheckComboBox • TButtonPanel • TShellTreeView • TShellListView • TXMLPropStorage • TINIPropStorage • TIDEDialogLayoutStorage • TMRUManager • TStrHolder
LazControls TCheckBoxThemed • TDividerBevel • TExtendedNotebook • TListFilterEdit • TListViewFilterEdit • TTreeFilterEdit • TShortPathEdit • TLvlGraphControl
RTTI TTIEdit • TTIComboBox • TTIButton • TTICheckBox • TTILabel • TTIGroupBox • TTIRadioGroup • TTICheckGroup • TTICheckListBox • TTIListBox • TTIMemo • TTICalendar • TTIImage • TTIFloatSpinEdit • TTISpinEdit • TTITrackBar • TTIProgressBar • TTIMaskEdit • TTIColorButton • TMultiPropertyLink • TTIPropertyGrid • TTIGrid
SQLdb TSQLQuery • TSQLTransaction • TSQLScript • TSQLConnector • TMSSQLConnection • TSybaseConnection • TPQConnection • TPQTEventMonitor • TOracleConnection • TODBCConnection • TMySQL40Connection • TMySQL41Connection • TMySQL50Connection • TMySQL51Connection • TMySQL55Connection • TMySQL56Connection • TSQLite3Connection • TIBConnection • TFBAdmin • TFBEventMonitor • TSQLDBLibraryLoader
Pascal Script TPSScript • TPSScriptDebugger • TPSDllPlugin • TPSImport_Classes • TPSImport_DateUtils • TPSImport_ComObj • TPSImport_DB • TPSImport_Forms • TPSImport_Controls • TPSImport_StdCtrls • TPSCustomPlugin
SynEdit TSynEdit • TSynCompletion • TSynAutoComplete • TSynMacroRecorder • TSynExporterHTML • TSynPluginSyncroEdit • TSynPasSyn • TSynFreePascalSyn • TSynCppSyn • TSynJavaSyn • TSynPerlSyn • TSynHTMLSyn • TSynXMLSyn • TSynLFMSyn • TSynDiffSyn • TSynUNIXShellScriptSyn • TSynCssSyn • TSynPHPSyn • TSynTeXSyn • TSynSQLSyn • TSynPythonSyn • TSynVBSyn • TSynAnySyn • TSynMultiSyn • TSynBatSyn • TSynIniSyn • TSynPoSyn
Chart TChart • TListChartSource • TRandomChartSource • TUserDefinedChartSource • TCalculatedChartSource • TDbChartSource • TChartToolset • TChartAxisTransformations • TChartStyles • TChartLegendPanel • TChartNavScrollBar • TChartNavPanel • TIntervalChartSource • TDateTimeIntervalChartSource • TChartListBox • TChartExtentLink • TChartImageList
IPro TIpFileDataProvider • TIpHttpDataProvider • TIpHtmlPanel