Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Несворачиваемое окно [D5]


BaDeVlad ©   (2005-02-01 16:04:00) 

Как сделать, чтобы окно нельзя было свернуть? Ни по Win+M, ни кнопочкой в КвикЛанче... Кнопочка  в КвикЛаче вообще пакостная, после нее окно не определяется свернутым функцией IsIconic.


Almaz   (2005-02-04 09:49:00) [1]


> BaDeVlad ©   (04.02.05 09:13) [6]
> fsStayOnTop не подходит, не каждое же приложение может находиться
> всегда сверху?

Ну тогда не ставте StayOnTopв приведенном мною примере он не самоцель. Обратите внимание на обработку сообщения WM_WINDOWPOSCHANGING- именно оно отвечает за несворачиваемость окна см. [5]

Удачи.


BaDeVlad   (2005-02-04 09:13:00) [2]

fsStayOnTop не подходит, не каждое же приложение может находиться всегда сверху?


Almaz   (2005-02-02 17:19:00) [3]


> Jay1982 ©   (01.02.05 16:08) [1]
> Так называемая кнопочка в квикланче (Win + D) вовсе не сворачивает
> окна, она просто показывает рабочий стол (на ней так и написано),
> и от этого никуда не деться.

Уверены ?


> BaDeVlad ©   (01.02.05 16:04)  
> Как сделать, чтобы окно нельзя было свернуть? Ни по Win+M,
> ни кнопочкой в КвикЛанче... Кнопочка  в КвикЛаче вообще
> пакостная, после нее окно не определяется свернутым функцией
> IsIconic.


Попробуйте обрабатывать WMWinPosChanging. Плюс fsStayOnTopи ничего вам не будет страшно ;)

type
 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
 private
   procedure WMWinPosChanging(var Message: TWMWINDOWPOSCHANGING); message WM_WINDOWPOSCHANGING;
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}
procedure TForm1.WMWinPosChanging(var Message: TWMWINDOWPOSCHANGING);
begin
 Message.WindowPos^.flags := Message.WindowPos^.flags and not SWP_HIDEWINDOW;
 inherited;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 FormStyle := fsStayOnTop;
end;


Удачи.


Чапаев   (2005-02-02 09:51:00) [4]

При минимизации выполнять SetWindowPos(). Смотри также WM_SYSCOMMAND.


Jay1982   (2005-02-02 09:31:00) [5]

Ставь просто fsStayOnTop в FormStyle, ещё можно в BorderIcon можно убрать biMinimize, если я правильно понял вопрос.


BaDeVlad   (2005-02-02 09:18:00) [6]

Как тогда "показать" свое окно? Я перепробовал кажется все функции, ничего не помогает...


Jay1982   (2005-02-01 16:08:00) [7]

Так называемая кнопочка в квикланче (Win + D) вовсе не сворачивает окна, она просто показывает рабочий стол (на ней так и написано), и от этого никуда не деться.


Наверх

Титульная страница Поиск, карта сайта Написать письмо