Другие языки программирования и технологии
Как свое сворачивать приложение на делфи в tree ася 404048645
Как сворачивать программу на делфи в tree какой код нужно написать что нужно сделать
куда его сворачивать, неужели оно такое плохое, что ты аж туда его завернуть решил? или ты имел ввиду system tray?
В инете полно примеров и готовых компонентов. Google, и в путь!
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ShellAPI;
const
WM_MYTRAYNOTIFY = WM_USER + 123;
type
TForm1 = class(TForm)
PopupMenu1: TPopupMenu;
N11: TMenuItem;
N21: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
private
ShowOnce: Boolean;
procedure CreateTrayIcon(n:integer);
procedure DeleteTrayIcon(n:integer);
procedure HideTray();
procedure WMICON (var msg: TMessage); message WM_MYTRAYNOTIFY;
procedure WMSYSCOMMAND(var Msg : TMessage); message WM_SYSCOMMAND;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.WMICON (var msg: TMessage); // приходит при щелчке по иконке
var P: TPoint;
begin
case msg.LParam of
WM_LBUTTONDOWN: // левая кнопка мыши:
begin // открыть. .
Application.ShowMainForm:=true;
ShowWindow(Application.Handle, SW_SHOWNORMAL);
ShowWindow(Application.MainForm.Handle, SW_SHOWNORMAL);
SetForegroundWindow(Application.Handle);
DeleteTrayIcon(1);
end;
WM_RBUTTONDOWN: // правая кнопка мыши:
begin // меню. .
GetCursorPos(p);
SetForegroundWindow(Application.Handle);
Form1.PopupMenu1.Popup(p.X-50,p.Y);
end;
end;
end;
procedure TForm1.CreateTrayIcon(n:integer);
var NIdata :TNotifyiconData;
begin
with NIdata do
begin
cbSize:=SizeOf(TNotifyiconData);
Wnd:=Self.Handle;
uID:=n;
uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP;
uCallBackMessage:=WM_MYTRAYNOTIFY;
hicon:=Application.Icon.Handle;
szTip:='Подсказка всплывающая';
end;
ShellAPI.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:=n;
end;
ShellAPI.Shell_NotifyIcon(NIM_DELETE,@NIdata);
end;
procedure TForm1.HideTray; // свернуть приложение в трей
begin
Application.ShowMainForm:=false;
ShowWindow(Application.Handle, SW_HIDE);
ShowWindow(Application.MainForm.Handle, SW_HIDE);
CreateTrayIcon(1);
end;
procedure TForm1.WMSYSCOMMAND(var Msg : TMessage); // обр-ка сворачивания формы
begin
inherited;
if (Msg.wParam=SC_MINIMIZE) then
begin
HideTray;
end;
end;
procedure TForm1.N1Click(Sender: TObject); // Открыть
begin
Application.ShowMainForm:=true;
ShowWindow(Application.Handle, SW_SHOWNORMAL);
ShowWindow(Application.MainForm.Handle, SW_SHOWNORMAL);
DeleteTrayIcon(1);
end;
procedure TForm1.N2Click(Sender: TObject); // Выход
begin
DeleteTrayIcon(1);
Application.Terminate;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ShowOnce := false;
if not ShowOnce then
begin
//CreateTrayIcon(1);
end;
end;
end.
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ShellAPI;
const
WM_MYTRAYNOTIFY = WM_USER + 123;
type
TForm1 = class(TForm)
PopupMenu1: TPopupMenu;
N11: TMenuItem;
N21: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
private
ShowOnce: Boolean;
procedure CreateTrayIcon(n:integer);
procedure DeleteTrayIcon(n:integer);
procedure HideTray();
procedure WMICON (var msg: TMessage); message WM_MYTRAYNOTIFY;
procedure WMSYSCOMMAND(var Msg : TMessage); message WM_SYSCOMMAND;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.WMICON (var msg: TMessage); // приходит при щелчке по иконке
var P: TPoint;
begin
case msg.LParam of
WM_LBUTTONDOWN: // левая кнопка мыши:
begin // открыть. .
Application.ShowMainForm:=true;
ShowWindow(Application.Handle, SW_SHOWNORMAL);
ShowWindow(Application.MainForm.Handle, SW_SHOWNORMAL);
SetForegroundWindow(Application.Handle);
DeleteTrayIcon(1);
end;
WM_RBUTTONDOWN: // правая кнопка мыши:
begin // меню. .
GetCursorPos(p);
SetForegroundWindow(Application.Handle);
Form1.PopupMenu1.Popup(p.X-50,p.Y);
end;
end;
end;
procedure TForm1.CreateTrayIcon(n:integer);
var NIdata :TNotifyiconData;
begin
with NIdata do
begin
cbSize:=SizeOf(TNotifyiconData);
Wnd:=Self.Handle;
uID:=n;
uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP;
uCallBackMessage:=WM_MYTRAYNOTIFY;
hicon:=Application.Icon.Handle;
szTip:='Подсказка всплывающая';
end;
ShellAPI.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:=n;
end;
ShellAPI.Shell_NotifyIcon(NIM_DELETE,@NIdata);
end;
procedure TForm1.HideTray; // свернуть приложение в трей
begin
Application.ShowMainForm:=false;
ShowWindow(Application.Handle, SW_HIDE);
ShowWindow(Application.MainForm.Handle, SW_HIDE);
CreateTrayIcon(1);
end;
procedure TForm1.WMSYSCOMMAND(var Msg : TMessage); // обр-ка сворачивания формы
begin
inherited;
if (Msg.wParam=SC_MINIMIZE) then
begin
HideTray;
end;
end;
procedure TForm1.N1Click(Sender: TObject); // Открыть
begin
Application.ShowMainForm:=true;
ShowWindow(Application.Handle, SW_SHOWNORMAL);
ShowWindow(Application.MainForm.Handle, SW_SHOWNORMAL);
DeleteTrayIcon(1);
end;
procedure TForm1.N2Click(Sender: TObject); // Выход
begin
DeleteTrayIcon(1);
Application.Terminate;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ShowOnce := false;
if not ShowOnce then
begin
//CreateTrayIcon(1);
end;
end;
end.
Похожие вопросы
- Как создать свое мини приложение или игру на Android и выложить его в Google Play ?
- надо решить задачку через делфи и паскаль)))
- Вопрос по делфи
- языки делфи и си
- Скажите сколько месяцев нужно изучать Делфи что бы написать программу вывода даты, дня недели и года в окно ?
- стоит ли изучать ассемблер, если программирую на Делфи? и вообще реально ли что нибудь хорошее, дельное, нужное написать
- Кто работает в делфи или паскале....
- Делфи
- Как сделать защиту в программе написанной на делфи?
- Чем делфи отличается от С++ и можно ли создать хорошую 3d игру на делфи?