HintForm.pas
上传用户:fh681027
上传日期:2022-07-23
资源大小:1959k
文件大小:2k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. unit HintForm;
  2. interface
  3. uses
  4.   SysUtils, Windows, Messages, Classes, Graphics, Controls,
  5.   Forms, Dialogs, StdCtrls, ExtCtrls, AppEvnts;
  6. type
  7.   TForm1 = class(TForm)
  8.     RadioGroup1: TRadioGroup;
  9.     Label1: TLabel;
  10.     ApplicationEvents1: TApplicationEvents;
  11.     procedure RadioGroup1Click(Sender: TObject);
  12.     procedure ShowHint (var HintStr: string;
  13.       var CanShow: Boolean; var HintInfo: THintInfo);
  14.   end;
  15. var
  16.   Form1: TForm1;
  17. implementation
  18. {$R *.DFM}
  19. procedure TForm1.ShowHint (var HintStr: string;
  20.   var CanShow: Boolean; var HintInfo: THintInfo);
  21. var
  22.   RadioItem, RadioHeight: Integer;
  23.   RadioRect: TRect;
  24. begin
  25.   {if the control is the label show the hint in the middle of it}
  26.   with HintInfo do
  27.     if HintControl = Label1 then
  28.       HintPos := HintControl.ClientToScreen (Point (
  29.         HintControl.Width div 2, HintControl.Height div 2))
  30.     else
  31.     { if the control is the radio group, determine which
  32.     radio button the cursor is over, and set a proper
  33.     hint string, hint rectangle, and hint position}
  34.     if HintControl = RadioGroup1 then
  35.     begin
  36.       RadioHeight := (RadioGroup1.Height) div
  37.         RadioGroup1.Items.Count;
  38.       RadioItem := (CursorPos.Y) div RadioHeight;
  39.       HintStr := 'Choose the ' +
  40.         RadioGroup1.Items [RadioItem] + ' button';
  41.       RadioRect := RadioGroup1.ClientRect;
  42.       RadioRect.Top := RadioRect.Top +
  43.         RadioHeight * RadioItem;
  44.       RadioRect.Bottom := RadioRect.Top + RadioHeight;
  45.       // assign the hints rect and pos
  46.       CursorRect := RadioRect;
  47.     end;
  48. end;
  49. procedure TForm1.RadioGroup1Click(Sender: TObject);
  50. begin
  51.   Label1.Caption := Label1.Caption +
  52.     ' - ' + RadioGroup1.Items [RadioGroup1.ItemIndex];
  53. end;
  54. end.