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.57.2.1 - (show annotations) (download) (as text)
Mon May 14 22:02:43 2007 UTC (16 years, 11 months ago) by h677
Branch: bRESPOPUP
CVS Tags: v1_56_0_707, v1_56_0_710, v1_56_0_711, v1_56_0_706, v1_56_0_709, v1_56_0_708
Changes since 1.57: +3 -2 lines
File MIME type: text/x-pascal
数字の右クリックでレスポップアップしないの不具合の修正
レスポップアップでタスクバーに追加されないように修正
レスポップアップが消えた後にアクティブなスレッドにフォーカスを移すように修正

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