Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.09;
Скачать: CL | DM;

Вниз

Как принудительно показать 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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.028 c
14-25051
Johnmen
2002-12-20 12:13
2003.01.09
С праздником !


14-25023
Morfein
2002-12-19 20:35
2003.01.09
Хостинг


8-24987
Sergey V. Shadrin
2002-09-24 08:41
2003.01.09
переход цвета


4-25133
pavelB
2002-11-20 15:44
2003.01.09
мои документы


3-24777
diww
2002-12-16 12:04
2003.01.09
как сделать запрос?