Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
14-1088502398
ДудушкаКо
2004-06-29 13:46
2004.07.18
Портрет К Маркса большой ссылка или на мейл


3-1087892764
*boba*
2004-06-22 12:26
2004.07.18
Задачи по SQL


3-1087997171
Lacky
2004-06-23 17:26
2004.07.18
Добавление поля с Примари кей


1-1088825202
zac
2004-07-03 07:26
2004.07.18
Не запускать два раза


1-1088856022
Tempo
2004-07-03 16:00
2004.07.18
Передача фокуса компоненту





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