Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-20952
roman002
2002-09-26 08:53
2002.10.07
Помогите с Win NT сервисом


1-21085
Sectey
2002-09-25 09:33
2002.10.07
Где найти dxDBGrid


1-21062
Shizoid
2002-09-27 15:57
2002.10.07
VCL source


4-21337
Roxtady
2002-08-21 17:28
2002.10.07
Как создать форму (окно) ?


1-21025
Lefan
2002-09-27 07:32
2002.10.07
Запуск по времени...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский