Поиск:

Ответ в темуСоздание новой темы Создание опроса
> подсказка в трее 
:(
    Опции темы
Bima
Дата 29.1.2007, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Возник такой вопрос по трею: Есть подсказка (Hint), а есть всплывающее окно, которое висит, пока его не закроешь.
Это всплывающее окно можно увидить, если флешку отключить, и появляется типа подсказки "теперь устройство может быть извлечено".

Как я понимаю, это какой-то класс сообщения, как его можно прикрутить к компоненту (TrayIcon).

По форуму не искал, так как не заню, что искать.


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
Rodman
Дата 29.1.2007, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

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



Такое можно сделать при помощи PopupMenu...
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Bima
Дата 29.1.2007, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



???
там даже форма подсказки не как у PopupMenu. Похоже на собственную форму, но я такие видал у мноих программ. Похоже что это стандартный класс.


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
_hunter
Дата 29.1.2007, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



ищи по слову baloon
пример:
http://vingrad.ru/DELPHI-DLP-000647


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Grom
Дата 29.1.2007, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Bima, поставь компоненту CoolTrayIcon она умеет и в трей прятать и баллон показывать.

Это сообщение отредактировал(а) Grom - 29.1.2007, 21:15
--------------------
Хостинг, Vds, Dedicated serve, регистрация доменов (RU,com,net,org) - обращаться в icq.
PM MAIL   Вверх
Bima
Дата 30.1.2007, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Программа написана, неохота что-то ставить еще один компонет и переделывать всю логику.

взял за основу пример, который привел _hunter , но ничего не могу сделать smile. Там переменные объявляются определенного типа, а я не знаю файлов, где они объявлены.
вот для примера взять функцию:
Код

bool __fastcall TForm1::DZBalloonTrayIcon(HWND Window, Byte IconID, TBalloonTimeout Timeout, String BalloonText, String BalloonTitle, TBalloonIconType BalloonIconType)

где взять типы переменных TBalloonTimeout и TBalloonIconType???


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
_hunter
Дата 30.1.2007, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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





--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Vyacheslav
Дата 30.1.2007, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

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



А THintWindow не спасет отца русской демократии?

Добавлено @ 12:03 

Цитата(Bima @  30.1.2007,  11:33 Найти цитируемый пост)
где взять типы переменных TBalloonTimeout и TBalloonIconType??? 

А чего их брать если они объявлены по месту ?
Код

type
TBalloonTimeout = 10..30{seconds};
TBalloonIconType = (bitNone, // нет иконки
bitInfo, // информационная иконка (синяя)
bitWarning, // иконка восклицания (жёлтая)
bitError); // иконка ошибки (красная)


Код

typedef unsigned int  TBalloonTimeout;
enum  TBalloonIconType {bitNone, bitInfo, bitWarning, bitError };



--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Bima
Дата 30.1.2007, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



все равно не понимаю, как их привязать.

вот допустим код на дельфи:
Код

function BalloonTrayIcon(const Window: HWND; const IconID: Byte; const Timeout: TBalloonTimeout; const BalloonText, BalloonTitle: String; const BalloonIconType: TBalloonIconType): Boolean;
const
aBalloonIconTypes : array[TBalloonIconType] of Byte = (NIIF_NONE, NIIF_INFO, NIIF_WARNING, NIIF_ERROR);
var
NID_50 : NotifyIconData_50;
begin
FillChar(NID_50, SizeOf(NotifyIconData_50), 0);
with NID_50 do
begin
cbSize := SizeOf(NotifyIconData_50);
Wnd := Window;
uID := IconID;
uFlags := NIF_INFO;
StrPCopy(szInfo, BalloonText);
uTimeout := Timeout * 1000;
StrPCopy(szInfoTitle, BalloonTitle);
dwInfoFlags := aBalloonIconTypes[BalloonIconType];
end{with};
Result := Shell_NotifyIcon(NIM_MODIFY, @NID_50);
end;

там заполняется структура NID_50 и она вставляется в функцию Shell_NotifyIcon.
но опять же... где взять описание структуры NotifyIconData_50???
и как эту функцию BalloonTrayIcon прилепить к компоненту TrayIcon???

Прошу сильно не пинать, просто хочу разобраться


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
Vyacheslav
Дата 30.1.2007, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

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



Цитата(Bima @  30.1.2007,  13:34 Найти цитируемый пост)
Прошу сильно не пинать, просто хочу разобраться 

Не, сильно не будем. Слегка только ногами попинаем.
Так что терпите
Bima,  я по данному предмету в таком же положении как и Вы. Ну ладно с типами Вы не разобрались : нотацию паскаля сишнику знать не обязательно. Но Вы задали вопрос
 
Цитата(Bima @  30.1.2007,  13:34 Найти цитируемый пост)
там заполняется структура NID_50 и она вставляется в функцию Shell_NotifyIcon.
но опять же... где взять описание структуры NotifyIconData_50???

Ответ простой :"А хрен его знает". Но боюсь, он Вас не устроит. smile  Поэтому я поступаю очень просто и Вы должны были поступить также на моем месте. Есть непонятная функция Shell_NotifyIcon. Всем понятна, а мне нет. Значит делаем предположение, что она из WinAPI в MSDN. Точно  есть smile
Цитата

Sends a message to the taskbar's status area.

Syntax

BOOL Shell_NotifyIcon(          DWORD dwMessage,
    PNOTIFYICONDATA lpdata
);


И вторым параметром ей передается указатель на NID_50. А мы имеем в описании функции вторым параметромтип PNOTIFYICONDATA
В MSDN под этим типом числиться  струтура
Код

typedef struct _NOTIFYICONDATA {
    DWORD cbSize;
    HWND hWnd;
    UINT uID;
    UINT uFlags;
    UINT uCallbackMessage;
    HICON hIcon;
    TCHAR szTip[64];
    DWORD dwState;
    DWORD dwStateMask;
    TCHAR szInfo[256];
    union {
        UINT uTimeout;
        UINT uVersion;
    };
    TCHAR szInfoTitle[64];
    DWORD dwInfoFlags;
    GUID guidItem;
} NOTIFYICONDATA, *PNOTIFYICONDATA;


Вот и получили все ответы. Причем на момент их задания я знал не больше Вашего и теперь благодаря Вам буду считаться ассом по этому вопросу, хотя в действительности полный профан smile
Кстати, не забудьте добавить  shellapi.h. В нем описана структура и функция. Это я тоже подчерпнул из MSDN


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Bima
Дата 30.1.2007, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

и теперь благодаря Вам буду считаться ассом по этому вопросу

Клево. Хоть кому то помог smile, но сам не разобрался.
Код

bool __fastcall TFormMain::DZBalloonTrayIcon(HWND Window, Byte IconID, TBalloonTimeout Timeout, String BalloonText, String BalloonTitle, TBalloonIconType BalloonIconType)
{

TBalloonIconType aBalloonIconTypes;
NOTIFYICONDATA *NID_50;

NID_50->hWnd = Window;
NID_50->uID =  IconID;
NID_50->uFlags = NIF_INFO;
NID_50->szInfo = BalloonText.c_str(); // Error
NID_50->uTimeout = Timeout * 1000;
NID_50->szInfoTitle = BalloonTitle.c_str(); // Error
NID_50->dwInfoFlags =aBalloonIconTypes;
NID_50->cbSize = sizeof(NID_50);

return Shell_NotifyIcon(NIM_MODIFY, &NID_50); //Error
}
//---------------------------------------------------------------------------

Как сконвертировать String в TCHAR (для поля szInfoTitle и szInfo) ???
и еще не принимает в последней строке структуру smile


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
_hunter
Дата 30.1.2007, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



вообще-то NOTIFYICONDATA NID_50; должно быть.
а строки strcpy копировать нужно...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Bima
Дата 30.1.2007, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

bool __fastcall TFormMain::DZBalloonTrayIcon(HWND Window, Byte IconID, TBalloonTimeout Timeout, String BalloonText, String BalloonTitle, TBalloonIconType BalloonIconType)
{
TBalloonIconType aBalloonIconTypes;
NOTIFYICONDATA NID_50;

NID_50.hWnd = Window;
NID_50.uID =  IconID;
NID_50.uFlags = NIF_INFO;
strcpy(NID_50.szInfo,BalloonText.c_str());
NID_50.uTimeout = Timeout * 1000;
strcpy(NID_50.szInfoTitle,BalloonTitle.c_str());
NID_50.dwInfoFlags =aBalloonIconTypes;
NID_50.cbSize = sizeof(NID_50);

return Shell_NotifyIcon(NIM_MODIFY, &NID_50);
}
//---------------------------------------------------------------------------


выдает ошибку : [Linker Error] Unresolved external '_FormMain' referenced from C:\MY PROJECT FOR C++ BILDER\TRAYDEMO\TRAYDEMO.OBJ



--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
_hunter
Дата 30.1.2007, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



а твоя форма точно TFormMain зовется? ;)


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Vyacheslav
Дата 30.1.2007, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

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



Цитата(Bima @  30.1.2007,  16:47 Найти цитируемый пост)
выдает ошибку : [Linker Error] Unresolved external '_FormMain' referenced from C:\MY PROJECT FOR C++ BILDER\TRAYDEMO\TRAYDEMO.OBJ

Где-то в cpp пропало наше незабвенное smile
Код

TFormMain* FormMain;




--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

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


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

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


 




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


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

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