Develop and Download Open Source Software

Browse CVS Repository

Annotation of /gikonavigoeson/gikonavi/Round.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.7 - (hide annotations) (download) (as text)
Wed Dec 24 08:18:31 2003 UTC (20 years, 3 months ago) by deux
Branch: MAIN
Changes since 1.6: +4 -4 lines
File MIME type: text/x-pascal
・巡回の順序が逆(新しい順)だったのを、ハ゛タ43と同じように登録した順に戻した
・新しく登録した巡回アイテムが先頭に追加されたのを、ハ゛タ43と同じように末尾に追加するように戻した。

1 hi_ 1.1 unit Round;
2    
3     interface
4    
5     uses
6     Windows, Classes, Controls, Forms, StdCtrls, ComCtrls, Menus,
7     SysUtils, ImgList, ExtCtrls, GikoSystem, GikoUtil;
8    
9     type
10     TRoundDialog = class(TForm)
11     RoundPopupMenu: TPopupMenu;
12     C1: TMenuItem;
13     P1: TMenuItem;
14     N1: TMenuItem;
15     D1: TMenuItem;
16     ItemIcon16: TImageList;
17     Panel1: TPanel;
18     Label1: TLabel;
19     Label2: TLabel;
20     RoundNameComboBox: TComboBox;
21     Panel2: TPanel;
22     Panel3: TPanel;
23     AllSelectButton: TButton;
24     AllCancelButton: TButton;
25     RoundDeleteButton: TButton;
26     Panel4: TPanel;
27     Button1: TButton;
28     RoundButton: TButton;
29     StatusBar1: TStatusBar;
30     RoundListView: TListView;
31     procedure RoundButtonClick(Sender: TObject);
32     procedure FormCreate(Sender: TObject);
33     procedure RoundListViewChange(Sender: TObject; Item: TListItem;
34     Change: TItemChange);
35     procedure AllSelectButtonClick(Sender: TObject);
36     procedure AllCancelButtonClick(Sender: TObject);
37     procedure RoundNameComboBoxChange(Sender: TObject);
38     procedure RoundDeleteButtonClick(Sender: TObject);
39     private
40     { Private 鐃緒申鐃緒申 }
41     function GetRoundCount: Integer;
42     procedure SetRoundItem(RoundName: string);
43     function CompareTime(Time1: TDateTime; Time2: TDateTime; MarginMin: Integer): Boolean;
44     public
45     { Public 鐃緒申鐃緒申 }
46     end;
47    
48     //var
49     // RoundDialog: TRoundDialog;
50    
51     implementation
52    
53     uses
54     Giko, BoardGroup, RoundData;
55    
56     {$R *.DFM}
57    
58     procedure TRoundDialog.RoundButtonClick(Sender: TObject);
59     var
60     i: Integer;
61     cnt: Integer;
62     msg: string;
63     Board: TBoard;
64     ThreadItem: TThreadItem;
65     RoundItem: TRoundItem;
66     begin
67     // if CompareTime(GikoForm.LastRoundTime, Now, 5) then begin
68     // msg := '鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申';
69     // GikoSys.MsgBox(msg, '鐃?鐃緒申鐃?', MB_OK or MB_ICONSTOP);
70     // Exit;
71     // end;
72 h677 1.6 // Giko.GikoForm.LoginAction.Checked := true;
73 hi_ 1.1 if not Giko.GikoForm.LoginAction.Checked then begin
74 deux 1.7 msg := '鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申';// + #13#10
75     // + '鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申';
76 hi_ 1.1 MsgBox(Handle, msg, '鐃?鐃緒申鐃?', MB_OK or MB_ICONSTOP);
77     Exit;
78     end;
79    
80     cnt := GetRoundCount;
81     if cnt = 0 then begin
82     msg := '鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申';
83     MsgBox(Handle, msg, '鐃?鐃緒申鐃?', MB_OK or MB_ICONSTOP);
84     Exit;
85     end;
86    
87     for i := 0 to RoundList.Count[grtBoard] - 1 do begin
88     RoundItem := RoundList.Items[i, grtBoard];
89     if not RoundItem.BoolData then Continue;
90     if not Giko.GikoForm.LoginAction.Checked then Exit;
91     if RoundItem.RoundType = grtBoard then begin
92 h677 1.4 //Board := TBoard( RoundItem.Item );
93     Board := BBSsFindBoardFromURL(RoundItem.URL);
94 hi_ 1.1 if Board <> nil then begin
95     if not Board.IsThreadDatRead then
96     GikoSys.ReadSubjectFile(Board);
97     GikoForm.DownloadList(Board);
98     end;
99     end;
100     end;
101     for i := 0 to RoundList.Count[grtItem] - 1 do begin
102     RoundItem := RoundList.Items[i, grtItem];
103     if not RoundItem.BoolData then Continue;
104     if not Giko.GikoForm.LoginAction.Checked then Exit;
105 yoffy 1.3 if RoundItem.RoundType = grtItem then begin
106 h677 1.4 //ThreadItem := TThreadItem( RoundItem.Item );
107     ThreadItem := BBSsFindThreadFromURL(RoundItem.URL);
108 hi_ 1.1 if ThreadItem <> nil then begin
109     // GikoForm.AddMessageList('debug2:' + IntToStr(i), nil);
110     GikoForm.DownloadContent(ThreadItem);
111     end;
112     end;
113     end;
114     // GikoForm.LastRoundTime := Now;
115     Close;
116     end;
117    
118     function TRoundDialog.GetRoundCount: Integer;
119     var
120     i: Integer;
121     RoundItem: TRoundItem;
122     begin
123     Result := 0;
124     for i := 0 to RoundList.Count[grtBoard] - 1 do begin
125     RoundItem := RoundList.Items[i, grtBoard];
126     if RoundItem.BoolData then
127     Result := Result + 1;
128     end;
129     for i := 0 to RoundList.Count[grtItem] - 1 do begin
130     RoundItem := RoundList.Items[i, grtItem];
131     if RoundItem.BoolData then
132     Result := Result + 1;
133     end;
134     end;
135    
136     function TRoundDialog.CompareTime(Time1: TDateTime; Time2: TDateTime; MarginMin: Integer): Boolean;
137     const
138     AMin: Double = (1 / 24 / 60);
139     var
140     d: TDateTime;
141     begin
142     d := Time1 + (AMin * MarginMin);
143     Result := Time2 < d;
144     end;
145    
146     procedure TRoundDialog.FormCreate(Sender: TObject);
147     var
148     i: Integer;
149     begin
150     RoundNameComboBox.Items.Add('鐃?鐃緒申鐃緒申鐃緒申鐃?');
151     for i := 0 to RoundList.RoundNameList.Count - 1 do
152     RoundNameComboBox.Items.Add(RoundList.RoundNameList[i]);
153     for i := 0 to RoundList.Count[grtBoard] - 1 do
154     RoundList.Items[i, grtBoard].BoolData := False;
155     for i := 0 to RoundList.Count[grtItem] - 1 do
156     RoundList.Items[i, grtItem].BoolData := False;
157     RoundNameComboBox.ItemIndex := 0;
158     SetRoundItem('');
159     end;
160    
161     procedure TRoundDialog.RoundListViewChange(Sender: TObject;
162     Item: TListItem; Change: TItemChange);
163     var
164     RoundItem: TRoundItem;
165     begin
166     if TObject(Item.Data) is TRoundItem then begin
167     RoundItem := TRoundItem(Item.Data);
168     RoundItem.BoolData := Item.Checked;
169     end;
170     end;
171    
172     procedure TRoundDialog.AllSelectButtonClick(Sender: TObject);
173     var
174     i: Integer;
175     RoundItem: TRoundItem;
176     ListChangeEvent: TLVChangeEvent;
177     begin
178     ListChangeEvent := RoundListView.OnChange;
179     RoundListView.OnChange := nil;
180     try
181     for i := 0 to RoundListView.Items.Count - 1 do begin
182     if TObject(RoundListView.Items[i].Data) is TRoundItem then begin
183     RoundItem := TRoundItem(RoundListView.Items[i].Data);
184     RoundItem.BoolData := True;
185     RoundListView.Items[i].Checked := True;
186     end;
187     end;
188     finally
189     RoundListView.OnChange := ListChangeEvent;
190     end;
191     end;
192    
193     procedure TRoundDialog.AllCancelButtonClick(Sender: TObject);
194     var
195     i: Integer;
196     RoundItem: TRoundItem;
197     ListChangeEvent: TLVChangeEvent;
198     begin
199     ListChangeEvent := RoundListView.OnChange;
200     RoundListView.OnChange := nil;
201     try
202     for i := 0 to RoundListView.Items.Count - 1 do begin
203     if TObject(RoundListView.Items[i].Data) is TRoundItem then begin
204     RoundItem := TRoundItem(RoundListView.Items[i].Data);
205     RoundItem.BoolData := False;
206     RoundListView.Items[i].Checked := False;
207     end;
208     end;
209     finally
210     RoundListView.OnChange := ListChangeEvent;
211     end;
212     end;
213    
214     procedure TRoundDialog.RoundNameComboBoxChange(Sender: TObject);
215     begin
216     if RoundNameComboBox.ItemIndex = 0 then
217     SetRoundItem('')
218     else
219     SetRoundItem(RoundNameComboBox.Items[RoundNameComboBox.itemIndex]);
220     end;
221    
222     procedure TRoundDialog.SetRoundItem(RoundName: string);
223     var
224     ListItem: TListItem;
225     i: Integer;
226     ListChangeEvent: TLVChangeEvent;
227     begin
228     ListChangeEvent := RoundListView.OnChange;
229     RoundListView.OnChange := nil;
230     try
231     RoundListView.Clear;
232 deux 1.7 for i := 0 to RoundList.Count[grtBoard] - 1 do begin
233 hi_ 1.1 if (RoundList.Items[i, grtBoard].RoundName = RoundName) or (RoundName = '') then begin
234     ListItem := RoundListView.Items.Add;
235     ListItem.Data := RoundList.Items[i, grtBoard];
236     ListItem.Caption := RoundList.Items[i, grtBoard].RoundName;
237     ListItem.SubItems.Add(RoundList.Items[i, grtBoard].BoardTitle);
238     ListItem.SubItems.Add('-');
239     ListItem.Checked := RoundList.Items[i, grtBoard].BoolData;
240     ListItem.ImageIndex := 0;
241     end;
242     end;
243 deux 1.7 for i := 0 to RoundList.Count[grtItem] - 1 do begin
244 hi_ 1.1 if (RoundList.Items[i, grtItem].RoundName = RoundName) or (RoundName = '') then begin
245     ListItem := RoundListView.Items.Add;
246     ListItem.Data := RoundList.Items[i, grtItem];
247     ListItem.Caption := RoundList.Items[i, grtItem].RoundName;
248     ListItem.SubItems.Add(RoundList.Items[i, grtItem].BoardTitle);
249     ListItem.SubItems.Add(RoundList.Items[i, grtItem].ThreadTitle);
250     ListItem.Checked := RoundList.Items[i, grtItem].BoolData;
251     ListItem.ImageIndex := 1;
252     end;
253     end;
254     finally
255     RoundListView.OnChange := ListChangeEvent;
256     end;
257     end;
258    
259     procedure TRoundDialog.RoundDeleteButtonClick(Sender: TObject);
260     var
261     Board: TBoard;
262     ThreadItem: TThreadItem;
263     RoundItem: TRoundItem;
264     ListChangeEvent: TLVChangeEvent;
265     begin
266     ListChangeEvent := RoundListView.OnChange;
267     RoundListView.OnChange := nil;
268     try
269     if RoundListView.Selected = nil then
270     Exit;
271     if TObject(RoundListView.Selected.Data) is TRoundItem then begin
272     RoundItem := TRoundItem(RoundListView.Selected.Data);
273 h677 1.4 RoundList.Delete(RoundItem.URL,RoundItem.RoundType);
274     {
275 hi_ 1.1 if RoundItem.RoundType = grtBoard then begin
276 h677 1.4 //Board := TBoard( RoundItem.Item );
277     RoundList.Delete(RoundItem.URL,RoundItem.RoundType);
278 hi_ 1.1 Board.Round := False;
279     Board.RoundName := '';
280     end else begin
281 h677 1.4 //ThreadItem := TThreadItem( RoundItem.Item );
282 hi_ 1.1 RoundList.Delete(ThreadItem);
283     ThreadItem.Round := False;
284     ThreadItem.RoundName := '';
285     end;
286 h677 1.4 }
287 hi_ 1.1 GikoForm.ListView.Refresh;
288     end;
289     RoundListView.Selected.Delete;
290     finally
291     RoundListView.OnChange := ListChangeEvent;
292     end;
293     end;
294    
295     end.

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26