Examples, TabOrder: fixed to use TPageControl, made 'Close' button work

git-svn-id: trunk@29583 -
This commit is contained in:
maxim 2011-02-16 23:13:04 +00:00
parent 11a403bf19
commit a6d35d4624
2 changed files with 65 additions and 61 deletions

View File

@ -1,28 +1,18 @@
<?xml version="1.0"?>
<CONFIG>
<ProjectOptions>
<PathDelim Value="/"/>
<Version Value="5"/>
<Version Value="9"/>
<General>
<Flags>
<SaveOnlyProjectUnits Value="True"/>
<LRSInOutputDirectory Value="False"/>
</Flags>
<MainUnit Value="0"/>
<TargetFileExt Value=""/>
<ActiveEditorIndexAtStart Value="0"/>
<ActiveWindowIndexAtStart Value="0"/>
</General>
<Units Count="1">
<Unit0>
<CursorPos X="12" Y="33"/>
<EditorIndex Value="0"/>
<Filename Value="taborder.pas"/>
<IsPartOfProject Value="True"/>
<Loaded Value="True"/>
<TopLine Value="1"/>
<UnitName Value="TabOrder"/>
<UsageCount Value="20"/>
</Unit0>
</Units>
<BuildModes Count="1">
<Item1 Name="default" Default="True"/>
</BuildModes>
<PublishOptions>
<Version Value="2"/>
<IgnoreBinaries Value="False"/>
@ -40,23 +30,36 @@
<PackageName Value="LCL"/>
</Item1>
</RequiredPackages>
<Units Count="1">
<Unit0>
<Filename Value="taborder.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="TabOrder"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="0"/>
<WindowIndex Value="0"/>
<TopLine Value="44"/>
<CursorPos X="19" Y="78"/>
<UsageCount Value="21"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
</Unit0>
</Units>
</ProjectOptions>
<CompilerOptions>
<Version Value="5"/>
<Version Value="10"/>
<SearchPaths>
<SrcPath Value="$(LazarusDir)/lcl/;$(LazarusDir)/lcl/interfaces/$(LCLWidgetType)/"/>
<SrcPath Value="$(LazarusDir)/lcl;$(LazarusDir)/lcl/interfaces/$(LCLWidgetType)"/>
</SearchPaths>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>
<Linking>
<Options>
<Win32>
<GraphicApplication Value="True"/>
</Win32>
</Options>
</Linking>
<Parsing>
<SyntaxOptions>
<UseAnsiStrings Value="False"/>
</SyntaxOptions>
</Parsing>
<Other>
<CompilerMessages>
<UseMsgFile Value="True"/>
</CompilerMessages>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>

View File

@ -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);