Форум: "WinAPI";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];
ВнизКак свернуть программу в значок около часов??? Найти похожие ветки
← →
SigalX (2004-06-04 12:51) [0]Скажите пожалуйста, как свернуть форму в значок, который находится около часов; по-моему он называется Трей...
← →
Семен Сорокин © (2004-06-04 12:52) [1]любимый вопрос :)))
← →
YurikGL © (2004-06-04 12:55) [2]
> свернуть форму
это называется запуздырить
← →
Плохиш (2004-06-04 12:58) [3]> это называется запуздырить туда, где часики :-))
← →
Романов Р.В. © (2004-06-04 12:58) [4]http://www.delphikingdom.ru/asp/viewitem.asp?catalogid=903
← →
Iraizor © (2004-06-04 17:04) [5]любимый вопрос :)))
ага, из разряда как скрыть процесс от таск манагера =)
а по теме : ответ лежит в факе
← →
grom (2004-06-05 14:34) [6]http://www.zdima-iv.nm.ru/delphi.html
icon
← →
Anatoly Podgoretsky © (2004-06-05 14:48) [7]Данный вопрос завоевал 13 премий Оскара
← →
Profi © (2004-06-05 19:59) [8]Чего над человекам издеваться?
Скачай CoolTrayIcon компонента такая и юзай!
← →
parovoZZ © (2004-06-05 20:10) [9]Примерно так:
uses
Windows,
Messages,
CommDlg,
ShellApi;
var
TrayIcon : TNotifyIconData;
.........
function AddTrayIcon (Window : THandle): Boolean;
begin
TrayIcon.cbSize := SizeOf (TrayIcon);
TrayIcon.Wnd := Window;
TrayIcon.uID := 100;
TrayIcon.uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
TrayIcon.uCallbackMessage := WM_MYTRAYMSG;
TrayIcon.hIcon := LoadIcon (hInstance, "MYHEARTS");
TrayIcon.szTip := "Подсказка";
TrayEnabled := Shell_NotifyIcon (NIM_ADD, @TrayIcon);
Result := TrayEnabled;
end;
Procedure ModifyTrayIcon;
begin
TrayIcon.hIcon := LoadIcon (hInstance, "MYHEART");
Shell_NotifyIcon (NIM_MODIFY, @TrayIcon);
end;
Procedure ReTrayIcon;
begin
TrayIcon.hIcon := LoadIcon (hInstance, "MYHEARTS");
Shell_NotifyIcon (NIM_MODIFY, @TrayIcon);
end;
procedure DeleteTrayIcon;
begin
If TrayEnabled then Shell_NotifyIcon (NIM_DELETE,@TrayIcon);
end;
← →
Kostya (2004-06-05 21:22) [10]ИЛИ ТАК МОЖНО:
unit shellUnit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Menus;
const
WM_MYICONNOTIFY = WM_USER + 123;
type
TForm1 = class(TForm)
PopupMenu1: TPopupMenu;
RestoreItem: TMenuItem;
N1: TMenuItem;
FileExitItem1: TMenuItem;
HideItem: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure RestoreItemClick(Sender: TObject);
procedure HideItemClick(Sender: TObject);
procedure FileExitItem1Click(Sender: TObject);
private
{ Private declarations }
ShownOnce: Boolean;
public
{ Public declarations }
procedure WMICON(var msg: TMessage); message WM_MYICONNOTIFY;
procedure WMSYSCOMMAND(var msg: TMessage);message WM_SYSCOMMAND;
procedure RestoreMainForm;
procedure HideMainForm;
procedure CreateTrayIcon(n:Integer);
procedure DeleteTrayIcon(n:Integer);
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
uses ComObj, activex, ShellApi, shlobj, registry;
procedure TForm1.WMICON(var msg: TMessage);
var P : TPoint;
begin
case msg.LParam of
WM_LBUTTONDOWN:
begin
GetCursorPos(p);
SetForegroundWindow(Application.MainForm.Handle);
PopupMenu1.Popup(P.X, P.Y);
end;
WM_LBUTTONDBLCLK : RestoreItemClick(Self);
end;
end;
procedure TForm1.WMSYSCOMMAND(var msg: TMessage);
begin
inherited;
if (Msg.wParam=SC_MINIMIZE) then HideItemClick(Self);
end;
procedure TForm1.HideMainForm;
begin
Application.ShowMainForm := False;
ShowWindow(Application.Handle, SW_HIDE);
ShowWindow(Application.MainForm.Handle, SW_HIDE);
end;
procedure TForm1.RestoreMainForm;
var i,j : Integer;
begin
Application.ShowMainForm := True;
ShowWindow(Application.Handle, SW_RESTORE);
ShowWindow(Application.MainForm.Handle, SW_RESTORE);
if not ShownOnce then
begin
for I := 0 to Application.MainForm.ComponentCount -1 do
if Application.MainForm.Components[I] is TWinControl then
with Application.MainForm.Components[I] as TWinControl do
if Visible then
begin
ShowWindow(Handle, SW_SHOWDEFAULT);
for J := 0 to ComponentCount -1 do
if Components[J] is TWinControl then
ShowWindow((Components[J] as TWinControl).Handle, SW_SHOWDEFAULT);
end;
ShownOnce := True;
end;
end;
procedure TForm1.CreateTrayIcon(n:Integer);
var nidata : TNotifyIconData;
begin
with nidata do
begin
cbSize := SizeOf(TNotifyIconData);
Wnd := Self.Handle;
uID := 1;
uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
uCallBackMessage := WM_MYICONNOTIFY;
hIcon := Application.Icon.Handle;
StrPCopy(szTip,Application.Title);
end;
Shell_NotifyIcon(NIM_ADD, @nidata);
end;
procedure TForm1.DeleteTrayIcon(n:Integer);
var nidata : TNotifyIconData;
begin
with nidata do
begin
cbSize := SizeOf(TNotifyIconData);
Wnd := Self.Handle;
uID := 1;
end;
Shell_NotifyIcon(NIM_DELETE, @nidata);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ShownOnce:= False;
CreateTrayIcon(1);
HideItem.Enabled := False;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
DeleteTrayIcon(1);
end;
procedure TForm1.RestoreItemClick(Sender: TObject);
begin
RestoreMainForm;
DeleteTrayIcon(1);
RestoreItem.Enabled := False;
HideItem.Enabled := True;
end;
procedure TForm1.HideItemClick(Sender: TObject);
begin
HideMainForm;
CreateTrayIcon(1);
HideItem.Enabled := False;
RestoreItem.Enabled := True;
end;
procedure TForm1.FileExitItem1Click(Sender: TObject);
begin
Close;
end;
end.
В форме создаешь PopupMenu1 с элементами Restore, Hide и Exit.
Усё!
← →
Kostya (2004-06-05 21:29) [11]Вот тебе полноценный пример. И скрываешь, и разворачиваешь, и закрываешь.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.037 c