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

Вниз

DeleteMenu   Найти похожие ветки 

 
psa247 ©   (2005-09-03 15:22) [0]

Подскажите, как запретить не удаляя - кнопку "Минимизировать"?


 
Турист   (2005-09-03 16:14) [1]

TForm.BorderIcons.biMinimize=False ?


 
Poirot ©   (2005-09-03 16:15) [2]

запретить обработку WM_SIZE с wParam = SIZE_MINIMIZED...
Или просто задизейблить пункт меню


 
begin...end ©   (2005-09-03 16:21) [3]

Стиль WS_MINIMIZEBOX сбросить?


 
psa247 ©   (2005-09-03 16:31) [4]


> TForm.BorderIcons.biMinimize=False ?

Enable:= False, но чтобы оставалась видимой. Потом опять разрешить


 
Турист   (2005-09-03 16:45) [5]


procedure TForm1.Button3Click(Sender: TObject);
begin
 if biMinimize in BorderIcons then
   BorderIcons := BorderIcons - [biMinimize]
 else
   BorderIcons := BorderIcons + [biMinimize]
end;

{ Вариант begin...end ©   (03.09.05 16:21) [3] }

procedure TForm1.Button4Click(Sender: TObject);
var
 dwStyle: DWord;
begin
 dwStyle := GetWindowLong(Handle, GWL_STYLE);
 if (dwStyle and WS_MINIMIZEBOX) = 0 then
   SetWindowLong(Handle, GWL_STYLE, dwStyle or WS_MINIMIZEBOX)
 else
   SetWindowLong(Handle, GWL_STYLE, dwStyle and not WS_MINIMIZEBOX);
 SetWindowPos(Handle, 0, 0, 0, 0, 0, SWP_NOZORDER or SWP_NOMOVE or
              SWP_NOSIZE or SWP_NOACTIVATE or SWP_FRAMECHANGED)
end;



 
psa247 ©   (2005-09-03 16:51) [6]


> Турист   (03.09.05 16:45) [5]

Так она становится невидимой. Извиняюсь, забыл сказать, что biMaximized - False.


 
begin...end ©   (2005-09-03 17:07) [7]

> Турист   (03.09.05 16:45) [5]

> procedure TForm1.Button4Click(Sender: TObject);
> var
>  dwStyle: DWord;
> begin
>  dwStyle := GetWindowLong(Handle, GWL_STYLE);
>  if (dwStyle and WS_MINIMIZEBOX) = 0 then
>    SetWindowLong(Handle, GWL_STYLE, dwStyle or WS_MINIMIZEBOX)
>  else
>    SetWindowLong(Handle, GWL_STYLE, dwStyle and not WS_MINIMIZEBOX);
>  SetWindowPos(Handle, 0, 0, 0, 0, 0, SWP_NOZORDER or SWP_NOMOVE or
>               SWP_NOSIZE or SWP_NOACTIVATE or SWP_FRAMECHANGED)
> end;

procedure TForm1.Button4Click(Sender: TObject);
begin
 SetWindowLong(Handle, GWL_STYLE, GetWindowLong(Handle, GWL_STYLE) xor WS_MINIMIZEBOX);
 DrawMenuBar(Handle)
end


 
Турист   (2005-09-03 17:16) [8]

>begin...end ©   (03.09.05 17:07) [7]
К сожалению, и этот вариант не решает проблему psa247 ©

>psa247 ©
Это критично ? Если да, то есть компонент TJvCaptionButton в Jedi VCL


 
Турист   (2005-09-03 17:23) [9]

>Турист   (03.09.05 17:16) [8]

:-)


procedure TForm1.Button5Click(Sender: TObject);
begin
 JvCaptionButton1.Enabled := not JvCaptionButton1.Enabled
end;


 
psa247 ©   (2005-09-03 17:57) [10]


> Турист   (03.09.05 17:16) [8]
> >begin...end ©   (03.09.05 17:07) [7]
> К сожалению, и этот вариант не решает проблему psa247 ©
>
> >psa247 ©
> Это критично ? Если да, то есть компонент TJvCaptionButton
> в Jedi VCL

Не критично, но не благообразно. А почему так?
Спасибо.


 
Турист   (2005-09-03 18:17) [11]

>psa247 ©   (03.09.05 17:57) [10]
Наверно, для возможности установки стиля WS_EX_CONTEXTHELP, который, судя по описанию, не может быть установлен вместе с WS_MINIMIZEBOX или WS_MAXIMIZEBOX


 
begin...end ©   (2005-09-03 19:51) [12]

> Турист   (03.09.05 17:16) [8]
> К сожалению, и этот вариант не решает проблему psa247 ©

Я знаю, что не решает. Я просто привёл более короткий код, аналогичный Вашему.


 
psa247 ©   (2005-09-10 14:34) [13]

В чем здесь дело?

  if IsIconic(index)then OpenIcon(index);
  if not(IsWindowEnabled(index))then EnableWindow(index, True);
  if not(IsWindowVisible(index))then ShowWindow(index, SW_SHOWNORMAL);
  SetForegroundWindow(index);

После этого кнопка минимизации не работает !!!


 
Турист   (2005-09-10 16:58) [14]

>psa247 ©   (10.09.05 14:34) [13]


Форма - главная форма проекта ?

 if IsIconic(Application.Handle)then
   Application.Restore
 else begin
   ...
 end


 
psa247 ©   (2005-09-10 17:26) [15]

Активизирую предыдущий запуск

  index:= FindWindow(nil,"Заголовок Главной Формы");
  if index<>0 then begin
    if IsIconic(index)then OpenIcon(index);
    if not(IsWindowEnabled(index))then EnableWindow(index, True);
    if not(IsWindowVisible(index))then ShowWindow(index, SW_SHOWNORMAL);
    SetForegroundWindow(index);
    Application.Terminate;


 
Турист   (2005-09-10 17:28) [16]

>psa247 ©   (10.09.05 17:26) [15]
Может приложению лучше сообщение послать пусть само себя активизирует


 
psa247 ©   (2005-09-10 17:36) [17]

> Турист
И то правда...
Спасибо еще раз



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

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

Наверх





Память: 0.48 MB
Время: 0.062 c
6-1122645473
CAMCOH
2005-07-29 17:57
2005.11.13
Как отправить html письмо с помощью Insy IdSmtp


4-1125846248
Sormy
2005-09-04 19:04
2005.11.13
RSA decrypting


14-1129889736
dr Tr0jan
2005-10-21 14:15
2005.11.13
Побор телефона


1-1129686152
DDDeN
2005-10-19 05:42
2005.11.13
Определение обекта на TImage


14-1129977850
boalse
2005-10-22 14:44
2005.11.13
Хороший дизайн





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский