Закрытые окна, сохраняющие свои ценности / выбор - PullRequest
4 голосов
/ 08 января 2012

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

frmConversions.ShowModal;

Когда пользователь завершил то, что ему нужно сделать в этом окне, и он закрыл это окно, я закрываю окно, используя следующее:

frmConversions.Close;

Однако, если пользователь затем возвращается к frmConversions, ранее выбранные им параметры все равно будут выбраны / введены. Правильно ли я обрабатываю несколько окон, и если да, как мне остановить сохранение данных?

Ответы [ 3 ]

9 голосов
/ 08 января 2012

Зависит от того, как вы создаете форму.Если вы автоматически создадите форму, то она будет существовать в течение всей жизни программы и, таким образом, сохранит все значения, хранящиеся в переменных формы.Однако, если вы создаете модальные формы всякий раз, когда это необходимо, и впоследствии освобождаете их (как обычно), тогда значения не будут сохранены.Это делается таким образом

with TFrmConversions.Create(nil) do
  try
    ShowModal;
  finally
    Free;
  end;
1 голос
/ 08 января 2012

В событии FormClose вы можете выбрать, что происходит с формой при вызове Close (см. Документацию и здесь . Если действие, например, caHide, форма скрыта, а не освобождена. тем самым он будет поддерживать настройки.

0 голосов
/ 09 января 2012

Существует два основных подхода: 1) создавать форму каждый раз, когда она отображается, и освобождать ее, когда она закрыта. 2) в событии OnShow формы установите все переменные, которые пользователь может изменить, на их начальные значения.

Способ достижения # 1 - поместить функцию в файл модуля формы, чтобы создать ее, showmodal, а затем освободить ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...