集合类型应用

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    Edit1: TEdit;
    Label1: TLabel;
    ComboBox1: TComboBox;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Button1: TButton;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Edit1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function leapyear(y: integer): string;                            //偶数函数
begin
  if (y mod 4 = 0) and (y mod 100 <> 0) or (y mod 4 = 0) then
    leapyear := '是'
  else
    leapyear := '不是';
end;

function ji(m: word): string;                                     //季节函数
type
  jijie = set of 1..12;
var
  spring,summer,autumn,winter: jijie;
begin
  spring := [3,4,5];
  summer := [6,7,8];
  autumn := [9,10,11];
  winter := [12,1,2];
  if m in spring then ji := '春天';
  if m in summer then ji := '夏天';
  if m in autumn then ji := '秋天';
  if m in winter then ji := '冬天';
end;

procedure TForm1.Button1Click(Sender: TObject);                   //'判断'按钮事件
var
  y, m, d: word;
begin
  y := strtoint(edit1.Text);
  edit2.Text := format('%s', [leapyear(y)]);
  m := strtoint(combobox1.Text);
  edit3.Text := format('%s', [ji(m)]);
  if m = 2 then
    if leapyear(y) = '是' then
      d := 29
    else
      d := 28;
  if m in [1,3,5,7,8,10,12] then
    d := 31;
  if m in [4,6,9,11] then
    d := 30;
  edit4.Text := format('%d' , [d]);
end;

procedure TForm1.Button2Click(Sender: TObject);                   //'清除'按钮事件
begin
  edit2.Text := '';
  edit3.Text := '';
  edit4.Text := '';
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);   //屏蔽按键
var
  j: set of char;
begin
  j := ['0'..'9',#8];
  if not(key in j) then key := #0;
end;

procedure TForm1.Edit1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);                                                    //鼠标移动到编辑框1事件
begin
  (sender as tedit).SetFocus;
end;

procedure TForm1.FormCreate(Sender: TObject);                     //窗体创建事件
var
  year, month, day: word;
begin
  decodedate(date, year, month, day);
  edit1.Text := inttostr(year);
  combobox1.Text := inttostr(month);
end;

end.

 

posted @ 2011-12-08 09:07  endsnow  阅读(140)  评论(0)    收藏  举报