Mscomm เป็นตัวควบคุมการสื่อสารแบบอนุกรมที่ทรงพลังสำหรับ Microsoft รหัสต่อไปนี้จะถูกประมวลผลเป็นเลขฐานสิบหกสำหรับการส่งและรับ
วาจา
Senddata: Array [1..10] ของ Char;
Redata: อาร์เรย์ของตัวแปร;
Sendstr: String;
rest: สตริง;
ฉัน: Longint;
เริ่ม
mscomm1.commport: = 1;
mscomm1.settings: = '9600, n, 8,1';
mscomm1.inbuffersize: = 1024;
mscomm1.outbuffersize: = 1024;
mscomm1.inputmode: = cominputModeBinary;
mscomm1.inputlen: = 0; // อ่านข้อมูลทั้งหมดในครั้งเดียว
mscomm1.sthreshold: = 0; // ส่งข้อมูลทั้งหมดในครั้งเดียว
mscomm1.inbuffercount: = 0; // ล้างบัฟเฟอร์การอ่าน
mscomm1.outbuffercount: = 0; // ล้างบัฟเฟอร์ส่ง
mscomm1.portopen: = true;
mscomm1.rthreshold: = 16; // ตั้งค่าจำนวนไบต์ที่จะได้รับเพื่อสร้างเหตุการณ์ oncomm
SendData [1]: = Chr ($ 06);
SendData [2]: = Chr ($ 03);
SendData [3]: = Chr ($ 00);
SendData [4]: = Chr ($ 03);
SendData [5]: = Chr ($ 10);
sendstr: = '';
สำหรับ i: = 1 ถึง 5 ทำ
sendstr: = sendstr + senddata [i];
mscomm1.output: = sendstr; // ส่งข้อมูล
i: = 0;
BZW: = FALSE;
ทำซ้ำ
นอนหลับ (10);
Application.processMessages;
i: = i + 1;
ถ้าฉัน> 30000 แล้ว
เริ่ม
ShowMessage ('ส่งหมดเวลา!');
หยุดพัก;
จบ;
จนกระทั่ง bzw = true;
Redata: = mscomm1.input;
rest: = '';
สำหรับ i: = 0 ถึง Vararrayhighbound (Redata, 1) ทำ
rest: = rest + inttohex (redata [i], 2) + '';
mscomm1.portopen: = false;
flatmemo1.text: = rest;
จบ;
// เหตุการณ์ oncomm
โพรซีเดอร์ TFORM1.MSCOMM1COMM (ผู้ส่ง: tObject);
เริ่ม
กรณี mscomm1.Commevent ของ
comevreceive: bzw: = true;
จบ;
จบ;
ในที่สุดเมื่อปล่อยซอฟต์แวร์คุณต้องนำไฟล์ mscomm32.ocx