unit DateF;interfaceuses
  SysUtils, Windows, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, Dates, StdCtrls;type
  TDateForm = class(TForm)
    LabelDate: TLabel;
    BtnIncrease: TButton;
    BtnDecrease: TButton;
    BtnAdd10: TButton;
    BtnSubtract10: TButton;
    BtnLeap: TButton;
    BtnToday: TButton;
    procedure BtnIncreaseClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BtnDecreaseClick(Sender: TObject);
    procedure BtnAdd10Click(Sender: TObject);
    procedure BtnSubtract10Click(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure BtnLeapClick(Sender: TObject);
    procedure BtnTodayClick(Sender: TObject);
  private
    TheDay: TDate;
  public
    { Public declarations }
  end;var
  DateForm: TDateForm;implementation{$R *.DFM}procedure TDateForm.FormCreate(Sender: TObject);
begin
  TheDay := TDate.Create (2001, 12, 25);
  LabelDate.Caption := TheDay.GetText;
end;procedure TDateForm.BtnIncreaseClick(Sender: TObject);
begin
  TheDay.Increase;
  LabelDate.Caption := TheDay.GetText;
end;procedure TDateForm.BtnDecreaseClick(Sender: TObject);
begin
  TheDay.Decrease;
  LabelDate.Caption := TheDay.GetText;
end;procedure TDateForm.BtnAdd10Click(Sender: TObject);
begin
  TheDay.Increase (10);
  LabelDate.Caption := TheDay.GetText;
end;procedure TDateForm.BtnSubtract10Click(Sender: TObject);
begin
  TheDay.Decrease (10);
  LabelDate.Caption := TheDay.GetText;
end;procedure TDateForm.FormDestroy(Sender: TObject);
begin
  TheDay.Free;
end;procedure TDateForm.BtnLeapClick(Sender: TObject);
begin
  if TheDay.LeapYear then
    ShowMessage ('Leap year')
  else
    ShowMessage ('NON Leap year');
end;procedure TDateForm.BtnTodayClick(Sender: TObject);
begin
  TheDay.SetValue (Date);
  LabelDate.Caption := TheDay.GetText;
end;end.
unit Dates;interfacetype
  TDate = class
  private
    fDate: TDateTime;
    procedure SetDay(const Value: Integer);
    procedure SetMonth(const Value: Integer);
    procedure SetYear(const Value: Integer);
    function GetDay: Integer;
    function GetMonth: Integer;
    function GetYear: Integer;
  public
    constructor Create; overload;
    constructor Create (y, m, d: Integer); overload;
    procedure SetValue (y, m, d: Integer); overload;
    procedure SetValue (NewDate: TDateTime); overload;
    function LeapYear: Boolean;
    procedure Increase (NumberOfDays: Integer = 1);
    procedure Decrease (NumberOfDays: Integer = 1);
    function GetText: string;
    property Year: Integer read GetYear write SetYear;
    property Month: Integer read GetMonth write SetMonth;
    property Day: Integer read GetDay write SetDay;
  end;implementationuses
  SysUtils, DateUtils;procedure TDate.SetValue (y, m, d: Integer);
begin
  fDate := EncodeDate (y, m, d);         <---------这个EncodeDate的宣判在哪里??
end;function TDate.LeapYear: Boolean;
begin
  Result := IsInLeapYear(fDate);          <---------这个IsInLeapYear的宣判在哪里??
end;procedure TDate.Increase (NumberOfDays: Integer = 1);
begin
  fDate := fDate + NumberOfDays;
end;function TDate.GetText: string;
begin
  GetText := DateToStr (fDate);
end;procedure TDate.Decrease (NumberOfDays: Integer = 1);
begin
  fDate := fDate - NumberOfDays;
end;constructor TDate.Create (y, m, d: Integer);
begin
  fDate := EncodeDate (y, m, d);
end;constructor TDate.Create;
begin
  fDate := Date;
end;procedure TDate.SetValue(NewDate: TDateTime);
begin
  fDate := NewDate;
end;procedure TDate.SetDay(const Value: Integer);
begin
  fDate := RecodeDay (fDate, Value);
end;procedure TDate.SetMonth(const Value: Integer);
begin
  fDate := RecodeMonth (fDate, Value);
end;procedure TDate.SetYear(const Value: Integer);
begin
  fDate := RecodeYear (fDate, Value);
end;function TDate.GetDay: Integer;
begin
  Result := DayOf (fDate);
end;function TDate.GetMonth: Integer;
begin
  Result := MonthOf (fDate);
end;function TDate.GetYear: Integer;
begin
  Result := YearOf (fDate);
end;
end.

解决方案 »

  1.   

    那两个都是DELPHI默认的函数dateutils单元
      

  2.   

    你对着它按ctrl + click就知道它在哪了
      

  3.   

    前提是路径要正确,而且是你Uses了他们的单元。
    目前的情况下,你是可以直接定位到的
      

  4.   

    楼上说的对,我来完美补充。
    你按住ctrl键,用鼠标点击EncodeDate或者IsInLeapYear,那么你就会看到这个函数的声明了(即你说的宣判),然后你再按ctrl,shift和向下方向键,这样你就可以看函数的实现部分了。
      

  5.   

    如果是delphi5的话,对不对都跳,delphi7的话,哼哼,不得而知了。
      

  6.   

    這個是uses DateUtils單元的默認函數,在D7環境下,一般路徑設定OK後,按信ctrl+Mouse左鍵點擊單元類名稱即可找到它的聲明部分...