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.63 - (show annotations) (download) (as text)
Mon Feb 11 13:50:50 2008 UTC (16 years, 2 months ago) by h677
Branch: MAIN
CVS Tags: v1_58_0_748, v1_58_0_745, v1_58_0_746, v1_57_1_744, v1_58_0_750, v1_58_0_751, v1_58_0_747, v1_57_2_749, v1_57_0_742, v1_57_0_743, v1_57_0_740, v1_57_0_741, v1_57_0_744
Branch point for: Bb57
Changes since 1.62: +1 -2 lines
File MIME type: text/x-pascal
スレッド一覧のログ削除アクションで、削除するスレッドの回数だけ
Treeのリフレッシュが呼ばれているので、処理後に一回だけ呼ぶように修正した。

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