Главная страница
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.021 c
3-67698
SCORPION ZP
2003-06-24 11:43
2003.07.21
Реструктурирование таблиц dBASE программным путем


3-67735
Sceptik
2003-06-29 14:03
2003.07.21
Как удалить все записи из таблицы ????


3-67669
*pavel
2003-06-26 09:24
2003.07.21
Настройка Oracle 8i (win98)


14-68023
JB
2003-07-04 13:11
2003.07.21
Отчет в Word e


1-67790
TolikM
2003-07-08 17:00
2003.07.21
Работа со StringGrid ом