Difference between revisions of "TINIPropStorage"

From Free Pascal wiki
Jump to navigationJump to search
Line 1: Line 1:
 
{{TINIPropStorage}}
 
{{TINIPropStorage}}
  
TINIPropStorage is a component to save selected properties and to restore (either from TForm or each control on it). It works with the TForm.[[doc:lcl/controls/tcontrol.sessionproperties.html |SessionProperties]] property. You can find it on the tab '''Misc''' in the component palette.
+
TINIPropStorage является компонентом, нужен он для того, чтобы сохранить выбранные свойства или восстановить их (либо TForm или любого элемента управления на нем). Он работает со свойством TForm.SessionProperties. Вы можете найти его на вкладке '''Misc''' на панели компонентов.
  
[[doc:lcl/inipropstorage/tinipropstorage.html | TINIPropStorage]] works the same way as  [[TXMLPropStorage]], except that the session information in a [http://lazarus-ccr.sourceforge.net/docs/fcl/inifiles/index.html INI-file] will be saved.
+
[[doc:lcl/inipropstorage/tinipropstorage.html | TINIPropStorage]] работает так же, как и [[TXMLPropStorage]], отличие его в том что он сохраняет все в [http://lazarus-ccr.sourceforge.net/docs/fcl/inifiles/index.html INI-file] файле.
  
For more information and examples are in [[TXMLPropStorage]] to find.
+
Для получения более подробной информации и примеров смотрите сюда [[TXMLPropStorage]].
  
[[Hardware Access]]
 
  
 +
И так, проще говоря, мы сохраняем настройки формы и других элементов в ini файл. Это очень удобно и щас я покажу это на примере.
  
{{LCL Components Footer|TXMLPropStorage|TBarChart}}
+
Задача: Сохранить ширину колонок в таблице (в моем примере DBGrid) и потом при запуске программы восстановить её.
{{LCL Components}}
 
  
  
[[Category:LCL]]
+
При закрытие формы (FormClose) пишим код:
[[Category:Components]]
+
with Form1.IniPropStorage1 do
 +
        begin
 +
          IniSection:='DBGrid1_Column';
 +
          WriteInteger('Column_0', DBGrid.Columns.Items[0].Width);
 +
          WriteInteger('Column_1', DBGrid.Columns.Items[1].Width);
 +
          WriteInteger('Column_2', DBGrid.Columns.Items[2].Width);
 +
        end;
 +
 
 +
DBGrid1_Column - Это раздел/секция в ini файле (внизу покажу пример ini файла). Этих разделов может быть много.
 +
WriteInteger('Имя_Колонки', значение) - Это аналогично тому имя_переменной = значение.
 +
Вот и все. Мы сохранили в ini файл данные. Все довольно просто.
 +
 
 +
Теперь надо их считать и установить при запуске формы в таблицу.
 +
 
 +
При создании формы (FormCreate) пишим код:
 +
with Form1.IniPropStorage1 do
 +
    begin
 +
      IniSection:='DBGrid1_Column';
 +
      DBGrid1.Columns.Items[0].Width:=ReadInteger('Column_0', 20);
 +
      DBGrid1.Columns.Items[1].Width:=ReadInteger('Column_1', 20);
 +
      DBGrid1.Columns.Items[2].Width:=ReadInteger('Column_2', 20);
 +
    end;       
 +
 
 +
IniSection:='DBGrid1_Column' - Считываем раздел DBGrid1_Column который создали выше.
 +
DBGrid1.Columns.Items[0].Width - Получаем ширину колонки в данном случае нулевой.
 +
ReadInteger('Имя_колонки', значение_по_умолчанию_если_нет_значения_у_переменной) -  Имя колонки из примера Column_0 и Второй парамент это значение по умолчанию. В нашем примере это 20 пикселей ширина колонки если вдруг не будет у переменной значения. Хотя у нас такого не будет =)
 +
 
 +
В других случаях можно задавать текст в значение по умолчанию или какие то свои переменные, если в ini файле случайно не будет стоять на против переменно значение.
 +
 
 +
Вот и все. Мы загрузили из ini файла переменные и значения.
 +
 
 +
Пример получившегося ini файла:
 +
[DBGrid1_Column]
 +
Column_0=69
 +
Column_1=114
 +
Column_2=74
 +
 
 +
[DBGrid1_Column] - название раздела/секции
 +
Column_0=69  - Наша переменная Column_0 и значение 69 пикселей ширина нулевой колонки (она же первая но т.к.счет идет с нуля то нулевая)
 +
 
 +
[[Hardware Access]]
 +
 
 +
{{LCL Components/ru Footer|TXMLPropStorage/ru|TBarChart}}
 +
{{LCL Components/ru}}
 +
 
 +
 
 +
[[Category:LCL/ru]]
 +
[[Category:Components/ru]]

Revision as of 15:06, 9 October 2015

Deutsch (de) English (en) français (fr) русский (ru)

TINIPropStorage является компонентом, нужен он для того, чтобы сохранить выбранные свойства или восстановить их (либо TForm или любого элемента управления на нем). Он работает со свойством TForm.SessionProperties. Вы можете найти его на вкладке Misc на панели компонентов.

TINIPropStorage работает так же, как и TXMLPropStorage, отличие его в том что он сохраняет все в INI-file файле.

Для получения более подробной информации и примеров смотрите сюда TXMLPropStorage.


И так, проще говоря, мы сохраняем настройки формы и других элементов в ini файл. Это очень удобно и щас я покажу это на примере.

Задача: Сохранить ширину колонок в таблице (в моем примере DBGrid) и потом при запуске программы восстановить её.


При закрытие формы (FormClose) пишим код: with Form1.IniPropStorage1 do

       begin
         IniSection:='DBGrid1_Column';
         WriteInteger('Column_0', DBGrid.Columns.Items[0].Width);
         WriteInteger('Column_1', DBGrid.Columns.Items[1].Width);
         WriteInteger('Column_2', DBGrid.Columns.Items[2].Width);
       end;

DBGrid1_Column - Это раздел/секция в ini файле (внизу покажу пример ini файла). Этих разделов может быть много. WriteInteger('Имя_Колонки', значение) - Это аналогично тому имя_переменной = значение. Вот и все. Мы сохранили в ini файл данные. Все довольно просто.

Теперь надо их считать и установить при запуске формы в таблицу.

При создании формы (FormCreate) пишим код: with Form1.IniPropStorage1 do

   begin
     IniSection:='DBGrid1_Column';
     DBGrid1.Columns.Items[0].Width:=ReadInteger('Column_0', 20);
     DBGrid1.Columns.Items[1].Width:=ReadInteger('Column_1', 20);
     DBGrid1.Columns.Items[2].Width:=ReadInteger('Column_2', 20);
   end;        

IniSection:='DBGrid1_Column' - Считываем раздел DBGrid1_Column который создали выше. DBGrid1.Columns.Items[0].Width - Получаем ширину колонки в данном случае нулевой. ReadInteger('Имя_колонки', значение_по_умолчанию_если_нет_значения_у_переменной) - Имя колонки из примера Column_0 и Второй парамент это значение по умолчанию. В нашем примере это 20 пикселей ширина колонки если вдруг не будет у переменной значения. Хотя у нас такого не будет =)

В других случаях можно задавать текст в значение по умолчанию или какие то свои переменные, если в ini файле случайно не будет стоять на против переменно значение.

Вот и все. Мы загрузили из ini файла переменные и значения.

Пример получившегося ini файла: [DBGrid1_Column] Column_0=69 Column_1=114 Column_2=74

[DBGrid1_Column] - название раздела/секции Column_0=69 - Наша переменная Column_0 и значение 69 пикселей ширина нулевой колонки (она же первая но т.к.счет идет с нуля то нулевая)

Hardware Access

Template:LCL Components/ru Footer

Компоненты LCL
Вкладка Компоненты
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 • TLvlGraphControl • TShortPathEdit • TSpinEditEx • TFloatSpinEditEx • TTreeFilterEdit • TExtendedTabControl •
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