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.62 - (show annotations) (download) (as text)
Sun Aug 19 07:18:39 2007 UTC (16 years, 8 months ago) by h677
Branch: MAIN
CVS Tags: v1_57_0_737, v1_57_0_735, v1_57_0_734, v1_57_0_733, v1_57_0_732, v1_57_0_731, v1_57_0_730, v1_57_0_739, v1_57_0_738, v1_57_0_725, v1_57_0_726, v1_57_0_727, v1_57_0_728, v1_57_0_729, v1_57_0_736
Changes since 1.61: +3 -1 lines
File MIME type: text/x-pascal
同IDレスアンカー表示の制限数越えのメッセージを非表示にするオプションを追加

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
2048 GikoForm.TreeView.Refresh; // UnRead ??;腓冴???贋??/span>
2049 end;
2050 GikoForm.ListView.Refresh;
2051 finally
2052 List.Free;
2053 end;
2054 end;
2055 // *************************************************************************
2056 //! ActiveList??TBoard?с?鴻???荀с?э??や札筝??御???????????????鴻??????Action?у?演??
2057 // *************************************************************************
2058 procedure TGikoDM.LogDeleteActionUpdate(Sender: TObject);
2059 begin
2060 TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard)
2061 and (GikoForm.ListView.SelCount > 0);
2062 end;
2063 // *************************************************************************
2064 //! 腟?莨若?水吋罩眼??羔??祉????
2065 // *************************************************************************
2066 procedure TGikoDM.SelectTextClearActionExecute(Sender: TObject);
2067 const
2068 DEL_MSG = '腟?莨若?水??吋罩眼?????ゃ???障?????????????с????鐚?';
2069 DEL_TITLE = '???ょ∈茯?';
2070 begin
2071 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
2072 if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
2073 Exit;
2074 GikoSys.Setting.SelectTextList.Clear;
2075 GikoForm.SelectComboBox.Items.Clear;
2076 GikoForm.SelectComboBox.Text := '';
2077 GikoForm.SetListViewType( gvtAll );
2078 end;
2079 // *************************************************************************
2080 //! ???鴻?????c?帥??????絮ユ???羔??祉????
2081 // *************************************************************************
2082 procedure TGikoDM.NameTextClearActionExecute(Sender: TObject);
2083 const
2084 DEL_MSG = '???鴻?????c?水??????吋罩眼?????ゃ???障?????????????с????鐚?';
2085 DEL_TITLE = '???ょ∈茯?';
2086 begin
2087 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
2088 if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
2089 Exit;
2090 GikoSys.Setting.NameList.Clear;
2091 ClearNameTextAllEditor
2092 end;
2093 // *************************************************************************
2094 //! ???鴻?????c?帥???<?若??吋罩眼??羔??祉????
2095 // *************************************************************************
2096 procedure TGikoDM.MailTextClearActionExecute(Sender: TObject);
2097 const
2098 DEL_MSG = '???鴻?????c?帥?<?若????吋罩眼?????ゃ???障?????????????с????鐚?';
2099 DEL_TITLE = '???ょ∈茯?';
2100 begin
2101 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
2102 if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
2103 Exit;
2104 GikoSys.Setting.MailList.Clear;
2105 ClearMailAllEditor;
2106 end;
2107 // *************************************************************************
2108 //! ???潟??????腟?篋?????
2109 // *************************************************************************
2110 procedure TGikoDM.ExitActionExecute(Sender: TObject);
2111 begin
2112 GikoForm.Close;
2113 end;
2114 // *************************************************************************
2115 //! ??羂????ャ?????????鴻???若????絎?茵???????
2116 // *************************************************************************
2117 procedure TGikoDM.ExportFavoriteFileBeforeExecute(Sender: TObject);
2118 begin
2119 ExportFavoriteFile.Dialog.FileName := FavoriteDM.GetFavoriteFilePath;
2120 end;
2121 // *************************************************************************
2122 //! ??羂????ャ?????????鴻???若????絎?茵?????
2123 // *************************************************************************
2124 procedure TGikoDM.ExportFavoriteFileAccept(Sender: TObject);
2125 begin
2126 if FavoriteDM.SaveFavoriteFile( ExportFavoriteFile.Dialog.FileName ) Then begin
2127 ShowMessage('???<?ゃ?????阪?????障????');
2128 end else begin
2129 ShowMessage('???<?ゃ?????阪????け?????障????');
2130 end;
2131 end;
2132 // *************************************************************************
2133 //! ?御???鴻???????????<?ゃ?????絖?????
2134 // *************************************************************************
2135 procedure TGikoDM.SelectThreadSaveToFile(dat: Boolean);
2136 var
2137 List: TList;
2138 i: Integer;
2139 html: TStringList;
2140 title: string;
2141 begin
2142 List := TList.Create;
2143 try
2144 GikoForm.ScreenCursor := crHourGlass;
2145 GikoForm.SelectListItem(List);
2146 if ((GikoSys.Setting.ListOrientation = gloVertical) and
2147 (GikoSys.Setting.ListHeightState = glsMax)) or
2148 ((GikoSys.Setting.ListOrientation = gloHorizontal) and
2149 (GikoSys.Setting.ListWidthState = glsMax)) then
2150 ShowMessage('?鴻??????筝?荀с??茵?ず???????????')
2151 else if(List.Count = 0) then
2152 ShowMessage('?鴻?????????御?????????????')
2153 else begin
2154 if dat then begin
2155 SaveDialog.Title := '?御???鴻????????dat???障?鞘?絖?';
2156 SaveDialog.Filter := 'DAT???<?ゃ??*.dat)|*.dat';
2157 end else begin
2158 SaveDialog.Title := '?御???鴻????????HTML???????絖?';
2159 SaveDialog.Filter := 'HTML???<?ゃ??*.html)|*.html';
2160 end;
2161 for i := 0 to List.Count - 1 do begin
2162 if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin
2163 if dat then begin
2164 SaveDialog.FileName := TThreadItem(List[i]).FileName;
2165 end else begin
2166 SaveDialog.FileName := ReplaseNoValidateChar(TThreadItem(List[i]).Title) + '.html';
2167 end;
2168 if SaveDialog.Execute then begin
2169 if dat then begin
2170 CopyFile(PChar(TThreadItem(List[i]).FilePath),
2171 PChar(SaveDialog.FileName), true);
2172 end else begin
2173 html := TStringList.Create;
2174 title := TThreadItem(List[i]).Title;
2175 try
2176 HTMLCreater.CreateHTML3(html, TThreadItem(List[i]), title);
2177 html.SaveToFile(SaveDialog.FileName);
2178 THTMLCreate.SkinorCSSFilesCopy(ExtractFilePath(SaveDialog.FileName));
2179 finally
2180 html.Free;
2181 end;
2182 end;
2183 end;
2184 end;
2185 end;
2186 end;
2187 finally
2188 GikoForm.ScreenCursor := crDefault;
2189 List.Free;
2190 end;
2191 end;
2192 // *************************************************************************
2193 //! ?御???鴻????????HTML???????絖?
2194 // *************************************************************************
2195 procedure TGikoDM.SelectItemSaveForHTMLExecute(Sender: TObject);
2196 begin
2197 SelectThreadSaveToFile(false);
2198 end;
2199 // *************************************************************************
2200 //! ?御???鴻????????DAT綵√????障?鞘?絖?
2201 // *************************************************************************
2202 procedure TGikoDM.SelectItemSaveForDatExecute(Sender: TObject);
2203 begin
2204 SelectThreadSaveToFile(true);
2205 end;
2206 // *************************************************************************
2207 //! ?帥??????????篆?絖?
2208 // *************************************************************************
2209 procedure TGikoDM.TabsSaveActionExecute(Sender: TObject);
2210 const
2211 Filename = 'tab.sav';
2212 bFilename = '~tab.sav';
2213 var
2214 SaveStringList: TStringList;
2215 begin
2216 SaveStringList := TStringList.Create;
2217 try
2218 GetTabURLs(SaveStringList);
2219 try
2220 if FileExists( GikoSys.GetAppDir + Filename) then begin
2221 CopyFile(PChar(GikoSys.GetAppDir + Filename),
2222 PChar(GikoSys.GetAppDir + bFilename), False);
2223 end;
2224 except
2225 end;
2226 SaveStringList.SaveToFile(GikoSys.GetAppDir + Filename);
2227 finally
2228 SaveStringList.Free;
2229 end;
2230 end;
2231 // *************************************************************************
2232 //! ???????吟?帥????┃絎????????????鴻????????RL??緇?
2233 // *************************************************************************
2234 procedure TGikoDM.GetTabURLs(AStringList: TStringList);
2235 var
2236 rec : TBrowserRecord;
2237 i : Integer;
2238 begin
2239 for i := 0 to GikoForm.BrowserTab.Tabs.Count -1 do begin
2240 try
2241 rec := TBrowserRecord( GikoForm.BrowserTab.Tabs.Objects[ i ] );
2242 if( rec <> nil) and (rec.Thread <> nil) then
2243 AStringList.Add( rec.Thread.URL );
2244 except
2245 end;
2246 end;
2247 end;
2248 // *************************************************************************
2249 //! ??絎???????URL??????鐚????????帥?????????若???鴻????
2250 // *************************************************************************
2251 procedure TGikoDM.OpenURLs(AStringList: TStringList);
2252 var
2253 GikoTab : TGikoTabAppend;
2254 i, bound : Integer;
2255 item : TThreadItem;
2256 begin
2257 if (AStringList <> nil) then begin
2258 GikoTab := GikoSys.Setting.BrowserTabAppend;
2259 try
2260 bound := AStringList.Count - 1;
2261 if bound > -1 then begin
2262 GikoSys.Setting.BrowserTabAppend := gtaLast;
2263 for i := 0 to bound do begin
2264 item := BBSsFindThreadFromURL( AStringList[ i ] );
2265 if item <> nil then
2266 GikoForm.InsertBrowserTab( item, false );
2267 end;
2268 //???????????┃絎?
2269 if (GikoSys.Setting.URLDisplay) and
2270 (GikoForm.BrowserTab.Tabs.Count > 0) then begin
2271 GikoForm.AddressComboBox.Text :=
2272 TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[0]).Thread.URL;
2273 end;
2274 end;
2275 finally
2276 GikoSys.Setting.BrowserTabAppend := GikoTab;
2277 end;
2278 end;
2279 end;
2280 // *************************************************************************
2281 //! ?帥??????????緇???
2282 // *************************************************************************
2283 procedure TGikoDM.TabsOpenActionExecute(Sender: TObject);
2284 const
2285 TABFILE = 'tab.sav';
2286 var
2287 URLs : TStringList;
2288 fileName : string;
2289 begin
2290 URLs := TStringList.Create();
2291 try
2292 fileName := GikoSys.GetAppDir + TABFILE;
2293 if FileExists(fileName) then begin
2294 try
2295 URLs.LoadFromFile(fileName);
2296 if (URLs.Count = 0) then begin
2297 // 腥冴?????<?ゃ?????翫??鐚????????≪?????????ゃ????????????????/span>
2298 SysUtils.DeleteFile(fileName);
2299 end else begin
2300 OpenURLs(URLs);
2301 end;
2302 except
2303 on EFOpenError do ShowMessage('?帥?????<?ゃ?????????障????');
2304 end;
2305 end;
2306 finally
2307 URLs.Free;
2308 end;
2309
2310 if (GikoForm.BrowserTab.Tabs.Count = 0) and
2311 (TabsOpenAction.Tag <> 1) then begin
2312 ShowMessage('茵?ず?????帥?????????障??????');
2313 end;
2314 end;
2315 // *************************************************************************
2316 //! Be2ch?????違?ゃ?????違?≪????????
2317 // *************************************************************************
2318 procedure TGikoDM.BeLogInOutActionExecute(Sender: TObject);
2319 begin
2320 GikoSys.Setting.BeLogin := not GikoSys.Setting.BeLogin;
2321 end;
2322 // *************************************************************************
2323 //! Be2ch?????違?ゃ?????違?≪??????????pdate?ゃ???潟??
2324 // *************************************************************************
2325 procedure TGikoDM.BeLogInOutActionUpdate(Sender: TObject);
2326 begin
2327 if (GikoSys.Setting.BeUserID <> '') and (GikoSys.Setting.BeCode <> '') then begin
2328 if (GikoSys.Setting.BeLogin) then BeLogInOutAction.Checked := true
2329 else BeLogInOutAction.Checked := false;
2330 BeLogInOutAction.Enabled := true
2331 end else
2332 BeLogInOutAction.Enabled := false;
2333 end;
2334 ////////////////////////////////???<?ゃ???障?с?????障??/////////////////////
2335 // *************************************************************************
2336 //! ?潟?潟?障?ц?????
2337 // *************************************************************************
2338 procedure TGikoDM.KokomadeActionExecute(Sender: TObject);
2339 var
2340 No: Integer;
2341 ThreadItem: TThreadItem;
2342 begin
2343 No := GikoForm.KokoPopupMenu.Tag;
2344 if No = 0 then Exit;
2345 ThreadItem := GikoForm.GetActiveContent(True);
2346 if ThreadItem = nil then Exit;
2347 ThreadItem.Kokomade := No;
2348 GikoForm.ActiveContent.Thread.ScrollTop :=
2349 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2350 GikoForm.ActiveContent.Repaint := true;
2351 GikoForm.InsertBrowserTab(GikoForm.ActiveContent.Thread, true);
2352 //INFO 2005/11/19 筝??????純??綽?荀?????GikoForm???鴻???<?純??????菴遵??????
2353 //Application.ProcessMessages;
2354 end;
2355 // *************************************************************************
2356 //! ?????????
2357 // *************************************************************************
2358 procedure TGikoDM.ZenbuActionExecute(Sender: TObject);
2359 var
2360 ThreadItem: TThreadItem;
2361 begin
2362 ThreadItem := GikoForm.GetActiveContent(True);
2363 if ThreadItem = nil then Exit;
2364 ThreadItem.Kokomade := -1;
2365 GikoForm.ActiveContent.Thread.ScrollTop :=
2366 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2367 GikoForm.ActiveContent.Repaint := true;
2368 GikoForm.InsertBrowserTab(GikoForm.ActiveContent.Thread, true);
2369 //INFO 2005/11/19 筝??????純??綽?荀?????GikoForm???鴻???<?純??????菴遵??????
2370 //Application.ProcessMessages;
2371 end;
2372 // *************************************************************************
2373 //! ?潟?潟??????/span>
2374 // *************************************************************************
2375 procedure TGikoDM.KokoResActionExecute(Sender: TObject);
2376 var
2377 Editor: TEditorForm;
2378 Item: TThreadItem;
2379 Number: Integer;
2380 begin
2381 Number := GikoForm.KokoPopupMenu.Tag;
2382 if Number = 0 then Exit;
2383 Item := GikoForm.GetActiveContent(True);
2384 if Item = nil then Exit;
2385
2386 Editor := TEditorForm.Create(GikoForm);
2387 Editor.SetThreadItem(Item);
2388 Editor.BodyEdit.Text := '>>' + IntToStr(Number) + #13#10;
2389 Editor.Show;
2390 Editor.BodyEdit.SetFocus;
2391 end;
2392 // *************************************************************************
2393 //! ?御?????????鴻???潟???若????
2394 // *************************************************************************
2395 procedure TGikoDM.KoreCopyExecute(Sender: TObject);
2396 begin
2397 GikoForm.KonoresCopy(GikoForm.KokoPopupMenu.Tag, true);
2398 end;
2399 // *************************************************************************
2400 //! ?御?????????鴻???潟???若????
2401 // *************************************************************************
2402 procedure TGikoDM.SameIDResAnchorActionExecute(Sender: TObject);
2403 const
2404 LIMIT = 20;
2405 var
2406 ThreadItem : TThreadItem;
2407 No, count: Integer;
2408 body : string;
2409 limited: Integer;
2410 begin
2411 No := GikoForm.KokoPopupMenu.Tag;
2412 if No = 0 then Exit;
2413 ThreadItem := GikoForm.GetActiveContent(True);
2414 if ThreadItem = nil then Exit;
2415 count := GikoSys.GetSameIDResCount(No, GikoForm.ActiveContent.Thread);
2416 limited := LIMIT;
2417 if not (GikoSys.Setting.LimitResCountMessage) then begin
2418 limited := -1;
2419 end else if count > LIMIT then begin
2420 if ( GikoUtil.MsgBox(GikoForm.Handle,
2421 IntToStr(LIMIT) + '??篁ヤ??????障?????????鴻??;腓冴???障????鐚?',
2422 'ID???????≪????茘???',
2423 MB_YESNO or MB_ICONQUESTION) = ID_YES ) then begin
2424 limited := -1;
2425 end;
2426 end;
2427 body := GikoSys.GetSameIDResAnchor(No, ThreadItem, limited);
2428 GikoForm.ActiveContent.IDAnchorPopup(body);
2429 end;
2430 // *************************************************************************
2431 //! ???????鴻???若??????鐚???絽醐?
2432 // *************************************************************************
2433 procedure TGikoDM.IndividualAbon1ActionExecute(Sender: TObject);
2434 begin
2435 GikoForm.IndividualAbon(GikoForm.KokoPopupMenu.Tag, 1);
2436 end;
2437 // *************************************************************************
2438 //! ???????鴻???若??????鐚?????
2439 // *************************************************************************
2440 procedure TGikoDM.IndividualAbon0ActionExecute(Sender: TObject);
2441 begin
2442 GikoForm.IndividualAbon(GikoForm.KokoPopupMenu.Tag, 0);
2443 end;
2444 // *************************************************************************
2445 //! ???????鴻???若????茹i??/span>
2446 // *************************************************************************
2447 procedure TGikoDM.AntiIndividualAbonActionExecute(Sender: TObject);
2448 var
2449 IndividualForm :TIndividualAbonForm;
2450 ThreadItem : TThreadItem;
2451 msg : String;
2452 ReadList : TStringList;
2453 wordCount : TWordCount;
2454 begin
2455 IndividualForm := TIndividualAbonForm.Create(GikoForm);
2456 try
2457 ThreadItem := GikoForm.GetActiveContent(True);
2458 ThreadItem.ScrollTop :=
2459 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2460 if (ThreadItem <> nil) and (ThreadItem.IsLogFile) then begin
2461 if IndividualForm.SetThreadLogFileName(ThreadItem.GetThreadFileName) then begin
2462 ReadList := TStringList.Create;
2463 wordCount := TWordCount.Create;
2464 try
2465 {$IFDEF SPAM_FILTER_ENABLED}
2466 // ?鴻??????茹i??/span>
2467 ReadList.LoadFromFile( ThreadItem.GetThreadFileName );
2468 GikoSys.SpamCountWord( ReadList[ KokoPopupMenu.Tag - 1 ], wordCount );
2469 GikoSys.SpamForget( wordCount, True ); // ?鴻??????茹i??/span>
2470 GikoSys.SpamLearn( wordCount, False ); // ?????┃絎?
2471 {$ENDIF}
2472 if IndividualForm.DeleteNG(GikoForm.KokoPopupMenu.Tag) then begin
2473 GikoForm.ActiveContent.Repaint := true;
2474 GikoForm.InsertBrowserTab( ThreadItem, True );
2475 end;
2476 finally
2477 wordCount.Free;
2478 ReadList.Free;
2479 end;
2480 end else begin
2481 msg := '?????鴻???????с?????ャ???若??????茵??c???障????';
2482 MsgBox(GikoForm.Handle, msg, '?<???祉?若??#39;, MB_OK);
2483 end;
2484 end;
2485 finally
2486 IndividualForm.Release;
2487 end;
2488 end;
2489 // *************************************************************************
2490 //! ???????鴻???若????茹i?ゃ???合??垽??絎?鐚????ゃ?≪???域;腓削?
2491 // *************************************************************************
2492 procedure TGikoDM.AntiIndividualAbonDlgActionExecute(Sender: TObject);
2493 var
2494 IndividualForm :TIndividualAbonForm;
2495 ThreadItem : TThreadItem;
2496 msg : String;
2497 ReadList : TStringList;
2498 wordCount : TWordCount;
2499 {$IFDEF SPAM_FILTER_ENABLED}
2500 i : Integer;
2501 {$ENDIF}
2502 begin
2503 IndividualForm := TIndividualAbonForm.Create(GikoForm);
2504 try
2505 ThreadItem := GikoForm.GetActiveContent(True);
2506 ThreadItem.ScrollTop :=
2507 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2508 if (ThreadItem <> nil) and (ThreadItem.IsLogFile) then begin
2509 if IndividualForm.SetThreadLogFileName(ThreadItem.GetThreadFileName) then begin
2510 if (IndividualForm.ShowModal = mrOK) then begin
2511 ReadList := TStringList.Create;
2512 wordCount := TWordCount.Create;
2513 try
2514 {$IFDEF SPAM_FILTER_ENABLED}
2515 // ?鴻??????茹i??/span>
2516 ReadList.LoadFromFile( ThreadItem.GetThreadFileName );
2517 for i := 0 to IndividualForm.DeleteList.Count - 1 do begin
2518 GikoSys.SpamCountWord( ReadList[ StrToInt(IndividualForm.DeleteList[i]) - 1 ], wordCount );
2519 GikoSys.SpamForget( wordCount, True ); // ?鴻??????茹i??/span>
2520 GikoSys.SpamLearn( wordCount, False ); // ?????┃絎?
2521 end;
2522 {$ENDIF}
2523 if IndividualForm.FRepaint then begin
2524 GikoForm.ActiveContent.Repaint := true;
2525 GikoForm.InsertBrowserTab( ThreadItem, True );
2526 end;
2527 finally
2528 wordCount.Free;
2529 ReadList.Free;
2530 end;
2531 end;
2532 end else begin
2533 msg := '?????鴻???????с?????ャ???若??????茵??c???障????';
2534 MsgBox(GikoForm.Handle, msg, '?<???祉?若??#39;, MB_OK);
2535 end;
2536 end;
2537 finally
2538 IndividualForm.Release;
2539 end;
2540 end;
2541 // *************************************************************************
2542 //! ????D???若????????絽?/span>
2543 // *************************************************************************
2544 procedure TGikoDM.IndividualAbonID1ActionExecute(Sender: TObject);
2545 begin
2546 GikoForm.IndividualAbonID(1);
2547 end;
2548 // *************************************************************************
2549 //! ????D???若?????????/span>
2550 // *************************************************************************
2551 procedure TGikoDM.IndividualAbonID0ActionExecute(Sender: TObject);
2552 begin
2553 GikoForm.IndividualAbonID(0);
2554 end;
2555 ////////////////////////////////???????吟???????≪?????障?с?????障??/////////////////////
2556 // *************************************************************************
2557 //! ???潟?????????с???泣?ゃ????茵?ず????
2558 // *************************************************************************
2559 procedure TGikoDM.GikoNaviWebPageActionExecute(Sender: TObject);
2560 begin
2561 GikoSys.OpenBrowser(PROTOCOL_HTTP + URL_GIKONAVI, gbtAuto);
2562 end;
2563 // *************************************************************************
2564 //! ?≪???吾???????с???泣?ゃ????茵?ず????
2565 // *************************************************************************
2566 procedure TGikoDM.MonazillaWebPageActionExecute(Sender: TObject);
2567 begin
2568 GikoSys.OpenBrowser(PROTOCOL_HTTP + URL_MONAZILLA, gbtAuto);
2569 end;
2570 // *************************************************************************
2571 //! 鐚??<?????????????????若?吾??茵?ず????
2572 // *************************************************************************
2573 procedure TGikoDM.BBS2chWebPageActionExecute(Sender: TObject);
2574 begin
2575 GikoSys.OpenBrowser(PROTOCOL_HTTP + URL_2ch, gbtAuto);
2576 end;
2577 // *************************************************************************
2578 //! ???潟????????????????????span>
2579 // *************************************************************************
2580 procedure TGikoDM.GikoFolderOpenActionExecute(Sender: TObject);
2581 begin
2582 GikoSys.CreateProcess('explorer.exe', '/e,"' + GikoSys.GetAppDir + '"');
2583 end;
2584 // *************************************************************************
2585 //! ???若?吾?с?恰???宴??茵?ず????
2586 // *************************************************************************
2587 procedure TGikoDM.AboutActionExecute(Sender: TObject);
2588 var
2589 Dlg: TAboutDialog;
2590 begin
2591 Dlg := TAboutDialog.Create(GikoForm);
2592 try
2593 Dlg.ShowModal;
2594 finally
2595 Dlg.Release;
2596 end;
2597 end;
2598 // *************************************************************************
2599 //! ???潟??????????????茵?ず????
2600 // *************************************************************************
2601 procedure TGikoDM.GikoHelpActionExecute(Sender: TObject);
2602 var
2603 FileName: string;
2604 begin
2605 FileName := GikoSys.GetAppDir + 'batahlp.chm';
2606 if not FileExists(FileName) then begin
2607 MsgBox(
2608 GikoForm.Handle,
2609 '????????荀??ゃ?????障?????с????' + #13#10 +
2610 '?????????<?ゃ???????潟????????????????舟???????????' + #13#10 +
2611 '???????????潟???????泣?ゃ????舟?????????障??',
2612 MSG_ERROR,
2613 MB_ICONSTOP);
2614 Exit;
2615 end;
2616 ShellExecute(GikoForm.Handle, 'open', PChar(FileName), '', PChar(GikoSys.GetAppDir), SW_SHOW);
2617 end;
2618 // *************************************************************************
2619 //! ???潟????Wiki?????с???泣?ゃ????茵?ず????
2620 // *************************************************************************
2621 procedure TGikoDM.WikiFAQWebPageActionExecute(Sender: TObject);
2622 begin
2623 GikoSys.OpenBrowser(PROTOCOL_HTTP + URL_Wiki, gbtAuto);
2624 end;
2625 ////////////////////////////////???????障?с?????障??/////////////////////
2626 // *************************************************************************
2627 //! ???鴻????埈;腓冴??紊??眼????
2628 // *************************************************************************
2629 procedure TGikoDM.ListNumberVisibleActionExecute(Sender: TObject);
2630 begin
2631 GikoSys.Setting.ListViewNo := ListNumberVisibleAction.Checked;
2632 GikoForm.ListView.Refresh;
2633 end;
2634 // *************************************************************************
2635 //! 筝?篏???????????Щ??????
2636 // *************************************************************************
2637 procedure TGikoDM.UpFolderActionExecute(Sender: TObject);
2638 begin
2639 if GikoForm.GetActiveList is TBoard then begin
2640 if TBoard(GikoForm.GetActiveList).ParentCategory <> nil then
2641 GikoForm.SelectTreeNode(TBoard(GikoForm.GetActiveList).ParentCategory, True);
2642 end else if GikoForm.GetActiveList is TCategory then begin
2643 GikoForm.SelectTreeNode(TCategory(GikoForm.GetActiveList).ParenTBBS, True);
2644 end;
2645 end;
2646 // *************************************************************************
2647 //! 筝?篏???????????Щ??????UpDate?ゃ???潟??
2648 // *************************************************************************
2649 procedure TGikoDM.UpFolderActionUpdate(Sender: TObject);
2650 begin
2651 UpFolderAction.Enabled := not (GikoForm.GetActiveList is TBBS);
2652 end;
2653 // *************************************************************************
2654 //! 茵?ず??茵?ず???鴻?????≪?若??紊???/span>
2655 // *************************************************************************
2656 procedure TGikoDM.IconStyleExecute(Sender: TObject);
2657 begin
2658 case GikoForm.ListView.ViewStyle of
2659 vsIcon: SmallIconAction.Execute;
2660 vsSmallIcon: ListIconAction.Execute;
2661 vsList: DetailIconAction.Execute;
2662 vsReport: LargeIconAction.Execute;
2663 end;
2664 end;
2665 // *************************************************************************
2666 //! SelectComboBox???ゃ???????≪????
2667 // *************************************************************************
2668 procedure TGikoDM.ClearSelectComboBox;
2669 begin
2670 if GikoForm.SelectComboBoxPanel.Visible then begin
2671 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2672 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2673 GikoForm.ListView.SetFocus;
2674 end;
2675 end;
2676 // *************************************************************************
2677 //! ?鴻???????????鴻??;腓冴????
2678 // *************************************************************************
2679 procedure TGikoDM.AllItemActionExecute(Sender: TObject);
2680 begin
2681 try
2682 if GikoForm.ViewType <> gvtAll then
2683 GikoForm.SetListViewType(gvtAll);
2684 GikoSys.Setting.ThreadRange := gtrAll;
2685 AllItemAction.Checked := True;
2686 // SelectComboBox ??吋罩眼???贋?違????????span>
2687 GikoForm.ModifySelectList;
2688 // SelectComboBox ???ゃ????????/span>
2689 ClearSelectComboBox;
2690 except
2691 end;
2692 end;
2693 // *************************************************************************
2694 //! ???井?????鴻?????????帥??茵?ず????
2695 // *************************************************************************
2696 procedure TGikoDM.LogItemActionExecute(Sender: TObject);
2697 begin
2698 try
2699 if GikoForm.ViewType <> gvtLog then
2700 GikoForm.SetListViewType(gvtLog);
2701 GikoSys.Setting.ThreadRange := gtrLog;
2702 LogItemAction.Checked := True;
2703 // SelectComboBox ??吋罩眼???贋?違????????span>
2704 GikoForm.ModifySelectList;
2705 // SelectComboBox ???ゃ????????/span>
2706 ClearSelectComboBox;
2707 except
2708 end;
2709 end;
2710 // *************************************************************************
2711 //! ?亥???鴻?????????粋;腓冴????
2712 // *************************************************************************
2713 procedure TGikoDM.NewItemActionExecute(Sender: TObject);
2714 begin
2715 try
2716
2717 if GikoForm.ViewType <> gvtNew then
2718 GikoForm.SetListViewType(gvtNew);
2719 GikoSys.Setting.ThreadRange := gtrNew;
2720 NewItemAction.Checked := True;
2721 // SelectComboBox ??吋罩眼???贋?違????????span>
2722 GikoForm.ModifySelectList;
2723 // SelectComboBox ???ゃ????????/span>
2724 ClearSelectComboBox;
2725 except
2726 end;
2727 end;
2728 // *************************************************************************
2729 //! DAT?純?<?鴻?????????粋;腓冴????
2730 // *************************************************************************
2731 procedure TGikoDM.ArchiveItemActionExecute(Sender: TObject);
2732 begin
2733 try
2734 if GikoForm.ViewType <> gvtArch then
2735 GikoForm.SetListViewType(gvtArch);
2736 GikoSys.Setting.ThreadRange := gtrArch;
2737 ArchiveItemAction.Checked := True;
2738 // SelectComboBox ??吋罩眼???贋?違????????span>
2739 GikoForm.ModifySelectList;
2740 // SelectComboBox ???ゃ????????/span>
2741 ClearSelectComboBox;
2742 except
2743 end;
2744 end;
2745 // *************************************************************************
2746 //! ??絖??鴻?????????粋;腓冴????
2747 // *************************************************************************
2748 procedure TGikoDM.LiveItemActionExecute(Sender: TObject);
2749 begin
2750 try
2751 if GikoForm.ViewType <> gvtLive then
2752 GikoForm.SetListViewType(gvtLive);
2753 GikoSys.Setting.ThreadRange := gtrLive;
2754 LiveItemAction.Checked := True;
2755 // SelectComboBox ??吋罩眼???贋?違????????span>
2756 GikoForm.ModifySelectList;
2757 // SelectComboBox ???ゃ????????/span>
2758 ClearSelectComboBox;
2759 except
2760 end;
2761 end;
2762
2763 // *************************************************************************
2764 //! ?鴻????????;腓榊??蚊??荐??
2765 // *************************************************************************
2766 procedure TGikoDM.ThreadRangeActionExecute(Sender: TObject);
2767 begin
2768 case GikoSys.Setting.ThreadRange of
2769 gtrAll: AllItemAction.Execute;
2770 gtrLog: LogItemAction.Execute;
2771 gtrNew: NewItemAction.Execute;
2772 gtrArch: ArchiveItemAction.Execute;
2773 gtrLive: LiveItemAction.Execute;
2774 end;
2775 end;
2776 // *************************************************************************
2777 //! ?鴻??????腟?莨若?帥???ゃ?≪???違??茵?ず????
2778 // *************************************************************************
2779 procedure TGikoDM.SelectItemActionExecute(Sender: TObject);
2780 var
2781 idx: Integer;
2782 Dlg: TListSelectDialog;
2783 begin
2784 try
2785 if GikoForm.SelectComboBoxPanel.Visible then begin
2786 if GikoForm.SelectComboBoxPanel.Left + GikoForm.SelectComboBoxPanel.Width < GikoForm.ListToolBar.Width then begin
2787 // SelectComboBox ???????翫?????????若???鴻??腱祉??
2788 if GikoSys.Setting.ListOrientation = gloHorizontal then begin
2789 if GikoSys.Setting.ListWidthState = glsMax then
2790 BrowserMinAction.Execute;
2791 end else begin
2792 if GikoSys.Setting.ListHeightState = glsMax then
2793 BrowserMinAction.Execute;
2794 end;
2795 GikoForm.SelectComboBox.SetFocus;
2796 exit;
2797 end;
2798 end;
2799 except
2800 end;
2801
2802 if GikoForm.SelectComboBox.Text = SELECTCOMBOBOX_NAME then begin
2803 GikoForm.SelectComboBox.Text := '';
2804 GikoForm.SelectComboBox.Color := clWindow;
2805 end;
2806
2807 AllItemAction.Checked := False;
2808 LogItemAction.Checked := False;
2809 NewItemAction.Checked := False;
2810 //SelectItemAction.Checked := True;
2811 GikoForm.ModifySelectList;
2812 Dlg := TListSelectDialog.Create(GikoForm);
2813 try
2814 Dlg.SelectComboBox.Items.Assign(GikoSys.Setting.SelectTextList);
2815 Dlg.SelectComboBox.Text := GikoForm.SelectComboBox.Text;
2816 Dlg.ShowModal;
2817 if Dlg.ModalResult = mrCancel then begin
2818 if Length( GikoForm.SelectComboBox.Text ) = 0 then begin
2819 AllItemAction.Checked := True;
2820 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2821 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2822 end;
2823
2824 if GikoForm.GetActiveList is TBoard then
2825 GikoForm.SetListViewType(gvtUser, TBoard(GikoForm.GetActiveList).ParentCategory.ParenTBBS.SelectText , Dlg.KubetsuCheckBox.Checked);
2826 end else begin
2827 idx := GikoSys.Setting.SelectTextList.IndexOf(Dlg.SelectComboBox.Text);
2828 if idx <> -1 then
2829 GikoSys.Setting.SelectTextList.Delete(idx);
2830 GikoSys.Setting.SelectTextList.Insert(0, Dlg.SelectComboBox.Text);
2831 while Dlg.SelectComboBox.Items.Count > 100 do begin
2832 Dlg.SelectComboBox.Items.Delete(Dlg.SelectComboBox.Items.Count - 1);
2833 end;
2834
2835 if Length( Dlg.SelectComboBox.Text ) = 0 then begin
2836 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2837 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2838 end else begin
2839 GikoForm.SelectComboBox.Text := Dlg.SelectComboBox.Text;
2840 GikoForm.SelectComboBox.Color := clWindow;
2841 end;
2842 GikoForm.SetListViewType(gvtUser, Dlg.SelectComboBox.Text, Dlg.KubetsuCheckBox.Checked);
2843 end;
2844 finally
2845 Dlg.Release;
2846 end;
2847 end;
2848 // *************************************************************************
2849 //! ?違?鴻???吾??莨若?帥???c?潟??????茵?ず????
2850 // *************************************************************************
2851 procedure TGikoDM.ThreadEditorActionExecute(Sender: TObject);
2852 var
2853 Editor: TEditorForm;
2854 begin
2855 if not (GikoForm.GetActiveList is TBoard) then
2856 Exit;
2857 Editor := TEditorForm.Create(GikoForm);
2858 Editor.SetBoard(TBoard(GikoForm.GetActiveList));
2859 Editor.Show;
2860 Editor.BodyEdit.SetFocus;
2861 end;
2862 // *************************************************************************
2863 //! ?上??;腓冴?????????帥?????????吟?ц;腓冴????
2864 // *************************************************************************
2865 procedure TGikoDM.BoardIEActionExecute(Sender: TObject);
2866 var
2867 URL: string;
2868 begin
2869 if GikoForm.GetActiveList is TBoard then begin
2870 URL := TBoard(GikoForm.GetActiveList).URL;
2871 GikoSys.OpenBrowser(URL, gbtAuto);
2872 end;
2873 end;
2874 // *************************************************************************
2875 //! ?御?????????????鴻????????RL???潟???若????
2876 // *************************************************************************
2877 procedure TGikoDM.SelectItemURLCopyActionExecute(Sender: TObject);
2878 var
2879 List: TList;
2880 i: Integer;
2881 s: string;
2882 begin
2883 s := '';
2884 List := TList.Create;
2885 try
2886 GikoForm.SelectListItem(List);
2887 for i := 0 to List.Count - 1 do begin
2888 if TObject(List[i]) is TBoard then
2889 s := s + TBoard(List[i]).URL + #13#10
2890 else if TObject(List[i]) is TThreadItem then
2891 s := s + TThreadItem(List[i]).URL + #13#10;
2892 end;
2893 if s <> '' then
2894 Clipboard.AsText := s;
2895 finally
2896 List.Free;
2897 end;
2898 end;
2899 // *************************************************************************
2900 //! ?御?????????????鴻????????RL???潟???若????Update?ゃ???潟??
2901 // *************************************************************************
2902 procedure TGikoDM.SelectItemURLCopyActionUpdate(Sender: TObject);
2903 begin
2904 if ((GikoForm.GetActiveList is TBoard) or
2905 (GikoForm.GetActiveList is TCategory))and (GikoForm.ListView.SelCount > 0) then
2906 TAction(Sender).Enabled := True
2907 else
2908 TAction(Sender).Enabled := False;
2909 end;
2910 // *************************************************************************
2911 //! ?御?????????????帥?????????潟???若????
2912 // *************************************************************************
2913 procedure TGikoDM.SelectItemNameCopyActionExecute(Sender: TObject);
2914 var
2915 List: TList;
2916 i: Integer;
2917 s: string;
2918 begin
2919 s := '';
2920 List := TList.Create;
2921 try
2922 GikoForm.SelectListItem(List);
2923 for i := 0 to List.Count - 1 do begin
2924 if TObject(List[i]) is TCategory then
2925 s := s + TCategory(List[i]).Title + #13#10
2926 else if TObject(List[i]) is TBoard then
2927 s := s + TBoard(List[i]).Title + #13#10
2928 else if TObject(List[i]) is TThreadItem then
2929 s := s + TThreadItem(List[i]).Title + #13#10;
2930 end;
2931 if s <> '' then
2932 Clipboard.AsText := s;
2933 finally
2934 List.Free;
2935 end;
2936 end;
2937 // *************************************************************************
2938 //! ?御?????????????帥?????????潟???若????Update?ゃ???潟??
2939 // *************************************************************************
2940 procedure TGikoDM.SelectItemNameCopyActionUpdate(Sender: TObject);
2941 begin
2942 if ((GikoForm.GetActiveList is TBBS) or
2943 (GikoForm.GetActiveList is TBoard) or
2944 (GikoForm.GetActiveList is TCategory))and (GikoForm.ListView.SelCount > 0) then
2945 TAction(Sender).Enabled := True
2946 else
2947 TAction(Sender).Enabled := False;
2948 end;
2949 // *************************************************************************
2950 //! ?御?????????????鴻??????????????RL???潟???若????
2951 // *************************************************************************
2952 procedure TGikoDM.SelectItemNameURLCopyActionExecute(Sender: TObject);
2953 var
2954 List: TList;
2955 i: Integer;
2956 s: string;
2957 begin