Delphi:TPageControlのヒントが含まれているアイテムの表示を妨げる

StackOverflow https://stackoverflow.com/questions/3214359

  •  13-09-2020
  •  | 
  •  

質問

私は以下の成分を持つ形態を持っています:TPageControlを含む単一のTTabSheetを含むTEdit

PageControlタブの上にマウスをマウスしたときに表示され、 no のヒントが表示されます。

PageControlには、hint= "Hello"showhint = trueがあります。これは期待通りに機能します。

TEditにはshowhint = falseparentshowhint = falsehintが空です。

しかし、私はまだ「こんにちは」ヒントを手に入れる。どうやってこれを止めることができますか?

興味がある場合は.dfmです。

object Form65: TForm65
  Left = 0
  Top = 0
  Caption = 'Form65'
  ClientHeight = 258
  ClientWidth = 290
  OldCreateOrder = False
  ShowHint = True
  TextHeight = 13
  object PageControl1: TPageControl
    Left = 0
    Top = 0
    Width = 290
    Height = 258
    Hint = 'Bar'
    ActivePage = TabSheet1
    Align = alClient
    TabOrder = 0
    object TabSheet1: TTabSheet
      Caption = 'TabSheet1'
      object Edit3: TEdit
        Left = 72
        Top = 67
        Width = 121
        Height = 21
        ParentShowHint = False
        ShowHint = False
        TabOrder = 0
        Text = 'tab1'
      end
    end
  end
end
.

役に立ちましたか?

解決

フォームに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));
. 代わりに

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top