OSDN Git Service

IdAntiFreezeを貼り付けた (ToDo #347)
[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     procedure spnEdtEnterKeyDown(Sender: TObject; var Key: Word;
39       Shift: TShiftState);
40   private
41     procedure SetChannel(const Value: String);
42     procedure SetDateHi(const Value: TDateTime);
43     procedure SetDateLo(const Value: TDateTime);
44     procedure SetMinAgree(const Value: integer);
45     procedure SetMinVote(const Value: integer);
46     function GetChannel: String;
47     function GetDateHi: TDateTime;
48     function GetDateLo: TDateTime;
49     function GetMinAgree: integer;
50     function GetMinVote: integer;
51     function GetIsRange: boolean;
52     procedure SetIsRange(const Value: boolean);
53     function GetRecentCount: integer;
54     { Private \90é\8c¾ }
55   public
56     { Public \90é\8c¾ }
57     function Execute: boolean;
58     property MinVote: integer read GetMinVote write SetMinVote;
59     property MinAgree: integer read GetMinAgree write SetMinAgree;
60     property Channel: String read GetChannel write SetChannel;
61     property DateLo: TDateTime read GetDateLo write SetDateLo;
62     property DateHi: TDateTime read GetDateHi write SetDateHi;
63     property IsRange: boolean read GetIsRange write SetIsRange;
64     property RecentCount: integer read GetRecentCount;
65   end;
66
67 var
68   frmLogDownload: TfrmLogDownload;
69
70 implementation
71
72 {$R *.dfm}
73
74 procedure TfrmLogDownload.btnCancelClick(Sender: TObject);
75 begin
76   ModalResult := mrCancel;
77 end;
78
79 procedure TfrmLogDownload.btnOkClick(Sender: TObject);
80 begin
81   if CompareDate(dtFrom.DateTime, dtTo.DateTime) = 1 then
82     ShowMessage('\8aJ\8en\93ú\82Í\8fI\97¹\93ú\82æ\82è\91O\82É\82µ\82Ä\82­\82¾\82³\82¢')
83   else
84     ModalResult := mrOk;
85 end;
86
87 function TfrmLogDownload.Execute: boolean;
88 var i: integer;
89 begin
90   cbxChannel.Items.Clear;
91   for i := 0 to ChannelList.Count - 1 do begin
92     cbxChannel.Items.Add(ChannelList.ChannelItem[i].Name);
93   end;
94   cbxChannel.Text := '';
95
96   spnRecentCount.Value := 1;
97   cbxUnit.ItemIndex := 1;
98   dtFrom.Date := Date;
99   dtTo.Date := Date;
100   rbRecent.Checked := true;
101
102   spnMinVote.Value := 0;
103   spnMinAgree.Value := 0;
104   ShowModal;
105   Result := ModalResult = mrOk;
106 end;
107
108 function TfrmLogDownload.GetChannel: String;
109 begin
110   Result := cbxChannel.Text;
111 end;
112
113 function TfrmLogDownload.GetDateHi: TDateTime;
114 begin
115   Result := dtTo.DateTime;
116 end;
117
118 function TfrmLogDownload.GetDateLo: TDateTime;
119 begin
120   Result := dtFrom.DateTime;
121 end;
122
123 function TfrmLogDownload.GetMinAgree: integer;
124 begin
125   Result := spnMinAgree.Value;
126 end;
127
128 function TfrmLogDownload.GetMinVote: integer;
129 begin
130   Result := spnMinVote.Value;
131 end;
132
133 procedure TfrmLogDownload.SetChannel(const Value: String);
134 begin
135   cbxChannel.Text := Value;
136 end;
137
138 procedure TfrmLogDownload.SetDateHi(const Value: TDateTime);
139 begin
140   dtTo.DateTime := Value;
141 end;
142
143 procedure TfrmLogDownload.SetDateLo(const Value: TDateTime);
144 begin
145   dtFrom.DateTime := Value;
146 end;
147
148 procedure TfrmLogDownload.SetMinAgree(const Value: integer);
149 begin
150   spnMinAgree.Value := Value;
151 end;
152
153 procedure TfrmLogDownload.SetMinVote(const Value: integer);
154 begin
155   spnMinVote.Value := Value;
156 end;
157
158 procedure TfrmLogDownload.spnRecentCountChange(Sender: TObject);
159 begin
160   rbRecent.Checked := true;
161 end;
162
163 procedure TfrmLogDownload.cbxUnitChange(Sender: TObject);
164 begin
165   rbRecent.Checked := true;
166 end;
167
168 procedure TfrmLogDownload.dtFromChange(Sender: TObject);
169 begin
170   rbRange.Checked := true;
171 end;
172
173 procedure TfrmLogDownload.dtToChange(Sender: TObject);
174 begin
175   rbRange.Checked := true;
176 end;
177
178 function TfrmLogDownload.GetIsRange: boolean;
179 begin
180   Result := rbRange.Checked;
181 end;
182
183 procedure TfrmLogDownload.SetIsRange(const Value: boolean);
184 begin
185   if Value then rbRange.Checked := true else rbRecent.Checked := true;
186 end;
187
188 function TfrmLogDownload.GetRecentCount: integer;
189 var u: integer;
190 begin
191   case cbxUnit.ItemIndex of
192     0: u := 1;
193     1: u := 60;
194     2: u := 60 * 24;
195     else u := 1;
196   end;
197   Result := spnRecentCount.Value * u;
198 end;
199    
200 {SpinEdit\82Å\83G\83\93\83^\81[\83L\81[\82ª\89\9f\82³\82ê\82½\82Æ\82«\82É
201  OK\83{\83^\83\93\82ð\89\9f\89º\82·\82é}
202  
203 procedure TfrmLogDownload.spnEdtEnterKeyDown(Sender: TObject;
204 var Key: Word; Shift: TShiftState);
205 begin
206   if Key = VK_RETURN then
207   begin
208       ModalResult := mrOk;
209   end
210 end;
211
212 end.