diff --git a/examples/taborder.lpi b/examples/taborder.lpi index 55ebb6d7e5..0f5fc76389 100644 --- a/examples/taborder.lpi +++ b/examples/taborder.lpi @@ -1,28 +1,18 @@ - - + + - - + - - - - - - - - - - - - + + + @@ -40,23 +30,36 @@ + + + + + + + + + + + + + + + - + - + - - - - - - - - - - + + + + + + + + diff --git a/examples/taborder.pas b/examples/taborder.pas index cbd8735014..f1760f1022 100644 --- a/examples/taborder.pas +++ b/examples/taborder.pas @@ -3,23 +3,22 @@ program TabOrder; {$mode objfpc}{$H+} uses - Interfaces, Classes, SysUtils, Forms, Controls, Buttons, StdCtrls, ExtCtrls; + Interfaces, Classes, SysUtils, Forms, Controls, Buttons, StdCtrls, ExtCtrls, + ComCtrls; type { TForm1 } TForm1 = class(TForm) - NoteBook: TNotebook; - Page1: TPage; - Page2: TPage; - Page3: TPage; + PageCtrl: TPageControl; CloseButton: TButton; Edit1: TEdit; Edit2: TEdit; Label1: TLabel; public constructor Create(TheOwner: TComponent); override; + procedure CloseButtonClick(Sender: TObject); procedure WriteTabOrder; end; @@ -32,7 +31,7 @@ constructor TForm1.Create(TheOwner: TComponent); Label1:=TLabel.Create(Self); with Label1 do begin Name:='Label1'; - Parent:=Page1; + Parent:=PageCtrl.Page[0]; SetBounds(10,10,250,Height); Caption:='TabOrder: First Edit below, then Edit above'; end; @@ -40,14 +39,14 @@ constructor TForm1.Create(TheOwner: TComponent); Edit1:=TEdit.Create(Self); with Edit1 do begin Name:='Edit1'; - Parent:=Page1; + Parent:=PageCtrl.Page[0]; SetBounds(10,40,100,Height); end; Edit2:=TEdit.Create(Self); with Edit2 do begin Name:='Edit2'; - Parent:=Page1; + Parent:=PageCtrl.Page[0]; SetBounds(10,70,100,Height); end; @@ -66,31 +65,28 @@ constructor TForm1.Create(TheOwner: TComponent); begin end; +var + i: integer; begin - inherited Create(TheOwner); + inherited CreateNew(TheOwner, 1); Name:='Form1'; Position:=poScreenCenter; SetInitialBounds(0,0,400,300); - NoteBook:=TNotebook.Create(Self); - with NoteBook do begin - Name:='NoteBook'; + PageCtrl:=TPageControl.Create(Self); + with PageCtrl do begin + Name:='PageCtrl'; Parent:=Self; Align:=alTop; Height:=Parent.ClientHeight-40; - Pages.Add('Page1'); - Page1:=Page[0]; - Page1.Name:='Page1'; - - Pages.Add('Page2'); - Page2:=Page[1]; - Page2.Name:='Page2'; - - Pages.Add('Page3'); - Page3:=Page[2]; - Page3.Name:='Page3'; - + for i:=1 to 3 do + with TTabSheet.Create(PageCtrl) do + begin + PageControl:=PageCtrl; + Name:='Page'+IntToStr(i); + Caption:=Name; + end; Anchors:=[akLeft,akTop,akRight,akBottom]; PageIndex:=0; end; @@ -102,7 +98,7 @@ begin Caption:='Close'; Anchors:=[akRight,akBottom]; SetBounds(Parent.ClientWidth-110,Parent.ClientHeight-35,100,Height); - ModalResult:=mrCancel; + OnClick:=@CloseButtonClick; end; CreatePage1; @@ -112,18 +108,23 @@ begin // define TabOrder CloseButton.TabStop:=true; CloseButton.TabOrder:=0; - NoteBook.TabStop:=true; - NoteBook.TabOrder:=1; - Page1.TabStop:=true; - Page1.TabOrder:=2; - Page2.TabStop:=true; - Page2.TabOrder:=3; - Page3.TabStop:=true; - Page3.TabOrder:=4; + PageCtrl.TabStop:=true; + PageCtrl.TabOrder:=1; + PageCtrl.Page[0].TabStop:=true; + PageCtrl.Page[0].TabOrder:=2; + PageCtrl.Page[1].TabStop:=true; + PageCtrl.Page[1].TabOrder:=3; + PageCtrl.Page[2].TabStop:=true; + PageCtrl.Page[2].TabOrder:=4; WriteTabOrder; end; +procedure TForm1.CloseButtonClick(Sender: TObject); +begin + Close; +end; + procedure TForm1.WriteTabOrder; procedure WriteTabOrderTree(const Prefix: string; AControl: TControl);