Код з коментарями:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls; type TForm1 = class(TForm) PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; TabSheet3: TTabSheet; TabSheet4: TTabSheet; TabSheet5: TTabSheet; procedure PageControl1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} {Визначення параметрів для коректного відображення вспливаючих підказок} procedure TForm1.FormCreate(Sender: TObject); begin // Видимість вспливаючих підсказок закладок встановлюється в true PageControl1.ShowHint:=true; // Призначається властивості PageControl Tag значення -1 PageControl1.Tag:=-1; end; {В події PageControl MouseMove реалізовується відображення своєї вспливаючої підказки для кожної вкладки} procedure TForm1.PageControl1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var tabindex: Integer; PC: TPageControl; begin {Як правило Sender в Delphi - це елемент управління, який посилає повідомлення функції, в якій він фігурує} PC := Sender as TPageControl; // визначення індексу вкладки за її координатами tabindex := PC.IndexOfTabAt(X, Y); // в цій умовній конструкції відбувається присвоєння і зміна підказок для вкладок if ((tabindex >= 0) and (tabindex <> PC.Tag)) then begin PC.Tag := tabindex; Application.CancelHint; // присвоєння підказки вкладці, в даному випадку присвоюється Caption вкладки PC.Hint := PC.Pages[tabindex].Caption; // активація відображення підказки Application.ActivateHint(Point(X,Y)); end; end; end.
Відображення вспливаючої підказки була реалізована при допомозі volvo877.
Немає коментарів:
Дописати коментар