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