d7和xe7都试过了,epson tm-t58串口打印机,装不装驱动也都试过了。
问题:
1、comport打印数字英文都没有问题,汉字会乱码 xe7 win7x86
procedure TForm1.Button4Click(Sender: TObject);
begin
ComPort1.Close;
ComPort1.Open;
end;procedure TForm1.Button9Click(Sender: TObject);
var
s:string;
begin
ComPort1.ClearBuffer(true,true); s := memo1.Text;
ComPort1.WriteStr(s);
end;procedure TForm1.Button10Click(Sender: TObject);
begin
ComPort1.Close;
end;
2、两个控件打印的时候都是一行一顿的,不如打印机自己打印自己参数时"刷"一下就出来。咋整啊。
(打印自己参数:关掉电源,按住进纸键开机)
问题:
1、comport打印数字英文都没有问题,汉字会乱码 xe7 win7x86
procedure TForm1.Button4Click(Sender: TObject);
begin
ComPort1.Close;
ComPort1.Open;
end;procedure TForm1.Button9Click(Sender: TObject);
var
s:string;
begin
ComPort1.ClearBuffer(true,true); s := memo1.Text;
ComPort1.WriteStr(s);
end;procedure TForm1.Button10Click(Sender: TObject);
begin
ComPort1.Close;
end;
2、两个控件打印的时候都是一行一顿的,不如打印机自己打印自己参数时"刷"一下就出来。咋整啊。
(打印自己参数:关掉电源,按住进纸键开机)
解决方案 »
- 找工作ing...,好烦,散点分,希望能带来好运...
- 为什么Delphi 6调用C#的WebService,只要调用传入参数是string类型的函数就报错?
- delphi中怎样才能取得 SQLSever 2000中text 字段类型得值呢?
- DCOM并发访问远程数据
- 菜鸟问题:哪里配置DELPHI IDE环境?在线给钱
- 请会delphi开发mts/com+的朋友帮忙!谢谢!
- ***如何做到像屏幕保护一样的,在多少时间没有鼠标与键盘动作就运行,在线等候!!***
- Internet上如何连接mssqlserver?用什么控件?ADO?Internet?Midas?
- 了解了进程,线程等概念,怎样在编程是应用?
- 我认为评论vcl和mfc那个好的人应当在两个里面都又深入的了解后才有资格,我不信法这种贴字的那些人有资格,还是省省把
- 如何用delphi实现验证码的验证登录功能
- OLEContainer 最基本的用法
要么采取成熟的打印控件,实施打印。
不过,打印机一般也不认的你这样的直接串口写的字符串吧,难道不用编码?function TCustomComPort.WriteStrAsync(var Str: string; var AsyncPtr: PAsync): Integer;
var sa : Ansistring; var i:integer;
begin
if Length(Str) > 0 then
begin
setlength(sa,length(str));
{$IFDEF Unicode}
if length(sa)>0 then
begin
for i := 1 to length(str) do sa[i] := ansichar(byte(str[i]));
move(sa[1],str[1],length(sa));
end;
{$ENDIF}
Result := WriteAsync(Str[1], Length(Str), AsyncPtr)
end
else
Result := 0;
end;
// perform synchronous write operation
function TCustomComPort.WriteStr(Str: string): Integer;
var
AsyncPtr: PAsync;
begin
InitAsync(AsyncPtr);
try
WriteStrAsync(Str, AsyncPtr);
Result := WaitForAsync(AsyncPtr);
finally
DoneAsync(AsyncPtr);
end;
end;
1.打印机启动指令
2.系统文本编码转换为打印机编码
3.结束打印指令按照楼主的描述,打印机能识别英文字符,我推测楼主就差将文本转换为标准的ANSI码这一步,在XE7中应该就是ANSISTRING