Delphi как сохранить положение окна

Delphi как сохранить положение окна

Помогите с сохранением параметров окон.
Есть два окна dockable. Необходимо сохранить их в соедененной позиции (состыкованными) как сделать это на событи OnClose и как подгрузить на OnCreate?


Universe ( 2003-08-30 14:25 ) [1]

P.S. Смысл сделать окна как в Winamp»е.


Universe ( 2003-08-30 15:17 ) [2]

Да, если вопрос не понятен поясняю нужно сохранить при закрытии программы параметры окон и загрузить при запуске но соедененными.


Universe ( 2003-08-30 15:17 ) [3]

Да, если вопрос не понятен поясняю нужно сохранить при закрытии программы параметры окон и загрузить при запуске но соедененными.


Universe ( 2003-08-30 15:19 ) [4]

Да, если вопрос не понятен поясняю нужно сохранить при закрытии программы параметры окон и загрузить при запуске но соедененными.

блин бага на сайте я обновлял страницу, а у меня добавлялись ответы, вернее мои же коментарии к вопросу. причем обновлял в самом форуме.


Yanis ( 2003-08-30 18:30 ) [6]


TButton ( 2003-08-30 18:59 ) [7]

type
MyWinState = record
left,
top:integer;
end;

onClose
win1state.top:=form1.top;
win1state.left:=form1.left;
win2state.top:=form2.top;
win2state.left:=form2.left;
AssignFile(f,»settings.dat»);
Rewrite(f);
Write(f,win1state,win2state);
CloseFile(f);

onCreate
AssignFile(f,»settings.dat»);
Reset(f);
Read(f,win1state,win2state);
CloseFile(f);
form1.top:=win1state.top;
form1.left:=win1state.left;
form2.top:=win2state.top;
form2.left:=win2state.left;

ето конечно правильно НО! ето коряво и неудобно и неуниверсально, поетому лучше — реестр или ини файл


Universe ( 2003-09-01 19:28 ) [8]

Спасибо. Обязательно воспользуюсь.


ggsoft ( 2003-09-01 19:35 ) [9]

Лучше:
GetWindowPlacement(. )/SetWindowPlacement(. ) в реестр
TRegistry.WriteBinaryData(. )/ReadBinaryData(. )

Тогда как сделать их тоскаемыми друг за другом.

Источник

Управление положением окна

Доброго времени суток. У меня такой вопрос: как можно отправить форму своей программы, на второй монитор?

например, есть главное окно, на нем кнопочка, нажимаем и принудительно отправляем новое окно на второй монитор. Кто ни будь знает как это можно сделать?

Управление положением сторонней программы
Доброго времени суток. У меня такой возник вопрос: возможно ли из свой программы управлять.

Определить угол между положением часовой стрелки в начале суток и ее положением в h часов, m минут и s секунд
Определить f – угол (в градусах) между положением часовой стрелки в начале суток и ее положением в.

Читайте также:  Уклон кровли при установке мансардных окон

Управление координатами окна
Нужно, чтобы по нажатии на кнопку форма «втыкалась» (т. е. прислонялась) в нижний правый угол.

Управление положением MessageBox
Можно ли как то управлять ей ? что бы выбрать место для её отображения ? Хотел что бы она.

По электронной почте

А если серьёзно, то смотря для какой цели. Если для демонстрации внешнего другому программисту, то легче принтскрином или чем-то наподобии. Должна быть расшаренная папка. Если же просто форма должна выпрыгнуть неожиданно для пользователя, и пользователь должен что-то на ней нажать, то здесь лучше использовать клиент-серверную модель. В роли сервера выступает Ваш ПК, в роли клиента — компьютер пользователя. А вообще, хоть лень и двигатель прогресса, однако, это всё таки порок. Другому программисту можно прислать исходники.

Источник

Delphi как сохранить положение окна

Здравствуйте, уважаемые.
Не сложно найти в интернете как при закрытии сохранить в ini, а при открытии восстановить размеры окна. Не сложно предположить, что так же можно запомнить и статус окна, записав в ini переменную, отвечающую за WindowState.
И то ли никто в результате не пользуется в полном объёме этим, то ли ещё что, но нигде я не нашёл как бороться с одним косяком.
Если при работе с программой форму развернуть, а потом свернуть — она примет предыдущие размеры и положение. Однако если при развёрнутом виде форму закрыть с записью размеров и положения — запишутся значения, соответствующие максимальному размеру окна и верхней левой его позиции. Соответственно, если после запуска окно свернуть — оно не примет те размеры и положение, которые были перед разворачиванием, а останется в углу и максимальным.
Может, кто-нибудь знает как с этим бороться?
Пробовал запоминать размеры через CanResize и Resize. Казалось бы логичным: перед изменением размера сохранил предыдущие, и если после изменения изменился статус на Maximized, то записываем предыдущие. Но не тут то было. Для проверки работы этой связки повесил ShowMessage в оба события, который показывал при каком событии вывелось сообщение, ширина и статус окна.
В результате получилось, чот при максимизации из нормального состояния происходит ШЕСТЬ событий!! Вот что выводил ShowMessage при каждом появлении:
Событие (CR — CanResize; R — Resize)/Размер окна (N — нормальный; M — максимальный)/WindowState (N — wsNormal; M — wsMaximized)

Читайте также:  Как сделать отделку окон изнутри

1. CR/N/N
2. CR/M/N
3. R/M/N
4. CR/M/M
5. R/M/M
6. CR/M/M

Т.е. программа сначала изменяет размер, создавая и финальное onResize, и только потом уже с этими размерами меняет статус окна. Получается, логично приходящий в голову способ нежизнеспособен. Зачем под конец она снова создаёт CR — вообще для меня загадка.

Единственный вариант, который позволяет более-менее нормально восстанавливать/разворачивать и после закрытия, у меня получился вот такой:

Может, кто подскажет или придумает как сделать это более нормальным способом?

Встречающийся в просторах интернета вариант «повесить» запоминание размеров на Destroy не подходит, т.к. при этом не срабатывает строка, в которой окно возвращается в нормальное состояние.
Косяк этого варианта: перед закрытием видно, как форма нормализуется. И ещё она не воспринимает запоминание состояния если её закрыть в минимизированном виде.

Источник

Сохранение размеров, позиции и состояния окна

Приведу код WindowRestorer — восстановителя размера и состояния окна.

ОПИСАНИЕ: Вы наверное замечали, что профессионально написанные программы «запоминают» состояние и позицию окон с момента их последнего показа? А большинство RAD-приложений это игнорируют? Вы можете исправить эту ошибку, взяв на вооружение этот модуль. Он позволяет сохранять позицию, размер и состояние окна, поэтому пользователь, открыв его вновь, увидит его в том же состоянии, в котором он видел его в последний раз.

ИСПОЛЬЗОВАНИЕ: Поместите WINRSTOR в список используемых модулей главной или любой другой формы, состояние, размер и позицию которой вы хотите сохранить. (Если вы сэкономить время и для восстановления дочерних форм использовать WinSaveChildren и WinRestoreChildren из главной формы, вы должны объявить этот модуль только в главной форме.)

В MainForm.Create, инициализируйте глобальный объект WinRestorer следующим образом (он должен предварительно быть объявлен, но еще не инициализирован):

Затем в MainForm.Destroy вы должны разрушить глобальный объект WinRestorer следующим образом:

Хорошее место для сохранения статуса формы — в обработчике события queryclose или в специально созданной кнопке или пункте меню. Я обычно создаю этот пункт в меню «Файл» с именем ‘&Сохранение рабочей области’ и обрабатываю следующим образом:

И при закрытии основной формы необходимо сделать следующее:

Восстановить состояние дочерних форм можно следующим образом:

Читайте также:  Как кот залез через окно

Я же переместил данный код в обработчик события show моей главной формы:

Источник

Сохранение положения создаваемых форм проекта

В общем ситуация такая проект с БД.
При запуске автосоздаются только DataModule и главная форма form1

Все остальные формы вызываются по следующему коду

На данный момент пытаюсь сохранять используя две процедуры для сохранения и восстановления значений из ini файла, код ниже.

Вложения

ini.zip (77.3 Кб, 3 просмотров)

Проблемка с указанием положения динамически создаваемых панелей в ScrollBox
Собственно, проблема уже полностью описана в заглавии темы. Я динамически создаю Panel и помещаю.

Сохранение в INI Динамически создаваемых объектов
Привет всем. Решил попробовать создавать элементы динамически, до этого никогда с этим не.

Сохранение проекта
Как восстановить файл .dpr оставил папку открытой, а мне все мои программы попортили

Сохранение рабочего состояния проекта
Помогите. Уже задолбало каждый раз при открытии проекта повторно расстяавлять брякпойты, забивать.

может, потому, что надо не только Сохранять, но и Загружать ?

просто взгляни на два куска своего кода, для Form1 и Form2
неужели не видно, чем они отличаются?

Это я и так знаю что они одинаковые. я и не загружаю параметры во второй форме а хочу на данный момент просто сохранить.

На Form1 же работает! А на Form2 аналогичный кусок кода нет?

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

Решение

Access violation при этом тебя никак не напрягает, я смотрю

Создаешь ты по кнопке Form2 — локальную переменную, а сохранить пытаешься глобальную, которая = NIL

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Сохранение проекта из своей программы
Доброго времени суток. Задача: Программа для работы с текстом должна уметь сохранять свои .

Сохранение положения компонента на форме (Сохранение параметра в Ini-файл)
Не знаю верно ли назвал тему. Доброго вечера тебе, всяк сюда входящий. Подскажите пожалуйста с.

Объявление форм для доступа к ним из других форм проекта
Поскажите, пожалуйста, как правильно объявить форму, что бы доступ к её элементам можно было.

Сохранение размера и положения окна
1. В функции CreateWindowEx есть параметры x, y, nWidth и nHeight. Как сделать, чтобы можно было.

Источник

Поделиться с друзьями
Adblock
detector