Files
lazarus-ccr/components/industrialstuff/Example/LCDDisplay/untmain.pas

244 lines
6.4 KiB
ObjectPascal
Raw Normal View History

unit untMain;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls,
Spin, indLCDDisplay;
type
{ TfrmMain }
TfrmMain = class(TForm)
btnSaveCharDefs: TButton;
btnLoadCharDefs: TButton;
cbAutoSize: TCheckBox;
cbCharSpace: TCheckBox;
cbtFrameColor: TColorButton;
cbtBoardColor: TColorButton;
cbtDotONColor: TColorButton;
cbtDotOFFColor: TColorButton;
cbColorSchemes: TComboBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
mmText: TMemo;
rgFrameStyle: TRadioGroup;
rgFrameColorStyle: TRadioGroup;
rgDotShape: TRadioGroup;
rgFrameHeight: TRadioGroup;
seDotSize: TSpinEdit;
seFrameSize: TSpinEdit;
seDotsSpace: TSpinEdit;
seDisplayCharCount: TSpinEdit;
seWidth: TSpinEdit;
seHeigth: TSpinEdit;
seDisplayLineCount: TSpinEdit;
procedure btnLoadCharDefsClick(Sender: TObject);
procedure btnSaveCharDefsClick(Sender: TObject);
procedure cbAutoSizeChange(Sender: TObject);
procedure cbCharSpaceChange(Sender: TObject);
procedure cbColorSchemesChange(Sender: TObject);
procedure cbtFrameColorColorChanged(Sender: TObject);
procedure cbtBoardColorColorChanged(Sender: TObject);
procedure cbtDotONColorColorChanged(Sender: TObject);
procedure cbtDotOFFColorColorChanged(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure mmTextChange(Sender: TObject);
procedure rgFrameStyleClick(Sender: TObject);
procedure rgFrameColorStyleClick(Sender: TObject);
procedure rgDotShapeClick(Sender: TObject);
procedure rgFrameHeightClick(Sender: TObject);
procedure seDisplayCharCountChange(Sender: TObject);
procedure seDotSizeChange(Sender: TObject);
procedure seDotsSpaceChange(Sender: TObject);
procedure seFrameSizeChange(Sender: TObject);
procedure seHeigthChange(Sender: TObject);
procedure seDisplayLineCountChange(Sender: TObject);
procedure seWidthChange(Sender: TObject);
private
LCDDisplay: TLCDDisplay;
public
end;
var
frmMain: TfrmMain;
implementation
{$R *.lfm}
{ TfrmMain }
procedure TfrmMain.cbtFrameColorColorChanged(Sender: TObject);
begin
LCDDisplay.FrameColor := cbtFrameColor.ButtonColor;
end;
procedure TfrmMain.cbtBoardColorColorChanged(Sender: TObject);
begin
LCDDisplay.BoardColor := cbtBoardColor.ButtonColor;
end;
procedure TfrmMain.cbtDotONColorColorChanged(Sender: TObject);
begin
LCDDisplay.DotColorON := cbtDotONColor.ButtonColor;
end;
procedure TfrmMain.cbtDotOFFColorColorChanged(Sender: TObject);
begin
LCDDisplay.DotColorOFF := cbtDotOFFColor.ButtonColor;
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
LCDDisplay := TLCDDisplay.Create(self);
with LCDDisplay do
begin
Left := 24;
Height := 101;
Top := 16;
Width := 290;
AutoSize := True;
DotColorOn := 5162664;
DotColorOff := 2900284;
DisplayCharCount := 0;
Lines.Add('TLCDDisplay');
ColorScheme := csInvGreen;
Parent := self;
end
end;
procedure TfrmMain.FormShow(Sender: TObject);
begin
mmText.Lines := LCDDisplay.Lines;
seDisplayLineCount.Value := LCDDisplay.DisplayLineCount;
seDisplayCharCount.Value := LCDDisplay.DisplayCharCount;
seFrameSize.Value := LCDDisplay.FrameSize;
seDotSize.Value := LCDDisplay.DotSize;
seDotsSpace.Value := LCDDisplay.DotsSpace;
seWidth.Value := LCDDisplay.Width;
seHeigth.Value := LCDDisplay.Height;
cbAutoSize.Checked := LCDDisplay.AutoSize;
cbCharSpace.Checked := LCDDisplay.CharSpace;
cbtFrameColor.ButtonColor := LCDDisplay.FrameColor;
cbtBoardColor.ButtonColor := LCDDisplay.BoardColor;
cbtDotONColor.ButtonColor := LCDDisplay.DotColorOn;
cbtDotOFFColor.ButtonColor := LCDDisplay.DotColorOff;
rgFrameStyle.ItemIndex := integer(LCDDisplay.FrameStyle);
rgFrameColorStyle.ItemIndex := integer(LCDDisplay.FrameColorStyle);
rgDotShape.ItemIndex := integer(LCDDisplay.DotShape);
rgFrameHeight.ItemIndex := integer(LCDDisplay.FrameHeight);
cbColorSchemes.ItemIndex:= integer(LCDDisplay.ColorScheme);
end;
procedure TfrmMain.cbAutoSizeChange(Sender: TObject);
begin
LCDDisplay.AutoSize := cbAutoSize.Checked;
if not cbAutoSize.Checked then
begin
LCDDisplay.Width := seWidth.Value;
LCDDisplay.Height := seHeigth.Value;
end;
end;
procedure TfrmMain.btnSaveCharDefsClick(Sender: TObject);
begin
LCDDisplay.CharDefs.SaveToFile('default.xml');
end;
procedure TfrmMain.btnLoadCharDefsClick(Sender: TObject);
begin
LCDDisplay.CharDefs.LoadFromFile('default.xml');
end;
procedure TfrmMain.cbCharSpaceChange(Sender: TObject);
begin
LCDDisplay.CharSpace := cbCharSpace.Checked;
end;
procedure TfrmMain.cbColorSchemesChange(Sender: TObject);
begin
LCDDisplay.ColorScheme := TColorScheme(cbColorSchemes.ItemIndex);
end;
procedure TfrmMain.mmTextChange(Sender: TObject);
begin
LCDDisplay.Lines.Assign(mmText.Lines);
if LCDDisplay.AutoSize then
begin
LCDDisplay.InvalidatePreferredSize;
LCDDisplay.AdjustSize;
end;
LCDDisplay.Invalidate;
end;
procedure TfrmMain.rgFrameStyleClick(Sender: TObject);
begin
LCDDisplay.FrameStyle := TFrameStyle(rgFrameStyle.ItemIndex);
end;
procedure TfrmMain.rgFrameColorStyleClick(Sender: TObject);
begin
LCDDisplay.FrameColorStyle := TFrameColorStyle(rgFrameColorStyle.ItemIndex);
end;
procedure TfrmMain.rgDotShapeClick(Sender: TObject);
begin
LCDDisplay.DotShape := TDotShape(rgDotShape.ItemIndex);
end;
procedure TfrmMain.rgFrameHeightClick(Sender: TObject);
begin
LCDDisplay.FrameHeight := TFrameHeight(rgFrameHeight.ItemIndex);
end;
procedure TfrmMain.seDisplayCharCountChange(Sender: TObject);
begin
LCDDisplay.DisplayCharCount := seDisplayCharCount.Value;
end;
procedure TfrmMain.seDotSizeChange(Sender: TObject);
begin
LCDDisplay.DotSize := seDotSize.Value;
end;
procedure TfrmMain.seDotsSpaceChange(Sender: TObject);
begin
LCDDisplay.DotsSpace := seDotsSpace.Value;
end;
procedure TfrmMain.seFrameSizeChange(Sender: TObject);
begin
LCDDisplay.FrameSize := seFrameSize.Value;
end;
procedure TfrmMain.seHeigthChange(Sender: TObject);
begin
LCDDisplay.Height := seHeigth.Value;
end;
procedure TfrmMain.seDisplayLineCountChange(Sender: TObject);
begin
LCDDisplay.DisplayLineCount := seDisplayLineCount.Value;
end;
procedure TfrmMain.seWidthChange(Sender: TObject);
begin
LCDDisplay.Width := seWidth.Value;
end;
end.