![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
Доброго времени суток, дамы и господа!
Имею следующий вопрос: для Drag&Dock (в D7) использую JVCL (JvDockServer&JvDockClient). Понравились простотой использования (о чем еще мечтать - бросил на форму и всё, пользуйся) и быстротой работы (в отличие от стандартного примера в Delphi, достаточно тормозящего при перемещении форм). Причем "ручные" манипуляции идут через стандартные функции типа ManualDock. Собственно, что хотелось бы - при завершении работы приложения сохранять положение и "Dock-статус" форм, а при следующем запуске восстанавливать их состояние и положение. Как сотворить подобное? DRKB молчит, отсылая к DockManager, а он в Runtime = nil на dock-нутых формах... Документации по JVCL ващпе кот наплакаль... |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 31 Всего: 484 |
Сохранять куда?
Для сохранения состояний формы вполне подойдет метод TStream.WriteComponent(Form1); Ну и аналогичная загрузка TStream.ReadComponent(Form1); В качестве стрима можешь использовать, например, TFileStream.
Эвенты самой формы использовать можно - она остается нетронутой. Разве что размеры и положение возьмутся из файла. Сохраняемый файл имеет бинарную dfm структуру. Используя BinToHex, можно превратить его в обычный dfm. |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
Да без разницы. TFileStream более чем подойдет. Наверное, я плохо объяснил, что мне нужно...
Не подошло. Вернее, подошло, но не совсем... Сделал 2 дочерние формы, за-Dock-ил их так. ![]() Что за окно, на котором они лежат, и как достучаться до него через jvcl - без понятия :( (WinSpectorом пока не ковырял) Сохранил (WriteComponent(fm)) *2. При следующей загрузке загрузил (ReadComponent(fm))*2. И - само собой, получил это: ![]() То, что между окнами - это главное окно Delphi виднеется... А хотелось бы, как на первой картинке... И я знаю, что это возможно (вот только - как?) - Delphi восстанавливает при загрузке проекта положение и Dock-состояние всех своих окон. Это сообщение отредактировал(а) kami - 7.1.2011, 22:59 |
|||
|
||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Когда-то ребята создавшие RxLib делали что-то подобное.
Сейчас стоит посмотреть в сторону JEDI. -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
||||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 16 Всего: 54 |
Если не трудно, поделись что наковырял. -------------------- Кольцов Виктор Владимирович |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
Увы - ничего не наковырял. Проект нужно было делать срочно, посему ввиду того, что все docked-формы создаются динамически, причем - только по клику пользователя, это дело было заброшено. By default оставлена возможность сделать dock, но без сохранения состояния. |
|||
|
||||
xkor |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 8.1.2007 Где: Питер Репутация: 2 Всего: 4 |
неужели процедуры SaveDockTreeToFile и LoadDockTreeFromFile в модуле JvDockControlForm так и не нашли?
|
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 16 Всего: 54 |
они работают если все формы созданы и для всего приложения сразу - в общем корявая заготовка не универсальное решение, требуют переделки... Это сообщение отредактировал(а) Frees - 9.7.2011, 14:56 -------------------- Кольцов Виктор Владимирович |
|||
|
||||
xkor |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 8.1.2007 Где: Питер Репутация: 2 Всего: 4 |
Frees, ну это да, но там переделывать в принципе немного, мне когда надо было за пару часов подправил
|
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
||||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 16 Всего: 54 |
менял исходники jedi? мне так нельзя... а SaveDockTreeToFile и LoadDockTreeFromFile это даже не методы... в общем, решил не ездить на кривой козе вокруг кривых jedi -------------------- Кольцов Виктор Владимирович |
|||
|
||||
xkor |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 8.1.2007 Где: Питер Репутация: 2 Всего: 4 |
||||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
Хм. И смысла было поднимать эту тему из небытия? Чтобы сказать ? Я очень рад за Вас, что Вы справились с задачей, когда Вам надо было. Но вот некоторое время назад было надо мне. В принципе, можно сказать что и сейчас надо. Большое спасибо Вам за содержательные ответы и неоценимую помощь в вопросе, заданном в форуме "Для новичков". Dixi. Это сообщение отредактировал(а) kami - 10.7.2011, 15:00 |
|||
|
||||
xkor |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 8.1.2007 Где: Питер Репутация: 2 Всего: 4 |
kami, ну когда я поднимал я думал что вам хватит оригинальных SaveDockTreeToFile и LoadDockTreeFromFile. Ну а дальше да, уже лишнего сказал...
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |