[ fuoco @ 01.04.2005. 14:09 ] @
Zdravo svem!
Mozete li mi kaziti kak pokazat Hint prozorcu na proizvolnu poziciju vo formu?
Ja sam opitval so Application.ActivateHint i so instanciju THintWindow-a, no ne uspjah da go pokazem.

Nadjavam se me razbrahte;]
[ Nemanja Avramović @ 01.04.2005. 20:02 ] @
ne znam... :( ali da se nadovezem jos jednim pitanjem... kako da se pomera hint kad pomeras misa, ali samo dok je kursor na odredjenoj kontroli? kapirate?
[ IgLo @ 01.04.2005. 21:51 ] @
Sada sam pokusao, probaj sa ovim kodom. Moglo bi i optimalnije, naravno ali ovo sam na brzinu odradio.

Code:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure HintHandler(var HintStr: string; var CanShow: Boolean; var HintInfo: THintInfo);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  h : THintWindow;
  T : TTimer;
  LasthintComponent : TComponent;
implementation

{$R *.dfm}

procedure TForm1.HintHandler(var HintStr: string; var CanShow: Boolean; var HintInfo: THintInfo);

begin
  CanShow := False;
  If HintInfo.HintControl <> LastHintComponent Then
    Begin
      LastHintComponent := HintInfo.HintControl;
      h.ActivateHint(Rect (Form1.Left + 10, Form1.Top + 20, Form1.Left + 50, Form1.Left + 60), HintStr);
      T.Enabled := True;
    End;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  h := THintWindow.Create(Form1);
  application.OnShowHint := HintHandler;
  T := TTimer.Create(Form1);
  T.OnTimer := Timer;

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  h.Destroy;
  t.Destroy;
end;

procedure TForm1.Timer(Sender: TObject);
begin
  H.ReleaseHandle;
  T.Enabled := False;
end;

end.
[ fuoco @ 02.04.2005. 08:53 ] @
thanks for the code, I succeeded to show the hint that way:

Code:

var 
   hw: THintWindow; 
   r: TRect; 

begin 
   r := GetRect;

   hw := THintWindow.Create(nil); 

   try 
     hw.ActivateHint(r, 'žoя'); 
     Application.ProcessMessages; 
     Sleep(1000);
   finally 
     hw.Free; 
   end;