📄 datalog.pas
字号:
unit datalog;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Prodave, ComCtrls, ExtCtrls, Menus;
type
TForm2 = class(TForm)
Button4: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Label5: TLabel;
Button7: TButton;
Button8: TButton;
Edit2: TEdit;
Edit3: TEdit;
Timer1: TTimer;
MainMenu1: TMainMenu;
N1: TMenuItem;
N1000ms1: TMenuItem;
N500ms1: TMenuItem;
N300ms1: TMenuItem;
Timer2: TTimer;
Label4: TLabel;
N2000ms1: TMenuItem;
shu1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
procedure Button7Click(Sender: TObject);
procedure N1000ms1Click(Sender: TObject);
procedure N500ms1Click(Sender: TObject);
procedure N300ms1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Timer1Timer(Sender: TObject);
procedure N2000ms1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
// res2: longint;
// ErrMess2:array[0..255] of char;
// db_num,db_startoread,db_numtoread:Integer;
// data2:array[0..255] of SmallInt;
tt: SmallInt;
end;
var
Form2: TForm2;
res2: longint;
ErrMess2: array[0..255] of char;
db_num, db_startoread, db_numtoread: Integer;
data2: array[0..255] of word;
implementation
uses Unit4, scom;
{$R *.dfm}
procedure TForm2.Button7Click(Sender: TObject);
begin
//Form4.ADODataSet1.CommandText:=' select * from db';
//Form4.ADODataSet1.Active:=True;
db_num := StrToInt(Edit1.Text);
db_startoread := StrToInt(Edit2.Text);
db_numtoread := StrToInt(Edit3.Text);
res2 := db_Read(db_num, db_startoread, db_numtoread, data2);
ErrMess2[254] := #0;
if res2 <> 0 then
begin
Prodave.Error_Message(res2, ErrMess2);
MessageBox(Handle, (ErrMess2),
'通讯错误', MB_OK + MB_ICONINFORMATION + MB_TOPMOST);
Exit;
end;
Timer1.Enabled := True;
end;
procedure TForm2.N1000ms1Click(Sender: TObject);
begin
N2000ms1.Checked := False;
N1000ms1.Checked := True;
N500ms1.Checked := False;
N300ms1.Checked := False;
if Timer1.Enabled = True then Timer1.Enabled := False;
Timer1.Interval := 1000;
end;
procedure TForm2.N500ms1Click(Sender: TObject);
begin
N2000ms1.Checked := False;
N1000ms1.Checked := False;
N500ms1.Checked := True;
N300ms1.Checked := False;
if Timer1.Enabled = True then Timer1.Enabled := False;
Timer1.Interval := 500;
end;
procedure TForm2.N300ms1Click(Sender: TObject);
begin
N2000ms1.Checked := False;
N1000ms1.Checked := False;
N500ms1.Checked := False;
N300ms1.Checked := True;
if Timer1.Enabled = True then Timer1.Enabled := False;
Timer1.Interval := 300;
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
N2000ms1.Checked := False;
N1000ms1.Checked := False;
N500ms1.Checked := True;
N300ms1.Checked := False;
Timer1.Enabled := False;
Timer1.Interval := 500;
Timer2.Interval := 3000;
end;
procedure TForm2.Timer2Timer(Sender: TObject);
begin
// Form4.DBGrid1.Refresh;
// Form4.DBChart1.Repaint;
end;
procedure TForm2.Button8Click(Sender: TObject);
begin
Timer1.Enabled := False;
Timer2.Enabled := False;
end;
procedure TForm2.Button4Click(Sender: TObject);
begin
Form4.ShowModal;
form4.DBChart1.AutoRefresh:=False;
form4.DBGrid1.Enabled:=True;
form4.DBChart1.Enabled:=true;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form1.Visible := True;
end;
procedure TForm2.Timer1Timer(Sender: TObject);
begin
res2 := 255;
res2 := db_Read(db_num, db_startoread, db_numtoread, data2);
ErrMess2[254] := #0;
//with Form4.ADOQuery1 do
//begin
//str3:='';
//Close;
//SQL.Clear;
//str3:= 'Insert into db (状态,日期';
//str3:=str3+') ';
//
//str3:=str3+ 'values ('+inttostr(res2)+' ,'+ DateToStr(Date);//+', '+timetostr(Time) ;
////for i :=1 to 10 do
////begin
////smi:=(psmallint(@data2[-1+i*2]))^ ;
////str3:=str3+ ','+inttoStr(smi);
////end;
//
//str3:=str3+') ';
//SQL.Add(str3);
//ExecSQL;
//Close;
with Form4.ADODataSet1 do
begin
Append;
fieldbyname('状态').AsInteger := res2;
fieldbyname('日期').Value := Now;
//fieldbyname('时间').Value:=Time;
tt := tt + 1;
if tt > 500 then tt := 0;
fieldbyname('数据1').Value := Swap(data2[0]);
fieldbyname('数据2').Value := Swap(data2[1]);
fieldbyname('数据3').Value := Swap(data2[2]);
fieldbyname('数据4').Value := Swap(data2[3]);
fieldbyname('数据5').Value := Swap(data2[4]);
fieldbyname('数据6').Value := Swap(data2[5]);
fieldbyname('数据7').Value := Swap(data2[6]);
fieldbyname('数据8').Value := Swap(data2[7]);
fieldbyname('数据9').Value := Swap(data2[8]);
fieldbyname('数据10').Value := Swap(data2[9]);
//fieldbyname('数据1').Value:= (psmallint(@data2[1]))^; // (pinteger(@data1[sss*2]))^
//fieldbyname('数据2').AsInteger:= (psmallint(@data2[3]))^;
//fieldbyname('数据3').AsInteger:= (psmallint(@data2[5]))^;
//fieldbyname('数据4').AsInteger:= (psmallint(@data2[7]))^;
//fieldbyname('数据5').AsInteger:= (psmallint(@data2[9]))^;
//fieldbyname('数据6').AsInteger:= (psmallint(@data2[11]))^;
//fieldbyname('数据7').AsInteger:= (psmallint(@data2[13]))^;
//fieldbyname('数据8').AsInteger:= (psmallint(@data2[15]))^;
//fieldbyname('数据9').AsInteger:= (psmallint(@data2[17]))^;
//fieldbyname('数据10').AsInteger:= (psmallint(@data2[19]))^;
Post;
end;
end;
procedure TForm2.N2000ms1Click(Sender: TObject);
begin
N2000ms1.Checked :=True;
N1000ms1.Checked := False;
N500ms1.Checked := False;
N300ms1.Checked := False;
if Timer1.Enabled = True then Timer1.Enabled := False;
Timer1.Interval := 2000;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -