|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
12.01.2012, 12:12 | #1 |
Форумчанин
Регистрация: 17.11.2010
Сообщений: 262
|
Сохранение геометрии окна
Есть динамические варианты?
Геометрия окна - это положение окна, его размеры и расположение объектов на форме(так же их размеры и положение). Видел в 1С и не только, как при открытии окна меняют размеры столбцов таблиц и сами размеры и после закрытия/открытия этого же окна, вся геометрия компонент сохраняется. Просто не считаю правильным сохранять в Ini или реестр для 30 форм штук по 30 настроек. Если кто сталкивался подскажите. Заранее благодарен. Последний раз редактировалось Drugnir; 12.01.2012 в 13:11. |
12.01.2012, 13:46 | #2 |
Форумчанин
Регистрация: 14.10.2011
Сообщений: 267
|
- а какие возможны варианты?! Если не устраивает записи в реестре, нет желания использовать дополнительный файл (*.ini), то остается только вариант с автомодификацией самой программы?! Это самый гиблый вариант, по моему мнению.
|
12.01.2012, 13:58 | #3 |
Форумчанин
Регистрация: 17.11.2010
Сообщений: 262
|
То что записывать в реестр или Ini, это нужно. Но не руками туда все настройки вписывать, а динамически. Допустим вписал я секции, а потом в соответствующую секцию при закрытии формы вписались все настройки.
представляю это как-то так. |
12.01.2012, 19:30 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
ну так сохраните в событии OnDestroy, а в OnCreate загрузите.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
13.01.2012, 10:16 | #5 |
Форумчанин
Регистрация: 17.11.2010
Сообщений: 262
|
|
13.01.2012, 10:29 | #6 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Цитата:
Перезапись при изменении размеров окна? Тогда событие OnResize формы.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
|
13.01.2012, 11:02 | #7 |
Форумчанин
Регистрация: 17.11.2010
Сообщений: 262
|
Есть у формы размеры и положение и у компонент. Динамически запись геометрии окна, я имею ввиду, то что мне не надо писать Form1.Top =... Button1.Height =... и т.д., т.е. перечислять все настройки самому.
Т.е. если два окна отличаются хотя бы на одну кнопку мне не надо было в настройках самому вручную дописывать параметры этой кнопки, тем более что настроек бывает много. Вот для этого мне и нужна динамическая процедура на запись и чтение геометрии(состояния) окна. |
13.01.2012, 12:10 | #8 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Есть два пути решения вашей проблемы.
1. Объявить все окна как диалоговые. Тогда при любом разрешении экрана, они будут сохранять свои размеры неизменными. 2. Установить для программы эксклюзивный режим. В этом случае, разрешение экрана будет устанавливаться так, как Вы его установите. Размеры и расположение компонентов и в 1-м и во 2-м случае меняться не будут. Есть ещё способ (компромиссный). Делаете фреймы и вызываете их по мере необходимости. На форме располагаются только компоненты которые по природе своей могут менять размеры. Например Memo, RichEdit и т.д. Можно использовать перестраиваемые панели. В общем выбор большой, смотря чего Вы добиваетесь.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
13.01.2012, 14:03 | #9 |
Форумчанин
Регистрация: 17.11.2010
Сообщений: 262
|
Спасибо, за ответ. но это немного не то. Проблема вот в чем. Пользователь меняет размер окна, подгоняет размеры полей таблиц под себя и еще кое какие манипуляции. После закрывает окно. И при повторном открытии у него точно такое же состояние окна, как и перед закрытием, т.е. те же размеры окна и те же размеры полей таблиц какие установил он и т.д. Так вот это мне и надо динамически записывать при OnClose в файл, а не перечислять все компоненты и их состояние лично.
|
13.01.2012, 17:57 | #10 |
Форумчанин
Регистрация: 14.10.2011
Сообщений: 267
|
Чисто гипотетически существование такого "визарда" маловероятно. Если Вы "на стороне" сохраняете параметры целой кучи компонентов, то они не могут быть универсальны. Можно (самому) написать универсальный обработчик формы, где в цикле по всем объектам сраниваются габариты или, допустим, ширины колонок таблиц в состоянии "до" и "после", и сохраняются "на стороне" те, которые "после".
По другому - не представляю... . |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
С++: немного геометрии)) | Blondy | Помощь студентам | 7 | 02.04.2011 14:59 |
Задача по геометрии (мат. методы) | XYLIGANXYL | Общие вопросы по Java, Java SE, Kotlin | 5 | 12.02.2011 22:20 |
Задача по геометрии на С | Matadora | Помощь студентам | 6 | 17.09.2010 10:09 |
C#, Visual Studio, Создание окна и сохранение в своем формате.как? | lexluter1988 | Помощь студентам | 2 | 14.05.2010 21:55 |
Помогите решить задачу по геометрии | Prototype | Свободное общение | 2 | 25.02.2008 21:24 |