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
를 호출 할 때 어떻게되는지를 추적 한 어떻게 든 TCustomHint.ShowHint(Rect: TRect)
내부의 기본 TCustomHintWindow
의 최종 폭을 제어 할 수 있다면 내가 사업을 할 수 있다는 것을 나타납니다.
제 질문은 : 내 시점에서 TCustomHint
의 중심을 막을 수있는 확실한 방법이 있습니까? 아니면 상속, 무승부 메소드 오버라이드 등의 과정을 거쳐야합니까? 나는 단순한 뭔가를 놓치기를 바란다.
답장을 보내 주셔서 감사합니다. 이런 방식으로하는 것이 더 나은지, 아니면 TCustomHint를 "영감"으로 사용하고 처음부터 자신 만의 클래스를 만들어야하는지에 대해서 조롱해야 할 것입니다. 후자쪽으로 더 기울어 져 있습니다. – bstamour