Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.01.05;
Скачать: [xml.tar.bz2];

Вниз

Hint   Найти похожие ветки 

 
MakNik   (2003-12-18 11:34) [0]

Подскажите, плз., как заставить выскакивать Hint когда я вхожу в TEdit (либо по Tab, илбо мышкой)?


 
serge   (2003-12-18 11:42) [1]

для илбо мышкой - свойство ShowHint должно быть True;


 
MakNik   (2003-12-18 11:49) [2]

>serge


 
serge   (2003-12-18 12:07) [3]

Привожу код - не собственного написания

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;

-----------------------------------------------------------------

Прямой вызов метода Hint

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

var
ShortHint: string;
AShortHint: array[0..255] of Char;
HintPos: TPoint;
HintBox: TRect;
begin
{ Создаем окно: }
Result := THintWindow.Create(Control);

{ Получаем первую часть подсказки до "|": }
ShortHint := GetShortHint(Control.Hint);

{ Вычисляем месторасположение и размер окна подсказки }
HintPos := Control.ClientOrigin;
Inc(HintPos.Y, Control.Height + 6); <<<< Смотри примечание ниже
HintBox := Bounds(0, 0, Screen.Width, 0);
DrawText(Result.Canvas.Handle,
StrPCopy(AShortHint, ShortHint), -1, HintBox,
DT_CALCRECT or DT_LEFT or DT_WORDBREAK or DT_NOPREFIX);
OffsetRect(HintBox, HintPos.X, HintPos.Y);
Inc(HintBox.Right, 6);
Inc(HintBox.Bottom, 2);

{ Теперь показываем окно: }
Result.ActivateHint(HintBox, ShortHint);
end; {RevealHint}

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

begin
Hint.ReleaseHandle;
Hint.Free;
Hint := nil;
end; {RemoveHint}

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

Удачи!


 
MakNik   (2003-12-18 12:26) [4]


> serge (18.12.03 11:42) [1]
> для илбо мышкой - свойство ShowHint должно быть True;

Это понятно... вопрос в том, как показывать Hint когда я вхожу в TEdit по Tab (а мышка далеко)...


 
jack128   (2003-12-18 12:31) [5]

RevealHint вешай на TControl.OnEnter
RemoveHint на TControl.OnExit


 
MakNik   (2003-12-18 12:43) [6]


> > serge

Спасибо! Работает!


 
Семен Сорокин   (2003-12-18 12:50) [7]

а не проще ли на OnEnter повесить Application.ActivateHint()


 
serge   (2003-12-18 12:56) [8]

;о)
Спасибо не мне а Кулибе.
Удачи.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.01.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.011 c
3-11800
OlegM
2003-12-09 06:51
2004.01.05
Использование компонента TDBF (добавление получение картинок)


3-11824
Nikolas_Spock
2003-12-10 01:42
2004.01.05
Delphi7 + SQL


1-11940
Cerber
2003-12-20 13:55
2004.01.05
Как из Memo перенести все данные в массив. Тоесть каждый символ в


14-12040
Nikolay M.
2003-12-11 10:59
2004.01.05
Раздел с задачками на разминку мозгов


1-11969
Эли
2003-12-19 12:49
2004.01.05
TMemo - количество видимых строк





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский