Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как работает сохранение параметров, вводимых пользователем в форме при закрытии этой формы / 20 сообщений из 20, страница 1 из 1
27.03.2018, 16:30
    #39621355
Глазунов
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает сохранение параметров, вводимых пользователем в форме при закрытии этой формы
Передали исходники проекта, написанного на Lazarus.
При запуске на исполнение открывается форма с несколькими параметрами, которые указывает пользователь. После закрытия формы и повторного открытия все введенные пользователем параметры уже заполнены, т.е. они как-то сохраняются при закрытии формы и восстанавливаются при открытии формы.

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

[TApplication.Form1]
ComboBox1_ItemIndex=0
DirectoryEdit1_Directory=D:\!_TEST
Edit1_Text=Login
Edit2_Text=Password
FileNameEdit1_FileName=D:\Base\Base2017.gdb
Edit3_Text=
Date1=01.01.2017
Date2=31.12.2017

При доработке на форму был добавлен еще один параметр, но его значение не восстанавливается после повторного открытия формы.

В коде не нашел процедур, которые бы сохраняли параметры при закрытии формы и восстанавливали при открытии.
Где может быть спрятан механизм сохранения/восстановления параметров формы?
...
Рейтинг: 0 / 0
27.03.2018, 16:32
    #39621363
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает сохранение параметров, вводимых пользователем в форме при закрытии этой формы
TIniPropStorage?
...
Рейтинг: 0 / 0
27.03.2018, 16:40
    #39621375
Глазунов
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает сохранение параметров, вводимых пользователем в форме при закрытии этой формы
Да, нашел на форме объект IniPropStorage1 со свойством InitFileName = settings.ini

Осталось понять как все это работает.
...
Рейтинг: 0 / 0
27.03.2018, 17:00
    #39621415
LSV
LSV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает сохранение параметров, вводимых пользователем в форме при закрытии этой формы
Где может быть спрятан механизм сохранения/восстановления параметров формы? Если форма многократно унаследована, то в одном из предков.
А в событиях формы ОнСлосе, ОнКлосеКвери, ОнДестрой точно нет нужных ссылок ?
...
Рейтинг: 0 / 0
27.03.2018, 17:13
    #39621430
Глазунов
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает сохранение параметров, вводимых пользователем в форме при закрытии этой формы
Точно, есть события на OnShow и OnClose, проглядел.
Но там описано сохранение и восстановление только 2-х параметров из 8: Date1 и Date2. А как сохраняются/восстанавливаются остальные шесть?
...
Рейтинг: 0 / 0
27.03.2018, 17:16
    #39621436
Глазунов
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает сохранение параметров, вводимых пользователем в форме при закрытии этой формы
В коде форма описана как:

TForm1 = class(TForm)

Правильно понимаю, что форма создана на основе базового класса и ни от чего не наследована?
...
Рейтинг: 0 / 0
27.03.2018, 17:51
    #39621473
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает сохранение параметров, вводимых пользователем в форме при закрытии этой формы
ГлазуновА как сохраняются/восстанавливаются остальные шесть?
Автоматически... Заглянуть в исходники дело пары минут.
...
Рейтинг: 0 / 0
28.03.2018, 08:06
    #39621683
Глазунов
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает сохранение параметров, вводимых пользователем в форме при закрытии этой формы
А почему тогда так же автоматически не сохраняется значение нового элемента, добавленного на форму?

Куда смотреть в исходниках?
...
Рейтинг: 0 / 0
28.03.2018, 08:45
    #39621700
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает сохранение параметров, вводимых пользователем в форме при закрытии этой формы
ГлазуновКуда смотреть в исходниках?
Начиная с TCustomIniPropStorage = class(TFormPropertyStorage) и выше.
...
Рейтинг: 0 / 0
28.03.2018, 08:48
    #39621702
goldmi45
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает сохранение параметров, вводимых пользователем в форме при закрытии этой формы
Глазунов,

IniPropStorage1 какого класса? Не TIniPropStorageManEh? Есть экземпляр TPropStorageEh? Если есть, то вот у него есть свойство StoredProps. Его и нужно смотреть.
...
Рейтинг: 0 / 0
28.03.2018, 08:49
    #39621704
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает сохранение параметров, вводимых пользователем в форме при закрытии этой формы
goldmi45Не TIniPropStorageManEh?
Нет. Стандартный для лазаруса.
...
Рейтинг: 0 / 0
28.03.2018, 09:11
    #39621714
Глазунов
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает сохранение параметров, вводимых пользователем в форме при закрытии этой формы
Описание формы в коде:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
type

  { TForm1 }

  TForm1 = class(TForm)
      Button1: TButton;
      CheckBox1: TCheckBox;
      CheckBox2: TCheckBox;
      ComboBox1: TComboBox;
      Datasource1: TDatasource;
      Datasource2: TDatasource;
      Datasource3: TDatasource;
      Datasource4: TDatasource;
      Datasource5: TDatasource;
      DateEdit1: TDateEdit;
      DateEdit2: TDateEdit;
      Dbf1: TDbf;
      Dbf2: TDbf;
      Dbf3: TDbf;
      DirectoryEdit1: TDirectoryEdit;
      Edit1: TEdit;
      Edit2: TEdit;
      Edit3: TEdit;
      FileNameEdit1: TFileNameEdit;
      IniPropStorage1: TIniPropStorage;
      Label1: TLabel;
      Label2: TLabel;
      Label3: TLabel;
      Label4: TLabel;
      Label5: TLabel;
      Label6: TLabel;
      Label7: TLabel;
      ProgressBar1: TProgressBar;
      StatusBar1: TStatusBar;
    UIBDataBase1: TUIBDataBase;
    UIBDataSet1: TUIBDataSet;
    UIBDataSet2: TUIBDataSet;
    UIBTransaction1: TUIBTransaction;
    UIBTransaction2: TUIBTransaction; 
...
Рейтинг: 0 / 0
28.03.2018, 09:45
    #39621734
Vlad F
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает сохранение параметров, вводимых пользователем в форме при закрытии этой формы
Глазунов,

Ищи соотв. настройки в свойствах этого самого PropStorage, а ещё попробуй даблкликнуть по нему.
...
Рейтинг: 0 / 0
28.03.2018, 09:47
    #39621735
Глазунов
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает сохранение параметров, вводимых пользователем в форме при закрытии этой формы
Так и не нашел где же настраивается автосохранение значений переменных формы.

Добавил в свойство StoredValues объекта формы IniPropStorage1 нужное мне для сохранение имя и в методах формы FormClose и FormActivate дописал код по сохранению и восстановлению.
...
Рейтинг: 0 / 0
28.03.2018, 10:02
    #39621751
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает сохранение параметров, вводимых пользователем в форме при закрытии этой формы
ГлазуновТак и не нашел где же настраивается автосохранение значений переменных формы.
Какой именно компонент не сохраняет автоматом данные?
...
Рейтинг: 0 / 0
28.03.2018, 10:04
    #39621755
Глазунов
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает сохранение параметров, вводимых пользователем в форме при закрытии этой формы
wadman,

CheckBox2: TCheckBox;
...
Рейтинг: 0 / 0
28.03.2018, 10:12
    #39621758
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает сохранение параметров, вводимых пользователем в форме при закрытии этой формы
ГлазуновCheckBox2: TCheckBox;
Там их два. Первый сохраняет? Выше в сохраненных параметрах его тоже нет...
...
Рейтинг: 0 / 0
28.03.2018, 10:19
    #39621768
Глазунов
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает сохранение параметров, вводимых пользователем в форме при закрытии этой формы
wadman,

И первый не сохраняет. Но CheckBox1 меня особо не интересует, т.к. им не пользуются. А вот 8 других сохраняются. И только 2 из 8, те что даты, были прописаны в коде закрытия и активации формы. Т.е. 6 переменных сохраняются автоматом без кодинга.
...
Рейтинг: 0 / 0
28.03.2018, 10:23
    #39621770
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает сохранение параметров, вводимых пользователем в форме при закрытии этой формы
Глазунов,

вспомнил... Выбери форму, открой в инспекторе SessionProperties. Там выбери, что нужно сохранять. :)
...
Рейтинг: 0 / 0
28.03.2018, 10:28
    #39621774
Глазунов
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает сохранение параметров, вводимых пользователем в форме при закрытии этой формы
wadman,

Огромное спасибо!
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как работает сохранение параметров, вводимых пользователем в форме при закрытии этой формы / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]