Форум: "Основная";
Текущий архив: 2002.07.25;
Скачать: [xml.tar.bz2];
ВнизTaskBar Найти похожие ветки
← →
Yurko (2002-07-10 04:03) [0]Как 100% спрятать свою прогу из TaskBar?
(без мигания при minimize и restore)
← →
TTCustomDelphiMaster (2002-07-10 08:36) [1]Попробуй так
procedure TForm1.ApplicationEvents1Activate(Sender: TObject);
begin
ShowWindow(Application.Handle, SW_HIDE);
end;
← →
IlyaA (2002-07-10 09:38) [2]Можно просто
Form.Hide
← →
Yurko (2002-07-11 00:42) [3]
Form.Hide
спрячет форму, а не кнопку в TaskBar!
← →
Юрий Зотов (2002-07-11 00:50) [4]В обработчике OnCreate главной формы (или в самом dpr перед Application.Run) пишем одну строку:
Application.ShowMainForm := False;
← →
Yurko (2002-07-13 01:22) [5]Спасибо, Юрий, но так прячется и форма и кнопка, а мне нужно скрыть только кнопку, да так, чтоб она не появлялась даже на время минимизации!
← →
TTCustomDelphiMaster (2002-07-13 10:02) [6]
> Yurko (13.07.02 01:22)
> ... да так, чтоб она не появлялась даже на время минимизации!
А как ты потом будеш restor"ить приложение?
← →
Yurko (2002-07-13 12:08) [7]При минимизации я вывожу иконку в tray, из нее я и буду restor"ить приложение!
← →
Anatoly Podgoretsky (2002-07-13 12:47) [8]
SetWindowLong(Application.Handle, GWL_EXSTYLE,
GetWindowLong(Application.Handle, GWL_EXSTYLE)
or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
← →
Yurko (2002-07-14 02:22) [9]Спасибо огромное, Анатолий!!!
Может Вы знаете где можно почитать о всех стилях окна (XXXWindowLong)? Дайте, пожалуйста, пару ссылок (или пару примеров <yurko@home.te.ua>).
← →
Юрий Зотов (2002-07-14 03:12) [10]> где можно почитать о всех стилях окна
В справке API - см. CreateWindow и CreateWindowEx
← →
Yurko (2002-07-14 04:22) [11]
> Anatoly Podgoretsky
Если делать так, как Вы предложили, то окно сворачивается (при минимизации) в иконку над кнопкой "Пуск" (как в MDI-приложении).
Как можно этого избежать?
← →
TTCustomDelphiMaster (2002-07-14 11:46) [12]Убери вообще эту кнопку. Зачем она нужна в твоем приложении?
← →
Yurko (2002-07-14 12:13) [13]Какую кнопку???
← →
TTCustomDelphiMaster (2002-07-14 12:48) [14]
> Yurko © (14.07.02 12:13)
> Какую кнопку???
кнопку минимизации
в object inspector в свойстве формы bordericons biMinimize = false
← →
Anatoly Podgoretsky (2002-07-14 13:15) [15]Тебе говорят зачем минимизируешь, на самом деле нет же никакой минимизации, ты же просто прячешь форму!
← →
Юрий Зотов (2002-07-14 14:31) [16]О, боже...
Почти неделю человек мучается. Над чем?
Да не нужны Вам никакие стили, все гораздо проще. Нужно всего лишь обработать WM_SYSCOMMAND и при минимизации в трей загнать иконку, а Application.MainForm сделать невидимой - именно так, как я и написал. А при восстановлении из трея, соответственно, наоборот - только еще надо вызвать ShowWindow, чтобы скрыть кнопку приложения на панели задач, раз уж так этого хочется.
Вот и все. И все так делают, это стандартный интерфейс трей-приложений. Короче, вот полный код. Программа стартует сразу в трее, показывается из него двойным щелчком по иконке, а при минимизации снова прячется в трей. На панели задач не видна.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Forms, ShellAPI, Menus;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
FIconData: TNotifyIconData;
protected
procedure WndProc(var Message: TMessage); override;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
const
UM_TRAY = WM_USER + 1;
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
with FIconData do
begin
cbSize := SizeOf(FIconData);
Wnd := Handle;
uID := 100;
uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
uCallbackMessage := UM_TRAY;
hIcon := Application.Icon.Handle;
StrPCopy(szTip, Application.Title)
end;
Application.ShowMainForm := False;
Shell_NotifyIcon(NIM_ADD, @FIconData)
end;
procedure TForm1.WndProc(var Message: TMessage);
begin
case Message.Msg of
WM_SYSCOMMAND:
if TWMSysCommand(Message).CmdType and $FFF0 = SC_MINIMIZE then
begin
Shell_NotifyIcon(NIM_ADD, @FIconData);
Application.MainForm.Visible := False
end
else inherited;
UM_TRAY:
if Message.LParam = WM_LBUTTONDBLCLK then
begin
Application.MainForm.Visible := True;
ShowWindow(Application.Handle, SW_HIDE);
Shell_NotifyIcon(NIM_DELETE, @FIconData)
end;
else inherited
end
end;
end.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.07.25;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.007 c