Develop and Download Open Source Software

Browse CVS Repository

Contents of /gikonavigoeson/gikonavi/GikoDataModule.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.57 - (show annotations) (download) (as text)
Sat Apr 14 16:52:57 2007 UTC (17 years ago) by h677
Branch: MAIN
CVS Tags: v1_56_0_705, v1_56_0_704, v1_56_0_703, v1_56_0_702, v1_56_0_701, v1_56_0_700, v1_56_0_699, v1_56_0_698
Branch point for: bRESPOPUP
Changes since 1.56: +105 -14 lines
File MIME type: text/x-pascal
ブラウザのページUp/Downアクションの追加
イメージ以外のリンクURLを取得するアクションを追加

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