Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.02;
Скачать: CL | DM;

Вниз

Как не дать окну свернуться   Найти похожие ветки 

 
?Feuerraeder   (2002-07-02 04:42) [0]

Как не допустить сворачивания окна, даже горячими клавами WINDOWS? Ловить SC_MINIMIZE? КаК?


 
слон   (2002-07-02 06:37) [1]

я делаю так
...
procedure Minim(Sender: TObject);
...
var
Form1: TForm1;
...


procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMinimize := Minim;
end;

procedure TForm1.Minim(Sender: TObject);
begin
ShowWindow(Handle, SW_RESTORE);
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
Application.Minimize;
end;

...

end.


 
Feuerraeder ©   (2002-07-02 07:22) [2]

А возможно такое окно свернуть по <Win>(кнопка Виндовс на клавиатуре)+D?????????????


 
слон   (2002-07-02 07:25) [3]

нет


 
Feuerraeder ©   (2002-07-02 08:08) [4]

слон, ты пробовал другими способами, оно вообще не сворачивается?
мне очень нужно чтобы окно вообще не сдвигалось и не дергалось, при любом виде сворачивании, понимаешь? есть ли другие способы?


 
Виктор Щербаков ©   (2002-07-02 09:51) [5]

При любом сворачивании в окно приходит WM_SYSCOMMAND с параметром SC_MINIMIZE. Т.е. нужно написать обработчик этого сообщения, и, в случае если wParam = SC_MINIMIZE, не дать окну свернуться.

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND;
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
begin
if Message.CmdType <> SC_MINIMIZE then inherited;
end;

end.


 
Pat ©   (2002-07-02 10:24) [6]

Я уже задавал подобный вопрос в Системе...
Как не дать окну свернуться при выполнении команды проводника "Свернуть все окна"? Минимизация окна при этом не происходит :-(
Есть маленькая идея..."Свернуть все окна" = "Показать DescTop", т.о. остается отловить показ рабочего стола...Как? :-(


 
Виктор Щербаков ©   (2002-07-02 11:05) [7]

Pat © (02.07.02 10:24)
В таком случае можно попробовать WinSight"ом посмотреть, какие сообщения сообщения кто получает. Только это очень нудное занятие :(


 
Игорь Шевченко ©   (2002-07-02 11:15) [8]

В корзину надо отправлять программы с несворачиваемым окнами. Хоть бы пользователей пожалели...

Если надо вывести какое-то сообщение о супер-пупер критическом событии, то почему бы не воспользоваться функцией MessageBox с флажком MB_SYSTEMMODAL ?


 
Feuerraeder ©   (2002-07-02 14:34) [9]

Так будет сворачиваться окно по <Win>+D(или на таск баре нажать "Свернуть все") если поставить "заглушку" на SC_MINIMIZE???


 
Pat ©   (2002-07-02 15:11) [10]

>В корзину надо отправлять программы с несворачиваемым окнами. >Хоть бы пользователей пожалели...
Так для пользователей и стараемся :-)) Идея прогаммы взята из аналога - DescButtons. Создается окно, содержащее одну кнопку, помещается вниз

SetWindowPos(Handle,HWND_BOTTOM,Left,Top,width,height, SWP_SHOWWINDOW)

Короче, "кнопка на рабочем столе". Вот и не хочется, чтобы кнопки "улетали" при Ctrl+D


 
Pat ©   (2002-07-02 15:11) [11]

>В корзину надо отправлять программы с несворачиваемым окнами. >Хоть бы пользователей пожалели...
Так для пользователей и стараемся :-)) Идея прогаммы взята из аналога - DescButtons. Создается окно, содержащее одну кнопку, помещается вниз

SetWindowPos(Handle,HWND_BOTTOM,Left,Top,width,height, SWP_SHOWWINDOW)

Короче, "кнопка на рабочем столе". Вот и не хочется, чтобы кнопки "улетали" при Win+D


 
Feuerraeder ©   (2002-07-02 15:27) [12]

мне очень надо! а совет слона работает?


 
Pat ©   (2002-07-02 15:34) [13]

>Feuerraeder © (02.07.02 15:27)
Так и мне надо :-))) Давно бы уж проверил...Окно не получает сообщения о сворачивании, т.е. не сворачивается :-\ Как раз в этом и проблема....


 
Игорь Шевченко ©   (2002-07-02 15:54) [14]

Pat © (02.07.02 15:11)

> Так для пользователей и стараемся :-))

Бедные пользователи...Один для них супер-пупер MDI изобретает, другие кнопки на десктопе рисуют, третьи окна несворачиваемые делают...

"Ослик, ослик, что с тобой мичуринцы сделали..." (с)

Рекомендую всем любителям странного почитать статьи на сайте
http://www.usability.ru




 
Feuerraeder ©   (2002-07-02 16:05) [15]

наша тема зашла в тупик?


 
ggrisha ©   (2002-07-02 17:07) [16]

Включи ActiveDesktop и вставь html-ку с кнопкой.


 
Almaz ©   (2002-07-03 01:09) [17]


> Feuerraeder © (02.07.02 16:05)
> наша тема зашла в тупик?

См. http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1025556086&n=2 там есть мой ответ на твой вопрос.

Удачи.


 
слон   (2002-07-03 14:06) [18]

2Feuerraeder
>> слон, ты пробовал другими способами, оно вообще не
>> сворачивается?

Не сворачивается

>> есть ли другие способы?

Есть к примеру от Алмаза






Страницы: 1 вся ветка

Текущий архив: 2002.09.02;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.018 c
14-3575
AL2002
2002-08-02 17:56
2002.09.02
Есть у кого-то резак Teak W58E?


7-3641
svmagnum
2002-05-26 06:02
2002.09.02
Kak mne otodvinut desktop.


14-3629
Axel
2002-08-05 12:26
2002.09.02
Galileo, Delphi for .NET


3-3290
angelcom
2002-08-08 19:43
2002.09.02
Помогите новичку!


4-3673
dihlos
2002-07-01 18:13
2002.09.02
Как узнать handle дочерних окон приложения?