我在程序设计初期时把控件ShowHint属性设为False,但我想在程序运行时动态把当前控件ShowHint属性为True,这样做为什么不行呀,请高手指点。 
procedure TForm1.FormCreate(Sender: TObject);
var
  P: TPoint;
begin
  P.X := 20;
  P.Y := 20;
  aplication.Hint := 'Hint Test';
  Application.ShowHint:= True;
  Application.ActivateHint(p);
end;

解决方案 »

  1.   

    我在程序设计初期时把控件ShowHint属性设为False,但我想在程序运行时动态把当前控件ShowHint属性为True,这样做为什么不行呀,请高手指点。 
    procedure TForm1.FormCreate(Sender: TObject);
    var
      P: TPoint;
    begin
      P.X := 20;
      P.Y := 20;
      Application.Hint := 'Hint Test';//刚才上面这段代码写错了改一下。
      Application.ShowHint:= True;
      Application.ActivateHint(p);
    end;
      

  2.   

    edit1.Hint := 'Hint Test'
      edit1.ShowHint:= True;
      

  3.   

    你误会我的意思了,我是需要程序运行时动态把当前窗体的控件ShowHint属性改为True,因为我在程序设计初期时把控件ShowHint属性设为False,我的那段代码为什么不行呀,请高手指点。
      

  4.   

    如果你窗体中控件的ParentShowHint都为True的话,直接把窗体的ShowHint设置成True就可以了,如果设计的时候控件中Hint的属性不为空的话,控件显示的就是你设计时的内容,如果为空的话,就显示窗体Hint的内容
    form1.hint:= 'test hint';
    form1.showhint := True;
      

  5.   

    我需要的是比如当前这个窗体有一个按扭控件它的ShowHint属性改为False,有没有一段代码能实现遍历当前这个窗体有多少个控件,然后把ShowHint属性改为True,鼠标移到这个控件上的话就可以显示Hint了。
      

  6.   

    我需要的是比如当前这个窗体有一个按扭控件它的ShowHint属性改为False,有没有一段代码能实现遍历当前这个窗体有多少个控件,然后把ShowHint属性改为True,鼠标移到这个控件上的话就可以显示Hint了。
      

  7.   

    procedure TForm1.Button1Click(Sender: TObject);var
      I: Integer;
      ChildControl: TControl;
    begin
      for I:= 0 to Form1.ControlCount-1 do
      begin
        if Form1.Controls[I] is TButton then
          Form1.Controls[I].Hint := '显示的字符串';
      end;end;end;
      

  8.   

    还是不行呀,真奇怪查了资料里面就是说只要在Form的FormCreate事件中写下  Application.ShowHint:= True;就可以了,就算当前控件属性ShowHint属性为False,也可以动态把ShowHint属性改为True的到底是怎么回事呀,请高手指点。
      

  9.   

    遍历窗体上的控件,像jjwwang(风归叶) 那样,不过最好是遍历component,把ShowHint属性设为true
      

  10.   

    Application的ShowHint属性只能控制在全局控制是否显示Hint.如果设置成False,就是禁止所有的Hint,如果设置成True,就要看各个控件怎么设置了.如果你一开始将某个控件的ShowHint属性设置成False,要重新显示的话就要将该控件的ShowHint属性再设置成True,而不是去设置Application的属性.
      

  11.   

    ShowHint属性只能是设计时控制的吧,然后运行时是不能修改的吧
      

  12.   

    大家是不是误会他的意思的呀,他应该是想问.如何 随时在指定座标上显示类似于 Hint 的提示。
      

  13.   

    差不多就是Maple119(枫叶)说的意思了,不过前提是当前控件的ShowHint属性为False,
    也能随时在指定座标上显示类似于 Hint 的提示。
      

  14.   

    做了个Demotype
      TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
        procedure FormDestroy(Sender: TObject);
        procedure FormClick(Sender: TObject);
      private
        TestHint:THintWindow;  
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    begin
      TestHint:=THintWindow.Create(Self);
      TestHint.Color:=clWhite;
    end;procedure TForm1.FormDestroy(Sender: TObject);
    begin
      FreeAndNil(TestHint);
    end;procedure TForm1.FormClick(Sender: TObject);
    var
      p:TPoint;
    begin
      TestHint.ReleaseHandle;    //消除前一个Hint
      GetCursorPos(p);
      TestHint.ActivateHint(Rect(p.X,p.Y,p.X+80,p.Y+30),'It''s a Demo');
    end;
      

  15.   

    TestHint.ReleaseHandle;//消除前一个Hint这一句在这个Demo中要不要都无所谓。如果要手动消除用ActiveHint弹出的Hint的话,就要用到它了。