⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 实例——月历.txt

📁 Delphi 7组件应用实例 书籍语言: 简体中文 书籍类型: 程序设计 授权方式: 免费软件 书籍大小: 105 KB
💻 TXT
字号:
unit UGrid;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids,DateUtils, StdCtrls;//DateUtils
type
  TFGrid = class(TForm)
    StringGrid1: TStringGrid;
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    Label1: TLabel;
    Label2: TLabel;
    procedure FormCreate(Sender: TObject);
    Procedure ShowGrid();
    procedure ComboBox1Change(Sender: TObject);
    procedure ComboBox2Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FGrid: TFGrid;
  TheMonth,TheYear:integer;

implementation

{$R *.dfm}

procedure TFGrid.FormCreate(Sender: TObject);
begin
  //设置串网格的列数和行数
  StringGrid1.ColCount :=8;
  StringGrid1.RowCount := 7;

  //设置串网格的第一行中的各单元中显示的字符串
  StringGrid1.Cells[1,0] :='星期一';
  StringGrid1.Cells[2,0] :='星期二';
  StringGrid1.Cells[3,0] :='星期三';
  StringGrid1.Cells[4,0] :='星期四';
  StringGrid1.Cells[5,0] :='星期五';
  StringGrid1.Cells[6,0] :='星期六';
  StringGrid1.Cells[7,0] :='星期日';

  //使程序启动时显示当月的月历
  TheYear := Yearof(date());
  TheMonth := MonthOf(date());
  Combobox1.ItemIndex := TheYear mod 2000;
  Combobox2.ItemIndex :=TheMonth-1 ;
  ShowGrid();       //刷新串网格
end;

Procedure TFGrid.ShowGrid();
var
 i,j,k,thisday:integer;  //分别表示月日的循环变量
 FirstDay:TDateTime;
 DaySum:Integer;         //月内总天数
begin
 //获取当月第一天的星期
  FirstDay :=EncodeDate(TheYear,TheMonth,1);
  j :=DayOfTheWeek(FirstDay);
  //获取当月总天数
  DaySum:=DayOfTheMonth(EndOfTheMonth(FirstDay));

  //表示要写入 StringGrid组件中的日期的当前值
  thisday :=1;
  //将各日期写入StringGrid组件中
  for i:=1 to 6 do
     for k:=1 to 7 do
       begin
         if (((i-1)*7+k)<j)  or (((i-1)*7+k)>= DaySum+j) then
           StringGrid1.Cells[k,i] :=''
         else
           begin
              if Date()= EncodeDate(TheYear,TheMonth,thisday) then
                StringGrid1.Cells[k,i] :=inttostr(thisday)+'  *Now*'
              else
                StringGrid1.Cells[k,i] :=inttostr(thisday);
              thisday :=thisday +1;
           end;
        end;
end;

procedure TFGrid.ComboBox1Change(Sender: TObject);
begin
   TheYear :=Combobox1.ItemIndex +2000;
   ShowGrid();
end;

procedure TFGrid.ComboBox2Change(Sender: TObject);
begin
  TheMonth :=Combobox2.ItemIndex+1;
  ShowGrid();
end;

end.


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -