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

Вниз

Как принудительно показать Hint ?   Найти похожие ветки 

 
Max79   (2002-12-26 17:56) [0]

Добрый вечер!
Такая вещь: Компонент TreeView, длинные названия узлов.
я кидаю при наведении на узел названия узлов в Hint и ...
требуется тут же показать Hint. в этом и проблема, т.к. Hint показывается толко при первом наведении на TreeView, а дальше - нет. Как делать?


 
Song   (2002-12-26 20:14) [1]

TApplication/THintWindow.ActivateHint()


 
Каспер   (2002-12-27 07:40) [2]

долг платежом красен...
самому много тут помогают
Делов том что событие показа Хинта по моему происходить должно в том случае когда переползаешь от нода к ноду

значит первое -

procedure TfMain.tvListUsersMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
N :TTreeNode;
FHint : String;

begin
N := tvListUsers.GetNodeAt(x,y); // Определение нода в списке
if (N <> FHintNode) then // Проверка на перемещение мыши на другой нод
begin
FHintNode := N;
if (N<>nil)then // А может это не НОД?
begin
Application.CancelHint; // Снять текущую подсказку
tvListUsers.Tag := Y; // Запоминаем позицию нода по вертикали
tvListUsers.Hint :="НОД = "+N.Text ;//или что там сюда втыкаем имя нода

end
else
begin
tvListUsers.Hint := "";
Application.CancelHint;
tvListUsers.Tag := -1;
end;
end
end;

это я впердолил прямо в форму
procedure tvListUsersMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
FHintNode : TTreeNode; // Номер нода в списке, на которую указывает мышь
public
// Обработчик подсказок
procedure OnShowHint(var HintStr: string; var CanShow: Boolean;var HintInfo: THintInfo);


procedure TfMain.FormCreate(Sender: TObject);
begin
Application.HintColor:=clYellow;
FHintNode := nil;
Application.OnShowHint := OnShowHint; // Установка обработчика
конец;


Ну и наконец сам показ Хинта
procedure TfMain.OnShowHint(var HintStr:string;var CanShow:Boolean;var HintInfo:THintInfo);
var
Pos : TPoint;
begin
with HintInfo do if HintControl is TTreeView then // Проверка на нужный объект
with HintControl as TTreeView do begin
Pos.X := 0;
Pos.Y := tvListUsers.Tag+24;
HintPos := tvListUsers.ClientToScreen(Pos);
HintStr := tvListUsers.Hint;
end;
end;


Вроде ничего не забыл но так как выдирал из крупного проекта может что и упустил если что жду замечаний



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

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

Наверх





Память: 0.55 MB
Время: 0.029 c
14-25062
Kotka
2002-12-19 21:25
2003.01.09
Мне интересно ваше мнение...


8-24980
IgorZu
2002-09-19 14:48
2003.01.09
Работа с MP3


1-24865
msgipss
2002-12-26 13:59
2003.01.09
А как можно присвоить один типизированный массив другому


8-24978
Comwad
2002-09-20 13:16
2003.01.09
Почему Beep(1000,1000) из WinProcs не работает под WIN 95/98


3-24817
Karbo
2002-12-15 17:26
2003.01.09
SQL : вопрос про COUNT( )





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