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.77 - (show annotations) (download) (as text)
Sun May 17 04:28:00 2009 UTC (14 years, 11 months ago) by h677
Branch: MAIN
CVS Tags: v1_61_0_796, v1_61_0_797, v1_61_0_795, v1_61_0_798, v1_60_1_793, v1_60_0_793, v1_60_0_792, v1_60_0_791, v1_60_2_794
Branch point for: Bb60
Changes since 1.76: +4 -4 lines
File MIME type: text/x-pascal
close #16779
リンク履歴の戻る/進むで、キー設定でshift/ctrlを設定するとうまく動作しない不具合の修正。
MoveToURLを利用しているが、もともとの使い方として、shift/ctrlが押されているときはブラウザで開く機能があり、
アクションのショートカットキーとかぶるため動作しないので、アクションから呼び出すときは、shift/ctrlを
無視するように修正した。

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