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

Вниз

Хитрый 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
3-20872
Sergey_Rom
2002-09-16 00:23
2002.10.07
Delphi5 dbf > Delphi5


1-21109
VID
2002-09-24 16:10
2002.10.07
Washington Post: Приложение тормозит при передачи большого текста


1-21107
exchoper
2002-09-20 14:17
2002.10.07
Информация по COM


1-21012
Evgeny
2002-09-24 15:02
2002.10.07
mdichild


6-21187
spiderman
2002-05-08 12:22
2002.10.07
Please...