📄 commset.~pas
字号:
unit CommSet;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, ExtCtrls, Buttons;
type
TFComSet = class(TForm)
GroupBox1: TGroupBox;
ComList: TStringGrid;
GroupBox2: TGroupBox;
Label1: TLabel;
ERecv: TEdit;
Label2: TLabel;
Esend: TEdit;
Bsave: TBitBtn;
Bevel1: TBevel;
BClose: TBitBtn;
Badd: TBitBtn;
BdelCurrRow: TBitBtn;
BDelAll: TBitBtn;
procedure BCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure BaddClick(Sender: TObject);
procedure BsaveClick(Sender: TObject);
procedure ComListClick(Sender: TObject);
procedure BdelCurrRowClick(Sender: TObject);
procedure BDelAllClick(Sender: TObject);
private
CurrRow : integer;
procedure DeleteRow(index:integer);//删除制定的行
procedure SaveCommand();
procedure AddCommand(Recv,Send : string);
procedure InitCommandList();
{ Private declarations }
public
{ Public declarations }
end;
var
FComSet: TFComSet;
implementation
uses Unit1;
{$R *.dfm}
procedure TFComSet.DeleteRow(index:integer);//删除制定的行
var
i:integer;
begin
if (index>0) and (ComList.RowCount>2) then
begin
if index=ComList.RowCount-1 then
begin
ComList.Rows[index].Clear;
ComList.RowCount:=ComList.RowCount-1;
end
else
begin
ComList.Rows[index].Clear;
for i:=index to ComList.RowCount-1 do
begin
ComList.Cells[0,i]:=ComList.Cells[0,i+1];
ComList.Cells[1,i]:=ComList.Cells[1,i+1];
end;
ComList.RowCount:=ComList.RowCount-1;
end;
end
else
if (index=1) and (ComList.RowCount=2) then
begin
ComList.Rows[1].Clear;
//ComList.cells[0,1]:='第1:';
end;
end;
procedure TFComSet.SaveCommand();
var
count,i : integer;
begin
if ComList.Cells[0,1] <> '' then
begin
count := ComList.RowCount;
i := 1;
for i := 1 to count - 1 do
begin
Form1.WriteIni('命令交互列表','接受'+inttostr(i),ComList.Cells[0,i]);
Form1.WriteIni('命令交互列表','发送'+inttostr(i),ComList.Cells[1,i]);
end;
Form1.WriteIni('命令交互列表','数量',inttostr(ComList.RowCount));
end;
end;
procedure TFComSet.AddCommand(Recv,Send : string);
var
r,s : string;
i , long ,count: integer;
begin
if (Recv <> '') and (Send <> '') then
begin
long := Length(recv);
for i := 1 to long do
begin
if Recv[i] <> ' ' then
r := r + Recv[i];
end;
long := Length(Send);
for i := 1 to long do
begin
if Send[i] <> ' ' then
s := s + Send[i];
end;
if (ComList.Cells[0,1]<>'') and (ComList.Cells[1,1]<>'') then
ComList.RowCount := ComList.RowCount + 1;
count := ComList.RowCount-1;
ComList.Cells[0,count] := r;
ComList.Cells[1,count] := s;
ERecv.Text := '';
ESend.Text := '';
Erecv.SetFocus;
end
else
MessageBox(FComSet.Handle,'接受或发送命令填写不完整!','错误',MB_OK+MB_ICONWARNING);
end;
procedure TFComSet.InitCommandList();
var
count,i : integer;
begin
count := 0;
ComList.Cells[0,0] := '接受到的命令';
ComList.Cells[1,0] := '发送的命令';
count := StrToInt(Form1.ReadFromIni('命令交互列表','数量','0'));
if count > 0 then
begin
i := 1;
//ComList.RowCount := 0;
ComList.RowCount := count ;
while i <= count do
begin
ComList.Cells[0,i] := Form1.ReadFromIni('命令交互列表','接受'+inttostr(i),' ');
ComList.Cells[1,i] := Form1.ReadFromIni('命令交互列表','发送'+inttostr(i),' ');
i := i + 1;
end;
end;
end;
procedure TFComSet.BCloseClick(Sender: TObject);
begin
close;
end;
procedure TFComSet.FormShow(Sender: TObject);
begin
Form1.Hide();
InitCommandList();
CurrRow := 1;
end;
procedure TFComSet.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form1.Show();
end;
procedure TFComSet.BaddClick(Sender: TObject);
begin
AddCommand(Erecv.Text,ESend.Text);
end;
procedure TFComSet.BsaveClick(Sender: TObject);
begin
SaveCommand();
MessageBox(FComset.Handle,'保存完成!','确认',MB_OK);
end;
procedure TFComSet.ComListClick(Sender: TObject);
begin
CurrRow := ComList.Row;
end;
procedure TFComSet.BdelCurrRowClick(Sender: TObject);
begin
if MessageBox(FComSet.Handle,Pchar('确实要删除 行: '+IntToStr(CurrRow)),'删除确认',MB_YESNO+MB_ICONQUESTION) = IDYES THEN
DeleteRow(CurrRow);
end;
procedure TFComSet.BDelAllClick(Sender: TObject);
begin
if MessageBox(FComSet.Handle,Pchar('确实要删除所有行吗? ','删除确认',MB_YESNO+MB_ICONQUESTION) = IDYES THEN
begin
ComList.RowCount := 2;
ComList.Rows[1].Clear;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -