
06.03.2014, 23:37
|
 |
LMD-DML
|
|
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
|
|
С небольшими доработками тоже самое
Код:
unit UReal;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, MMSystem;
type
TForm1 = class(TForm)
Memo1: TMemo;
Timer1: TTimer;
Button1: TButton;
Button2: TButton;
Timer2: TTimer;
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
procedure Pechataem(slovo:string);
function Stiraem(sim:integer): boolean;
{ Public declarations }
end;
var
Form1: TForm1;
n,i,cnt: integer;
str: string;
slv: array[0..9] of string =
('vereteno','koleso','plug','topor','domkrat',
'ressora' ,'vagon' ,'led' ,'grot' ,'plot');
ers: array[0..9] of integer =(2, 4, 1, 3, 4, 2, 1, 1, 2, 1);
flg: boolean;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Clear;
cnt:= 0;
n:= 0;
Timer1.Enabled:= true;
flg:= true;
end;
procedure TForm1.Pechataem(slovo: string);
begin
Inc(n);
if n<=length(slovo) then
begin
Memo1.Text:=Memo1.Text + slovo[n];
Timer1.Interval:=100 + Random(100);
end
else
begin
n:=0;
flg:=false;
end;
end;
function TForm1.Stiraem(sim: integer): boolean;
begin
Result:= false;
if i<=sim then
begin
str:=Memo1.Text;
Delete(str,length(str),i);
Timer1.Interval:=100 + Random(50);
Memo1.Text:=str;
Inc(i);
end
else
begin
Result:= true;
i:=0;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if flg then Pechataem(' ' + slv[cnt]) else
if Stiraem(ers[cnt])then
begin
inc(cnt);
if cnt = 10 then cnt:= 0;
flg:= true;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Timer1.Enabled:= false;
end;
end.
|