Переписал свою програмульку на Лазаре.
вот код:

Код:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  ExtCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    ListBox1: TListBox;
    OpenDialog1: TOpenDialog;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;
  i: integer;
  ddd: integer;
implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
begin
  Timer1.Enabled:=False;
  Timer1.Interval := 40;
  i := 0;
  Edit1.Visible := False;

  Button1.Visible := False;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  ListBox1.Items.Clear;
  Edit1.Visible := False;
  ListBox1.Visible := True;

 if OpenDialog1.Execute then
 ListBox1.Items.LoadFromFile(OpenDialog1.FileName);
  Button1.Visible := True;

end;

procedure TForm1.Button1Click(Sender: TObject);
var
cnc: integer;
scs: string;

begin
  if edit2.Text = ''  then ddd := 40
        else
           begin
          scs:= Edit2.Text;
           for cnc := 1 to length(scs) do
       begin
        if not (scs[cnc] in ['0'..'9']) then
       begin
       ddd := 40 ;
       break;
       end
        else
        ddd := StrToInt(Edit2.Text);
         end;
             end;
        Timer1.Interval := ddd;
        Label2.Caption := IntToStr(ListBox1.Items.Count) + '  words';



        if Button1.Caption = 'start' then
        begin
            Edit1.Visible := True;
            ListBox1.Visible := False;
            Button2.Visible := False;
             Timer1.Enabled:=True;
            Button1.Caption := 'stop';
        end
        else
        begin

             Timer1.Enabled:=False;
            Button1.Caption := 'start';
            Edit1.Visible := False;
            ListBox1.Visible := True;
            Button2.Visible := True;
        end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
   Edit1.Text := ListBox1.Items[i];
        i := i + 1;
        If i > ListBox1.Items.Count - 1 Then i := 0;


end;

end.

Скрины не прикладываю, так как внешне она не отличается от прошлой версии написанной на VB.Net.
Программа 25 кадр на VB.NET
Есть только небольшие доработки. например прячет кнопку Старт. пока не загружен словарь.
В качестве словаря может быть любой текст в формате UTF.