Главная страница
    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.45 MB
Время: 0.007 c
14-25051
Johnmen
2002-12-20 12:13
2003.01.09
С праздником !


7-25101
Вова
2002-09-29 06:00
2003.01.09
Низкоуровневый доступ к винту


1-24862
SaperXL
2002-12-27 22:13
2003.01.09
TMemo


6-24999
Gamar
2002-11-06 13:53
2003.01.09
TNMHTTP


3-24792
StenKz
2002-12-10 14:18
2003.01.09
Маленькая проблемка - Grid округляет автоматом





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