anchor.diff:    FShadow := 0; // no shadow by default
     FTime := 5000; // show hint for 5 seconds then close
     FHintTextRec.SetRect(FBorder, FBorder, Width-(FBorder*2), Height-(FBorder*2));
  -  T_Chrono := TfpgTimer.Create(FTime);
  -  T_Chrono.OnTimer := @T_ChronoFini;
  +  FTimer := TfpgTimer.Create(FTime);
  +  FTimer.OnTimer := @HintTimerFired;
     uShadowForm:= TfpgHintShadow.Create(nil);
  -  OnClick := @T_ChronoFini;
  +  OnClick := @HintTimerFired;
     OnShow := @FormShow;
     OnHide := @FormHide;
   end;
   
   destructor TfpgHintWindow.Destroy;
   begin
  -  T_Chrono.Enabled := False;
  -  T_Chrono.Free;
  +  FTimer.Free;
     FFont.Free;
     inherited Destroy;
     uShadowForm.Free;
  
positive.code:   if FTime <> AValue then
    begin
      FTime := AValue;
      T_Chrono.Interval := FTime;
    end;
  end;
  
  
negative.code:     FShadow: Integer;
      FBorder: Integer;
      FMargin: Integer;
      FTimer: TfpgTimer;
      FHintTextRec: TfpgRect;
      FText: TfpgString;
      procedure   FormShow(Sender: TObject);
      procedure   FormHide(Sender: TObject);
      function    GetText: TfpgString;
      procedure   SetText(const AValue: TfpgString);
      procedure   HintTimerFired(Sender: TObject);
      procedure   SetShadow(AValue: Integer);
      procedure   SetBorder(AValue: Integer);
      procedure   SetTime(AValue: Integer);
  