Форум: "Основная";
Текущий архив: 2002.10.07;
Скачать: [xml.tar.bz2];
ВнизХитрый Tray Найти похожие ветки
← →
Kacnep (2002-09-19 08:47) [0]Всем привет.
это вопрос наверное всетаки к знатокам.
Просьба не отсылать к RX или поиску в инете -такого не нашел
Требуется создать в трее иконку которая вызывала бы форму (последняя может создавать (именно может, а может и нет) другие формы), НО ПРИ ЭТОМ НЕ БЫЛА ВИДНА НА ПАНЕЛИ ЗАДАЧ!
Дело в том что во всех примерах сначала создается форма а потом спихивается в ТРЕЙ и на какое то время при загрузке появляется на таск баре. И потом при вызове из трея появляется на таск баре если Главная форма создала еще какие то формы (они ДОЛЖНЫ быть на таск баре), а Главная не должна быть на таск баре.
Пример реализации - обычная АСЯ. Вот типа такого и нужно создать.
Спасибо.
← →
Separator (2002-09-19 08:54) [1]Сделай главную форму и помести на ней TrxTrayIcon и сдела с ним все что надо. В модуле dpr сделай так:
Application.ShowMainForm:= false;
Application.Run
И все твоя главная форма будет просто невидимой, а в трее будет сидеть значек
← →
lenin (2002-09-19 09:08) [2]См.
http://delphi.softclub.net/read/trayfaq.html
http://delphi.mastak.ru/cgi-bin/faq.pl?look=1&id=988624981&n=15
← →
MegaBass (2002-09-19 11:52) [3]
...
begin
Application.Initialize;
Application.ShowMainForm:=False;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
...
type
TForm1 = class(TForm)
PopupMenu1: TPopupMenu;
Open1: TMenuItem;
Exit1: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure Open1Click(Sender: TObject);
procedure Exit1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ private declarations }
procedure WndProc(var Msg : TMessage); override;
public
{ public declarations }
IconData : TNotifyIconData;
IconCount : integer;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WndProc(var Msg : TMessage);
var
aPoint : TPoint;
begin
case Msg.Msg of
WM_USER + 1:
case Msg.lParam of
WM_RBUTTONDOWN:
begin
SetForegroundWindow(Handle);
GetCursorPos(aPoint);
PopupMenu1.Popup(aPoint.x, aPoint.y);
PostMessage(Handle, WM_NULL, 0, 0);
end
end;
end;
inherited;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
BorderIcons := [biSystemMenu];
IconCount := 0;
IconData.cbSize := sizeof(IconData);
IconData.Wnd := Handle;
IconData.uID := 100;
IconData.uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
IconData.uCallbackMessage := WM_USER + 1;
IconData.hIcon := Application.Icon.Handle;
StrPCopy(IconData.szTip, Application.Title);
Shell_NotifyIcon(NIM_ADD, @IconData);
end;
procedure TForm1.Open1Click(Sender: TObject);
begin
Form1.Show;
ShowWindow(Application.Handle, SW_HIDE);
end;
procedure TForm1.Exit1Click(Sender: TObject);
begin
Shell_NotifyIcon(NIM_DELETE, @IconData);
Application.ProcessMessages;
Application.Terminate;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caNone;
Form1.Hide;
end;
begin
ShowWindow(Application.Handle, SW_HIDE);
end.
← →
.nuke (2002-09-19 12:20) [4]2MegaBass
А можно все это в dpr засунуть?
т.е. только на вин-апи писать?
← →
Separator (2002-09-19 12:29) [5]Запаришся, так проще
← →
Севостьянов Игорь (2002-09-19 13:51) [6]
> .nuke © (19.09.02 12:20)
Естественно можно - это же пример
← →
KSergey (2002-09-20 11:55) [7]
> 2MegaBass
> А можно все это в dpr засунуть?
> т.е. только на вин-апи писать?
А как связаны между собой dpr и WinAPI?! Если нет желания использовать VCL - ну и не надо, но это не значит, что все должно сидеть в dpr. ТОлько тогда уж про слово "форма" забудь. Равно как и про Rx и все остальное...
PS: Что за мода пошла писать на WinAPI?!! А нафиг тогда вообще за дельфи браться? Тогда уж на VC++ проще писать - там это естественнее выглядит... Нет, я что-то все же не понимаю в жизни...
← →
KSergey (2002-09-20 11:56) [8]Предыдущий пост предназначался конечно же для .nuke © (19.09.02 12:20)
Не то скопировал ;)
← →
Kacnep (2002-09-26 12:09) [9]всЕМ ОГРОМНОЕ СПАСИБО
Сорри
Особенно МЕГАБАСУ и Ленину.
Помимо Ваших советов Еще в инете нарыл комонент, который расковыриваю - он НАИБОЛЕЕ ПОЛНО (если н сказать больше) описывает как работать с Треем. Если кому надо 70015922.
Еще раз спасибо
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.10.07;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c