Tidak ada kontrol port serial yang tersedia di Delphi, jadi Anda harus terlebih dahulu menambahkan kontrol ActiveX MSCOMM ke palet komponen. Ini adalah kontrol yang sangat baik. Tidak hanya dapat mengoperasikan port serial, tetapi juga mengontrol Modem. Berikut ini adalah contoh spesifik untuk menggambarkan bagaimana menggunakan kontrol MSCOMM untuk mengembangkan program komunikasi serial.
Buat proyek Communication.dPR, ubah properti Nama formulir menjadi CommForm, ubah judul menjadi Tes Komunikasi, dan pilih File/Simpan Sebagai untuk menyimpan formulir baru sebagai CommFrm.pas.
Kode yang sesuai adalah sebagai berikut:
Deskripsi variabel
var
Formulir Komunikasi: TCommForm;
ss :tali;
savef,readf:file char;
i,j :longint;
inisialisasi
procedure TCommForm.FormCreate(Pengirim: TObject);
mulai
mcomm.commport:=1;
mcomm.pengaturan:='9600,n,8,1';
mscomm.inputlen:=1;
mcomm.inbuffercount:=0;
mcomm.portopen:=true;
ss:='';
saya:=0;
j:=0;
tugaskanfile(simpan,'simpan1');
menulis ulang (simpan);
tugaskanfile(readf,'read1');
setel ulang(baca);
akhir;
Pengaturan oke
prosedur TCommForm.btnConfirmClick(Pengirim: TObject);
mulai
jika mcomm.portopen maka
mcomm.portopen:=false;
mcomm.commport:=strtoint(edtCommport.teks);
mcomm.settings:=edtCommsetting.Teks;
akhir;
acara perpindahan
prosedur TCommForm.MSCommComm(Pengirim: TObject);
var
filenrc:char;
penyangga :varian;
s1: tali;
c:arang;
mulai
kasus mscomm.commEvent of
comEvKirim:
mulai
sementara tidak(eof(readf)) lakukan
mulai
baca(bacaf,filenrc);
mcomm.output:=filenrc;
j:=j+1;
lblDisplay.caption:=inttostr(j);
jika mcomm.outbuffercount>=2 maka
merusak;
akhir;
akhir;
comEvReceive:
mulai
buffer:=mscomm.Masukan;
s1:=penyangga;
c:=s1[1];
ss:=ss+c;
saya:=saya+1;
lblDisplay.caption:=c+inttostr(i);
tulis(simpan,c);
jika (c=chr(10))atau(c=chr(13)) maka
mulai
lblDisplay.caption:='cr'+inttostr(i);
memDisplay.lines.add(ss);
ss:='';
akhir;
akhir;
akhir;
akhir;