2013-03-18 4 views
0

У меня есть форма под названием . Я использую JVCLTJvFormStorage, чтобы сохранить размещение формы, размер формы и позицию формы в INI-файле, если программа была прервана.Почему TJvFormStorage не сохраняет позицию формы правильно?

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

Мне было предложено использовать методы в TJvFormStorage, но я не очень понимаю, как использовать эти методы.

Почему TJvFormStorage не сохраняет позицию формы правильно? Есть ли способ правильно сохранить позицию формы, используя TJvFormStorage?

Заранее спасибо.

+0

Что сохранено в файле INI на самом деле, когда форма закрыта? PS: Официальный форум JVCL находится по адресу http://newsportal.delphi-jedi.org/index.php –

+0

@ Arioch'The Yeah ..Я попробовал 'TFormStorage' из' RxLib' для хранения значений форм, и он работает правильно. Однако мне нужно перейти в 'JVCL', поэтому я пытаюсь использовать' TJvFormStorage' из 'JVCL', но он работает неправильно. Он просто хранит размер форм правильно, а не с позицией формы. – Andromeda

+0

u все еще не ответил, что действительно сохраняется в файле INI, когда форма закрыта? это спасение или восстановление неправильного? –

ответ

0

Что действительно сохраняется в файле INI, когда форма закрыта?

Возможно, возможно, только JFS принимает меры, чтобы иногда не выносить форму за пределы дисплея, игнорируя при этом слишком экстремальные значения. Попробуйте отслеживать последовательность загрузки INI, чтобы увидеть, при каком условии она игнорируется. Чтобы сузить цель, попробуйте выполнить выдачу и отслеживание метода RestorePlacement.

Теперь вы цитировали ини файл, это, кажется, правильная линия: NormPos = 135,734,623,1367 Итак, еще раз, добавить призыв к вышеупомянутому RestorePlacement и рассеянной в него построчно. Вы увидите, что файл INI не читается, или значения не применяются.

Скорее всего, вы закончите в procedure InternalRestoreFormPlacement из JvJVCLUtils.pas. Продолжайте отслеживать его, чтобы узнать, где и почему данные либо не читаются из INI, либо не могут быть назначены.

Опять же, даже если вы не можете работать это, то у вас есть еще два варианта:

  1. Использование StoredProps свойство (не метод) прост: дважды щелкните компонент JSF и добавить форму Левый/Свойства Top/Width/Height для сохранения списка, снимите отметку form position из списка сохранения.

  2. Использование свойства StoredValues (не метод) прост: дважды щелкните pproperty, затем добавьте одно свойство строки или 4 целочисленных свойства. Используйте события компонента OnRestorePlacement и OnSavePlacement, чтобы обновить их с/до фактического положения формы.

PS. Примите меры безопасности, чтобы, если пользователь изменил отображение, количество просмотров или разрешение экрана, окно не будет располагаться за пределами экрана.

PPS. JvFormPlacement и JvFormStorage, которые вы можете проверить как d: \ DelphiProjects \ Libs \ JediVCL \ jvcl \ examples \ JvAppStorage \ *. *

PPPS. Официальный форум JediVCL находится на http://newsportal.delphi-jedi.org/index.php

+0

Мне нужно сохранить последнюю позицию формы INI INI-файла .. – Andromeda

 Смежные вопросы

  • Нет связанных вопросов^_^