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.31 - (show annotations) (download) (as text)
Sat Jan 14 07:44:14 2006 UTC (18 years, 3 months ago) by h677
Branch: MAIN
CVS Tags: v1_52_0_642
Changes since 1.30: +15 -1 lines
File MIME type: text/x-pascal
入力アシスト(定型文入力のようなもの)を組み込んでみた。

1 unit GikoDataModule;
2
3 interface
4
5 uses
6 SysUtils, Classes, ExtActns, StdActns, ActnList, ImgList, Controls,
7 {$IF Defined(DELPRO) }
8 SHDocVw,
9 MSHTML,
10 {$ELSE}
11 SHDocVw_TLB,
12 MSHTML_TLB,
13 {$IFEND}
14 ComCtrls, BrowserRecord, Graphics, Messages, Setting, Dialogs;
15
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 ThreadSizeCalcForFileAction: TAction;
215 SetInputAssistAction: TAction;
216 procedure EditNGActionExecute(Sender: TObject);
217 procedure ReloadActionExecute(Sender: TObject);
218 procedure GoFowardActionExecute(Sender: TObject);
219 procedure GoBackActionExecute(Sender: TObject);
220 procedure MoveToActionExecute(Sender: TObject);
221 procedure FavoriteAddActionExecute(Sender: TObject);
222 procedure FavoriteArrangeActionExecute(Sender: TObject);
223 procedure FavoriteTreeViewCollapseActionExecute(Sender: TObject);
224 procedure FavoriteTreeViewRenameActionExecute(Sender: TObject);
225 procedure FavoriteTreeViewNewFolderActionExecute(Sender: TObject);
226 procedure FavoriteTreeViewDeleteActionExecute(Sender: TObject);
227 procedure FavoriteTreeViewBrowseFolderActionExecute(Sender: TObject);
228 procedure FavoriteTreeViewReloadActionExecute(Sender: TObject);
229 procedure FavoriteTreeViewURLCopyActionExecute(Sender: TObject);
230 procedure FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
231 procedure FavoriteTreeViewNameURLCopyActionExecute(Sender: TObject);
232 procedure FavoriteTreeViewLogDeleteActionExecute(Sender: TObject);
233 procedure FavoriteTreeViewBrowseThreadActionExecute(Sender: TObject);
234 procedure OnlyAHundredResActionExecute(Sender: TObject);
235 procedure OnlyKokoResActionExecute(Sender: TObject);
236 procedure OnlyNewResActionExecute(Sender: TObject);
237 procedure BrowserMaxActionExecute(Sender: TObject);
238 procedure BrowserMinActionExecute(Sender: TObject);
239 procedure ScrollTopActionExecute(Sender: TObject);
240 procedure ScrollLastActionExecute(Sender: TObject);
241 procedure ScrollNewActionExecute(Sender: TObject);
242 procedure ScrollKokoActionExecute(Sender: TObject);
243 procedure ScrollKokoActionUpdate(Sender: TObject);
244 procedure EditorActionExecute(Sender: TObject);
245 procedure IEActionExecute(Sender: TObject);
246 procedure ShowThreadActionExecute(Sender: TObject);
247 procedure ShowBoardActionExecute(Sender: TObject);
248 procedure URLCopyActionExecute(Sender: TObject);
249 procedure NameCopyActionExecute(Sender: TObject);
250 procedure NameURLCopyActionExecute(Sender: TObject);
251 procedure ItemReloadActionExecute(Sender: TObject);
252 procedure BrowserTabCloseActionExecute(Sender: TObject);
253 procedure BrowserTabCloseActionUpdate(Sender: TObject);
254 procedure NotSelectTabCloseActionExecute(Sender: TObject);
255 procedure NotSelectTabCloseActionUpdate(Sender: TObject);
256 procedure AllTabCloseActionExecute(Sender: TObject);
257 procedure ActiveLogDeleteActionExecute(Sender: TObject);
258 procedure LeftmostTabSelectActionExecute(Sender: TObject);
259 procedure LeftmostTabSelectActionUpdate(Sender: TObject);
260 procedure LeftTabSelectActionExecute(Sender: TObject);
261 procedure RightTabSelectActionExecute(Sender: TObject);
262 procedure RightTabSelectActionUpdate(Sender: TObject);
263 procedure RightmostTabSelectActionExecute(Sender: TObject);
264 procedure ThreadFavoriteAddActionExecute(Sender: TObject);
265 procedure ThreadFavoriteAddActionUpdate(Sender: TObject);
266 procedure SelectResActionExecute(Sender: TObject);
267 procedure AllResActionExecute(Sender: TObject);
268 procedure ResRangeActionExecute(Sender: TObject);
269 procedure UpBoardActionExecute(Sender: TObject);
270 procedure JumpToNumOfResActionExecute(Sender: TObject);
271 procedure RightTabCloseActionExecute(Sender: TObject);
272 procedure RightTabCloseActionUpdate(Sender: TObject);
273 procedure LeftTabCloseActionExecute(Sender: TObject);
274 procedure DataModuleCreate(Sender: TObject);
275 procedure SearchActionExecute(Sender: TObject);
276 procedure OptionActionExecute(Sender: TObject);
277 procedure RoundActionExecute(Sender: TObject);
278 procedure KeySettingActionExecute(Sender: TObject);
279 procedure KotehanActionExecute(Sender: TObject);
280 procedure ToolBarSettingActionExecute(Sender: TObject);
281 procedure MuteActionExecute(Sender: TObject);
282 procedure TreeSelectBoradReloadExecute(Sender: TObject);
283 procedure TreeSelectThreadReloadExecute(Sender: TObject);
284 procedure TreeSelectURLCopyExecute(Sender: TObject);
285 procedure TreeSelectNameURLCopyExecute(Sender: TObject);
286 procedure TreeSelectFavoriteAddActionExecute(Sender: TObject);
287 procedure TreeSelectSearchBoardNameExecute(Sender: TObject);
288 procedure TreeSelectNameCopyExecute(Sender: TObject);
289 procedure LoginActionExecute(Sender: TObject);
290 procedure NewBoardActionExecute(Sender: TObject);
291 procedure LogDeleteActionExecute(Sender: TObject);
292 procedure LogDeleteActionUpdate(Sender: TObject);
293 procedure SelectTextClearActionExecute(Sender: TObject);
294 procedure NameTextClearActionExecute(Sender: TObject);
295 procedure MailTextClearActionExecute(Sender: TObject);
296 procedure ExitActionExecute(Sender: TObject);
297 procedure ExportFavoriteFileBeforeExecute(Sender: TObject);
298 procedure ExportFavoriteFileAccept(Sender: TObject);
299 procedure SelectItemSaveForHTMLExecute(Sender: TObject);
300 procedure SelectItemSaveForDatExecute(Sender: TObject);
301 procedure TabsSaveActionExecute(Sender: TObject);
302 procedure TabsOpenActionExecute(Sender: TObject);
303 procedure TabAutoSaveActionExecute(Sender: TObject);
304 procedure TabAutoLoadActionExecute(Sender: TObject);
305 procedure BeLogInOutActionExecute(Sender: TObject);
306 procedure BeLogInOutActionUpdate(Sender: TObject);
307 procedure KokomadeActionExecute(Sender: TObject);
308 procedure ZenbuActionExecute(Sender: TObject);
309 procedure KokoResActionExecute(Sender: TObject);
310 procedure KoreCopyExecute(Sender: TObject);
311 procedure SameIDResAnchorActionExecute(Sender: TObject);
312 procedure IndividualAbon1ActionExecute(Sender: TObject);
313 procedure IndividualAbon0ActionExecute(Sender: TObject);
314 procedure AntiIndividualAbonActionExecute(Sender: TObject);
315 procedure AntiIndividualAbonDlgActionExecute(Sender: TObject);
316 procedure IndividualAbonID1ActionExecute(Sender: TObject);
317 procedure IndividualAbonID0ActionExecute(Sender: TObject);
318 procedure GikoNaviWebPageActionExecute(Sender: TObject);
319 procedure MonazillaWebPageActionExecute(Sender: TObject);
320 procedure BBS2chWebPageActionExecute(Sender: TObject);
321 procedure GikoFolderOpenActionExecute(Sender: TObject);
322 procedure AboutActionExecute(Sender: TObject);
323 procedure GikoHelpActionExecute(Sender: TObject);
324 procedure WikiFAQWebPageActionExecute(Sender: TObject);
325 procedure ListNumberVisibleActionExecute(Sender: TObject);
326 procedure UpFolderActionExecute(Sender: TObject);
327 procedure UpFolderActionUpdate(Sender: TObject);
328 procedure IconStyleExecute(Sender: TObject);
329 procedure AllItemActionExecute(Sender: TObject);
330 procedure LogItemActionExecute(Sender: TObject);
331 procedure NewItemActionExecute(Sender: TObject);
332 procedure ThreadRangeActionExecute(Sender: TObject);
333 procedure SelectItemActionExecute(Sender: TObject);
334 procedure ThreadEditorActionExecute(Sender: TObject);
335 procedure BoardIEActionExecute(Sender: TObject);
336 procedure SelectItemURLCopyActionExecute(Sender: TObject);
337 procedure SelectItemURLCopyActionUpdate(Sender: TObject);
338 procedure SelectItemNameCopyActionExecute(Sender: TObject);
339 procedure SelectItemNameCopyActionUpdate(Sender: TObject);
340 procedure SelectItemNameURLCopyActionExecute(Sender: TObject);
341 procedure SelectListReloadActionExecute(Sender: TObject);
342 procedure SelectListReloadActionUpdate(Sender: TObject);
343 procedure SelectThreadReloadActionExecute(Sender: TObject);
344 procedure SelectThreadReloadActionUpdate(Sender: TObject);
345 procedure SelectReservActionExecute(Sender: TObject);
346 procedure SelectReservActionUpdate(Sender: TObject);
347 procedure SelectNewRoundNameExecute(Sender: TObject);
348 procedure SelectDeleteRoundExecute(Sender: TObject);
349 procedure BoardFavoriteAddActionExecute(Sender: TObject);
350 procedure BoardFavoriteAddActionUpdate(Sender: TObject);
351 procedure LogFolderOpenActionExecute(Sender: TObject);
352 procedure LogFolderOpenActionUpdate(Sender: TObject);
353 procedure BrowsBoradHeadActionExecute(Sender: TObject);
354 procedure SortActiveColumnActionExecute(Sender: TObject);
355 procedure SortNextColumnActionExecute(Sender: TObject);
356 procedure SortPrevColumnActionExecute(Sender: TObject);
357 procedure StdToolBarVisibleActionExecute(Sender: TObject);
358 procedure AddressBarVisibleActionExecute(Sender: TObject);
359 procedure LinkBarVisibleActionExecute(Sender: TObject);
360 procedure ListToolBarVisibleActionExecute(Sender: TObject);
361 procedure ListNameBarVisibleActionExecute(Sender: TObject);
362 procedure BrowserToolBarVisibleActionExecute(Sender: TObject);
363 procedure BrowserNameBarVisibleActionExecute(Sender: TObject);
364 procedure MsgBarVisibleActionExecute(Sender: TObject);
365 procedure MsgBarCloseActionExecute(Sender: TObject);
366 procedure StatusBarVisibleActionExecute(Sender: TObject);
367 procedure CabinetBBSActionExecute(Sender: TObject);
368 procedure CabinetHistoryActionExecute(Sender: TObject);
369 procedure CabinetFavoriteActionExecute(Sender: TObject);
370 procedure CabinetVisibleActionExecute(Sender: TObject);
371 procedure CabinetCloseActionExecute(Sender: TObject);
372 procedure LargeIconActionExecute(Sender: TObject);
373 procedure SmallIconActionExecute(Sender: TObject);
374 procedure ListIconActionExecute(Sender: TObject);
375 procedure DetailIconActionExecute(Sender: TObject);
376 procedure StopActionExecute(Sender: TObject);
377 procedure ArrangeActionExecute(Sender: TObject);
378 procedure PaneInitActionExecute(Sender: TObject);
379 procedure BrowserTabVisibleActionExecute(Sender: TObject);
380 procedure BrowserTabTopActionExecute(Sender: TObject);
381 procedure BrowserTabBottomActionExecute(Sender: TObject);
382 procedure BrowserTabTabStyleActionExecute(Sender: TObject);
383 procedure BrowserTabButtonStyleActionExecute(Sender: TObject);
384 procedure BrowserTabFlatStyleActionExecute(Sender: TObject);
385 procedure SetFocusForBrowserActionExecute(Sender: TObject);
386 procedure SetFocusForBrowserActionUpdate(Sender: TObject);
387 procedure SetFocusForThreadListActionExecute(Sender: TObject);
388 procedure SetFocusForCabinetActionExecute(Sender: TObject);
389 procedure SetFocusForCabinetActionUpdate(Sender: TObject);
390 procedure ThreadlistMaxAndFocusActionExecute(Sender: TObject);
391 procedure BrowserMaxAndFocusActionExecute(Sender: TObject);
392 procedure UnSelectedListViewActionExecute(Sender: TObject);
393 procedure KidokuActionExecute(Sender: TObject);
394 procedure MidokuActionExecute(Sender: TObject);
395 procedure AllSelectActionExecute(Sender: TObject);
396 procedure AllSelectActionUpdate(Sender: TObject);
397 procedure ThreadSizeCalcForFileActionExecute(Sender: TObject);
398 procedure SetInputAssistActionExecute(Sender: TObject);
399 private
400 { Private 絎h? }
401 procedure ClearResFilter;
402 procedure SetResRange(range: Integer);
403 procedure SetThreadAreaHorNormal;
404 procedure SetThreadAreaHorizontal(gls : TGikoListState);
405 procedure SetThreadAreaVerNormal;
406 procedure SetThreadAreaVertical(gls : TGikoListState);
407 procedure SetThreadReadProperty(read: Boolean);
408 procedure SelectThreadSaveToFile(dat: Boolean);
409 function GetSortProperties(List: TObject;var vSortOrder: Boolean): Boolean;
410 procedure RecalcThreadSize(limit : Integer);
411 public
412 { Public 絎h? }
413 procedure RepaintStatusBar;
414 published
415 { Published 絎h? }
416 //! TAction??etActiveContent??nil篁ュ??ф???鴻??????
417 procedure DependActiveCntentActionUpdate(Sender: TObject);
418 //! TAction??etActiveContent??nil篁ュ????ゃ???違?????c???????????鴻??????
419 procedure DependActiveCntentLogActionUpdate(Sender: TObject);
420 //! TAction??ctiveList??TBoard?ф???鴻??????
421 procedure DependActiveListTBoardActionUpdate(Sender: TObject);
422 end;
423
424 var
425 GikoDM: TGikoDM;
426
427
428 implementation
429
430 uses
431 Windows, Math, Clipbrd,
432 Giko, GikoSystem, GikoUtil, BoardGroup,
433 FavoriteArrange, Favorite, MojuUtils,
434 Editor, ListSelect, Search, Option, Round,
435 KeySetting, Gesture, Kotehan, ToolBarSetting,
436 ToolBarUtil, NewBoard, HTMLCreate, IndividualAbon,
437 GikoBayesian, About, ShellAPI,
438 RoundName, RoundData, Menus, ListViewUtils,
439 ThreadControl, GikoMessage, InputAssist;
440
441
442 {$R *.dfm}
443 // *************************************************************************
444 //! TAction??etActiveContent??nil篁ュ??ф???鴻??????
445 // *************************************************************************
446 procedure TGikoDM.DependActiveCntentActionUpdate(Sender: TObject);
447 begin
448 TAction(Sender).Enabled := (GikoForm.GetActiveContent <> nil);
449 end;
450 // *************************************************************************
451 //! TAction??etActiveContent??nil篁ュ????ゃ???違?????c??????
452 // *************************************************************************
453 procedure TGikoDM.DependActiveCntentLogActionUpdate(Sender: TObject);
454 begin
455 TAction(Sender).Enabled := (GikoForm.GetActiveContent <> nil)
456 and (GikoForm.GetActiveContent.IsLogFile);
457 end;
458 // *************************************************************************
459 //! TAction??ctiveList??TBoard?ф???鴻??????
460 // *************************************************************************
461 procedure TGikoDM.DependActiveListTBoardActionUpdate(Sender: TObject);
462 begin
463 TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard);
464 end;
465 // *************************************************************************
466 //! NG???若??膩???
467 // *************************************************************************
468 procedure TGikoDM.EditNGActionExecute(Sender: TObject);
469 begin
470 //?????鴻?????∫?d??????????≪??????G???若?????<?ゃ???????若????/span>
471 GikoSys.FAbon.EditNGwords;
472 end;
473 // *************************************************************************
474 //! NG???若??茯??粋昭?随???茯??粋昭?随?
475 // *************************************************************************
476 procedure TGikoDM.ReloadActionExecute(Sender: TObject);
477 begin
478 //?????若????絎?茵???紊掩?????????<???祉?若?後?阪??
479 if GikoSys.FAbon.ReLoadFromNGwordFile =false then begin
480 MsgBox(GikoForm.Handle, 'NG???若?????<?ゃ??????茯??粋昭?帥??け?????障????', '??????#39;, MB_OK or MB_ICONEXCLAMATION);
481 end else begin
482 //???????帥????????祉??荐??
483 GikoForm.RepaintAllTabsBrowser();
484 end;
485 end;
486 // *************************************************************************
487 //! NG???若??茯??粋昭?随?筝??ゅ???鐚?
488 // *************************************************************************
489 procedure TGikoDM.GoFowardActionExecute(Sender: TObject);
490 begin
491 //筝??ゅ???????粋昭?帥??紊掩?????????<???祉?若?後?阪??
492 if GikoSys.FAbon.GoBack =false then begin
493 MsgBox(GikoForm.Handle, '筝??ゅ?????G???若?????<?ゃ??????粋昭?帥??け?????障????', '??????#39;, MB_OK or MB_ICONEXCLAMATION);
494 end else begin
495 //?鴻???若?帥?鴻??;腓冴??????NG???若?????<?ゃ???????贋??/span>
496 RepaintStatusBar;
497 //???????帥????????祉??荐??
498 GikoForm.RepaintAllTabsBrowser();
499 end;
500 end;
501 // *************************************************************************
502 //! NG???若??茯??粋昭?随?筝??ゅ??鐚?
503 // *************************************************************************
504 procedure TGikoDM.GoBackActionExecute(Sender: TObject);
505 begin
506 //筝??ゅ???????粋昭?帥??紊掩?????????<???祉?若?後?阪??
507 if GikoSys.FAbon.GoForward =false then begin
508 MsgBox(GikoForm.Handle, '筝??ゅ????G???若?????<?ゃ??????粋昭?帥??け?????障????', '??????#39;, MB_OK or MB_ICONEXCLAMATION);
509 end else begin
510 //?鴻???若?帥?鴻??;腓冴??????NG???若?????<?ゃ???????贋??/span>
511 RepaintStatusBar;
512 //???????帥????????祉??荐??
513 GikoForm.RepaintAllTabsBrowser();
514 end;
515 end;
516 // *************************************************************************
517 //! NG???若????紊??眼????緇????鴻???若?帥?鴻???若???贋?医????
518 // *************************************************************************
519 procedure TGikoDM.RepaintStatusBar;
520 var
521 s : String;
522 begin
523 //?鴻???若?帥?鴻??;腓冴??????NG???若?????<?ゃ???????贋??/span>
524 s := GikoSys.FAbon.NGwordname;
525 GikoForm.StatusBar.Panels.Items[GiKo.NGWORDNAME_PANEL].Text := s;
526 //?鴻???若?帥?鴻??;腓冴?泣?ゃ?冴?????泣?ゃ??/span>
527 GikoForm.StatusBar.Panels[GiKo.NGWORDNAME_PANEL].Width
528 := Max(GikoForm.StatusBar.Canvas.TextWidth(s), 100);
529 GikoForm.StatusBarResize(nil);
530 end;
531 // *************************************************************************
532 //! ?≪?????鴻???若??;腓冴?????????≪?????鴻?悟Щ??????
533 // *************************************************************************
534 procedure TGikoDM.MoveToActionExecute(Sender: TObject);
535 var
536 URL: string;
537 idx: Integer;
538 begin
539 //?≪?????鴻?潟?潟?????????鴻????URL????緇?
540 URL := Trim(GikoForm.AddressComboBox.Text);
541 //URL??Щ??
542 GikoForm.MoveToURL(URL);
543 //篁ヤ???絮ユ???????
544 idx := GikoForm.AddressComboBox.Items.IndexOf(URL);
545 if idx = -1 then begin
546 GikoForm.AddressComboBox.Items.Insert(0, URL);
547 if GikoForm.AddressComboBox.Items.Count > GikoSys.Setting.AddressHistoryCount then
548 GikoForm.AddressComboBox.Items.Delete(GikoForm.AddressComboBox.Items.Count - 1);
549 end else begin
550 GikoForm.AddressComboBox.Items.Delete(idx);
551 GikoForm.AddressComboBox.Items.Insert(0, URL);
552 end;
553 end;
554 // *************************************************************************
555 //! ??羂????ャ????申?????ゃ?≪???違??????span>
556 // *************************************************************************
557 procedure TGikoDM.FavoriteAddActionExecute(Sender: TObject);
558 begin
559 GikoForm.ShowFavoriteAddDialog(GikoForm.GetActiveContent);
560 end;
561 // *************************************************************************
562 //! ??羂????ャ?????雁?????ゃ?≪???違??????span>
563 // *************************************************************************
564 procedure TGikoDM.FavoriteArrangeActionExecute(Sender: TObject);
565 var
566 Dlg: TFavoriteArrangeDialog;
567 begin
568 Dlg := TFavoriteArrangeDialog.Create(GikoForm);
569 try
570 Dlg.ShowModal;
571 finally
572 Dlg.Release;
573 end;
574 //???潟?????若???贋?違??篌?????
575 PostMessage( GikoForm.Handle, USER_SETLINKBAR, 0, 0 );
576 end;
577 // *************************************************************************
578 //! ?????若????????????
579 // *************************************************************************
580 procedure TGikoDM.FavoriteTreeViewCollapseActionExecute(Sender: TObject);
581 var
582 node : TTreeNode;
583 begin
584 node := GikoForm.FavoriteTreeView.Items.GetFirstNode;
585 try
586 //???若????膓???????????若????膰????????
587 while node <> nil do begin
588 if node.HasChildren then
589 node.Expanded := False;
590 node := node.GetNext;
591 end;
592 except
593 end;
594 end;
595 // *************************************************************************
596 //! ??羂????ャ??????????膩???????
597 // *************************************************************************
598 procedure TGikoDM.FavoriteTreeViewRenameActionExecute(Sender: TObject);
599 var
600 node : TTreeNode;
601 begin
602
603 if GikoForm.ClickNode = nil then
604 Exit;
605 if GikoForm.ClickNode.IsFirstNode then
606 Exit;
607 if GikoForm.ClickNode.Text = Favorite.FAVORITE_LINK_NAME then
608 Exit;
609 GikoForm.FavoriteTreeView.ReadOnly := False;
610 if (GikoForm.TreeType = gttFavorite) and (GikoForm.CabinetPanel.Visible) then begin
611 node := GikoForm.ClickNode.Parent;
612 while node <> nil do begin
613 node.Expanded := True;
614 node := node.Parent;
615 end;
616 GikoForm.ClickNode.EditText;
617 end else begin
618 GikoForm.ClickNode.Text := InputBox( '?????????#39;, '??羂????ャ?????違???????????ュ?????????????', GikoForm.ClickNode.Text );
619 end;
620 //?贋?違????????????????
621 FavoriteDM.Modified := true;
622 GikoForm.SetLinkBar;
623 end;
624 // *************************************************************************
625 //! ?違?????羂????ャ??????????????篏???????
626 // *************************************************************************
627 procedure TGikoDM.FavoriteTreeViewNewFolderActionExecute(Sender: TObject);
628 var
629 NewFavFolder: TFavoriteFolder;
630 Node: TTreeNode;
631 begin
632
633 if GikoForm.ClickNode = nil then
634 Exit;
635
636 try
637 if not (TObject(GikoForm.ClickNode.Data) is TFavoriteFolder) then begin
638 GikoForm.FavoriteTreeView.Selected := GikoForm.ClickNode.Parent;
639 GikoForm.ClickNode := GikoForm.ClickNode.Parent;
640 end;
641
642 NewFavFolder := TFavoriteFolder.Create;
643 Node := GikoForm.FavoriteTreeView.Items.AddChildObject(GikoForm.ClickNode, '?違????????????', NewFavFolder);
644 Node.ImageIndex := 14;
645 Node.SelectedIndex := 14;
646 // FClickNode.Selected.Expanded := True;
647 GikoForm.FavoriteTreeView.Selected := Node;
648 GikoForm.ClickNode := Node;
649 //?贋?違????????????????
650 FavoriteDM.Modified := true;
651 FavoriteTreeViewRenameAction.Execute;
652 finally
653 end;
654
655 end;
656 // *************************************************************************
657 //! ??????羂????ャ???????ゃ????
658 // *************************************************************************
659 procedure TGikoDM.FavoriteTreeViewDeleteActionExecute(Sender: TObject);
660 const
661 DEL_LINK_MSG = '?????潟?????????潟?????主???????????с???????ゃ?????????????с????鐚?';
662 DEL_MSG = '??^0???????ゃ???障?????????????с????鐚?';
663 DEL_TITLE = '???ょ∈茯?';
664 begin
665
666 if GikoForm.ClickNode = nil then
667 Exit;
668 if GikoForm.ClickNode.IsFirstNode then
669 Exit;
670 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then begin
671 if GikoForm.ClickNode.Text = Favorite.FAVORITE_LINK_NAME then begin
672 if MsgBox(GikoForm.Handle, DEL_LINK_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
673 Exit;
674 end else begin
675 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
676 Exit;
677 end;
678 end;
679
680 GikoForm.ClickNode.Delete;
681 //?贋?違????????????????
682 FavoriteDM.Modified := true;
683
684 GikoForm.SetLinkBar;
685
686 end;
687 // *************************************************************************
688 //! ???????????????ャ?c????????羂????ャ????????????span>
689 // *************************************************************************
690 procedure TGikoDM.FavoriteTreeViewBrowseFolderActionExecute(
691 Sender: TObject);
692 begin
693 GikoForm.FavoriteBrowseFolder( GikoForm.ClickNode );
694 end;
695 // *************************************************************************
696 //! ?御??????????????羂????ャ?????????潟???若??????
697 // *************************************************************************
698 procedure TGikoDM.FavoriteTreeViewReloadActionExecute(Sender: TObject);
699 var
700 FavThread: TFavoriteThreadItem;
701 FavBoard: TFavoriteBoardItem;
702 shiftDown: Boolean;
703 begin
704 if (GikoForm.ClickNode = nil) then Exit;
705
706 shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
707
708 if TObject( GikoForm.ClickNode.Data ) is TFavoriteThreadItem then begin
709 FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
710 if FavThread.Item <> nil then
711 GikoForm.DownloadContent(FavThread.Item, shiftDown);
712 end else if TObject( GikoForm.ClickNode.Data ) is TFavoriteBoardItem then begin
713 FavBoard := TFavoriteBoardItem( GikoForm.ClickNode.Data );
714 GikoForm.DownloadList(FavBoard.Item, shiftDown);
715 end;
716
717 end;
718 // *************************************************************************
719 //! ?御?????????????鴻????????RL???潟???若????
720 // *************************************************************************
721 procedure TGikoDM.FavoriteTreeViewURLCopyActionExecute(Sender: TObject);
722 begin
723
724 if GikoForm.ClickNode = nil then Exit;
725
726 if (TObject(GikoForm.ClickNode.Data) is TFavoriteItem) then begin
727 Clipboard.AsText := TFavoriteItem( GikoForm.ClickNode.Data ).URL + #13#10;
728 end;
729 end;
730 // *************************************************************************
731 //! ?御?????????????帥?????????潟???若????
732 // *************************************************************************
733 procedure TGikoDM.FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
734 begin
735
736 if GikoForm.ClickNode = nil then Exit;
737
738 if (TObject(GikoForm.ClickNode.Data) is TFavoriteItem) then begin
739 Clipboard.AsText :=
740 TFavoriteItem(GikoForm.ClickNode.Data).GetItemTitle + #13#10;
741 end;
742 end;
743 // *************************************************************************
744 //! ?御?????????????鴻??????????????RL???潟???若????
745 // *************************************************************************
746 procedure TGikoDM.FavoriteTreeViewNameURLCopyActionExecute(
747 Sender: TObject);
748 var
749 favItem : TFavoriteItem;
750 begin
751
752 if GikoForm.ClickNode = nil then Exit;
753
754 if (TObject(GikoForm.ClickNode.Data) is TFavoriteItem) then begin
755 favItem := TFavoriteItem(GikoForm.ClickNode.Data);
756 Clipboard.AsText := favItem.GetItemTitle + #13#10 +
757 favItem.URL + #13#10;
758 end;
759
760 end;
761 // *************************************************************************
762 //! ?御?????????????鴻???????????ゃ????
763 // *************************************************************************
764 procedure TGikoDM.FavoriteTreeViewLogDeleteActionExecute(Sender: TObject);
765 const
766 DEL_MSG = '??^0???????違?????ゃ???障?????????????с????鐚?';
767 DEL_TITLE = '???ょ∈茯?';
768 var
769 ThreadItem: TThreadItem;
770 FavThread: TFavoriteThreadItem;
771 begin
772
773 if GikoForm.ClickNode = nil then Exit;
774 if not (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then Exit;
775
776 FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
777 ThreadItem := FavThread.Item;
778
779 try
780 if GikoSys.Setting.DeleteMsg then begin
781 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
782 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
783 Exit;
784 end;
785
786 GikoForm.DeleteHistory(ThreadItem);
787 GikoForm.DeleteTab(ThreadItem);
788 ThreadItem.DeleteLogFile;
789
790 GikoForm.ListView.Refresh;
791 finally
792 end;
793
794 end;
795 // *************************************************************************
796 //! ?上??;腓冴?????????鴻???????????????吟?ц;腓冴????
797 // *************************************************************************
798 procedure TGikoDM.FavoriteTreeViewBrowseThreadActionExecute(
799 Sender: TObject);
800 var
801 threadItem : TThreadItem;
802 begin
803
804 if GikoForm.ClickNode = nil then Exit;
805
806 if (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then begin
807
808 threadItem := TFavoriteThreadItem( GikoForm.ClickNode.Data ).Item;
809 if threadItem = nil then
810 Exit;
811 GikoSys.OpenBrowser( threadItem.URL, gbtAuto );
812
813 end;
814 end;
815 //! ???鴻???莨若?帥???c???帥?若??腥冴??????
816 procedure TGikoDM.ClearResFilter;
817 var
818 FilterList : TStringList;
819 begin
820 // ???c???炊??絖?????腥冴??????
821 FilterList := TStringList.Create;
822 try
823 GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
824 GikoSys.FSelectResFilter.Reverse := False;
825 finally
826 FilterList.Free;
827 end;
828 GikoForm.SelectResWord := '';
829 end;
830 // *************************************************************************
831 //! ???鴻??;腓榊??蚊??荐??????
832 // *************************************************************************
833 procedure TGikoDM.SetResRange(range: Integer);
834 begin
835 if GikoSys.ResRange <> range then begin
836 GikoSys.ResRange := range;
837 // ???c???炊??絖?????腥冴??????
838 ClearResFilter;
839 GikoForm.RepaintAllTabsBrowser();
840 end;
841 end;
842 // *************************************************************************
843 //! ????00???鴻???粋;腓?/span>
844 // *************************************************************************
845 procedure TGikoDM.OnlyAHundredResActionExecute(Sender: TObject);
846 begin
847 if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
848 and (GikoForm.ActiveContent.Browser.Busy) then Exit;
849
850 GikoForm.ResRangeMenuSelect := 100;
851 OnlyAHundredResAction.Checked := True;
852 //??茵?ず膀??蚊??荐??????
853 SetResRange(100);
854 end;
855 // *************************************************************************
856 //! ??????鴻???粋;腓?/span>
857 // *************************************************************************
858 procedure TGikoDM.OnlyKokoResActionExecute(Sender: TObject);
859 begin
860 if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
861 and (GikoForm.ActiveContent.Browser.Busy) then Exit;
862
863 GikoForm.ResRangeMenuSelect := Ord( grrKoko );
864 OnlyKokoResAction.Checked := True;
865
866 //??茵?ず膀??蚊??荐??????
867 SetResRange(Ord( grrKoko ));
868 end;
869 // *************************************************************************
870 //! ?亥?????鴻???粋;腓?/span>
871 // *************************************************************************
872 procedure TGikoDM.OnlyNewResActionExecute(Sender: TObject);
873 begin
874 if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
875 and (GikoForm.ActiveContent.Browser.Busy) then Exit;
876
877 GikoForm.ResRangeMenuSelect := Ord( grrNew );
878 OnlyNewResAction.Checked := True;
879
880 //??茵?ず膀??蚊??荐??????
881 SetResRange(Ord( grrNew ));
882 end;
883 // *************************************************************************
884 //! ?鴻??????茵?ず?????∫??絽梧;腓冴?????? 羈?ListOrientation = gloHorizontal??
885 // *************************************************************************
886 procedure TGikoDM.SetThreadAreaHorNormal;
887 begin
888 //??絽梧;腓冴??????
889 if GikoForm.ActiveContent <> nil then
890 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //??糸??罩?/span>
891 GikoForm.ViewPanel.Width := GikoForm.BrowserSizeWidth;
892 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
893 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
894 GikoSys.Setting.ListWidthState := glsNormal;
895 if GikoForm.ActiveContent <> nil then
896 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //???/span>
897 end;
898 // *************************************************************************
899 //! ?鴻??????茵?ず?????∽??紊???絨頫?ず?????? 羈?ListOrientation = gloHorizontal??
900 // *************************************************************************
901 procedure TGikoDM.SetThreadAreaHorizontal(gls : TGikoListState);
902 begin
903 if GikoForm.ActiveContent <> nil then
904 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //??糸??罩?/span>
905 if GikoSys.Setting.ListWidthState = glsNormal then
906 GikoForm.BrowserSizeWidth := GikoForm.ViewPanel.Width;
907 //??紊ц;腓?/span>
908 if (gls = glsMax) then begin
909 GikoForm.ViewPanel.Width := 1;
910 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
911 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
912 GikoSys.Setting.ListWidthState := glsMax;
913 end else if (gls = glsMin) then begin
914 GikoForm.ViewPanel.Width := GikoForm.ThreadMainPanel.Width - 80;
915 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
916 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
917 GikoSys.Setting.ListWidthState := glsMin;
918 end;
919 if GikoForm.ActiveContent <> nil then
920 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //???/span>
921 end;
922 // *************************************************************************
923 //! ?鴻??????茵?ず?????∫??絽梧;腓冴?????? 羈?ListOrientation = gloVertical
924 // *************************************************************************
925 procedure TGikoDM.SetThreadAreaVerNormal;
926 begin
927 //??絽梧;腓冴??????
928 if GikoForm.ActiveContent <> nil then
929 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //??糸??罩?/span>
930 GikoForm.ViewPanel.Height := GikoForm.BrowserSizeHeight;
931 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
932 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
933 GikoSys.Setting.ListHeightState := glsNormal;
934 if GikoForm.ActiveContent <> nil then
935 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //???/span>
936 end;
937 // *************************************************************************
938 //! ?鴻??????茵?ず?????∽??紊???絨頫?ず?????? 羈?ListOrientation = gloVertical
939 // *************************************************************************
940 procedure TGikoDM.SetThreadAreaVertical(gls : TGikoListState);
941 begin
942 if GikoForm.ActiveContent <> nil then
943 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //??糸??罩?/span>
944 if GikoSys.Setting.ListHeightState = glsNormal then
945 GikoForm.BrowserSizeHeight := GikoForm.ViewPanel.Height;
946 if (gls = glsMin) then begin
947 GikoForm.ViewPanel.Height := GikoForm.ThreadMainPanel.Height - GikoForm.BrowserCoolBar.Height - 7;
948 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
949 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
950 GikoSys.Setting.ListHeightState := glsMin;
951 end else if (gls = glsMax) then begin
952 GikoForm.ViewPanel.Height := 1;
953 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
954 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
955 GikoSys.Setting.ListHeightState := glsMax;
956 end;
957 if GikoForm.ActiveContent <> nil then
958 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //???/span>
959 end;
960 // *************************************************************************
961 //! ?鴻??????茵?ず?????≪??紊с???頫?ず????
962 // *************************************************************************
963 procedure TGikoDM.BrowserMaxActionExecute(Sender: TObject);
964 begin
965 if GikoSys.Setting.ListOrientation = gloHorizontal then begin
966 case GikoSys.Setting.ListWidthState of
967 glsMax: begin
968 //??絽梧;腓冴??????
969 SetThreadAreaHorNormal;
970 end;
971 glsMin, glsNormal: begin
972 //??紊ц;腓冴??????
973 SetThreadAreaHorizontal(glsMax);
974 end;
975 end;
976 end else begin
977 case GikoSys.Setting.ListHeightState of
978 glsMax: begin
979 //??絽梧;腓冴??????
980 SetThreadAreaVerNormal;
981 end;
982 glsMin, glsNormal: begin
983 //??紊ц;腓冴??????
984 SetThreadAreaVertical(glsMax);
985 end;
986 end;
987 end;
988 end;
989 // *************************************************************************
990 //! ?鴻??????茵?ず?????≪??絨???頫?ず????
991 // *************************************************************************
992 procedure TGikoDM.BrowserMinActionExecute(Sender: TObject);
993 begin
994 if GikoSys.Setting.ListOrientation = gloHorizontal then begin
995 case GikoSys.Setting.ListWidthState of
996 glsMax, glsNormal: begin
997 //??絨頫?ず??????
998 SetThreadAreaHorizontal(glsMin);
999 end;
1000 glsMin: begin
1001 //??絽梧;腓冴??????
1002 SetThreadAreaHorNormal;
1003 end;
1004 end;
1005 end else begin
1006 case GikoSys.Setting.ListHeightState of
1007 glsMax, glsNormal: begin
1008 //??絨頫?ず??????
1009 SetThreadAreaVertical(glsMin);
1010 end;
1011 glsMin: begin
1012 //??絽梧;腓冴??????
1013 SetThreadAreaVerNormal;
1014 end;
1015 end;
1016 end;
1017 end;
1018 // *************************************************************************
1019 //! ?上??;腓冴?????????鴻?????????????悟Щ??????
1020 // *************************************************************************
1021 procedure TGikoDM.ScrollTopActionExecute(Sender: TObject);
1022 begin
1023 GikoForm.BrowserMovement('top');
1024 end;
1025 // *************************************************************************
1026 //! ?上??;腓冴?????????鴻??????????緇??悟Щ??????
1027 // *************************************************************************
1028 procedure TGikoDM.ScrollLastActionExecute(Sender: TObject);
1029 begin
1030 GikoForm.BrowserMovement('bottom');
1031 end;
1032 // *************************************************************************
1033 //! ?上??;腓冴?????????鴻?????????亥???悟Щ??????
1034 // *************************************************************************
1035 procedure TGikoDM.ScrollNewActionExecute(Sender: TObject);
1036 begin
1037 GikoForm.BrowserMovement('new');
1038 end;
1039 // *************************************************************************
1040 //! ?上??;腓冴?????????鴻?????????潟?潟?障?ц??????悟Щ??????
1041 // *************************************************************************
1042 procedure TGikoDM.ScrollKokoActionExecute(Sender: TObject);
1043 begin
1044 GikoForm.BrowserMovement('koko');
1045 end;
1046 // *************************************************************************
1047 //! ?上??;腓冴?????????鴻?????????潟?潟?障?ц??????悟Щ????????pdate?ゃ???潟??
1048 // *************************************************************************
1049 procedure TGikoDM.ScrollKokoActionUpdate(Sender: TObject);
1050 begin
1051 ScrollKokoAction.Enabled := (GikoForm.GetActiveContent <> nil)
1052 and (GikoForm.GetActiveContent.IsLogFile)
1053 and (GikoForm.GetActiveContent.Kokomade <> -1);
1054 end;
1055 // *************************************************************************
1056 //! ???号?吾??莨若?帥???c?潟??????茵?ず????
1057 // *************************************************************************
1058 procedure TGikoDM.EditorActionExecute(Sender: TObject);
1059 var
1060 Editor: TEditorForm;
1061 Item: TThreadItem;
1062 begin
1063 Item := GikoForm.GetActiveContent;
1064 if Item = nil then Exit;
1065 Editor := TEditorForm.Create(GikoForm.GetMainForm);
1066 Editor.SetThreadItem(Item);
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.EKEY_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 Editor.BodyEdit.Text := '>>' + IntToStr(Number) + #13#10;
2232 Editor.Show;
2233 Editor.BodyEdit.SetFocus;
2234 end;
2235 // *************************************************************************
2236 //! ?御?????????鴻???潟???若????
2237 // *************************************************************************
2238 procedure TGikoDM.KoreCopyExecute(Sender: TObject);
2239 begin
2240 GikoForm.KonoresCopy(GikoForm.KokoPopupMenu.Tag, true);
2241 end;
2242 // *************************************************************************
2243 //! ?御?????????鴻???潟???若????
2244 // *************************************************************************
2245 procedure TGikoDM.SameIDResAnchorActionExecute(Sender: TObject);
2246 var
2247 ThreadItem : TThreadItem;
2248 No, count, rc : Integer;
2249 body : string;
2250 limited: boolean;
2251 begin
2252 No := GikoForm.KokoPopupMenu.Tag;
2253 if No = 0 then Exit;
2254 ThreadItem := GikoForm.GetActiveContent;
2255 if ThreadItem = nil then Exit;
2256 count := GikoSys.GetSameIDResCount(No, GikoForm.ActiveContent.Thread);
2257 limited := false;
2258 if count > 20 then begin
2259 rc := GikoUtil.MsgBox(GikoForm.Handle,
2260 '20??篁ヤ??????障?????????鴻??;腓冴???障????鐚?',
2261 'ID???????≪????茘???',
2262 MB_YESNO or MB_ICONQUESTION);
2263 limited := rc <> ID_YES;
2264 end;
2265 body := GikoSys.GetSameIDResAnchor(No, ThreadItem, limited);
2266 GikoForm.ActiveContent.IDAnchorPopup(body);
2267 end;
2268 // *************************************************************************
2269 //! ???????鴻???若??????鐚???絽醐?
2270 // *************************************************************************
2271 procedure TGikoDM.IndividualAbon1ActionExecute(Sender: TObject);
2272 begin
2273 GikoForm.IndividualAbon(GikoForm.KokoPopupMenu.Tag, 1);
2274 end;
2275 // *************************************************************************
2276 //! ???????鴻???若??????鐚?????
2277 // *************************************************************************
2278 procedure TGikoDM.IndividualAbon0ActionExecute(Sender: TObject);
2279 begin
2280 GikoForm.IndividualAbon(GikoForm.KokoPopupMenu.Tag, 0);
2281 end;
2282 // *************************************************************************
2283 //! ???????鴻???若????茹i??/span>
2284 // *************************************************************************
2285 procedure TGikoDM.AntiIndividualAbonActionExecute(Sender: TObject);
2286 var
2287 IndividualForm :TIndividualAbonForm;
2288 ThreadItem : TThreadItem;
2289 msg : String;
2290 ReadList : TStringList;
2291 wordCount : TWordCount;
2292 begin
2293 IndividualForm := TIndividualAbonForm.Create(GikoForm);
2294 try
2295 ThreadItem := GikoForm.GetActiveContent;
2296 ThreadItem.ScrollTop :=
2297 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2298 if (ThreadItem <> nil) and (ThreadItem.IsLogFile) then begin
2299 if IndividualForm.SetThreadLogFileName(ThreadItem.GetThreadFileName) then begin
2300 ReadList := TStringList.Create;
2301 wordCount := TWordCount.Create;
2302 try
2303 {$IFDEF SPAM_FILTER_ENABLED}
2304 // ?鴻??????茹i??/span>
2305 ReadList.LoadFromFile( ThreadItem.GetThreadFileName );
2306 GikoSys.SpamCountWord( ReadList[ KokoPopupMenu.Tag - 1 ], wordCount );
2307 GikoSys.SpamForget( wordCount, True ); // ?鴻??????茹i??/span>
2308 GikoSys.SpamLearn( wordCount, False ); // ?????┃絎?
2309 {$ENDIF}
2310 if IndividualForm.DeleteNG(GikoForm.KokoPopupMenu.Tag) then begin
2311 GikoForm.ActiveContent.Repaint := true;
2312 GikoForm.InsertBrowserTab( ThreadItem, True );
2313 end;
2314 finally
2315 wordCount.Free;
2316 ReadList.Free;
2317 end;
2318 end else begin
2319 msg := '?????鴻???????с?????ャ???若??????茵??c???障????';
2320 MsgBox(GikoForm.Handle, msg, '?<???祉?若??#39;, MB_OK);
2321 end;
2322 end;
2323 finally
2324 IndividualForm.Release;
2325 end;
2326 end;
2327 // *************************************************************************
2328 //! ???????鴻???若????茹i?ゃ???合??垽??絎?鐚????ゃ?≪???域;腓削?
2329 // *************************************************************************
2330 procedure TGikoDM.AntiIndividualAbonDlgActionExecute(Sender: TObject);
2331 var
2332 IndividualForm :TIndividualAbonForm;
2333 ThreadItem : TThreadItem;
2334 msg : String;
2335 ReadList : TStringList;
2336 wordCount : TWordCount;
2337 {$IFDEF SPAM_FILTER_ENABLED}
2338 i : Integer;
2339 {$ENDIF}
2340 begin
2341 IndividualForm := TIndividualAbonForm.Create(GikoForm);
2342 try
2343 ThreadItem := GikoForm.GetActiveContent;
2344 ThreadItem.ScrollTop :=
2345 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2346 if (ThreadItem <> nil) and (ThreadItem.IsLogFile) then begin
2347 if IndividualForm.SetThreadLogFileName(ThreadItem.GetThreadFileName) then begin
2348 if (IndividualForm.ShowModal = mrOK) then begin
2349 ReadList := TStringList.Create;
2350 wordCount := TWordCount.Create;
2351 try
2352 {$IFDEF SPAM_FILTER_ENABLED}
2353 // ?鴻??????茹i??/span>
2354 ReadList.LoadFromFile( ThreadItem.GetThreadFileName );
2355 for i := 0 to IndividualForm.DeleteList.Count - 1 do begin
2356 GikoSys.SpamCountWord( ReadList[ StrToInt(IndividualForm.DeleteList[i]) - 1 ], wordCount );
2357 GikoSys.SpamForget( wordCount, True ); // ?鴻??????茹i??/span>
2358 GikoSys.SpamLearn( wordCount, False ); // ?????┃絎?
2359 end;
2360 {$ENDIF}
2361 if IndividualForm.FRepaint then begin
2362 GikoForm.ActiveContent.Repaint := true;
2363 GikoForm.InsertBrowserTab( ThreadItem, True );
2364 end;
2365 finally
2366 wordCount.Free;
2367 ReadList.Free;
2368 end;
2369 end;
2370 end else begin
2371 msg := '?????鴻???????с?????ャ???若??????茵??c???障????';
2372 MsgBox(GikoForm.Handle, msg, '?<???祉?若??#39;, MB_OK);
2373 end;
2374 end;
2375 finally
2376 IndividualForm.Release;
2377 end;
2378 end;
2379 // *************************************************************************
2380 //! ????D???若????????絽?/span>
2381 // *************************************************************************
2382 procedure TGikoDM.IndividualAbonID1ActionExecute(Sender: TObject);
2383 begin
2384 GikoForm.IndividualAbonID(1);
2385 end;
2386 // *************************************************************************
2387 //! ????D???若?????????/span>
2388 // *************************************************************************
2389 procedure TGikoDM.IndividualAbonID0ActionExecute(Sender: TObject);
2390 begin
2391 GikoForm.IndividualAbonID(0);
2392 end;
2393 ////////////////////////////////???????吟???????≪?????障?с?????障??/////////////////////
2394 // *************************************************************************
2395 //! ???潟?????????с???泣?ゃ????茵?ず????
2396 // *************************************************************************
2397 procedure TGikoDM.GikoNaviWebPageActionExecute(Sender: TObject);
2398 begin
2399 GikoSys.OpenBrowser(URL_GIKONAVI, gbtAuto);
2400 end;
2401 // *************************************************************************
2402 //! ?≪???吾???????с???泣?ゃ????茵?ず????
2403 // *************************************************************************
2404 procedure TGikoDM.MonazillaWebPageActionExecute(Sender: TObject);
2405 begin
2406 GikoSys.OpenBrowser(URL_MONAZILLA, gbtAuto);
2407 end;
2408 // *************************************************************************
2409 //! 鐚??<?????????????????若?吾??茵?ず????
2410 // *************************************************************************
2411 procedure TGikoDM.BBS2chWebPageActionExecute(Sender: TObject);
2412 begin
2413 GikoSys.OpenBrowser(URL_2ch, gbtAuto);
2414 end;
2415 // *************************************************************************
2416 //! ???潟????????????????????span>
2417 // *************************************************************************
2418 procedure TGikoDM.GikoFolderOpenActionExecute(Sender: TObject);
2419 begin
2420 GikoSys.CreateProcess('explorer.exe', '/e,"' + GikoSys.GetAppDir + '"');
2421 end;
2422 // *************************************************************************
2423 //! ???若?吾?с?恰???宴??茵?ず????
2424 // *************************************************************************
2425 procedure TGikoDM.AboutActionExecute(Sender: TObject);
2426 var
2427 Dlg: TAboutDialog;
2428 begin
2429 Dlg := TAboutDialog.Create(GikoForm);
2430 try
2431 Dlg.ShowModal;
2432 finally
2433 Dlg.Release;
2434 end;
2435 end;
2436 // *************************************************************************
2437 //! ???潟??????????????茵?ず????
2438 // *************************************************************************
2439 procedure TGikoDM.GikoHelpActionExecute(Sender: TObject);
2440 var
2441 FileName: string;
2442 begin
2443 FileName := GikoSys.GetAppDir + 'batahlp.chm';
2444 if not FileExists(FileName) then begin
2445 MsgBox(
2446 GikoForm.Handle,
2447 '????????荀??ゃ?????障?????с????' + #13#10 +
2448 '?????????<?ゃ???????潟????????????????舟???????????' + #13#10 +
2449 '???????????潟???????泣?ゃ????舟?????????障??',
2450 '??????#39;,
2451 MB_ICONSTOP);
2452 Exit;
2453 end;
2454 ShellExecute(GikoForm.Handle, 'open', PChar(FileName), '', PChar(GikoSys.GetAppDir), SW_SHOW);
2455 end;
2456 // *************************************************************************
2457 //! ???潟????Wiki?????с???泣?ゃ????茵?ず????
2458 // *************************************************************************
2459 procedure TGikoDM.WikiFAQWebPageActionExecute(Sender: TObject);
2460 begin
2461 GikoSys.OpenBrowser(URL_Wiki, gbtAuto);
2462 end;
2463 ////////////////////////////////???????障?с?????障??/////////////////////
2464 // *************************************************************************
2465 //! ???鴻????埈;腓冴??紊??眼????
2466 // *************************************************************************
2467 procedure TGikoDM.ListNumberVisibleActionExecute(Sender: TObject);
2468 begin
2469 GikoSys.Setting.ListViewNo := ListNumberVisibleAction.Checked;
2470 GikoForm.ListView.Refresh;
2471 end;
2472 // *************************************************************************
2473 //! 筝?篏???????????Щ??????
2474 // *************************************************************************
2475 procedure TGikoDM.UpFolderActionExecute(Sender: TObject);
2476 begin
2477 if GikoForm.GetActiveList is TBoard then begin
2478 if TBoard(GikoForm.GetActiveList).ParentCategory <> nil then
2479 GikoForm.SelectTreeNode(TBoard(GikoForm.GetActiveList).ParentCategory, True);
2480 end else if GikoForm.GetActiveList is TCategory then begin
2481 GikoForm.SelectTreeNode(TCategory(GikoForm.GetActiveList).ParenTBBS, True);
2482 end;
2483 end;
2484 // *************************************************************************
2485 //! 筝?篏???????????Щ??????UpDate?ゃ???潟??
2486 // *************************************************************************
2487 procedure TGikoDM.UpFolderActionUpdate(Sender: TObject);
2488 begin
2489 UpFolderAction.Enabled := not (GikoForm.GetActiveList is TBBS);
2490 end;
2491 // *************************************************************************
2492 //! 茵?ず??茵?ず???鴻?????≪?若??紊???/span>
2493 // *************************************************************************
2494 procedure TGikoDM.IconStyleExecute(Sender: TObject);
2495 begin
2496 case GikoForm.ListView.ViewStyle of
2497 vsIcon: SmallIconAction.Execute;
2498 vsSmallIcon: ListIconAction.Execute;
2499 vsList: DetailIconAction.Execute;
2500 vsReport: LargeIconAction.Execute;
2501 end;
2502 end;
2503 // *************************************************************************
2504 //! ?鴻???????????鴻??;腓冴????
2505 // *************************************************************************
2506 procedure TGikoDM.AllItemActionExecute(Sender: TObject);
2507 begin
2508 try
2509 if GikoForm.ViewType <> gvtAll then
2510 GikoForm.SetListViewType(gvtAll);
2511 GikoSys.Setting.ThreadRange := gtrAll;
2512 AllItemAction.Checked := True;
2513 // SelectComboBox ??吋罩眼???贋?違????????span>
2514 GikoForm.ModifySelectList;
2515 // SelectComboBox ???ゃ????????/span>
2516 if GikoForm.SelectComboBoxPanel.Visible then begin
2517 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2518 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2519 GikoForm.ListView.SetFocus;
2520 end;
2521 except
2522 end;
2523 end;
2524 // *************************************************************************
2525 //! ???井?????鴻?????????帥??茵?ず????
2526 // *************************************************************************
2527 procedure TGikoDM.LogItemActionExecute(Sender: TObject);
2528 begin
2529 try
2530 if GikoForm.ViewType <> gvtLog then
2531 GikoForm.SetListViewType(gvtLog);
2532 GikoSys.Setting.ThreadRange := gtrLog;
2533 LogItemAction.Checked := True;
2534 // SelectComboBox ??吋罩眼???贋?違????????span>
2535 GikoForm.ModifySelectList;
2536 // SelectComboBox ???ゃ????????/span>
2537 if GikoForm.SelectComboBoxPanel.Visible then begin
2538 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2539 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2540 GikoForm.ListView.SetFocus;
2541 end;
2542 except
2543 end;
2544 end;
2545 // *************************************************************************
2546 //! ?亥???鴻?????????粋;腓冴????
2547 // *************************************************************************
2548 procedure TGikoDM.NewItemActionExecute(Sender: TObject);
2549 begin
2550 try
2551
2552 if GikoForm.ViewType <> gvtNew then
2553 GikoForm.SetListViewType(gvtNew);
2554 GikoSys.Setting.ThreadRange := gtrNew;
2555 NewItemAction.Checked := True;
2556 // SelectComboBox ??吋罩眼???贋?違????????span>
2557 GikoForm.ModifySelectList;
2558 // SelectComboBox ???ゃ????????/span>
2559 if GikoForm.SelectComboBoxPanel.Visible then begin
2560 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2561 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2562 GikoForm.ListView.SetFocus;
2563 end;
2564 except
2565 end;
2566 end;
2567 // *************************************************************************
2568 //! ?鴻????????;腓榊??蚊??荐??
2569 // *************************************************************************
2570 procedure TGikoDM.ThreadRangeActionExecute(Sender: TObject);
2571 begin
2572 case GikoSys.Setting.ThreadRange of
2573 gtrAll: AllItemAction.Execute;
2574 gtrLog: LogItemAction.Execute;
2575 gtrNew: NewItemAction.Execute;
2576 end;
2577 end;
2578 // *************************************************************************
2579 //! ?鴻??????腟?莨若?帥???ゃ?≪???違??茵?ず????
2580 // *************************************************************************
2581 procedure TGikoDM.SelectItemActionExecute(Sender: TObject);
2582 var
2583 idx: Integer;
2584 Dlg: TListSelectDialog;
2585 begin
2586 try
2587 if GikoForm.SelectComboBoxPanel.Visible then begin
2588 if GikoForm.SelectComboBoxPanel.Left + GikoForm.SelectComboBoxPanel.Width < GikoForm.ListToolBar.Width then begin
2589 // SelectComboBox ???????翫?????????若???鴻??腱祉??
2590 if GikoSys.Setting.ListOrientation = gloHorizontal then begin
2591 if GikoSys.Setting.ListWidthState = glsMax then
2592 BrowserMinAction.Execute;
2593 end else begin
2594 if GikoSys.Setting.ListHeightState = glsMax then
2595 BrowserMinAction.Execute;
2596 end;
2597 GikoForm.SelectComboBox.SetFocus;
2598 exit;
2599 end;
2600 end;
2601 except
2602 end;
2603
2604 if GikoForm.SelectComboBox.Text = SELECTCOMBOBOX_NAME then begin
2605 GikoForm.SelectComboBox.Text := '';
2606 GikoForm.SelectComboBox.Color := clWindow;
2607 end;
2608
2609 AllItemAction.Checked := False;
2610 LogItemAction.Checked := False;
2611 NewItemAction.Checked := False;
2612 //SelectItemAction.Checked := True;
2613 GikoForm.ModifySelectList;
2614 Dlg := TListSelectDialog.Create(GikoForm);
2615 try
2616 Dlg.SelectComboBox.Items.Assign(GikoSys.Setting.SelectTextList);
2617 Dlg.SelectComboBox.Text := GikoForm.SelectComboBox.Text;
2618 Dlg.ShowModal;
2619 if Dlg.ModalResult = mrCancel then begin
2620 if Length( GikoForm.SelectComboBox.Text ) = 0 then begin
2621 AllItemAction.Checked := True;
2622 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2623 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2624 end;
2625
2626 if GikoForm.GetActiveList is TBoard then
2627 GikoForm.SetListViewType(gvtUser, TBoard(GikoForm.GetActiveList).ParentCategory.ParenTBBS.SelectText , Dlg.KubetsuCheckBox.Checked);
2628 end else begin
2629 idx := GikoSys.Setting.SelectTextList.IndexOf(Dlg.SelectComboBox.Text);
2630 if idx <> -1 then
2631 GikoSys.Setting.SelectTextList.Delete(idx);
2632 GikoSys.Setting.SelectTextList.Insert(0, Dlg.SelectComboBox.Text);
2633 while Dlg.SelectComboBox.Items.Count > 100 do begin
2634 Dlg.SelectComboBox.Items.Delete(Dlg.SelectComboBox.Items.Count - 1);
2635 end;
2636
2637 if Length( Dlg.SelectComboBox.Text ) = 0 then begin
2638 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2639 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2640 end else begin
2641 GikoForm.SelectComboBox.Text := Dlg.SelectComboBox.Text;
2642 GikoForm.SelectComboBox.Color := clWindow;
2643 end;
2644 GikoForm.SetListViewType(gvtUser, Dlg.SelectComboBox.Text, Dlg.KubetsuCheckBox.Checked);
2645 end;
2646 finally
2647 Dlg.Release;
2648 end;
2649 end;
2650 // *************************************************************************
2651 //! ?違?鴻???吾??莨若?帥???c?潟??????茵?ず????
2652 // *************************************************************************
2653 procedure TGikoDM.ThreadEditorActionExecute(Sender: TObject);
2654 var
2655 Editor: TEditorForm;
2656 begin
2657 if not (GikoForm.GetActiveList is TBoard) then
2658 Exit;
2659 Editor := TEditorForm.Create(GikoForm);
2660 Editor.SetBoard(TBoard(GikoForm.GetActiveList));
2661 Editor.Show;
2662 Editor.BodyEdit.SetFocus;
2663 end;
2664 // *************************************************************************
2665 //! ?上??;腓冴?????????帥?????????吟?ц;腓冴????
2666 // *************************************************************************
2667 procedure TGikoDM.BoardIEActionExecute(Sender: TObject);
2668 var
2669 URL: string;
2670 begin
2671 if GikoForm.GetActiveList is TBoard then begin
2672 URL := TBoard(GikoForm.GetActiveList).URL;
2673 GikoSys.OpenBrowser(URL, gbtAuto);
2674 end;
2675 end;
2676 // *************************************************************************
2677 //! ?御?????????????鴻????????RL???潟???若????
2678 // *************************************************************************
2679 procedure TGikoDM.SelectItemURLCopyActionExecute(Sender: TObject);
2680 var
2681 List: TList;
2682 i: Integer;
2683 s: string;
2684 begin
2685 s := '';
2686 List := TList.Create;
2687 try
2688 GikoForm.SelectListItem(List);
2689 for i := 0 to List.Count - 1 do begin
2690 if TObject(List[i]) is TBoard then
2691 s := s + TBoard(List[i]).URL + #13#10
2692 else if TObject(List[i]) is TThreadItem then
2693 s := s + TThreadItem(List[i]).URL + #13#10;
2694 end;
2695 if s <> '' then
2696 Clipboard.AsText := s;
2697 finally
2698 List.Free;
2699 end;
2700 end;
2701 // *************************************************************************
2702 //! ?御?????????????鴻????????RL???潟???若????Update?ゃ???潟??
2703 // *************************************************************************
2704 procedure TGikoDM.SelectItemURLCopyActionUpdate(Sender: TObject);
2705 begin
2706 if ((GikoForm.GetActiveList is TBoard) or
2707 (GikoForm.GetActiveList is TCategory))and (GikoForm.ListView.SelCount > 0) then
2708 TAction(Sender).Enabled := True
2709 else
2710 TAction(Sender).Enabled := False;
2711 end;
2712 // *************************************************************************
2713 //! ?御?????????????帥?????????潟???若????
2714 // *************************************************************************
2715 procedure TGikoDM.SelectItemNameCopyActionExecute(Sender: TObject);
2716 var
2717 List: TList;
2718 i: Integer;
2719 s: string;
2720 begin
2721 s := '';
2722 List := TList.Create;
2723 try
2724 GikoForm.SelectListItem(List);
2725 for i := 0 to List.Count - 1 do begin
2726 if TObject(List[i]) is TBoard then
2727 s := s + TBoard(List[i]).Title + #13#10
2728 else if TObject(List[i]) is TThreadItem then
2729 s := s + TThreadItem(List[i]).Title + #13#10;
2730 end;
2731 if s <> '' then
2732 Clipboard.AsText := s;
2733 finally
2734 List.Free;
2735 end;
2736 end;
2737 // *************************************************************************
2738 //! ?御?????????????帥?????????潟???若????Update?ゃ???潟??
2739 // *************************************************************************
2740 procedure TGikoDM.SelectItemNameCopyActionUpdate(Sender: TObject);
2741 begin
2742 if ((GikoForm.GetActiveList is TBoard) or
2743 (GikoForm.GetActiveList is TCategory))and (GikoForm.ListView.SelCount > 0) then
2744 TAction(Sender).Enabled := True
2745 else
2746 TAction(Sender).Enabled := False;
2747 end;
2748 // *************************************************************************
2749 //! ?御?????????????鴻??????????????RL???潟???若????
2750 // *************************************************************************
2751 procedure TGikoDM.SelectItemNameURLCopyActionExecute(Sender: TObject);
2752 var
2753 List: TList;
2754 i: Integer;
2755 s: string;
2756 begin
2757 s := '';
2758 List := TList.Create;
2759 try
2760 GikoForm.SelectListItem(List);
2761 for i := 0 to List.Count - 1 do begin
2762 if TObject(List[i]) is TBoard then
2763 s := s + TBoard(List[i]).Title + #13#10 + TBoard(List[i]).URL + #13#10
2764 else if TObject(List[i]) is TThreadItem then
2765 s := s + TThreadItem(List[i]).Title + #13#10 + TThreadItem(List[i]).URL + #13#10;
2766 end;
2767 if s <> '' then
2768 Clipboard.AsText := s;
2769 finally
2770 List.Free;
2771 end;
2772 end;
2773 // *************************************************************************
2774 //! ?御?????????????鴻??????筝?荀с???????潟???若??????
2775 // *************************************************************************
2776 procedure TGikoDM.SelectListReloadActionExecute(Sender: TObject);
2777 var
2778 i: Integer;
2779 List: TList;
2780 msg: string;
2781 shiftDown: Boolean;
2782 begin
2783 shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
2784 if GikoForm.GetActiveList is TCategory then begin
2785 List := TList.Create;
2786 try
2787 GikoForm.SelectListItem(List);
2788 if List.Count > 5 then begin
2789 msg := '5??篁ヤ?????絎??с???障????' + #13#10
2790 + '鐚??<????????莢??決蚕羝????????????????';
2791 MsgBox(GikoForm.Handle, msg, '茘???', MB_ICONEXCLAMATION);
2792 Exit;
2793 end;
2794 for i := 0 to List.Count - 1 do begin
2795 if TObject(List[i]) is TBoard then
2796 GikoForm.DownloadList(TBoard(List[i]), shiftDown);
2797 end;
2798 finally
2799 List.Free;
2800 end;
2801 end else if GikoForm.GetActiveList is TBoard then begin
2802 GikoForm.DownloadList(TBoard(GikoForm.GetActiveList), shiftDown);
2803 end;
2804 end;
2805 // *************************************************************************
2806 //! ?御?????????????鴻??????筝?荀с???????潟???若??????Update?ゃ???潟??
2807 // *************************************************************************
2808 procedure TGikoDM.SelectListReloadActionUpdate(Sender: TObject);
2809 begin
2810 if (GikoForm.GetActiveList is TCategory) and (GikoForm.ListView.SelCount > 0) then
2811 TAction(Sender).Enabled := True
2812 else if GikoForm.GetActiveList is TBoard then
2813 TAction(Sender).Enabled := True
2814 else
2815 TAction(Sender).Enabled := False;
2816 end;
2817 // *************************************************************************
2818 //! ?御?????????????鴻?????????????潟???若??????
2819 // *************************************************************************
2820 procedure TGikoDM.SelectThreadReloadActionExecute(Sender: TObject);
2821 var
2822 List: TList;
2823 i: Integer;
2824 msg: string;
2825 shiftDown: Boolean;
2826 begin
2827 shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
2828 List := TList.Create;
2829 try
2830 GikoForm.SelectListItem(List);
2831 if List.Count > 10 then begin
2832 msg := '10??篁ヤ?????絎??с???障????' + #13#10
2833 + '鐚??<????????莢??決蚕羝????????????????';
2834 MsgBox(GikoForm.Handle, msg, '茘???', MB_ICONEXCLAMATION);
2835 Exit;
2836 end;
2837 for i := 0 to List.Count - 1 do begin
2838 if TObject(List[i]) is TThreadItem then
2839 GikoForm.DownloadContent(TThreadItem(List[i]), shiftDown);
2840 end;
2841 finally
2842 List.Free;
2843 end;
2844 end;
2845 // *************************************************************************
2846 //! ?御?????????????鴻?????????????潟???若??????Update?ゃ???潟??
2847 // *************************************************************************
2848 procedure TGikoDM.SelectThreadReloadActionUpdate(Sender: TObject);
2849 begin
2850 TAction(Sender).Enabled :=
2851 (GikoForm.GetActiveList is TBoard) and (GikoForm.ListView.SelCount > 0);
2852 end;
2853 // *************************************************************************
2854 //! ?鴻??????綏≦??篋?膣?
2855 // *************************************************************************
2856 procedure TGikoDM.SelectReservActionExecute(Sender: TObject);
2857 begin
2858 //INFO 2005/11/19 ?????種???by ??????
2859 // ?????潟?<?潟?????ゃ?????????/span>
2860 end;
2861 // *************************************************************************
2862 //! ?鴻??????綏≦??篋?膣?Update?ゃ???潟??
2863 // *************************************************************************
2864 procedure TGikoDM.SelectReservActionUpdate(Sender: TObject);
2865 var
2866 i: Integer;
2867 List: TList;
2868 begin
2869 if (GikoForm.GetActiveList is TBoard) and (GikoForm.ListView.SelCount > 0) then begin
2870 List := TList.Create;
2871 try
2872 GikoForm.SelectListItem(List);
2873 for i := 0 to List.Count - 1 do begin
2874 if TObject(List[i]) is TThreadItem then begin
2875 if TThreadItem(List[i]).IsLogFile then begin
2876 SelectReservAction.Enabled := True;
2877 Exit;
2878 end;
2879 end;
2880 end;
2881 SelectReservAction.Enabled := False;
2882 finally
2883 List.Free;
2884 end;
2885 end else if (GikoForm.GetActiveList is TCategory) and (GikoForm.ListView.SelCount > 0) then
2886 SelectReservAction.Enabled := True
2887 else
2888 SelectReservAction.Enabled := False;
2889 end;
2890 // *************************************************************************
2891 //! ?御???????????鴻?????????違?????????у掘??篋?膣?
2892 // *************************************************************************
2893 procedure TGikoDM.SelectNewRoundNameExecute(Sender: TObject);
2894 var
2895 s: string;
2896 Dlg: TRoundNameDialog;
2897 cnt: Integer;
2898
2899 begin
2900 //?若?喝?冴????????TAction??istView???御?????????????違??EXIT????
2901 if (Sender is TAction) and (GikoForm.ListView.Selected = nil) then
2902 Exit;
2903
2904 //?脂?俄??????с????/span>
2905 cnt := RoundList.Count[grtBoard];
2906 cnt := cnt + RoundList.Count[grtItem];
2907 if cnt > 500 then begin
2908 MsgBox(GikoForm.Handle, '綏≦????00篁ヤ??脂?蚊?с???障????', '??????#39;, MB_OK or MB_ICONSTOP);
2909 Exit;
2910 end;
2911
2912 Dlg := TRoundNameDialog.Create(GikoForm);
2913 try
2914 Dlg.ShowModal;
2915 if Dlg.ModalResult <> mrCancel then begin
2916 s := Trim(Dlg.RoundNameEdit.Text);
2917 if (Sender is TMenuItem) then begin
2918 GikoForm.SetSelectItemRound(True, s, TMenuItem(Sender).Parent.Name);
2919 end else if (Sender is TAction) then begin
2920 if (GikoForm.ListView.Selected <> nil) then begin
2921 if (TObject(GikoForm.ListView.Selected.Data) is TThreadItem) then begin
2922 GikoForm.SetSelectItemRound(True, s,
2923 TThreadItem(GikoForm.ListView.Selected.Data).Title);
2924 end else if (TObject(GikoForm.ListView.Selected.Data) is TBoard) then begin
2925 GikoForm.SetSelectItemRound(True, s,
2926 TBoard(GikoForm.ListView.