![]() |
|
|
|
|
#1
|
|||
|
|||
|
Здравствуйте, уважаемые форумчане. У меня такое дело: Программа стартует сразу свернутая в трей и от туда выдает hint:
Код:
BalloonHint1.Description := label1.Caption +#13#10+ label2.Caption +#13#10+ label5.Caption+#13#10+ label3.Caption+#13#10+ label6.Caption+#13#10+ label4.Caption;
point.X := 1010; //label1.Width;
point.Y := 990; //label1.Height;
balloonhint1.ShowHint(edit1.ClientToScreen(point));
end; |
|
#2
|
|||
|
|||
|
Посмотри в MSDN, там при клике на этот хинт окну приложения посылается определенное сообщение, которое надо обработать самому. Я дописывал этот функционал в TCollTrayIcon и, если правильно помню, делал и при чистой WinAPI реализации. Главное, при создании иконки подсунуть правильный хэндл окна (то окно, в котором ты будешь потом обрабатывать это сообщение).
|
|
#3
|
||||
|
||||
|
Event'a у BalloonHint нет, зато вероятно есть WindowProc что принимает все сообщения для балунхинтовой формы, заморские товарисчи советуют создать потомка и перекрыть у него эту процедуру примерно так
Код:
...
private
{ Private declarations }
FOnBalloonClick: TNotifyEvent;
protected
procedure WindowProc(var Message: TMessage); override;
public
{ Public declarations }
published
property OnBalloonClick: TNotifyEvent read FOnBalloonClick write FOnBalloonClick;
end;
...
procedure TMyBalloonHint.WindowProc(var Message: TMessage);
begin
case Message.Msg of
WM_SYSTEM_TRAY_MESSAGE:
begin
case Message.lParam of
NIN_BALLOONUSERCLICK:
begin
FOnBalloonClick(Self);
end
else
inherited;
end;
end;
else
Inherited;
end;
end; |
|
#4
|
|||
|
|||
|
Цитата:
|