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

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

Убрать кнопку с панели задач в Run_time ! [D6, WinXP]


psa247 ©   (2005-10-21 18:04:00) 

ExtendedStyle : integer;
begin
  ExtendedStyle:= GetWindowLong(application.Handle, GWL_EXSTYLE);
  SetWindowLong(Application.Handle, GWL_EXSTYLE, ExtendedStyle or WS_EX_TOOLWINDOW);

Каким образом это использовать?


psa247   (2005-10-22 11:15:00) [1]

> umbra ©  
Спасибо, только вместо Show у меня работает ShowWindow(Handle, SW_SHOW).


umbra   (2005-10-21 19:59:00) [2]

Эх, стормозил. Без недостатков
:
procedure TForm1.Button1Click(Sender: TObject);
var
ExtendedStyle : integer;
begin
Hide;
Enabled := false;
ExtendedStyle:= GetWindowLong(application.Handle, GWL_EXSTYLE);
SetWindowLong(application.Handle, GWL_EXSTYLE, (ExtendedStyle or WS_EX_APPWINDOW) xor WS_EX_TOOLWINDOW);
Enabled := true;
Show;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
ExtendedStyle : integer;
begin
Hide;
Enabled := false;
ExtendedStyle:= GetWindowLong(application.Handle, GWL_EXSTYLE);
SetWindowLong(application.Handle, GWL_EXSTYLE, ExtendedStyle or WS_EX_TOOLWINDOW);
Enabled := true;
Show;
end;


umbra   (2005-10-21 19:49:00) [3]

Чеоновой вариант такой. Два недостатка:
1) если нет кнопки в панели задач, то свернув окно, развернуть его нельзя
2) При появлении кнопки в панели задач исчезает иконка приложения


procedure TForm1.Button1Click(Sender: TObject);
var
ExtendedStyle : integer;
begin
 Hide;
 Enabled := false;
 ExtendedStyle:= GetWindowLong(Handle, GWL_EXSTYLE);
 SetWindowLong(application.Handle, GWL_EXSTYLE, (ExtendedStyle or WS_EX_APPWINDOW) xor WS_EX_TOOLWINDOW);
 Enabled := true;
 Show;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
ExtendedStyle : integer;
begin
 Hide;
 Enabled := false;
 ExtendedStyle:= GetWindowLong(Handle, GWL_EXSTYLE);
 SetWindowLong(application.Handle, GWL_EXSTYLE, ExtendedStyle or WS_EX_TOOLWINDOW);
 Enabled := true;
 Show;
end;


psa247   (2005-10-21 19:28:00) [4]

С точностью до наоборот


Loginov Dmitry   (2005-10-21 19:16:00) [5]

С этим справляется функция
ShowWindow(Application.Handle, SW_HIDE)


psa247   (2005-10-21 19:03:00) [6]

Точно.


umbra   (2005-10-21 19:02:00) [7]

Т.е. чтобы окно программы было видно всегда, а на панели задач кнопка то появлялась, то исчезала?


psa247   (2005-10-21 18:39:00) [8]

Опция наподобие как у ВинАмп-а


umbra   (2005-10-21 18:31:00) [9]

а зачем в рантайме прятать-показывать?


psa247   (2005-10-21 18:21:00) [10]

Мне в Run_Time надо скрывать / показывать !!!


umbra   (2005-10-21 18:18:00) [11]

надо вставить код OnCreate главной формы, скомпилировать его, запустить и любоваться отсутствием кнопки на панели задач. Только не application.Handle, а Mainform.Handle


Наверх

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