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