Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
3-67740
Deedlit
2003-06-30 08:12
2003.07.21
Corrupt file - other than header


3-67692
Igoro4ek
2003-06-25 17:42
2003.07.21
Восстановление DBF (+)


6-67958
Savaga
2003-05-15 11:56
2003.07.21
idHTTP.Get


3-67702
Andriano
2003-06-27 11:08
2003.07.21
DBGrid. Значение поля целиком в виде подсказки


14-67979
CrazyHackers
2003-07-07 11:10
2003.07.21
Посоветуйте, чем работать с Excel




   Наверх