/examples/taborder.pas
http://github.com/graemeg/lazarus · Pascal · 156 lines · 125 code · 26 blank · 5 comment · 4 complexity · 546259299c122826b87d911b2738e2a7 MD5 · raw file
- program TabOrder;
- {$mode objfpc}{$H+}
- uses
- Interfaces, Classes, SysUtils, Forms, Controls, Buttons, StdCtrls, ExtCtrls,
- ComCtrls;
- type
- { TForm1 }
- TForm1 = class(TForm)
- PageCtrl: TPageControl;
- CloseButton: TButton;
- Edit1: TEdit;
- Edit2: TEdit;
- Label1: TLabel;
- public
- constructor Create(TheOwner: TComponent); override;
- procedure CloseButtonClick(Sender: TObject);
- procedure WriteTabOrder;
- end;
- { TForm1 }
- constructor TForm1.Create(TheOwner: TComponent);
- procedure CreatePage1;
- begin
- Label1:=TLabel.Create(Self);
- with Label1 do begin
- Name:='Label1';
- Parent:=PageCtrl.Page[0];
- SetBounds(10,10,250,Height);
- Caption:='TabOrder: First Edit below, then Edit above';
- end;
-
- Edit1:=TEdit.Create(Self);
- with Edit1 do begin
- Name:='Edit1';
- Parent:=PageCtrl.Page[0];
- SetBounds(10,40,100,Height);
- end;
- Edit2:=TEdit.Create(Self);
- with Edit2 do begin
- Name:='Edit2';
- Parent:=PageCtrl.Page[0];
- SetBounds(10,70,100,Height);
- end;
-
- // define Taborder
- Edit2.TabStop:=true;
- Edit2.TabOrder:=0;
- Edit1.TabStop:=true;
- Edit1.TabOrder:=1;
- end;
- procedure CreatePage2;
- begin
- end;
- procedure CreatePage3;
- begin
- end;
- var
- i: integer;
- begin
- inherited CreateNew(TheOwner, 1);
- Name:='Form1';
- Position:=poScreenCenter;
- SetInitialBounds(0,0,400,300);
-
- PageCtrl:=TPageControl.Create(Self);
- with PageCtrl do begin
- Name:='PageCtrl';
- Parent:=Self;
- Align:=alTop;
- Height:=Parent.ClientHeight-40;
-
- 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;
-
- CloseButton:=TButton.Create(Self);
- with CloseButton do begin
- Name:='CloseButton';
- Parent:=Self;
- Caption:='Close';
- Anchors:=[akRight,akBottom];
- SetBounds(Parent.ClientWidth-110,Parent.ClientHeight-35,100,Height);
- OnClick:=@CloseButtonClick;
- end;
-
- CreatePage1;
- CreatePage2;
- CreatePage3;
-
- // define TabOrder
- CloseButton.TabStop:=true;
- CloseButton.TabOrder:=0;
- 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);
- var
- i: Integer;
- begin
- write(Prefix,AControl.Name);
- if AControl is TWinControl then
- write(' TabOrder=',TWinControl(AControl).TabOrder,
- ' TabStop=',TWinControl(AControl).TabStop);
- writeln('');
- if AControl is TWinControl then
- for i:=0 to TWinControl(AControl).ControlCount-1 do begin
- WriteTabOrderTree(Prefix+' ',TWinControl(AControl).Controls[i]);
- end;
- end;
- begin
- WriteTabOrderTree('',Self);
- end;
- var
- Form1: TForm1;
- begin
- Application.Initialize;
- Application.CreateForm(TForm1,Form1);
- Application.Run;
- end.