📄 u_645_command.pas
字号:
unit U_645_Command;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, RzPanel,ExtCtrls, StdCtrls, RzLabel, ImgList, Menus, ComCtrls,
RzTreeVw, RzSplit, RzStatus, RzTabs, jpeg, RzCmboBx, RzButton, RzRadGrp,
Mask, RzEdit, RzPopups, RzRadChk, Grids, DBGrids, DB, RzLine, Buttons,
RzBHints, RzGrids, RzBmpBtn, RzBorder, DBCtrls, RzBckgnd, StrUtils,
RzDBGrid, RzSpnEdt, RzLstBox, RzChkLst,IniFiles,TComm1, RzPrgres, ADODB;
type
TMyCustomDBGrid = class(TCustomDBGrid);
type
TF_645 = class(TForm)
RzPanel2: TRzPanel;
RzStatusBar1: TRzStatusBar;
ImageList1: TImageList;
RzSizePanel2: TRzSizePanel;
RzTreeView1: TRzTreeView;
RzStatusPane1: TRzStatusPane;
RzStatusPane2: TRzStatusPane;
RzPanel1: TRzPanel;
RzBalloonHints1: TRzBalloonHints;
RzPageControl1: TRzPageControl;
TabSheet1: TRzTabSheet;
RzPanel3: TRzPanel;
RzPageControl2: TRzPageControl;
TabSheet5: TRzTabSheet;
RzPanel7: TRzPanel;
TabSheet6: TRzTabSheet;
RzPanel8: TRzPanel;
TabSheet7: TRzTabSheet;
TabSheet3: TRzTabSheet;
RzPanel5: TRzPanel;
RzPanel10: TRzPanel;
RzLabel2: TRzLabel;
RzEdit1: TRzEdit;
RzPanel11: TRzPanel;
RzPanel12: TRzPanel;
RzLabel4: TRzLabel;
RzLabel5: TRzLabel;
DBEdit1: TDBEdit;
DBGrid1: TDBGrid;
RzSizePanel3: TRzSizePanel;
RzPageControl3: TRzPageControl;
TabSheet8: TRzTabSheet;
RzLabel3: TRzLabel;
RzLabel6: TRzLabel;
RzLabel7: TRzLabel;
RzLabel8: TRzLabel;
RzLabel9: TRzLabel;
RzLabel10: TRzLabel;
RzLabel11: TRzLabel;
RzComboBox2: TRzComboBox;
RzComboBox3: TRzComboBox;
RzEdit2: TRzEdit;
RzEdit3: TRzEdit;
RzEdit4: TRzEdit;
RzEdit5: TRzEdit;
TabSheet9: TRzTabSheet;
RzLabel14: TRzLabel;
RzLabel15: TRzLabel;
RzLabel16: TRzLabel;
RzLabel18: TRzLabel;
RzLabel19: TRzLabel;
RzLabel17: TRzLabel;
RzLabel20: TRzLabel;
RzEdit8: TRzEdit;
RzEdit10: TRzEdit;
RzEdit9: TRzEdit;
RzComboBox4: TRzComboBox;
RzComboBox5: TRzComboBox;
RzComboBox6: TRzComboBox;
RzGroupBox5: TRzGroupBox;
RzShapeButton1: TRzShapeButton;
RzShapeButton2: TRzShapeButton;
TabSheet4: TRzTabSheet;
RzPanel6: TRzPanel;
Image1: TImage;
RzGroupBox1: TRzGroupBox;
RzGroupBox2: TRzGroupBox;
RzLabel1: TRzLabel;
RzComboBox1: TRzComboBox;
RzGroupBox4: TRzGroupBox;
RzRadioButton4: TRzRadioButton;
RzRadioButton5: TRzRadioButton;
Edit1: TEdit;
RzRadioGroup1: TRzRadioGroup;
RzLabel12: TRzLabel;
RzSeparator1: TRzSeparator;
RzLabel13: TRzLabel;
RzEdit6: TRzEdit;
RzEdit7: TRzEdit;
RzLabel21: TRzLabel;
RzShapeButton3: TRzShapeButton;
RzPanel4: TRzPanel;
RzDBGrid1: TRzDBGrid;
RzClockStatus1: TRzClockStatus;
RzGroupBox6: TRzGroupBox;
RzDateTimeEdit1: TRzDateTimeEdit;
RzComboBox7: TRzComboBox;
RzLabel22: TRzLabel;
RzLabel23: TRzLabel;
RzDateTimeEdit2: TRzDateTimeEdit;
RzDateTimeEdit3: TRzDateTimeEdit;
RzDateTimeEdit4: TRzDateTimeEdit;
RzSpinEdit1: TRzSpinEdit;
RzBorder1: TRzBorder;
RzBitBtn1: TRzBitBtn;
RzBitBtn2: TRzBitBtn;
RzSplitter1: TRzSplitter;
RzCheckList1: TRzCheckList;
RzGroupBox7: TRzGroupBox;
RzSeparator2: TRzSeparator;
RzLabel24: TRzLabel;
RzMaskEdit2: TRzMaskEdit;
RzMaskEdit1: TRzMaskEdit;
RzEdit11: TRzEdit;
RzLabel25: TRzLabel;
RzSplitter2: TRzSplitter;
RzDBGrid2: TRzDBGrid;
Memo1: TRzMemo;
PopupMenu1: TPopupMenu;
N4: TMenuItem;
N5: TMenuItem;
RzPanel9: TRzPanel;
RzSplitter3: TRzSplitter;
RzCheckList2: TRzCheckList;
Edit2: TEdit;
RzGroupBox8: TRzGroupBox;
RzLabel27: TRzLabel;
RzComboBox8: TRzComboBox;
RzCheckBox1: TRzCheckBox;
RzEdit12: TRzEdit;
DBEdit2: TDBEdit;
RzBorder2: TRzBorder;
RzLabel26: TRzLabel;
RzLabel28: TRzLabel;
RzGroupBox3: TRzGroupBox;
RzRadioButton1: TRzRadioButton;
RzRadioButton2: TRzRadioButton;
RzRadioButton3: TRzRadioButton;
RzBitBtn3: TRzBitBtn;
RzSeparator3: TRzSeparator;
RzSeparator4: TRzSeparator;
RzPanel13: TRzPanel;
RzRadioButton8: TRzRadioButton;
RzRadioButton9: TRzRadioButton;
RzStatusPane3: TRzStatusPane;
RzProgressBar1: TRzProgressBar;
RzPanel14: TRzPanel;
RzRadioButton6: TRzRadioButton;
RzRadioButton7: TRzRadioButton;
TabSheet2: TRzTabSheet;
RzPanel15: TRzPanel;
RzGroupBox9: TRzGroupBox;
RzSeparator5: TRzSeparator;
RzLabel29: TRzLabel;
RzLabel30: TRzLabel;
RzEdit13: TRzEdit;
RzMaskEdit3: TRzMaskEdit;
RzMaskEdit4: TRzMaskEdit;
RzPanel17: TRzPanel;
RzRadioButton12: TRzRadioButton;
RzRadioButton13: TRzRadioButton;
RzStringGrid1: TRzStringGrid;
RzBmpButton1: TRzBmpButton;
RzBmpButton2: TRzBmpButton;
ListBox1: TListBox;
RzBmpButton3: TRzBmpButton;
RzBmpButton4: TRzBmpButton;
Label1: TLabel;
Edit3: TEdit;
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure RzTreeView1Change(Sender: TObject; Node: TTreeNode);
procedure RzRadioButton4Click(Sender: TObject);
procedure RzComboBox1Change(Sender: TObject);
procedure RzEdit1KeyPress(Sender: TObject; var Key: Char);
procedure RzPageControl1Change(Sender: TObject);
procedure RzComboBox2Change(Sender: TObject);
procedure RzComboBox3Change(Sender: TObject);
procedure RzShapeButton1Click(Sender: TObject);
procedure RzEdit3KeyPress(Sender: TObject; var Key: Char);
procedure RzShapeButton2Click(Sender: TObject);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure DBGrid1CellClick(Column: TColumn);
procedure RzRadioGroup1Click(Sender: TObject);
procedure RzPageControl2Change(Sender: TObject);
procedure RzComboBox7Change(Sender: TObject);
procedure RzShapeButton3Click(Sender: TObject);
procedure RzBitBtn1Click(Sender: TObject);
procedure RzRadioButton6Click(Sender: TObject);
procedure RzRadioButton7Click(Sender: TObject);
procedure RzLabel26MouseEnter(Sender: TObject);
procedure RzLabel26MouseLeave(Sender: TObject);
procedure RzCheckBox1Click(Sender: TObject);
procedure DBEdit2Change(Sender: TObject);
procedure RzBitBtn2Click(Sender: TObject);
procedure RzRadioButton1Click(Sender: TObject);
procedure RzRadioButton2Click(Sender: TObject);
procedure RzRadioButton3Click(Sender: TObject);
procedure RzLabel26Click(Sender: TObject);
procedure RzBitBtn3Click(Sender: TObject);
procedure RzComboBox8Change(Sender: TObject);
procedure RzEdit11Exit(Sender: TObject);
procedure RzRadioButton9Click(Sender: TObject);
procedure RzRadioButton8Click(Sender: TObject);
procedure RzRadioButton12Click(Sender: TObject);
procedure RzRadioButton13Click(Sender: TObject);
procedure RzLabel31Click(Sender: TObject);
procedure RzCheckList2MouseLeave(Sender: TObject);
procedure RzBmpButton1Click(Sender: TObject);
procedure RzBmpButton4Click(Sender: TObject);
procedure RzBmpButton2Click(Sender: TObject);
private
ck:string;
{ Private declarations }
public
{ Public declarations }
sound:Boolean; //声音标志 1开;0关
option,m_sum,command_sum,com_flag:integer; //树选项,总表型号数,
//单命令合计数目 ,端口开关标志,1:开;0关
COPY_fs :string; //抄表方式
S_meun :string; //菜单
A_command : array[1..1000] of string;
lst: TStringList;
f_ini:tinifile ;
list2_sum:integer;
baud:Tbaudrate;
com_NO:Tcomportnumber;
party:Tparity;
procedure Tree_show;
function Tree_Boolean(str:string):Boolean;
procedure Dbgrid_show(tablename:string);
procedure MyGet(Sender: TField; var Text: String; DisplayText: Boolean);
procedure disposal_data(
bh:string;revc:string;ymgs:string;len_data:integer;k_flag:string;
lrrq:string;cbrq:string;autosave:Boolean);
procedure movedata(sourcetable:string;objecttable:string);
procedure checklist1RF;
procedure checklist2RF;
//function ComOut(aa: string; bb: integer): longint; stdcall; external 'rs485.dll';
end;
var
F_645: TF_645;
implementation
uses U_function, U_data, U_bcset;
{$R *.dfm}
procedure TF_645.checklist1RF;
var
i,j:integer;
sqlstr,str:string;
begin
{ sqlstr:='ss';
Rzchecklist1.AddEx(sqlstr,false,false);
Rzchecklist1.AddEx(sqlstr,false,true);
Rzchecklist1.AddEx(sqlstr,false,true);
Rzchecklist1.ItemToGroup(0);
}
j:=1;
F_645.Rzchecklist1.Items.Clear;
str:='单命令集';
F_645.Rzchecklist1.Items.Add(str);
F_645.Rzchecklist1.ItemToGroup(0);
sqlstr:='select * from '+trim(F_645.edit1.Text)+' where 块标志='''+'0'+''' order by 命令';
with datam.ADOQ1 do
begin
close;
sql.Clear;
sql.Add(sqlstr);
open;
END;
i := datam.ADOQ1.RecordCount;
command_sum :=i;
datam.ADOQ1.first;
while NOT datam.ADOQ1.Eof do
begin
//存储命令
A_command[j] := trim(datam.ADOQ1.fieldbyname('命令').AsString);
inc(j);
//
str := trim(datam.ADOQ1.fieldbyname('命令').AsString)+TRIM(datam.ADOQ1.fieldbyname('名称').AsString);
F_645.Rzchecklist1.Items.Add(str);
datam.ADOQ1.Next;
end;
str:='块命令集';
F_645.Rzchecklist1.Items.Add(str);
F_645.Rzchecklist1.ItemToGroup(i+1);
sqlstr:='select * from '+trim(F_645.edit1.Text)+' where 块标志='''+'1'+''' order by 命令 ';
with datam.ADOQ1 do
begin
close;
sql.Clear;
sql.Add(sqlstr);
open;
END;
i := i+datam.ADOQ1.RecordCount;
datam.ADOQ1.first;
while NOT datam.ADOQ1.Eof do
begin
//存储命令
A_command[j] := trim(datam.ADOQ1.fieldbyname('命令').AsString);
inc(j);
str := datam.ADOQ1.fieldbyname('命令').AsString+TRIM(datam.ADOQ1.fieldbyname('名称').AsString);
F_645.Rzchecklist1.Items.Add(str);
datam.ADOQ1.Next;
end;
F_645.edit2.Text := inttostr(i); //存储命令数目
F_645.rzmaskedit1.Text:=formatdatetime('yyyy-mm-dd hh:nn:ss',now);
F_645.rzmaskedit2.Text:=formatdatetime('yyyy-mm-dd hh:nn:ss',now);
end;
procedure TF_645.checklist2RF;
var
sqlstr,str,str1:string;
i,j,h:integer;
filename :string;
k,m:integer;
begin
Rzstringgrid1.Cells[0,0]:='序号';
Rzstringgrid1.Cells[1,0]:='命令';
Rzstringgrid1.Cells[2,0]:='参数';
Rzchecklist2.Items.Clear;
str:='编程命令集';
Rzchecklist2.Items.Add(str);
Rzchecklist2.ItemToGroup(0);
sqlstr:='select * from '+trim(edit1.Text)+' where 读写='''+'1'+''' order by 命令';
with datam.ADOQ1 do
begin
close;
sql.Clear;
sql.Add(sqlstr);
open;
END;
h := 1;
edit2.Text :='0';
datam.ADOQ1.first;
while NOT datam.ADOQ1.Eof do
begin
str := trim(datam.ADOQ1.fieldbyname('命令').AsString);
str := str+TRIM(datam.ADOQ1.fieldbyname('名称').AsString);
Rzchecklist2.Items.Add(str);
edit2.Text := inttostr(strtoint(trim(edit2.Text))+1);
inc(h);
str1 := trim(datam.ADOQ1.fieldbyname('命令').AsString);
listbox1.Items.Clear;
if str1 ='C32X' then
begin
h := h-1;
Rzchecklist2.Items.Delete(h);
str1:='年时区命令集';
Rzchecklist2.Items.Add(str1);
Rzchecklist2.ItemToGroup(h);
Rzchecklist2.Items.Add(str);
inc(h);
//读取ini文件数据
filename:=extractfilepath(paramstr(0))+F_645.EDIT1.TEXT+'_programme.ini'; //////得到完整的INI文件路径名///
f_645.f_ini:=tinifile.Create(filename);
if fileexists(Filename) then
begin
f_645.f_ini.readsection('年时区',f_645.ListBox1.Items);
m := f_645.ListBox1.Items.Count;
IF m <> 0 then
begin
for i := 1 to m do
begin
str := trim(f_645.f_ini.ReadString('年时区',listbox1.Items.Strings[i-1], 'E'));
delete(str,1,6);
Str := trim(listbox1.Items.Strings[i-1])+str ;
Rzchecklist2.Items.Add(trim(str));
end;
end
else
begin
MyMsgBox('【年时区】编程项设置不完整!','系 统 错 误', 0);
exit;
end;
end;
edit2.Text := inttostr(strtoint(trim(edit2.Text))+m);
h := h+m+1;
end
else if str1 ='C3XX' then
BEGIN
h := h-1;
Rzchecklist2.Items.Delete(h);
str1:='日时段命令集';
Rzchecklist2.Items.Add(str1);
Rzchecklist2.ItemToGroup(h);
Rzchecklist2.Items.Add(str);
inc(h);
//读取ini文件数据
filename:=extractfilepath(paramstr(0))+F_645.EDIT1.TEXT+'_programme.ini'; //////得到完整的INI文件路径名///
f_645.f_ini:=tinifile.Create(filename);
if fileexists(Filename) then
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -