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.33 - (show annotations) (download) (as text)
Sat Feb 18 13:23:33 2006 UTC (18 years, 2 months ago) by h677
Branch: MAIN
Changes since 1.32: +1 -0 lines
File MIME type: text/x-pascal
スレッド一覧のDL時の前にカラム幅を変更しているとDL後に変更前のカラム幅に戻ってしまう不具合の修正。

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