Показать сообщение отдельно
  #6  
Старый 07.03.2014, 00:27
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Опа, оказывается-то ТЗ поменялось, нужно уже ашипки чтоб исправляло, тогда ещё вариант, только едит на форму киньте - в нём будет слово для "издевательств"
Код:
type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Timer1: TTimer;
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    procedure Pechataem(s:string);
    function Stiraem(sim:integer): boolean;
    { Public declarations }
  end;

var
  Form1: TForm1;
  n,i: integer;
  str: string;
  slovo,dovesok: string;
  flg,flt: boolean;

  implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
fb: boolean;
begin
  fb:=false;
  Slovo:='';
  Dovesok:='';
  // пример ввода в едит, после | идёт вариант исправления
  // Edit1.Text:= 'Veretino|eno';
  for i:=1 to Length(Edit1.Text) do
   begin
    if Edit1.Text[i] = '|' then fb:= true;
    if fb then
     begin
      if Edit1.Text[i] <> '|' then Dovesok:= Dovesok + Edit1.Text[i];
     end else Slovo:= Slovo + Edit1.Text[i];
  end;

  Memo1.Clear;

  n:= 0;
  Timer1.Enabled:= true;
  flg:= true;
  flt:= false;
  end;

procedure TForm1.Pechataem(s: string);
begin
  Inc(n);
  if n<=length(s) then
    begin
     Memo1.Text:=Memo1.Text + s[n];
     Timer1.Interval:=100 + Random(100);
    end
  else
    begin
    n:=0;
    flg:=false;
    if flt then Timer1.Enabled:= 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(Slovo) else
  if Stiraem(Length(Dovesok))then
  begin
  flg:= true;
  Slovo:= Dovesok;
  flt:= true;
  end;
  end;
Ответить с цитированием