lazarus-ccr/components/industrialstuff/Example/OnOffSwitch_Knob_Sample/main.pas

67 lines
1.2 KiB
ObjectPascal

unit main;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, MKnob,
switches, A3nalogGauge;
type
{ TMainForm }
TMainForm = class(TForm)
AnalogGauge: TA3nalogGauge;
Edit: TEdit;
Knob: TmKnob;
OnOffSwitch: TOnOffSwitch;
procedure EditEditingDone(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure KnobChange(Sender: TObject; AValue: Longint);
procedure OnOffSwitchChange(Sender: TObject);
private
public
end;
var
MainForm: TMainForm;
implementation
{$R *.lfm}
{ TMainForm }
procedure TMainForm.EditEditingDone(Sender: TObject);
var
s: String;
begin
s := Edit.Text;
while (s <> '') and not (s[Length(s)] in ['0'..'9']) do
SetLength(s, Length(s)-1);
Knob.Position := StrToInt(s);
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
Knob.Position := 40;
end;
procedure TMainForm.KnobChange(Sender: TObject; AValue: Longint);
begin
AnalogGauge.Position := Knob.Position;
Edit.Text := IntToStr(Knob.Position) + ' V';
end;
procedure TMainForm.OnOffSwitchChange(Sender: TObject);
begin
Knob.AllowUserDrag := OnOffSwitch.Checked
end;
end.