2008-08-10 18:23:45 +00:00
|
|
|
unit Unit1;
|
|
|
|
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
|
|
|
|
(*
|
|
|
|
ich denke mal das beste wäre erstmal die TGradTabPages mit der TGradTabControl
|
|
|
|
richtig zu "verlinken", ich habe auch noch ne TabListe hinzufügt diese müsste man dann auch noch
|
|
|
|
bei der TGradTabPages einbauen damit die Tabs schon mal automatisch erstellt und
|
|
|
|
gelöscht werden ^^
|
|
|
|
|
|
|
|
ToDo:
|
|
|
|
- CurrentPage-Button ohne Abstand
|
|
|
|
- IDE Testen hoffe es geht *g*
|
|
|
|
|
|
|
|
Danach:
|
|
|
|
- Tabs disable-n
|
|
|
|
- noch welche Wünsche? xD
|
|
|
|
- Testen testen testen und voila wir haben eine neue komponente :D
|
|
|
|
|
|
|
|
- Irgendwann mal eine TGradDrawer klasse um mehre
|
|
|
|
*)
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
|
|
|
uses
|
2008-10-08 20:15:45 +00:00
|
|
|
windows, Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls,
|
|
|
|
ugradbtn, StdCtrls, ComCtrls, LCLType, LCLProc, LCLIntf, Buttons, ugradtabcontrol,
|
2008-08-10 18:23:45 +00:00
|
|
|
Menus, Spin, ButtonPanel,
|
|
|
|
MaskEdit, DBGrids, DbCtrls, EditBtn, Arrow,
|
2008-10-08 20:15:45 +00:00
|
|
|
SynHighlighterPHP, Grids, SynEdit, SynMemo;
|
2008-08-10 18:23:45 +00:00
|
|
|
|
|
|
|
type
|
|
|
|
|
|
|
|
TTryOutPage = class(TGradTabPage)
|
|
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
{ TForm1 }
|
|
|
|
|
|
|
|
TForm1 = class(TForm)
|
2008-10-08 20:15:45 +00:00
|
|
|
Button1: TButton;
|
|
|
|
Button2: TButton;
|
2008-08-10 18:23:45 +00:00
|
|
|
CheckBox1: TCheckBox;
|
|
|
|
ComboBox1: TComboBox;
|
|
|
|
Edit1: TEdit;
|
2008-10-08 20:15:45 +00:00
|
|
|
GradTabPage1: TGradTabPage;
|
|
|
|
GradTabPage2: TGradTabPage;
|
|
|
|
NewPageBtn: TGradButton;
|
|
|
|
DeleteBtn: TGradButton;
|
2008-08-10 18:23:45 +00:00
|
|
|
GradTabControl1: TGradTabControl;
|
2008-10-04 23:45:02 +00:00
|
|
|
Label1: TLabel;
|
2008-08-25 13:07:22 +00:00
|
|
|
Memo2: TMemo;
|
2008-08-10 18:23:45 +00:00
|
|
|
MenuItem1: TMenuItem;
|
2008-10-08 20:15:45 +00:00
|
|
|
PageControl1: TPageControl;
|
2008-08-10 18:23:45 +00:00
|
|
|
Panel1: TPanel;
|
|
|
|
Panel2: TPanel;
|
2008-08-25 13:07:22 +00:00
|
|
|
Panel3: TPanel;
|
2008-08-10 18:23:45 +00:00
|
|
|
PopupMenu1: TPopupMenu;
|
|
|
|
RadioGroup1: TRadioGroup;
|
|
|
|
SpinEdit1: TSpinEdit;
|
2008-10-04 23:45:02 +00:00
|
|
|
SpinEdit2: TSpinEdit;
|
2008-08-10 18:23:45 +00:00
|
|
|
Splitter1: TSplitter;
|
|
|
|
StringGrid1: TStringGrid;
|
2008-10-08 20:15:45 +00:00
|
|
|
TabSheet1: TTabSheet;
|
|
|
|
TabSheet2: TTabSheet;
|
|
|
|
TabSheet3: TTabSheet;
|
|
|
|
ToggleBox2: TToggleBox;
|
2008-08-10 18:23:45 +00:00
|
|
|
procedure Button1Click(Sender: TObject);
|
|
|
|
procedure Button2Click(Sender: TObject);
|
|
|
|
procedure CheckBox1Click(Sender: TObject);
|
|
|
|
procedure ComboBox1Change(Sender: TObject);
|
|
|
|
procedure FormCreate(Sender: TObject);
|
|
|
|
procedure FormDestroy(Sender: TObject);
|
2008-10-08 20:15:45 +00:00
|
|
|
procedure FormMouseWheel(Sender: TObject; Shift: TShiftState;
|
|
|
|
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
|
|
|
|
procedure FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
|
|
|
|
MousePos: TPoint; var Handled: Boolean);
|
|
|
|
procedure FormMouseWheelUp(Sender: TObject; Shift: TShiftState;
|
|
|
|
MousePos: TPoint; var Handled: Boolean);
|
2008-08-10 18:23:45 +00:00
|
|
|
procedure GradButton1Click(Sender: TObject);
|
|
|
|
procedure GradButton1MouseDown(Sender: TObject; Button: TMouseButton;
|
|
|
|
Shift: TShiftState; X, Y: Integer);
|
|
|
|
procedure GradButton1MouseEnter(Sender: TObject);
|
|
|
|
procedure GradButton1MouseLeave(Sender: TObject);
|
|
|
|
procedure GradButton1MouseMove(Sender: TObject; Shift: TShiftState; X,
|
|
|
|
Y: Integer);
|
|
|
|
procedure GradButton1MouseUp(Sender: TObject; Button: TMouseButton;
|
|
|
|
Shift: TShiftState; X, Y: Integer);
|
2008-10-08 20:15:45 +00:00
|
|
|
procedure DeleteBtnClick(Sender: TObject);
|
2008-10-04 23:45:02 +00:00
|
|
|
procedure BewegeBtn(Sender: TObject);
|
2008-08-10 18:23:45 +00:00
|
|
|
procedure GradButton3Click(Sender: TObject);
|
|
|
|
procedure GradButton4Click(Sender: TObject);
|
2008-10-08 20:15:45 +00:00
|
|
|
procedure GradTabControl1DragDrop(Sender, Source: TObject; X, Y: Integer);
|
|
|
|
procedure GradTabControl1DragOver(Sender, Source: TObject; X, Y: Integer;
|
|
|
|
State: TDragState; var Accept: Boolean);
|
|
|
|
procedure GradTabControl1MouseDown(Sender: TObject; Button: TMouseButton;
|
|
|
|
Shift: TShiftState; X, Y: Integer);
|
|
|
|
procedure GradTabControl1MouseMove(Sender: TObject; Shift: TShiftState; X,
|
|
|
|
Y: Integer);
|
|
|
|
procedure GradTabControl1MouseWheelDown(Sender: TObject;
|
|
|
|
Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
|
|
|
|
procedure GradTabControl1MouseWheelUp(Sender: TObject; Shift: TShiftState;
|
|
|
|
MousePos: TPoint; var Handled: Boolean);
|
|
|
|
procedure GradTabControl1PageChanged(Sender: TObject);
|
|
|
|
procedure GradTabControl1PagesBarDragOver(Sender, Source: TObject; X,
|
|
|
|
Y: Integer; State: TDragState; var Accept: Boolean);
|
2008-08-10 18:23:45 +00:00
|
|
|
procedure GradTabControl1TabButtonClick(GradTabControl: TGradTabControl;
|
|
|
|
AIndex: Integer);
|
2008-10-08 20:15:45 +00:00
|
|
|
procedure GradTabControl1TabButtonMouseDown(
|
|
|
|
GradTabControl: TGradTabControl; Button: TMouseButton;
|
|
|
|
Shift: TShiftState; X, Y, AIndex: Integer);
|
|
|
|
procedure GradTabControl1TabButtonMouseMove(
|
|
|
|
GradTabControl: TGradTabControl; Shift: TShiftState; X, Y, AIndex: Integer
|
|
|
|
);
|
2008-08-10 18:23:45 +00:00
|
|
|
procedure GradTabControl1TabButtonMouseUp(GradTabControl: TGradTabControl;
|
|
|
|
Button: TMouseButton; Shift: TShiftState; X, Y, AIndex: Integer);
|
|
|
|
procedure GradTabControl2TabButtonClick(GradTabControl: TGradTabControl;
|
|
|
|
AIndex: Integer);
|
2008-10-08 20:15:45 +00:00
|
|
|
procedure PageControl1DragDrop(Sender, Source: TObject; X, Y: Integer);
|
|
|
|
procedure PageControl1DragOver(Sender, Source: TObject; X, Y: Integer;
|
|
|
|
State: TDragState; var Accept: Boolean);
|
|
|
|
procedure PageControl1MouseDown(Sender: TObject; Button: TMouseButton;
|
|
|
|
Shift: TShiftState; X, Y: Integer);
|
2008-10-04 23:45:02 +00:00
|
|
|
procedure Panel2Click(Sender: TObject);
|
2008-08-10 18:23:45 +00:00
|
|
|
procedure RadioGroup1Click(Sender: TObject);
|
|
|
|
procedure SpinEdit1EditingDone(Sender: TObject);
|
2008-10-04 23:45:02 +00:00
|
|
|
procedure SpinEdit2Change(Sender: TObject);
|
2008-08-10 18:23:45 +00:00
|
|
|
//procedure FormPaint(Sender: TObject);
|
|
|
|
private
|
|
|
|
{ private declarations }
|
|
|
|
public
|
|
|
|
{ public declarations }
|
|
|
|
//GradTabControl1 : TGradTabControl;
|
|
|
|
FControlWidth : Integer;
|
|
|
|
FLastIndex : Integer;
|
|
|
|
end;
|
|
|
|
|
|
|
|
var
|
|
|
|
Form1: TForm1;
|
|
|
|
|
|
|
|
implementation
|
|
|
|
|
|
|
|
{ TForm1 }
|
|
|
|
|
|
|
|
procedure TForm1.FormCreate(Sender: TObject);
|
|
|
|
var
|
|
|
|
TestPage : TGradTabPage;
|
|
|
|
begin
|
|
|
|
{ GradTabControl1 := TGradTabControl.Create(nil);
|
|
|
|
with GradTabControl1 do
|
|
|
|
begin
|
|
|
|
ControlStyle:=ControlStyle+[csAcceptsControls];
|
|
|
|
Top := 1;
|
|
|
|
Left := 1;
|
|
|
|
Width := 400;
|
|
|
|
Height := 400;
|
|
|
|
Parent := Panel1;
|
|
|
|
Anchors:=[akLeft,akTop];
|
|
|
|
Align:=alClient;
|
|
|
|
//BorderStyle:=bsSingle;
|
|
|
|
end; }
|
|
|
|
|
|
|
|
GradTabControl1.Align:=alClient;
|
|
|
|
GradTabControl1.TabPosition:=tpTop;
|
2008-10-04 23:45:02 +00:00
|
|
|
GradTabControl1.MoveIncrement:=20;
|
|
|
|
SpinEdit2.Value:=20;
|
2008-08-10 18:23:45 +00:00
|
|
|
|
|
|
|
{ with TGradButton.Create(GradTabControl1) do
|
|
|
|
begin
|
|
|
|
Top := 0;
|
|
|
|
Height:=30;
|
|
|
|
Left := 2;
|
|
|
|
Caption := 'Tab1';
|
|
|
|
Name := 'Tab1';
|
|
|
|
Parent := GradTabControl1;
|
|
|
|
BorderSides:=BorderSides-[bsBottomLine];
|
|
|
|
OnClick:=@GradTabControl1.TabButtonClick;
|
|
|
|
end;
|
|
|
|
|
|
|
|
with TGradButton.Create(GradTabControl1) do
|
|
|
|
begin
|
|
|
|
Top := 3;
|
|
|
|
Height:=27;
|
|
|
|
Left := 82;
|
|
|
|
Caption := 'Tab2';
|
|
|
|
Name := 'Tab2';
|
|
|
|
Parent := GradTabControl1;
|
|
|
|
Color := clGreen;
|
|
|
|
BorderSides:=BorderSides-[bsBottomLine];
|
|
|
|
OnClick:=@GradTabControl1.TabButtonClick;
|
|
|
|
end;
|
|
|
|
|
|
|
|
with TGradTabPage.Create(GradTabControl1) do
|
|
|
|
begin
|
|
|
|
Name := 'page1';
|
|
|
|
Left := 2;
|
|
|
|
Top := 32;
|
|
|
|
Width:=496;
|
|
|
|
Height:=466;
|
|
|
|
Color:=clBlue;
|
|
|
|
Parent:=GradTabControl1;
|
|
|
|
Align:=alClient;
|
|
|
|
end;
|
|
|
|
|
|
|
|
with TGradTabPage.Create(GradTabControl1) do
|
|
|
|
begin
|
|
|
|
Name := 'page2';
|
|
|
|
Left := 2;
|
|
|
|
Top := 32;
|
|
|
|
Width:=496;
|
|
|
|
Height:=466;
|
|
|
|
Color:=clGreen;
|
|
|
|
Visible:=false;
|
|
|
|
Parent:=GradTabControl1;
|
|
|
|
Align:=alClient;
|
|
|
|
end; }
|
|
|
|
|
|
|
|
{WriteLn(GradTabControl1.Tabs.Add('tab_0'));
|
|
|
|
ComboBox1.Items.Add('tab_0');
|
|
|
|
|
|
|
|
WriteLn(GradTabControl1.Tabs.Add('tab_1'));
|
|
|
|
ComboBox1.Items.Add('tab_1');
|
|
|
|
}//WriteLn(GradTabControl1.Tabs.Add('BLA2'));
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
GradButton3.PopupMenu := PopupMenu1;
|
|
|
|
|
|
|
|
WriteLn(BoolToStr(GradTabControl1.Pages[0] <> nil,true));
|
|
|
|
|
2008-10-08 20:15:45 +00:00
|
|
|
NewPageBtn.Parent := GradTabControl1.Pages[0];
|
2008-08-10 18:23:45 +00:00
|
|
|
BitBtn1.Parent := GradTabControl1.Pages[0];
|
|
|
|
}
|
|
|
|
//GradButton3Click(GradButton3);
|
|
|
|
//GradButton3Click(GradButton3);
|
|
|
|
|
|
|
|
{TestPage := TGradTabPage(GradTabControl1.PageList.Items[0]);
|
|
|
|
Memo1.Lines.Add(TestPage.Name+' '+TestPage.Caption);
|
|
|
|
//GradTabControl1.Tabs.Text:='a';
|
|
|
|
|
|
|
|
Memo1.Parent := GradTabControl1.Pages[0];
|
|
|
|
Memo1.Align:=alClient;
|
|
|
|
Memo1.Lines.Add(TestPage.Name+' '+TestPage.Caption);
|
|
|
|
}
|
|
|
|
|
|
|
|
{TestPage.Name:='GradTabPage1';
|
|
|
|
TestPage.Caption:='GradTabPage1';
|
|
|
|
TestPage.Parent := GradTabControl1;
|
|
|
|
}
|
|
|
|
//ComboBox1.Items.AddStrings(GradTabControl1.Tabs);
|
|
|
|
//ComboBox1.Items.Add('a');
|
|
|
|
//ComboBox1.Items.Add('GradTabPage1');
|
|
|
|
|
|
|
|
FControlWidth:=247;
|
|
|
|
FLastIndex:=1;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TForm1.Button1Click(Sender: TObject);
|
|
|
|
begin
|
|
|
|
(GradTabControl1.ControlByName('page1') as TGradTabPage).Align:=alClient;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TForm1.Button2Click(Sender: TObject);
|
|
|
|
begin
|
|
|
|
GradTabControl1.Tabs.Add('No2');
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TForm1.CheckBox1Click(Sender: TObject);
|
|
|
|
begin
|
|
|
|
GradTabControl1.LongWidth:=SpinEdit1.Value;
|
|
|
|
GradTabControl1.LongTabs:=CheckBox1.Checked;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TForm1.ComboBox1Change(Sender: TObject);
|
|
|
|
begin
|
|
|
|
GradTabControl1.CurrentPageNum:=GradTabControl1.Tabs.IndexOf(ComboBox1.Text);
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TForm1.FormDestroy(Sender: TObject);
|
|
|
|
begin
|
|
|
|
GradTabControl1.Free;
|
|
|
|
end;
|
|
|
|
|
2008-10-08 20:15:45 +00:00
|
|
|
procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
|
|
|
|
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
|
|
|
|
begin
|
|
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TForm1.FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
|
|
|
|
MousePos: TPoint; var Handled: Boolean);
|
|
|
|
begin
|
|
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TForm1.FormMouseWheelUp(Sender: TObject; Shift: TShiftState;
|
|
|
|
MousePos: TPoint; var Handled: Boolean);
|
|
|
|
begin
|
|
|
|
|
|
|
|
end;
|
|
|
|
|
2008-08-10 18:23:45 +00:00
|
|
|
procedure TForm1.GradButton1Click(Sender: TObject);
|
|
|
|
begin
|
|
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TForm1.GradButton1MouseDown(Sender: TObject; Button: TMouseButton;
|
|
|
|
Shift: TShiftState; X, Y: Integer);
|
|
|
|
begin
|
|
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TForm1.GradButton1MouseEnter(Sender: TObject);
|
|
|
|
begin
|
|
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TForm1.GradButton1MouseLeave(Sender: TObject);
|
|
|
|
begin
|
|
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TForm1.GradButton1MouseMove(Sender: TObject; Shift: TShiftState; X,
|
|
|
|
Y: Integer);
|
|
|
|
begin
|
|
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TForm1.GradButton1MouseUp(Sender: TObject; Button: TMouseButton;
|
|
|
|
Shift: TShiftState; X, Y: Integer);
|
|
|
|
begin
|
|
|
|
|
|
|
|
end;
|
|
|
|
|
2008-10-08 20:15:45 +00:00
|
|
|
procedure TForm1.DeleteBtnClick(Sender: TObject);
|
2008-08-10 18:23:45 +00:00
|
|
|
var
|
|
|
|
C : Integer;
|
2008-10-08 20:15:45 +00:00
|
|
|
T : String;
|
2008-08-10 18:23:45 +00:00
|
|
|
begin
|
2008-10-08 20:15:45 +00:00
|
|
|
T := ComboBox1.Text;
|
|
|
|
C := GradTabControl1.Tabs.IndexOf(T);
|
|
|
|
|
|
|
|
DebugLn('Text=%s Index=%d',[T,ComboBox1.Items.IndexOf(T)]);
|
|
|
|
|
|
|
|
if (C < GradTabControl1.PageList.Count) AND (GradTabControl1.PageList.Count<>0) then
|
|
|
|
begin
|
|
|
|
ComboBox1.Items.Delete(ComboBox1.Items.IndexOf(T));
|
|
|
|
GradTabControl1.Tabs.Delete(C);
|
|
|
|
|
|
|
|
end;
|
2008-08-10 18:23:45 +00:00
|
|
|
end;
|
|
|
|
|
2008-10-04 23:45:02 +00:00
|
|
|
procedure TForm1.BewegeBtn(Sender: TObject);
|
2008-08-10 18:23:45 +00:00
|
|
|
var
|
|
|
|
C,R,G,B : Integer;
|
2008-10-08 20:15:45 +00:00
|
|
|
newName : String;
|
2008-08-10 18:23:45 +00:00
|
|
|
begin
|
2008-10-08 20:15:45 +00:00
|
|
|
C := -1;
|
|
|
|
|
|
|
|
repeat
|
|
|
|
Inc(C);
|
|
|
|
newName := 'tab_'+IntToStr(C);
|
|
|
|
until(GradTabControl1.Tabs.IndexOf(newName)=-1);
|
|
|
|
GradTabControl1.Tabs.Add(newName);
|
2008-10-04 23:45:02 +00:00
|
|
|
|
2008-08-10 18:23:45 +00:00
|
|
|
Randomize;
|
2008-10-04 23:45:02 +00:00
|
|
|
|
2008-08-10 18:23:45 +00:00
|
|
|
R := Random(255)+1;
|
|
|
|
G := Random(255)+1;
|
|
|
|
B := Random(255)+1;
|
2008-10-04 23:45:02 +00:00
|
|
|
|
2008-08-10 18:23:45 +00:00
|
|
|
//WriteLn(R, ' ', G, ' ', B, ColorToString(RGBToColor(R,G,B)));
|
2008-10-08 20:15:45 +00:00
|
|
|
GradTabControl1.ActivePage.Caption:='tab_'+IntToStr(C);
|
2008-10-05 17:29:37 +00:00
|
|
|
//GradTabControl1.CurrentPage.Color:=RGBToColor(R, G, B);
|
2008-10-08 20:15:45 +00:00
|
|
|
GradTabControl1.ActivePage.TabPopupMenu := PopupMenu1;
|
|
|
|
GradTabControl1.ActivePage.PopupMenu:= PopupMenu1;
|
2008-10-04 23:45:02 +00:00
|
|
|
|
2008-08-10 18:23:45 +00:00
|
|
|
ComboBox1.ItemIndex:=ComboBox1.Items.Add('tab_'+IntToStr(C));
|
|
|
|
end;
|
|
|
|
|
2008-10-04 23:45:02 +00:00
|
|
|
procedure TForm1.GradButton3Click(Sender: TObject);
|
|
|
|
var
|
|
|
|
C : Integer;
|
|
|
|
begin
|
|
|
|
GradTabControl1.PagesBar.MoveTo(50);
|
|
|
|
for C := 50 downto -20 do
|
|
|
|
begin
|
|
|
|
GradTabControl1.PagesBar.MoveTo(-1);
|
|
|
|
Sleep(5);
|
|
|
|
Application.ProcessMessages;
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
2008-08-10 18:23:45 +00:00
|
|
|
procedure TForm1.GradButton4Click(Sender: TObject);
|
|
|
|
begin
|
2008-10-04 23:45:02 +00:00
|
|
|
GradTabControl1.PagesBar.MoveToNorm;
|
2008-08-10 18:23:45 +00:00
|
|
|
end;
|
|
|
|
|
2008-10-08 20:15:45 +00:00
|
|
|
procedure TForm1.GradTabControl1DragDrop(Sender, Source: TObject; X, Y: Integer
|
|
|
|
);
|
|
|
|
begin
|
|
|
|
DebugLn('DragDrop X=%d Y=%d',[X,Y]);
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TForm1.GradTabControl1DragOver(Sender, Source: TObject; X,
|
|
|
|
Y: Integer; State: TDragState; var Accept: Boolean);
|
|
|
|
begin
|
|
|
|
DebugLn('Name=%s',[Sender.ClassName]);
|
|
|
|
if (Sender is TGradTabControl) then Accept := True;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TForm1.GradTabControl1MouseDown(Sender: TObject;
|
|
|
|
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
|
|
|
begin
|
|
|
|
ShowMessage('Jep');
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TForm1.GradTabControl1MouseMove(Sender: TObject; Shift: TShiftState;
|
|
|
|
X, Y: Integer);
|
|
|
|
begin
|
|
|
|
DebugLn('X=%d Y=%d',[X,Y]);
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TForm1.GradTabControl1MouseWheelDown(Sender: TObject;
|
|
|
|
Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
|
|
|
|
var
|
|
|
|
NewNum : Integer;
|
|
|
|
begin
|
|
|
|
NewNum:= GradTabControl1.CurrentPageNum;
|
|
|
|
Inc(NewNum);
|
|
|
|
GradTabControl1.CurrentPageNum:=NewNum;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TForm1.GradTabControl1MouseWheelUp(Sender: TObject;
|
|
|
|
Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
|
|
|
|
var
|
|
|
|
NewNum : Integer;
|
|
|
|
begin
|
|
|
|
NewNum:= GradTabControl1.CurrentPageNum;
|
|
|
|
Dec(NewNum);
|
|
|
|
GradTabControl1.CurrentPageNum:=NewNum;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TForm1.GradTabControl1PageChanged(Sender: TObject);
|
|
|
|
begin
|
|
|
|
with GradTabControl1 do
|
|
|
|
ComboBox1.Text:=Tabs[CurrentPageNum];
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TForm1.GradTabControl1PagesBarDragOver(Sender, Source: TObject; X,
|
|
|
|
Y: Integer; State: TDragState; var Accept: Boolean);
|
|
|
|
begin
|
|
|
|
DebugLn('Name=%s',[Sender.ClassName]);
|
|
|
|
if (Sender is TGradTabPagesBar) then Accept := True;
|
|
|
|
end;
|
|
|
|
|
2008-08-10 18:23:45 +00:00
|
|
|
procedure TForm1.GradTabControl1TabButtonClick(GradTabControl: TGradTabControl;
|
|
|
|
AIndex: Integer);
|
|
|
|
begin
|
2008-10-08 20:15:45 +00:00
|
|
|
//ShowMessage('TabClicked: Index: '+IntToStr(AIndex)+' Caption: '+GradTabControl.Page[AIndex].Caption);
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TForm1.GradTabControl1TabButtonMouseDown(
|
|
|
|
GradTabControl: TGradTabControl; Button: TMouseButton; Shift: TShiftState; X,
|
|
|
|
Y, AIndex: Integer);
|
|
|
|
begin
|
|
|
|
if ssCtrl in Shift then
|
|
|
|
GradTabControl1.BeginDrag(False);
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TForm1.GradTabControl1TabButtonMouseMove(
|
|
|
|
GradTabControl: TGradTabControl; Shift: TShiftState; X, Y, AIndex: Integer);
|
|
|
|
var
|
|
|
|
TabRect : TRect;
|
|
|
|
begin
|
|
|
|
//TabRect := GradTabControl.GetTabRect(Aindex);
|
|
|
|
//DebugLn('X=%d Y=%d AIndex=%d',[X+TabRect.Left,Y+TabRect.Top,AIndex]);
|
2008-08-10 18:23:45 +00:00
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TForm1.GradTabControl1TabButtonMouseUp(
|
|
|
|
GradTabControl: TGradTabControl; Button: TMouseButton; Shift: TShiftState; X,
|
|
|
|
Y, AIndex: Integer);
|
|
|
|
begin
|
2008-10-08 20:15:45 +00:00
|
|
|
//ShowMessage('TabMouseUp: Index: '+IntToStr(AIndex)+' Caption: '+GradTabControl.Page[AIndex].Caption);
|
2008-08-10 18:23:45 +00:00
|
|
|
|
|
|
|
if Button=mbMiddle then
|
|
|
|
begin
|
|
|
|
//GradTabControl.Tabs.Delete(AIndex);
|
|
|
|
GradTabControl.Page[AIndex].Free;
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TForm1.GradTabControl2TabButtonClick(GradTabControl: TGradTabControl;
|
|
|
|
AIndex: Integer);
|
|
|
|
begin
|
|
|
|
if AIndex = FLastIndex then
|
|
|
|
begin
|
|
|
|
if GradTabControl.Width=GradTabControl.TabHeight then
|
|
|
|
GradTabControl.Width:=FControlWidth
|
|
|
|
else
|
|
|
|
GradTabControl.Width:=GradTabControl.TabHeight;
|
|
|
|
|
|
|
|
end else begin
|
|
|
|
GradTabControl.Width:=FControlWidth;
|
|
|
|
FLastIndex:=AIndex;
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
2008-10-08 20:15:45 +00:00
|
|
|
procedure TForm1.PageControl1DragDrop(Sender, Source: TObject; X, Y: Integer);
|
|
|
|
const
|
|
|
|
TCM_GETITEMRECT = $130A;
|
|
|
|
var
|
|
|
|
TabRect: TRect;
|
|
|
|
j: Integer;
|
|
|
|
begin
|
|
|
|
if (Sender is TGradTabControl) then
|
|
|
|
for j := 0 to GradTabControl1.PageCount - 1 do
|
|
|
|
begin
|
|
|
|
//GradTabControl1.Perform(TCM_GETITEMRECT, j, LParam(@TabRect)) ;
|
|
|
|
TabRect := GradTabControl1.GetTabRect(j);
|
|
|
|
DebugLn('X=%d Y=%d T.L=%d T.T=%d T.R=%d T.B=%d',[X,Y,TabRect.Left, TabRect.Top, TabRect.Right, TabRect.Bottom]);
|
|
|
|
if PtInRect(TabRect, Point(X, Y)) then
|
|
|
|
begin
|
|
|
|
if GradTabControl1.ActivePage.PageIndex <> j then
|
|
|
|
GradTabControl1.ActivePage.PageIndex := j;
|
|
|
|
Exit;
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TForm1.PageControl1DragOver(Sender, Source: TObject; X, Y: Integer;
|
|
|
|
State: TDragState; var Accept: Boolean);
|
|
|
|
begin
|
|
|
|
DebugLn('Name=%s',[Sender.ClassName]);
|
|
|
|
if (Sender is TGradTabControl) then Accept := True;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TForm1.PageControl1MouseDown(Sender: TObject; Button: TMouseButton;
|
|
|
|
Shift: TShiftState; X, Y: Integer);
|
|
|
|
begin
|
|
|
|
PageControl1.BeginDrag(False) ;
|
|
|
|
end;
|
|
|
|
|
2008-10-04 23:45:02 +00:00
|
|
|
procedure TForm1.Panel2Click(Sender: TObject);
|
|
|
|
begin
|
|
|
|
|
|
|
|
end;
|
|
|
|
|
2008-08-10 18:23:45 +00:00
|
|
|
procedure TForm1.RadioGroup1Click(Sender: TObject);
|
|
|
|
begin
|
|
|
|
case RadioGroup1.ItemIndex of
|
|
|
|
0: GradTabControl1.TabPosition := tpTop;
|
|
|
|
1: GradTabControl1.TabPosition := tpBottom;
|
|
|
|
2: GradTabControl1.TabPosition := tpLeft;
|
|
|
|
3: GradTabControl1.TabPosition := tpRight;
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TForm1.SpinEdit1EditingDone(Sender: TObject);
|
|
|
|
begin
|
|
|
|
GradTabControl1.LongWidth:=SpinEdit1.Value;
|
|
|
|
end;
|
|
|
|
|
2008-10-04 23:45:02 +00:00
|
|
|
procedure TForm1.SpinEdit2Change(Sender: TObject);
|
|
|
|
begin
|
|
|
|
GradTabControl1.MoveIncrement:=SpinEdit2.Value;
|
|
|
|
end;
|
|
|
|
|
2008-08-10 18:23:45 +00:00
|
|
|
|
|
|
|
|
|
|
|
initialization
|
|
|
|
{$I unit1.lrs}
|
|
|
|
|
|
|
|
end.
|
|
|
|
|