Blame lazarus/typing/unit1.pas

f1e5db
unit Unit1;
f1e5db
f1e5db
{$mode objfpc}{$H+}
f1e5db
f1e5db
interface
f1e5db
f1e5db
uses
f1e5db
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
f1e5db
  StdCtrls;
f1e5db
f1e5db
type
f1e5db
f1e5db
  { TForm1 }
f1e5db
f1e5db
  TForm1 = class(TForm)
f1e5db
    Button1: TButton;
f1e5db
    Edit1: TEdit;
f1e5db
    Edit2: TEdit;
f1e5db
    Image1: TImage;
f1e5db
    Image2: TImage;
f1e5db
    Timer1: TTimer;
f1e5db
    procedure Button1Click(Sender: TObject);
f1e5db
    procedure Edit1Change(Sender: TObject);
f1e5db
    procedure Edit2Change(Sender: TObject);
f1e5db
    procedure Timer1Timer(Sender: TObject);
f1e5db
  private
f1e5db
    { private declarations }
f1e5db
  public
f1e5db
    { public declarations }
f1e5db
  end;
f1e5db
f1e5db
var
f1e5db
  Form1: TForm1;
f1e5db
  play: boolean = false;
f1e5db
f1e5db
implementation
f1e5db
f1e5db
{$R *.lfm}
f1e5db
f1e5db
{ TForm1 }
f1e5db
f1e5db
procedure TForm1.Edit2Change(Sender: TObject);
f1e5db
begin
f1e5db
  if play then begin
f1e5db
    if copy(Edit1.Text, 1, Length(Edit2.Text)) <> Edit2.Text then begin
f1e5db
      Edit2.Text := copy(Edit2.Text, 1, Length(Edit2.Text)-1);
f1e5db
      Edit2.SelStart := Length(Edit2.Text);
f1e5db
    end else begin
f1e5db
      Image2.Left := Edit1.Left + round(Edit1.Width*Length(Edit2.Text)/Length(Edit1.Text));
f1e5db
      if Edit1.Text = Edit2.Text then begin
f1e5db
        play := false;
f1e5db
        Edit1.ReadOnly := false;
f1e5db
        ShowMessage('You WIN!!!');
f1e5db
      end;
f1e5db
    end;
f1e5db
  end;
f1e5db
end;
f1e5db
f1e5db
procedure TForm1.Edit1Change(Sender: TObject);
f1e5db
begin
f1e5db
f1e5db
end;
f1e5db
f1e5db
procedure TForm1.Timer1Timer(Sender: TObject);
f1e5db
begin
f1e5db
  if play then begin
f1e5db
    Image1.Left := Image1.Left + 10;
f1e5db
    if Image1.Left >= Edit1.Left + Edit1.Width then begin
f1e5db
      play := false;
f1e5db
      Edit1.ReadOnly := false;
f1e5db
      ShowMessage('You loze');
f1e5db
    end;
f1e5db
  end;
f1e5db
end;
f1e5db
f1e5db
procedure TForm1.Button1Click(Sender: TObject);
f1e5db
begin
f1e5db
 Image1.Left := Edit1.Left;
f1e5db
 Image2.Left := Edit2.Left;
f1e5db
f1e5db
 Edit1.ReadOnly := True;
f1e5db
 Edit2.Text := '';
f1e5db
 Edit2.SetFocus;
f1e5db
f1e5db
 play := true;
f1e5db
end;
f1e5db
f1e5db
end.
f1e5db