Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TTabSet - Hint


Cobalt ©   (2012-01-16 18:00:00) 

Столкнулся с такой проблемой:
Имеется унаследованное приложение, использует для вкладок TTabSet
Хочу организовать показ Hint'а.
Прописал значение, включил ShowHint := True
Проблема в том, что Хинт не показывается при наведении на контрол.
ЧЯДНТ, и где править.
Достаточно для хотелки пока одного хинта на весь контрол.


Rouse_   (2012-01-18 14:46:00) [1]

Потому-что у TTabSet хинт используется для другого, аименно для отображения полного текста закладок с обрезанным тестом, что собственно и можно увидеть посмотрев на код procedure TTabSet.CMHintShow(var Message: TCMHintShow); (там даже каменты под это дело не поленились вставить).

Оть тебе пример.

procedure TForm1.FormCreate(Sender: TObject);
begin
 ts1.Tabs.Clear;
 ts1.Tabs.Add('qwerty1ds fsdf sdf sdf sdf sdf sdf sdf sdf ds');
 ts1.Tabs.Add('qwerty1ds fsdf sdf sdf sdf sdf sdf sdf sdf ds');
 ts1.Tabs.Add('qwerty1ds fsdf sdf sdf sdf sdf sdf sdf sdf ds');
 ts1.Hint := '11112';
 ts1.ShrinkToFit := True;
 ts1.ShowHint := True;
end;


Cobalt   (2012-01-18 14:24:00) [2]

Мне - надо, потому что я не хочу вкладки шириной хотя бы в половину ширины компонента, и самостоятельно обрезаю её название.
Значит, придется писать новый компонент, с тем поведением, который хочу.
Спасибо Dimka Maslov ©.


Dimka Maslov   (2012-01-17 19:16:00) [3]

В общем так: CMHintShow сознательно не даёт выдавать Hint, ибо он рисуется только если текст закладки ширее нежели её ширина и соответсвует заголовку закладки. Можно, конечно, запудзырить свой класс с другой логикой вывода. Но оно надо?


Dimka Maslov   (2012-01-17 19:07:00) [4]

Скачал. Запустил. Посмотрел. TTabSet действительно забивает на Hint. Чтобы дальге разобраться надо копать в procedure TTabSet.CMHintShow(var Message: TCMHintShow); чё у них там делается одной эмбаркадере известно


sniknik   (2012-01-17 17:39:00) [5]

> Дельфи 2010
D7 поэтому не могу проверить... но пара вопросов

1 зачем панель? и что если без нее
2 зачем ParentShowHint фалсе? и что если положить "чистый" компонент без твоих пере настроек, только хинт прописать.

компонент с вкладки 3.1... может прекратили поддерживать? а там где нибудь юникодность мешает...
метод Application.OnHint назначь, проверь что туда приходит, и вообще приходит ли.


Cobalt   (2012-01-17 16:49:00) [6]

Да, черт побери, совсем забыл - Дельфи 2010.
Тестовое приложение: http://webfile.ru/5773528


brother   (2012-01-17 06:22:00) [7]

Что Я Делаю Не Так...


sniknik   (2012-01-16 19:41:00) [8]

> Проблема в том, что Хинт не показывается при наведении на контрол.
> ЧЯДНТ, и где править.
показывается!
ЧЯДНТ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо