Здравствуйте, Softwarer, Вы писали:
S>Здравствуйте, frodo, Вы писали:
F>> Делаю плавающее окно в приложении. Вроде все сделал. Осталось одно — при свертывании главного окна приложения автоматически исчезает и плавающее. Как сделать, чтобы это не происходило?
S>Тем или иным способом обойти функциональность VCL, которая это делает.
S>Собственно, минимизация приложения вызывается следующим кодом:
S>S>procedure TCustomForm.WMSysCommand(var Message: TWMSysCommand);
S>begin
S> with Message do
S> begin
S> if (CmdType and $FFF0 = SC_MINIMIZE) and (Application.MainForm = Self) then
S> Application.WndProc(TMessage(Message))
S>
S>Таким образом, минимизацию приложения вообще обойти нетрудно. Если нужно, чтобы сворачивалось все, кроме твоего окна — надо смотреть глубже. Возможно, потребуется имитировать процесс — то есть прятать все окна, кроме твоего.
Спасибо, помогло.
Осталась одна проблема: не могу никак заставить окно оставаться поврх всех (главное окно свернуто).
Пытался использовать функцию SetWindowPos(statusForm->Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
Может есть у кого работающий каркас приложения с плавающим окном?