ОФФ для программеров

Кто умеет делать Balloon ToolTips??????
Суть вопроса в следующем. Есть код для создания сего творения в делфи, но с одной особенностью - это всплывающее сообщение появляется ТОЛЬКО когда проводишь мышью над тем элементом окна для которого его создаешь. Кто знает как сделать так чтобы это окно появлялось ПО МОЕМУ СОБЫТИЮ .. например по таймеру и держалось либо пока его не закроешькрестиком, либо само через скока то минут. Поиск в инете ничо толкового не дал.
0
masterO99
смотреть объекты родители. наверняка там все есть.
0
Колумб.
А не для профильного ли форума тема?
0
Камрад Cav
Была утила.
ЗАгоняешь сообщения, события, таймеры и т.д. изпользовала компоненту офиса с животными (кошка собака волшебник)и т.д.
ищи...
0
Homer J Simpson
От пользователя Колумб (агитатор)
А не для профильного ли форума тема?

тама нет гениев
0
Homer J Simpson
От пользователя Камрад Cav
Была утила.
ЗАгоняешь сообщения, события, таймеры и т.д. изпользовала компоненту офиса с животными (кошка собака волшебник)и т.д.
ищи...

подскажи кодовые слова :-)
0
John Dow
не понял темы..ну нужны тебе вспылвающие подсказки..

OnCursorMove, определяешь коориданты и если надо вывдишь новыю форму модально и включаешь таймер на уничтожение этой новой формы, содержание формы зависит от позиции курсора
0
Homer J Simpson
От пользователя John Dow
OnCursorMove, определяешь коориданты и если надо вывдишь новыю форму модально и включаешь таймер на уничтожение этой новой формы, содержание формы зависит от позиции курсора

это НЕ

От пользователя Homer J Simpson
Balloon ToolTips



а мне нужны именно такие которые как в трее вылазят напоминалки от винды
0
Колумб.
От пользователя Homer J Simpson
тама нет гениев

польщен своим присутствием на форуме Великих! :-)
0
John Dow
От пользователя Homer J Simpson
иди на дельфикиндом.. там в кс подскажут

http://www.delphikingdom.com/table/search.asp?name...+ToolTips&ItemID=&isQuestion=2&Qwaddress=&TypeEqv=0&Count=10

на Дельфиворд.народ.ру не ходи..лежит:-)

[Сообщение изменено пользователем 15.09.2006 13:39]
0
WhiteWolf
msdn подсказывает что надо делать так:

Исходник:
hwndToolTips = CreateWindow(TOOLTIPS_CLASS,
                            NULL,
                            WS_POPUP | TTS_NOPREFIX | TTS_BALLOON,
                            0, 0,
                            0, 0,
                            NULL, NULL,
                            g_hinst,
                            NULL);
if (hwndTooltip)
{
// Do the standard ToolTip coding. 
    TOOLINFO ti;

    ti.cbSize = sizeof(ti);
    ti.uFlags = TTF_TRANSPARENT | TTF_CENTERTIP;
    ti.hwnd = hwnd;
    ti.uId = 0;
    ti.hinst = NULL;
    ti.lpszText = LPSTR_TEXTCALLBACK;

    GetClientRect(hwnd, &ti.rect);
    SendMessage(hwndToolTips, TTM_ADDTOOL, 0, (LPARAM) &ti );
}


сам не проверял.
0
Homer J Simpson
От пользователя John Dow

чуток не то ... но уже нашел что надо ..осталась фигня - нужно чтобы иконка была не ИНФО а ВОРНИНГ .... значения перебором меняю...показывает тока при ИНФО
0
Homer J Simpson
От пользователя Homer J Simpson
не ИНФО а ВОРНИНГ

и это сделал .. теперь канает ..всем спасибо - вопрос закрыт...
0
John Dow
От пользователя Homer J Simpson
и это сделал .. теперь канает ..всем спасибо - вопрос закрыт...


код в студию :-)
0
Homer J Simpson
вот пример который нашел.
единственно что в нем мутно так это то что окошко потом не закрывается, хотя таймаут срабатывает.

*****************************************************

unit Unit1;

interface

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

{new constant definitions}

const
NIF_INFO = $10;
NIF_MESSAGE = 1;
NIF_ICON = 2;
NOTIFYICON_VERSION = 3;
NIF_TIP = 4;
NIM_SETVERSION = $00000004;
NIM_SETFOCUS = $00000003;
NIIF_INFO = $00000001;
NIIF_WARNING = $00000002;
NIIF_ERROR = $00000003;

NIN_BALLOONSHOW = WM_USER + 2;
NIN_BALLOONHIDE = WM_USER + 3;
NIN_BALLOONTIMEOUT = WM_USER + 4;
NIN_BALLOONUSERCLICK = WM_USER + 5;
NIN_SELECT = WM_USER + 0;
NINF_KEY = $1;
NIN_KEYSELECT = NIN_SELECT or NINF_KEY;

{define the callback message}
TRAY_CALLBACK = WM_USER + $7258;

{new NotifyIconData structure definition}
type
PNewNotifyIconData = ^TNewNotifyIconData;
TDUMMYUNIONNAME = record
case Integer of
0: (uTimeout: UINT);
1: (uVersion: UINT);
end;

TNewNotifyIconData = record
cbSize: DWORD;
Wnd: HWND;
uID: UINT;
uFlags: UINT;
uCallbackMessage: UINT;
hIcon: HICON;
//Version 5.0 is 128 chars, old ver is 64 chars
szTip: array [0..127] of Char;
dwState: DWORD; //Version 5.0
dwStateMask: DWORD; //Version 5.0
szInfo: array [0..255] of Char; //Version 5.0
DUMMYUNIONNAME: TDUMMYUNIONNAME;
szInfoTitle: array [0..63] of Char; //Version 5.0
dwInfoFlags: DWORD; //Version 5.0
end;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
IconData: TNewNotifyIconData;
procedure SysTrayIconMsgHandler(var Msg: TMessage); message TRAY_CALLBACK;
procedure AddSysTrayIcon;
procedure ShowBalloonTips;
procedure DeleteSysTrayIcon;
public
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

uses
ShellAPI;

procedure TForm1.SysTrayIconMsgHandler(var Msg: TMessage);
begin
case Msg.lParam of
WM_MOUSEMOVE:;
WM_LBUTTONDOWN:;
WM_LBUTTONUP:;
WM_LBUTTONDBLCLK:;
WM_RBUTTONDOWN:;
WM_RBUTTONUP:;
WM_RBUTTONDBLCLK:;
//followed by the new messages
NIN_BALLOONSHOW:
{Sent when the balloon is shown}
ShowMessage('NIN_BALLOONSHOW');
NIN_BALLOONHIDE:
{Sent when the balloon disappears?Rwhen the icon is deleted,
for example. This message is not sent if the balloon is dismissed because of
a timeout or mouse click by the user. }
ShowMessage('NIN_BALLOONHIDE');
NIN_BALLOONTIMEOUT:
{Sent when the balloon is dismissed because of a timeout.}
ShowMessage('NIN_BALLOONTIMEOUT');
NIN_BALLOONUSERCLICK:
{Sent when the balloon is dismissed because the user clicked the mouse.
Note: in XP there's Close button on he balloon tips, when click the button,
send NIN_BALLOONTIMEOUT message actually.}
ShowMessage('NIN_BALLOONUSERCLICK');
end;
end;

{AddSysTrayIcon procedure add an icon to notification area}
procedure TForm1.AddSysTrayIcon;
begin
IconData.cbSize := SizeOf(IconData);
IconData.Wnd := AllocateHWnd(SysTrayIconMsgHandler);
{SysTrayIconMsgHandler is then callback message' handler}
IconData.uID := 0;
IconData.uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
IconData.uCallbackMessage := TRAY_CALLBACK; //user defined callback message
IconData.hIcon := Application.Icon.Handle; //an Icon's Handle
IconData.szTip := 'Please send me email.';
if not Shell_NotifyIcon(NIM_ADD, @IconData) then
ShowMessage('add fail');
end;

{ShowBalloonTips procedure carry out the new feature: Balloon Tips}
procedure TForm1.ShowBalloonTips;
var
TipInfo, TipTitle: string;
begin
IconData.cbSize := SizeOf(IconData);
IconData.uFlags := NIF_INFO;
TipInfo := 'Please send me email.';
strPLCopy(IconData.szInfo, TipInfo, SizeOf(IconData.szInfo) - 1);
IconData.DUMMYUNIONNAME.uTimeout := 3000;
TipTitle := 'Happyjoe@21cn.com';
strPLCopy(IconData.szInfoTitle, TipTitle, SizeOf(IconData.szInfoTitle) - 1);
IconData.dwInfoFlags := NIIF_INFO; //NIIF_ERROR; //NIIF_WARNING;
Shell_NotifyIcon(NIM_MODIFY, @IconData);
{in my testing, the following code has no use}
IconData.DUMMYUNIONNAME.uVersion := NOTIFYICON_VERSION;
if not Shell_NotifyIcon(NIM_SETVERSION, @IconData) then
ShowMessage('setversion fail');
end;

{here's the deletion procedure}
procedure TForm1.DeleteSysTrayIcon;
begin
DeallocateHWnd(IconData.Wnd);
if not Shell_NotifyIcon(NIM_DELETE, @IconData) then
ShowMessage('delete fail');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
AddSysTrayIcon;
ShowBalloonTips;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
DeleteSysTrayIcon;
end;
end.
0
Тема автоматически закрыта.
0
Обсуждение этой темы закрыто модератором форума.