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

Вниз

MDI - интерфейс   Найти похожие ветки 

 
Dale ©   (2003-07-09 10:12) [0]

При разворачивании MDI-child окна (WindowState:=wsMaximized) происходит объединение заголовков главного и дочернего окошка. А мне бы очень хотелось чтобы дочернее окно разворачивалось, но сохраняло свой заголовок окна. Т.е. выглядело бы это как align:=alClient.
Подскажите пожайлуста как это получше бы сделать???


 
Smok_er   (2003-07-09 10:21) [1]

Думаю, что только вручную.
Перехватываем сообщение WM_SYSCOMMAND и вместо разворачивания окна просто меняем его размеры
Но интересует другой вопрос - надо ли это? Чем не устраивает стандартное поведение?


 
AbrosimovA ©   (2003-07-09 11:12) [2]

У меня в Delphi 6 заголовки не объединяется. Возможно со свойствами окон где-то напортачил.


 
Игорь Шевченко ©   (2003-07-09 11:24) [3]

procedure TfAbstChild.WMSysCommand(var Message: TMessage);
var ARect : TRect;
begin
if Message.wParam = SC_MAXIMIZE then begin
Message.Result := 0;
Windows.GetClientRect(Application.MainForm.ClientHandle, ARect);
SetWindowPos(Handle, 0, ARect.Left, ARect.Top, ARect.Right - ARect.Left,
ARect.Bottom - ARect.Top, SWP_NOZORDER);
end else
inherited;
end;


 
Dale ©   (2003-07-09 12:31) [4]

Можно поподробнее. Откуда эту процедуру вызывать и что передавать в качестве параметра.
И еще у меня идет ругательство на
inherited;


 
Dale ©   (2003-07-09 12:38) [5]

Стандартное поведение меня не устраивает только с визуальной стороны. Ведь хочется как покрасивше и поудобнее. А в заголовке окошек-подростков у меня полезная для пользователя информация.


 
Smok_er   (2003-07-09 13:01) [6]

Ну так эти же заголовки остаются. Просто происходит объединение с родитеским заголовком.

Объявляем процедуру след. образом:
protected
procedure WMSysCommand(var Message: TMessage); message WM_SYSCOMMAND;

Теперь при попытке максимизировать окно будет выполняться эта процедура




 
Nevermind   (2003-07-09 13:02) [7]

Процедура предназначена для обработки собщения WM_SYSCOMMAND, посылаемого форме, и должна объявляться (хотя не обязательно, это дело принципа), в приватнной секции. Непосредственно её вызывать не нужно.
TMyForm = class(TForm)
private
procedure WMSysCommand(var Message: TMessage); message WM_SYSCOMMAND;
...

inherited - означает, что в случае получения твоим окошком системного сообщения, отличного от того, на обработку которого рассчитана твоя процедура, управление передается оконной процедуре предка, напр., TForm.


 
Dale ©   (2003-07-09 14:38) [8]

А можно ли сделать так, чтобы кнопка максимизации принимала соответствующий вид??? И каким образом я могу обработать сообщения кнопки "Свернуть в окно"??? (wsNormal)



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

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

Наверх




Память: 0.48 MB
Время: 0.018 c
4-68133
erw
2003-05-19 09:36
2003.07.21
Переход в режим переименования узла в TreeView через API


4-68129
Шишкин Илья
2003-05-18 11:39
2003.07.21
Как лучше закрыть чужое приложение?


14-67971
race1
2003-07-07 09:02
2003.07.21
php & global var


1-67872
BillyJeans
2003-07-08 09:42
2003.07.21
TCheckListBox и его OnDrawItem...


1-67807
Shum
2003-07-09 15:17
2003.07.21
Экспорт строки в Эхель