Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.13;
Скачать: CL | DM;

Вниз

Как запретить пользователю изменять размеры окна?   Найти похожие ветки 

 
Provodnick   (2003-03-01 18:04) [0]

Подскажите пожалуйста, как сделать недоступной для пользователя кнопку "Развернуть/Восстановить"?


 
Song ©   (2003-03-01 18:16) [1]

Дак что ж всё-таки надо сделать: запретить пользователю изменять размеры окна или сделать недоступной для пользователя кнопку "Развернуть/ Восстановить" ? Это знаете ли разные вещи.


 
Provodnick   (2003-03-01 18:19) [2]

Одно вытекает из другого. А вообще, сделать недоступной для пользователя кнопку "Развернуть/Восстановить".


 
Song ©   (2003-03-01 18:21) [3]

EnableMenuItem()


 
Namo ©   (2003-03-01 18:23) [4]

тем более, что убрав кнопки "Развернуть/ Восстановить", вы ничего не добьетесь, внизу на панели можно совершить те же самые действия. А вообще надо BorderStyle:=bsSingl; только это делается в инспекторе объектов.

Feanturi: Valanyё Mandos


 
Song ©   (2003-03-01 18:29) [5]

bsDialog точнее.
Всё что можно сделать в ИО, можно и программно.


 
Provodnick   (2003-03-01 18:31) [6]

А как в EnableMenuItem() получить 1-й и 2-й параметры?


 
Rouse_ ©   (2003-03-01 18:49) [7]

Я предпочитаю делать это довольно тупым способом, перехватом оконной процедуры, хотя, кто скажет что правильно?

Желаю успехов


 
Provodnick   (2003-03-01 18:59) [8]

Правильно, никто не скажет. Делал я перехватом - хочется разнообразия. Так как насчет 2-го параметра в EnableMenuItem()?
UINT uIDEnableItem, // menu item to enable, disable, or gray
Чего тут написать? Подскажите плиз.


 
uw ©   (2003-03-01 19:31) [9]

Есть еще тупой, но работающий вариант: делаешь MaxHeight = MinHeight и MaxWidth = MinWidth.


 
DVM ©   (2003-03-01 20:05) [10]

SystemMenu := GetSystemMenu(wnd,false);
EnableMenuItem(systemMenu, SC_RESTORE, MF_BYCOMMAND or MF_GRAYED);


 
Provodnick   (2003-03-01 20:05) [11]

Интересная вещь:
EnableMenuItem(GetSystemMenu(handle, False), SC_CLOSE, MF_GRAYED); - работает, а
EnableMenuItem(GetSystemMenu(handle, False), SC_SIZE, MF_GRAYED); - не работает! В чем ошибка/проблема?


 
DVM ©   (2003-03-01 20:09) [12]

Все работает, только что проверил.


 
Provodnick   (2003-03-01 20:09) [13]

DVM, с SC_RESTORE тоже не работает. Балин...


 
Provodnick   (2003-03-01 20:16) [14]

DVM, создаю обычный проект в D6, в OnCreate пишу:
EnableMenuItem(GetSystemMenu(handle, False), SC_RESTORE, MF_GRAYED). Окну хоть бы хны - ноль эмоций.


 
DVM ©   (2003-03-01 20:20) [15]

Ну дык:

SendMessage( wnd, WM_INITMENUPOPUP, systemMenu, MAKELPARAM( 0, 1) );
SendMessage( wnd, WM_INITMENU, systemMenu, 0 );


 
Provodnick   (2003-03-01 20:42) [16]

DVM, не мог бы полностью процедуру кинуть - или комп глючит или я.


 
Иван Брылёв   (2003-03-02 03:32) [17]

Чего-то я не пойму, в чем суть? Если запретить изменять размеры окна - это
MyForm.BorderStyle:=bsSingle (не sizeable). Если нужно убрать кнопочки Развернуть/Восстановить - это свойство BorderIcons надо выставить в False biMinimize/biMaximize. А если их именно недоступными сделать - то это вот уже посоветовали с функциями WinAPI побаловаться.


 
Provodnick   (2003-03-02 12:53) [18]

Благодарю всех, кто ответил! Все работает нормально - то, что надо! Ещё раз спасибо.


 
Rouse_ ©   (2003-03-02 23:02) [19]

Кстати есть еще один способ ограничения размеров формы

procedure WMGetMinMaxInfo(var M: TWMGetMinMaxInfo); message WM_GetMinMaxInfo;

procedure TForm1.WMGetMinMaxInfo(var M: TWMGetMinMaxInfo);
begin;
inherited;
M.MinMaxInfo^.ptMinTrackSize.X:=630;
M.MinMaxInfo^.ptMinTrackSize.Y:=400;
end;

Желаю успехов


 
Спрашивающий   (2003-03-03 01:16) [20]

procedure TForm1.FormCanResize(Sender: TObject; var NewWidth,
NewHeight: Integer; var Resize: Boolean);
begin
Resize:=False;
end;



Страницы: 1 вся ветка

Текущий архив: 2003.03.13;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.015 c
3-39155
Buben
2003-02-20 14:44
2003.03.13
For Select ... Do


6-39442
VikOss
2003-01-24 14:02
2003.03.13
Proxy


1-39390
Строитель
2003-03-03 09:20
2003.03.13
DestroyWindow


1-39268
Zelius
2003-03-01 16:05
2003.03.13
Помогите разобратсья со временем модификации файла!


1-39327
Сергей
2003-03-01 00:10
2003.03.13
Обновление окна