我的桌面上有120个Edit和120个ComboBox控件,我现在需要将接收的数据显示在这240个控件里,
接收的数据格式是这样的:前5个字节为头标志,从第6个开始为正式数据,每4个字节为一组,例如:
第6 7 8 个字节的数据处理组合后显示在Edit1里,第9个字节数据通过处理后显示ComboBox1的内容,以此类推,所以
我写了以下的程序:
Var
i,j,k : Integer;
T1,T2 : TCOmponent;
s,strRecv : String;
s1 : array[1..500] of String;
begin
for i :=1 to 120 do
begin
T1 :=FindComponent('AutoFitDlg.Edit'+IntToStr(i));
T2 :=FindComponent('AutoFitDlg.ComboBox'+IntToStr(i));
if (T1<>nil) and (T1 is TEdit) and (T2<>nil) and (T2 is TComboBox) then
begin
s :='';
k :=2+4*i;
for j :=k to k+2 do
begin
s1[j] :=format('%d',[ord(strRecv[j])]);
case StrToInt(s1[j]) of
0 : s1[j] :='00';
1 : s1[j] :='01';
2 : s1[j] :='02';
3 : s1[j] :='03';
4 : s1[j] :='04';
5 : s1[j] :='05';
6 : s1[j] :='06';
7 : s1[j] :='07';
8 : s1[j] :='08';
9 : s1[j] :='09';
end;
s :=s+s1[j];
end;
TEdit(T1).Text :=s[1]+s[2]+'.'+s[3]+s[4]+s[5]+s[6];
TComboBox(T2).ItemIndex :=ord(strRecv[k+3])-48;
end;
end;
end;
当然,我用的SPCOMM控件,这段程序在它的OnReceiveData事件里,接收的数据保存在上面程序中的strRecv字符串中,
我现在不明白的是:以上这段程序的功能实现不了,接收回来后,显示内容是空的,但我不知道这段程序
什么地方是错的,希望大家不吝赐教。
数据的接收没有问题,我挨个挨个地试过前10个,没有问题,能够正常显示,但写成这种控件数据的形式就不行了。
因为我不想一个一个地去写,那样是没有问题的,但代码要几千行的。
接收的数据格式是这样的:前5个字节为头标志,从第6个开始为正式数据,每4个字节为一组,例如:
第6 7 8 个字节的数据处理组合后显示在Edit1里,第9个字节数据通过处理后显示ComboBox1的内容,以此类推,所以
我写了以下的程序:
Var
i,j,k : Integer;
T1,T2 : TCOmponent;
s,strRecv : String;
s1 : array[1..500] of String;
begin
for i :=1 to 120 do
begin
T1 :=FindComponent('AutoFitDlg.Edit'+IntToStr(i));
T2 :=FindComponent('AutoFitDlg.ComboBox'+IntToStr(i));
if (T1<>nil) and (T1 is TEdit) and (T2<>nil) and (T2 is TComboBox) then
begin
s :='';
k :=2+4*i;
for j :=k to k+2 do
begin
s1[j] :=format('%d',[ord(strRecv[j])]);
case StrToInt(s1[j]) of
0 : s1[j] :='00';
1 : s1[j] :='01';
2 : s1[j] :='02';
3 : s1[j] :='03';
4 : s1[j] :='04';
5 : s1[j] :='05';
6 : s1[j] :='06';
7 : s1[j] :='07';
8 : s1[j] :='08';
9 : s1[j] :='09';
end;
s :=s+s1[j];
end;
TEdit(T1).Text :=s[1]+s[2]+'.'+s[3]+s[4]+s[5]+s[6];
TComboBox(T2).ItemIndex :=ord(strRecv[k+3])-48;
end;
end;
end;
当然,我用的SPCOMM控件,这段程序在它的OnReceiveData事件里,接收的数据保存在上面程序中的strRecv字符串中,
我现在不明白的是:以上这段程序的功能实现不了,接收回来后,显示内容是空的,但我不知道这段程序
什么地方是错的,希望大家不吝赐教。
数据的接收没有问题,我挨个挨个地试过前10个,没有问题,能够正常显示,但写成这种控件数据的形式就不行了。
因为我不想一个一个地去写,那样是没有问题的,但代码要几千行的。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货