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

Вниз

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 вся ветка

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

Наверх




Память: 0.5 MB
Время: 0.048 c
8-1119478025
Strech
2005-06-23 02:07
2005.11.13
масштабирование изображений


3-1127990012
SQL-nik
2005-09-29 14:33
2005.11.13
Доступ к 1с версии 8.0


3-1128366408
suharew
2005-10-03 23:06
2005.11.13
SQL Запрос


8-1119786910
Максим
2005-06-26 15:55
2005.11.13
Бинауральные частоты в Delphi


14-1129931799
LordOfRock
2005-10-22 01:56
2005.11.13
FlashGet VS GeRet Deluxe