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