Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.06.06;
Скачать: [xml.tar.bz2];

Вниз

Запрет Minimize конкретной формы   Найти похожие ветки 

 
jobo   (2005-04-12 03:28) [0]

Есть несколько одновременно видимых форм, нужно что бы при вызове Application.Minimize не сворачиваласть одна форма, например Form2


 
alpet ©   (2005-04-12 12:19) [1]

Установи их свойство hwndParent в GetDesktopWindow например.


 
CHES ©   (2005-04-12 15:30) [2]


...
type
 TForm1 = class(TForm)
 private
   { Private declarations }
 procedure WmSysCommand (var Msg: TMessage); message WM_SYSCOMMAND;
 public
   { Public declarations }
 end;
...

implementation
....

procedure TForm1.WmSysCommand(var Msg: TMessage);
begin
 if Msg.WParam = SC_MINIMIZE then exit
   else inherited;
end;


 
CHES ©   (2005-04-12 15:33) [3]

Сорри, невнимательно прочитал вопрос


 
jobo ©   (2005-04-12 16:35) [4]

2alpet: вариант не подходит т.к. форма должна быть поверх всех (TopMost)

2CHES:
такой вариант я первый попробовал, но при нажатии на таск баре или вызове Application.Mininize все равно сворачивается.


 
alpet ©   (2005-04-12 17:03) [5]

Вот так разве не работает:

procedure TForm1.FormClick(Sender: TObject);
begin
ParentWindow := GetDesktopWindow;
FormStyle := fsStayOnTop;
end;


 
CHES ©   (2005-04-13 09:19) [6]

Кстати вот что в хелпе написано по поводу Application.Minimize

Note: Don"t confuse the Minimize method, which minimizes an entire application, with minimizing a form or window. To minimize, maximize, or restore a window or form, change the value of its WindowState property.

Скорее всего придется отказаться от Application.Minimize


 
jobo ©   (2005-04-13 18:06) [7]

2alpet:
при твоем варианте вылазят некоторые неприятные бока, но думаю с ними уже можно бороться. спасибо.

2CHES:
дело не в Application.Minimize, при нажатии на кнопку на таскбаре происходмт тоже самое. А от нажатия на таскбаре отказаться низзя.


 
jobo ©   (2005-04-16 08:54) [8]

пишу
ParentWindow := GetDesktopWindow;
FormStyle := fsStayOnTop;
и на таск баре появляется кнопка формы, как от нее избавиться не скрывая ока?


 
Gero ©   (2005-04-16 08:59) [9]


> procedure TForm1.WmSysCommand(var Msg: TMessage);
> begin
>  if Msg.WParam = SC_MINIMIZE then exit
>    else inherited;
> end;

Корректнее будет так:

procedure TForm1.WmSysCommand(var Msg: TWMSysCommand);
begin
if Msg.CmdType and $FFF0 <> SC_MINIMIZE then inherited;
end;


 
jobo ©   (2005-04-16 16:27) [10]

проверка на SC_MINIMIZE не подходит, читайте выше. Скажите как избавиться от кнопки на таск баре?


 
jobo ©   (2005-04-18 03:27) [11]

млин, неужто никто не скажет?



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

Форум: "WinAPI";
Текущий архив: 2005.06.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.014 c
14-1116416994
alless
2005-05-18 15:49
2005.06.06
Файл .wma


14-1116321471
SNHD
2005-05-17 13:17
2005.06.06
Ищу Базы данных на Delphi 6


1-1116695674
dmitry
2005-05-21 21:14
2005.06.06
Утечка памяти в delphi


1-1116576122
Layner
2005-05-20 12:02
2005.06.06
Перевод из числа FLOAT в Single (запись из 4 байт)


1-1116836846
avtsasha
2005-05-23 12:27
2005.06.06
открыть файл в hex





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский