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