![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
| Результаты опроса: Вашя отношение с Balloon Hints? | |||
| Не понимаю о чем речь |
|
1 | 6.67% |
| Это не актуально |
|
8 | 53.33% |
| Интересная идея, поглядим |
|
4 | 26.67% |
| Активно пользуюсь |
|
2 | 13.33% |
| Голосовавшие: 15. Вы еще не голосовали в этом опросе | |||
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Здравствуйте!
Когда-то в Windows (до 7ки) имелась замечательная технология MS Agent 2.0. С 7ке она более не поддерживается, хотя компоненты устанавливаются и их даже можно использовать, но с все персонажи (знакомые с Office 2000/2003 и Поиска WinXP) теперь отображаются на не прозрачном фоне. К сожалению, данная технология, по мнению Microsoft без перспективна и более не поддерживается. Пусть так, но у этой технологии был ещё весьма внушительный "+" - Balloon Hint-ы, т.е. диалоговые окна персонажей (Character) оформленные в стиле подсказок (Hints). Даже без использования персонажей эти Hints было удобно использовать для подсказок к полям с некорректными данными, уточняющих запросов, предоставления доступа к справке и т.д. Примеры MS Agent 2.0: Balloon Hint (представлены примеры DlgBalloon): ![]() Я пробовал сделать сделать свой Balloon Hint, самым простым способом (как мне показалось) - Tooltip: В связи с этим у меня пара вопросов, которые пока не могу раскурить сам:
|
|
#2
|
|||
|
|||
|
почему для изучения не посещаете мсдн?
|
|
#3
|
|||
|
|||
|
Цитата:
![]() |
|
#4
|
||||
|
||||
|
а разве Microsoft Agent и Tooltip Controls как-то связаны?
а так да, по умолчанию персонажи Microsoft Agent в Windows 7 не работают, но если очень хочется, то можно скачать Hotfix. Программы, использующие технологии Microsoft Agent, могут не работать в Windows 7 что касается Tooltip Controls, то прекрасно работает на 7: Код:
unit Unit1;
interface
uses
CommCtrl,
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
hwndTip: HWND;
public
{ Public declarations }
end;
var
Form1: TForm1;
const
TTI_NONE = 0;
TTI_INFO = 1;
TTI_WARNING = 2;
TTI_ERROR = 3;
TTS_ALWAYSTIP = $01;
TTS_NOPREFIX = $02;
TTS_NOANIMATE = $10;
TTS_NOFADE = $20;
TTS_BALLOON = $40;
TTS_CLOSE = $80;
TTM_SETTITLE = WM_USER+32;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
ti: TOOLINFO;
begin
hwndTip:=CreateWindowEx(WS_EX_TOPMOST, TOOLTIPS_CLASS, nil,
WS_POPUP or TTS_ALWAYSTIP or TTS_BALLOON,
0, 0, 0, 0,
Handle,
0, HInstance, nil);
SendMessage(hwndTip, TTM_SETTITLE, 1, LPARAM(PChar(Caption)));
SendMessage(hwndTip, TTM_SETTIPBKCOLOR, clCream, 0);
SendMessage(hwndTip, TTM_SETTIPTEXTCOLOR, clBlack, 0);
ti.cbSize:=SizeOf(TOOLINFO);
ti.uFlags:=TTF_SUBCLASS or TTF_CENTERTIP;
ti.hwnd:=Edit1.Handle;
ti.hInst:=0;
ti.lpszText:='Edit1';
Windows.GetClientRect(ti.hwnd, ti.Rect);
SendMessage(hwndTip, TTM_ADDTOOL, 0, LPARAM(@ti));
ti.cbSize:=SizeOf(TOOLINFO);
ti.uFlags:=TTF_SUBCLASS or TTF_CENTERTIP;
ti.hwnd:=Button1.Handle;
ti.hInst:=0;
ti.lpszText:='Button1';
Windows.GetClientRect(ti.hwnd, ti.Rect);
SendMessage(hwndTip, TTM_ADDTOOL, 0, LPARAM(@ti));
ti.cbSize:=SizeOf(TOOLINFO);
ti.uFlags:=TTF_SUBCLASS or TTF_CENTERTIP;
ti.hwnd:=Memo1.Handle;
ti.hInst:=0;
ti.lpszText:='Memo1';
Windows.GetClientRect(ti.hwnd, ti.Rect);
SendMessage(hwndTip, TTM_ADDTOOL, 0, LPARAM(@ti));
end;
end. |
|
#5
|
|||
|
|||
|
Удивительная штука:
1) запускаю exe-шник из Вашего архива - подсказка есть, но в стиле Win 2k (левый рис) 2) пытаюсь перекомпилить Ваш проект - вообще подсказки нет 3) создаю новый проект с кодом из Вашего поста получаю диалог в заголовке которого только первая буква (рис правый) ![]() Мистика, ё, маё.... Видимо в Delphi 2010 как-то иначе нужно действовать... ---- PS Точно мистика... Поместил CommCtrl, в новом проекте, в конец uses заработало... ![]() вернул на первое место - опять только первая буква... ![]() Осталось добавить в этот hint компоненты и будет жизнь прекрасна! Последний раз редактировалось KiL0z, 23.05.2011 в 21:22. |
|
#6
|
||||
|
||||
|
по поводу стиля: это я манифест не включил (TXPManifest не положил на форму)
по поводу CommCtrl: какой-то из модулей "перебивает" что-то из CommCtrl, имхо |