- Gave the buttons descriptive captions

- Improved code formatting
- Added labels that display the current Scrollbar Min, Max, and Position
- Modified the form width so that Scrollbar1 is fully visible in both orientations (vertical and horizontal)
from issue #26474, Jack Linke

git-svn-id: trunk@45882 -
This commit is contained in:
mattias 2014-07-15 20:06:31 +00:00
parent 91cc270510
commit 9af8b618ac
2 changed files with 182 additions and 114 deletions

View File

@ -1,28 +1,19 @@
<?xml version="1.0"?> <?xml version="1.0" encoding="UTF-8"?>
<CONFIG> <CONFIG>
<ProjectOptions> <ProjectOptions>
<PathDelim Value="/"/> <Version Value="9"/>
<Version Value="5"/>
<General> <General>
<Flags> <Flags>
<SaveOnlyProjectUnits Value="True"/> <SaveClosedFiles Value="False"/>
<SaveJumpHistory Value="False"/>
</Flags> </Flags>
<SessionStorage Value="InIDEConfig"/>
<MainUnit Value="0"/> <MainUnit Value="0"/>
<TargetFileExt Value=""/> <ResourceType Value="res"/>
<ActiveEditorIndexAtStart Value="0"/>
</General> </General>
<Units Count="1"> <BuildModes Count="1">
<Unit0> <Item1 Name="default" Default="True"/>
<CursorPos X="23" Y="48"/> </BuildModes>
<EditorIndex Value="0"/>
<Filename Value="scrollbar.pp"/>
<IsPartOfProject Value="True"/>
<Loaded Value="True"/>
<TopLine Value="25"/>
<UnitName Value="Scrollbar"/>
<UsageCount Value="20"/>
</Unit0>
</Units>
<PublishOptions> <PublishOptions>
<Version Value="2"/> <Version Value="2"/>
<IgnoreBinaries Value="False"/> <IgnoreBinaries Value="False"/>
@ -40,15 +31,24 @@
<PackageName Value="LCL"/> <PackageName Value="LCL"/>
</Item1> </Item1>
</RequiredPackages> </RequiredPackages>
<Units Count="1">
<Unit0>
<Filename Value="scrollbar.pp"/>
<IsPartOfProject Value="True"/>
<UnitName Value="Scrollbar"/>
</Unit0>
</Units>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>
<Version Value="5"/> <Version Value="11"/>
<SearchPaths> <SearchPaths>
<SrcPath Value="$(LazarusDir)/lcl/;$(LazarusDir)/lcl/interfaces/$(LCLWidgetType)/"/> <IncludeFiles Value="$(ProjOutDir)"/>
</SearchPaths> </SearchPaths>
<CodeGeneration> <Parsing>
<Generate Value="Faster"/> <SyntaxOptions>
</CodeGeneration> <UseAnsiStrings Value="False"/>
</SyntaxOptions>
</Parsing>
<Linking> <Linking>
<Options> <Options>
<Win32> <Win32>
@ -56,8 +56,5 @@
</Win32> </Win32>
</Options> </Options>
</Linking> </Linking>
<Other>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions> </CompilerOptions>
</CONFIG> </CONFIG>

View File

@ -1,12 +1,14 @@
{ {
/*************************************************************************** /***************************************************************************
Scrollbar - example Scrollbar - Example
------------------ ------------------
Initial Revision : Thursday Feb 01 2001 Initial Revision : Thursday Feb 01 2001
by Shane Miller by Shane Miller
Second Revision : Saturday Jul 12 2014
by Jack D Linke
***************************************************************************/ ***************************************************************************/
*************************************************************************** ***************************************************************************
@ -43,15 +45,20 @@ type
Button2 : TButton; Button2 : TButton;
Button3 : TButton; Button3 : TButton;
Button4 : TButton; Button4 : TButton;
Procedure Button1Clicked(sender : tobject); Label1 : TLabel;
Procedure Button2Clicked(sender : tobject); Label2 : TLabel;
Procedure Button3Clicked(sender : tobject); Label3 : TLabel;
Procedure Button4Clicked(sender : tobject); LabelMin : TLabel;
Procedure scrollbar1Changed(sender : tobject); LabelMax : TLabel;
LabelPos : TLabel;
Procedure Button1Clicked(Sender : TObject);
Procedure Button2Clicked(Sender : TObject);
Procedure Button3Clicked(Sender : TObject);
Procedure Button4Clicked(Sender : TObject);
Procedure Scrollbar1Changed(Sender : TObject);
procedure Scrollbar1OnScroll(Sender: TObject; ScrollCode: TScrollCode; var ScrollPos: Integer); procedure Scrollbar1OnScroll(Sender: TObject; ScrollCode: TScrollCode; var ScrollPos: Integer);
public public
constructor Create(AOwner: TComponent); override; constructor Create(AOwner: TComponent); override;
Procedure FormKill(Sender : TObject);
protected protected
end; end;
@ -60,113 +67,177 @@ var
constructor TForm1.Create(AOwner: TComponent); constructor TForm1.Create(AOwner: TComponent);
begin begin
inherited CreateNew(AOwner, 1); inherited CreateNew(AOwner, 1);
Caption := 'Scrollbar Demo v0.1'; Caption := 'Scrollbar Demo v0.2';
Height := 350; Height := 350;
Width := 400;
ScrollBar1 := TSCrollBar.Create(self); ScrollBar1 := TSCrollBar.Create(self);
with SCrollbar1 do with Scrollbar1 do
Begin Begin
Parent := self; Parent := Self;
Kind := sbVertical; Kind := sbVertical;
Left := 100; Left := 100;
Top := 50; Top := 50;
Width := 15; Width := 15;
Height := 300; Height := 300;
// align := alRight; Visible := True;
visible := True; OnChange := @scrollbar1Changed;
OnChange := @scrollbar1Changed; OnScroll := @ScrollBar1OnScroll;
OnScroll := @ScrollBar1OnScroll; end;
end;
Button1 := TButton.create(self); Button1 := TButton.create(self);
with Button1 do with Button1 do
begin begin
Parent := self; Parent := self;
Visible := True; Visible := True;
Caption := 'Button1'; Caption := 'Swap Orientation';
onclick := @button1clicked; Onclick := @button1clicked;
Width := 65; Width := 100;
end; end;
Button2 := TButton.create(self); Button2 := TButton.create(self);
with Button2 do with Button2 do
begin begin
Parent := self; Parent := self;
Left := 65; Left := 100;
Visible := True; Visible := True;
Caption := 'Button2'; Caption := 'Min + 20';
onclick := @button2clicked; Onclick := @button2clicked;
Width := 65; Width := 100;
end; end;
Button3 := TButton.create(self); Button3 := TButton.create(self);
with Button3 do with Button3 do
begin begin
Parent := self; Parent := self;
Left := 130; Left := 200;
Visible := True; Visible := True;
Caption := 'Button3'; Caption := 'Max + 25';
onclick := @button3clicked; Onclick := @button3clicked;
Width := 65; Width := 100;
end; end;
Button4 := TButton.create(self); Button4 := TButton.create(self);
with Button4 do with Button4 do
begin begin
Parent := self; Parent := self;
Left := 195; Left := 300;
Visible := True; Visible := True;
Caption := 'Button4'; Caption := 'Position + 5';
onclick := @button4clicked; Onclick := @button4clicked;
Width := 65; Width := 100;
end; end;
Label1 := TLabel.create(self);
with Label1 do
begin
Parent := self;
Left := 125;
Top := 100;
Visible := True;
Caption := 'Scrollbar1.Min = ';
Width := 100;
end;
Label2 := TLabel.create(self);
with Label2 do
begin
Parent := self;
Left := 125;
Top := 130;
Visible := True;
Caption := 'Scrollbar1.Max = ';
Width := 100;
end;
Label3 := TLabel.create(self);
with Label3 do
begin
Parent := self;
Left := 125;
Top := 160;
Visible := True;
Caption := 'Scrollbar1.Position = ';
Width := 100;
end;
LabelMin := TLabel.create(self);
with LabelMin do
begin
Parent := self;
Left := 250;
Top := 100;
Visible := True;
Caption := IntToStr(Scrollbar1.Min);
Width := 100;
end;
LabelMax := TLabel.create(self);
with LabelMax do
begin
Parent := self;
Left := 250;
Top := 130;
Visible := True;
Caption := IntToStr(Scrollbar1.Max);
Width := 100;
end;
LabelPos := TLabel.create(self);
with LabelPos do
begin
Parent := self;
Left := 250;
Top := 160;
Visible := True;
Caption := IntToStr(Scrollbar1.Position);
Width := 100;
end;
end; end;
procedure TForm1.Button1Clicked(Sender : TObject);
procedure TForm1.FormKill(Sender : TObject); begin
Begin
End;
Procedure TForm1.Button1Clicked(sender : tobject);
Begin
debugln('[Button1Clicked]'); debugln('[Button1Clicked]');
if ScrollBar1.Kind = sbHorizontal then if ScrollBar1.Kind = sbHorizontal then
Scrollbar1.Kind := sbVertical else Scrollbar1.Kind := sbVertical else
Scrollbar1.kind := sbHorizontal; Scrollbar1.kind := sbHorizontal;
end; end;
Procedure TForm1.Button2Clicked(sender : tobject); procedure TForm1.Button2Clicked(Sender : TObject);
Begin begin
ScrollBar1.Min := ScrollBar1.Min + 20; ScrollBar1.Min := ScrollBar1.Min + 20;
LabelMin.Caption := IntToStr(ScrollBar1.Min);
end; end;
Procedure TForm1.Button3Clicked(sender : tobject); procedure TForm1.Button3Clicked(Sender : TObject);
Begin begin
ScrollBar1.Max := ScrollBar1.Max + 25; ScrollBar1.Max := ScrollBar1.Max + 25;
LabelMax.Caption := IntToStr(ScrollBar1.Max);
end; end;
Procedure TForm1.Button4Clicked(sender : tobject); procedure TForm1.Button4Clicked(Sender : TObject);
Begin begin
Scrollbar1.Position := ScrollBar1.Position + 5; Scrollbar1.Position := ScrollBar1.Position + 5;
LabelPos.Caption := IntToStr(ScrollBar1.Position);
end; end;
Procedure TForm1.scrollbar1Changed(sender : tobject); procedure TForm1.Scrollbar1Changed(Sender : TObject);
Begin begin
Caption := 'Scrollbar Demo - Position = '+Inttostr(Scrollbar1.Position); LabelMin.Caption := IntToStr(Scrollbar1.Min);
End; LabelMax.Caption := IntToStr(Scrollbar1.Max);
LabelPos.Caption := IntToStr(Scrollbar1.Position);
end;
procedure TForm1.Scrollbar1OnScroll(Sender: TObject; ScrollCode: TScrollCode; var ScrollPos: Integer);
begin
Procedure TForm1.Scrollbar1OnScroll(Sender: TObject; ScrollCode: TScrollCode; var ScrollPos: Integer);
Begin
DebugLn('.............Scrolled...............'); DebugLn('.............Scrolled...............');
End; end;
begin begin
Application.Initialize; { calls InitProcedure which starts up GTK } Application.Initialize; { calls InitProcedure which starts up GTK }
Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm1, Form1);
Application.Run; Application.Run;
end. end.