Добавьте элемент управления TApplicationEvents в вашу форму и используйте событие OnShowHint:
procedure TForm1.ApplicationEvents1ShowHint(var HintStr: string;
var CanShow: Boolean; var HintInfo: THintInfo);
begin
CanShow := HintInfo.HintControl <> Edit1;
end;
Если у вас нет объекта TApplicationEvents (например, если вы используете очень старую версию Delphi), тогдаВы можете использовать (например, в FormCreate)
Application.OnShowHint := ApplicationEvents1ShowHint
, чтобы установить обработчик событий вручную.
Обновить
Если у вас есть несколько элементов управления в TTabSheet,тогда у вас может быть та же самая проблема со всеми ними.Тогда вас может заинтересовать
procedure TForm1.ApplicationEvents1ShowHint(var HintStr: string;
var CanShow: Boolean; var HintInfo: THintInfo);
begin
CanShow := not SameStr(HintStr, PageControl1.Hint) or (HintInfo.HintControl = TabSheet1);
end;
Обновление 2
Если в TPageControl есть несколько таблиц TTabSheets и вы хотите, чтобы на всех листах отображалась подсказка, но не дочерние элементы управления,вместо этого можно сделать
CanShow := not SameStr(HintStr, PageControl1.Hint) or
((HintInfo.HintControl is TTabSheet) and
(TTabSheet(HintInfo.HintControl).PageControl = PageControl1));
.