6 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7 Dialogs, StdCtrls, ComCtrls, ExtCtrls,
8 GikoSystem, BoardGroup;
11 TGikoKotehanView = (gkvAll, gkvEntry, gkvBlank);
13 TKotehanDialog = class(TForm)
17 CancelButton: TButton;
19 KotehanListView: TListView;
21 ViewComboBox: TComboBox;
29 StatusBar1: TStatusBar;
30 procedure FormCreate(Sender: TObject);
31 procedure ViewComboBoxChange(Sender: TObject);
32 procedure FormDestroy(Sender: TObject);
33 procedure KotehanListViewChange(Sender: TObject; Item: TListItem;
35 procedure ApplyButtonClick(Sender: TObject);
36 procedure OKButtonClick(Sender: TObject);
40 procedure SetKotehanList(View: TGikoKotehanView);
53 KotehanDialog: TKotehanDialog;
59 procedure TKotehanDialog.FormCreate(Sender: TObject);
65 KoteData: TKotehanData;
67 FList := TList.Create;
69 for i := 0 to BBS2ch.Count - 1 do begin
70 Category := BBS2ch.Items[i];
71 for j := 0 to Category.Count - 1 do begin
72 Board := Category.Items[j];
73 KoteData := TKotehanData.Create;
74 KoteData.FBoard := Board;
75 KoteData.FKotehanName := Board.KotehanName;
76 KoteData.FKotehanMail := Board.KotehanMail;
80 ViewComboBox.Items.Add('
\82·
\82×
\82Ä
\95\
\8e¦');
81 ViewComboBox.Items.Add('
\90Ý
\92è
\8dÏ
\82Ì
\82Ý
\95\
\8e¦');
82 ViewComboBox.Items.Add('
\96¢
\90Ý
\92è
\82Ì
\82Ý
\95\
\8e¦');
83 ViewComboBox.ItemIndex := 0;
84 SetKotehanList(gkvAll);
87 procedure TKotehanDialog.ViewComboBoxChange(Sender: TObject);
89 View: TGikoKotehanView;
92 if ViewComboBox.ItemIndex = 1 then
94 else if ViewComboBox.ItemIndex = 2 then
99 procedure TKotehanDialog.SetKotehanList(View: TGikoKotehanView);
103 KoteData: TKotehanData;
105 KotehanListView.Items.BeginUpdate;
107 KotehanListView.Items.Clear;
108 for i := 0 to FList.Count - 1 do begin
109 if TObject(FList[i]) is TKotehanData then begin
110 KoteData := TKotehanData(FList[i]);
113 if (KoteData.FKotehanName = '') and (KoteData.FKotehanMail = '') then
116 if (KoteData.FKotehanName <> '') or (KoteData.FKotehanMail <> '') then
119 Item := KotehanListView.Items.Add;
120 Item.Caption := KoteData.FBoard.Title;
121 Item.SubItems.Add(KoteData.FKotehanName);
122 Item.SubItems.Add(KoteData.FKotehanMail);
123 Item.Data := KoteData;
127 KotehanListView.Items.EndUpdate;
131 procedure TKotehanDialog.FormDestroy(Sender: TObject);
135 for i := 0 to FList.Count - 1 do
136 TObject(FList[i]).Free;
140 procedure TKotehanDialog.KotehanListViewChange(Sender: TObject;
141 Item: TListItem; Change: TItemChange);
143 HandleLabel.Enabled := KotehanListView.SelCount <> 0;
144 HandleEdit.Enabled := KotehanListView.SelCount <> 0;
145 MailEdit.Enabled := KotehanListView.SelCount <> 0;
146 MailLabel.Enabled := KotehanListView.SelCount <> 0;
147 ApplyButton.Enabled := KotehanListView.SelCount <> 0;
148 if KotehanListView.SelCount = 1 then begin
149 HandleEdit.Text := Item.SubItems[0];
150 MailEdit.Text := Item.SubItems[1];
152 HandleEdit.Text := '';
157 procedure TKotehanDialog.ApplyButtonClick(Sender: TObject);
160 KoteData: TKotehanData;
162 if KotehanListView.SelCount = 0 then
165 Item := KotehanListView.Selected;
166 while Item <> nil do begin
167 if TObject(Item.Data) is TKotehanData then begin
168 KoteData := TKotehanData(Item.Data);
169 KoteData.FKotehanName := HandleEdit.Text;
170 KoteData.FKotehanMail := MailEdit.Text;
171 Item.SubItems[0] := HandleEdit.Text;
172 Item.SubItems[1] := MailEdit.Text;
174 Item := KotehanListView.GetNextItem(Item, sdAll, [isSelected]);
179 procedure TKotehanDialog.OKButtonClick(Sender: TObject);
182 KoteData: TKotehanData;
184 for i := 0 to FList.Count - 1 do begin
185 if TObject(FList[i]) is TKotehanData then begin
186 KoteData := TKotehanData(FList[i]);
187 KoteData.FBoard.KotehanName := KoteData.FKotehanName;
188 KoteData.FBoard.KotehanMail := KoteData.FKotehanMail;