Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2002.12.09;
Скачать: [xml.tar.bz2];

Вниз

Как прогу поместить только в system tray ? И как вызвать?   Найти похожие ветки 

 
denick   (2002-10-03 11:32) [0]

Люди помогите ПЛЗ.
1. Как программу поместить только в system tray(в общем где часы)
2. И как её вызвать(напр.,чтобы она выскочила) в назначенное время.


 
Игорь Шевченко   (2002-10-03 11:36) [1]

Блин!


 
Юрий Зотов   (2002-10-03 11:56) [2]

На первой странице сайта есть правила. Про поиск читали?
Этот вопрос задается каждый день.


 
Song   (2002-10-03 13:04) [3]

http://pascal.sources.ru/cgi-bin/forum/YaBB.cgi?board=delphi;action=display;num=1020241631


 
Opuhshii   (2002-10-03 13:17) [4]

%) в чате спроси ,.. у ИИ,..


 
opoloXAI   (2002-10-03 14:52) [5]

1. попробуй восползоваться библиотекой RxLib, там есть компоненты по работе с SystemTray (100% - сам пробовал).
2. добавь на форму таймер. по достижению нужного момента, добавь обработчик ситуации ...Restore...(я не помню)
3. если есть твоё мыло могу кинуть примерный код.


 
Юрий Зотов   (2002-10-04 01:35) [6]

> 100% - сам пробовал

И popup-меню нормально исчезает?


> добавь на форму таймер. по достижению нужного момента, добавь
> обработчик ситуации ...

То есть, раз, допустим, в час, форма будет выскакивать на экран. Просили ее, или нет - неважно, все равно выскочит.

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

А как насчет кликов по иконке?



 
opoloXAI   (2002-10-04 10:18) [7]

я хотел человеку дорогу подсказать, а вы сразу обарывать. Несерьёзно.


 
Kacnep   (2002-10-04 10:42) [8]

Народ не знаю откуда имеется компонент ну просто супер классный для сворачивания ИМЕННО В ТРЕЙ! и только туда и все там норамльно и меню и т.д и т.п.
Но Как блин минимизировать корректно форму :((((
Она Минимизиться сначала на таск бар а потом в трей -т.е. не исто в ТРЕЙ а так вроде все круто и красиво...


 
Song   (2002-10-04 13:31) [9]

На ссылке выше написано как это сделать.
Чтобы не было эффекта что сначала форма минимизируется в таскбар, надо сначала её скрыть, добавить в трей значок, а потом только минимизировать. В принципе в этом случае и минимизировать-то необязательно.


 
Юрий Зотов   (2002-10-04 16:15) [10]

> opoloXAI (04.10.02 10:18)

Несерьезно - это как раз подсказывать НЕВЕРНУЮ дорогу. Особенно после того, как уже были подсказаны верные.


> Kacnep (04.10.02 10:42)
> Но Как блин минимизировать корректно форму

Такие формы не минимизируются, а просто скрываются. Вот полное решение Вашей задачи, без всяких "суперклассных" компонентов. Если поместить эту форму в репозиторий, получим готовый шаблон для любой Tray-программы.

unit Unit1;

interface

uses
Windows, Messages, ShellAPI, SysUtils, Classes, Controls, Forms, Menus;

type
TTrayForm = class(TForm) // Главная форма приложения
TrayPopupMenu: TPopupMenu;
MenuItemShow: TMenuItem; // "Показать"
MenuItemExit: TMenuItem; // "Выход"
procedure FormCreate(Sender: TObject); // OnCreate
procedure MenuItemShowClick(Sender: TObject); // OnClick
procedure MenuItemExitClick(Sender: TObject); // OnClick
private
FIconData: TNotifyIconData;
procedure WMUser(var Message: TMessage); message WM_USER;
procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND;
end;

var
TrayForm: TTrayForm;

implementation

{$R *.DFM}

procedure TTrayForm.FormCreate(Sender: TObject);
begin
with Application, FIconData do
begin
ShowMainForm := False;
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW);
cbSize := SizeOf(FIconData);
Wnd := Self.Handle;
uID := 100;
uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
uCallbackMessage := WM_USER;
hIcon := Icon.Handle;
StrPCopy(szTip, Title)
end;
Shell_NotifyIcon(NIM_ADD, @FIconData)
end;

procedure TTrayForm.MenuItemShowClick(Sender: TObject);
begin
Show;
MenuItemShow.Enabled := False
end;

procedure TTrayForm.MenuItemExitClick(Sender: TObject);
begin
Shell_NotifyIcon(NIM_DELETE, @FIconData);
Close
end;

procedure TTrayForm.WMSysCommand(var Message: TWMSysCommand);
begin
if Message.CmdType and $FFF0 = SC_MINIMIZE then
begin
Hide;
MenuItemShow.Enabled := True
end
else inherited
end;

procedure TTrayForm.WMUser(var Message: TMessage);
var
P: TPoint;
begin
if Message.LParam = WM_RBUTTONDOWN then
begin
GetCursorPos(P);
SetForegroundWindow(Handle);
TrayPopupMenu.Popup(P.X, P.Y);
PostMessage(Handle, WM_NULL, 0, 0)
end
end;

end.


 
easy   (2002-10-05 11:42) [11]

>Юрий Зотов © (04.10.02 16:15)
класс...


 
denick   (2002-10-09 11:51) [12]

Спасибо Юрий Зотов!
Всё работает. Просто СУПЕР.



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2002.12.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.009 c
3-27857
voland34
2002-11-20 23:48
2002.12.09
трабла с indexfield for ClientDataSet


14-28223
Shadow
2002-11-16 20:44
2002.12.09
Способы подавления депрессии?


1-27911
Lenok
2002-11-27 15:52
2002.12.09
работа с dll


3-27875
Youri
2002-11-19 14:57
2002.12.09
Полностью не открывается база!


4-28349
kaif
2002-10-26 01:23
2002.12.09
Как закрыть процесс под NT





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский