首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

本人做的第一个程序,多亏CSDN上面的帮助,虽然程序内容很简单,但是小弟我很满足

2012-02-15 
本人做的第一个程序,多亏CSDN上面各位高手的帮助,虽然程序内容很简单,但是我很满足unit COMMinterfaceuse

本人做的第一个程序,多亏CSDN上面各位高手的帮助,虽然程序内容很简单,但是我很满足
unit COMM;



interface



 uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, SPComm, ExtCtrls, Buttons, ComCtrls, Menus;



 type

  TForm1 = class(TForm)

  Com1: TComm;

  Button4: TButton;

  GroupBox1: TGroupBox;

  Button1: TButton;

  Button2: TButton;

  Button3: TButton;
  Button5: TButton;
  memo1: TMemo;
  edRx: TEdit;
  Memo2: TMemo;
  Timer1: TTimer;
  Label4: TLabel;
  Label8: TLabel;
  Button11: TButton;
  Button10: TButton;
  Button12: TButton;
  Edit2: TEdit;
  Button13: TButton;
  Edit3: TEdit;
  Button14: TButton;
  Button15: TButton;
  GroupBox2: TGroupBox;
  Label1: TLabel;
  Label2: TLabel;
  Label5: TLabel;
  Label6: TLabel;
  Label7: TLabel;
  ComboBox1: TComboBox;
  ComboBox2: TComboBox;
  ComboBox3: TComboBox;
  ComboBox4: TComboBox;
  ComboBox5: TComboBox;
  edTx: TEdit;
  Edit5: TEdit;
  Edit6: TEdit;
  Edit7: TEdit;
  Edit8: TEdit;
  Edit9: TEdit;
  Edit10: TEdit;
  Edit11: TEdit;
  Label18: TLabel;
  Button16: TButton;
  Button7: TButton;
  GroupBox3: TGroupBox;
  Label14: TLabel;
  Label15: TLabel;
  Label9: TLabel;
  Label10: TLabel;
  Label11: TLabel;
  Label12: TLabel;
  Label13: TLabel;
  Label16: TLabel;
  Label17: TLabel;
  Label19: TLabel;
  Label20: TLabel;
  Button8: TButton;
  Button9: TButton;
  procedure Button1Click(Sender: TObject);
  procedure Button2Click(Sender: TObject);
  procedure Button4Click(Sender: TObject);
  procedure Com1ReceiveData(Sender: TObject; Buffer: Pointer;BufferLength: Word);
  procedure Button3Click(Sender: TObject);
  procedure ListBox1Click(Sender: TObject);
  procedure Button5Click(Sender: TObject);
  procedure ComboBox1Change(Sender: TObject);
  procedure ListBox2Click(Sender: TObject);
  procedure ComboBox3Change(Sender: TObject);
  procedure ComboBox4Change(Sender: TObject);
  procedure ComboBox5Change(Sender: TObject);
  procedure FormCreate(Sender: TObject);
  procedure Button9Click(Sender: TObject);
  procedure Timer1Timer(Sender: TObject);
  procedure ComboBox2Change(Sender: TObject);
  procedure Button10Click(Sender: TObject);
  procedure Button11Click(Sender: TObject);
  procedure Button12Click(Sender: TObject);
  procedure Button13Click(Sender: TObject);
  procedure Button14Click(Sender: TObject);
  procedure Button15Click(Sender: TObject);
  procedure Button7Click(Sender: TObject);
  procedure Edit5Change(Sender: TObject);
  procedure Edit6Change(Sender: TObject);
  procedure Edit7Change(Sender: TObject);
  procedure Edit8Change(Sender: TObject);
  procedure Edit9Change(Sender: TObject);
  procedure Edit10Change(Sender: TObject);
  procedure Button8Click(Sender: TObject);
  procedure Button16Click(Sender: TObject);





  private
  { Private declarations }


  FShowText:Boolean;
  FRXNum:Integer;
  FTXNum:Integer;
  procedure ShowRX;
  procedure ShowTX;


  procedure SendString(const str:string);
  private

  { Private declarations }

  public

  { Public declarations }

  end;

 var

  Form1: TForm1;

  viewstring:string;

  test: string;
  i:integer;

  rbuf,sbuf:array[0..16] of byte;
   

implementation
  uses StrUtils;
  const
  minWidth=627;
  minHeight=444;
  idAbout =$F200;


 {$R *.dfm}


 //打开串口

 procedure TForm1.Button1Click(Sender: TObject);

 begin


  Com1.StopComm;

  Com1.StartComm;

  Button1.Enabled :=False;

 Button2.Enabled :=True;



 end;

//关闭串口

 procedure TForm1.Button2Click(Sender: TObject);

 begin

  Com1.StopComm;

  Button2.Enabled := False;

  Button1.Enabled := True;


 end;


  //自定义发送数据过程

  procedure senddata;

  var

  i:integer;

  commflg:boolean;

  begin

  viewstring:='';

  commflg:=true;

  for i:=1 to 9 do

  begin

  if not form1.com1.writecommdata(@sbuf[i],1) then

  begin

  commflg:=false;

  break;  

  end;
   
  //发送时字节间的延时

  sleep(2);

  viewstring:=viewstring+' '+inttohex(sbuf[i],2)+'';
  end;

  viewstring:=viewstring;

form1.memo2.lines.add(viewstring);

form1.memo1.lines.add('');

  if not commflg then messagedlg('设备尚未就绪,请您检查设备是否连接或者串口是否打开!' ,mterror,[mbyes],0);

  end;

  procedure senddata4;

  var

  i:integer;

  commflg:boolean;

  begin

  viewstring:='';

  commflg:=true;

  for i:=1 to 8 do

  begin

  if not form1.com1.writecommdata(@sbuf[i],1) then

  begin

  commflg:=false;

  break;  

  end;
   
  //发送时字节间的延时

  sleep(2);

  viewstring:=viewstring+' '+inttohex(sbuf[i],2)+'';
  end;

  viewstring:=viewstring;

form1.memo2.lines.add(viewstring);

form1.memo1.lines.add('');

  if not commflg then messagedlg('设备尚未就绪,请您检查设备是否连接或者串口是否打开!' ,mterror,[mbyes],0);

  end;


 //打开阀门
procedure TForm1.Button4Click(Sender: TObject);
  Var
  U:integer;
 begin
 test := '打开阀门';
  if label15.caption='' then
  begin
  showmessage('请先抄表获取表号') ;
  exit;
  end
  else
  Form1.Memo1.Clear;
  Form1.Memo2.Clear;

 U:= strtoint('$'+trim( label15.caption)) + ($A6);
 edit2.text:=IntToHex(U,2);

sbuf[1]:=byte($EA ); {帧头}

sbuf[2]:=byte($EA );

sbuf[3]:=byte($07 );

sbuf[4]:=Byte(StrToInt('$'+trim( label15.caption)) ); {命令号}

sbuf[5]:=byte($4F );

sbuf[6]:=byte($50 );

sbuf[7]:=byte($00 );

sbuf[8]:=byte(StrToInt('$'+trim( Edit2.text)) ); {校验和} // StrToInt('$'+String(U))



sbuf[9]:=byte($16 );

senddata;{调用发送函数}

form1.Button9.Click;




end;


procedure TForm1.Button10Click(Sender: TObject);

 begin
  Form1.Memo1.Clear;
  Form1.Memo2.Clear;



sbuf[1]:=byte($EA); {帧头}

sbuf[2]:=byte($EA);

sbuf[3]:=byte($07);

sbuf[4]:=byte($ff);

sbuf[5]:=byte($50);

sbuf[6]:=byte($46);

sbuf[7]:=byte($ff);

sbuf[8]:=byte($9d);

sbuf[9]:=byte($16);

senddata;{调用发送函数}

form1.Button9.Click;
end;

procedure TForm1.Button12Click(Sender: TObject);
 Var
  U:integer;
 begin
 if label15.caption= '' then
 begin
 showmessage('请先抄收水表表号') ;
 exit;
 end
 else
  test := '查询余额与阀门状态';
 Form1.Memo1.Clear;
  Form1.Memo2.Clear;

 U:= strtoint('$'+trim( label15.caption)) + ($a2);
 edit2.text:=IntToHex(U,2);

sbuf[1]:=byte($EA); {帧头}

sbuf[2]:=byte($EA);

sbuf[3]:=byte($07);

sbuf[4]:=Byte(StrToInt('$'+trim( label15.caption))); {命令号}

sbuf[5]:=byte($43);

sbuf[6]:=byte($58);

sbuf[7]:=byte($00);

sbuf[8]:=byte(StrToInt('$'+trim( Edit2.text)));

sbuf[9]:=byte($16);

senddata;{调用发送函数}

form1.Button9.Click;
end;


procedure TForm1.ShowRX;
begin
  edRX.Text:='Rx:'+IntTostr(FRXNum);
end;

procedure TForm1.ShowTX;
begin
  edTx.Text:='Tx:'+IntTostr(FTXNum);
end;



 //定义 senddata3
 procedure senddata3;

  var

  i:integer;

  commflg:boolean;

  begin

  viewstring:='';

  commflg:=true;

  for i:=1 to 15 do

  begin

  if not form1.com1.writecommdata(@sbuf[i],1) then

  begin

  commflg:=false;

  break;

  end;
   
  //发送时字节间的延时

  sleep(2);

 viewstring:=viewstring+' '+inttohex(sbuf[i],2)+'';
  end;

  viewstring:=viewstring;

form1.memo2.lines.add(viewstring);

form1.memo1.lines.add('');

  if not commflg then messagedlg('发送失败!' ,mterror,[mbyes],0);

  end;

//设置时间命令
procedure TForm1.Button3Click(Sender: TObject);
var
  U:integer;
 begin
  test := '设置时间命令';
  Form1.Memo1.Clear;
  Form1.Memo2.Clear;

 U:= strtoint('$'+trim( Edit5.text))+strtoint('$'+trim( Edit6.text))+strtoint('$'+trim( Edit7.text)) + strtoint('$'+trim( Edit8.text))+strtoint('$'+trim( Edit9.text))+strtoint('$'+trim( label15.caption)) + strtoint('$'+trim( Edit10.text))+strtoint('$'+trim( Edit11.text))+($b8);
 edit2.text:=IntToHex(U,2);

sbuf[1]:=byte($EA); {帧头}

sbuf[2]:=byte($EA);

sbuf[3]:=byte($0d);

sbuf[4]:=Byte(StrToInt('$'+trim( label15.caption))); {命令号}

sbuf[5]:=byte($58);

sbuf[6]:=byte($53);

sbuf[7]:=byte(StrToInt('$'+trim( Edit5.text)));//年

sbuf[8]:=byte(StrToInt('$'+trim( Edit6.text)));//月

sbuf[9]:=byte(StrToInt('$'+trim( Edit7.text))); //星期

sbuf[10]:=byte(StrToInt('$'+trim( Edit8.text))); //日期

sbuf[11]:=byte(StrToInt('$'+trim( Edit9.text))); //时

sbuf[12]:=byte(StrToInt('$'+trim( Edit10.text))); //分

sbuf[13]:=byte(StrToInt('$'+trim( Edit11.text))); //秒

sbuf[14]:=byte(StrToInt('$'+trim( Edit2.text))); //校验和

sbuf[15]:=byte($16);

senddata3;{调用发送函数}

Form1.Button9.Click;

 end;





procedure TForm1.ListBox1Click(Sender: TObject);
begin




  Com1.StopComm;
  Com1.CommName:=ComboBox1.Text;
  Com1.StartComm;

end;






[解决办法]
恭喜,接分~

ps:代码太乱了,好好规整下~
[解决办法]
年青人有前途!!!
[解决办法]
加油加油..
[解决办法]
多去找些感兴趣程序的源码来看看,长进更快.


[解决办法]
最好重新排版一下
[解决办法]
要不要把所有的代码都贴上来啊。
好长哦。。
[解决办法]
看着好累...

热点排行