![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Минимальные размеры формы [D6, Win2k, WinXP]
DDDeN © (2004-11-29 12:24:00)Как сделать, чтобы форма могла уменьшаться и увеличиваться при изменении ее размеров только до определенного размера?
Molchanov (2004-11-29 13:24:00) [1]2 DDDeN [6]
TForm1 = class(TForm)
...
private
procedure GeMinMaxInfo(var AMessage: TMessage); message WM_GETMINMAXINFO;
...
procedure TForm1.GeMinMaxInfo(var AMessage: TMessage);
begin
with PMINMAXINFO(AMessage.LParam)^ do
begin
ptMinTrackSize.x := MinW; //Минимальная ширина
ptMinTrackSize.y := MinH; //Минимальная высота
//ptMaxTrackSize - максимальные размеры
//ptMaxSize - размеры при WindowState = wsMaximized
//ptMaxPosition - координаты левого верхнего угла при WindowState = wsMaximized
end
end;
Manfred8 (2004-11-29 13:23:00) [2]Ну это переопределенный обработчик WM_GETMINMAXINFO, изменяет минимальный размер на 450/300 и вызывает исходный обработчик этого сообщения.
В форме добавь в объявление
procedure WMGetMinMaxInfo (var Message:TMessage);message WM_GETMINMAXINFO;
и получишь то что надо
DDDeN (2004-11-29 13:07:00) [3]2 ASoft
Да-а-а-а... Эта штука точно работает!
2 Molchanov
Это сообщение тоже можно использовать - нашел кусок кода и не знаю что с ним делать. Вот он:
Procedure TForm1.WMGetMinMaxInfo(var Message : TMessage);
type
PTMinMaxInfo = ^TMinMaxInfo;
begin
with PTMinMaxInfo(Message.LParam)^.ptMinTrackSize
do begin
x := 450;
y := 300;
end;
inherited;
end;
Если знаете как ЭТО работает (или не работает - что в полне вероятно), объясните мне плз.
ASoft (2004-11-29 12:58:00) [4]Constraints - в инспекторе свойств формы: установить значения высоты и ширины формы и все.
Molchanov (2004-11-29 12:57:00) [5]WM_GETMINMAXINFO
DDDeN (2004-11-29 12:49:00) [6]Я бы тоже хотел узнать
fashionguide (2004-11-29 12:36:00) [7]а по подробнее, плз. :)
MBo (2004-11-29 12:28:00) [8]Constraints