Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как свернуть программу в трей? 
:(
    Опции темы
Vladimir_K
Дата 21.5.2008, 18:40 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.12.2006

Репутация: нет
Всего: 1



Нашел такой пример:
Код

procedure TForm1.ApplicationMinimize(Sender: TObject);
begin
RxTrayIcon1.Show;
ShowWindow(Application.Handle,SW_HIDE);
end;

procedure TForm1.RxTrayIcon1Click(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Application.Restore;
SetForeGroundWindow(Application.MainForm.Handle);
RxTrayIcon1.Hide;
end;

Добавил этот код в свою программу. Вылезают ошибки. Подскажите, что еще нужно прописать?
Объявление процедур поместить к остальным объявлениям:
Код

procedure ApplicationMinimize(Sender: TObject);
procedure RxTrayIcon1Click(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

а еще что? RxTrayIcon1 надо как-то объявить. А как?
Вот ошибки:

[Error] Unit1.pas(43): Undeclared identifier: 'RxTrayIcon1'
[Error] Unit1.pas(43): Missing operator or semicolon
[Error] Unit1.pas(51): Undeclared identifier: 'RxTrayIcon1'
[Error] Unit1.pas(51): Missing operator or semicolon

Это сообщение отредактировал(а) Vladimir_K - 21.5.2008, 18:44
--------------------
Судя по всему, у меня огромное количество мозгов - мне требуется уйма времени, чтобы ими пораскинуть
PM MAIL ICQ   Вверх
Exai1e
Дата 21.5.2008, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 908
Регистрация: 3.12.2006
Где: Moscow

Репутация: 2
Всего: 30



Установить компонент RxTrayIcon smile

Добавлено через 55 секунд
а ваще глянь в DRKB или получше в поиске, и без компонентов можно свернуть прогу в трей ;)


--------------------
"Решение зависит от выбранного геморроя" © Snowy
"у нас как в армии - либо работает, либо так и задумано"
PM MAIL ICQ   Вверх
Qu1nt
Дата 21.5.2008, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 13.1.2007

Репутация: 22
Всего: 50



Как-нибудь так:
Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

const
  TRAY_ID     = $A77E;
  WM_TRAYICON = $8000 + 1;

type
  PNotifyIconData = ^TNotifyIconData;
  TNotifyIconData = record
    cbSize: DWORD;
    Wnd: HWND;
    uID: UINT;
    uFlags: UINT;
    uCallbackMessage: UINT;
    hIcon: HICON;
    szTip: array [0..63] of AnsiChar;
  end;

  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    procedure WMTrayIcon(var Message: TMessage); message WM_TRAYICON;
  public
    { Public declarations }
  end;

  function Shell_NotifyIcon(dwMessage: DWORD; lpData: PNotifyIconData): BOOL; stdcall; external 'shell32.dll' name 'Shell_NotifyIconA';
  function TaskBarAddIcon(hWindow: HWND; ID: Cardinal; ICON: hIcon;
      CallbackMessage: Cardinal; Tip: PChar): Boolean;
   function TaskBarDeleteIcon(hWindow: HWND; ID: Integer): Boolean;

var
  Form1: TForm1;


implementation

{$R *.dfm}

function TaskBarAddIcon;
var
  NID : TNotifyIconData;
begin
  FillChar(NID, SizeOf(TNotifyIconData), 0);
  with NID do begin
    cbSize := SizeOf(TNotifyIconData);
    Wnd    := hWindow;
    uID    := ID;
    uFlags := 7;
    uCallbackMessage := CallbackMessage;
    hIcon  := Icon;
    lstrcpyn(szTip, Tip, SizeOf(szTip));
  end;
  Result := Shell_NotifyIcon(0, @NID);
end;

function TaskBarDeleteIcon;
var
  NID : TNotifyIconData;
begin
  FillChar(NID, SizeOf(TNotifyIconData), 0);
  with NID do
  begin
    cbSize := SizeOf(TNotifyIconData);
    Wnd    := hWindow;
    uID    := ID;
  end;
  Result := Shell_NotifyIcon(2, @NID);
end;

procedure TForm1.WMTrayIcon;
begin
  with Message do
    if (WParam = TRAY_ID) and (LParam = WM_LBUTTONDBLCLK) then
    begin
      Application.Restore;
      SetForeGroundWindow(Application.MainForm.Handle);
    end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  SetWindowLong(Application.Handle, GWL_EXSTYLE,
    GetWindowLong(Application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW);
  TaskBarAddIcon(Self.Handle, TRAY_ID, LoadIcon(hInstance, 'MAINICON'), WM_TRAYICON, 'Hello, world!');
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  TaskBarDeleteIcon(Self.Handle, TRAY_ID);
end;

end.


Это сообщение отредактировал(а) Qu1nt - 21.5.2008, 18:57
PM MAIL   Вверх
THandle
Дата 21.5.2008, 19:06 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 50
Всего: 372



PM   Вверх
Vladimir_K
Дата 21.5.2008, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.12.2006

Репутация: нет
Всего: 1



Всем большущее спасибо! Буду разбираться.
--------------------
Судя по всему, у меня огромное количество мозгов - мне требуется уйма времени, чтобы ими пораскинуть
PM MAIL ICQ   Вверх
Akella
Дата 21.5.2008, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 8
Всего: 329



какая версия дельфи? в 2007ой уже есть компонента TrayIcon
PM MAIL   Вверх
Vladimir_K
Дата 22.5.2008, 07:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.12.2006

Репутация: нет
Всего: 1



Version 7.0
У меня такой компоненты не наблюдается...
--------------------
Судя по всему, у меня огромное количество мозгов - мне требуется уйма времени, чтобы ими пораскинуть
PM MAIL ICQ   Вверх
zercalo
Дата 22.5.2008, 08:14 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 5.6.2006

Репутация: нет
Всего: нет



2 Vladimir_K
вчера вот здесь находил: http://www.rtfm.4hack.com/faq.php?id1=1&id2=15

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0515 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.