You've already forked lazarus-ccr
144 lines
3.4 KiB
ObjectPascal
144 lines
3.4 KiB
ObjectPascal
![]() |
unit AnalogSensor_Unit;
|
||
|
|
||
|
{$mode objfpc}{$H+}
|
||
|
|
||
|
interface
|
||
|
|
||
|
uses
|
||
|
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls,
|
||
|
Sensors;
|
||
|
|
||
|
type
|
||
|
|
||
|
{ TForm1 }
|
||
|
|
||
|
TForm1 = class(TForm)
|
||
|
AnalogSensor1: TAnalogSensor;
|
||
|
cbAnalogKind: TComboBox;
|
||
|
cbShowText: TCheckBox;
|
||
|
cbShowLevel: TCheckBox;
|
||
|
clbValueFore: TColorButton;
|
||
|
clbValueYellow: TColorButton;
|
||
|
clbValueRed: TColorButton;
|
||
|
clbBack: TColorButton;
|
||
|
edCaption: TEdit;
|
||
|
GroupBox1: TGroupBox;
|
||
|
lblAnalogKind: TLabel;
|
||
|
lblCaption: TLabel;
|
||
|
SettingsPanel: TPanel;
|
||
|
sbValue: TScrollBar;
|
||
|
sbValueYellow: TScrollBar;
|
||
|
sbValueRed: TScrollBar;
|
||
|
procedure cbAnalogKindChange(Sender: TObject);
|
||
|
procedure cbShowLevelChange(Sender: TObject);
|
||
|
procedure cbShowTextChange(Sender: TObject);
|
||
|
procedure clbValueForeColorChanged(Sender: TObject);
|
||
|
procedure clbValueRedColorChanged(Sender: TObject);
|
||
|
procedure clbValueYellowColorChanged(Sender: TObject);
|
||
|
procedure clbBackClick(Sender: TObject);
|
||
|
procedure edCaptionChange(Sender: TObject);
|
||
|
procedure FormCreate(Sender: TObject);
|
||
|
procedure sbValueYellowChange(Sender: TObject);
|
||
|
procedure sbValueChange(Sender: TObject);
|
||
|
procedure sbValueRedChange(Sender: TObject);
|
||
|
private
|
||
|
procedure UpdateColorState;
|
||
|
|
||
|
public
|
||
|
|
||
|
end;
|
||
|
|
||
|
var
|
||
|
Form1: TForm1;
|
||
|
|
||
|
implementation
|
||
|
|
||
|
{$R *.lfm}
|
||
|
|
||
|
{ TForm1 }
|
||
|
|
||
|
procedure TForm1.cbAnalogKindChange(Sender: TObject);
|
||
|
const
|
||
|
lWIDTH: array[TAnalogKind] of Integer = (250, 250, 60);
|
||
|
lHEIGHT: array[TAnalogKind] of Integer = (150, 70, 250);
|
||
|
begin
|
||
|
AnalogSensor1.AnalogKind := TAnalogKind(cbAnalogKind.ItemIndex);
|
||
|
AnalogSensor1.Width := lWIDTH[AnalogSensor1.AnalogKind];
|
||
|
AnalogSensor1.Height := lHEIGHT[AnalogSensor1.AnalogKind];
|
||
|
end;
|
||
|
|
||
|
procedure TForm1.cbShowLevelChange(Sender: TObject);
|
||
|
begin
|
||
|
AnalogSensor1.ShowLevel := cbShowLevel.Checked;
|
||
|
end;
|
||
|
|
||
|
procedure TForm1.cbShowTextChange(Sender: TObject);
|
||
|
begin
|
||
|
AnalogSensor1.ShowText := cbShowText.Checked;
|
||
|
end;
|
||
|
|
||
|
procedure TForm1.clbBackClick(Sender: TObject);
|
||
|
begin
|
||
|
AnalogSensor1.ColorBack := clbBack.ButtonColor;
|
||
|
end;
|
||
|
|
||
|
procedure TForm1.clbValueForeColorChanged(Sender: TObject);
|
||
|
begin
|
||
|
AnalogSensor1.ColorFore := clbValueFore.ButtonColor;
|
||
|
UpdateColorState;
|
||
|
end;
|
||
|
|
||
|
procedure TForm1.clbValueRedColorChanged(Sender: TObject);
|
||
|
begin
|
||
|
AnalogSensor1.ColorRed := clbValueRed.ButtonColor;
|
||
|
UpdateColorState;
|
||
|
end;
|
||
|
|
||
|
procedure TForm1.clbValueYellowColorChanged(Sender: TObject);
|
||
|
begin
|
||
|
AnalogSensor1.ColorYellow := clbValueYellow.ButtonColor;
|
||
|
UpdateColorState;
|
||
|
end;
|
||
|
|
||
|
procedure TForm1.edCaptionChange(Sender: TObject);
|
||
|
begin
|
||
|
AnalogSensor1.Caption := edCaption.Text;
|
||
|
UpdateColorState;
|
||
|
end;
|
||
|
|
||
|
procedure TForm1.FormCreate(Sender: TObject);
|
||
|
begin
|
||
|
UpdateColorState;
|
||
|
end;
|
||
|
|
||
|
procedure TForm1.sbValueChange(Sender: TObject);
|
||
|
begin
|
||
|
AnalogSensor1.Value := sbValue.Position;
|
||
|
UpdateColorState;
|
||
|
end;
|
||
|
|
||
|
procedure TForm1.sbValueRedChange(Sender: TObject);
|
||
|
begin
|
||
|
AnalogSensor1.ValueRed := sbValueRed.Position;
|
||
|
UpdateColorState;
|
||
|
end;
|
||
|
|
||
|
procedure TForm1.sbValueYellowChange(Sender: TObject);
|
||
|
begin
|
||
|
AnalogSensor1.ValueYellow := sbValueYellow.Position;
|
||
|
UpdateColorState;
|
||
|
end;
|
||
|
|
||
|
procedure TForm1.UpdateColorState;
|
||
|
begin
|
||
|
if AnalogSensor1.Value < AnalogSensor1.ValueRed then
|
||
|
AnalogSensor1.SetColorState(slRED)
|
||
|
else if AnalogSensor1.Value > AnalogSensor1.ValueYellow then
|
||
|
AnalogSensor1.SetColorState(slYELLOW)
|
||
|
else
|
||
|
AnalogSensor1.SetColorState(slUNKNOWN);
|
||
|
end;
|
||
|
|
||
|
end.
|
||
|
|