• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Сворачивание проги в панель часов.

  • Автор темы DizeL
  • Дата начала
Статус
Закрыто для дальнейших ответов.
D

DizeL

Никак не могу понять, как это сделать. Ни в одной книге это не описывается. Кто разбирается в данном вопрпосе, попрошу мимо не проходить. Заранее спасибо.
 
A

admin

DizeL
хочешь совсем просто, то иди на torry.net и скачай CoolTrayIcon
 
A

admin

иконка делается так
Код:
const
WM_NOTIFYTRAYICON = WM_USER + 1;
...
private
procedure WMTRAYICONNOTIFY(var Msg: TMessage); message WM_NOTIFYTRAYICON;
...
uses
ShellAPI;

procedure TForm1.WMTRAYICONNOTIFY(var Msg: TMessage);
var
s: string;
begin
case Msg.LParam of
 WM_MOUSEMOVE:   s := 'Мышь сдвинута';
 WM_LBUTTONDOWN:  s := 'Левая кнопка нажата';
 WM_LBUTTONUP:   s := 'Левая кнопка отпущена';
 WM_LBUTTONDBLCLK: s := 'Два раза нажата левая кнопка';
 WM_RBUTTONDOWN:  s := 'Правая кнопка нажата';
 WM_RBUTTONUP:   s := 'Правая кнопка отпущена';
 WM_RBUTTONDBLCLK: s := 'Два раза нажата правая кнопка';
 else       s := IntToStr(Msg.LParam);
end;
ListBox1.Items.Add(s);
ListBox1.ItemIndex := ListBox1.Items.Count - 1;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
tray: TNotifyIconData;
Ic: TIcon;
begin
Ic := TIcon.Create;
Ic.LoadFromFile('Icon1.ico');
with tray do
begin
 cbSize := SizeOf(TNotifyIconData);
 Wnd := Form1.Handle;
 uID := 1;
 uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
 uCallBackMessage := WM_NOTIFYTRAYICON;
 hIcon := Ic.Handle;
 szTip := ('Это наша иконка');
end;
Shell_NotifyIcon(NIM_ADD, Addr(tray));
Ic.Destroy;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
tray: TNotifyIconData;
Ic: TIcon;
begin
Ic := TIcon.Create;
Ic.LoadFromFile('Icon2.ico');
with tray do
begin
 cbSize := SizeOf(TNotifyIconData);
 Wnd := Form1.Handle;
 uID := 1;
 uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
 uCallBackMessage := WM_NOTIFYTRAYICON;
 hIcon := Ic.Handle;
 szTip := ('Это другая иконка');
end;
Shell_NotifyIcon(NIM_MODIFY, Addr(tray));
Ic.Destroy;
end;

procedure TForm1.FormDestroy(Sender: TObject);
var
tray: TNotifyIconData;
begin
with tray do
begin
 cbSize := SizeOf(TNotifyIconData);
 Wnd := Form1.Handle;
 uID := 1;
end;
Shell_NotifyIcon(NIM_DELETE, Addr(tray));
end;

А там обрабатывай OnMinimize и клики по иконке.
 
D

DizeL

:(
Кодик угрожающий, но попробую разобраться.
Спасибо.
А что из себя прога представляет?
 
B

Barmutik

Проще взять готовую компоненту .. в тех же Rx-lib сейчас которые входят в сотав Jedi есть готовая компонента .. только иконку назначил и всё у тебя в трее всё есть...ну единственно конечно минимайз всё равно самому придётся обрабатывать ...
 
D

DizeL

<!--QuoteBegin-QUOTE+Barmutik-->
<span class="vbquote">(QUOTE @ Barmutik)</span><!--QuoteEBegin-->Проще взять готовую компоненту .. в тех же Rx-lib сейчас которые входят в сотав Jedi есть готовая компонента .. только иконку назначил и всё у тебя в трее всё есть...ну единственно конечно минимайз всё равно самому придётся обрабатывать ...[/quote]
Кстати, я так и не нашёл событие Onminimize. Что-то в моём Делфи7 такого и подавно нет. Или я не там смотрю? Как его обрабатывать-то? :rolleyes: Прошу помощи и спасибо за совет, кстати, мог бы послать мне компонет этот? Ящик dizel@students.ru . Заренее спасибо.

С уважением Дизел.
 
A

admin

DizeL
оно для объекта TApplication делается
да скачай что я говорил и не майся дурью
всё давно уже сделано
 
B

Barmutik

На закладке Additional есть компонет TApplicationEvents у него есть OnMinimize...

Это тот же OnMinimize что и у TApplication так как этот компонент просто врапит эти методы.

У него напиши что тебе надо делать по минимизации .. а тебе я думаю надо убирать прогу с экрана и с панели задач и она автоматически будет у твоего Application-а

Удачи!

ЗЫ: Да и сколько книжек видел во всех есть раздел как поместить программу в трэй... ну это так к слову :rolleyes:
 
A

admin

Barmutik
ЗЫ: Да и сколько книжек видел во всех есть раздел как поместить программу в трэй... ну это так к слову
не говоря уже о бесконечных FAQ
кстати на болнанде очень хорошие факи лежат
 
D

DizeL

ЗЫ: Да и сколько книжек видел во всех есть раздел как поместить программу в трэй... ну это так к слову

С.Бобровский "Описание системы и языка программирования Delphi. DELPHI 7." Ну и где тут ты это видел? ( так, к слову).

Далее, спасибо за помощь, буду знать.


кстати на болнанде очень хорошие факи лежат

А вот тут можно по-подробнее.


P.S. - всем спасибо за проявленный интерес.
 
D

DizeL

оно для объекта TApplication делается
да скачай что я говорил и не майся дурью
всё давно уже сделано

Что-то у меня этот "култрейайкон" выдает ошибку при первой же компеляции. Типа не найден файл "Cooltrayicon.dcu". Может неправильно установил компонент?
 
D

DizeL

<!--QuoteBegin-Серёга+6:08:2004, 01:22 -->
<span class="vbquote">(Серёга @ 6:08:2004, 01:22 )</span><!--QuoteEBegin-->DizeL
хочешь совсем просто, то иди на torry.net и скачай CoolTrayIcon[/quote]
Короче, всё нормально. Установил компонент, всё олично работает. Спасибо. Но вот есть проблема. Прогу сворачиваешь в трей. Всё нормально. Разворачиваешь, а вот второй раз она уже не сворачивается... Плохо! Что это за ... ?
И ещё, есть мысли как сделать так, чтобы прога автоматом грузилась в трей не разворачиваесь при загрузке? Или может это будет некрасиво смотреться? Что посоветуем?

Всем спасибо за помощь. С уважением DizeL.
 
Z

zubr

Dizel

И ещё, есть мысли как сделать так, чтобы прога автоматом грузилась в трей не разворачиваесь при загрузке?

В файле проекта после Application.Initialize; поставь Application.ShowMainForm:=False; - это чтобы не разворачивалась, а потом чтобы при клике на иконку в трее развернулось, в обработчике клика иконки поставь Form1.Visible:=True;
 
G

Guest

DizeL
Разворачиваешь, а вот второй раз она уже не сворачивается... Плохо! Что это за ... ?
первый раз слышу
у меня работает это во многих проектах отлично
компилю под 7 Делфи.
 
D

DizeL

первый раз слышу
у меня работает это во многих проектах отлично
компилю под 7 Делфи.

А ну ка дай мне своё мыло, я тебе примерчик скину. Посмотришь, может я чего не так делаю. ОК?
 
M

mariner

Скачай компонент TrayIcon или TrayComp

 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!