![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | 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, имхо  | 
| 
		 
			 
			#7  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 NumLock, спасибо 
		
	
		
		
		
		
		
	
		
		
	
	
	Осталось как-то всунуть в подсказку свои компоненты... ![]()  | 
| 
		 
			 
			#8  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 мне бы заставить персонажа говорить по-русски  
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 . на XP говорит и на русском и на английском, а на Seven только на английском, русские слова пропускает ![]()  | 
| 
		 
			 
			#9  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 В 7ке же нет поддержки агента - нужно все компоненты же ставить самому, причем не факт что будут правильно работать. У меня, например, персонажи появляются в розовом квадрате - почему то прозрачность окна отрубается  
		
	
		
		
			![]() PS Во вложении файл для русского языка (произношения и развознования): http://zalil.ru/31111466 - пакет синтез/заспознование; во вложении - синтез русской речи  | 
| 
		 
			 
			#10  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 для XP все тут взял: Agent 2.0 Setup. все работает (en, ru). не проверял только голосовые команды. 
		
	
		
		
		
		
			
		
		
		
		
		
			на 7 установил Microsoft Agent-enabled programs may not work in Windows 7. персонаж живет, но говорит только на en. установил TTS Engine и Language из пред. ссылки - эффекта ноль. пробовал с Speech SDK 5.1, как сказано в писании: Цитата: 
	
 к тому же: Цитата: 
	
 ![]() Последний раз редактировалось NumLock, 25.05.2011 в 10:42.  | 
| 
		 
			 
			#11  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Ну я ставил XP-шного агента - говорит по русски нормально, только отображается на розовом фоне и иногда ошибки при закрытии диалогов выдает (при своих работаешь, если заменяешь их своими - ошибки вот сыплятся у него) и закрывается. 
		
	
		
		
		
		
		
	
		
		
	
	
	Видимо в 7ке явное какие-то противодействие ему ![]()  | 
| 
		 
			 
			#12  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 извращение полное, конечно, но больше ничего сделать не получается  
		
	
		
		
		
		
			
		
		
		
		
		
			  в расчет самописные формы, похожие на Office 2000/2003, не беру.![]() ![]() это отображается объект Assistant из Office 2000/2003. естественно для этого должен быть установлен офис 2003 с его помощником. Код: 
	uses
  ComObj,
  ActiveX,
var
  o: Variant;
  b: Variant;
begin
  o:=CreateOleObject('Word.Application');
  o.Assistant.Visible:=True;
  o.Assistant.FileName:='Merlin.acs';
  b:=o.Assistant.NewBalloon;
  b.Icon:=4;
  b.Heading:='Вы не ответили на мой ответ.';
  b.Text:='ДА НЕБЫЛО НИ ЕДИНОГО РАЗРЫВА!!! С НОЯБРЯ ПРОШЛОГО ГОДА! А СЕГОДНЯ ЦЕЛЫХ ЧЕТТТТЫЫРЕЕЕЕ РАЗРЫВА!!! ОТВЕЧАЙТЕ НА МОЙ КОНКРЕТНЫЙ ПОСТАВЛЕНЫЙ ВОПРОС!!!';
  b.BalloonType:=0;
  b.Mode:=0;
  b.Button:=1;
  Tag:=b.Show;
  b.Close;
  o.Quit;
end;![]() Последний раз редактировалось NumLock, 27.05.2011 в 15:29.  | 
| 
		 
			 
			#13  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Ну с этим я и так работать умею...  
		
	
		
		
		
		
		
		
			  Мне нужно именно диалоги похожие сделать, а агент, введу отказа его поддержки в 7ке мне не нужен, и любые его компоненты то же. В том то и идея, что бы сделать диалоги в стиле помощников Office 2003 - в стиле Ballon Hint (т.е. с хвостиком) или просто Ballon (т.е. без хвостика). Главное что бы стиль был тот же самый: заголовок, размещение текста, такие другие элементы. А помощник, хоть вещь и прикольная, но на его программирование очень много времени нужно, увы - если с ним вообще связываться.   Как это сделать - это уже вопрос... ![]() Последний раз редактировалось KiL0z, 27.05.2011 в 19:21.  | 
| 
		 
			 
			#14  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Ну возьмите вы компоненты которые умеют такие хинты рисовать, например девок или тмс. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#15  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
  |