Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.05.2009, 11:49
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию Hints в DBNavigator

Никогда не пользовался хинтами, вот понадобилось. Никак не пойму как вызвать хинт в кнопках DBNavigator ?
Ответить с цитированием
  #2  
Старый 11.05.2009, 11:24
Аватар для AmX
AmX AmX вне форума
Прохожий
 
Регистрация: 25.04.2008
Адрес: Вологда
Сообщения: 27
Репутация: 10
Сообщение Прямой вызов Hint..

вот, нашел немного ... может поможет:
PHP код:
function RevealHint(ControlTControl): THintWindow;
{----------------------------------------------------------------}
Демонстрирует всплывающую подсказку для определенного элемента }
управления (Control), возвращает ссылку на hint-объект,        }
поэтому в дальнейшем подсказка может быть спрятана вызовом     }
RemoveHint (смотри ниже).                                      }
{----------------------------------------------------------------} 

var
ShortHintstring;
AShortHint: array[0..255of Char;
HintPosTPoint;
HintBoxTRect;
begin
Создаем окно: }
Result := THintWindow.Create(Control);
Получаем первую часть подсказки до '|': }
ShortHint := GetShortHint(Control.Hint);
Вычисляем месторасположение и размер окна подсказки }
HintPos := Control.ClientOrigin;
Inc(HintPos.YControl.Height 6);
< < < < 
Смотри примечание ниже
   HintBox 
:= Bounds(00Screen.Width0);
DrawText(Result.Canvas.Handle,
   
StrPCopy(AShortHintShortHint), -1HintBox,
   
DT_CALCRECT or DT_LEFT or DT_WORDBREAK or DT_NOPREFIX);
OffsetRect(HintBoxHintPos.XHintPos.Y);
Inc(HintBox.Right6);
Inc(HintBox.Bottom2);
Теперь показываем окно: }
Result.ActivateHint(HintBoxShortHint);
end; {RevealHint}

procedure RemoveHint(var HintTHintWindow);
{----------------------------------------------------------------}
Освобождаем дескриптор окна всплывающей подсказкивыведенной  }
предыдущим RevealHint.                                         }
{----------------------------------------------------------------}
begin
Hint
.ReleaseHandle;
Hint.Free;
Hint := nil;
end; {RemoveHint

Строка с комментарием <<<< позиционирует подсказку ниже элемента управленияЭто может быть измененоесли по какой-то причине вам необходима другая позиция окна с подсказкой
+

PHP код:
{Появление}
IF 
h<>nil H.ReleaseHandle; {если чей-то хинт yже былто его погасить}
H:=THintWindow.Create(Окно-владелец хинта);
H.ActivateHint(H.CalcHintRect(...),'hint hint nint');
....
{
UnПоявление :) - это возможно пpидется повесить на таймеpкотоpый бyдет
обнyляться пpи каждом новом появлении хинта
}
IF 
h<>nil H.ReleaseHandle;

По-дpyгомy задача тоже pешаемано очень плохо. (см исходник объекта TApplicationон как pаз сабжами заведyет 
+
PHP код:
Сделаем это по нажатию на первую кнопкуа по нажатию на вторую кнопку будем скрывать окно hint'a: 
Code:
public
{ Public declarations }
h: THintWindow;

procedure TForm1.Button1Click(Sender: TObject);
begin
if h<>nil then
   H.ReleaseHandle;
H:=THintWindow.Create(Form1);
H.ActivateHint(Form1.ClientRect, '
Это всплывающая подсказка');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if h<>nil then
   H.ReleaseHandle;
end; 
взято из Delphi Russian Knowledge Base
так же там много всего по теме хинтов вообщем... если это не поможет, гляньте тут: http://delphiworld.narod.ru/ ..программку, а там уже мнржество всего
Ответить с цитированием
  #3  
Старый 11.05.2009, 12:16
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Вообще-то все намного проще. Сами хинты располагаются в массиве Hints, а что-бы показывались выставить в свойствах навигатора ShowHint в True.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:12.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter