求救! 用delphi编一个打字题自测程序??????????(买血求救!!!!!!)(200分)

  • 主题发起人 主题发起人 bless
  • 开始时间 开始时间
B

bless

Unregistered / Unconfirmed
GUEST, unregistred user!
求救! 用delphi编一个打字题自测程序该用什么控件?
怎样实现?具体:
一排为正文,一排对应正文打字,并给出错误提示.
该怎样解决?
 
两个Label,截获Form的OnChar,自己处理错误信息...... :-)
btw: 居然<font color="red">买</font>血求救?
 
自己写.
分析文本因该不难吧!
 
使用String类型最为简单。
因为:
1、String可达255个字符;
2、可用下标进行存取String,即:String;
实现步骤:
1、首先从屏幕上读取一串字符->String;
2、if i<=255 then
begin
ch=读一字符;
if ch<>string then
显示出错信息
else
读下输入一个字符
i <-- i + 1;
loop;
end;
这仅是一个类Pascal算法,具体的程序还有待你自己完成。给分!!!:-)
若要处理>255的字符串,就要考虑存储问题,算法同上。
 
to bless:
其实最好自己写控件,这是Delphi得魅力之一,写控件其实非常
简单的....
to Jams:
在32位应用程序下,Delphi提供的String类型可以支持最长2G
的字符串....
 
我的意思是该用什么控件显示文本,因为它要隔行显示?
 
隔行显示谁呀?
你的构想是什么?出一个字母,打掉一个字母;还是出
一句话,打一句话?
用茶叶蛋所说的2个Lable不行吗?
 
bless想的应该是出一句话,打一句话.
在一屏上可以动态生成多个Label嘛,用Label多好,又简单,又实用.
不过只有一个缺点:打错了,将该文字强调显示没有现成的程序可用,
但是自己OwnerDraw一下也是蛮好的嘛!
 
要么干脆用Label来显示要打的内容,然后在Form的Canvas上直接TextOut用户
的输入,这样出错之后就可以用不同的颜色来显示了
 
用LABEL控件完全可以,至于校验需要自己分析
如打英文比较简单,如果是汉字需分析内码。
输入可完全用ONKEYPRESS实现,输出可在屏幕上放置LABEL自己通过校验后输出
 
是出一行文字,打一行文字,再出一行文字,再打一行文字!!!!!!!1
 
LABEL无法显示两种颜色的文字吧?
所以需要自己写,用 CANVAS.TEXTOUT 吧
 
对啊,生成两个Label,一个显示文字,一个显示您敲出来的文字,
然后打完,然后再生成两个Label,一个显示文字,一个显示您敲出来的文字,
然后......
 
谢谢各位
用Label 对固定行数的当然可以,但当文章是动态(行数不能固定)该怎么办
 
你的意思是这样的吗?
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa //文章第一行
____________________________________ //测验者第一行

bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb //文章第二行
____________________________________ //测验者第二行
如果是这样的话,干脆就在Canvas上TextOut好了,实现起来也方便。
文章的分行显示可以这样
1.根据“显示宽度/字体大小”求出每行显示的字数
2.根据字数把文章分割成几个子串
3.在不同的坐标值上TextOut各个子串
而测验者打字的显示就很容易了,只要根据每行的字数
变换坐标就可以了。在这里面加上对错的判断,也是
很容易实现的
 
多人接受答案了。
 
后退
顶部