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

📄 showdataform.pas

📁 16 relay output channels and 16 isolated digital input channels LED indicators to show activated
💻 PAS
字号:
unit ShowDataForm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Global;

type
  TfrmShowData = class(TForm)
    btnPrev: TButton;
    btnNext: TButton;
    lstData: TListBox;
    procedure FormShow(Sender: TObject);
    procedure btnNextClick(Sender: TObject);
    procedure btnPrevClick(Sender: TObject);
    procedure ShowData();
  private
    { Private declarations }
  public
    { Public declarations }
    indx : Longint;
    pUserBuff : Pointer;
    DataSize : Integer;
  end;

var
  frmShowData: TfrmShowData;

implementation

{$R *.dfm}
procedure TfrmShowData.ShowData();
var
    i,j : Integer;
    strVale : String;
begin
  lstData.Clear;
  pUserBuff := hUserBuf;
  Longint(pUserBuff) := Longint(hUserBuf) + indx*1000*10*DataSize;

  for i:=0 to 999 do
  begin
     strVale:=Format('%5.5d - %5.5d  ',[indx*1000*10+i*10,indx*1000*10+i*10+9]);
     for j:=0  to 9 do
     begin
        strVale :=strVale+ '  ';
        if( gdwDataWidth = 0 ) then
        begin
           strVale :=strVale + IntToHex(Longword(hUserBuf^),8);
           Longint(pUserBuff) := Longint(pUserBuff) + 4;
        end;
        if( gdwDataWidth = 2 ) then
        begin
           strVale :=strVale + IntToHex(Word(hUserBuf^),4);
           Longint(pUserBuff) := Longint(pUserBuff) + 2;
        end;
        if( gdwDataWidth = 3 ) then
        begin
           strVale :=strVale + IntToHex(BYTE(hUserBuf^),2);
           Longint(pUserBuff) := Longint(pUserBuff) + 1;
        end;
        if(indx*1000*10+ i*10+j >= dwCount) then
        begin
           lstData.Items.Add(strVale);
           exit;
        end;
     end;
     lstData.Items.Add(strVale);
 end;

end;

procedure TfrmShowData.FormShow(Sender: TObject);

begin
     indx:=0;
     pUserBuff := hUserBuf;
     DataSize :=0;
      if ( gdwDataWidth = 0 ) then// 32-bit
        DataSize:= 4;
      if ( gdwDataWidth = 2 ) then// 16-bit
        DataSize:= 2;
      if ( gdwDataWidth = 3 ) then// 8-bit
        DataSize:= 1;
  ShowData();




end;

procedure TfrmShowData.btnNextClick(Sender: TObject);
begin
  indx:=indx+1;
  if(indx*1000*10 >= dwCount) then
  begin
     btnNext.Enabled:=false;
  end;
  btnPrev.Enabled:=true;
  ShowData();



end;

procedure TfrmShowData.btnPrevClick(Sender: TObject);
begin
  indx:=indx-1;
  if(indx<=0 ) then
  begin
     btnPrev.Enabled:=false;
  end;
  ShowData();
  btnNext.Enabled:=true;

end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -