OSDN Git Service

8d79ee9bef50365dbcc02c6a36a32ea6876e3f61
[winbottle/winbottle.git] / bottleclient / LogDownload.pas
1 unit LogDownload;
2
3 interface
4
5 uses
6   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7   Dialogs, StdCtrls, ComCtrls, Spin, BottleDef, DateUtils;
8
9 type
10   TfrmLogDownload = class(TForm)
11     btnOk: TButton;
12     btnCancel: TButton;
13     grpDate: TGroupBox;
14     dtFrom: TDateTimePicker;
15     Label1: TLabel;
16     dtTo: TDateTimePicker;
17     Label2: TLabel;
18     GroupBox1: TGroupBox;
19     Label3: TLabel;
20     Label4: TLabel;
21     Label5: TLabel;
22     spnMinVote: TSpinEdit;
23     spnMinAgree: TSpinEdit;
24     cbxChannel: TComboBox;
25     Label6: TLabel;
26     Label7: TLabel;
27     spnRecentCount: TSpinEdit;
28     Label8: TLabel;
29     rbRecent: TRadioButton;
30     rbRange: TRadioButton;
31     cbxUnit: TComboBox;
32     procedure btnCancelClick(Sender: TObject);
33     procedure btnOkClick(Sender: TObject);
34     procedure spnRecentCountChange(Sender: TObject);
35     procedure cbxUnitChange(Sender: TObject);
36     procedure dtFromChange(Sender: TObject);
37     procedure dtToChange(Sender: TObject);
38   private
39     procedure SetChannel(const Value: String);
40     procedure SetDateHi(const Value: TDateTime);
41     procedure SetDateLo(const Value: TDateTime);
42     procedure SetMinAgree(const Value: integer);
43     procedure SetMinVote(const Value: integer);
44     function GetChannel: String;
45     function GetDateHi: TDateTime;
46     function GetDateLo: TDateTime;
47     function GetMinAgree: integer;
48     function GetMinVote: integer;
49     function GetIsRange: boolean;
50     procedure SetIsRange(const Value: boolean);
51     function GetRecentCount: integer;
52     { Private \90é\8c¾ }
53   public
54     { Public \90é\8c¾ }
55     function Execute: boolean;
56     property MinVote: integer read GetMinVote write SetMinVote;
57     property MinAgree: integer read GetMinAgree write SetMinAgree;
58     property Channel: String read GetChannel write SetChannel;
59     property DateLo: TDateTime read GetDateLo write SetDateLo;
60     property DateHi: TDateTime read GetDateHi write SetDateHi;
61     property IsRange: boolean read GetIsRange write SetIsRange;
62     property RecentCount: integer read GetRecentCount;
63   end;
64
65 var
66   frmLogDownload: TfrmLogDownload;
67
68 implementation
69
70 {$R *.dfm}
71
72 procedure TfrmLogDownload.btnCancelClick(Sender: TObject);
73 begin
74   ModalResult := mrCancel;
75 end;
76
77 procedure TfrmLogDownload.btnOkClick(Sender: TObject);
78 begin
79   if CompareDate(dtFrom.DateTime, dtTo.DateTime) = 1 then
80     ShowMessage('\8aJ\8en\93ú\82Í\8fI\97¹\93ú\82æ\82è\91O\82É\82µ\82Ä\82­\82¾\82³\82¢')
81   else
82     ModalResult := mrOk;
83 end;
84
85 function TfrmLogDownload.Execute: boolean;
86 var i: integer;
87 begin
88   cbxChannel.Items.Clear;
89   for i := 0 to ChannelList.Count - 1 do begin
90     cbxChannel.Items.Add(ChannelList.ChannelItem[i].Name);
91   end;
92   cbxChannel.Text := '';
93
94   spnRecentCount.Value := 1;
95   cbxUnit.ItemIndex := 1;
96   dtFrom.Date := Date;
97   dtTo.Date := Date;
98   rbRecent.Checked := true;
99
100   spnMinVote.Value := 0;
101   spnMinAgree.Value := 0;
102   ShowModal;
103   Result := ModalResult = mrOk;
104 end;
105
106 function TfrmLogDownload.GetChannel: String;
107 begin
108   Result := cbxChannel.Text;
109 end;
110
111 function TfrmLogDownload.GetDateHi: TDateTime;
112 begin
113   Result := dtTo.DateTime;
114 end;
115
116 function TfrmLogDownload.GetDateLo: TDateTime;
117 begin
118   Result := dtFrom.DateTime;
119 end;
120
121 function TfrmLogDownload.GetMinAgree: integer;
122 begin
123   Result := spnMinAgree.Value;
124 end;
125
126 function TfrmLogDownload.GetMinVote: integer;
127 begin
128   Result := spnMinVote.Value;
129 end;
130
131 procedure TfrmLogDownload.SetChannel(const Value: String);
132 begin
133   cbxChannel.Text := Value;
134 end;
135
136 procedure TfrmLogDownload.SetDateHi(const Value: TDateTime);
137 begin
138   dtTo.DateTime := Value;
139 end;
140
141 procedure TfrmLogDownload.SetDateLo(const Value: TDateTime);
142 begin
143   dtFrom.DateTime := Value;
144 end;
145
146 procedure TfrmLogDownload.SetMinAgree(const Value: integer);
147 begin
148   spnMinAgree.Value := Value;
149 end;
150
151 procedure TfrmLogDownload.SetMinVote(const Value: integer);
152 begin
153   spnMinVote.Value := Value;
154 end;
155
156 procedure TfrmLogDownload.spnRecentCountChange(Sender: TObject);
157 begin
158   rbRecent.Checked := true;
159 end;
160
161 procedure TfrmLogDownload.cbxUnitChange(Sender: TObject);
162 begin
163   rbRecent.Checked := true;
164 end;
165
166 procedure TfrmLogDownload.dtFromChange(Sender: TObject);
167 begin
168   rbRange.Checked := true;
169 end;
170
171 procedure TfrmLogDownload.dtToChange(Sender: TObject);
172 begin
173   rbRange.Checked := true;
174 end;
175
176 function TfrmLogDownload.GetIsRange: boolean;
177 begin
178   Result := rbRange.Checked;
179 end;
180
181 procedure TfrmLogDownload.SetIsRange(const Value: boolean);
182 begin
183   if Value then rbRange.Checked := true else rbRecent.Checked := true;
184 end;
185
186 function TfrmLogDownload.GetRecentCount: integer;
187 var u: integer;
188 begin
189   case cbxUnit.ItemIndex of
190     0: u := 1;
191     1: u := 60;
192     2: u := 60 * 24;
193     else u := 1;
194   end;
195   Result := spnRecentCount.Value * u;
196 end;
197
198 end.