Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

правильное сохранение размеров окна


Darkwing ©   (2006-07-07 10:39:00) 

Программа сохраняет в .ini файл размеры главного окна при его закрытии. Вопрос в том, как сохранить размеры и положение состояния wsNormal если окно при закрытии находится в wsMaximized?


Ketmar   (2006-07-07 11:33:00) [1]

GetWindowPlacement()


StriderMan   (2006-07-07 11:18:00) [2]


> Примерно это же и я предлогаю

вобщем да, только надо не на закрытии проверятьа как я написал в SetBounds, а то если растянут форму, а потом развернут на весь экран и закроют, то сохранятся параметры до растягивания


SerJaNT   (2006-07-07 11:15:00) [3]


> StriderMan ©   (07.07.06 11:09) [8]


Примерно это же и я предлогаю


StriderMan   (2006-07-07 11:09:00) [4]

TForm1 = class(TForm)
 ...
 private
   fSTop: integer;
   fSLeft: integer;
   fSWidth: integer;
   fSHeight: integer;
 
 ....
 public
   procedure setBounds(...); override;
 ....

procedure TForm1.SetBounds(...);
begin
 windowstate = wsNormal then
 begin
    fSTop := Top; //Сохраняем размеры если в состоянии wsNormal
    ....

 end;
 inherited
end;


SerJaNT   (2006-07-07 11:08:00) [5]

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


SerJaNT   (2006-07-07 11:07:00) [6]

Нет, на событие onclose надо поставить тот код который я привел.


Darkwing   (2006-07-07 11:06:00) [7]

то есть wsNormal из wsMaximized


Darkwing   (2006-07-07 11:05:00) [8]

Программа сохраняет wsMaximized или wsNormal которые были при закрытии. надо как-то в момент перехода из wsNormal в wsMaximized сохранять значения размеров wsNormal. Типа задача сводится к тому чтобы определить момент перехода из wsMaximized в wsNormal.


SerJaNT   (2006-07-07 11:00:00) [9]

Может так

if form1.windowstate = wsMaximized then
begin
... что-то делаем если окно максимизированно
end else
begin
... что-то делаем если окно в каком-то другом состоянии
end;


medved_68   (2006-07-07 10:47:00) [10]


> Darkwing

А ты не давай закрыть окно пока оно wsMaximized. Пусть репу почешут:)))


PSPF2003   (2006-07-07 10:44:00) [11]

Наверное, надо использовать какой-нибудь флаг, при загрузке проверяем если он равен true, уснавливаем необходимое состояние


Наверх

Титульная страница Поиск, карта сайта Написать письмо