IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   Delphi: Скрыть окно при минимизации (https://www.imho.ws/showthread.php?t=80556)

anakarn 25.02.2005 23:00

Delphi: Скрыть окно при минимизации
 
Нужно, чтобы по нажатию клавиши в шапке окна Свернуть окно на самом деле не сворачивалось, а пряталось.
Пробовал использовать ShowWindow - в событии OnMinimize - оказалось, сначала сворачивает, а потом посылает окну сообщение

Пробовал в форме на событии OnClick проверять координаты мыши: совпадают ли они с кнопкой сворачивания в шапке окна. Но оказалось, что в Delphi шапка окна в форму не входит и поэтому это работает только при клике на форму, а при клике на шапке - ничего

/7y3uK 25.02.2005 23:40

а тебе обязательно, чтобы была стандартная шапка? если да, то читай Win32 API Reference в хелпе... если нет, то можно замастрячить свою шапку со своими кнопками...

f00rd 26.02.2005 12:31

Код:

TMainForm = class(TForm)
  ...
private
  { Private declarations }
  procedure WMSysCommandMy(var Message: TWMSysCommand); message WM_SYSCOMMAND;
public
  { Public declarations }
end;
...
procedure TMainForm.WMSysCommandMy;
begin
 with Message do
  begin
    if (CmdType and $FFF0 = SC_MINIMIZE) and (Application.MainForm = Self) then
      ShowMessage('Minimizing')
    else inherited;
  end;
end;

вместо ShowMessage('Minimizing') вставляешь что-то типа Self.Hide =))))

anakarn 26.02.2005 21:44

/7y3uK
Цитата:

можно замастрячить свою шапку со своими кнопками...
А как именно?

J. Bond 27.02.2005 11:04

смотри в сторону сообщений WM_NCPAINT и WM_NCHITTEST

/7y3uK 27.02.2005 14:36

anakarn

ну если по простому, то делаешь у формы BorderStyle:=bsNone, делаешь панельку, с кнопами, выравниваешь эту панельку на Top и пишешь своим кнопам нужные обработчики обработчики...


Часовой пояс GMT +4, время: 23:38.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.