BalloonHint1 を使用しない例は、設計どおりに機能します。ヒントの更新に問題はありません。
procedure TForm1.ControlList1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
ControlList1.ShowHint:=false;
//ControlList1.CustomHint <-------value is not set as it is not required.
ControlList1.Hint := IntToStr(ControlList1.HotItemIndex);
ControlList1.ShowHint:=true;
end;
TBalloonHint を追加すると、BalloonHint が正しく表示されません。
procedure TForm1.ControlList1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
ControlList1.ShowHint:=false;
BalloonHint1.Delay:=0;
BalloonHint1.HideAfter:=-1;
ControlList1.CustomHint:=BalloonHint1;
ControlList1.Hint := IntToStr(ControlList1.HotItemIndex);
ControlList1.ShowHint:=true;
end;
初めて ControlList の上にマウスを移動したとき。バルーンヒントは表示されません。
マウスをもう一度 (2 回目) 移動すると、前の移動の HotItemIndex にインデックスが表示されます。
BalloonHint1.Refresh を実行する方法はありますか? 次のいくつかをテストしました。
Application.CancelHint; ///something that I dont want to do... but i gave it a try
また
ControlList1.ShowHint:=false;
ControlList1.ShowHint:=true;