📄 ilcdcharacter.pas
字号:
{*******************************************************}
{ }
{ iLCDCharacter Object }
{ }
{ Copyright (c) 1997,2003 Iocomp Software }
{ }
{*******************************************************}
{$I iInclude.inc}
{$ifdef iVCL}unit iLCDCharacter;{$endif}
{$ifdef iCLX}unit QiLCDCharacter;{$endif}
interface
uses
{$I iIncludeUses.inc}
{$IFDEF iVCL} iTypes, iGPFunctions;{$ENDIF}
{$IFDEF iCLX}QiTypes, QiGPFunctions;{$ENDIF}
type
TiLCDCharacter = class(TPersistent)
private
FDataList : TList;
procedure AddRow (Value: Integer);
procedure SetRowCount(const Value: Integer);
function GetData: String;
procedure SetData(const Value: String);
procedure AddRowsData(const Args: array of Integer);
function GetRowCount : Integer;
protected
public
constructor Create;
destructor Destroy; override;
procedure Assign(Source: TPersistent); override;
procedure DeleteRow(Index: Integer);
procedure RemoveAllRows;
procedure LoadDefault(Value: Integer);
function GetRowData(Index: Integer): Integer;
procedure SetRowData(Index: Integer; Value: Integer);
property RowCount : Integer read GetRowCount write SetRowCount;
published
property Data : String read GetData write SetData;
end;
implementation
//****************************************************************************************************************************************************
constructor TiLCDCharacter.Create;
begin
FDataList := TList.Create;
end;
//****************************************************************************************************************************************************
destructor TiLCDCharacter.Destroy;
begin
FDataList.Free;
inherited;
end;
//****************************************************************************************************************************************************
procedure TiLCDCharacter.AddRow(Value: Integer);
begin
FDataList.Add(Pointer(Value));
end;
//****************************************************************************************************************************************************
procedure TiLCDCharacter.RemoveAllRows;
begin
FDataList.Clear;
end;
//****************************************************************************************************************************************************
procedure TiLCDCharacter.DeleteRow(Index: Integer);
begin
FDataList.Delete(Index);
end;
//****************************************************************************************************************************************************
function TiLCDCharacter.GetRowCount: Integer;
begin
Result := FDataList.Count;
end;
//****************************************************************************************************************************************************
procedure TiLCDCharacter.SetRowCount(const Value: Integer);
begin
if Value = RowCount then Exit;
while RowCount > Value do
DeleteRow(RowCount-1);
while RowCount < Value do
AddRow(0);
end;
//****************************************************************************************************************************************************
function TiLCDCharacter.GetRowData(Index: Integer): Integer;
begin
Result := Integer(FDataList.Items[Index]);
end;
//****************************************************************************************************************************************************
procedure TiLCDCharacter.SetRowData(Index, Value: Integer);
begin
FDataList.Items[Index] := Pointer(Value);
end;
//****************************************************************************************************************************************************
function TiLCDCharacter.GetData: String;
var
x : Integer;
begin
Result := '';
for x := 0 to FDataList.Count-1 do
if x <> FDataList.Count-1 then
Result := Result + IntToStr(GetRowData(x)) + ','
else
Result := Result + IntToStr(GetRowData(x));
end;
//****************************************************************************************************************************************************
procedure TiLCDCharacter.SetData(const Value: String);
var
x : Integer;
StringList : TStringList;
BuildString : String;
begin
StringList := TStringList.Create;
try
BuildString := '';
for x := 0 to Length(Value)-1 do
begin
if Copy(Value, x+1, 1) = ',' then
begin
StringList.Add(BuildString);
BuildString := '';
end
else BuildString := BuildString + Copy(Value, x+1, 1);
end;
StringList.Add(BuildString);
for x := 0 to FDataList.Count-1 do
begin
if x > (StringList.Count -1) then Break;
SetRowData(x, StrToInt(StringList.Strings[x]));
end;
finally
StringList.Free;
end;
end;
//****************************************************************************************************************************************************
procedure TiLCDCharacter.AddRowsData(const Args: array of Integer);
var
x : Integer;
begin
for x := 0 to High(Args) do
AddRow(Args[x]);
end;
//****************************************************************************************************************************************************
procedure TiLCDCharacter.LoadDefault(Value: Integer);
begin
RemoveAllRows;
case Value of
0..32 : AddRowsData([00,00,00,00,00,00,00]);
33 : AddRowsData([04,04,04,04,04,00,04]);
34 : AddRowsData([10,10,00,00,00,00,00]);
35 : AddRowsData([00,10,31,10,31,10,00]);
36 : AddRowsData([04,15,20,14,05,30,04]);
37 : AddRowsData([25,26,02,04,08,11,19]);
38 : AddRowsData([12,18,20,08,21,18,13]);
39 : AddRowsData([04,04,00,00,00,00,00]);
40 : AddRowsData([02,04,08,08,08,04,02]);
41 : AddRowsData([08,04,02,02,02,04,08]);
42 : AddRowsData([00,04,21,14,21,04,00]);
43 : AddRowsData([00,04,04,31,04,04,00]);
44 : AddRowsData([00,00,00,00,12,12,16]);
45 : AddRowsData([00,00,00,31,00,00,00]);
46 : AddRowsData([00,00,00,00,12,12,00]);
47 : AddRowsData([01,01,02,04,08,16,16]);
48 : AddRowsData([14,17,19,21,25,17,14]);
49 : AddRowsData([04,12,04,04,04,04,14]);
50 : AddRowsData([14,17,01,02,04,08,31]);
51 : AddRowsData([14,17,01,06,01,17,14]);
52 : AddRowsData([02,06,10,18,31,02,02]);
53 : AddRowsData([31,16,30,01,01,17,14]);
54 : AddRowsData([14,17,16,30,17,17,14]);
55 : AddRowsData([31,01,01,02,04,04,04]);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -