Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как убрать кнопку приложения из панели задач 
:(
    Опции темы
Rakhim
Дата 4.2.2005, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 12.8.2004

Репутация: нет
Всего: нет



Как убрать кнопку приложения из панели задач при запуске
Приложение запускается минимизированным.

При добавлении в событие Create - иконка добавляется, но кнопка потом появляется.
А в событие Show - не исполняется (не прорисовывается)

Код

 Ic(1, Application.Icon);
 ShowWindow(Form1.Handle, SW_HIDE);
 ShowWindow(Application.Handle, SW_HIDE);


Куда добавть этот код
PM MAIL   Вверх
Vit
Дата 4.2.2005, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



ShowWindow(Application.Handle, SW_HIDE);

На onCreate главной фрормы


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Rakhim
Дата 5.2.2005, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 12.8.2004

Репутация: нет
Всего: нет



WindowsState=wsMinimized
Я пробовал вставить ShowWindow(Application.Handle, SW_HIDE) на onCreate главной фрормы, но кнопка остаются.

Судя по троссировке кнопка появляется после Application.Run, а onShow не запускается совсем.



Если вставить, следующий код (при WindowsState=wsNormal)
Ic(1, Application.Icon);
ShowWindow(Form1.Handle, SW_HIDE);
ShowWindow(Application.Handle, SW_HIDE);

на onShow - то кнопка уходит, но после этого события появляется форма


PM MAIL   Вверх
Song
Дата 5.2.2005, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


Профиль
Группа: Участник
Сообщений: 1095
Регистрация: 2.6.2002

Репутация: 2
Всего: 4



Rakhim
какая ОС?


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
Akella
Дата 5.2.2005, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Все работает WinXP+SP2
Код

procedure TForm1.FormShow(Sender: TObject);
begin
 ShowWindow(Application.Handle, SW_HIDE);
 ShowWindow(Form1.Handle, SW_HIDE);//это не обязятельно
end;


Это сообщение отредактировал(а) dsergey - 5.2.2005, 13:14
PM MAIL   Вверх
Rakhim
Дата 14.2.2005, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 12.8.2004

Репутация: нет
Всего: нет



ОС - WinXP+SP1
это зависит от ОС ?
PM MAIL   Вверх
~FoX~
Дата 15.2.2005, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 13
Всего: 68



Цитата(Rakhim @ 14.2.2005, 15:08)
это зависит от ОС ?

Зависит.......под линуксом работать не станет smile

Цитата

procedure TForm1.FormShow(Sender: TObject);
begin
  ShowWindow(Application.Handle, SW_HIDE);
  ShowWindow(Form1.Handle, SW_HIDE);//это не обязятельно
end;

Работает на всех винда позднее 3х

Если так не нравиться, то под 9х будет работать CreateProcess......можно вывернуться еще хитрее.....регистрировать твою прогу как драйвер......тогда её даже в диспетчере задач видно не будет smile

Это сообщение отредактировал(а) ~FoX~ - 15.2.2005, 14:11


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Rakhim
Дата 18.2.2005, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 12.8.2004

Репутация: нет
Всего: нет



У меня не получается может я что то пропусти привожу полный код.
Или остаются форма или кнопка на панели задач

Код

unit MainUnit;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ExtCtrls, ComCtrls, Winsock, Buttons, ShellApi,
 IdBaseComponent, IdComponent, IdUDPBase, IdUDPClient, IdSNTP, IdIPWatch,
 IdTime, Spin, IniFiles, IdTCPClient, IdTCPConnection, IdException;

type
 TForm1 = class(TForm)
   StatusBar1: TStatusBar;
   Procedure Ic(n:Integer;Icon:TIcon);
   procedure ControlWindow(var Msg: TMessage); message WM_SYSCOMMAND;
   procedure IconMouse(var Msg: TMessage); message WM_USER + 1;
   procedure FormShow(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}



Procedure TForm1.Ic(n:Integer;Icon:TIcon);
 Var Nim:TNotifyIconData;
begin
 With Nim do
 Begin
   cbSize:=SizeOf(Nim);
   Wnd:=Form1.Handle;
   uID:=1;
   uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP;
   hicon:=Icon.Handle;
   uCallbackMessage:=wm_user+1;
   szTip:='ssssssssss';
 End;


 Case n OF
  1: Shell_NotifyIcon(Nim_Add, @Nim);
  2: Shell_NotifyIcon(Nim_Delete, @Nim);
  3: Shell_NotifyIcon(Nim_Modify, @Nim);
 End;
end;

procedure TForm1.ControlWindow(var Msg: TMessage);
begin
 if Msg.WParam = SC_MINIMIZE then
 begin
   Ic(1, Application.Icon);
   ShowWindow(Form1.Handle, SW_HIDE);
   ShowWindow(Application.Handle, SW_HIDE);
 end
 else
   inherited;
end;

procedure TForm1.IconMouse(var Msg: TMessage);
var
 p: tpoint;
begin
 GetCursorPos(p);
 case Msg.LParam of
   WM_LBUTTONUP, WM_LBUTTONDBLCLK:
     begin
       Ic(2, Application.Icon);
       ShowWindow(Form1.Handle, SW_SHOWNORMAL);
       ShowWindow(Application.Handle,SW_SHOWNORMAL);
     end;
   WM_RBUTTONUP:
     begin
       SetForegroundWindow(Application.Handle);
       PostMessage(Application.Handle, WM_NULL, 0, 0)
     end;
 end;
end;


procedure TForm1.FormShow(Sender: TObject);
begin
 Ic(1, Application.Icon);
 ShowWindow(Application.Handle, SW_HIDE);
 ShowWindow(Form1.Handle, SW_HIDE);
end;

end.




PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

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

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0488 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.