unit DTest06cUnit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Serial, ScktComp, ExtCtrls; type TKommunikationsprogramm = class(TForm) Serial1: TSerial; Memo1: TMemo; Label1: TLabel; ClientSocket1: TClientSocket; Label3: TLabel; CheckBox1: TCheckBox; Edit1: TEdit; Button1: TButton; Label2: TLabel; Timer1: TTimer; Label4: TLabel; COMComboBox1: TCOMComboBox; Label5: TLabel; Label6: TLabel; procedure Serial1EventChar(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); procedure ClientSocket1Disconnect(Sender: TObject; Socket: TCustomWinSocket); procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); procedure CheckBox1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure COMComboBox1Change(Sender: TObject); procedure COMComboBox1DropDown(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Kommunikationsprogramm: TKommunikationsprogramm; implementation {$R *.DFM} procedure TKommunikationsprogramm.Serial1EventChar(Sender: TObject); var s: string; begin // Formatierte Ausgabe s:=Serial1.ReceiveText; // s:=Copy (s,1,Length(s)-2); // Memo1.Lines.Add(s); // Unformatierte Ausgabe // Memo1.Text:=Memo1.Text+Serial1.ReceiveText; Memo1.Text:=Memo1.Text+s; Label4.Caption:=s; end; procedure TKommunikationsprogramm.FormCreate(Sender: TObject); begin Serial1.COMPort:=1; Serial1.Active:=True; Serial1.OpenComm; end; procedure TKommunikationsprogramm.FormClose(Sender: TObject; var Action: TCloseAction); begin Serial1.CloseComm; Serial1.Active:=false; end; procedure TKommunikationsprogramm.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); begin Label3.Caption:='Connected'; end; procedure TKommunikationsprogramm.ClientSocket1Disconnect(Sender: TObject; Socket: TCustomWinSocket); begin Label3.Caption:='Disconnected'; end; procedure TKommunikationsprogramm.ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); begin Label3.Caption:='Error:'+IntToStr(ErrorCode); ErrorCode:=0; end; procedure TKommunikationsprogramm.CheckBox1Click(Sender: TObject); var s: string; begin ClientSocket1.Active:=False; s := Edit1.Text; ClientSocket1.Address:= s; // ClientSocket1.Address:= '127.0.0.1'; ClientSocket1.Active:=Checkbox1.checked; If not ClientSocket1.Active then Label3.Caption:='Socket Inactive'; end; procedure TKommunikationsprogramm.Timer1Timer(Sender: TObject); var s: string; begin s:=Label4.Caption; s:=TimeToStr(Now)+','+s; s:=DateToStr(Now)+','+s; ClientSocket1.Socket.SendText(s); end; procedure TKommunikationsprogramm.COMComboBox1Change(Sender: TObject); begin if (Serial1.COMPort=1) then Serial1.COMPort:=2 else Serial1.COMPort:=1; Serial1.Active:=True; Serial1.OpenComm; end; procedure TKommunikationsprogramm.COMComboBox1DropDown(Sender: TObject); begin Serial1.CloseComm; Serial1.Active:=False; end; end.