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;
65 CenterForm: TCustomForm;
67 CenterForm := TCustomForm(Owner);
68 if Assigned(CenterForm) then begin
69 Left := ((CenterForm.Width - Width) div 2) + CenterForm.Left;
70 Top := ((CenterForm.Height - Height) div 2) + CenterForm.Top;
72 Left := (Screen.Width - Width) div 2;
73 Top := (Screen.Height - Height) div 2;
76 FList := TList.Create;
78 for k := 0 to Length( BBSs ) - 1 do begin
79 for i := 0 to BBSs[ k ].Count - 1 do begin
80 Category := BBSs[ k ].Items[i];
81 for j := 0 to Category.Count - 1 do begin
82 Board := Category.Items[j];
83 KoteData := TKotehanData.Create;
84 KoteData.FBoard := Board;
85 KoteData.FKotehanName := Board.KotehanName;
86 KoteData.FKotehanMail := Board.KotehanMail;
91 ViewComboBox.Items.Add('
\82·
\82×
\82Ä
\95\
\8e¦');
92 ViewComboBox.Items.Add('
\90Ý
\92è
\8dÏ
\82Ì
\82Ý
\95\
\8e¦');
93 ViewComboBox.Items.Add('
\96¢
\90Ý
\92è
\82Ì
\82Ý
\95\
\8e¦');
94 ViewComboBox.ItemIndex := 0;
95 SetKotehanList(gkvAll);
98 procedure TKotehanDialog.ViewComboBoxChange(Sender: TObject);
100 View: TGikoKotehanView;
103 if ViewComboBox.ItemIndex = 1 then
105 else if ViewComboBox.ItemIndex = 2 then
107 SetKotehanList(View);
110 procedure TKotehanDialog.SetKotehanList(View: TGikoKotehanView);
114 KoteData: TKotehanData;
116 KotehanListView.Items.BeginUpdate;
118 KotehanListView.Items.Clear;
119 for i := 0 to FList.Count - 1 do begin
120 if TObject(FList[i]) is TKotehanData then begin
121 KoteData := TKotehanData(FList[i]);
124 if (KoteData.FKotehanName = '') and (KoteData.FKotehanMail = '') then
127 if (KoteData.FKotehanName <> '') or (KoteData.FKotehanMail <> '') then
130 Item := KotehanListView.Items.Add;
131 Item.Caption := KoteData.FBoard.Title;
132 Item.SubItems.Add(KoteData.FKotehanName);
133 Item.SubItems.Add(KoteData.FKotehanMail);
134 Item.Data := KoteData;
138 KotehanListView.Items.EndUpdate;
142 procedure TKotehanDialog.FormDestroy(Sender: TObject);
146 for i := 0 to FList.Count - 1 do
147 TObject(FList[i]).Free;
151 procedure TKotehanDialog.KotehanListViewChange(Sender: TObject;
152 Item: TListItem; Change: TItemChange);
154 HandleLabel.Enabled := KotehanListView.SelCount <> 0;
155 HandleEdit.Enabled := KotehanListView.SelCount <> 0;
156 MailEdit.Enabled := KotehanListView.SelCount <> 0;
157 MailLabel.Enabled := KotehanListView.SelCount <> 0;
158 ApplyButton.Enabled := KotehanListView.SelCount <> 0;
159 if KotehanListView.SelCount = 1 then begin
160 HandleEdit.Text := Item.SubItems[0];
161 MailEdit.Text := Item.SubItems[1];
163 HandleEdit.Text := '';
168 procedure TKotehanDialog.ApplyButtonClick(Sender: TObject);
171 KoteData: TKotehanData;
173 if KotehanListView.SelCount = 0 then
176 Item := KotehanListView.Selected;
177 while Item <> nil do begin
178 if TObject(Item.Data) is TKotehanData then begin
179 KoteData := TKotehanData(Item.Data);
180 KoteData.FKotehanName := HandleEdit.Text;
181 KoteData.FKotehanMail := MailEdit.Text;
182 Item.SubItems[0] := HandleEdit.Text;
183 Item.SubItems[1] := MailEdit.Text;
185 Item := KotehanListView.GetNextItem(Item, sdAll, [isSelected]);
190 procedure TKotehanDialog.OKButtonClick(Sender: TObject);
193 KoteData: TKotehanData;
195 for i := 0 to FList.Count - 1 do begin
196 if TObject(FList[i]) is TKotehanData then begin
197 KoteData := TKotehanData(FList[i]);
198 KoteData.FBoard.KotehanName := KoteData.FKotehanName;
199 KoteData.FBoard.KotehanMail := KoteData.FKotehanMail;