Форум: "Основная";
Текущий архив: 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