www.pudn.com > CommSend.rar > MainFrm.pas


{*******************************************************} 
{                                                       } 
{       CommSend                                        } 
{       Date: 2003-12-25  Owner: Han Deyu               } 
{                                                       } 
{       Copyright (c) 2003, NanJing lopu Corporation    } 
{                                                       } 
{                                                       } 
{                                                       } 
{*******************************************************} 
unit MainFrm; 
//protocol:9600,n,8,1 
//comm port:default comm port 1 ,if have any question it 
//will use comm port 2 automatically. 
//timer1's interval is 10s 
//send 01 or 02 
interface 
 
uses 
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 
  OleCtrls, MSCommLib_TLB, ExtCtrls, StdCtrls, Inifiles, Buttons, jpeg; 
 
type 
  TForm1 = class(TForm) 
    Timer1: TTimer; 
    Edit1: TEdit; 
    Button3: TButton; 
    Image1: TImage; 
    SpeedButton1: TSpeedButton; 
    SpeedButton2: TSpeedButton; 
    MSComm: TMSComm; 
    procedure FormClose(Sender: TObject; var Action: TCloseAction); 
    procedure Timer1Timer(Sender: TObject); 
    procedure Button3Click(Sender: TObject); 
    procedure FormCreate(Sender: TObject); 
    procedure SpeedButton1Click(Sender: TObject); 
    procedure SpeedButton2Click(Sender: TObject); 
  private 
    { Private declarations } 
  public 
    { Public declarations } 
  end; 
const 
  Title='双机热备份控制器   '; 
var 
  Form1: TForm1; 
  A    : Variant; 
  FlagIni: TInifile; 
implementation 
 
{$R *.DFM} 
 
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); 
begin 
  if MSComm.PortOpen then MSComm.PortOpen := False; 
end; 
 
procedure TForm1.Timer1Timer(Sender: TObject); 
begin 
 
   try 
        MSComm.Output := A; 
        Caption := Title + '写串口正确'; 
      except  Caption := Title + '写串口错,请再试一次!'; 
      end;  //end try 
end; 
 
 
 
 
procedure TForm1.Button3Click(Sender: TObject); 
begin 
  Timer1.Enabled := False; 
  MsComm.PortOpen := False; 
  MsComm.PortOpen := True; 
  try 
    MsComm.Output := Edit1.Text; 
  except 
    Caption := Title + '手动发送错误!'; 
  end; 
   
end; 
 
procedure TForm1.FormCreate(Sender: TObject); 
begin 
  MSComm.Settings := '9600,n,8,1'; 
  MSComm._CommPort := 1; 
  if not MSComm.PortOpen then MSComm.PortOpen := true; 
  if MSComm.PortOpen then Caption := Title + 'Com1 OK' 
  else begin 
    MSComm._CommPort := 2; 
    MSComm.PortOpen := true; 
    if MSComm.PortOpen then Caption := Title + 'Com2 OK' 
    else Caption  := Title + 'Com Error' 
  end; 
  A := VarArrayCreate([0,1],VarByte); 
  A[0] := Byte($01); 
  A[1] := Byte($01); 
  if MSComm.PortOpen then Timer1.Enabled := True; 
  SpeedButton1.Enabled := False; 
end; 
 
procedure TForm1.SpeedButton1Click(Sender: TObject); 
begin 
  SpeedButton1.Enabled := False; 
  SpeedButton2.Enabled := True; 
  Timer1.Enabled := False; 
  MsComm.PortOpen := False; 
  A := VarArrayCreate([0,1],VarByte); 
  A[0] := Byte($01); 
  A[1] := Byte($01); 
  MsComm.PortOpen := True; 
  Timer1.Enabled := True; 
end; 
 
procedure TForm1.SpeedButton2Click(Sender: TObject); 
begin 
  SpeedButton1.Enabled := True; 
  SpeedButton2.Enabled := False; 
  Timer1.Enabled := False; 
  MsComm.PortOpen := False; 
  A := VarArrayCreate([0,1],VarByte); 
  A[0] := Byte($01); 
  A[1] := Byte($02); 
  MsComm.PortOpen := True; 
  Timer1.Enabled := True; 
end; 
 
end.