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.2 - (hide annotations) (download) (as text)
Sat Aug 9 14:22:51 2003 UTC (20 years, 8 months ago) by yoffy
Branch: MAIN
CVS Tags: b37, c33_4, b34, b35, b36, b41, b40, b43
Branch point for: stable
Changes since 1.1: +1 -1 lines
File MIME type: text/x-pascal
・Windows 95 でもお気に入りが使えるようになった。
・ツールバーを右クリックすることで表示/非表示が行えようになった。
・ツールバーから絞込検索ができるようになった。
・「ログ有りのスレッドのみを表示する」「新着スレッドの未表示する」の各ボタンと絞込み検索が And 検索になった。
・レスのプレビューでトリップが確認できるようになった。
・ギコナビは Delphi 6 Personal でビルドできるようになった。

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    
73     if not Giko.GikoForm.LoginAction.Checked then begin
74     msg := '鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申' + #13#10
75 yoffy 1.2 + '鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申';
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     Board := BBS2ch.FindBBSID(RoundItem.BBSID);
93     if Board <> nil then begin
94     if not Board.IsThreadDatRead then
95     GikoSys.ReadSubjectFile(Board);
96     GikoForm.DownloadList(Board);
97     end;
98     end;
99     end;
100     for i := 0 to RoundList.Count[grtItem] - 1 do begin
101     RoundItem := RoundList.Items[i, grtItem];
102     if not RoundItem.BoolData then Continue;
103     if not Giko.GikoForm.LoginAction.Checked then Exit;
104     Board := BBS2ch.FindBBSID(RoundItem.BBSID);
105     if Board <> nil then begin
106     if not Board.IsThreadDatRead then
107     GikoSys.ReadSubjectFile(Board);
108     ThreadItem := BBS2ch.FindThreadItem(RoundItem.BBSID, RoundItem.FileName);
109     if ThreadItem <> nil then begin
110     // GikoForm.AddMessageList('debug2:' + IntToStr(i), nil);
111     GikoForm.DownloadContent(ThreadItem);
112     end;
113     end;
114     end;
115     // GikoForm.LastRoundTime := Now;
116     Close;
117     end;
118    
119     function TRoundDialog.GetRoundCount: Integer;
120     var
121     i: Integer;
122     RoundItem: TRoundItem;
123     begin
124     Result := 0;
125     for i := 0 to RoundList.Count[grtBoard] - 1 do begin
126     RoundItem := RoundList.Items[i, grtBoard];
127     if RoundItem.BoolData then
128     Result := Result + 1;
129     end;
130     for i := 0 to RoundList.Count[grtItem] - 1 do begin
131     RoundItem := RoundList.Items[i, grtItem];
132     if RoundItem.BoolData then
133     Result := Result + 1;
134     end;
135     end;
136    
137     function TRoundDialog.CompareTime(Time1: TDateTime; Time2: TDateTime; MarginMin: Integer): Boolean;
138     const
139     AMin: Double = (1 / 24 / 60);
140     var
141     d: TDateTime;
142     begin
143     d := Time1 + (AMin * MarginMin);
144     Result := Time2 < d;
145     end;
146    
147     procedure TRoundDialog.FormCreate(Sender: TObject);
148     var
149     i: Integer;
150     begin
151     RoundNameComboBox.Items.Add('鐃?鐃緒申鐃緒申鐃緒申鐃?');
152     for i := 0 to RoundList.RoundNameList.Count - 1 do
153     RoundNameComboBox.Items.Add(RoundList.RoundNameList[i]);
154     for i := 0 to RoundList.Count[grtBoard] - 1 do
155     RoundList.Items[i, grtBoard].BoolData := False;
156     for i := 0 to RoundList.Count[grtItem] - 1 do
157     RoundList.Items[i, grtItem].BoolData := False;
158     RoundNameComboBox.ItemIndex := 0;
159     SetRoundItem('');
160     end;
161    
162     procedure TRoundDialog.RoundListViewChange(Sender: TObject;
163     Item: TListItem; Change: TItemChange);
164     var
165     RoundItem: TRoundItem;
166     begin
167     if TObject(Item.Data) is TRoundItem then begin
168     RoundItem := TRoundItem(Item.Data);
169     RoundItem.BoolData := Item.Checked;
170     end;
171     end;
172    
173     procedure TRoundDialog.AllSelectButtonClick(Sender: TObject);
174     var
175     i: Integer;
176     RoundItem: TRoundItem;
177     ListChangeEvent: TLVChangeEvent;
178     begin
179     ListChangeEvent := RoundListView.OnChange;
180     RoundListView.OnChange := nil;
181     try
182     for i := 0 to RoundListView.Items.Count - 1 do begin
183     if TObject(RoundListView.Items[i].Data) is TRoundItem then begin
184     RoundItem := TRoundItem(RoundListView.Items[i].Data);
185     RoundItem.BoolData := True;
186     RoundListView.Items[i].Checked := True;
187     end;
188     end;
189     finally
190     RoundListView.OnChange := ListChangeEvent;
191     end;
192     end;
193    
194     procedure TRoundDialog.AllCancelButtonClick(Sender: TObject);
195     var
196     i: Integer;
197     RoundItem: TRoundItem;
198     ListChangeEvent: TLVChangeEvent;
199     begin
200     ListChangeEvent := RoundListView.OnChange;
201     RoundListView.OnChange := nil;
202     try
203     for i := 0 to RoundListView.Items.Count - 1 do begin
204     if TObject(RoundListView.Items[i].Data) is TRoundItem then begin
205     RoundItem := TRoundItem(RoundListView.Items[i].Data);
206     RoundItem.BoolData := False;
207     RoundListView.Items[i].Checked := False;
208     end;
209     end;
210     finally
211     RoundListView.OnChange := ListChangeEvent;
212     end;
213     end;
214    
215     procedure TRoundDialog.RoundNameComboBoxChange(Sender: TObject);
216     begin
217     if RoundNameComboBox.ItemIndex = 0 then
218     SetRoundItem('')
219     else
220     SetRoundItem(RoundNameComboBox.Items[RoundNameComboBox.itemIndex]);
221     end;
222    
223     procedure TRoundDialog.SetRoundItem(RoundName: string);
224     var
225     ListItem: TListItem;
226     i: Integer;
227     ListChangeEvent: TLVChangeEvent;
228     begin
229     ListChangeEvent := RoundListView.OnChange;
230     RoundListView.OnChange := nil;
231     try
232     RoundListView.Clear;
233     for i := 0 to RoundList.Count[grtBoard] - 1 do begin
234     if (RoundList.Items[i, grtBoard].RoundName = RoundName) or (RoundName = '') then begin
235     ListItem := RoundListView.Items.Add;
236     ListItem.Data := RoundList.Items[i, grtBoard];
237     ListItem.Caption := RoundList.Items[i, grtBoard].RoundName;
238     ListItem.SubItems.Add(RoundList.Items[i, grtBoard].BoardTitle);
239     ListItem.SubItems.Add('-');
240     ListItem.Checked := RoundList.Items[i, grtBoard].BoolData;
241     ListItem.ImageIndex := 0;
242     end;
243     end;
244     for i := 0 to RoundList.Count[grtItem] - 1 do begin
245     if (RoundList.Items[i, grtItem].RoundName = RoundName) or (RoundName = '') then begin
246     ListItem := RoundListView.Items.Add;
247     ListItem.Data := RoundList.Items[i, grtItem];
248     ListItem.Caption := RoundList.Items[i, grtItem].RoundName;
249     ListItem.SubItems.Add(RoundList.Items[i, grtItem].BoardTitle);
250     ListItem.SubItems.Add(RoundList.Items[i, grtItem].ThreadTitle);
251     ListItem.Checked := RoundList.Items[i, grtItem].BoolData;
252     ListItem.ImageIndex := 1;
253     end;
254     end;
255     finally
256     RoundListView.OnChange := ListChangeEvent;
257     end;
258     end;
259    
260     procedure TRoundDialog.RoundDeleteButtonClick(Sender: TObject);
261     var
262     Board: TBoard;
263     ThreadItem: TThreadItem;
264     RoundItem: TRoundItem;
265     ListChangeEvent: TLVChangeEvent;
266     begin
267     ListChangeEvent := RoundListView.OnChange;
268     RoundListView.OnChange := nil;
269     try
270     if RoundListView.Selected = nil then
271     Exit;
272     if TObject(RoundListView.Selected.Data) is TRoundItem then begin
273     RoundItem := TRoundItem(RoundListView.Selected.Data);
274     Board := BBS2ch.FindBBSID(RoundItem.BBSID);
275     if RoundItem.RoundType = grtBoard then begin
276     RoundList.Delete(Board);
277     Board.Round := False;
278     Board.RoundName := '';
279     end else begin
280     if not Board.IsThreadDatRead then
281     GikoSys.ReadSubjectFile(Board);
282     ThreadItem := BBS2ch.FindThreadItem(RoundItem.BBSID, RoundItem.FileName);
283     RoundList.Delete(ThreadItem);
284     ThreadItem.Round := False;
285     ThreadItem.RoundName := '';
286     end;
287     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