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.56 - (show annotations) (download) (as text)
Sun Mar 11 12:03:30 2007 UTC (17 years, 1 month ago) by h677
Branch: MAIN
CVS Tags: v1_55_0_697, v1_55_1_697
Branch point for: Bb55, bListSU
Changes since 1.55: +1 -1 lines
File MIME type: text/x-pascal
タブの追加位置に、現在タブの右/左を追加

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