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