Главная страница
    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.006 c
14-25091
inc(665)
2002-12-22 13:16
2003.01.09
NY, how, where, with who? :)


14-25028
AL2002
2002-12-18 11:33
2003.01.09
Голосуем за козлов


3-24793
menart
2002-12-16 15:10
2003.01.09
IBASE и 1С


3-24818
XM-AD
2002-12-17 10:17
2003.01.09
Снова кодировки! Что не правильно?


1-24913
Weare
2002-12-23 13:36
2003.01.09
Excel и Delphi





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