function TForm1.OpenPort(sPortName: string): THandle;
var cc: TCOMMCONFIG;
begin
Result:=CreateFile(PChar(sPortName),GENERIC_READ
or GENERIC_WRITE,0,nil,OPEN_EXISTING,0,0);
if Result <= 0 then Exit;
if Copy(sPortName,1,3) = 'Com' then
begin
GetCommState(Result,cc.dcb);
cc.dcb.BaudRate := CBR_9600;
cc.dcb.ByteSize := 8;
cc.dcb.Parity := 0;
cc.dcb.StopBits := 0;
if not SetCommState(Result,cc.dcb) then
begin
CloseHandle(Result);
Result:= 0; Exit;
end;
end;
end;
procedure TForm1.PrintChar(s: string);
var lrc: LongWord;
begin
hndComm := OpenPort(Trim(ComboBox1.Text));
if hndComm > 0 then
WriteFile(hndComm,PChar(s)^,Length(s),lrc,nil);
CloseHandle(hndComm);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
PrintChar(#27 + #64); //初始化打印机
end;
procedure TForm1.XPButton1Click(Sender: TObject);
var i: Integer;
begin
if Memo1.Text = '' then Exit;
for i := 0 to Memo1.Lines.Count - 1 do
begin
PrintChar(Memo1.Lines[i] + #13 + #10);
Sleep(20);
end;
end;