
CIO
   
Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty
Репутация: 7 Всего: 122
|
Дароф. Мне попросили доделать вот этот исходник... | Код |
unit frmTimePeriodSelector;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Buttons, ComCtrls, StdCtrls, DateUtils;
type TTimeUnitTypes = (All, Year, Month, Week, Day); TWeekNo = String[7]; // '2006:23' is week 23 in 2006 TfmTimePeriodSelector = class(TForm) CmbTimeUnitSelector: TComboBox; BtnFirst: TButton; BtnPrior: TButton; BtnNext: TButton; BtnLast: TButton; LblFirst: TLabel; BtnFirstDate: TSpeedButton; BtnLastDate: TSpeedButton; LblLast: TLabel; DtpFirstDate: TDateTimePicker; DtpLastDate: TDateTimePicker; procedure CmbTimeUnitSelectorChange(Sender: TObject); procedure GotoFirstPossibleDate(Sender: TObject); procedure GotoLastPossibleDate(Sender: TObject); procedure GotoNextTimeUnit(Sender: TObject); procedure GotoPreviousTimeUnit(Sender: TObject); procedure FormShow(Sender: TObject); procedure BtnFirstDateClick(Sender: TObject); procedure BtnLastDateClick(Sender: TObject); procedure BtnFirstClick(Sender: TObject); procedure BtnLastClick(Sender: TObject); private fFirstAvailableDate : TDate; fLastAvailableDate : TDate; fSelectedTimeUnit : TTimeUnitTypes; fWholeTimeUnitsOnly : Boolean; fFirstSelectedDate : TDate; fLastSelectedDate : TDate; fFirstSelectedWeek : TWeekNo; fLastSelectedWeek : TWeekNo; public function GetFirstAvailableDate: TDate; procedure SetFirstAvailableDate(TheFirstDate: TDate); function GetLastAvailableDate: TDate; procedure SetLastAvailableDate(TheFirstDate: TDate); function GetSelectedTimeUnit: TTimeUnitTypes; procedure SetSelectedTimeUnit(TheSelectedTime: TTimeUnitTypes); function GetFirstSelectedDate: TDate; procedure SetFirstSelectedDate(TheFirstSelected: TDate); function GetLastSelectedDate: TDate; procedure SetLastSelectedDate(TheFirstDate: TDate); function GetFirstSelectedWeek: TWeekNo; procedure SetFirstSelectedWeek(TheFirstWeek: TWeekNo); function GetLastSelectedWeek: TWeekNo; procedure SetLastSelectedWeek(TheLastWeek: TWeekNo); published property FirstAvailableDate : TDate read fFirstAvailableDate write SetFirstAvailableDate; property LastAvailableDate : TDate read fLastAvailableDate write SetLastAvailableDate; property SelectedTimeUnit : TTimeUnitTypes read fSelectedTimeUnit write SetSelectedTimeUnit; property WholeTimeUnitsOnly : Boolean read fWholeTimeUnitsOnly write fWholeTimeUnitsOnly; property FirstSelectedDate : TDate read fFirstSelectedDate write SetFirstSelectedDate; property LastSelectedDate : TDate read fLastSelectedDate write SetLastSelectedDate; property FirstSelectedWeek : TWeekNo read fFirstSelectedWeek write SetFirstSelectedWeek; // Calculation of the week number in which the FirstSelectedDate falls property LastSelectedWeek : TWeekNo read fLastSelectedWeek write SetLastSelectedWeek; // Calculation of the week number in which the LastSelectedDate falls end;
var fmTimePeriodSelector: TfmTimePeriodSelector;
implementation
uses FrmCalend;
{$R *.dfm}
procedure TfmTimePeriodSelector.CmbTimeUnitSelectorChange(Sender: TObject); begin if (CmbTimeUnitSelector.Text = 'All') then begin LblFirst.Caption := 'First Date'; LblLast.Caption := 'Last Date'; BtnFirstDate.Enabled:=True; BtnLastDate.Enabled:=True; end else if (CmbTimeUnitSelector.Text = 'Years') then begin LblFirst.Caption := 'First Year'; LblLast.Caption := 'Last Year'; BtnFirstDate.Enabled:=False; BtnLastDate.Enabled:=False; DtpFirstDate.Date:=StrToDate('01.01.'+copy(DateToStr(Now),7,4)); DtpLastDate.Date:=StrToDate('31.12.'+copy(DateToStr(Now),7,4)); fmTimePeriodSelector.BtnFirst.Enabled:=True; fmTimePeriodSelector.BtnLast.Enabled:=True; end else if (CmbTimeUnitSelector.Text = 'Quarters') then begin LblFirst.Caption := 'First Date'; LblLast.Caption := 'Last Date'; BtnFirstDate.Enabled:=True; if(StrToInt(copy(DateToStr(DtpFirstDate.Date),4,2)) in [1..3])then begin DtpFirstDate.Date:=StrToDate('01.01.'+copy(DateToStr(DtpFirstDate.Date),7,4)); DtpLastDate.Date:=StrToDate(IntToStr(DaysInAMonth(StrToInt(copy(DateToStr(DtpFirstDate.Date),7,4)),3))+'.03'+'.'+copy(DateToStr(DtpFirstDate.Date),7,4)); end else if(StrToInt(copy(DateToStr(DtpFirstDate.Date),4,2)) in [4..6])then begin DtpFirstDate.Date:=StrToDate('01.04.'+copy(DateToStr(DtpFirstDate.Date),7,4)); DtpLastDate.Date:=StrToDate(IntToStr(DaysInAMonth(StrToInt(copy(DateToStr(DtpFirstDate.Date),7,4)),6))+'.06.'+copy(DateToStr(DtpFirstDate.Date),7,4)); end else if(StrToInt(copy(DateToStr(DtpFirstDate.Date),4,2)) in [7..9])then begin DtpFirstDate.Date:=StrToDate('01.07.'+copy(DateToStr(DtpFirstDate.Date),7,4)); DtpLastDate.Date:=StrToDate(IntToStr(DaysInAMonth(StrToInt(copy(DateToStr(DtpFirstDate.Date),7,4)),9))+'.09.'+copy(DateToStr(DtpFirstDate.Date),7,4)); end else if(StrToInt(copy(DateToStr(DtpFirstDate.Date),4,2)) in [10..12])then begin DtpFirstDate.Date:=StrToDate('01.10.'+copy(DateToStr(DtpFirstDate.Date),7,4)); DtpLastDate.Date:=StrToDate(IntToStr(DaysInAMonth(StrToInt(copy(DateToStr(DtpFirstDate.Date),7,4)),12))+'.12.'+copy(DateToStr(DtpFirstDate.Date),7,4)); end end else if(CmbTimeUnitSelector.Text = 'Months')then begin LblFirst.Caption := 'First Day'; LblLast.Caption := 'Last Day'; BtnFirstDate.Enabled:=True; end else if(CmbTimeUnitSelector.Text = 'Weeks') then begin LblFirst.Caption := 'First Day'; LblLast.Caption := 'Last Day'; BtnFirstDate.Enabled:=True; end else if(CmbTimeUnitSelector.Text = 'Custom')then begin LblFirst.Caption := 'First Date'; LblLast.Caption := 'Last Date'; BtnFirstDate.Enabled:=True; BtnLastDate.Enabled:=True; end; end;
procedure TfmTimePeriodSelector.GotoFirstPossibleDate(Sender: TObject); begin // This event moves the StartDate of the SelectedTimeWindow to the first possible date end;
procedure TfmTimePeriodSelector.GotoLastPossibleDate(Sender: TObject); begin // This event moves the EndDate of the SelectedTimeWindow to the last possible date end;
procedure TfmTimePeriodSelector.GotoNextTimeUnit(Sender: TObject); begin // This event moves the rolling window one TimeUnit forward end;
procedure TfmTimePeriodSelector.GotoPreviousTimeUnit(Sender: TObject); begin //I added end;
function TfmTimePeriodSelector.GetFirstAvailableDate: TDate; begin fFirstAvailableDate:=DtpFirstDate.Date; Result:=DtpFirstDate.Date; end;
procedure TfmTimePeriodSelector.SetFirstAvailableDate(TheFirstDate: TDate); begin if(fmTimePeriodSelector.CmbTimeUnitSelector.Text='All')then begin end end;
function TfmTimePeriodSelector.GetLastAvailableDate: TDate; begin // 55 end;
procedure TfmTimePeriodSelector.SetLastAvailableDate(TheFirstDate: TDate); begin //dd end;
function TfmTimePeriodSelector.GetSelectedTimeUnit: TTimeUnitTypes; begin //gdfgdf end;
procedure TfmTimePeriodSelector.SetSelectedTimeUnit(TheSelectedTime: TTimeUnitTypes); begin //dasd end;
function TfmTimePeriodSelector.GetFirstSelectedDate: TDate; begin //dsf end;
procedure TfmTimePeriodSelector.SetFirstSelectedDate(TheFirstSelected: TDate); begin //dsfv end;
function TfmTimePeriodSelector.GetLastSelectedDate: TDate; begin //bgbdf end;
procedure TfmTimePeriodSelector.SetLastSelectedDate(TheFirstDate: TDate); begin //fsdfs end;
function TfmTimePeriodSelector.GetFirstSelectedWeek: TWeekNo; begin //bcxvbcvb end;
procedure TfmTimePeriodSelector.SetFirstSelectedWeek(TheFirstWeek: TWeekNo); begin //vzxbv end;
function TfmTimePeriodSelector.GetLastSelectedWeek: TWeekNo; begin //vxcv end;
procedure TfmTimePeriodSelector.SetLastSelectedWeek(TheLastWeek: TWeekNo); begin //bxcvb end;
procedure TfmTimePeriodSelector.FormShow(Sender: TObject); begin CmbTimeUnitSelector.Enabled:=True; end;
procedure TfmTimePeriodSelector.BtnFirstDateClick(Sender: TObject); begin FrmCalendShow.whichAdd:='First'; FrmCalendShow.Show; if (CmbTimeUnitSelector.Text = 'All') then begin DtpFirstDate.Enabled:=True; end else if (CmbTimeUnitSelector.Text = 'Years') then begin DtpFirstDate.Enabled:=True; end else if (CmbTimeUnitSelector.Text = 'Quarters') then begin DtpFirstDate.Enabled:=True; end else if(CmbTimeUnitSelector.Text = 'Months')then begin DtpFirstDate.Enabled:=True; end else if(CmbTimeUnitSelector.Text = 'Weeks') then begin DtpFirstDate.Enabled:=True; end else if(CmbTimeUnitSelector.Text = 'Custom')then begin DtpFirstDate.Enabled:=True; DtpLastDate.Enabled:=True; end; end;
procedure TfmTimePeriodSelector.BtnLastDateClick(Sender: TObject); begin FrmCalendShow.whichAdd:='Last'; end;
procedure TfmTimePeriodSelector.BtnFirstClick(Sender: TObject); begin if(CmbTimeUnitSelector.Text='Years')then begin DtpFirstDate.Date:=StrToDate('01.01.'+IntToStr(StrToInt(copy(DateToStr(DtpFirstDate.Date),7,4))-1)); DtpLastDate.Date:=StrToDate('31.12.'+IntToStr(StrToInt(copy(DateToStr(DtpLastDate.Date),7,4))-1)); end; end;
procedure TfmTimePeriodSelector.BtnLastClick(Sender: TObject); begin if(CmbTimeUnitSelector.Text='Years')then begin DtpFirstDate.Date:=StrToDate('01.01.'+IntToStr(StrToInt(copy(DateToStr(DtpFirstDate.Date),7,4))+1)); DtpLastDate.Date:=StrToDate('31.12.'+IntToStr(StrToInt(copy(DateToStr(DtpLastDate.Date),7,4))+1)); end; end;
end.
|
я понимаю как все реализовать без класса, но нужно использовать Как например описать один из property, что за переменные в нем используются??? и с ним связаны функция и процудура... опишите хотя бы несколько этих функций, чтобы я понял принцип... прошу не кидать ссылки на ООП... все на форуме пересмотрел... Спасибо...
|