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);
64 KoteData: TKotehanData;
66 FList := TList.Create;
68 for k := 0 to Length( BBSs ) - 1 do begin
69 for i := 0 to BBSs[ k ].Count - 1 do begin
70 Category := BBSs[ k ].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;
81 ViewComboBox.Items.Add('
\82·
\82×
\82Ä
\95\
\8e¦');
82 ViewComboBox.Items.Add('
\90Ý
\92è
\8dÏ
\82Ì
\82Ý
\95\
\8e¦');
83 ViewComboBox.Items.Add('
\96¢
\90Ý
\92è
\82Ì
\82Ý
\95\
\8e¦');
84 ViewComboBox.ItemIndex := 0;
85 SetKotehanList(gkvAll);
88 procedure TKotehanDialog.ViewComboBoxChange(Sender: TObject);
90 View: TGikoKotehanView;
93 if ViewComboBox.ItemIndex = 1 then
95 else if ViewComboBox.ItemIndex = 2 then
100 procedure TKotehanDialog.SetKotehanList(View: TGikoKotehanView);
104 KoteData: TKotehanData;
106 KotehanListView.Items.BeginUpdate;
108 KotehanListView.Items.Clear;
109 for i := 0 to FList.Count - 1 do begin
110 if TObject(FList[i]) is TKotehanData then begin
111 KoteData := TKotehanData(FList[i]);
114 if (KoteData.FKotehanName = '') and (KoteData.FKotehanMail = '') then
117 if (KoteData.FKotehanName <> '') or (KoteData.FKotehanMail <> '') then
120 Item := KotehanListView.Items.Add;
121 Item.Caption := KoteData.FBoard.Title;
122 Item.SubItems.Add(KoteData.FKotehanName);
123 Item.SubItems.Add(KoteData.FKotehanMail);
124 Item.Data := KoteData;
128 KotehanListView.Items.EndUpdate;
132 procedure TKotehanDialog.FormDestroy(Sender: TObject);
136 for i := 0 to FList.Count - 1 do
137 TObject(FList[i]).Free;
141 procedure TKotehanDialog.KotehanListViewChange(Sender: TObject;
142 Item: TListItem; Change: TItemChange);
144 HandleLabel.Enabled := KotehanListView.SelCount <> 0;
145 HandleEdit.Enabled := KotehanListView.SelCount <> 0;
146 MailEdit.Enabled := KotehanListView.SelCount <> 0;
147 MailLabel.Enabled := KotehanListView.SelCount <> 0;
148 ApplyButton.Enabled := KotehanListView.SelCount <> 0;
149 if KotehanListView.SelCount = 1 then begin
150 HandleEdit.Text := Item.SubItems[0];
151 MailEdit.Text := Item.SubItems[1];
153 HandleEdit.Text := '';
158 procedure TKotehanDialog.ApplyButtonClick(Sender: TObject);
161 KoteData: TKotehanData;
163 if KotehanListView.SelCount = 0 then
166 Item := KotehanListView.Selected;
167 while Item <> nil do begin
168 if TObject(Item.Data) is TKotehanData then begin
169 KoteData := TKotehanData(Item.Data);
170 KoteData.FKotehanName := HandleEdit.Text;
171 KoteData.FKotehanMail := MailEdit.Text;
172 Item.SubItems[0] := HandleEdit.Text;
173 Item.SubItems[1] := MailEdit.Text;
175 Item := KotehanListView.GetNextItem(Item, sdAll, [isSelected]);
180 procedure TKotehanDialog.OKButtonClick(Sender: TObject);
183 KoteData: TKotehanData;
185 for i := 0 to FList.Count - 1 do begin
186 if TObject(FList[i]) is TKotehanData then begin
187 KoteData := TKotehanData(FList[i]);
188 KoteData.FBoard.KotehanName := KoteData.FKotehanName;
189 KoteData.FBoard.KotehanMail := KoteData.FKotehanMail;