www.pudn.com > comm.rar > main.pas


unit main; 
 
interface 
 
uses 
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 
  StdCtrls, ExtCtrls, Buttons, _GClass, AbLED, AbDBCtrls, SPComm; 
 
type 
  TForm1 = class(TForm) 
    GroupBox1: TGroupBox; 
    GroupBox2: TGroupBox; 
    Bevel1: TBevel; 
    Bevel2: TBevel; 
    Label1: TLabel; 
    Label2: TLabel; 
    Label3: TLabel; 
    Label4: TLabel; 
    Label5: TLabel; 
    Label6: TLabel; 
    Label7: TLabel; 
    Label8: TLabel; 
    ComboBox1: TComboBox; 
    ComboBox2: TComboBox; 
    ComboBox3: TComboBox; 
    ComboBox4: TComboBox; 
    ComboBox5: TComboBox; 
    Memo1: TMemo; 
    SpeedButton1: TSpeedButton; 
    AbDBLED1: TAbDBLED; 
    Memo2: TMemo; 
    StaticText1: TStaticText; 
    StaticText2: TStaticText; 
    StaticText3: TStaticText; 
    Label9: TLabel; 
    CheckBox1: TCheckBox; 
    CheckBox2: TCheckBox; 
    Label10: TLabel; 
    CheckBox3: TCheckBox; 
    Label11: TLabel; 
    SpeedButton2: TSpeedButton; 
    SpeedButton3: TSpeedButton; 
    Edit1: TEdit; 
    Label12: TLabel; 
    SpeedButton4: TSpeedButton; 
    SpeedButton5: TSpeedButton; 
    SpeedButton6: TSpeedButton; 
    SpeedButton7: TSpeedButton; 
    SpeedButton8: TSpeedButton; 
    CheckBox4: TCheckBox; 
    Comm1: TComm; 
    Timer1: TTimer; 
    SpeedButton9: TSpeedButton; 
    procedure SpeedButton1Click(Sender: TObject); 
    procedure SpeedButton3Click(Sender: TObject); 
    procedure SpeedButton4Click(Sender: TObject); 
    procedure ComboBox1Change(Sender: TObject); 
    procedure SpeedButton5Click(Sender: TObject); 
    procedure SpeedButton7Click(Sender: TObject); 
    procedure ComboBox2Change(Sender: TObject); 
    procedure ComboBox3Change(Sender: TObject); 
    procedure ComboBox4Change(Sender: TObject); 
    procedure ComboBox5Change(Sender: TObject); 
    procedure SpeedButton6Click(Sender: TObject); 
  private 
    { Private declarations } 
  public 
    { Public declarations } 
  end; 
 
var 
  Form1: TForm1; 
  Commswitch: Boolean; 
 
implementation 
 
{$R *.DFM} 
 
procedure TForm1.SpeedButton1Click(Sender: TObject); 
begin 
  if CommSwitch = False then 
  begin 
    comm1.StartComm; 
    Commswitch := True; 
    SpeedButton1.Caption := '关闭串口'; 
    StaticText1.Caption := '打开'; 
    AbDBLED1.checked := True; 
  end else 
  begin 
    comm1.StopComm; 
    Commswitch := False; 
    SpeedButton1.Caption := '打开串口'; 
    StaticText1.Caption := '关闭'; 
    AbDBLED1.checked := False; 
  end; 
end; 
 
procedure TForm1.SpeedButton3Click(Sender: TObject); 
begin 
  Form1.close; 
end; 
 
procedure TForm1.SpeedButton4Click(Sender: TObject); 
begin 
  StaticText2.Caption := IntToStr(0); 
  StaticText3.Caption := IntToStr(0); 
end; 
 
procedure TForm1.ComboBox1Change(Sender: TObject); 
begin 
  Comm1.CommName := ComboBox1.Items.Strings[ComboBox1.ItemIndex]; 
  if CommSwitch = True then 
  begin 
    Comm1.StopComm; 
    Comm1.StartComm; 
  end; 
end; 
 
procedure TForm1.SpeedButton5Click(Sender: TObject); 
begin 
  Memo1.Clear; 
end; 
 
procedure TForm1.SpeedButton7Click(Sender: TObject); 
begin 
  Memo2.Clear; 
end; 
 
procedure TForm1.ComboBox2Change(Sender: TObject); 
begin 
  Comm1.BaudRate := StrToInt(ComboBox2.Items.Strings[ComboBox2.ItemIndex]); 
  if CommSwitch = True then 
  begin 
    comm1.StopComm; 
    Comm1.StartComm; 
  end; 
end; 
 
procedure TForm1.ComboBox3Change(Sender: TObject); 
begin 
  case ComboBox3.ItemIndex of 
    0: Comm1.ByteSize := _5; 
    1: Comm1.ByteSize := _6; 
    2: Comm1.ByteSize := _7; 
    3: Comm1.ByteSize := _8; 
  end; 
  if CommSwitch = True then 
  begin 
    comm1.StopComm; 
    Comm1.StartComm; 
  end; 
end; 
 
procedure TForm1.ComboBox4Change(Sender: TObject); 
begin 
  case ComboBox4.ItemIndex of 
    0: Comm1.Parity := EVEN; 
    1: Comm1.Parity := MARK; 
    2: Comm1.Parity := NONE; 
    3: Comm1.Parity := ODD; 
    4: Comm1.Parity := SPACE; 
  end; 
  if CommSwitch = True then 
  begin 
    comm1.StopComm; 
    Comm1.StartComm; 
  end; 
end; 
 
procedure TForm1.ComboBox5Change(Sender: TObject); 
begin 
  case ComboBox5.ItemIndex of 
    0: Comm1.StopBits := _1; 
    1: Comm1.StopBits := _1_5; 
    2: Comm1.StopBits := _2; 
    end; 
  if CommSwitch = True then 
  begin 
    comm1.StopComm; 
    Comm1.StartComm; 
  end; 
end; 
 
procedure TForm1.SpeedButton6Click(Sender: TObject); 
var SendStr: String; 
    mstr:String; 
    SendHex: array [0..100] of char; 
    i:integer; 
begin 
  SendStr := ''; 
  mstr := ''; 
  for i := 0 to Memo1.Lines.Count-1 do 
  begin 
    SendStr := SendStr + Trim(Memo1.Lines.Strings[i]); 
  end; 
  for i := 1 to Length(SendStr) do 
  begin 
    if SendStr[i] <> ' ' then mstr := mstr + SendStr[i]; 
  end; 
  if CheckBox1.Checked = True then 
  begin 
    for i := 0 to Length(mstr) div 2 -1 do 
    begin 
      SendHex[i] := chr(StrToInt64('$' + copy(mstr,i*2+1,2))); 
    end; 
    Comm1.WriteCommData(@SendHex,Length(mstr) div 2); 
  end else 
  begin 
    Comm1.WriteCommData(@SendStr,Length(SendStr)); 
  end; 
end; 
 
end.