Industrial/LCDDisplay: implement streaming of the character dot matrices.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@8303 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2022-06-15 15:32:44 +00:00
parent 3d619ce25b
commit 68b436d9f9
5 changed files with 454 additions and 225 deletions

View File

@ -63,7 +63,7 @@ type
procedure seDisplayLineCountChange(Sender: TObject);
procedure seWidthChange(Sender: TObject);
private
LCDLines1: TLCDLines;
LCDDisplay: TLCDDisplay;
public
@ -80,28 +80,28 @@ implementation
procedure TfrmMain.cbtFrameColorColorChanged(Sender: TObject);
begin
LCDLines1.FrameColor := cbtFrameColor.ButtonColor;
LCDDisplay.FrameColor := cbtFrameColor.ButtonColor;
end;
procedure TfrmMain.cbtBoardColorColorChanged(Sender: TObject);
begin
LCDLines1.BoardColor := cbtBoardColor.ButtonColor;
LCDDisplay.BoardColor := cbtBoardColor.ButtonColor;
end;
procedure TfrmMain.cbtDotONColorColorChanged(Sender: TObject);
begin
LCDLines1.DotColorON := cbtDotONColor.ButtonColor;
LCDDisplay.DotColorON := cbtDotONColor.ButtonColor;
end;
procedure TfrmMain.cbtDotOFFColorColorChanged(Sender: TObject);
begin
LCDLines1.DotColorOFF := cbtDotOFFColor.ButtonColor;
LCDDisplay.DotColorOFF := cbtDotOFFColor.ButtonColor;
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
LCDLines1 := TLCDLines.Create(self);
with LCDLines1 do
LCDDisplay := TLCDDisplay.Create(self);
with LCDDisplay do
begin
Left := 24;
Height := 101;
@ -111,7 +111,7 @@ begin
DotColorOn := 5162664;
DotColorOff := 2900284;
DisplayCharCount := 0;
Lines.Add('TLCDLines');
Lines.Add('TLCDDisplay');
ColorScheme := csInvGreen;
Parent := self;
end
@ -119,111 +119,111 @@ end;
procedure TfrmMain.FormShow(Sender: TObject);
begin
mmText.Lines := LCDLines1.Lines;
seDisplayLineCount.Value := LCDLines1.DisplayLineCount;
seDisplayCharCount.Value := LCDLines1.DisplayCharCount;
seFrameSize.Value := LCDLines1.FrameSize;
seDotSize.Value := LCDLines1.DotSize;
seDotsSpace.Value := LCDLines1.DotsSpace;
seWidth.Value := LCDLines1.Width;
seHeigth.Value := LCDLines1.Height;
cbAutoSize.Checked := LCDLines1.AutoSize;
cbCharSpace.Checked := LCDLines1.CharSpace;
cbtFrameColor.ButtonColor := LCDLines1.FrameColor;
cbtBoardColor.ButtonColor := LCDLines1.BoardColor;
cbtDotONColor.ButtonColor := LCDLines1.DotColorOn;
cbtDotOFFColor.ButtonColor := LCDLines1.DotColorOff;
rgFrameStyle.ItemIndex := integer(LCDLines1.FrameStyle);
rgFrameColorStyle.ItemIndex := integer(LCDLines1.FrameColorStyle);
rgDotShape.ItemIndex := integer(LCDLines1.DotShape);
rgFrameHeight.ItemIndex := integer(LCDLines1.FrameHeight);
cbColorSchemes.ItemIndex:= integer(LCDLines1.ColorScheme);
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
LCDLines1.AutoSize := cbAutoSize.Checked;
LCDDisplay.AutoSize := cbAutoSize.Checked;
if not cbAutoSize.Checked then
begin
LCDLines1.Width := seWidth.Value;
LCDLines1.Height := seHeigth.Value;
LCDDisplay.Width := seWidth.Value;
LCDDisplay.Height := seHeigth.Value;
end;
end;
procedure TfrmMain.cbCharSpaceChange(Sender: TObject);
begin
LCDLines1.CharSpace := cbCharSpace.Checked;
LCDDisplay.CharSpace := cbCharSpace.Checked;
end;
procedure TfrmMain.cbColorSchemesChange(Sender: TObject);
begin
LCDLines1.ColorScheme := TColorScheme(cbColorSchemes.ItemIndex);
LCDDisplay.ColorScheme := TColorScheme(cbColorSchemes.ItemIndex);
end;
procedure TfrmMain.mmTextChange(Sender: TObject);
begin
LCDLines1.Lines.Assign(mmText.Lines);
if LCDLines1.AutoSize then
LCDDisplay.Lines.Assign(mmText.Lines);
if LCDDisplay.AutoSize then
begin
LCDLines1.InvalidatePreferredSize;
LCDLines1.AdjustSize;
LCDDisplay.InvalidatePreferredSize;
LCDDisplay.AdjustSize;
end;
LCDLines1.Invalidate;
LCDDisplay.Invalidate;
end;
procedure TfrmMain.rgFrameStyleClick(Sender: TObject);
begin
LCDLines1.FrameStyle := TFrameStyle(rgFrameStyle.ItemIndex);
LCDDisplay.FrameStyle := TFrameStyle(rgFrameStyle.ItemIndex);
end;
procedure TfrmMain.rgFrameColorStyleClick(Sender: TObject);
begin
LCDLines1.FrameColorStyle := TFrameColorStyle(rgFrameColorStyle.ItemIndex);
LCDDisplay.FrameColorStyle := TFrameColorStyle(rgFrameColorStyle.ItemIndex);
end;
procedure TfrmMain.rgDotShapeClick(Sender: TObject);
begin
LCDLines1.DotShape := TDotShape(rgDotShape.ItemIndex);
LCDDisplay.DotShape := TDotShape(rgDotShape.ItemIndex);
end;
procedure TfrmMain.rgFrameHeightClick(Sender: TObject);
begin
LCDLines1.FrameHeight := TFrameHeight(rgFrameHeight.ItemIndex);
LCDDisplay.FrameHeight := TFrameHeight(rgFrameHeight.ItemIndex);
end;
procedure TfrmMain.seDisplayCharCountChange(Sender: TObject);
begin
LCDLines1.DisplayCharCount := seDisplayCharCount.Value;
LCDDisplay.DisplayCharCount := seDisplayCharCount.Value;
end;
procedure TfrmMain.seDotSizeChange(Sender: TObject);
begin
LCDLines1.DotSize := seDotSize.Value;
LCDDisplay.DotSize := seDotSize.Value;
end;
procedure TfrmMain.seDotsSpaceChange(Sender: TObject);
begin
LCDLines1.DotsSpace := seDotsSpace.Value;
LCDDisplay.DotsSpace := seDotsSpace.Value;
end;
procedure TfrmMain.seFrameSizeChange(Sender: TObject);
begin
LCDLines1.FrameSize := seFrameSize.Value;
LCDDisplay.FrameSize := seFrameSize.Value;
end;
procedure TfrmMain.seHeigthChange(Sender: TObject);
begin
LCDLines1.Height := seHeigth.Value;
LCDDisplay.Height := seHeigth.Value;
end;
procedure TfrmMain.seDisplayLineCountChange(Sender: TObject);
begin
LCDLines1.DisplayLineCount := seDisplayLineCount.Value;
LCDDisplay.DisplayLineCount := seDisplayLineCount.Value;
end;
procedure TfrmMain.seWidthChange(Sender: TObject);
begin
LCDLines1.Width := seWidth.Value;
LCDDisplay.Width := seWidth.Value;
end;
end.