Develop and Download Open Source Software

Browse CVS Repository

Contents of /gikonavigoeson/gikonavi/GikoDataModule.pas

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


Revision 1.17 - (show annotations) (download) (as text)
Sat Dec 10 06:54:32 2005 UTC (18 years, 4 months ago) by h677
Branch: MAIN
Changes since 1.16: +71 -113 lines
File MIME type: text/x-pascal
リファクタリング中

1 unit GikoDataModule;
2
3 interface
4
5 uses
6 SysUtils, Classes, ExtActns, StdActns, ActnList, ImgList, Controls,
7 {$IF Defined(DELPRO) }
8 SHDocVw,
9 MSHTML,
10 {$ELSE}
11 SHDocVw_TLB,
12 MSHTML_TLB,
13 {$IFEND}
14 ComCtrls, BrowserRecord, Graphics, Messages;
15
16 const
17 CAPTION_NAME: string = '???潟????';
18 USER_SETLINKBAR = WM_USER + 2003;
19
20 ITEM_ICON_SORT1 = 12; //!< ?純?若???≪?ゃ?潟??/span>
21 ITEM_ICON_SORT2 = 13; //!< ?純?若???≪?ゃ?潟??/span>
22
23 //???若?????若?≪?ゃ?潟??/span>
24 TOOL_ICON_HEIGHT_MAX = 16; //!< 蕭?????紊с?≪?ゃ?潟??/span>
25 TOOL_ICON_HEIGHT_MIN = 17; //!< 蕭?????絨?≪?ゃ?潟??/span>
26 TOOL_ICON_HEIGHT_NORMAL = 18; //!< 蕭???罔?羣??≪?ゃ?潟??/span>
27 TOOL_ICON_WIDTH_MAX = 19; //!< 綛???紊с?≪?ゃ?潟??/span>
28 TOOL_ICON_WIDTH_MIN = 20; //!< 綛???絨?≪?ゃ?潟??/span>
29 TOOL_ICON_WIDTH_NORMAL = 21; //!< 綛?罔?羣??≪?ゃ?潟??/span>
30
31 TOOL_ICON_FAV_FOLDER = 30; //!< ??羂????ャ???????????≪?ゃ?潟??/span>
32 TOOL_ICON_FAV_BOARD = 31; //!< ??羂????ャ???帥?≪?ゃ?潟??/span>
33 TOOL_ICON_FAV_THREAD = 32; //!< ??羂????ャ???鴻???≪?ゃ?潟??/span>
34
35 //! ???潟?????泣?ゃ????RL
36 URL_GIKONAVI: string = 'http://gikonavi.sourceforge.jp/';
37 //! Monazilla?泣?ゃ????RL
38 URL_MONAZILLA: string = 'http://www.monazilla.org/';
39 //! 2?<??????????RL
40 URL_2ch: string = 'http://www.2ch.net/';
41 //! ???潟????Wiki??RL
42 URL_Wiki: string = 'http://gikowiki.dyndns.info/index.php?FAQ';
43
44 SELECTCOMBOBOX_NAME: string = ''; // '?鴻??????腟?莨惹?膣?#39;;
45 SELECTCOMBOBOX_COLOR: TColor = clWindow;
46
47
48 type
49 TGikoDM = class(TDataModule)
50 GikoFormActionList: TActionList;
51 OnlyAHundredResAction: TAction;
52 OnlyKokoResAction: TAction;
53 LoginAction: TAction;
54 NewBoardAction: TAction;
55 LogDeleteAction: TAction;
56 KidokuAction: TAction;
57 StdToolBarVisibleAction: TAction;
58 AddressBarVisibleAction: TAction;
59 LinkBarVisibleAction: TAction;
60 ListToolBarVisibleAction: TAction;
61 SearchAction: TAction;
62 GikoNaviWebPageAction: TAction;
63 MonazillaWebPageAction: TAction;
64 BBS2chWebPageAction: TAction;
65 GikoFolderOpenAction: TAction;
66 AboutAction: TAction;
67 SelectTextClearAction: TAction;
68 NameTextClearAction: TAction;
69 MailTextClearAction: TAction;
70 ExitAction: TAction;
71 ListNameBarVisibleAction: TAction;
72 BrowserToolBarVisibleAction: TAction;
73 BrowserNameBarVisibleAction: TAction;
74 MsgBarVisibleAction: TAction;
75 MsgBarCloseAction: TAction;
76 StatusBarVisibleAction: TAction;
77 CabinetBBSAction: TAction;
78 CabinetHistoryAction: TAction;
79 OnlyNewResAction: TAction;
80 CabinetFavoriteAction: TAction;
81 CabinetVisibleAction: TAction;
82 ListNumberVisibleAction: TAction;
83 UpFolderAction: TAction;
84 CabinetCloseAction: TAction;
85 IconStyle: TAction;
86 LargeIconAction: TAction;
87 SmallIconAction: TAction;
88 ListIconAction: TAction;
89 DetailIconAction: TAction;
90 MidokuAction: TAction;
91 AllSelectAction: TAction;
92 AllItemAction: TAction;
93 LogItemAction: TAction;
94 NewItemAction: TAction;
95 ThreadRangeAction: TAction;
96 SelectItemAction: TAction;
97 StopAction: TAction;
98 OptionAction: TAction;
99 RoundAction: TAction;
100 BrowserMaxAction: TAction;
101 BrowserMinAction: TAction;
102 ScrollTopAction: TAction;
103 ScrollLastAction: TAction;
104 ScrollNewAction: TAction;
105 ScrollKokoAction: TAction;
106 EditorAction: TAction;
107 IEAction: TAction;
108 ShowThreadAction: TAction;
109 ShowBoardAction: TAction;
110 URLCopyAction: TAction;
111 NameCopyAction: TAction;
112 NameURLCopyAction: TAction;
113 ItemReloadAction: TAction;
114 ThreadEditorAction: TAction;
115 BoardIEAction: TAction;
116 SelectItemURLCopyAction: TAction;
117 SelectItemNameCopyAction: TAction;
118 SelectItemNameURLCopyAction: TAction;
119 SelectListReloadAction: TAction;
120 SelectThreadReloadAction: TAction;
121 BrowserTabCloseAction: TAction;
122 NotSelectTabCloseAction: TAction;
123 AllTabCloseAction: TAction;
124 KokomadeAction: TAction;
125 ZenbuAction: TAction;
126 KokoResAction: TAction;
127 TreeSelectBoradReload: TAction;
128 TreeSelectThreadReload: TAction;
129 TreeSelectURLCopy: TAction;
130 SelectReservAction: TAction;
131 SelectNewRoundName: TAction;
132 SelectDeleteRound: TAction;
133 KeySettingAction: TAction;
134 ArrangeAction: TAction;
135 ActiveLogDeleteAction: TAction;
136 TreeSelectNameURLCopy: TAction;
137 PaneInitAction: TAction;
138 LeftmostTabSelectAction: TAction;
139 LeftTabSelectAction: TAction;
140 RightTabSelectAction: TAction;
141 RightmostTabSelectAction: TAction;
142 FavoriteAddAction: TAction;
143 BoardFavoriteAddAction: TAction;
144 ThreadFavoriteAddAction: TAction;
145 TreeSelectFavoriteAddAction: TAction;
146 FavoriteArrangeAction: TAction;
147 MoveToAction: TAction;
148 BrowserTabVisibleAction: TAction;
149 BrowserTabTopAction: TAction;
150 BrowserTabBottomAction: TAction;
151 BrowserTabTabStyleAction: TAction;
152 BrowserTabButtonStyleAction: TAction;
153 BrowserTabFlatStyleAction: TAction;
154 GikoHelpAction: TAction;
155 KotehanAction: TAction;
156 ToolBarSettingAction: TAction;
157 SelectResAction: TAction;
158 AllResAction: TAction;
159 EditNGAction: TAction;
160 ReloadAction: TAction;
161 GoFowardAction: TAction;
162 GoBackAction: TAction;
163 TreeSelectSearchBoardName: TAction;
164 FavoriteTreeViewRenameAction: TAction;
165 FavoriteTreeViewNewFolderAction: TAction;
166 FavoriteTreeViewDeleteAction: TAction;
167 FavoriteTreeViewBrowseFolderAction: TAction;
168 FavoriteTreeViewReloadAction: TAction;
169 FavoriteTreeViewURLCopyAction: TAction;
170 FavoriteTreeViewNameCopyAction: TAction;
171 FavoriteTreeViewNameURLCopyAction: TAction;
172 FavoriteTreeViewLogDeleteAction: TAction;
173 ResRangeAction: TAction;
174 ExportFavoriteFile: TFileSaveAs;
175 FavoriteTreeViewBrowseBoardAction: TAction;
176 FavoriteTreeViewBrowseThreadAction: TAction;
177 UpBoardAction: TAction;
178 KoreCopy: TAction;
179 TreeSelectNameCopy: TAction;
180 SetFocusForBrowserAction: TAction;
181 SetFocusForThreadListAction: TAction;
182 SetFocusForCabinetAction: TAction;
183 FileRun1: TFileRun;
184 ThreadlistMaxAndFocusAction: TAction;
185 BrowserMaxAndFocusAction: TAction;
186 SelectItemSaveForHTML: TAction;
187 SelectItemSaveForDat: TAction;
188 FileSaveAs1: TFileSaveAs;
189 LogFolderOpenAction: TAction;
190 TabsSaveAction: TAction;
191 TabsOpenAction: TAction;
192 BrowsBoradHeadAction: TAction;
193 TabAutoSaveAction: TAction;
194 TabAutoLoadAction: TAction;
195 JumpToNumOfResAction: TAction;
196 FavoriteTreeViewCollapseAction: TAction;
197 RightTabCloseAction: TAction;
198 LeftTabCloseAction: TAction;
199 SameIDResAnchorAction: TAction;
200 IndividualAbon1Action: TAction;
201 IndividualAbon0Action: TAction;
202 AntiIndividualAbonAction: TAction;
203 AntiIndividualAbonDlgAction: TAction;
204 IndividualAbonID1Action: TAction;
205 IndividualAbonID0Action: TAction;
206 MuteAction: TAction;
207 SortActiveColumnAction: TAction;
208 SortNextColumnAction: TAction;
209 SortPrevColumnAction: TAction;
210 BeLogInOutAction: TAction;
211 UnSelectedListViewAction: TAction;
212 WikiFAQWebPageAction: TAction;
213 ToobarImageList: TImageList;
214 procedure EditNGActionExecute(Sender: TObject);
215 procedure ReloadActionExecute(Sender: TObject);
216 procedure GoFowardActionExecute(Sender: TObject);
217 procedure GoBackActionExecute(Sender: TObject);
218 procedure MoveToActionExecute(Sender: TObject);
219 procedure FavoriteAddActionExecute(Sender: TObject);
220 procedure FavoriteArrangeActionExecute(Sender: TObject);
221 procedure FavoriteTreeViewCollapseActionExecute(Sender: TObject);
222 procedure FavoriteTreeViewRenameActionExecute(Sender: TObject);
223 procedure FavoriteTreeViewNewFolderActionExecute(Sender: TObject);
224 procedure FavoriteTreeViewDeleteActionExecute(Sender: TObject);
225 procedure FavoriteTreeViewBrowseFolderActionExecute(Sender: TObject);
226 procedure FavoriteTreeViewReloadActionExecute(Sender: TObject);
227 procedure FavoriteTreeViewURLCopyActionExecute(Sender: TObject);
228 procedure FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
229 procedure FavoriteTreeViewNameURLCopyActionExecute(Sender: TObject);
230 procedure FavoriteTreeViewLogDeleteActionExecute(Sender: TObject);
231 procedure FavoriteTreeViewBrowseThreadActionExecute(Sender: TObject);
232 procedure OnlyAHundredResActionExecute(Sender: TObject);
233 procedure OnlyKokoResActionExecute(Sender: TObject);
234 procedure OnlyNewResActionExecute(Sender: TObject);
235 procedure BrowserMaxActionExecute(Sender: TObject);
236 procedure BrowserMinActionExecute(Sender: TObject);
237 procedure ScrollTopActionExecute(Sender: TObject);
238 procedure ScrollLastActionExecute(Sender: TObject);
239 procedure ScrollNewActionExecute(Sender: TObject);
240 procedure ScrollKokoActionExecute(Sender: TObject);
241 procedure ScrollKokoActionUpdate(Sender: TObject);
242 procedure EditorActionExecute(Sender: TObject);
243 procedure IEActionExecute(Sender: TObject);
244 procedure ShowThreadActionExecute(Sender: TObject);
245 procedure ShowBoardActionExecute(Sender: TObject);
246 procedure URLCopyActionExecute(Sender: TObject);
247 procedure NameCopyActionExecute(Sender: TObject);
248 procedure NameURLCopyActionExecute(Sender: TObject);
249 procedure ItemReloadActionExecute(Sender: TObject);
250 procedure BrowserTabCloseActionExecute(Sender: TObject);
251 procedure BrowserTabCloseActionUpdate(Sender: TObject);
252 procedure NotSelectTabCloseActionExecute(Sender: TObject);
253 procedure NotSelectTabCloseActionUpdate(Sender: TObject);
254 procedure AllTabCloseActionExecute(Sender: TObject);
255 procedure ActiveLogDeleteActionExecute(Sender: TObject);
256 procedure LeftmostTabSelectActionExecute(Sender: TObject);
257 procedure LeftmostTabSelectActionUpdate(Sender: TObject);
258 procedure LeftTabSelectActionExecute(Sender: TObject);
259 procedure RightTabSelectActionExecute(Sender: TObject);
260 procedure RightTabSelectActionUpdate(Sender: TObject);
261 procedure RightmostTabSelectActionExecute(Sender: TObject);
262 procedure ThreadFavoriteAddActionExecute(Sender: TObject);
263 procedure ThreadFavoriteAddActionUpdate(Sender: TObject);
264 procedure SelectResActionExecute(Sender: TObject);
265 procedure AllResActionExecute(Sender: TObject);
266 procedure ResRangeActionExecute(Sender: TObject);
267 procedure UpBoardActionExecute(Sender: TObject);
268 procedure JumpToNumOfResActionExecute(Sender: TObject);
269 procedure RightTabCloseActionExecute(Sender: TObject);
270 procedure RightTabCloseActionUpdate(Sender: TObject);
271 procedure LeftTabCloseActionExecute(Sender: TObject);
272 procedure DataModuleCreate(Sender: TObject);
273 procedure SearchActionExecute(Sender: TObject);
274 procedure OptionActionExecute(Sender: TObject);
275 procedure RoundActionExecute(Sender: TObject);
276 procedure KeySettingActionExecute(Sender: TObject);
277 procedure KotehanActionExecute(Sender: TObject);
278 procedure ToolBarSettingActionExecute(Sender: TObject);
279 procedure MuteActionExecute(Sender: TObject);
280 procedure TreeSelectBoradReloadExecute(Sender: TObject);
281 procedure TreeSelectThreadReloadExecute(Sender: TObject);
282 procedure TreeSelectURLCopyExecute(Sender: TObject);
283 procedure TreeSelectNameURLCopyExecute(Sender: TObject);
284 procedure TreeSelectFavoriteAddActionExecute(Sender: TObject);
285 procedure TreeSelectSearchBoardNameExecute(Sender: TObject);
286 procedure TreeSelectNameCopyExecute(Sender: TObject);
287 procedure LoginActionExecute(Sender: TObject);
288 procedure NewBoardActionExecute(Sender: TObject);
289 procedure LogDeleteActionExecute(Sender: TObject);
290 procedure LogDeleteActionUpdate(Sender: TObject);
291 procedure SelectTextClearActionExecute(Sender: TObject);
292 procedure NameTextClearActionExecute(Sender: TObject);
293 procedure MailTextClearActionExecute(Sender: TObject);
294 procedure ExitActionExecute(Sender: TObject);
295 procedure ExportFavoriteFileBeforeExecute(Sender: TObject);
296 procedure ExportFavoriteFileAccept(Sender: TObject);
297 procedure SelectItemSaveForHTMLExecute(Sender: TObject);
298 procedure SelectItemSaveForDatExecute(Sender: TObject);
299 procedure TabsSaveActionExecute(Sender: TObject);
300 procedure TabsOpenActionExecute(Sender: TObject);
301 procedure TabAutoSaveActionExecute(Sender: TObject);
302 procedure TabAutoLoadActionExecute(Sender: TObject);
303 procedure BeLogInOutActionExecute(Sender: TObject);
304 procedure BeLogInOutActionUpdate(Sender: TObject);
305 procedure KokomadeActionExecute(Sender: TObject);
306 procedure ZenbuActionExecute(Sender: TObject);
307 procedure KokoResActionExecute(Sender: TObject);
308 procedure KoreCopyExecute(Sender: TObject);
309 procedure SameIDResAnchorActionExecute(Sender: TObject);
310 procedure IndividualAbon1ActionExecute(Sender: TObject);
311 procedure IndividualAbon0ActionExecute(Sender: TObject);
312 procedure AntiIndividualAbonActionExecute(Sender: TObject);
313 procedure AntiIndividualAbonDlgActionExecute(Sender: TObject);
314 procedure IndividualAbonID1ActionExecute(Sender: TObject);
315 procedure IndividualAbonID0ActionExecute(Sender: TObject);
316 procedure GikoNaviWebPageActionExecute(Sender: TObject);
317 procedure MonazillaWebPageActionExecute(Sender: TObject);
318 procedure BBS2chWebPageActionExecute(Sender: TObject);
319 procedure GikoFolderOpenActionExecute(Sender: TObject);
320 procedure AboutActionExecute(Sender: TObject);
321 procedure GikoHelpActionExecute(Sender: TObject);
322 procedure WikiFAQWebPageActionExecute(Sender: TObject);
323 procedure ListNumberVisibleActionExecute(Sender: TObject);
324 procedure UpFolderActionExecute(Sender: TObject);
325 procedure UpFolderActionUpdate(Sender: TObject);
326 procedure IconStyleExecute(Sender: TObject);
327 procedure AllItemActionExecute(Sender: TObject);
328 procedure LogItemActionExecute(Sender: TObject);
329 procedure NewItemActionExecute(Sender: TObject);
330 procedure ThreadRangeActionExecute(Sender: TObject);
331 procedure SelectItemActionExecute(Sender: TObject);
332 procedure ThreadEditorActionExecute(Sender: TObject);
333 procedure BoardIEActionExecute(Sender: TObject);
334 procedure SelectItemURLCopyActionExecute(Sender: TObject);
335 procedure SelectItemURLCopyActionUpdate(Sender: TObject);
336 procedure SelectItemNameCopyActionExecute(Sender: TObject);
337 procedure SelectItemNameCopyActionUpdate(Sender: TObject);
338 procedure SelectItemNameURLCopyActionExecute(Sender: TObject);
339 procedure SelectListReloadActionExecute(Sender: TObject);
340 procedure SelectListReloadActionUpdate(Sender: TObject);
341 procedure SelectThreadReloadActionExecute(Sender: TObject);
342 procedure SelectThreadReloadActionUpdate(Sender: TObject);
343 procedure SelectReservActionExecute(Sender: TObject);
344 procedure SelectReservActionUpdate(Sender: TObject);
345 procedure SelectNewRoundNameExecute(Sender: TObject);
346 procedure SelectDeleteRoundExecute(Sender: TObject);
347 procedure BoardFavoriteAddActionExecute(Sender: TObject);
348 procedure BoardFavoriteAddActionUpdate(Sender: TObject);
349 procedure LogFolderOpenActionExecute(Sender: TObject);
350 procedure LogFolderOpenActionUpdate(Sender: TObject);
351 procedure BrowsBoradHeadActionExecute(Sender: TObject);
352 procedure SortActiveColumnActionExecute(Sender: TObject);
353 procedure SortNextColumnActionExecute(Sender: TObject);
354 procedure SortPrevColumnActionExecute(Sender: TObject);
355 procedure StdToolBarVisibleActionExecute(Sender: TObject);
356 procedure AddressBarVisibleActionExecute(Sender: TObject);
357 procedure LinkBarVisibleActionExecute(Sender: TObject);
358 procedure ListToolBarVisibleActionExecute(Sender: TObject);
359 procedure ListNameBarVisibleActionExecute(Sender: TObject);
360 procedure BrowserToolBarVisibleActionExecute(Sender: TObject);
361 procedure BrowserNameBarVisibleActionExecute(Sender: TObject);
362 procedure MsgBarVisibleActionExecute(Sender: TObject);
363 procedure MsgBarCloseActionExecute(Sender: TObject);
364 procedure StatusBarVisibleActionExecute(Sender: TObject);
365 procedure CabinetBBSActionExecute(Sender: TObject);
366 procedure CabinetHistoryActionExecute(Sender: TObject);
367 procedure CabinetFavoriteActionExecute(Sender: TObject);
368 procedure CabinetVisibleActionExecute(Sender: TObject);
369 procedure CabinetCloseActionExecute(Sender: TObject);
370 procedure LargeIconActionExecute(Sender: TObject);
371 procedure SmallIconActionExecute(Sender: TObject);
372 procedure ListIconActionExecute(Sender: TObject);
373 procedure DetailIconActionExecute(Sender: TObject);
374 procedure StopActionExecute(Sender: TObject);
375 procedure ArrangeActionExecute(Sender: TObject);
376 procedure PaneInitActionExecute(Sender: TObject);
377 procedure BrowserTabVisibleActionExecute(Sender: TObject);
378 procedure BrowserTabTopActionExecute(Sender: TObject);
379 procedure BrowserTabBottomActionExecute(Sender: TObject);
380 procedure BrowserTabTabStyleActionExecute(Sender: TObject);
381 procedure BrowserTabButtonStyleActionExecute(Sender: TObject);
382 procedure BrowserTabFlatStyleActionExecute(Sender: TObject);
383 procedure SetFocusForBrowserActionExecute(Sender: TObject);
384 procedure SetFocusForBrowserActionUpdate(Sender: TObject);
385 procedure SetFocusForThreadListActionExecute(Sender: TObject);
386 procedure SetFocusForCabinetActionExecute(Sender: TObject);
387 procedure SetFocusForCabinetActionUpdate(Sender: TObject);
388 procedure ThreadlistMaxAndFocusActionExecute(Sender: TObject);
389 procedure BrowserMaxAndFocusActionExecute(Sender: TObject);
390 procedure UnSelectedListViewActionExecute(Sender: TObject);
391 procedure KidokuActionExecute(Sender: TObject);
392 procedure MidokuActionExecute(Sender: TObject);
393 procedure AllSelectActionExecute(Sender: TObject);
394 procedure AllSelectActionUpdate(Sender: TObject);
395 private
396 { Private 絎h? }
397 procedure RepaintStatusBar;
398 procedure ClearResFilter;
399 procedure SetResRange(range: Integer);
400 public
401 { Public 絎h? }
402 published
403 { Published 絎h? }
404 //! TAction??etActiveContent??nil篁ュ??ф???鴻??????
405 procedure DependActiveCntentActionUpdate(Sender: TObject);
406 //! TAction??etActiveContent??nil篁ュ????ゃ???違?????c???????????鴻??????
407 procedure DependActiveCntentLogActionUpdate(Sender: TObject);
408 //! TAction??ctiveList??TBoard?ф???鴻??????
409 procedure DependActiveListTBoardActionUpdate(Sender: TObject);
410 end;
411
412 var
413 GikoDM: TGikoDM;
414
415
416 implementation
417
418 uses
419 Windows, Math, Dialogs, Clipbrd,
420 Giko, GikoSystem, GikoUtil, BoardGroup,
421 FavoriteArrange, Favorite, Setting, MojuUtils,
422 Editor, ListSelect, Search, Option, Round,
423 KeySetting, Gesture, Kotehan, ToolBarSetting,
424 ToolBarUtil, NewBoard, HTMLCreate, IndividualAbon,
425 GikoBayesian, About, ShellAPI,
426 RoundName, RoundData, Menus, ListViewUtils,
427 ThreadControl;
428
429
430 {$R *.dfm}
431 // *************************************************************************
432 //! TAction??etActiveContent??nil篁ュ??ф???鴻??????
433 // *************************************************************************
434 procedure TGikoDM.DependActiveCntentActionUpdate(Sender: TObject);
435 begin
436 TAction(Sender).Enabled := (GikoForm.GetActiveContent <> nil);
437 end;
438 // *************************************************************************
439 //! TAction??etActiveContent??nil篁ュ????ゃ???違?????c??????
440 // *************************************************************************
441 procedure TGikoDM.DependActiveCntentLogActionUpdate(Sender: TObject);
442 begin
443 TAction(Sender).Enabled := (GikoForm.GetActiveContent <> nil)
444 and (GikoForm.GetActiveContent.IsLogFile);
445 end;
446 // *************************************************************************
447 //! TAction??ctiveList??TBoard?ф???鴻??????
448 // *************************************************************************
449 procedure TGikoDM.DependActiveListTBoardActionUpdate(Sender: TObject);
450 begin
451 TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard);
452 end;
453 // *************************************************************************
454 //! NG???若??膩???
455 // *************************************************************************
456 procedure TGikoDM.EditNGActionExecute(Sender: TObject);
457 begin
458 //?????鴻?????∫?d??????????≪??????G???若?????<?ゃ???????若????/span>
459 GikoSys.FAbon.EditNGwords;
460 end;
461 // *************************************************************************
462 //! NG???若??茯??粋昭?随???茯??粋昭?随?
463 // *************************************************************************
464 procedure TGikoDM.ReloadActionExecute(Sender: TObject);
465 begin
466 //?????若????絎?茵???紊掩?????????<???祉?若?後?阪??
467 if GikoSys.FAbon.ReLoadFromNGwordFile =false then begin
468 MsgBox(GikoForm.Handle, 'NG???若?????<?ゃ??????茯??粋昭?帥??け?????障????', '??????#39;, MB_OK or MB_ICONEXCLAMATION);
469 end else begin
470 //???????帥????????祉??荐??
471 GikoForm.RepaintAllTabsBrowser();
472 end;
473 end;
474 // *************************************************************************
475 //! NG???若??茯??粋昭?随?筝??ゅ???鐚?
476 // *************************************************************************
477 procedure TGikoDM.GoFowardActionExecute(Sender: TObject);
478 begin
479 //筝??ゅ???????粋昭?帥??紊掩?????????<???祉?若?後?阪??
480 if GikoSys.FAbon.GoBack =false then begin
481 MsgBox(GikoForm.Handle, '筝??ゅ?????G???若?????<?ゃ??????粋昭?帥??け?????障????', '??????#39;, MB_OK or MB_ICONEXCLAMATION);
482 end else begin
483 //?鴻???若?帥?鴻??;腓冴??????NG???若?????<?ゃ???????贋??/span>
484 RepaintStatusBar;
485 //???????帥????????祉??荐??
486 GikoForm.RepaintAllTabsBrowser();
487 end;
488 end;
489 // *************************************************************************
490 //! NG???若??茯??粋昭?随?筝??ゅ??鐚?
491 // *************************************************************************
492 procedure TGikoDM.GoBackActionExecute(Sender: TObject);
493 begin
494 //筝??ゅ???????粋昭?帥??紊掩?????????<???祉?若?後?阪??
495 if GikoSys.FAbon.GoForward =false then begin
496 MsgBox(GikoForm.Handle, '筝??ゅ????G???若?????<?ゃ??????粋昭?帥??け?????障????', '??????#39;, MB_OK or MB_ICONEXCLAMATION);
497 end else begin
498 //?鴻???若?帥?鴻??;腓冴??????NG???若?????<?ゃ???????贋??/span>
499 RepaintStatusBar;
500 //???????帥????????祉??荐??
501 GikoForm.RepaintAllTabsBrowser();
502 end;
503 end;
504 // *************************************************************************
505 //! NG???若????紊??眼????緇????鴻???若?帥?鴻???若???贋?医????
506 // *************************************************************************
507 procedure TGikoDM.RepaintStatusBar;
508 var
509 s : String;
510 begin
511 //?鴻???若?帥?鴻??;腓冴??????NG???若?????<?ゃ???????贋??/span>
512 s := GikoSys.FAbon.NGwordname;
513 GikoForm.StatusBar.Panels.Items[2].Text := s;
514 //?鴻???若?帥?鴻??;腓冴?泣?ゃ?冴?????泣?ゃ??/span>
515 GikoForm.StatusBar.Panels[2].Width := Max(GikoForm.StatusBar.Canvas.TextWidth(s), 100);
516 GikoForm.StatusBarResize(nil);
517 end;
518 // *************************************************************************
519 //! ?≪?????鴻???若??;腓冴?????????≪?????鴻?悟Щ??????
520 // *************************************************************************
521 procedure TGikoDM.MoveToActionExecute(Sender: TObject);
522 var
523 URL: string;
524 idx: Integer;
525 begin
526 //?≪?????鴻?潟?潟?????????鴻????URL????緇?
527 URL := Trim(GikoForm.AddressComboBox.Text);
528 //URL??Щ??
529 GikoForm.MoveToURL(URL);
530 //篁ヤ???絮ユ???????
531 idx := GikoForm.AddressComboBox.Items.IndexOf(URL);
532 if idx = -1 then begin
533 GikoForm.AddressComboBox.Items.Insert(0, URL);
534 if GikoForm.AddressComboBox.Items.Count > GikoSys.Setting.AddressHistoryCount then
535 GikoForm.AddressComboBox.Items.Delete(GikoForm.AddressComboBox.Items.Count - 1);
536 end else begin
537 GikoForm.AddressComboBox.Items.Delete(idx);
538 GikoForm.AddressComboBox.Items.Insert(0, URL);
539 end;
540 end;
541 // *************************************************************************
542 //! ??羂????ャ????申?????ゃ?≪???違??????span>
543 // *************************************************************************
544 procedure TGikoDM.FavoriteAddActionExecute(Sender: TObject);
545 begin
546 GikoForm.ShowFavoriteAddDialog(GikoForm.GetActiveContent);
547 end;
548 // *************************************************************************
549 //! ??羂????ャ?????雁?????ゃ?≪???違??????span>
550 // *************************************************************************
551 procedure TGikoDM.FavoriteArrangeActionExecute(Sender: TObject);
552 var
553 Dlg: TFavoriteArrangeDialog;
554 begin
555 Dlg := TFavoriteArrangeDialog.Create(GikoForm);
556 try
557 Dlg.ShowModal;
558 finally
559 Dlg.Release;
560 end;
561 //???潟?????若???贋?違??篌?????
562 PostMessage( GikoForm.Handle, USER_SETLINKBAR, 0, 0 );
563 end;
564 // *************************************************************************
565 //! ?????若????????????
566 // *************************************************************************
567 procedure TGikoDM.FavoriteTreeViewCollapseActionExecute(Sender: TObject);
568 var
569 node : TTreeNode;
570 begin
571 node := GikoForm.FavoriteTreeView.Items.GetFirstNode;
572 try
573 //???若????膓???????????若????膰????????
574 while node <> nil do begin
575 if node.HasChildren then
576 node.Expanded := False;
577 node := node.GetNext;
578 end;
579 except
580 end;
581 end;
582 // *************************************************************************
583 //! ??羂????ャ??????????膩???????
584 // *************************************************************************
585 procedure TGikoDM.FavoriteTreeViewRenameActionExecute(Sender: TObject);
586 var
587 node : TTreeNode;
588 begin
589
590 if GikoForm.ClickNode = nil then
591 Exit;
592 if GikoForm.ClickNode.IsFirstNode then
593 Exit;
594 if GikoForm.ClickNode.Text = Favorite.FAVORITE_LINK_NAME then
595 Exit;
596 GikoForm.FavoriteTreeView.ReadOnly := False;
597 if (GikoForm.TreeType = gttFavorite) and (GikoForm.CabinetPanel.Visible) then begin
598 node := GikoForm.ClickNode.Parent;
599 while node <> nil do begin
600 node.Expanded := True;
601 node := node.Parent;
602 end;
603 GikoForm.ClickNode.EditText;
604 end else begin
605 GikoForm.ClickNode.Text := InputBox( '?????????#39;, '??羂????ャ?????違???????????ュ?????????????', GikoForm.ClickNode.Text );
606 end;
607
608 GikoForm.SetLinkBar;
609 end;
610 // *************************************************************************
611 //! ?違?????羂????ャ??????????????篏???????
612 // *************************************************************************
613 procedure TGikoDM.FavoriteTreeViewNewFolderActionExecute(Sender: TObject);
614 var
615 NewFavFolder: TFavoriteFolder;
616 Node: TTreeNode;
617 begin
618
619 if GikoForm.ClickNode = nil then
620 Exit;
621
622 try
623 if not (TObject(GikoForm.ClickNode.Data) is TFavoriteFolder) then begin
624 GikoForm.FavoriteTreeView.Selected := GikoForm.ClickNode.Parent;
625 GikoForm.ClickNode := GikoForm.ClickNode.Parent;
626 end;
627
628 NewFavFolder := TFavoriteFolder.Create;
629 Node := GikoForm.FavoriteTreeView.Items.AddChildObject(GikoForm.ClickNode, '?違????????????', NewFavFolder);
630 Node.ImageIndex := 14;
631 Node.SelectedIndex := 14;
632 // FClickNode.Selected.Expanded := True;
633 GikoForm.FavoriteTreeView.Selected := Node;
634 GikoForm.ClickNode := Node;
635 FavoriteTreeViewRenameAction.Execute;
636 finally
637 end;
638
639 end;
640 // *************************************************************************
641 //! ??????羂????ャ???????ゃ????
642 // *************************************************************************
643 procedure TGikoDM.FavoriteTreeViewDeleteActionExecute(Sender: TObject);
644 const
645 DEL_LINK_MSG = '?????潟?????????潟?????主???????????с???????ゃ?????????????с????鐚?';
646 DEL_MSG = '??^0???????ゃ???障?????????????с????鐚?';
647 DEL_TITLE = '???ょ∈茯?';
648 begin
649
650 if GikoForm.ClickNode = nil then
651 Exit;
652 if GikoForm.ClickNode.IsFirstNode then
653 Exit;
654 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then begin
655 if GikoForm.ClickNode.Text = Favorite.FAVORITE_LINK_NAME then begin
656 if MsgBox(GikoForm.Handle, DEL_LINK_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
657 Exit;
658 end else begin
659 if MsgBox(GikoForm.Handle, StringReplace( DEL_MSG, '^0', GikoForm.ClickNode.Text, [rfReplaceAll] ) , DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
660 Exit;
661 end;
662 end;
663
664 GikoForm.ClickNode.Delete;
665
666 GikoForm.SetLinkBar;
667
668 end;
669 // *************************************************************************
670 //! ???????????????ャ?c????????羂????ャ????????????span>
671 // *************************************************************************
672 procedure TGikoDM.FavoriteTreeViewBrowseFolderActionExecute(
673 Sender: TObject);
674 begin
675 GikoForm.FavoriteBrowseFolder( GikoForm.ClickNode );
676 end;
677 // *************************************************************************
678 //! ?御??????????????羂????ャ?????????潟???若??????
679 // *************************************************************************
680 procedure TGikoDM.FavoriteTreeViewReloadActionExecute(Sender: TObject);
681 var
682 ThreadItem: TThreadItem;
683 FavThread: TFavoriteThreadItem;
684 Board: TBoard;
685 FavBoard: TFavoriteBoardItem;
686 shiftDown: Boolean;
687 begin
688
689 if GikoForm.ClickNode = nil then Exit;
690
691 shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
692
693 if TObject( GikoForm.ClickNode.Data ) is TFavoriteThreadItem then begin
694 FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
695 ThreadItem := FavThread.Item;
696 if ThreadItem <> nil then
697 GikoForm.DownloadContent(ThreadItem, shiftDown);
698 end else if TObject( GikoForm.ClickNode.Data ) is TFavoriteBoardItem then begin
699 FavBoard := TFavoriteBoardItem( GikoForm.ClickNode.Data );
700 Board := FavBoard.Item;
701 GikoForm.DownloadList(Board, shiftDown);
702 end;
703
704 end;
705 // *************************************************************************
706 //! ?御?????????????鴻????????RL???潟???若????
707 // *************************************************************************
708 procedure TGikoDM.FavoriteTreeViewURLCopyActionExecute(Sender: TObject);
709 begin
710
711 if GikoForm.ClickNode = nil then Exit;
712
713 if (TObject(GikoForm.ClickNode.Data) is TFavoriteItem) then begin
714 Clipboard.AsText := TFavoriteItem( GikoForm.ClickNode.Data ).URL + #13#10;
715 end;
716 end;
717 // *************************************************************************
718 //! ?御?????????????帥?????????潟???若????
719 // *************************************************************************
720 procedure TGikoDM.FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
721 begin
722
723 if GikoForm.ClickNode = nil then Exit;
724
725 if (TObject(GikoForm.ClickNode.Data) is TFavoriteItem) then begin
726 Clipboard.AsText :=
727 TFavoriteItem(GikoForm.ClickNode.Data).GetItemTitle + #13#10;
728 end;
729 end;
730 // *************************************************************************
731 //! ?御?????????????鴻??????????????RL???潟???若????
732 // *************************************************************************
733 procedure TGikoDM.FavoriteTreeViewNameURLCopyActionExecute(
734 Sender: TObject);
735 var
736 favItem : TFavoriteItem;
737 begin
738
739 if GikoForm.ClickNode = nil then Exit;
740
741 if (TObject(GikoForm.ClickNode.Data) is TFavoriteItem) then begin
742 favItem := TFavoriteItem(GikoForm.ClickNode.Data);
743 Clipboard.AsText := favItem.GetItemTitle + #13#10 +
744 favItem.URL + #13#10;
745 end;
746
747 end;
748 // *************************************************************************
749 //! ?御?????????????鴻???????????ゃ????
750 // *************************************************************************
751 procedure TGikoDM.FavoriteTreeViewLogDeleteActionExecute(Sender: TObject);
752 const
753 DEL_MSG = '??^0???????違?????ゃ???障?????????????с????鐚?';
754 DEL_TITLE = '???ょ∈茯?';
755 var
756 ThreadItem: TThreadItem;
757 FavThread: TFavoriteThreadItem;
758 begin
759
760 if GikoForm.ClickNode = nil then Exit;
761 if not (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then Exit;
762
763 FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
764 ThreadItem := FavThread.Item;
765
766 try
767 if GikoSys.Setting.DeleteMsg then begin
768 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
769 if MsgBox(GikoForm.Handle, StringReplace( DEL_MSG, '^0', GikoForm.ClickNode.Text, [rfReplaceAll] ) , DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
770 Exit;
771 end;
772
773 GikoForm.DeleteHistory(ThreadItem);
774 GikoForm.DeleteTab(ThreadItem);
775 ThreadItem.DeleteLogFile;
776
777 GikoForm.ListView.Refresh;
778 finally
779 end;
780
781 end;
782 // *************************************************************************
783 //! ?上??;腓冴?????????鴻???????????????吟?ц;腓冴????
784 // *************************************************************************
785 procedure TGikoDM.FavoriteTreeViewBrowseThreadActionExecute(
786 Sender: TObject);
787 var
788 threadItem : TThreadItem;
789 begin
790
791 if GikoForm.ClickNode = nil then Exit;
792
793 if (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then begin
794
795 threadItem := TFavoriteThreadItem( GikoForm.ClickNode.Data ).Item;
796 if threadItem = nil then
797 Exit;
798 GikoSys.OpenBrowser( threadItem.URL, gbtAuto );
799
800 end;
801 end;
802 //! ???鴻???莨若?帥???c???帥?若??腥冴??????
803 procedure TGikoDM.ClearResFilter;
804 var
805 FilterList : TStringList;
806 begin
807 // ???c???炊??絖?????腥冴??????
808 FilterList := TStringList.Create;
809 try
810 GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
811 GikoSys.FSelectResFilter.Reverse := False;
812 finally
813 FilterList.Free;
814 end;
815 GikoForm.SelectResWord := '';
816 end;
817 // *************************************************************************
818 //! ???鴻??;腓榊??蚊??荐??????
819 // *************************************************************************
820 procedure TGikoDM.SetResRange(range: Integer);
821 begin
822 if GikoSys.ResRange <> range then begin
823 GikoSys.ResRange := range;
824 // ???c???炊??絖?????腥冴??????
825 ClearResFilter;
826 GikoForm.RepaintAllTabsBrowser();
827 end;
828 end;
829 // *************************************************************************
830 //! ????00???鴻???粋;腓?/span>
831 // *************************************************************************
832 procedure TGikoDM.OnlyAHundredResActionExecute(Sender: TObject);
833 begin
834 if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
835 and (GikoForm.ActiveContent.Browser.Busy) then Exit;
836
837 GikoForm.ResRangeMenuSelect := 100;
838 OnlyAHundredResAction.Checked := True;
839 //??茵?ず膀??蚊??荐??????
840 SetResRange(100);
841 end;
842 // *************************************************************************
843 //! ??????鴻???粋;腓?/span>
844 // *************************************************************************
845 procedure TGikoDM.OnlyKokoResActionExecute(Sender: TObject);
846 begin
847 if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
848 and (GikoForm.ActiveContent.Browser.Busy) then Exit;
849
850 GikoForm.ResRangeMenuSelect := Ord( grrKoko );
851 OnlyKokoResAction.Checked := True;
852
853 //??茵?ず膀??蚊??荐??????
854 SetResRange(Ord( grrKoko ));
855 end;
856 // *************************************************************************
857 //! ?亥?????鴻???粋;腓?/span>
858 // *************************************************************************
859 procedure TGikoDM.OnlyNewResActionExecute(Sender: TObject);
860 begin
861 if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
862 and (GikoForm.ActiveContent.Browser.Busy) then Exit;
863
864 GikoForm.ResRangeMenuSelect := Ord( grrNew );
865 OnlyNewResAction.Checked := True;
866
867 //??茵?ず膀??蚊??荐??????
868 SetResRange(Ord( grrNew ));
869 end;
870 // *************************************************************************
871 //! ?鴻??????茵?ず?????≪??紊с???頫?ず????
872 // *************************************************************************
873 procedure TGikoDM.BrowserMaxActionExecute(Sender: TObject);
874 begin
875 if GikoSys.Setting.ListOrientation = gloHorizontal then begin
876 case GikoSys.Setting.ListWidthState of
877 glsMax: begin
878 //??絽梧;腓冴??????
879 if GikoForm.ActiveContent <> nil then
880 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //??糸??罩?/span>
881 GikoForm.ViewPanel.Width := GikoForm.BrowserSizeWidth;
882 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
883 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
884 GikoSys.Setting.ListWidthState := glsNormal;
885 if GikoForm.ActiveContent <> nil then
886 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //???/span>
887 end;
888 glsMin, glsNormal: begin
889 //??紊ц;腓冴??????
890 if GikoForm.ActiveContent <> nil then
891 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //??糸??罩?/span>
892 if GikoSys.Setting.ListWidthState = glsNormal then
893 GikoForm.BrowserSizeWidth := GikoForm.ViewPanel.Width;
894 if GikoForm.ActiveContent <> nil then
895 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //???/span>
896 GikoForm.ViewPanel.Width := 1;
897 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
898 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
899 GikoSys.Setting.ListWidthState := glsMax;
900 end;
901 end;
902 end else begin
903 case GikoSys.Setting.ListHeightState of
904 glsMax: begin
905 //??絽梧;腓冴??????
906 if GikoForm.ActiveContent <> nil then
907 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //??糸??罩?/span>
908 GikoForm.ViewPanel.Height := GikoForm.BrowserSizeHeight;
909 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
910 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
911 GikoSys.Setting.ListHeightState := glsNormal;
912 if GikoForm.ActiveContent <> nil then
913 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //???/span>
914 end;
915 glsMin, glsNormal: begin
916 //??紊ц;腓冴??????
917 if GikoForm.ActiveContent <> nil then
918 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //??糸??罩?/span>
919 if GikoSys.Setting.ListHeightState = glsNormal then
920 GikoForm.BrowserSizeHeight := GikoForm.ViewPanel.Height;
921 if GikoForm.ActiveContent <> nil then
922 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //???/span>
923 GikoForm.ViewPanel.Height := 1;
924 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
925 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
926 GikoSys.Setting.ListHeightState := glsMax;
927 end;
928 end;
929 end;
930 end;
931 // *************************************************************************
932 //! ?鴻??????茵?ず?????≪??絨???頫?ず????
933 // *************************************************************************
934 procedure TGikoDM.BrowserMinActionExecute(Sender: TObject);
935 begin
936 if GikoSys.Setting.ListOrientation = gloHorizontal then begin
937 case GikoSys.Setting.ListWidthState of
938 glsMax, glsNormal: begin
939 //??絨頫?ず??????
940 if GikoForm.ActiveContent <> nil then
941 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //??糸??罩?/span>
942 if GikoSys.Setting.ListWidthState = glsNormal then
943 GikoForm.BrowserSizeWidth := GikoForm.ViewPanel.Width;
944 if GikoForm.ActiveContent <> nil then
945 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //???/span>
946 GikoForm.ViewPanel.Width := GikoForm.ThreadMainPanel.Width - 80;
947 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
948 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
949 GikoSys.Setting.ListWidthState := glsMin;
950 end;
951 glsMin: begin
952 //??絽梧;腓冴??????
953 if GikoForm.ActiveContent <> nil then
954 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //??糸??罩?/span>
955 GikoForm.ViewPanel.Width := GikoForm.BrowserSizeWidth;
956 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
957 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
958 GikoSys.Setting.ListWidthState := glsNormal;
959 if GikoForm.ActiveContent <> nil then
960 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //???/span>
961 end;
962 end;
963 end else begin
964 case GikoSys.Setting.ListHeightState of
965 glsMax, glsNormal: begin
966 //??絨頫?ず??????
967 if GikoForm.ActiveContent <> nil then
968 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //??糸??罩?/span>
969 if GikoSys.Setting.ListHeightState = glsNormal then
970 GikoForm.BrowserSizeHeight := GikoForm.ViewPanel.Height;
971 GikoForm.ViewPanel.Height := GikoForm.ThreadMainPanel.Height - GikoForm.BrowserCoolBar.Height - 7;
972 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
973 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
974 GikoSys.Setting.ListHeightState := glsMin;
975 if GikoForm.ActiveContent <> nil then
976 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //???/span>
977 end;
978 glsMin: begin
979 //??絽梧;腓冴??????
980 if GikoForm.ActiveContent <> nil then
981 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //??糸??罩?/span>
982 GikoForm.ViewPanel.Height := GikoForm.BrowserSizeHeight;
983 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
984 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
985 GikoSys.Setting.ListHeightState := glsNormal;
986 if GikoForm.ActiveContent <> nil then
987 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //???/span>
988 end;
989 end;
990 end;
991 end;
992 // *************************************************************************
993 //! ?上??;腓冴?????????鴻?????????????悟Щ??????
994 // *************************************************************************
995 procedure TGikoDM.ScrollTopActionExecute(Sender: TObject);
996 begin
997 GikoForm.BrowserMovement('top');
998 end;
999 // *************************************************************************
1000 //! ?上??;腓冴?????????鴻??????????緇??悟Щ??????
1001 // *************************************************************************
1002 procedure TGikoDM.ScrollLastActionExecute(Sender: TObject);
1003 begin
1004 GikoForm.BrowserMovement('bottom');
1005 end;
1006 // *************************************************************************
1007 //! ?上??;腓冴?????????鴻?????????亥???悟Щ??????
1008 // *************************************************************************
1009 procedure TGikoDM.ScrollNewActionExecute(Sender: TObject);
1010 begin
1011 GikoForm.BrowserMovement('new');
1012 end;
1013 // *************************************************************************
1014 //! ?上??;腓冴?????????鴻?????????潟?潟?障?ц??????悟Щ??????
1015 // *************************************************************************
1016 procedure TGikoDM.ScrollKokoActionExecute(Sender: TObject);
1017 begin
1018 GikoForm.BrowserMovement('koko');
1019 end;
1020 // *************************************************************************
1021 //! ?上??;腓冴?????????鴻?????????潟?潟?障?ц??????悟Щ????????pdate?ゃ???潟??
1022 // *************************************************************************
1023 procedure TGikoDM.ScrollKokoActionUpdate(Sender: TObject);
1024 begin
1025 ScrollKokoAction.Enabled := (GikoForm.GetActiveContent <> nil)
1026 and (GikoForm.GetActiveContent.IsLogFile)
1027 and (GikoForm.GetActiveContent.Kokomade <> -1);
1028 end;
1029 // *************************************************************************
1030 //! ???号?吾??莨若?帥???c?潟??????茵?ず????
1031 // *************************************************************************
1032 procedure TGikoDM.EditorActionExecute(Sender: TObject);
1033 var
1034 Editor: TEditorForm;
1035 Item: TThreadItem;
1036 begin
1037 Item := GikoForm.GetActiveContent;
1038 if Item = nil then Exit;
1039 Editor := TEditorForm.Create(GikoForm.GetMainForm);
1040 Editor.SetThreadItem(Item);
1041 GikoSys.LoadEditorKeySetting(Editor.ActionList);
1042 Editor.Show;
1043 Editor.BodyEdit.SetFocus;
1044 end;
1045 // *************************************************************************
1046 //! ?鴻???????????吟?ц;腓冴????
1047 // *************************************************************************
1048 procedure TGikoDM.IEActionExecute(Sender: TObject);
1049 begin
1050 ShowThreadAction.Execute;
1051 end;
1052 // *************************************************************************
1053 //! ?上??;腓冴?????????鴻???????????????吟?ц;腓冴????
1054 // *************************************************************************
1055 procedure TGikoDM.ShowThreadActionExecute(Sender: TObject);
1056 var
1057 ThreadItem: TThreadItem;
1058 begin
1059 ThreadItem := GikoForm.GetActiveContent;
1060 if ThreadItem = nil then Exit;
1061 GikoSys.OpenBrowser(ThreadItem.URL, gbtAuto);
1062 end;
1063 // *************************************************************************
1064 //! ?上??;腓冴?????????鴻?????????帥?????????吟?ц;腓冴????
1065 // *************************************************************************
1066 procedure TGikoDM.ShowBoardActionExecute(Sender: TObject);
1067 var
1068 ThreadItem: TThreadItem;
1069 begin
1070 ThreadItem := GikoForm.GetActiveContent;
1071 if ThreadItem = nil then Exit;
1072 GikoSys.OpenBrowser(ThreadItem.ParentBoard.URL, gbtAuto);
1073 end;
1074 // *************************************************************************
1075 //! ?上??;腓冴?????????鴻????????RL???潟???若????
1076 // *************************************************************************
1077 procedure TGikoDM.URLCopyActionExecute(Sender: TObject);
1078 var
1079 s: string;
1080 begin
1081 s := '';
1082 if TObject(GikoForm.GetActiveContent) is TBoard then
1083 s := s + TBoard(GikoForm.GetActiveContent).URL + #13#10
1084 else if TObject(GikoForm.GetActiveContent) is TThreadItem then
1085 s := s + TThreadItem(GikoForm.GetActiveContent).URL + #13#10;
1086 if s <> '' then
1087 Clipboard.AsText := s;
1088 end;
1089 // *************************************************************************
1090 //! ?上??;腓冴?????????鴻???????????潟???若????
1091 // *************************************************************************
1092 procedure TGikoDM.NameCopyActionExecute(Sender: TObject);
1093 var
1094 s: string;
1095 begin
1096 s := '';
1097 if TObject(GikoForm.GetActiveContent) is TBoard then
1098 s := s + TBoard(GikoForm.GetActiveContent).Title + #13#10
1099 else if TObject(GikoForm.GetActiveContent) is TThreadItem then
1100 s := s + TThreadItem(GikoForm.GetActiveContent).Title + #13#10;
1101 if s <> '' then
1102 Clipboard.AsText := s;
1103 end;
1104 // *************************************************************************
1105 //! ?上??;腓冴?????????鴻??????????RL???潟???若????
1106 // *************************************************************************
1107 procedure TGikoDM.NameURLCopyActionExecute(Sender: TObject);
1108 var
1109 s: string;
1110 begin
1111 s := '';
1112 if TObject(GikoForm.GetActiveContent) is TBoard then
1113 s := s + TBoard(GikoForm.GetActiveContent).Title + #13#10 + TBoard(GikoForm.GetActiveContent).URL + #13#10
1114 else if TObject(GikoForm.GetActiveContent) is TThreadItem then
1115 s := s + TThreadItem(GikoForm.GetActiveContent).Title + #13#10 + TThreadItem(GikoForm.GetActiveContent).URL + #13#10;
1116 if s <> '' then
1117 Clipboard.AsText := s;
1118 end;
1119 // *************************************************************************
1120 //! 茵?ず???????????鴻?????????????潟???若??????
1121 // *************************************************************************
1122 procedure TGikoDM.ItemReloadActionExecute(Sender: TObject);
1123 var
1124 ThreadItem: TThreadItem;
1125 shiftDown: Boolean;
1126 begin
1127 ThreadItem := GikoForm.GetActiveContent;
1128 shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
1129 if ThreadItem <> nil then
1130 GikoForm.DownloadContent(ThreadItem, shiftDown);
1131 end;
1132 // *************************************************************************
1133 //! ?上?????????????帥??????????
1134 // *************************************************************************
1135 procedure TGikoDM.BrowserTabCloseActionExecute(Sender: TObject);
1136 var
1137 idx: Integer;
1138 begin
1139 idx := GikoForm.BrowserTab.TabIndex;
1140 if idx <> -1 then begin
1141 if GikoForm.BrowserTab.Tabs.Objects[idx] <> nil then begin
1142 GikoForm.DeleteTab(TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]));
1143 end;
1144 end;
1145 end;
1146 // *************************************************************************
1147 //! ?帥????鐚??や札筝??????????鴻??????Update?ゃ???潟??
1148 // *************************************************************************
1149 procedure TGikoDM.BrowserTabCloseActionUpdate(Sender: TObject);
1150 begin
1151 TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0);
1152 end;
1153 // *************************************************************************
1154 //! ?上?????????????帥??篁ュ?????????
1155 // *************************************************************************
1156 procedure TGikoDM.NotSelectTabCloseActionExecute(Sender: TObject);
1157 var
1158 i: Integer;
1159 idx: Integer;
1160 begin
1161 idx := GikoForm.BrowserTab.TabIndex;
1162 if idx = -1 then Exit;
1163 GikoForm.BrowserTab.Tabs.BeginUpdate;
1164 for i := GikoForm.BrowserTab.Tabs.Count - 1 downto GikoForm.BrowserTab.TabIndex + 1 do begin
1165 TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1166 GikoForm.BrowserTab.Tabs.Delete(i);
1167 end;
1168 if idx > 0 then begin
1169 for i := GikoForm.BrowserTab.TabIndex - 1 downto 0 do begin
1170 TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1171 GikoForm.BrowserTab.Tabs.Delete(i);
1172 end;
1173 end;
1174 GikoForm.BrowserTab.Tabs.EndUpdate;
1175 end;
1176 // *************************************************************************
1177 //! ?帥????鐚??や札筝??????????鴻??????Update?ゃ???潟??
1178 // *************************************************************************
1179 procedure TGikoDM.NotSelectTabCloseActionUpdate(Sender: TObject);
1180 begin
1181 TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 1);
1182 end;
1183 // *************************************************************************
1184 //! ???????帥??????????
1185 // *************************************************************************
1186 procedure TGikoDM.AllTabCloseActionExecute(Sender: TObject);
1187 var
1188 i: Integer;
1189 begin
1190 if GikoSys.Setting.ShowDialogForAllTabClose then
1191 if(MessageDlg('???????帥???????????????????с????鐚?', mtConfirmation,[mbOk, mbCancel], 0) = mrCancel ) then
1192 Exit;
1193
1194 GikoForm.ActiveContent := nil;
1195 GikoForm.BrowserNullTab.Thread := nil;
1196 GikoForm.BrowserTab.OnChange := nil;
1197 GikoForm.BrowserTab.Tabs.BeginUpdate;
1198 for i := GikoForm.BrowserTab.Tabs.Count - 1 downto 0 do begin
1199 TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1200 end;
1201 GikoForm.BrowserTab.Tabs.Clear;
1202 GikoForm.BrowserTab.Tabs.EndUpdate;
1203 GikoForm.BrowserTab.OnChange := GikoForm.BrowserTabChange;
1204 GikoForm.SetContent(GikoForm.BrowserNullTab);
1205 GikoForm.Caption := CAPTION_NAME ;
1206 end;
1207 // *************************************************************************
1208 //! ?上?????????????帥?????鴻???????????ゃ????
1209 // *************************************************************************
1210 procedure TGikoDM.ActiveLogDeleteActionExecute(Sender: TObject);
1211 const
1212 DEL_MSG = '??^0???????違?????ゃ???障?????????????с????鐚?';
1213 DEL_TITLE = '???ょ∈茯?';
1214 var
1215 idx: Integer;
1216 ThreadItem: TThreadItem;
1217 begin
1218 idx := GikoForm.BrowserTab.TabIndex;
1219 if idx <> -1 then begin
1220 if GikoForm.BrowserTab.Tabs.Objects[idx] <> nil then begin
1221 ThreadItem := TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]).Thread;
1222 if GikoSys.Setting.DeleteMsg then
1223 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
1224 if MsgBox(GikoForm.Handle, StringReplace( DEL_MSG, '^0', ThreadItem.Title, [rfReplaceAll] ) , DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
1225 Exit;
1226 GikoForm.DeleteTab(TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]));
1227 ThreadItem.DeleteLogFile;
1228 if ThreadItem.ParentBoard = GikoForm.ActiveList then
1229 GikoForm.ListView.Refresh;
1230 end;
1231 end;
1232 end;
1233 // *************************************************************************
1234 //! 筝???窪???帥?????御??????
1235 // *************************************************************************
1236 procedure TGikoDM.LeftmostTabSelectActionExecute(Sender: TObject);
1237 begin
1238 if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1239 GikoForm.BrowserTab.TabIndex := 0;
1240 GikoForm.BrowserTab.OnChange(nil);
1241 end;
1242 end;
1243 // *************************************************************************
1244 //! ?帥?????違??鐚?篁ヤ??с???帥?????ゃ?潟???????鴻??鐚?篁ュ??ф???鴻??????Update?ゃ???潟??
1245 // *************************************************************************
1246 procedure TGikoDM.LeftmostTabSelectActionUpdate(Sender: TObject);
1247 begin
1248 TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0)
1249 and (GikoForm.BrowserTab.TabIndex <> 0);
1250 end;
1251 // *************************************************************************
1252 //! 綏????帥?????御??????
1253 // *************************************************************************
1254 procedure TGikoDM.LeftTabSelectActionExecute(Sender: TObject);
1255 begin
1256 if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1257 if GikoForm.BrowserTab.TabIndex = -1 then begin
1258 GikoForm.BrowserTab.TabIndex := 0;
1259 GikoForm.BrowserTab.OnChange(nil);
1260 end else if GikoForm.BrowserTab.TabIndex > 0 then begin
1261 GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.TabIndex - 1;
1262 GikoForm.BrowserTab.OnChange(nil);
1263 end;
1264 end;
1265 end;
1266 // *************************************************************************
1267 //! ?潟???帥?????御??????
1268 // *************************************************************************
1269 procedure TGikoDM.RightTabSelectActionExecute(Sender: TObject);
1270 begin
1271 if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1272 if GikoForm.BrowserTab.TabIndex = -1 then begin
1273 GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.Tabs.Count - 1;
1274 GikoForm.BrowserTab.OnChange(nil);
1275 end else if GikoForm.BrowserTab.TabIndex < (GikoForm.BrowserTab.Tabs.Count - 1) then begin
1276 GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.TabIndex + 1;
1277 GikoForm.BrowserTab.OnChange(nil);
1278 end;
1279 end;
1280 end;
1281 // *************************************************************************
1282 //! ?帥?????違??鐚?篁ヤ??с???帥?????括?篁ュ??ф???鴻??????Update?ゃ???潟??
1283 // *************************************************************************
1284 procedure TGikoDM.RightTabSelectActionUpdate(Sender: TObject);
1285 begin
1286 TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0)
1287 and (GikoForm.BrowserTab.TabIndex <> GikoForm.BrowserTab.Tabs.Count - 1);
1288 end;
1289 // *************************************************************************
1290 //! 筝???劻???帥?????御??????
1291 // *************************************************************************
1292 procedure TGikoDM.RightmostTabSelectActionExecute(Sender: TObject);
1293 begin
1294 if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1295 GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.Tabs.Count - 1;
1296 GikoForm.BrowserTab.OnChange(nil);
1297 end;
1298 end;
1299 // *************************************************************************
1300 //! ?御?????????????鴻??????????羂????ャ????申??
1301 // *************************************************************************
1302 procedure TGikoDM.ThreadFavoriteAddActionExecute(Sender: TObject);
1303 begin
1304 if TObject(GikoForm.ListView.Selected.Data) is TThreadItem then
1305 GikoForm.ShowFavoriteAddDialog(TObject(GikoForm.ListView.Selected.Data));
1306 end;
1307 // *************************************************************************
1308 //! ?鴻??????筝?荀с?с???鴻????鐚??や札筝??御???????????????鴻??????Update?ゃ???潟??
1309 // *************************************************************************
1310 procedure TGikoDM.ThreadFavoriteAddActionUpdate(Sender: TObject);
1311 begin
1312 TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard)
1313 and (GikoForm.ListView.SelCount > 0);
1314 end;
1315 // *************************************************************************
1316 //! ???鴻????絎鴻??腟???莨若??
1317 // *************************************************************************
1318 procedure TGikoDM.SelectResActionExecute(Sender: TObject);
1319 var
1320 Dlg: TListSelectDialog;
1321 FilterList : TStringList;
1322 idx : Integer;
1323 begin
1324 Dlg := TListSelectDialog.Create(GikoForm);
1325 try
1326 Dlg.SelectComboBox.Items.Assign(GikoSys.Setting.SelectTextList);
1327 Dlg.SelectComboBox.Text := GikoForm.SelectResWord;
1328 Dlg.ShowModal;
1329 if Dlg.ModalResult = mrOK then begin
1330 SelectResAction.Checked := True;
1331 if Length( Dlg.SelectComboBox.Text ) = 0 then begin
1332 // 腥阪?ュ??? OK ?????莨若?粋В?ゃ?????靸?/span>
1333 ResRangeAction.Execute;
1334 end else begin
1335 GikoSys.ResRange := Ord( grrSelect );
1336
1337 // ??緇???┃絎???????????荀?????????span>
1338 GikoForm.SelectResWord := Dlg.SelectComboBox.Text;
1339
1340 // 罎?膣√吋罩眼???贋??/span>
1341 idx := GikoSys.Setting.SelectTextList.IndexOf(Dlg.SelectComboBox.Text);
1342 if idx <> -1 then
1343 GikoSys.Setting.SelectTextList.Delete(idx);
1344 GikoSys.Setting.SelectTextList.Insert(0, Dlg.SelectComboBox.Text);
1345 while Dlg.SelectComboBox.Items.Count > 100 do begin
1346 Dlg.SelectComboBox.Items.Delete(Dlg.SelectComboBox.Items.Count - 1);
1347 end;
1348
1349 try
1350 if GikoForm.SelectComboBoxPanel.Visible then
1351 GikoForm.SelectComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
1352 except
1353 end;
1354
1355 // ???c???帥??┃絎?
1356 FilterList := TStringList.Create;
1357 try
1358 GikoSys.FSelectResFilter.Reverse := True;
1359 FilterList.Delimiter := ' '; //?阪????絖?????茹??鴻???若?鴻??┃絎?
1360 FilterList.DelimitedText := Dlg.SelectComboBox.Text;
1361
1362 GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
1363 finally
1364 FilterList.Free;
1365 end;
1366 GikoForm.RepaintAllTabsBrowser();
1367 end;
1368 end else begin
1369 // ???c?潟?祉??/span>
1370 if GikoSys.ResRange <> Ord( grrSelect ) then
1371 ResRangeAction.Execute;
1372 end;
1373 finally
1374 Dlg.Release;
1375 end;
1376
1377 end;
1378 // *************************************************************************
1379 //! ?????????鴻??茵?ず????
1380 // *************************************************************************
1381 procedure TGikoDM.AllResActionExecute(Sender: TObject);
1382 begin
1383 if(GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil )
1384 and (GikoForm.ActiveContent.Browser.Busy) then Exit;
1385
1386 GikoForm.ResRangeMenuSelect := Ord( grrAll );
1387 AllResAction.Checked := True;
1388
1389 //??茵?ず膀??蚊??荐??????
1390 SetResRange(Ord( grrAll ));
1391 end;
1392 // *************************************************************************
1393 //! ???鴻??;腓榊??蚊??荐??
1394 // *************************************************************************
1395 procedure TGikoDM.ResRangeActionExecute(Sender: TObject);
1396 begin
1397 case GikoForm.ResRangeMenuSelect of
1398 Ord( grrAll ): AllResAction.Execute;
1399 Ord( grrKoko ): OnlyKokoResAction.Execute;
1400 Ord( grrNew ): OnlyNewResAction.Execute;
1401 100: OnlyAHundredResAction.Execute;
1402 end;
1403
1404 end;
1405 // *************************************************************************
1406 //! ?????鴻?????????????鴻??????筝?荀с??茵?ず
1407 // *************************************************************************
1408 procedure TGikoDM.UpBoardActionExecute(Sender: TObject);
1409 begin
1410 GikoForm.SelectTreeNode( GikoForm.GetActiveContent.ParentBoard, True );
1411 end;
1412 // *************************************************************************
1413 //! ??絎???????垩?????鴻?????/span>
1414 // *************************************************************************
1415 procedure TGikoDM.JumpToNumOfResActionExecute(Sender: TObject);
1416 var
1417 str: string;
1418 res: integer;
1419 begin
1420 str := '1';
1421 if( InputQuery('??絎???????垩?????鴻?????#39;, '??垩???ュ?????????????', str) ) then begin
1422 str := ZenToHan(str);
1423 res := StrToIntDef(str, -1);
1424 if (res > 0) and (res <= GikoForm.GetActiveContent.Count) then begin
1425 GikoForm.ActiveContent.Move(IntToStr(res));
1426 SetFocusForBrowserAction.Execute;
1427 end else if res > GikoForm.GetActiveContent.Count then begin
1428 GikoForm.ActiveContent.Move(IntToStr(GikoForm.GetActiveContent.Count));
1429 SetFocusForBrowserAction.Execute;
1430 end;
1431 end;
1432 end;
1433 // *************************************************************************
1434 //! ?≪?????c?????帥???????潟????????
1435 // *************************************************************************
1436 procedure TGikoDM.RightTabCloseActionExecute(Sender: TObject);
1437 var
1438 i: Integer;
1439 idx: Integer;
1440 begin
1441 idx := GikoForm.BrowserTab.TabIndex;
1442 if idx = -1 then Exit;
1443 GikoForm.BrowserTab.Tabs.BeginUpdate;
1444 for i := GikoForm.BrowserTab.Tabs.Count - 1 downto idx + 1 do begin
1445 TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1446 GikoForm.BrowserTab.Tabs.Delete(i);
1447 end;
1448 GikoForm.BrowserTab.Tabs.EndUpdate;
1449 end;
1450 // *************************************************************************
1451 //! ?帥?????違??鐚?篁ヤ??ф???鴻??pdate?ゃ???潟??
1452 // *************************************************************************
1453 procedure TGikoDM.RightTabCloseActionUpdate(Sender: TObject);
1454 begin
1455 TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 1);
1456 end;
1457 // *************************************************************************
1458 //! ?≪?????c?????帥??????綏?????????
1459 // *************************************************************************
1460 procedure TGikoDM.LeftTabCloseActionExecute(Sender: TObject);
1461 var
1462 i: Integer;
1463 idx: Integer;
1464 begin
1465 idx := GikoForm.BrowserTab.TabIndex;
1466 if idx = -1 then Exit;
1467 GikoForm.BrowserTab.Tabs.BeginUpdate;
1468 if idx > 0 then begin
1469 for i := idx - 1 downto 0 do begin
1470 TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1471 GikoForm.BrowserTab.Tabs.Delete(i);
1472 end;
1473 end;
1474 GikoForm.BrowserTab.Tabs.EndUpdate;
1475 end;
1476 ////////////////////////////////?鴻???????障?с?????障??/////////////////////
1477 procedure TGikoDM.DataModuleCreate(Sender: TObject);
1478 begin
1479 end;
1480 // *************************************************************************
1481 //! ???井?膣≪???ゃ?≪???違??茵?ず????
1482 // *************************************************************************
1483 procedure TGikoDM.SearchActionExecute(Sender: TObject);
1484 var
1485 chk: TObject;
1486 begin
1487
1488 if GikoForm.SearchDialog = nil then begin
1489 if (GikoForm.GetActiveList is TCategory) or (GikoForm.GetActiveList is TBoard) then
1490 chk := GikoForm.GetActiveList
1491 else
1492 chk := nil;
1493
1494 GikoForm.SearchDialog := TSearchDialog.Create(GikoForm, chk);
1495 GikoForm.SearchDialog.SearchComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
1496 end;
1497
1498 try
1499 GikoForm.SearchDialog.Show;
1500 except
1501 end;
1502 end;
1503 // *************************************************************************
1504 //! ?????激?с?潟???ゃ?≪???違??茵?ず????
1505 // *************************************************************************
1506 procedure TGikoDM.OptionActionExecute(Sender: TObject);
1507 var
1508 Dlg: TOptionDialog;
1509 begin
1510 Dlg := TOptionDialog.Create(GikoForm);
1511 try
1512 Dlg.ShowModal;
1513 finally
1514 Dlg.Release;
1515 end;
1516 end;
1517 // *************************************************************************
1518 //! 綏≦?????ゃ?≪???違??茵?ず????
1519 // *************************************************************************
1520 procedure TGikoDM.RoundActionExecute(Sender: TObject);
1521 var
1522 Dlg: TRoundDialog;
1523 begin
1524 Dlg := TRoundDialog.Create(GikoForm);
1525 try
1526 Dlg.ShowModal;
1527 finally
1528 Dlg.Release;
1529 end;
1530 end;
1531 // *************************************************************************
1532 //! ???取┃絎????ゃ?≪???違??????span>
1533 // *************************************************************************
1534 procedure TGikoDM.KeySettingActionExecute(Sender: TObject);
1535 var
1536 Dlg: TKeySettingForm;
1537 begin
1538 Dlg := TKeySettingForm.Create(GikoForm);
1539 try
1540 if Dlg.ShowModal = mrOk then begin
1541 GikoSys.SaveKeySetting(GikoFormActionList);
1542 GikoSys.SaveEditorKeySetting(Dlg.EditorForm.ActionList);
1543 GikoSys.Setting.Gestures.SaveGesture( GikoSys.Setting.GetGestureFileName );
1544 end;
1545
1546 finally
1547 Dlg.Release;
1548 MouseGesture.UnHook;
1549 MouseGesture.OnGestureStart := GikoForm.OnGestureStart;
1550 MouseGesture.OnGestureMove := GikoForm.OnGestureMove;
1551 MouseGesture.OnGestureEnd := GikoForm.OnGestureEnd;
1552 if GikoSys.Setting.GestureEnabled then begin
1553 GikoSys.Setting.Gestures.ClearGesture;
1554 GikoSys.Setting.Gestures.LoadGesture(
1555 GikoSys.Setting.GetGestureFileName, GikoFormActionList );
1556 MouseGesture.SetHook( GikoForm.Handle );
1557 end;
1558 end;
1559 end;
1560 // *************************************************************************
1561 //! ???取┃絎????ゃ?≪???違??????span>
1562 // *************************************************************************
1563 procedure TGikoDM.KotehanActionExecute(Sender: TObject);
1564 var
1565 Dlg: TKotehanDialog;
1566 begin
1567 Dlg := TKotehanDialog.Create(GikoForm);
1568 try
1569 Dlg.ShowModal;
1570 finally
1571 Dlg.Release;
1572 end;
1573 end;
1574 // *************************************************************************
1575 //! ???若?????取┃絎????ゃ?≪???違??????span>
1576 // *************************************************************************
1577 procedure TGikoDM.ToolBarSettingActionExecute(Sender: TObject);
1578 var
1579 Dlg: TToolBarSettingDialog;
1580 i: Integer;
1581 begin
1582 Dlg := TToolBarSettingDialog.Create(GikoForm, GikoFormActionList);
1583 try
1584 Dlg.AddToolBar(GikoForm.StdToolBar, gttStandard);
1585 Dlg.AddToolBar(GikoForm.ListToolBar, gttList);
1586 Dlg.AddToolBar(GikoForm.BrowserToolBar, gttBrowser);
1587 case GikoForm.ToolBarSettingSender of
1588 tssMain: Dlg.ToolBarIndex := 0;
1589 tssList: Dlg.ToolBarIndex := 1;
1590 tssBrowser: Dlg.ToolBarIndex := 2;
1591 end;
1592 if Dlg.ShowModal = mrOK then begin
1593 GikoForm.SetToolBarPopup;
1594
1595 //?????????荐??????????????????????????c?????????
1596 for i := 0 to GikoForm.MainCoolBar.Bands.Count - 1 do begin
1597 GikoForm.MainCoolBar.Bands[i].MinWidth :=
1598 GikoForm.MainCoolBar.Bands[i].MinWidth + 1;
1599 GikoForm.MainCoolBar.Bands[i].MinWidth :=
1600 GikoForm.MainCoolBar.Bands[i].MinWidth - 1;
1601 end;
1602 for i := 0 to GikoForm.ListCoolBar.Bands.Count - 1 do begin
1603 GikoForm.ListCoolBar.Bands[i].MinWidth :=
1604 GikoForm.ListCoolBar.Bands[i].MinWidth + 1;
1605 GikoForm.ListCoolBar.Bands[i].MinWidth :=
1606 GikoForm.ListCoolBar.Bands[i].MinWidth - 1;
1607 end;
1608 for i := 0 to GikoForm.BrowserCoolBar.Bands.Count - 1 do begin
1609 GikoForm.BrowserCoolBar.Bands[i].MinWidth :=
1610 GikoForm.BrowserCoolBar.Bands[i].MinWidth + 1;
1611 GikoForm.BrowserCoolBar.Bands[i].MinWidth :=
1612 GikoForm.BrowserCoolBar.Bands[i].MinWidth - 1;
1613 end;
1614
1615 SaveToolBarSetting(GikoForm.StdToolBar);
1616 SaveToolBarSetting(GikoForm.ListToolBar);
1617 //ListToolBar??????????????????腟?莨若??omboBox????臀?/span>
1618 GikoForm.SetSelectComboBox;
1619 GikoForm.ResetBandInfo( GikoForm.ListCoolBar, GikoForm.ListToolBar );
1620 SaveToolBarSetting(GikoForm.BrowserToolBar);
1621 end;
1622 finally
1623 Dlg.Release;
1624 GikoForm.ToolBarSettingSender := tssNone;
1625 end;
1626 end;
1627 // *************************************************************************
1628 //! ???ャ?若??
1629 // *************************************************************************
1630 procedure TGikoDM.MuteActionExecute(Sender: TObject);
1631 begin
1632 GikoSys.Setting.Mute := not GikoSys.Setting.Mute;
1633 end;
1634 ////////////////////////////////???若???障?с?????障??/////////////////////
1635 // *************************************************************************
1636 //! ?鴻??????筝?荀с???????潟???若??????
1637 // *************************************************************************
1638 procedure TGikoDM.TreeSelectBoradReloadExecute(Sender: TObject);
1639 var
1640 Board: TBoard;
1641 TmpTreeNode: TTreeNode;
1642 begin
1643 TmpTreeNode := GikoForm.ClickNode;
1644 GikoForm.TreeView.Selected := GikoForm.ClickNode;
1645 Board := nil;
1646
1647 if TObject(TmpTreeNode.Data) is TBoard then
1648 Board := TBoard(TmpTreeNode.Data)
1649 else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then
1650 Board := TFavoriteBoardItem(TmpTreeNode.Data).Item;
1651
1652 if Board <> nil then
1653 GikoForm.DownloadList(Board);
1654 end;
1655 // *************************************************************************
1656 //! ?御?????????鴻?????????????潟???若??????
1657 // *************************************************************************
1658 procedure TGikoDM.TreeSelectThreadReloadExecute(Sender: TObject);
1659 var
1660 ThreadItem: TThreadItem;
1661 TmpTreeNode: TTreeNode;
1662 begin
1663 TmpTreeNode := GikoForm.ClickNode;
1664 GikoForm.TreeView.Selected := GikoForm.ClickNode;
1665 ThreadItem := nil;
1666
1667 if TObject(TmpTreeNode.Data) is TThreadItem then
1668 ThreadItem := TThreadItem(TmpTreeNode.Data)
1669 else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then
1670 ThreadItem := TFavoriteThreadItem(TmpTreeNode.Data).Item;
1671
1672 if ThreadItem <> nil then
1673 GikoForm.DownloadContent(ThreadItem);
1674 end;
1675 // *************************************************************************
1676 //! ?御?????????帥??RL???潟???若????
1677 // *************************************************************************
1678 procedure TGikoDM.TreeSelectURLCopyExecute(Sender: TObject);
1679 var
1680 TmpTreeNode: TTreeNode;
1681 s: string;
1682 begin
1683 TmpTreeNode := GikoForm.ClickNode;
1684 GikoForm.TreeView.Selected := GikoForm.ClickNode;
1685 if TObject(TmpTreeNode.Data) is TBoard then begin
1686 s := TBoard(TmpTreeNode.Data).URL + #13#10;
1687 end else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then begin
1688 s := TFavoriteBoardItem(TmpTreeNode.Data).URL + #13#10;
1689 end else if (TObject(TmpTreeNode.Data) is TThreadItem) then begin
1690 s := TThreadItem(TmpTreeNode.Data).URL + #13#10;
1691 end else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then begin
1692 s := TFavoriteThreadItem(TmpTreeNode.Data).URL + #13#10;
1693 end;
1694 Clipboard.AsText := s;
1695 end;
1696 // *************************************************************************
1697 //! ?御?????????帥????????RL???潟???若????
1698 // *************************************************************************
1699 procedure TGikoDM.TreeSelectNameURLCopyExecute(Sender: TObject);
1700 var
1701 TmpTreeNode: TTreeNode;
1702 s: string;
1703 begin
1704 TmpTreeNode := GikoForm.ClickNode;
1705 GikoForm.TreeView.Selected := GikoForm.ClickNode;
1706 if TObject(TmpTreeNode.Data) is TBoard then begin
1707 s := TBoard(TmpTreeNode.Data).Title + #13#10 + TBoard(TmpTreeNode.Data).URL + #13#10;
1708 end else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then begin
1709 s := TFavoriteBoardItem(TmpTreeNode.Data).Item.Title + #13#10 + TFavoriteBoardItem(TmpTreeNode.Data).URL + #13#10;
1710 end else if (TObject(TmpTreeNode.Data) is TThreadItem) then begin
1711 s := TThreadItem(TmpTreeNode.Data).Title + #13#10 + TThreadItem(TmpTreeNode.Data).URL + #13#10;
1712 end else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then begin
1713 s := TFavoriteThreadItem(TmpTreeNode.Data).Item.Title + #13#10 + TFavoriteThreadItem(TmpTreeNode.Data).URL + #13#10;
1714 end;
1715 Clipboard.AsText := s;
1716 end;
1717 // *************************************************************************
1718 //! ??羂????ャ????申??????
1719 // *************************************************************************
1720 procedure TGikoDM.TreeSelectFavoriteAddActionExecute(Sender: TObject);
1721 begin
1722 GikoForm.ShowFavoriteAddDialog(TObject(GikoForm.ClickNode.Data));
1723 end;
1724 // *************************************************************************
1725 //! ?水??罎?膣?/span>
1726 // *************************************************************************
1727 procedure TGikoDM.TreeSelectSearchBoardNameExecute(Sender: TObject);
1728 var
1729 s : String;
1730 msg : String;
1731 CurItem : TTreeNode;
1732 next : boolean;
1733 begin
1734 if InputQuery('?水??罎?膣?#39;,'?水?????ュ??',s) then begin
1735 next := true;
1736 while next do begin
1737 if GikoForm.TreeView.Selected = nil then
1738 CurItem := GikoForm.TreeView.Items.GetFirstNode
1739 else begin
1740 CurItem := GikoForm.TreeView.Selected.GetNext;
1741 if CurItem = nil then
1742 CurItem := GikoForm.TreeView.Items.GetFirstNode;
1743 end;
1744 while CurItem <> nil do begin
1745 if (CurItem.ImageIndex <> 2) and (VaguePos(s,CurItem.Text) <> 0) then begin
1746 break;
1747 end;
1748 CurItem := CurItem.GetNext;
1749 end;
1750 try
1751 if CurItem = nil then begin
1752 msg := '???????祉???障????鐚?';
1753 if MsgBox(GikoForm.Handle, msg, '', MB_YESNO or MB_ICONEXCLAMATION) = mrYes then begin
1754 CurItem := GikoForm.TreeView.Items.GetFirstNode;
1755 end else begin
1756 Exit;
1757 end;
1758 GikoForm.TreeView.Select(CurItem);
1759 GikoForm.TreeView.SetFocus;
1760 end else begin
1761 GikoForm.TreeView.Select(CurItem);
1762 GikoForm.TreeView.SetFocus;
1763 msg := '罨<??????障????鐚?';
1764 if MsgBox(GikoForm.Handle, msg, '', MB_YESNO or MB_ICONEXCLAMATION) = mrYes then begin
1765 next := true;
1766 end else begin
1767 next := false;
1768 end;
1769 end;
1770
1771 except
1772 Exit;
1773 end;
1774 end;
1775 end;
1776 end;
1777 // *************************************************************************
1778 //! ?御?????????帥?????????潟???若????
1779 // *************************************************************************
1780 procedure TGikoDM.TreeSelectNameCopyExecute(Sender: TObject);
1781 var
1782 s: string;
1783 begin
1784 GikoForm.TreeView.Selected := GikoForm.ClickNode;
1785 s := GikoForm.ClickNode.Text;
1786 Clipboard.AsText := s;
1787 end;
1788 ////////////////////////////////?????若???????≪?????障?с?????障??/////////////////////
1789 // *************************************************************************
1790 //! ???違?ゃ?鰹????違?≪??????????
1791 // *************************************************************************
1792 procedure TGikoDM.LoginActionExecute(Sender: TObject);
1793 var
1794 TmpCursor: TCursor;
1795 msg : String;
1796 begin
1797 if GikoSys.Dolib.Connected then begin
1798 //???違?≪????
1799 GikoSys.Dolib.Disconnect;
1800 LoginAction.Checked := False;
1801 GikoForm.AddMessageList(GikoSys.Setting.GetMessage(Ord(gmLogout)), nil, gmiOK);
1802 LoginAction.Caption := '???違?ゃ??&L)';
1803 end else begin
1804 TmpCursor := GikoForm.ScreenCursor;
1805 GikoForm.ScreenCursor := crHourGlass;
1806 try
1807 //??絽吾???違?ゃ??/span>
1808 if not GikoSys.Setting.ForcedLogin then begin
1809 GikoSys.Dolib.ClientUA := 'gikoNavi/1.00';
1810 GikoSys.Dolib.UserName := GikoSys.Setting.UserID;
1811 GikoSys.Dolib.Password := GikoSys.Setting.Password;
1812 if GikoSys.Setting.ReadProxy then begin
1813 GikoSys.Dolib.ProxyAddress := GikoSys.Setting.ReadProxyAddress;
1814 GikoSys.Dolib.ProxyPort := GikoSys.Setting.ReadProxyPort;
1815 end else begin
1816 GikoSys.Dolib.ProxyAddress := '';
1817 GikoSys.Dolib.ProxyPort := 0;
1818 end;
1819 if GikoSys.Dolib.Connect then begin
1820 LoginAction.Checked := True;
1821 GikoForm.AddMessageList(GikoSys.Setting.GetMessage(Ord(gmLogin)) + GikoSys.Setting.UserID, nil, gmiOK);
1822 LoginAction.Caption := '???違?≪????(&L)';
1823 //LoginToolButton.Style := tbsCheck;
1824 end else begin
1825 // MsgBox(Handle, '???違?ゃ?喝?堺?ャ?障?????с????', '??????#39;, MB_OK or MB_ICONSTOP);
1826 GikoForm.AddMessageList(GikoSys.Dolib.ErrorMsg, nil, gmiNG);
1827 GikoForm.PlaySound('Error');
1828 LoginAction.Checked := False;
1829 //LoginToolButton.Down := False;
1830 ///LoginToolButton.Style := tbsButton;
1831 end;
1832 end else begin
1833 msg := '綣桁?吟???違?ゃ?潟?≪?若???с????泣?若????┝???吾?????号?с?????с???????障??????' + #13#10
1834 + '?処??泣?若?????翫???????????????鴻???若?????障???????醇?с???????障????' + #13#10
1835 + '?????≪?若???с???違?ゃ?潟??荅??帥?障????鐚?' + #13#10;
1836 if MsgBox(GikoForm.Handle, msg, '茘???', MB_YESNO or MB_ICONEXCLAMATION) = IDYES then begin
1837 GikoSys.Dolib.ClientUA := 'gikoNavi/1.00';
1838 GikoSys.Dolib.UserName := GikoSys.Setting.UserID;
1839 GikoSys.Dolib.Password := GikoSys.Setting.Password;
1840 if GikoSys.Setting.ReadProxy then begin
1841 GikoSys.Dolib.ProxyAddress := GikoSys.Setting.ReadProxyAddress;
1842 GikoSys.Dolib.ProxyPort := GikoSys.Setting.ReadProxyPort;
1843 end else begin
1844 GikoSys.Dolib.ProxyAddress := '';
1845 GikoSys.Dolib.ProxyPort := 0;
1846 end;
1847 //SSL??絎括??七?吟???違?ゃ??/span>
1848 GikoSys.Dolib.ForcedConnect;
1849 if GikoSys.Dolib.Connect then begin
1850 LoginAction.Checked := True;
1851 GikoForm.AddMessageList(GikoSys.Setting.GetMessage(Ord(gmForceLogin)) + GikoSys.Setting.UserID, nil, gmiOK);
1852 LoginAction.Caption := '???違?≪????(&L)';
1853 //LoginToolButton.Style := tbsCheck;
1854 end else begin
1855 // MsgBox(Handle, '???違?ゃ?喝?堺?ャ?障?????с????', '??????#39;, MB_OK or MB_ICONSTOP);
1856 GikoForm.AddMessageList(GikoSys.Dolib.ErrorMsg, nil, gmiNG);
1857 GikoForm.PlaySound('Error');
1858 LoginAction.Checked := False;
1859 //LoginToolButton.Down := False;
1860 //LoginToolButton.Style := tbsButton;
1861 end;
1862 end else begin
1863 LoginAction.Checked := False;
1864 //LoginToolButton.Down := False;
1865 //LoginToolButton.Style := tbsButton;
1866 end;
1867 end;
1868 finally
1869 GikoForm.ScreenCursor := TmpCursor;
1870 end;
1871 end;
1872 end;
1873 // *************************************************************************
1874 //! ???若???贋?違???ゃ?≪???違??茵?ず????
1875 // *************************************************************************
1876 procedure TGikoDM.NewBoardActionExecute(Sender: TObject);
1877 var
1878 Dlg: TNewBoardDialog;
1879 Msg: string;
1880 begin
1881 if GikoForm.EditorFormExists then begin
1882 Msg := '???鴻?????c?帥???????????????????';
1883 MsgBox(GikoForm.Handle, Msg, '??????#39;, MB_OK or MB_ICONSTOP);
1884 Exit;
1885 end;
1886 Dlg := TNewBoardDialog.Create(GikoForm);
1887 try
1888 Dlg.ShowModal;
1889 finally
1890 Dlg.Release;
1891 end;
1892 end;
1893 // *************************************************************************
1894 //! ?御?????????????鴻???????????ゃ????
1895 // *************************************************************************
1896 procedure TGikoDM.LogDeleteActionExecute(Sender: TObject);
1897 const
1898 DEL_MSG = '??^0???????違?????ゃ???障?????????????с????鐚?';
1899 DEL_SAME_MSG = '?????? ^0 ?????鴻???????????違?????ゃ???障?????????????с????鐚?';
1900 DEL_TITLE = '???ょ∈茯?';
1901 var
1902 ThreadItem: TThreadItem;
1903 TmpListItem: TListItem;
1904 List: TList;
1905 i: Integer;
1906 begin
1907 List := TList.Create;
1908 try
1909 TmpListItem := GikoForm.ListView.Selected;
1910 while TmpListItem <> nil do begin
1911 if TObject(TmpListItem.Data) is TThreadItem then begin
1912 ThreadItem := TThreadItem(TmpListItem.Data);
1913 if ThreadItem.IsLogFile then
1914 List.Add(ThreadItem);
1915 end;
1916 TmpListItem := GikoForm.ListView.GetNextItem(TmpListItem, sdAll, [isSelected]);
1917 end;
1918
1919 if GikoSys.Setting.DeleteMsg and (List.Count > 0) then begin
1920 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then begin
1921 if List.Count = 1 then begin
1922 if MsgBox(GikoForm.Handle, StringReplace( DEL_MSG, '^0', TThreadItem( List[ 0 ] ).Title, [rfReplaceAll] ) , DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
1923 Exit;
1924 end else begin
1925 if MsgBox(GikoForm.Handle, StringReplace( DEL_SAME_MSG, '^0', IntToStr( List.Count ), [rfReplaceAll] ), DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> IDYES then
1926 Exit;
1927 end;
1928 end;
1929 end;
1930
1931 for i := 0 to List.Count - 1 do begin
1932 ThreadItem := TThreadItem(List[i]);
1933 GikoForm.DeleteHistory(ThreadItem);
1934 GikoForm.DeleteTab(ThreadItem);
1935 ThreadItem.DeleteLogFile;
1936
1937 GikoForm.TreeView.Refresh; // UnRead ??;腓冴???贋??/span>
1938 end;
1939 GikoForm.ListView.Refresh;
1940 finally
1941 List.Free;
1942 end;
1943 end;
1944 // *************************************************************************
1945 //! ActiveList??TBoard?с?鴻???荀с?э??や札筝??御???????????????鴻??????Action?у?演??
1946 // *************************************************************************
1947 procedure TGikoDM.LogDeleteActionUpdate(Sender: TObject);
1948 begin
1949 TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard)
1950 and (GikoForm.ListView.SelCount > 0);
1951 end;
1952 // *************************************************************************
1953 //! 腟?莨若?水吋罩眼??羔??祉????
1954 // *************************************************************************
1955 procedure TGikoDM.SelectTextClearActionExecute(Sender: TObject);
1956 const
1957 DEL_MSG = '腟?莨若?水??吋罩眼?????ゃ???障?????????????с????鐚?';
1958 DEL_TITLE = '???ょ∈茯?';
1959 begin
1960 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
1961 if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
1962 Exit;
1963 GikoSys.Setting.SelectTextList.Clear;
1964 GikoForm.SelectComboBox.Items.Clear;
1965 GikoForm.SelectComboBox.Text := '';
1966 GikoForm.SetListViewType( gvtAll );
1967 end;
1968 // *************************************************************************
1969 //! ???鴻?????c?帥??????絮ユ???羔??祉????
1970 // *************************************************************************
1971 procedure TGikoDM.NameTextClearActionExecute(Sender: TObject);
1972 const
1973 DEL_MSG = '???鴻?????c?水??????吋罩眼?????ゃ???障?????????????с????鐚?';
1974 DEL_TITLE = '???ょ∈茯?';
1975 begin
1976 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
1977 if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
1978 Exit;
1979 GikoSys.Setting.NameList.Clear;
1980 GikoForm.AllEditroFormNameTextClearClear;
1981 end;
1982 // *************************************************************************
1983 //! ???鴻?????c?帥???<?若??吋罩眼??羔??祉????
1984 // *************************************************************************
1985 procedure TGikoDM.MailTextClearActionExecute(Sender: TObject);
1986 const
1987 DEL_MSG = '???鴻?????c?帥?<?若????吋罩眼?????ゃ???障?????????????с????鐚?';
1988 DEL_TITLE = '???ょ∈茯?';
1989 begin
1990 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
1991 if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
1992 Exit;
1993 GikoSys.Setting.MailList.Clear;
1994 GikoForm.AllEditroFormMailTextClearClear;
1995 end;
1996 // *************************************************************************
1997 //! ???潟??????腟?篋?????
1998 // *************************************************************************
1999 procedure TGikoDM.ExitActionExecute(Sender: TObject);
2000 begin
2001 GikoForm.Close;
2002 end;
2003 // *************************************************************************
2004 //! ??羂????ャ?????????鴻???若????絎?茵???????
2005 // *************************************************************************
2006 procedure TGikoDM.ExportFavoriteFileBeforeExecute(Sender: TObject);
2007 begin
2008 ExportFavoriteFile.Dialog.FileName := FavoriteDM.GetFavoriteFilePath;
2009 end;
2010 // *************************************************************************
2011 //! ??羂????ャ?????????鴻???若????絎?茵?????
2012 // *************************************************************************
2013 procedure TGikoDM.ExportFavoriteFileAccept(Sender: TObject);
2014 begin
2015 if FavoriteDM.SaveFavoriteFile( ExportFavoriteFile.Dialog.FileName ) Then begin
2016 ShowMessage('???<?ゃ?????阪?????障????');
2017 end else begin
2018 ShowMessage('???<?ゃ?????阪????け?????障????');
2019 end;
2020 end;
2021 // *************************************************************************
2022 //! ?御???鴻????????HTML???????絖?
2023 // *************************************************************************
2024 procedure TGikoDM.SelectItemSaveForHTMLExecute(Sender: TObject);
2025 var
2026 List: TList;
2027 i: Integer;
2028 html: TStringList;
2029 title: string;
2030 begin
2031 List := TList.Create;
2032 try
2033 GikoForm.ScreenCursor := crHourGlass;
2034 GikoForm.SelectListItem(List);
2035 if ((GikoSys.Setting.ListOrientation = gloVertical) and
2036 (GikoSys.Setting.ListHeightState = glsMax)) or
2037 ((GikoSys.Setting.ListOrientation = gloHorizontal) and
2038 (GikoSys.Setting.ListWidthState = glsMax)) then
2039 ShowMessage('?鴻??????筝?荀с??茵?ず???????????')
2040 else if(List.Count = 0) then
2041 ShowMessage('?鴻?????????御?????????????')
2042 else begin
2043 FileSaveAs1.Dialog.Title := '?御???鴻????????HTML???????絖?';
2044 FileSaveAs1.Dialog.Filter := 'HTML???<?ゃ??*.html)|*.html';
2045 for i := 0 to List.Count - 1 do begin
2046 if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin
2047 FileSaveAs1.Dialog.FileName := ReplaseNoValidateChar(TThreadItem(List[i]).Title) + '.html';
2048 if FileSaveAs1.Dialog.Execute then begin
2049 html := TStringList.Create;
2050 title := TThreadItem(List[i]).Title;
2051 try
2052 HTMLCreater.CreateHTML3(html, TThreadItem(List[i]), title);
2053 html.SaveToFile(FileSaveAs1.Dialog.FileName);
2054 THTMLCreate.SkinorCSSFilesCopy(ExtractFilePath(FileSaveAs1.Dialog.FileName));
2055 finally
2056 html.Free;
2057 end;
2058 end;
2059 end;
2060 end;
2061 end;
2062 finally
2063 GikoForm.ScreenCursor := crDefault;
2064 List.Free;
2065 end;
2066 end;
2067 // *************************************************************************
2068 //! ?御???鴻????????DAT綵√????障?鞘?絖?
2069 // *************************************************************************
2070 procedure TGikoDM.SelectItemSaveForDatExecute(Sender: TObject);
2071 var
2072 List: TList;
2073 i: Integer;
2074 begin
2075 List := TList.Create;
2076 try
2077 GikoForm.ScreenCursor := crHourGlass;
2078 GikoForm.SelectListItem(List);
2079 if ((GikoSys.Setting.ListOrientation = gloVertical) and
2080 (GikoSys.Setting.ListHeightState = glsMax)) or
2081 ((GikoSys.Setting.ListOrientation = gloHorizontal) and
2082 (GikoSys.Setting.ListWidthState = glsMax)) then
2083 ShowMessage('?鴻??????筝?荀с??茵?ず???????????')
2084 else if(List.Count = 0) then
2085 ShowMessage('?鴻?????????御?????????????')
2086 else begin
2087 FileSaveAs1.Dialog.Title := '?御???鴻????????dat???障?鞘?絖?';
2088 FileSaveAs1.Dialog.Filter := 'DAT???<?ゃ??*.dat)|*.dat';
2089 for i := 0 to List.Count - 1 do begin
2090 if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin
2091 FileSaveAs1.Dialog.FileName := TThreadItem(List[i]).FileName;
2092 if FileSaveAs1.Dialog.Execute then begin
2093 CopyFile(PChar(TThreadItem(List[i]).FilePath),
2094 PChar(FileSaveAs1.Dialog.FileName), true);
2095 end;
2096 end;
2097 end;
2098 end;
2099 finally
2100 GikoForm.ScreenCursor := crDefault;
2101 List.Free;
2102 end;
2103
2104 end;
2105 // *************************************************************************
2106 //! ?帥??????????篆?絖?
2107 // *************************************************************************
2108 procedure TGikoDM.TabsSaveActionExecute(Sender: TObject);
2109 begin
2110 if not GikoForm.SaveTabURLs then begin
2111 if TabsSaveAction.Tag = 0 then
2112 ShowMessage('篆?絖??????帥?????????障????')
2113 else if TabsSaveAction.Tag = 1 then
2114 GikoDM.TabsOpenAction.Tag := -1;
2115 end;
2116 end;
2117 // *************************************************************************
2118 //! ?帥??????????緇???
2119 // *************************************************************************
2120 procedure TGikoDM.TabsOpenActionExecute(Sender: TObject);
2121 begin
2122 if TabsOpenAction.Tag <> -1 then begin
2123 if not GikoForm.LoadTabURLs then begin
2124 if TabsOpenAction.Tag = 0 then
2125 ShowMessage('茵?ず?????帥?????????障??????');
2126 end;
2127 end;
2128 end;
2129 // *************************************************************************
2130 //! ?帥??????????????篆?絖?
2131 // *************************************************************************
2132 procedure TGikoDM.TabAutoSaveActionExecute(Sender: TObject);
2133 begin
2134 GikoForm.SaveTabURLs;
2135 end;
2136 // *************************************************************************
2137 //! ?帥??????????????緇???
2138 // *************************************************************************
2139 procedure TGikoDM.TabAutoLoadActionExecute(Sender: TObject);
2140 begin
2141 GikoForm.LoadTabURLs;
2142 end;
2143 // *************************************************************************
2144 //! Be2ch?????違?ゃ?????違?≪????????
2145 // *************************************************************************
2146 procedure TGikoDM.BeLogInOutActionExecute(Sender: TObject);
2147 begin
2148 GikoSys.Setting.BeLogin := not GikoSys.Setting.BeLogin;
2149 end;
2150 // *************************************************************************
2151 //! Be2ch?????違?ゃ?????違?≪??????????pdate?ゃ???潟??
2152 // *************************************************************************
2153 procedure TGikoDM.BeLogInOutActionUpdate(Sender: TObject);
2154 begin
2155 if (GikoSys.Setting.BeUserID <> '') and (GikoSys.Setting.BeCode <> '') then begin
2156 if (GikoSys.Setting.BeLogin) then BeLogInOutAction.Checked := true
2157 else BeLogInOutAction.Checked := false;
2158 BeLogInOutAction.Enabled := true
2159 end else
2160 BeLogInOutAction.Enabled := false;
2161 end;
2162 ////////////////////////////////???<?ゃ???障?с?????障??/////////////////////
2163 // *************************************************************************
2164 //! ?潟?潟?障?ц?????
2165 // *************************************************************************
2166 procedure TGikoDM.KokomadeActionExecute(Sender: TObject);
2167 var
2168 No: Integer;
2169 ThreadItem: TThreadItem;
2170 begin
2171 No := GikoForm.KokoPopupMenu.Tag;
2172 if No = 0 then Exit;
2173 ThreadItem := GikoForm.GetActiveContent;
2174 if ThreadItem = nil then Exit;
2175 ThreadItem.Kokomade := No;
2176 GikoForm.ActiveContent.Thread.ScrollTop :=
2177 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2178 GikoForm.ActiveContent.Repaint := true;
2179 GikoForm.InsertBrowserTab(GikoForm.ActiveContent.Thread, true);
2180 //INFO 2005/11/19 筝??????純??綽?荀?????GikoForm???鴻???<?純??????菴遵??????
2181 //Application.ProcessMessages;
2182 end;
2183 // *************************************************************************
2184 //! ?????????
2185 // *************************************************************************
2186 procedure TGikoDM.ZenbuActionExecute(Sender: TObject);
2187 var
2188 ThreadItem: TThreadItem;
2189 begin
2190 ThreadItem := GikoForm.GetActiveContent;
2191 if ThreadItem = nil then Exit;
2192 ThreadItem.Kokomade := -1;
2193 GikoForm.ActiveContent.Thread.ScrollTop :=
2194 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2195 GikoForm.ActiveContent.Repaint := true;
2196 GikoForm.InsertBrowserTab(GikoForm.ActiveContent.Thread, true);
2197 //INFO 2005/11/19 筝??????純??綽?荀?????GikoForm???鴻???<?純??????菴遵??????
2198 //Application.ProcessMessages;
2199 end;
2200 // *************************************************************************
2201 //! ?潟?潟??????/span>
2202 // *************************************************************************
2203 procedure TGikoDM.KokoResActionExecute(Sender: TObject);
2204 var
2205 Editor: TEditorForm;
2206 Item: TThreadItem;
2207 Number: Integer;
2208 begin
2209 Number := GikoForm.KokoPopupMenu.Tag;
2210 if Number = 0 then Exit;
2211 Item := GikoForm.GetActiveContent;
2212 if Item = nil then Exit;
2213
2214 Editor := TEditorForm.Create(GikoForm);
2215 Editor.SetThreadItem(Item);
2216 GikoSys.LoadEditorKeySetting(Editor.ActionList);
2217 Editor.BodyEdit.Text := '>>' + IntToStr(Number) + #13#10;
2218 Editor.Show;
2219 Editor.BodyEdit.SetFocus;
2220 end;
2221 // *************************************************************************
2222 //! ?御?????????鴻???潟???若????
2223 // *************************************************************************
2224 procedure TGikoDM.KoreCopyExecute(Sender: TObject);
2225 begin
2226 GikoForm.KonoresCopy(GikoForm.KokoPopupMenu.Tag, true);
2227 end;
2228 // *************************************************************************
2229 //! ?御?????????鴻???潟???若????
2230 // *************************************************************************
2231 procedure TGikoDM.SameIDResAnchorActionExecute(Sender: TObject);
2232 var
2233 ThreadItem : TThreadItem;
2234 No, count, rc : Integer;
2235 body : string;
2236 limited: boolean;
2237 begin
2238 No := GikoForm.KokoPopupMenu.Tag;
2239 if No = 0 then Exit;
2240 ThreadItem := GikoForm.GetActiveContent;
2241 if ThreadItem = nil then Exit;
2242 count := GikoSys.GetSameIDResCount(No, GikoForm.ActiveContent.Thread);
2243 limited := false;
2244 if count > 20 then begin
2245 rc := GikoUtil.MsgBox(GikoForm.Handle,
2246 '20??篁ヤ??????障?????????鴻??;腓冴???障????鐚?',
2247 'ID???????≪????茘???',
2248 MB_YESNO or MB_ICONQUESTION);
2249 limited := rc <> ID_YES;
2250 end;
2251 body := GikoSys.GetSameIDResAnchor(No, ThreadItem, limited);
2252 GikoForm.ActiveContent.IDAnchorPopup(body);
2253 end;
2254 // *************************************************************************
2255 //! ???????鴻???若??????鐚???絽醐?
2256 // *************************************************************************
2257 procedure TGikoDM.IndividualAbon1ActionExecute(Sender: TObject);
2258 begin
2259 GikoForm.IndividualAbon(GikoForm.KokoPopupMenu.Tag, 1);
2260 end;
2261 // *************************************************************************
2262 //! ???????鴻???若??????鐚?????
2263 // *************************************************************************
2264 procedure TGikoDM.IndividualAbon0ActionExecute(Sender: TObject);
2265 begin
2266 GikoForm.IndividualAbon(GikoForm.KokoPopupMenu.Tag, 0);
2267 end;
2268 // *************************************************************************
2269 //! ???????鴻???若????茹i??/span>
2270 // *************************************************************************
2271 procedure TGikoDM.AntiIndividualAbonActionExecute(Sender: TObject);
2272 var
2273 IndividualForm :TIndividualAbonForm;
2274 ThreadItem : TThreadItem;
2275 msg : String;
2276 ReadList : TStringList;
2277 wordCount : TWordCount;
2278 begin
2279 IndividualForm := TIndividualAbonForm.Create(GikoForm);
2280 try
2281 ThreadItem := GikoForm.GetActiveContent;
2282 ThreadItem.ScrollTop :=
2283 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2284 if (ThreadItem <> nil) and (ThreadItem.IsLogFile) then begin
2285 if IndividualForm.SetThreadLogFileName(ThreadItem.GetThreadFileName) then begin
2286 ReadList := TStringList.Create;
2287 wordCount := TWordCount.Create;
2288 try
2289 {$IFDEF SPAM_FILTER_ENABLED}
2290 // ?鴻??????茹i??/span>
2291 ReadList.LoadFromFile( ThreadItem.GetThreadFileName );
2292 GikoSys.SpamCountWord( ReadList[ KokoPopupMenu.Tag - 1 ], wordCount );
2293 GikoSys.SpamForget( wordCount, True ); // ?鴻??????茹i??/span>
2294 GikoSys.SpamLearn( wordCount, False ); // ?????┃絎?
2295 {$ENDIF}
2296 if IndividualForm.DeleteNG(GikoForm.KokoPopupMenu.Tag) then begin
2297 GikoForm.ActiveContent.Repaint := true;
2298 GikoForm.InsertBrowserTab( ThreadItem, True );
2299 end;
2300 finally
2301 wordCount.Free;
2302 ReadList.Free;
2303 end;
2304 end else begin
2305 msg := '?????鴻???????с?????ャ???若??????茵??c???障????';
2306 MsgBox(GikoForm.Handle, msg, '?<???祉?若??#39;, MB_OK);
2307 end;
2308 end;
2309 finally
2310 IndividualForm.Release;
2311 end;
2312 end;
2313 // *************************************************************************
2314 //! ???????鴻???若????茹i?ゃ???合??垽??絎?鐚????ゃ?≪???域;腓削?
2315 // *************************************************************************
2316 procedure TGikoDM.AntiIndividualAbonDlgActionExecute(Sender: TObject);
2317 var
2318 IndividualForm :TIndividualAbonForm;
2319 ThreadItem : TThreadItem;
2320 msg : String;
2321 ReadList : TStringList;
2322 wordCount : TWordCount;
2323 {$IFDEF SPAM_FILTER_ENABLED}
2324 i : Integer;
2325 {$ENDIF}
2326 begin
2327 IndividualForm := TIndividualAbonForm.Create(GikoForm);
2328 try
2329 ThreadItem := GikoForm.GetActiveContent;
2330 ThreadItem.ScrollTop :=
2331 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2332 if (ThreadItem <> nil) and (ThreadItem.IsLogFile) then begin
2333 if IndividualForm.SetThreadLogFileName(ThreadItem.GetThreadFileName) then begin
2334 if (IndividualForm.ShowModal = mrOK) then begin
2335 ReadList := TStringList.Create;
2336 wordCount := TWordCount.Create;
2337 try
2338 {$IFDEF SPAM_FILTER_ENABLED}
2339 // ?鴻??????茹i??/span>
2340 ReadList.LoadFromFile( ThreadItem.GetThreadFileName );
2341 for i := 0 to IndividualForm.DeleteList.Count - 1 do begin
2342 GikoSys.SpamCountWord( ReadList[ StrToInt(IndividualForm.DeleteList[i]) - 1 ], wordCount );
2343 GikoSys.SpamForget( wordCount, True ); // ?鴻??????茹i??/span>
2344 GikoSys.SpamLearn( wordCount, False ); // ?????┃絎?
2345 end;
2346 {$ENDIF}
2347 if IndividualForm.FRepaint then begin
2348 GikoForm.ActiveContent.Repaint := true;
2349 GikoForm.InsertBrowserTab( ThreadItem, True );
2350 end;
2351 finally
2352 wordCount.Free;
2353 ReadList.Free;
2354 end;
2355 end;
2356 end else begin
2357 msg := '?????鴻???????с?????ャ???若??????茵??c???障????';
2358 MsgBox(GikoForm.Handle, msg, '?<???祉?若??#39;, MB_OK);
2359 end;
2360 end;
2361 finally
2362 IndividualForm.Release;
2363 end;
2364 end;
2365 // *************************************************************************
2366 //! ????D???若????????絽?/span>
2367 // *************************************************************************
2368 procedure TGikoDM.IndividualAbonID1ActionExecute(Sender: TObject);
2369 begin
2370 GikoForm.IndividualAbonID(1);
2371 end;
2372 // *************************************************************************
2373 //! ????D???若?????????/span>
2374 // *************************************************************************
2375 procedure TGikoDM.IndividualAbonID0ActionExecute(Sender: TObject);
2376 begin
2377 GikoForm.IndividualAbonID(0);
2378 end;
2379 ////////////////////////////////???????吟???????≪?????障?с?????障??/////////////////////
2380 // *************************************************************************
2381 //! ???潟?????????с???泣?ゃ????茵?ず????
2382 // *************************************************************************
2383 procedure TGikoDM.GikoNaviWebPageActionExecute(Sender: TObject);
2384 begin
2385 GikoSys.OpenBrowser(URL_GIKONAVI, gbtAuto);
2386 end;
2387 // *************************************************************************
2388 //! ?≪???吾???????с???泣?ゃ????茵?ず????
2389 // *************************************************************************
2390 procedure TGikoDM.MonazillaWebPageActionExecute(Sender: TObject);
2391 begin
2392 GikoSys.OpenBrowser(URL_MONAZILLA, gbtAuto);
2393 end;
2394 // *************************************************************************
2395 //! 鐚??<?????????????????若?吾??茵?ず????
2396 // *************************************************************************
2397 procedure TGikoDM.BBS2chWebPageActionExecute(Sender: TObject);
2398 begin
2399 GikoSys.OpenBrowser(URL_2ch, gbtAuto);
2400 end;
2401 // *************************************************************************
2402 //! ???潟????????????????????span>
2403 // *************************************************************************
2404 procedure TGikoDM.GikoFolderOpenActionExecute(Sender: TObject);
2405 begin
2406 GikoSys.CreateProcess('explorer.exe', '/e,"' + GikoSys.GetAppDir + '"');
2407 end;
2408 // *************************************************************************
2409 //! ???若?吾?с?恰???宴??茵?ず????
2410 // *************************************************************************
2411 procedure TGikoDM.AboutActionExecute(Sender: TObject);
2412 var
2413 Dlg: TAboutDialog;
2414 begin
2415 Dlg := TAboutDialog.Create(GikoForm);
2416 try
2417 Dlg.ShowModal;
2418 finally
2419 Dlg.Release;
2420 end;
2421 end;
2422 // *************************************************************************
2423 //! ???潟??????????????茵?ず????
2424 // *************************************************************************
2425 procedure TGikoDM.GikoHelpActionExecute(Sender: TObject);
2426 var
2427 FileName: string;
2428 begin
2429 FileName := GikoSys.GetAppDir + 'batahlp.chm';
2430 if not FileExists(FileName) then begin
2431 MsgBox(
2432 GikoForm.Handle,
2433 '????????荀??ゃ?????障?????с????' + #13#10 +
2434 '?????????<?ゃ???????潟????????????????舟???????????' + #13#10 +
2435 '???????????潟???????泣?ゃ????舟?????????障??',
2436 '??????#39;,
2437 MB_ICONSTOP);
2438 Exit;
2439 end;
2440 ShellExecute(GikoForm.Handle, 'open', PChar(FileName), '', PChar(GikoSys.GetAppDir), SW_SHOW);
2441 end;
2442 // *************************************************************************
2443 //! ???潟????Wiki?????с???泣?ゃ????茵?ず????
2444 // *************************************************************************
2445 procedure TGikoDM.WikiFAQWebPageActionExecute(Sender: TObject);
2446 begin
2447 GikoSys.OpenBrowser(URL_Wiki, gbtAuto);
2448 end;
2449 ////////////////////////////////???????障?с?????障??/////////////////////
2450 // *************************************************************************
2451 //! ???鴻????埈;腓冴??紊??眼????
2452 // *************************************************************************
2453 procedure TGikoDM.ListNumberVisibleActionExecute(Sender: TObject);
2454 begin
2455 GikoSys.Setting.ListViewNo := ListNumberVisibleAction.Checked;
2456 GikoForm.ListView.Refresh;
2457 end;
2458 // *************************************************************************
2459 //! 筝?篏???????????Щ??????
2460 // *************************************************************************
2461 procedure TGikoDM.UpFolderActionExecute(Sender: TObject);
2462 begin
2463 if GikoForm.GetActiveList is TBoard then begin
2464 if TBoard(GikoForm.GetActiveList).ParentCategory <> nil then
2465 GikoForm.SelectTreeNode(TBoard(GikoForm.GetActiveList).ParentCategory, True);
2466 end else if GikoForm.GetActiveList is TCategory then begin
2467 GikoForm.SelectTreeNode(TCategory(GikoForm.GetActiveList).ParenTBBS, True);
2468 end;
2469 end;
2470 // *************************************************************************
2471 //! 筝?篏???????????Щ??????UpDate?ゃ???潟??
2472 // *************************************************************************
2473 procedure TGikoDM.UpFolderActionUpdate(Sender: TObject);
2474 begin
2475 UpFolderAction.Enabled := not (GikoForm.GetActiveList is TBBS);
2476 end;
2477 // *************************************************************************
2478 //! 茵?ず??茵?ず???鴻?????≪?若??紊???/span>
2479 // *************************************************************************
2480 procedure TGikoDM.IconStyleExecute(Sender: TObject);
2481 begin
2482 case GikoForm.ListView.ViewStyle of
2483 vsIcon: SmallIconAction.Execute;
2484 vsSmallIcon: ListIconAction.Execute;
2485 vsList: DetailIconAction.Execute;
2486 vsReport: LargeIconAction.Execute;
2487 end;
2488 end;
2489 // *************************************************************************
2490 //! ?鴻???????????鴻??;腓冴????
2491 // *************************************************************************
2492 procedure TGikoDM.AllItemActionExecute(Sender: TObject);
2493 begin
2494 try
2495 if GikoForm.ViewType <> gvtAll then
2496 GikoForm.SetListViewType(gvtAll);
2497 GikoSys.Setting.ThreadRange := gtrAll;
2498 AllItemAction.Checked := True;
2499 // SelectComboBox ??吋罩眼???贋?違????????span>
2500 GikoForm.ModifySelectList;
2501 // SelectComboBox ???ゃ????????/span>
2502 if GikoForm.SelectComboBoxPanel.Visible then begin
2503 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2504 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2505 GikoForm.ListView.SetFocus;
2506 end;
2507 except
2508 end;
2509 end;
2510 // *************************************************************************
2511 //! ???井?????鴻?????????帥??茵?ず????
2512 // *************************************************************************
2513 procedure TGikoDM.LogItemActionExecute(Sender: TObject);
2514 begin
2515 try
2516 if GikoForm.ViewType <> gvtLog then
2517 GikoForm.SetListViewType(gvtLog);
2518 GikoSys.Setting.ThreadRange := gtrLog;
2519 LogItemAction.Checked := True;
2520 // SelectComboBox ??吋罩眼???贋?違????????span>
2521 GikoForm.ModifySelectList;
2522 // SelectComboBox ???ゃ????????/span>
2523 if GikoForm.SelectComboBoxPanel.Visible then begin
2524 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2525 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2526 GikoForm.ListView.SetFocus;
2527 end;
2528 except
2529 end;
2530 end;
2531 // *************************************************************************
2532 //! ?亥???鴻?????????粋;腓冴????
2533 // *************************************************************************
2534 procedure TGikoDM.NewItemActionExecute(Sender: TObject);
2535 begin
2536 try
2537
2538 if GikoForm.ViewType <> gvtNew then
2539 GikoForm.SetListViewType(gvtNew);
2540 GikoSys.Setting.ThreadRange := gtrNew;
2541 NewItemAction.Checked := True;
2542 // SelectComboBox ??吋罩眼???贋?違????????span>
2543 GikoForm.ModifySelectList;
2544 // SelectComboBox ???ゃ????????/span>
2545 if GikoForm.SelectComboBoxPanel.Visible then begin
2546 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2547 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2548 GikoForm.ListView.SetFocus;
2549 end;
2550 except
2551 end;
2552 end;
2553 // *************************************************************************
2554 //! ?鴻????????;腓榊??蚊??荐??
2555 // *************************************************************************
2556 procedure TGikoDM.ThreadRangeActionExecute(Sender: TObject);
2557 begin
2558 case GikoSys.Setting.ThreadRange of
2559 gtrAll: AllItemAction.Execute;
2560 gtrLog: LogItemAction.Execute;
2561 gtrNew: NewItemAction.Execute;
2562 end;
2563 end;
2564 // *************************************************************************
2565 //! ?鴻??????腟?莨若?帥???ゃ?≪???違??茵?ず????
2566 // *************************************************************************
2567 procedure TGikoDM.SelectItemActionExecute(Sender: TObject);
2568 var
2569 idx: Integer;
2570 Dlg: TListSelectDialog;
2571 begin
2572 try
2573 if GikoForm.SelectComboBoxPanel.Visible then begin
2574 if GikoForm.SelectComboBoxPanel.Left + GikoForm.SelectComboBoxPanel.Width < GikoForm.ListToolBar.Width then begin
2575 // SelectComboBox ???????翫?????????若???鴻??腱祉??
2576 if GikoSys.Setting.ListOrientation = gloHorizontal then begin
2577 if GikoSys.Setting.ListWidthState = glsMax then
2578 BrowserMinAction.Execute;
2579 end else begin
2580 if GikoSys.Setting.ListHeightState = glsMax then
2581 BrowserMinAction.Execute;
2582 end;
2583 GikoForm.SelectComboBox.SetFocus;
2584 exit;
2585 end;
2586 end;
2587 except
2588 end;
2589
2590 if GikoForm.SelectComboBox.Text = SELECTCOMBOBOX_NAME then begin
2591 GikoForm.SelectComboBox.Text := '';
2592 GikoForm.SelectComboBox.Color := clWindow;
2593 end;
2594
2595 AllItemAction.Checked := False;
2596 LogItemAction.Checked := False;
2597 NewItemAction.Checked := False;
2598 //SelectItemAction.Checked := True;
2599 GikoForm.ModifySelectList;
2600 Dlg := TListSelectDialog.Create(GikoForm);
2601 try
2602 Dlg.SelectComboBox.Items.Assign(GikoSys.Setting.SelectTextList);
2603 Dlg.SelectComboBox.Text := GikoForm.SelectComboBox.Text;
2604 Dlg.ShowModal;
2605 if Dlg.ModalResult = mrCancel then begin
2606 if Length( GikoForm.SelectComboBox.Text ) = 0 then begin
2607 AllItemAction.Checked := True;
2608 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2609 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2610 end;
2611
2612 if GikoForm.GetActiveList is TBoard then
2613 GikoForm.SetListViewType(gvtUser, TBoard(GikoForm.GetActiveList).ParentCategory.ParenTBBS.SelectText , Dlg.KubetsuCheckBox.Checked);
2614 end else begin
2615 idx := GikoSys.Setting.SelectTextList.IndexOf(Dlg.SelectComboBox.Text);
2616 if idx <> -1 then
2617 GikoSys.Setting.SelectTextList.Delete(idx);
2618 GikoSys.Setting.SelectTextList.Insert(0, Dlg.SelectComboBox.Text);
2619 while Dlg.SelectComboBox.Items.Count > 100 do begin
2620 Dlg.SelectComboBox.Items.Delete(Dlg.SelectComboBox.Items.Count - 1);
2621 end;
2622
2623 if Length( Dlg.SelectComboBox.Text ) = 0 then begin
2624 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2625 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2626 end else begin
2627 GikoForm.SelectComboBox.Text := Dlg.SelectComboBox.Text;
2628 GikoForm.SelectComboBox.Color := clWindow;
2629 end;
2630 GikoForm.SetListViewType(gvtUser, Dlg.SelectComboBox.Text, Dlg.KubetsuCheckBox.Checked);
2631 end;
2632 finally
2633 Dlg.Release;
2634 end;
2635 end;
2636 // *************************************************************************
2637 //! ?違?鴻???吾??莨若?帥???c?潟??????茵?ず????
2638 // *************************************************************************
2639 procedure TGikoDM.ThreadEditorActionExecute(Sender: TObject);
2640 var
2641 Editor: TEditorForm;
2642 begin
2643 if not (GikoForm.GetActiveList is TBoard) then
2644 Exit;
2645 Editor := TEditorForm.Create(GikoForm);
2646 Editor.SetBoard(TBoard(GikoForm.GetActiveList));
2647 Editor.Show;
2648 Editor.BodyEdit.SetFocus;
2649 end;
2650 // *************************************************************************
2651 //! ?上??;腓冴?????????帥?????????吟?ц;腓冴????
2652 // *************************************************************************
2653 procedure TGikoDM.BoardIEActionExecute(Sender: TObject);
2654 var
2655 URL: string;
2656 begin
2657 if GikoForm.GetActiveList is TBoard then begin
2658 URL := TBoard(GikoForm.GetActiveList).URL;
2659 GikoSys.OpenBrowser(URL, gbtAuto);
2660 end;
2661 end;
2662 // *************************************************************************
2663 //! ?御?????????????鴻????????RL???潟???若????
2664 // *************************************************************************
2665 procedure TGikoDM.SelectItemURLCopyActionExecute(Sender: TObject);
2666 var
2667 List: TList;
2668 i: Integer;
2669 s: string;
2670 begin
2671 s := '';
2672 List := TList.Create;
2673 try
2674 GikoForm.SelectListItem(List);
2675 for i := 0 to List.Count - 1 do begin
2676 if TObject(List[i]) is TBoard then
2677 s := s + TBoard(List[i]).URL + #13#10
2678 else if TObject(List[i]) is TThreadItem then
2679 s := s + TThreadItem(List[i]).URL + #13#10;
2680 end;
2681 if s <> '' then
2682 Clipboard.AsText := s;
2683 finally
2684 List.Free;
2685 end;
2686 end;
2687 // *************************************************************************
2688 //! ?御?????????????鴻????????RL???潟???若????Update?ゃ???潟??
2689 // *************************************************************************
2690 procedure TGikoDM.SelectItemURLCopyActionUpdate(Sender: TObject);
2691 begin
2692 if ((GikoForm.GetActiveList is TBoard) or
2693 (GikoForm.GetActiveList is TCategory))and (GikoForm.ListView.SelCount > 0) then
2694 TAction(Sender).Enabled := True
2695 else
2696 TAction(Sender).Enabled := False;
2697 end;
2698 // *************************************************************************
2699 //! ?御?????????????帥?????????潟???若????
2700 // *************************************************************************
2701 procedure TGikoDM.SelectItemNameCopyActionExecute(Sender: TObject);
2702 var
2703 List: TList;
2704 i: Integer;
2705 s: string;
2706 begin
2707 s := '';
2708 List := TList.Create;
2709 try
2710 GikoForm.SelectListItem(List);
2711 for i := 0 to List.Count - 1 do begin
2712 if TObject(List[i]) is TBoard then
2713 s := s + TBoard(List[i]).Title + #13#10
2714 else if TObject(List[i]) is TThreadItem then
2715 s := s + TThreadItem(List[i]).Title + #13#10;
2716 end;
2717 if s <> '' then
2718 Clipboard.AsText := s;
2719 finally
2720 List.Free;
2721 end;
2722 end;
2723 // *************************************************************************
2724 //! ?御?????????????帥?????????潟???若????Update?ゃ???潟??
2725 // *************************************************************************
2726 procedure TGikoDM.SelectItemNameCopyActionUpdate(Sender: TObject);
2727 begin
2728 if ((GikoForm.GetActiveList is TBoard) or
2729 (GikoForm.GetActiveList is TCategory))and (GikoForm.ListView.SelCount > 0) then
2730 TAction(Sender).Enabled := True
2731 else
2732 TAction(Sender).Enabled := False;
2733 end;
2734 // *************************************************************************
2735 //! ?御?????????????鴻??????????????RL???潟???若????
2736 // *************************************************************************
2737 procedure TGikoDM.SelectItemNameURLCopyActionExecute(Sender: TObject);
2738 var
2739 List: TList;
2740 i: Integer;
2741 s: string;
2742 begin
2743 s := '';
2744 List := TList.Create;
2745 try
2746 GikoForm.SelectListItem(List);
2747 for i := 0 to List.Count - 1 do begin
2748 if TObject(List[i]) is TBoard then
2749 s := s + TBoard(List[i]).Title + #13#10 + TBoard(List[i]).URL + #13#10
2750 else if TObject(List[i]) is TThreadItem then
2751 s := s + TThreadItem(List[i]).Title + #13#10 + TThreadItem(List[i]).URL + #13#10;
2752 end;
2753 if s <> '' then
2754 Clipboard.AsText := s;
2755 finally
2756 List.Free;
2757 end;
2758 end;
2759 // *************************************************************************
2760 //! ?御?????????????鴻??????筝?荀с???????潟???若??????
2761 // *************************************************************************
2762 procedure TGikoDM.SelectListReloadActionExecute(Sender: TObject);
2763 var
2764 i: Integer;
2765 List: TList;
2766 msg: string;
2767 shiftDown: Boolean;
2768 begin
2769 shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
2770 if GikoForm.GetActiveList is TCategory then begin
2771 List := TList.Create;
2772 try
2773 GikoForm.SelectListItem(List);
2774 if List.Count > 5 then begin
2775 msg := '5??篁ヤ?????絎??с???障????' + #13#10
2776 + '鐚??<????????莢??決蚕羝????????????????';
2777 MsgBox(GikoForm.Handle, msg, '茘???', MB_ICONEXCLAMATION);
2778 Exit;
2779 end;
2780 for i := 0 to List.Count - 1 do begin
2781 if TObject(List[i]) is TBoard then
2782 GikoForm.DownloadList(TBoard(List[i]), shiftDown);
2783 end;
2784 finally
2785 List.Free;
2786 end;
2787 end else if GikoForm.GetActiveList is TBoard then begin
2788 GikoForm.DownloadList(TBoard(GikoForm.GetActiveList), shiftDown);
2789 end;
2790 end;
2791 // *************************************************************************
2792 //! ?御?????????????鴻??????筝?荀с???????潟???若??????Update?ゃ???潟??
2793 // *************************************************************************
2794 procedure TGikoDM.SelectListReloadActionUpdate(Sender: TObject);
2795 begin
2796 if (GikoForm.GetActiveList is TCategory) and (GikoForm.ListView.SelCount > 0) then
2797 TAction(Sender).Enabled := True
2798 else if GikoForm.GetActiveList is TBoard then
2799 TAction(Sender).Enabled := True
2800 else
2801 TAction(Sender).Enabled := False;
2802 end;
2803 // *************************************************************************
2804 //! ?御?????????????鴻?????????????潟???若??????
2805 // *************************************************************************
2806 procedure TGikoDM.SelectThreadReloadActionExecute(Sender: TObject);
2807 var
2808 List: TList;
2809 i: Integer;
2810 msg: string;
2811 shiftDown: Boolean;
2812 begin
2813 shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
2814 List := TList.Create;
2815 try
2816 GikoForm.SelectListItem(List);
2817 if List.Count > 10 then begin
2818 msg := '10??篁ヤ?????絎??с???障????' + #13#10
2819 + '鐚??<????????莢??決蚕羝????????????????';
2820 MsgBox(GikoForm.Handle, msg, '茘???', MB_ICONEXCLAMATION);
2821 Exit;
2822 end;
2823 for i := 0 to List.Count - 1 do begin
2824 if TObject(List[i]) is TThreadItem then
2825 GikoForm.DownloadContent(TThreadItem(List[i]), shiftDown);
2826 end;
2827 finally
2828 List.Free;
2829 end;
2830 end;
2831 // *************************************************************************
2832 //! ?御?????????????鴻?????????????潟???若??????Update?ゃ???潟??
2833 // *************************************************************************
2834 procedure TGikoDM.SelectThreadReloadActionUpdate(Sender: TObject);
2835 begin
2836 TAction(Sender).Enabled :=
2837 (GikoForm.GetActiveList is TBoard) and (GikoForm.ListView.SelCount > 0);
2838 end;
2839 // *************************************************************************
2840 //! ?鴻??????綏≦??篋?膣?
2841 // *************************************************************************
2842 procedure TGikoDM.SelectReservActionExecute(Sender: TObject);
2843 begin
2844 //INFO 2005/11/19 ?????種???by ??????
2845 // ?????潟?<?潟?????ゃ?????????/span>
2846 end;
2847 // *************************************************************************
2848 //! ?鴻??????綏≦??篋?膣?Update?ゃ???潟??
2849 // *************************************************************************
2850 procedure TGikoDM.SelectReservActionUpdate(Sender: TObject);
2851 var
2852 i: Integer;
2853 List: TList;
2854 begin
2855 if (GikoForm.GetActiveList is TBoard) and (GikoForm.ListView.SelCount > 0) then begin
2856 List := TList.Create;
2857 try
2858 GikoForm.SelectListItem(List);
2859 for i := 0 to List.Count - 1 do begin
2860 if TObject(List[i]) is TThreadItem then begin
2861 if TThreadItem(List[i]).IsLogFile then begin
2862 SelectReservAction.Enabled := True;
2863 Exit;
2864 end;
2865 end;
2866 end;
2867 SelectReservAction.Enabled := False;
2868 finally
2869 List.Free;
2870 end;
2871 end else if (GikoForm.GetActiveList is TCategory) and (GikoForm.ListView.SelCount > 0) then
2872 SelectReservAction.Enabled := True
2873 else
2874 SelectReservAction.Enabled := False;
2875 end;
2876 // *************************************************************************
2877 //! ?御???????????鴻?????????違?????????у掘??篋?膣?
2878 // *************************************************************************
2879 procedure TGikoDM.SelectNewRoundNameExecute(Sender: TObject);
2880 var
2881 s: string;
2882 Dlg: TRoundNameDialog;
2883 cnt: Integer;
2884
2885 begin
2886 //?若?喝?冴????????TAction??istView???御?????????????違??EXIT????
2887 if (Sender is TAction) and (GikoForm.ListView.Selected = nil) then
2888 Exit;
2889
2890 //?脂?俄??????с????/span>
2891 cnt := RoundList.Count[grtBoard];
2892 cnt := cnt + RoundList.Count[grtItem];
2893 if cnt > 500 then begin
2894 MsgBox(GikoForm.Handle, '綏≦????00篁ヤ??脂?蚊?с???障????', '??????#39;, MB_OK or MB_ICONSTOP);
2895 Exit;
2896 end;
2897
2898 Dlg := TRoundNameDialog.Create(GikoForm);
2899 try
2900 Dlg.ShowModal;
2901 if Dlg.ModalResult <> mrCancel then begin
2902 s := Trim(Dlg.RoundNameEdit.Text);
2903 if (Sender is TMenuItem) then begin