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.70 - (show annotations) (download) (as text)
Tue Sep 23 11:06:17 2008 UTC (15 years, 6 months ago) by h677
Branch: MAIN
CVS Tags: v1_59_0_771, v1_59_0_770, v1_59_0_773, v1_59_0_772, v1_59_0_769
Changes since 1.69: +21 -1 lines
File MIME type: text/x-pascal
ギコナビ更新チェック&インストーラ保存の機能を追加

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