Форум: "Основная";
Текущий архив: 2003.07.21;
Скачать: [xml.tar.bz2];
Вниз
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c