Develop and Download Open Source Software

Browse CVS Repository

Contents of /gikonavigoeson/gikonavi/Kotehan.pas

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


Revision 1.2 - (show annotations) (download) (as text)
Fri Nov 21 17:24:50 2003 UTC (20 years, 4 months ago) by yoffy
Branch: MAIN
CVS Tags: v1_59_0_771, v1_59_0_770, v1_59_0_773, v1_59_0_772, v1_59_0_775, v1_59_0_774, v1_59_0_777, v1_59_0_776, v1_56_0_715, v1_59_0_778, v1_63_1_819, b49, b48, v1_57_0_737, v1_62_0_812, v1_57_0_735, v1_57_0_734, v1_57_0_733, v1_57_0_732, v1_57_0_731, v1_57_0_730, v1_50_2_606, v1_51_0_612, v1_50_0_581, v1_50_0_580, v1_50_0_587, v1_50_0_586, v1_57_0_739, v1_57_0_738, v1_59_1_765, v1_51_1_639, v1_53_0_671, v1_50_0_595, v1_60_0_788, v1_60_0_789, v1_54_0_677, v1_54_0_676, v1_50_0_572, v1_58_0_748, marged-Bb50, v1_58_0_745, v1_60_0_781, v1_60_0_782, v1_58_0_746, v1_60_0_784, v1_54_0_678, v1_60_0_786, v1_60_0_787, v1_56_0_707, v1_59_0_767, v1_56_0_705, v1_56_0_704, v1_56_0_703, v1_56_0_702, v1_56_0_701, v1_56_0_700, v1_59_1_778, v1_51_0_626, v1_57_0_723, b51, v1_52_1_658, v1_51_0_622, v1_59_0_768, v1_59_0_769, v1_50_0_598, v1_57_0_725, v1_57_0_726, v1_57_0_727, v1_57_0_720, v1_57_0_722, v1_57_1_744, v1_50_0_590, bv1_49_0_564, v1_50_0_593, v1_57_0_728, v1_57_0_729, v1_50_0_596, bv1_49_0_563, v1_52_0_646, v1_50_0_557, v1_57_0_736, v1_50_0_585, v1_51_0_611, v1_51_0_620, v1_52_0_644, v1_58_0_752, v1_58_0_750, v1_58_0_751, v1_58_0_756, v1_58_0_757, v1_58_0_754, v1_58_0_755, v1_58_0_759, v1_52_0_643, v1_57_0_719, v1_57_0_718, v1_56_0_716, v1_54_0_687, v1_56_0_710, v1_56_0_711, v1_56_1_717, v1_56_1_716, v1_51_0_634, v1_51_0_635, v1_51_0_636, v1_51_0_637, v1_54_0_688, v1_54_0_689, v1_51_0_632, v1_51_0_633, v1_49_0_548, v1_50_0_603, v1_54_0_684, v1_50_0_582, v1_54_0_685, v1_49_0_540, v1_49_0_542, v1_49_0_545, v1_49_0_544, v1_49_0_547, v1_53_0_664, v1_61_0_796, v1_61_0_797, b47, v1_61_0_795, v1_52_0_647, v1_61_0_798, v1_61_0_799, v1_50_0_604, v1_51_0_638, v1_52_0_648, v1_53_0_661, v1_53_0_663, v1_53_0_662, v1_53_0_665, v1_53_0_667, v1_53_0_666, v1_53_0_669, v1_53_0_668, v1_48_0_530, v1_55_0_692, v1_55_0_693, v1_55_0_696, v1_55_0_697, v1_55_0_694, v1_55_0_695, b44, v1_49_0_554, merged-remodeling, v1_50_0_577, v1_49_0_551, v1_52_0_645, v1_52_0_651, v1_54_1_691, v1_52_0_650, v1_56_2_724, v1_50_0_606, v1_56_2_722, v1_50_0_588, v1_52_0_652, v1_55_1_697, v1_52_0_642, v1_52_0_654, v1_51_0_616, v1_56_0_714, v1_51_0_614, v1_51_0_615, v1_53_0_672, v1_51_0_613, v1_53_0_670, v1_63_0_818, v1_63_0_817, v1_63_0_816, v1_63_0_815, v1_48_0_510, v1_51_1_640, v1_54_0_686, v1_51_0_618, v1_51_0_619, bv1_49_0_565, v1_54_0_680, v1_54_0_681, v1_62_0_805, v1_62_0_804, v1_62_0_807, v1_62_0_806, b50, v1_56_0_712, v1_62_0_803, v1_62_0_802, v1_48_0_535, v1_49_0_552, v1_56_0_713, v1_62_0_809, v1_50_0_574, v1_54_0_682, v1_49_0_553, v1_50_0_584, v_step1, v1_56_0_721, v1_49_0_546, v1_50_0_573, v1_48_0_539, v1_48_0_538, b46, v1_50_0_600, v1_51_0_630, v1_48_0_533, v1_50_0_571, v1_54_0_683, v1_48_0_537, v1_51_0_631, v1_49_2_569, v1_60_0_780, v1_60_0_779, v1_62_0_810, v1_62_0_811, v1_58_0_747, v1_60_0_783, root-of-draw, v1_50_0_576, v1_54_0_679, v1_59_2_785, marged_bRESPOPUP, v1_50_2_604, v1_50_0_578, v1_54_0_675, v1_51_0_628, v1_50_0_579, v1_51_0_617, v1_48_0_536, root-of-Bb50, root-of-Bb51, v1_56_0_706, root-of-remodel, root-of-Bb53, v1_50_0_594, v1_49_0_541, v1_52_1_657, v1_54_0_674, v1_52_0_660, v1_60_1_793, v1_50_0_602, v1_51_0_629, v1_54_0_690, v1_51_0_627, v1_50_0_601, v1_58_0_763, v1_58_0_762, v1_58_0_761, v1_58_0_760, v1_51_0_625, v1_62_1_813, v1_51_0_623, v1_57_2_749, v1_50_0_605, v1_57_0_742, v1_57_0_743, v1_57_0_740, v1_57_0_741, v1_52_0_655, v1_56_0_709, v1_57_0_744, v1_52_0_656, v1_56_0_708, v1_52_0_649, v1_61_0_800, v1_53_1_673, v1_50_0_599, v1_56_0_699, v1_56_0_698, v1_50_0_561, v1_51_0_624, v1_51_1_641, v1_51_0_621, v1_60_0_793, v1_60_0_792, v1_60_0_791, v1_60_0_790, v1_60_2_794, v1_61_1_801, HEAD
Branch point for: Bb57, Bb56, Bb55, Bb53, Bb52, Bb51, Bb62, Bb63, Bb60, Bb61, remodeling, Bb59, Bb58, Bb50, bRESPOPUP, bListSU, BRANCH_TORA, Bb49, Bb54, Bdraw
Changes since 1.1: +13 -12 lines
File MIME type: text/x-pascal
・今まで 1 つ固定であった BBS が複数持てるようになった。
 これにより、多くの2ちゃんねる特有の処理が排除され使えなくなった可能性がある。

以下注意。
 お気に入りファイルのフォーマットが変更になった(確定)。
 巡回ファイルのフォーマットが変更になったかもしれない(不明)。
 他にもあるかも。

1 unit Kotehan;
2
3 interface
4
5 uses
6 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7 Dialogs, StdCtrls, ComCtrls, ExtCtrls,
8 GikoSystem, BoardGroup;
9
10 type
11 TGikoKotehanView = (gkvAll, gkvEntry, gkvBlank);
12
13 TKotehanDialog = class(TForm)
14 Panel1: TPanel;
15 Panel2: TPanel;
16 OKButton: TButton;
17 CancelButton: TButton;
18 Panel3: TPanel;
19 KotehanListView: TListView;
20 Panel4: TPanel;
21 ViewComboBox: TComboBox;
22 Label1: TLabel;
23 Label2: TLabel;
24 HandleEdit: TEdit;
25 HandleLabel: TLabel;
26 MailLabel: TLabel;
27 MailEdit: TEdit;
28 ApplyButton: TButton;
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;
34 Change: TItemChange);
35 procedure ApplyButtonClick(Sender: TObject);
36 procedure OKButtonClick(Sender: TObject);
37 private
38 { Private ?辿?転 }
39 FList: TList;
40 procedure SetKotehanList(View: TGikoKotehanView);
41 public
42 { Public ?辿?転 }
43 end;
44
45 TKotehanData = class
46 private
47 FBoard: TBoard;
48 FKotehanName: string;
49 FKotehanMail: string;
50 end;
51
52 var
53 KotehanDialog: TKotehanDialog;
54
55 implementation
56
57 {$R *.dfm}
58
59 procedure TKotehanDialog.FormCreate(Sender: TObject);
60 var
61 i, j, k: Integer;
62 Category: TCategory;
63 Board: TBoard;
64 KoteData: TKotehanData;
65 begin
66 FList := TList.Create;
67
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;
77 FList.Add(KoteData);
78 end;
79 end;
80 end;
81 ViewComboBox.Items.Add('???????\??');
82 ViewComboBox.Items.Add('???????????\??');
83 ViewComboBox.Items.Add('???????????\??');
84 ViewComboBox.ItemIndex := 0;
85 SetKotehanList(gkvAll);
86 end;
87
88 procedure TKotehanDialog.ViewComboBoxChange(Sender: TObject);
89 var
90 View: TGikoKotehanView;
91 begin
92 View := gkvAll;
93 if ViewComboBox.ItemIndex = 1 then
94 View := gkvEntry
95 else if ViewComboBox.ItemIndex = 2 then
96 View := gkvBlank;
97 SetKotehanList(View);
98 end;
99
100 procedure TKotehanDialog.SetKotehanList(View: TGikoKotehanView);
101 var
102 i: Integer;
103 Item: TListItem;
104 KoteData: TKotehanData;
105 begin
106 KotehanListView.Items.BeginUpdate;
107 try
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]);
112 case View of
113 gkvEntry:
114 if (KoteData.FKotehanName = '') and (KoteData.FKotehanMail = '') then
115 Continue;
116 gkvBlank:
117 if (KoteData.FKotehanName <> '') or (KoteData.FKotehanMail <> '') then
118 Continue;
119 end;
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;
125 end;
126 end;
127 finally
128 KotehanListView.Items.EndUpdate;
129 end;
130 end;
131
132 procedure TKotehanDialog.FormDestroy(Sender: TObject);
133 var
134 i: Integer;
135 begin
136 for i := 0 to FList.Count - 1 do
137 TObject(FList[i]).Free;
138 FList.Free;
139 end;
140
141 procedure TKotehanDialog.KotehanListViewChange(Sender: TObject;
142 Item: TListItem; Change: TItemChange);
143 begin
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];
152 end else begin
153 HandleEdit.Text := '';
154 MailEdit.Text := '';
155 end;
156 end;
157
158 procedure TKotehanDialog.ApplyButtonClick(Sender: TObject);
159 var
160 Item: TListItem;
161 KoteData: TKotehanData;
162 begin
163 if KotehanListView.SelCount = 0 then
164 Exit;
165
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;
174 end;
175 Item := KotehanListView.GetNextItem(Item, sdAll, [isSelected]);
176 end;
177
178 end;
179
180 procedure TKotehanDialog.OKButtonClick(Sender: TObject);
181 var
182 i: Integer;
183 KoteData: TKotehanData;
184 begin
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;
190 end;
191 end;
192 end;
193
194 end.

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