unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; Edit1: TEdit; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation var n, a1, a2, linenr : int64; {$R *.dfm} procedure fibonacci; begin Form1.Memo1.Clear; Form1.Memo1.Lines.Add(IntToStr(linenr)+': 1'); Form1.Memo1.Lines.Add(IntToStr(linenr+1)+': 1'); while a283 then begin Form1.Memo1.Lines.Add(''); Form1.Memo1.Lines.Add('Max reached!!!'); end else begin Form1.Memo1.Lines.Add(''); end; end; procedure TForm1.Button1Click(Sender: TObject); begin fibonacci; Form1.Button1.Enabled:=False; Form1.Button2.Enabled:=True; Form1.Edit1.Enabled:=False; if StrToInt64(Form1.Edit1.Text)<3 then begin Form1.Memo1.Clear; Form1.Memo1.Lines.Add('Please choose a number higher than 2'); end; end; procedure TForm1.Button2Click(Sender: TObject); begin Form1.Memo1.Clear; Form1.Button1.Enabled:=True; Form1.Button2.Enabled:=False; Form1.Edit1.Enabled:=True; Form1.Edit1.SetFocus; linenr:=0; n:=0; a1:=1; a2:=1; end; procedure TForm1.FormCreate(Sender: TObject); begin Form1.Edit1.Enabled:=True; Form1.Button1.Enabled:=True; Form1.Button2.Enabled:=False; end; initialization linenr:=0; n:=0; a1:=1; a2:=1; end.