Я пытаюсь использовать TCustomHint
, чтобы показать сообщение моему пользователю, которое легко исчезает и выходит, чтобы не быть слишком отвлекающим. Однако, когда я вызываю ShowHint
на моем объекте с точкой, поле подсказки кажется центрированным вокруг точки, которую я даю. Я бы хотел, чтобы мой ящик выглядел таким, что его верхняя левая координата - это точка.Остановить TCustomHint от центрирования себя вокруг моей точки
Вот код, я использую так показать подсказку:
procedure ShowNotification(ATitle: UnicodeString; AMsg: UnicodeString);
var
Box: TCustomHint;
P: TPoint;
begin
Box := TCustomHint.Create(MyForm);
Box.Title := ATitle;
Box.Description := AMsg;
Box.Delay := 0;
Box.HideAfter := 5000;
Box.Style := bhsStandard;
P.X := 0;
P.Y := 0;
Box.ShowHint(P);
end;
Я знаю, что координаты X/Y моей точки являются не по отношению к форме, и это не проблема.
Я проследил через то, что происходит, когда я называю ShowHint
и, кажется, что если я могу каким-то образом контролировать конечную ширину базовой TCustomHintWindow
внутри TCustomHint.ShowHint(Rect: TRect)
тогда я могу быть в бизнесе.
Так что мой вопрос: есть ли очевидный способ остановить TCustomHint
от центрирования себя по моей точке? Или мне придется пройти процесс наследования, переопределив метод draw и т. Д. И т. Д.? Надеюсь, я просто пропустил что-то простое.
Спасибо за ответ. Мне нужно будет попотеть, лучше ли это делать так, или если я просто использую TCustomHint как «вдохновение» и просто создаю свой собственный класс с нуля. Опираясь больше на второе. – bstamour