Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Для новичков > Save и Load состояния Docked форм |
Автор: kami 7.1.2011, 19:40 |
Доброго времени суток, дамы и господа! Имею следующий вопрос: для Drag&Dock (в D7) использую JVCL (JvDockServer&JvDockClient). Понравились простотой использования (о чем еще мечтать - бросил на форму и всё, пользуйся) и быстротой работы (в отличие от стандартного примера в Delphi, достаточно тормозящего при перемещении форм). Причем "ручные" манипуляции идут через стандартные функции типа ManualDock. Собственно, что хотелось бы - при завершении работы приложения сохранять положение и "Dock-статус" форм, а при следующем запуске восстанавливать их состояние и положение. Как сотворить подобное? DRKB молчит, отсылая к DockManager, а он в Runtime = nil на dock-нутых формах... Документации по JVCL ващпе кот наплакаль... |
Автор: Snowy 7.1.2011, 21:47 | ||
Сохранять куда? Для сохранения состояний формы вполне подойдет метод TStream.WriteComponent(Form1); Ну и аналогичная загрузка TStream.ReadComponent(Form1); В качестве стрима можешь использовать, например, TFileStream.
Эвенты самой формы использовать можно - она остается нетронутой. Разве что размеры и положение возьмутся из файла. Сохраняемый файл имеет бинарную dfm структуру. Используя BinToHex, можно превратить его в обычный dfm. |
Автор: northener 8.1.2011, 03:42 |
Когда-то ребята создавшие RxLib делали что-то подобное. Сейчас стоит посмотреть в сторону JEDI. |
Автор: kami 8.1.2011, 09:02 |
Дык я их и использую... Вроде, нашел - у создателей jvcl хоть help и страдает на обе ноги, но демки неплохие. Есть у них функции LoadDockTreeFromAppStorage/SaveDockTreeToAppStorage. Вроде, то что мне нужно. Буду ковырять ![]() |
Автор: Frees 17.6.2011, 13:39 |
Если не трудно, поделись что наковырял. |
Автор: kami 17.6.2011, 20:18 |
Увы - ничего не наковырял. Проект нужно было делать срочно, посему ввиду того, что все docked-формы создаются динамически, причем - только по клику пользователя, это дело было заброшено. By default оставлена возможность сделать dock, но без сохранения состояния. |
Автор: xkor 9.7.2011, 00:54 |
неужели процедуры SaveDockTreeToFile и LoadDockTreeFromFile в модуле JvDockControlForm так и не нашли? |
Автор: Frees 9.7.2011, 14:54 | ||
они работают если все формы созданы и для всего приложения сразу - в общем корявая заготовка не универсальное решение, требуют переделки... |
Автор: xkor 9.7.2011, 20:45 |
Frees, ну это да, но там переделывать в принципе немного, мне когда надо было за пару часов подправил |
Автор: kami 9.7.2011, 22:24 | ||
Так выложи код, помоги. |
Автор: Frees 9.7.2011, 23:47 | ||
менял исходники jedi? мне так нельзя... а SaveDockTreeToFile и LoadDockTreeFromFile это даже не методы... в общем, решил не ездить на кривой козе вокруг кривых jedi |
Автор: xkor 10.7.2011, 11:01 |
боюсь он не сохранился, для доков я уже стал использовать DevExpress компоненты, а jedi обновил до новой версии и за ненадобностью уже не правил... |
Автор: kami 10.7.2011, 14:59 |
Хм. И смысла было поднимать эту тему из небытия? Чтобы сказать ? Я очень рад за Вас, что Вы справились с задачей, когда Вам надо было. Но вот некоторое время назад было надо мне. В принципе, можно сказать что и сейчас надо. Большое спасибо Вам за содержательные ответы и неоценимую помощь в вопросе, заданном в форуме "Для новичков". Dixi. |
Автор: xkor 13.7.2011, 13:14 |
kami, ну когда я поднимал я думал что вам хватит оригинальных SaveDockTreeToFile и LoadDockTreeFromFile. Ну а дальше да, уже лишнего сказал... |