⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ilcdcharacter.pas

📁 iocopm3.04源码,一套很好的工控开发工具
💻 PAS
📖 第 1 页 / 共 2 页
字号:
{*******************************************************}
{                                                       }
{       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 + -