滚动条应用

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    ScrollBar1: TScrollBar;
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure ScrollBar1Change(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

function fac(n: integer): real;

implementation

{$R *.dfm}

function fac(n: integer): real;
begin
  if n=0 then
    fac := 1
  else
    fac := n * fac(n-1);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  e: real;
  n,i: integer;
begin
  e := 0;
  n := scrollbar1.Position;
  for i := 0 to n - 1 do
    e := e + 1/fac(i);
  edit1.Text := floattostr(e);
  //应用滚动条,来获取当前需计算的关系式的项数
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  close;
end;

procedure TForm1.ScrollBar1Change(Sender: TObject);
begin
  label2.Caption := format('计算前%d项',[scrollbar1.position]);
end;

end.

 

posted @ 2011-12-05 16:38  endsnow  阅读(149)  评论(0)    收藏  举报