Главная страница
    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.46 MB
Время: 0.012 c
9-11761
smilik
2003-06-15 12:08
2004.01.05
Файлы *.b3d


14-12070
}|{yk
2003-12-08 16:36
2004.01.05
Фильм Калигула


9-11755
wild_arg
2003-06-16 17:41
2004.01.05
Текстуры в GLScene


8-12007
Leon Killer
2003-09-02 18:13
2004.01.05
VCL


3-11806
rosl
2003-12-08 17:04
2004.01.05
horizontal scrollbar





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский