VB的一段程序,现要用Delphi来实现,其中 Text1为文本控件 MsComm1为串口通信控件
Dim out(0) As Byteout(0) = Val(Text1.Text);MSComm1.Output = out上面定义out(0)为Byte类型,而out是什么意思呢,Val函数的作用是什么呢?
如果这两句在Delphi中应该怎么写
Dim B As String
Dim A As Integer
While MSComm1.InBufferCount <> 0
B = MSComm1.Input
If B <> "" Then
A = Val(AscB(B))
End If
WendAscb函数的作用是什么,A=Val(AscB(B))这一句在Delphi中应该怎么写呢?
望各位大侠赐教,多谢!
Dim out(0) As Byteout(0) = Val(Text1.Text);MSComm1.Output = out上面定义out(0)为Byte类型,而out是什么意思呢,Val函数的作用是什么呢?
如果这两句在Delphi中应该怎么写
Dim B As String
Dim A As Integer
While MSComm1.InBufferCount <> 0
B = MSComm1.Input
If B <> "" Then
A = Val(AscB(B))
End If
WendAscb函数的作用是什么,A=Val(AscB(B))这一句在Delphi中应该怎么写呢?
望各位大侠赐教,多谢!
解决方案 »
- 关于OCX 中,界面同步的问题
- 这段代码错在哪里,请各位帮看一看
- 遇到一个超高难度的数据库难题(SQL语句查询),一个多月都无法解决,分全给了---高手请进
- 一个小问题,大家都来看看,我只能出这么多钱了,希望帮帮忙!
- 两个小问题?
- Dbgrid内输入浮点数为"12.23.12"时的错误如何处理?
- 怎样可以提高EXCEL的导出速度?
- 谁知道神州数码用什么开发工具?(答者有分)
- 请问bombobox.items.add(query1.fieldbyname('单位').asstring),是什么意思
- 关于installshield5的汉化----是假的???
- delphi+mapx5,用自定义图片画地图元素时的问题?
- 有没有办法在VB编的应用程序运行时,将Delphi的控件显示到其窗体上?
1.
var
out(0) : Byte;.......
out(0) := StrToInt(Edit1.Text);
MSComm1.Output := out;
................
2.
var
b : String;
A : Integer;
While MsComm1.InBufferCount <> 0 do
begin
B := Mscomm1.InPut;
if (B <> '') then A := StrToInt(Ord(B));
end;
var Out:array[0..0] of byte;
out: array[0] of Byte
i: Integer;
B: Variant;
begin
out[0] := StrToInt(Text1.Text); // TextBox是VB中的编辑框控件,Delphi对应的为TEditBox
B := VarArrayCreate([0, High(out)], varByte);
for i:=0 to High(out) do B[i] := out[i];
MSComm1.Output := B; // Delphi里可以使用ActiveX控件,但是需要安装。
end;
var
B: Variant;
A, j: Integer;
begin
if MSComm1.CommEvent <> comEvReceive then Exit; j := MSComm1.InBufferCount; // 在Input后用SizeOf(B)求得的字节数是固定的:16。
B := MSComm1.Input;
for i:=0 to j-1 do // 显示收到的每个数据
begin
A := Ord(B[i]);
ShowMessage(IntToHex(A, 2)); // 以十六进制显示
end;
end;
out: array[0..0] of Byte
你的回复中A:=Ord(B[i])语句错误,类型不一致呀,你调试过了吗?
procedure a;
var
h : THandle;
begin
h := CreateFile('COM1', ...);
WriteFile(...);
CloseFile(h);
end;
out: array[0..0] of Byte;
i: Integer;
B: Variant;
begin
out[0] := StrToInt(Text1.Text); // TextBox是VB中的编辑框控件,Delphi对应的为TEditBox
B := VarArrayCreate([0, High(out)], varByte);
for i:=0 to High(out) do B[i] := out[i];
MSComm1.Output := B;
end;接收的示例:procedure TForm1.MSComm1Comm(Sender: TObject);
var
B: Variant;
A, i, j: Integer;
begin
if MSComm1.CommEvent <> comEvReceive then Exit; j := MSComm1.InBufferCount;
B := MSComm1.Input; for i:=0 to j-1 do // 显示收到的每个数据
begin
A := Byte(B[i]);
ShowMessage(IntToHex(A, 2)); // 以十六进制显示
end;
end;