Код з коментарями:
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.




Немає коментарів:
Дописати коментар