|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
Результаты опроса: Вашя отношение с Balloon Hints? | |||
Не понимаю о чем речь | 1 | 6.67% | |
Это не актуально | 8 | 53.33% | |
Интересная идея, поглядим | 4 | 26.67% | |
Активно пользуюсь | 2 | 13.33% | |
Голосовавшие: 15. Вы еще не голосовали в этом опросе |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
"Balloon Tooltip" или "Диалоги в стиле помощников Office 2003"
Здравствуйте!
Когда-то в 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, имхо Пишу программы за еду. __________________ |