const Src : Array[0..12] Of Char = ('H','o','w',' ','a','r','e',' ','y','o','u',' ','!'); var Cur : integer = 0;procedure TForm1.FormCreate(Sender: TObject); begin RichEdit1.Text := string(Src); end;procedure TForm1.RichEdit2KeyPress(Sender: TObject; var Key: Char); begin if Key = #8 then Dec(Cur); if Key = Src[Cur] then Inc(Cur) else begin Key := #0; beep; end; end;
上面是练习模式的。下面再给你一种游戏模式的: const Src : Array[0..9] Of Char = ('H','o','w','a','r','e','y','o','u','!'); var Cur : integer = 0;procedure TForm1.Timer1Timer(Sender: TObject); var X, Y : Integer; begin Caption := '请击键'; X := Random(200); Y := Random(200); Canvas.TextOut(X, Y, Src[Cur]); Inc(Cur); if Cur > High(Src) then begin Caption := '游戏结束'; Timer1.Enabled := false; end; end;procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin if Key = Src[Cur-1] then caption := '击打正确!' else Caption := '错!'; end;procedure TForm1.FormCreate(Sender: TObject); begin Timer1.Interval := 3000; Timer1.Enabled := True; end;呵呵,急匆匆地写的,不太完美
其实很简单,已给你改了,如下:const Src : Array[0..12] Of Char = ('H','o','w',' ','a','r','e',' ','y','o','u',' ','!'); var Cur : integer = 0;procedure TForm1.FormCreate(Sender: TObject); begin RichEdit1.Text := string(Src); end;procedure TForm1.RichEdit2KeyPress(Sender: TObject; var Key: Char); begin if Key = #8 then Dec(Cur); if Key = Src[Cur] then begin RichEdit1.SelStart := Cur; RichEdit1.SelLength := 1; RichEdit1.SelAttributes.Color := clRed; Inc(Cur); end else begin Key := #0; beep; end; end;
procedure TForm1.FormCreate(Sender: TObject); begin RichEdit1.Text := string(Src); RichEdit2.Lines.Clear; //////加上这句好一点。上面所有的代码都是思路,你需要自己丰富它 end;
Src : Array[0..12] Of Char = ('H','o','w',' ','a','r','e',' ','y','o','u',' ','!');
var
Cur : integer = 0;procedure TForm1.FormCreate(Sender: TObject);
begin
RichEdit1.Text := string(Src);
end;procedure TForm1.RichEdit2KeyPress(Sender: TObject; var Key: Char);
begin
if Key = #8 then Dec(Cur);
if Key = Src[Cur] then Inc(Cur) else begin Key := #0; beep; end;
end;
const
Src : Array[0..9] Of Char = ('H','o','w','a','r','e','y','o','u','!');
var
Cur : integer = 0;procedure TForm1.Timer1Timer(Sender: TObject);
var
X, Y : Integer;
begin
Caption := '请击键';
X := Random(200);
Y := Random(200);
Canvas.TextOut(X, Y, Src[Cur]);
Inc(Cur);
if Cur > High(Src) then
begin
Caption := '游戏结束';
Timer1.Enabled := false;
end;
end;procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key = Src[Cur-1] then caption := '击打正确!' else Caption := '错!';
end;procedure TForm1.FormCreate(Sender: TObject);
begin
Timer1.Interval := 3000;
Timer1.Enabled := True;
end;呵呵,急匆匆地写的,不太完美
比如:系統出了一個English單詞。我照著這個單詞來打,每打一個對的。系統就給他標上顏色又怎么做呢?比如:我打了E,那么系統給出的那個English單詞的E字就變為紅色。再次謝謝你, 這么快回我問題。
http://community.csdn.net/Expert/topic/5363/5363311.xml?temp=.6485712
我就不帮你改写了。只要思路有了,对你来说改写难度应该不大。
Src : Array[0..12] Of Char = ('H','o','w',' ','a','r','e',' ','y','o','u',' ','!');
var
Cur : integer = 0;procedure TForm1.FormCreate(Sender: TObject);
begin
RichEdit1.Text := string(Src);
end;procedure TForm1.RichEdit2KeyPress(Sender: TObject; var Key: Char);
begin
if Key = #8 then Dec(Cur);
if Key = Src[Cur] then
begin
RichEdit1.SelStart := Cur;
RichEdit1.SelLength := 1;
RichEdit1.SelAttributes.Color := clRed;
Inc(Cur);
end else begin Key := #0; beep; end;
end;
begin
RichEdit1.Text := string(Src);
RichEdit2.Lines.Clear; //////加上这句好一点。上面所有的代码都是思路,你需要自己丰富它
end;
建议你另开一贴提问。一贴一问题,这应该是尊重别人的表现。如果觉得问题不值100分,可以在发贴的时候按CSDN默认的分值,不必发100分贴。
细想一下,这个软件,本来难度就不大;呵~~ 难道你不想自己动脑解决一些具体的问题,然后正大光明地在软件作者一栏里写上你的名字?如果所有问题都是别人完成的,那么,“作者”....自己动脑试验解决难题,是进步的一种捷径。这是我的亲身体会。请结贴。