lazarus-ccr/components/industrialstuff/Example/MultiSliderSample/main.pas
wp_xxyyzz 6b58ffe795 industrial: Add MultiSlider component.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6850 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2019-04-21 21:18:00 +00:00

181 lines
4.6 KiB
ObjectPascal

unit main;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ColorBox,
Spin, ExtCtrls, switches, indSliders;
type
{ TForm1 }
TForm1 = class(TForm)
cbSliderColor: TColorButton;
cbVertical: TCheckBox;
cbAutoRotate: TCheckBox;
cbColorBelow: TColorButton;
cbColorBetween: TColorButton;
cbColorAbove: TColorButton;
cbFlat: TCheckBox;
cbEnabled: TCheckBox;
cbTransparent: TCheckBox;
cbFormColor: TColorButton;
cmbThumbStyle: TComboBox;
cbColorThumb: TColorButton;
cmbSliderMode: TComboBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
seTrackThickness: TSpinEdit;
seDefaultSize: TSpinEdit;
procedure cbAutoRotateChange(Sender: TObject);
procedure cbColorAboveColorChanged(Sender: TObject);
procedure cbColorBelowColorChanged(Sender: TObject);
procedure cbColorBetweenColorChanged(Sender: TObject);
procedure cbColorThumbColorChanged(Sender: TObject);
procedure cbEnabledChange(Sender: TObject);
procedure cbFlatChange(Sender: TObject);
procedure cbSliderColorColorChanged(Sender: TObject);
procedure cmbSliderModeChange(Sender: TObject);
procedure cmbThumbStyleChange(Sender: TObject);
procedure cbTransparentChange(Sender: TObject);
procedure cbVerticalChange(Sender: TObject);
procedure cbFormColorColorChanged(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure seDefaultSizeChange(Sender: TObject);
procedure seTrackThicknessChange(Sender: TObject);
private
slider: TMultiSlider;
procedure PositionChangeHandler(Sender: TObject; AKind: TThumbKind; AValue: Integer);
public
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
slider := TMultiSlider.Create(self);
slider.Parent := self;
slider.Align := alTop;
slider.BorderSpacing.Around := 8;
// slider.Left := 8;
// slider.Top := 8;
slider.Vertical := false;
slider.OnPositionChange := @PositionChangeHandler;
cbColorBelow.ButtonColor := slider.ColorBelow;
cbColorAbove.ButtonColor := slider.ColorAbove;
cbColorBetween.ButtonColor := slider.ColorBetween;
cbColorThumb.ButtonColor := slider.ColorThumb;
cbSliderColor.ButtonColor := slider.Color;
cbFormColor.ButtonColor := Color;
cbTransparent.Checked := slider.Color = clNone;
seTrackThickness.Value := slider.TrackThickness;
seDefaultSize.Value := slider.DefaultSize;
cmbSliderMode.ItemIndex := ord(slider.SliderMode);
end;
procedure TForm1.seDefaultSizeChange(Sender: TObject);
begin
slider.DefaultSize := seDefaultSize.Value;
end;
procedure TForm1.seTrackThicknessChange(Sender: TObject);
begin
slider.TrackThickness := seTrackThickness.Value;
end;
procedure TForm1.cbVerticalChange(Sender: TObject);
begin
slider.Vertical := cbVertical.Checked;
if slider.Vertical then slider.Align := alLeft else slider.Align := alTop;
end;
procedure TForm1.cbFormColorColorChanged(Sender: TObject);
begin
Color := cbFormColor.ButtonColor;
end;
procedure TForm1.cbColorThumbColorChanged(Sender: TObject);
begin
slider.ColorThumb := cbColorThumb.ButtonColor;
end;
procedure TForm1.cbAutoRotateChange(Sender: TObject);
begin
slider.AutoRotate := cbAutoRotate.Checked;
end;
procedure TForm1.cbColorAboveColorChanged(Sender: TObject);
begin
slider.ColorAbove := cbColorAbove.ButtonColor;
end;
procedure TForm1.cbColorBelowColorChanged(Sender: TObject);
begin
slider.ColorBelow := cbColorBelow.ButtonColor;
end;
procedure TForm1.cbColorBetweenColorChanged(Sender: TObject);
begin
slider.ColorBetween := cbColorBetween.ButtonColor;
end;
procedure TForm1.cbSliderColorColorChanged(Sender: TObject);
begin
slider.Color := cbSliderColor.ButtonColor;
end;
procedure TForm1.cmbSliderModeChange(Sender: TObject);
begin
slider.SliderMode := TSliderMode(cmbSliderMode.ItemIndex);
end;
procedure TForm1.cbEnabledChange(Sender: TObject);
begin
slider.Enabled := cbEnabled.Checked;
end;
procedure TForm1.cbFlatChange(Sender: TObject);
begin
slider.Flat := cbFlat.Checked;
end;
procedure TForm1.cmbThumbStyleChange(Sender: TObject);
begin
slider.ThumbStyle := TThumbStyle(cmbThumbStyle.ItemIndex);
end;
procedure TForm1.cbTransparentChange(Sender: TObject);
begin
if cbTransparent.Checked then
slider.Color := clNone;
end;
procedure TForm1.PositionChangeHandler(Sender: TObject; AKind: TThumbKind;
AValue: Integer);
begin
case AKind of
tkMin: Label1.Caption := 'Min = ' + intToStr(AValue);
tkValue: Label2.Caption := 'Value = ' + IntToStr(AValue);
tkMax: Label3.Caption := 'Max = ' + IntToStr(AValue);
end;
end;
end.