Develop and Download Open Source Software

Browse CVS Repository

Annotation of /gikonavigoeson/gikonavi/GikoDataModule.pas

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


Revision 1.42.2.1 - (hide annotations) (download) (as text)
Sun Jul 30 17:10:18 2006 UTC (17 years, 8 months ago) by h677
Branch: Bb53
CVS Tags: v1_53_0_672, v1_53_1_673
Changes since 1.42: +2 -1 lines
File MIME type: text/x-pascal
タブの自動保存・復元で,タブが無いときに警告メッセージが表示される
不具合の修正

1 h677 1.1 unit GikoDataModule;
2    
3     interface
4    
5     uses
6 h677 1.2 SysUtils, Classes, ExtActns, StdActns, ActnList, ImgList, Controls,
7 h677 1.6 {$IF Defined(DELPRO) }
8     SHDocVw,
9     MSHTML,
10     {$ELSE}
11     SHDocVw_TLB,
12     MSHTML_TLB,
13     {$IFEND}
14 h677 1.32 ComCtrls, BrowserRecord, Graphics, Messages, Setting, Dialogs,
15     ActiveX;
16 h677 1.17
17     const
18     CAPTION_NAME: string = '???潟????';
19     USER_SETLINKBAR = WM_USER + 2003;
20    
21     ITEM_ICON_SORT1 = 12; //!< ?純?若???≪?ゃ?潟??/span>
22     ITEM_ICON_SORT2 = 13; //!< ?純?若???≪?ゃ?潟??/span>
23    
24     //???若?????若?≪?ゃ?潟??/span>
25     TOOL_ICON_HEIGHT_MAX = 16; //!< 蕭?????紊с?≪?ゃ?潟??/span>
26     TOOL_ICON_HEIGHT_MIN = 17; //!< 蕭?????絨?≪?ゃ?潟??/span>
27     TOOL_ICON_HEIGHT_NORMAL = 18; //!< 蕭???罔?羣??≪?ゃ?潟??/span>
28     TOOL_ICON_WIDTH_MAX = 19; //!< 綛???紊с?≪?ゃ?潟??/span>
29     TOOL_ICON_WIDTH_MIN = 20; //!< 綛???絨?≪?ゃ?潟??/span>
30     TOOL_ICON_WIDTH_NORMAL = 21; //!< 綛?罔?羣??≪?ゃ?潟??/span>
31    
32     TOOL_ICON_FAV_FOLDER = 30; //!< ??羂????ャ???????????≪?ゃ?潟??/span>
33     TOOL_ICON_FAV_BOARD = 31; //!< ??羂????ャ???帥?≪?ゃ?潟??/span>
34     TOOL_ICON_FAV_THREAD = 32; //!< ??羂????ャ???鴻???≪?ゃ?潟??/span>
35    
36 h677 1.38 //! HTTP
37     PROTOCOL_HTTP : string = 'http://';
38 h677 1.17 //! ???潟?????泣?ゃ????RL
39 h677 1.38 URL_GIKONAVI: string = 'gikonavi.sourceforge.jp/';
40 h677 1.17 //! Monazilla?泣?ゃ????RL
41 h677 1.38 URL_MONAZILLA: string = 'www.monazilla.org/';
42 h677 1.17 //! 2?<??????????RL
43 h677 1.38 URL_2ch: string = 'www.2ch.net/';
44 h677 1.17 //! ???潟????Wiki??RL
45 h677 1.38 URL_Wiki: string = 'gikowiki.dyndns.info/index.php?FAQ';
46 h677 1.17
47     SELECTCOMBOBOX_NAME: string = ''; // '?鴻??????腟?莨惹?膣?#39;;
48     SELECTCOMBOBOX_COLOR: TColor = clWindow;
49 h677 1.1
50 h677 1.11
51 h677 1.1 type
52     TGikoDM = class(TDataModule)
53 h677 1.6 GikoFormActionList: TActionList;
54     OnlyAHundredResAction: TAction;
55     OnlyKokoResAction: TAction;
56     LoginAction: TAction;
57     NewBoardAction: TAction;
58     LogDeleteAction: TAction;
59     KidokuAction: TAction;
60     StdToolBarVisibleAction: TAction;
61     AddressBarVisibleAction: TAction;
62     LinkBarVisibleAction: TAction;
63 h677 1.4 ListToolBarVisibleAction: TAction;
64 h677 1.6 SearchAction: TAction;
65     GikoNaviWebPageAction: TAction;
66     MonazillaWebPageAction: TAction;
67     BBS2chWebPageAction: TAction;
68     GikoFolderOpenAction: TAction;
69     AboutAction: TAction;
70     SelectTextClearAction: TAction;
71     NameTextClearAction: TAction;
72     MailTextClearAction: TAction;
73     ExitAction: TAction;
74     ListNameBarVisibleAction: TAction;
75     BrowserToolBarVisibleAction: TAction;
76     BrowserNameBarVisibleAction: TAction;
77     MsgBarVisibleAction: TAction;
78     MsgBarCloseAction: TAction;
79     StatusBarVisibleAction: TAction;
80     CabinetBBSAction: TAction;
81     CabinetHistoryAction: TAction;
82     OnlyNewResAction: TAction;
83 h677 1.4 CabinetFavoriteAction: TAction;
84 h677 1.6 CabinetVisibleAction: TAction;
85     ListNumberVisibleAction: TAction;
86     UpFolderAction: TAction;
87     CabinetCloseAction: TAction;
88     IconStyle: TAction;
89     LargeIconAction: TAction;
90     SmallIconAction: TAction;
91     ListIconAction: TAction;
92     DetailIconAction: TAction;
93     MidokuAction: TAction;
94     AllSelectAction: TAction;
95     AllItemAction: TAction;
96     LogItemAction: TAction;
97     NewItemAction: TAction;
98     ThreadRangeAction: TAction;
99     SelectItemAction: TAction;
100     StopAction: TAction;
101     OptionAction: TAction;
102     RoundAction: TAction;
103 h677 1.4 BrowserMaxAction: TAction;
104 h677 1.6 BrowserMinAction: TAction;
105     ScrollTopAction: TAction;
106     ScrollLastAction: TAction;
107     ScrollNewAction: TAction;
108     ScrollKokoAction: TAction;
109     EditorAction: TAction;
110     IEAction: TAction;
111     ShowThreadAction: TAction;
112     ShowBoardAction: TAction;
113     URLCopyAction: TAction;
114     NameCopyAction: TAction;
115     NameURLCopyAction: TAction;
116     ItemReloadAction: TAction;
117     ThreadEditorAction: TAction;
118     BoardIEAction: TAction;
119     SelectItemURLCopyAction: TAction;
120     SelectItemNameCopyAction: TAction;
121     SelectItemNameURLCopyAction: TAction;
122     SelectListReloadAction: TAction;
123 h677 1.4 SelectThreadReloadAction: TAction;
124 h677 1.6 BrowserTabCloseAction: TAction;
125     NotSelectTabCloseAction: TAction;
126     AllTabCloseAction: TAction;
127     KokomadeAction: TAction;
128     ZenbuAction: TAction;
129     KokoResAction: TAction;
130     TreeSelectBoradReload: TAction;
131     TreeSelectThreadReload: TAction;
132     TreeSelectURLCopy: TAction;
133     SelectReservAction: TAction;
134     SelectNewRoundName: TAction;
135     SelectDeleteRound: TAction;
136     KeySettingAction: TAction;
137     ArrangeAction: TAction;
138     ActiveLogDeleteAction: TAction;
139     TreeSelectNameURLCopy: TAction;
140     PaneInitAction: TAction;
141     LeftmostTabSelectAction: TAction;
142     LeftTabSelectAction: TAction;
143 h677 1.4 RightTabSelectAction: TAction;
144 h677 1.6 RightmostTabSelectAction: TAction;
145     FavoriteAddAction: TAction;
146     BoardFavoriteAddAction: TAction;
147     ThreadFavoriteAddAction: TAction;
148     TreeSelectFavoriteAddAction: TAction;
149     FavoriteArrangeAction: TAction;
150     MoveToAction: TAction;
151     BrowserTabVisibleAction: TAction;
152     BrowserTabTopAction: TAction;
153     BrowserTabBottomAction: TAction;
154     BrowserTabTabStyleAction: TAction;
155     BrowserTabButtonStyleAction: TAction;
156     BrowserTabFlatStyleAction: TAction;
157     GikoHelpAction: TAction;
158     KotehanAction: TAction;
159     ToolBarSettingAction: TAction;
160     SelectResAction: TAction;
161     AllResAction: TAction;
162     EditNGAction: TAction;
163 h677 1.4 ReloadAction: TAction;
164 h677 1.6 GoFowardAction: TAction;
165     GoBackAction: TAction;
166     TreeSelectSearchBoardName: TAction;
167     FavoriteTreeViewRenameAction: TAction;
168     FavoriteTreeViewNewFolderAction: TAction;
169     FavoriteTreeViewDeleteAction: TAction;
170     FavoriteTreeViewBrowseFolderAction: TAction;
171     FavoriteTreeViewReloadAction: TAction;
172     FavoriteTreeViewURLCopyAction: TAction;
173     FavoriteTreeViewNameCopyAction: TAction;
174     FavoriteTreeViewNameURLCopyAction: TAction;
175     FavoriteTreeViewLogDeleteAction: TAction;
176     ResRangeAction: TAction;
177     ExportFavoriteFile: TFileSaveAs;
178     FavoriteTreeViewBrowseBoardAction: TAction;
179     FavoriteTreeViewBrowseThreadAction: TAction;
180     UpBoardAction: TAction;
181     KoreCopy: TAction;
182     TreeSelectNameCopy: TAction;
183 h677 1.4 SetFocusForBrowserAction: TAction;
184 h677 1.6 SetFocusForThreadListAction: TAction;
185     SetFocusForCabinetAction: TAction;
186     FileRun1: TFileRun;
187     ThreadlistMaxAndFocusAction: TAction;
188     BrowserMaxAndFocusAction: TAction;
189     SelectItemSaveForHTML: TAction;
190     SelectItemSaveForDat: TAction;
191     LogFolderOpenAction: TAction;
192     TabsSaveAction: TAction;
193     TabsOpenAction: TAction;
194     BrowsBoradHeadAction: TAction;
195     JumpToNumOfResAction: TAction;
196     FavoriteTreeViewCollapseAction: TAction;
197     RightTabCloseAction: TAction;
198     LeftTabCloseAction: TAction;
199     SameIDResAnchorAction: TAction;
200 h677 1.4 IndividualAbon1Action: TAction;
201 h677 1.6 IndividualAbon0Action: TAction;
202     AntiIndividualAbonAction: TAction;
203     AntiIndividualAbonDlgAction: TAction;
204     IndividualAbonID1Action: TAction;
205     IndividualAbonID0Action: TAction;
206     MuteAction: TAction;
207     SortActiveColumnAction: TAction;
208     SortNextColumnAction: TAction;
209     SortPrevColumnAction: TAction;
210     BeLogInOutAction: TAction;
211     UnSelectedListViewAction: TAction;
212     WikiFAQWebPageAction: TAction;
213     ToobarImageList: TImageList;
214 h677 1.19 SaveDialog: TSaveDialog;
215 h677 1.25 ThreadSizeCalcForFileAction: TAction;
216 h677 1.31 SetInputAssistAction: TAction;
217 h677 1.32 OpenFindDialogAction: TAction;
218 h677 1.35 ArchiveItemAction: TAction;
219     LiveItemAction: TAction;
220 h677 1.36 FavoriteTreeViewItemNameCopyAction: TAction;
221 h677 1.41 CloseAllEditorAction: TAction;
222 h677 1.6 procedure EditNGActionExecute(Sender: TObject);
223     procedure ReloadActionExecute(Sender: TObject);
224     procedure GoFowardActionExecute(Sender: TObject);
225     procedure GoBackActionExecute(Sender: TObject);
226     procedure MoveToActionExecute(Sender: TObject);
227     procedure FavoriteAddActionExecute(Sender: TObject);
228 h677 1.4 procedure FavoriteArrangeActionExecute(Sender: TObject);
229 h677 1.6 procedure FavoriteTreeViewCollapseActionExecute(Sender: TObject);
230     procedure FavoriteTreeViewRenameActionExecute(Sender: TObject);
231     procedure FavoriteTreeViewNewFolderActionExecute(Sender: TObject);
232     procedure FavoriteTreeViewDeleteActionExecute(Sender: TObject);
233     procedure FavoriteTreeViewBrowseFolderActionExecute(Sender: TObject);
234     procedure FavoriteTreeViewReloadActionExecute(Sender: TObject);
235     procedure FavoriteTreeViewURLCopyActionExecute(Sender: TObject);
236     procedure FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
237     procedure FavoriteTreeViewNameURLCopyActionExecute(Sender: TObject);
238     procedure FavoriteTreeViewLogDeleteActionExecute(Sender: TObject);
239     procedure FavoriteTreeViewBrowseThreadActionExecute(Sender: TObject);
240     procedure OnlyAHundredResActionExecute(Sender: TObject);
241     procedure OnlyKokoResActionExecute(Sender: TObject);
242     procedure OnlyNewResActionExecute(Sender: TObject);
243     procedure BrowserMaxActionExecute(Sender: TObject);
244     procedure BrowserMinActionExecute(Sender: TObject);
245     procedure ScrollTopActionExecute(Sender: TObject);
246     procedure ScrollLastActionExecute(Sender: TObject);
247     procedure ScrollNewActionExecute(Sender: TObject);
248 h677 1.4 procedure ScrollKokoActionExecute(Sender: TObject);
249 h677 1.6 procedure ScrollKokoActionUpdate(Sender: TObject);
250     procedure EditorActionExecute(Sender: TObject);
251     procedure IEActionExecute(Sender: TObject);
252     procedure ShowThreadActionExecute(Sender: TObject);
253     procedure ShowBoardActionExecute(Sender: TObject);
254     procedure URLCopyActionExecute(Sender: TObject);
255     procedure NameCopyActionExecute(Sender: TObject);
256     procedure NameURLCopyActionExecute(Sender: TObject);
257     procedure ItemReloadActionExecute(Sender: TObject);
258     procedure BrowserTabCloseActionExecute(Sender: TObject);
259     procedure BrowserTabCloseActionUpdate(Sender: TObject);
260     procedure NotSelectTabCloseActionExecute(Sender: TObject);
261     procedure NotSelectTabCloseActionUpdate(Sender: TObject);
262     procedure AllTabCloseActionExecute(Sender: TObject);
263     procedure ActiveLogDeleteActionExecute(Sender: TObject);
264     procedure LeftmostTabSelectActionExecute(Sender: TObject);
265     procedure LeftmostTabSelectActionUpdate(Sender: TObject);
266     procedure LeftTabSelectActionExecute(Sender: TObject);
267     procedure RightTabSelectActionExecute(Sender: TObject);
268 h677 1.4 procedure RightTabSelectActionUpdate(Sender: TObject);
269 h677 1.6 procedure RightmostTabSelectActionExecute(Sender: TObject);
270     procedure ThreadFavoriteAddActionExecute(Sender: TObject);
271     procedure ThreadFavoriteAddActionUpdate(Sender: TObject);
272     procedure SelectResActionExecute(Sender: TObject);
273     procedure AllResActionExecute(Sender: TObject);
274     procedure ResRangeActionExecute(Sender: TObject);
275     procedure UpBoardActionExecute(Sender: TObject);
276     procedure JumpToNumOfResActionExecute(Sender: TObject);
277     procedure RightTabCloseActionExecute(Sender: TObject);
278     procedure RightTabCloseActionUpdate(Sender: TObject);
279     procedure LeftTabCloseActionExecute(Sender: TObject);
280     procedure DataModuleCreate(Sender: TObject);
281     procedure SearchActionExecute(Sender: TObject);
282     procedure OptionActionExecute(Sender: TObject);
283     procedure RoundActionExecute(Sender: TObject);
284     procedure KeySettingActionExecute(Sender: TObject);
285     procedure KotehanActionExecute(Sender: TObject);
286     procedure ToolBarSettingActionExecute(Sender: TObject);
287     procedure MuteActionExecute(Sender: TObject);
288     procedure TreeSelectBoradReloadExecute(Sender: TObject);
289     procedure TreeSelectThreadReloadExecute(Sender: TObject);
290     procedure TreeSelectURLCopyExecute(Sender: TObject);
291     procedure TreeSelectNameURLCopyExecute(Sender: TObject);
292     procedure TreeSelectFavoriteAddActionExecute(Sender: TObject);
293     procedure TreeSelectSearchBoardNameExecute(Sender: TObject);
294     procedure TreeSelectNameCopyExecute(Sender: TObject);
295     procedure LoginActionExecute(Sender: TObject);
296     procedure NewBoardActionExecute(Sender: TObject);
297     procedure LogDeleteActionExecute(Sender: TObject);
298     procedure LogDeleteActionUpdate(Sender: TObject);
299     procedure SelectTextClearActionExecute(Sender: TObject);
300     procedure NameTextClearActionExecute(Sender: TObject);
301     procedure MailTextClearActionExecute(Sender: TObject);
302     procedure ExitActionExecute(Sender: TObject);
303     procedure ExportFavoriteFileBeforeExecute(Sender: TObject);
304     procedure ExportFavoriteFileAccept(Sender: TObject);
305     procedure SelectItemSaveForHTMLExecute(Sender: TObject);
306     procedure SelectItemSaveForDatExecute(Sender: TObject);
307     procedure TabsSaveActionExecute(Sender: TObject);
308     procedure TabsOpenActionExecute(Sender: TObject);
309     procedure BeLogInOutActionExecute(Sender: TObject);
310     procedure BeLogInOutActionUpdate(Sender: TObject);
311     procedure KokomadeActionExecute(Sender: TObject);
312     procedure ZenbuActionExecute(Sender: TObject);
313     procedure KokoResActionExecute(Sender: TObject);
314     procedure KoreCopyExecute(Sender: TObject);
315     procedure SameIDResAnchorActionExecute(Sender: TObject);
316     procedure IndividualAbon1ActionExecute(Sender: TObject);
317     procedure IndividualAbon0ActionExecute(Sender: TObject);
318     procedure AntiIndividualAbonActionExecute(Sender: TObject);
319     procedure AntiIndividualAbonDlgActionExecute(Sender: TObject);
320     procedure IndividualAbonID1ActionExecute(Sender: TObject);
321     procedure IndividualAbonID0ActionExecute(Sender: TObject);
322     procedure GikoNaviWebPageActionExecute(Sender: TObject);
323 h677 1.7 procedure MonazillaWebPageActionExecute(Sender: TObject);
324     procedure BBS2chWebPageActionExecute(Sender: TObject);
325     procedure GikoFolderOpenActionExecute(Sender: TObject);
326     procedure AboutActionExecute(Sender: TObject);
327     procedure GikoHelpActionExecute(Sender: TObject);
328     procedure WikiFAQWebPageActionExecute(Sender: TObject);
329     procedure ListNumberVisibleActionExecute(Sender: TObject);
330     procedure UpFolderActionExecute(Sender: TObject);
331     procedure UpFolderActionUpdate(Sender: TObject);
332     procedure IconStyleExecute(Sender: TObject);
333     procedure AllItemActionExecute(Sender: TObject);
334     procedure LogItemActionExecute(Sender: TObject);
335     procedure NewItemActionExecute(Sender: TObject);
336     procedure ThreadRangeActionExecute(Sender: TObject);
337     procedure SelectItemActionExecute(Sender: TObject);
338     procedure ThreadEditorActionExecute(Sender: TObject);
339     procedure BoardIEActionExecute(Sender: TObject);
340     procedure SelectItemURLCopyActionExecute(Sender: TObject);
341     procedure SelectItemURLCopyActionUpdate(Sender: TObject);
342     procedure SelectItemNameCopyActionExecute(Sender: TObject);
343     procedure SelectItemNameCopyActionUpdate(Sender: TObject);
344     procedure SelectItemNameURLCopyActionExecute(Sender: TObject);
345     procedure SelectListReloadActionExecute(Sender: TObject);
346     procedure SelectListReloadActionUpdate(Sender: TObject);
347     procedure SelectThreadReloadActionExecute(Sender: TObject);
348     procedure SelectThreadReloadActionUpdate(Sender: TObject);
349     procedure SelectReservActionExecute(Sender: TObject);
350     procedure SelectReservActionUpdate(Sender: TObject);
351     procedure SelectNewRoundNameExecute(Sender: TObject);
352     procedure SelectDeleteRoundExecute(Sender: TObject);
353     procedure BoardFavoriteAddActionExecute(Sender: TObject);
354     procedure BoardFavoriteAddActionUpdate(Sender: TObject);
355     procedure LogFolderOpenActionExecute(Sender: TObject);
356     procedure LogFolderOpenActionUpdate(Sender: TObject);
357     procedure BrowsBoradHeadActionExecute(Sender: TObject);
358     procedure SortActiveColumnActionExecute(Sender: TObject);
359 h677 1.11 procedure SortNextColumnActionExecute(Sender: TObject);
360     procedure SortPrevColumnActionExecute(Sender: TObject);
361     procedure StdToolBarVisibleActionExecute(Sender: TObject);
362     procedure AddressBarVisibleActionExecute(Sender: TObject);
363     procedure LinkBarVisibleActionExecute(Sender: TObject);
364     procedure ListToolBarVisibleActionExecute(Sender: TObject);
365     procedure ListNameBarVisibleActionExecute(Sender: TObject);
366     procedure BrowserToolBarVisibleActionExecute(Sender: TObject);
367     procedure BrowserNameBarVisibleActionExecute(Sender: TObject);
368     procedure MsgBarVisibleActionExecute(Sender: TObject);
369     procedure MsgBarCloseActionExecute(Sender: TObject);
370     procedure StatusBarVisibleActionExecute(Sender: TObject);
371     procedure CabinetBBSActionExecute(Sender: TObject);
372     procedure CabinetHistoryActionExecute(Sender: TObject);
373     procedure CabinetFavoriteActionExecute(Sender: TObject);
374     procedure CabinetVisibleActionExecute(Sender: TObject);
375     procedure CabinetCloseActionExecute(Sender: TObject);
376     procedure LargeIconActionExecute(Sender: TObject);
377     procedure SmallIconActionExecute(Sender: TObject);
378     procedure ListIconActionExecute(Sender: TObject);
379     procedure DetailIconActionExecute(Sender: TObject);
380     procedure StopActionExecute(Sender: TObject);
381     procedure ArrangeActionExecute(Sender: TObject);
382     procedure PaneInitActionExecute(Sender: TObject);
383     procedure BrowserTabVisibleActionExecute(Sender: TObject);
384     procedure BrowserTabTopActionExecute(Sender: TObject);
385     procedure BrowserTabBottomActionExecute(Sender: TObject);
386     procedure BrowserTabTabStyleActionExecute(Sender: TObject);
387     procedure BrowserTabButtonStyleActionExecute(Sender: TObject);
388     procedure BrowserTabFlatStyleActionExecute(Sender: TObject);
389     procedure SetFocusForBrowserActionExecute(Sender: TObject);
390     procedure SetFocusForBrowserActionUpdate(Sender: TObject);
391     procedure SetFocusForThreadListActionExecute(Sender: TObject);
392     procedure SetFocusForCabinetActionExecute(Sender: TObject);
393     procedure SetFocusForCabinetActionUpdate(Sender: TObject);
394     procedure ThreadlistMaxAndFocusActionExecute(Sender: TObject);
395     procedure BrowserMaxAndFocusActionExecute(Sender: TObject);
396     procedure UnSelectedListViewActionExecute(Sender: TObject);
397     procedure KidokuActionExecute(Sender: TObject);
398     procedure MidokuActionExecute(Sender: TObject);
399     procedure AllSelectActionExecute(Sender: TObject);
400     procedure AllSelectActionUpdate(Sender: TObject);
401 h677 1.25 procedure ThreadSizeCalcForFileActionExecute(Sender: TObject);
402 h677 1.31 procedure SetInputAssistActionExecute(Sender: TObject);
403 h677 1.32 procedure OpenFindDialogActionExecute(Sender: TObject);
404 h677 1.35 procedure ArchiveItemActionExecute(Sender: TObject);
405     procedure LiveItemActionExecute(Sender: TObject);
406 h677 1.36 procedure FavoriteTreeViewItemNameCopyActionExecute(Sender: TObject);
407 h677 1.41 procedure CloseAllEditorActionExecute(Sender: TObject);
408     procedure CloseAllEditorActionUpdate(Sender: TObject);
409 h677 1.1 private
410     { Private 絎h? }
411 h677 1.17 procedure ClearResFilter;
412     procedure SetResRange(range: Integer);
413 h677 1.18 procedure SetThreadAreaHorNormal;
414     procedure SetThreadAreaHorizontal(gls : TGikoListState);
415     procedure SetThreadAreaVerNormal;
416     procedure SetThreadAreaVertical(gls : TGikoListState);
417     procedure SetThreadReadProperty(read: Boolean);
418 h677 1.19 procedure SelectThreadSaveToFile(dat: Boolean);
419 h677 1.24 function GetSortProperties(List: TObject;var vSortOrder: Boolean): Boolean;
420 h677 1.25 procedure RecalcThreadSize(limit : Integer);
421 h677 1.35 procedure ClearSelectComboBox;
422 h677 1.41 procedure ClearMailAllEditor();
423     procedure ClearNameTextAllEditor();
424 h677 1.1 public
425     { Public 絎h? }
426 h677 1.23 procedure RepaintStatusBar;
427 h677 1.41 function EditorFormExists(): boolean;
428 h677 1.42 procedure GetTabURLs(AStringList: TStringList);
429     procedure OpenURLs(AStringList: TStringList);
430 h677 1.1 published
431     { Published 絎h? }
432 yoffy 1.9 //! TAction??etActiveContent??nil篁ュ??ф???鴻??????
433 h677 1.1 procedure DependActiveCntentActionUpdate(Sender: TObject);
434 yoffy 1.9 //! TAction??etActiveContent??nil篁ュ????ゃ???違?????c???????????鴻??????
435 h677 1.2 procedure DependActiveCntentLogActionUpdate(Sender: TObject);
436 yoffy 1.9 //! TAction??ctiveList??TBoard?ф???鴻??????
437 h677 1.2 procedure DependActiveListTBoardActionUpdate(Sender: TObject);
438 h677 1.1 end;
439    
440     var
441     GikoDM: TGikoDM;
442    
443 h677 1.11
444 h677 1.1 implementation
445    
446     uses
447 h677 1.19 Windows, Math, Clipbrd,
448 h677 1.3 Giko, GikoSystem, GikoUtil, BoardGroup,
449 h677 1.18 FavoriteArrange, Favorite, MojuUtils,
450 h677 1.4 Editor, ListSelect, Search, Option, Round,
451     KeySetting, Gesture, Kotehan, ToolBarSetting,
452 h677 1.6 ToolBarUtil, NewBoard, HTMLCreate, IndividualAbon,
453 h677 1.17 GikoBayesian, About, ShellAPI,
454 h677 1.8 RoundName, RoundData, Menus, ListViewUtils,
455 h677 1.40 ThreadControl, GikoMessage, InputAssist,
456 h677 1.41 DefaultFileManager, Forms;
457 h677 1.1
458 h677 1.38 const
459     MSG_ERROR : string = '??????#39;;
460 h677 1.41
461 h677 1.1 {$R *.dfm}
462     // *************************************************************************
463 yoffy 1.9 //! TAction??etActiveContent??nil篁ュ??ф???鴻??????
464 h677 1.2 // *************************************************************************
465     procedure TGikoDM.DependActiveCntentActionUpdate(Sender: TObject);
466     begin
467     TAction(Sender).Enabled := (GikoForm.GetActiveContent <> nil);
468     end;
469     // *************************************************************************
470 yoffy 1.9 //! TAction??etActiveContent??nil篁ュ????ゃ???違?????c??????
471 h677 1.2 // *************************************************************************
472     procedure TGikoDM.DependActiveCntentLogActionUpdate(Sender: TObject);
473     begin
474     TAction(Sender).Enabled := (GikoForm.GetActiveContent <> nil)
475     and (GikoForm.GetActiveContent.IsLogFile);
476     end;
477     // *************************************************************************
478 yoffy 1.9 //! TAction??ctiveList??TBoard?ф???鴻??????
479 h677 1.2 // *************************************************************************
480     procedure TGikoDM.DependActiveListTBoardActionUpdate(Sender: TObject);
481     begin
482     TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard);
483     end;
484     // *************************************************************************
485 yoffy 1.9 //! NG???若??膩???
486 h677 1.1 // *************************************************************************
487     procedure TGikoDM.EditNGActionExecute(Sender: TObject);
488     begin
489     //?????鴻?????∫?d??????????≪??????G???若?????<?ゃ???????若????/span>
490     GikoSys.FAbon.EditNGwords;
491     end;
492     // *************************************************************************
493 yoffy 1.9 //! NG???若??茯??粋昭?随???茯??粋昭?随?
494 h677 1.1 // *************************************************************************
495     procedure TGikoDM.ReloadActionExecute(Sender: TObject);
496     begin
497     //?????若????絎?茵???紊掩?????????<???祉?若?後?阪??
498     if GikoSys.FAbon.ReLoadFromNGwordFile =false then begin
499 h677 1.38 MsgBox(GikoForm.Handle, 'NG???若?????<?ゃ??????茯??粋昭?帥??け?????障????',
500     MSG_ERROR, MB_OK or MB_ICONEXCLAMATION);
501 h677 1.1 end else begin
502     //???????帥????????祉??荐??
503     GikoForm.RepaintAllTabsBrowser();
504     end;
505     end;
506     // *************************************************************************
507 yoffy 1.9 //! NG???若??茯??粋昭?随?筝??ゅ???鐚?
508 h677 1.1 // *************************************************************************
509     procedure TGikoDM.GoFowardActionExecute(Sender: TObject);
510     begin
511     //筝??ゅ???????粋昭?帥??紊掩?????????<???祉?若?後?阪??
512     if GikoSys.FAbon.GoBack =false then begin
513 h677 1.38 MsgBox(GikoForm.Handle, '筝??ゅ?????G???若?????<?ゃ??????粋昭?帥??け?????障????',
514     MSG_ERROR, MB_OK or MB_ICONEXCLAMATION);
515 h677 1.1 end else begin
516     //?鴻???若?帥?鴻??;腓冴??????NG???若?????<?ゃ???????贋??/span>
517 h677 1.16 RepaintStatusBar;
518 h677 1.1 //???????帥????????祉??荐??
519     GikoForm.RepaintAllTabsBrowser();
520     end;
521     end;
522     // *************************************************************************
523 yoffy 1.9 //! NG???若??茯??粋昭?随?筝??ゅ??鐚?
524 h677 1.1 // *************************************************************************
525     procedure TGikoDM.GoBackActionExecute(Sender: TObject);
526     begin
527     //筝??ゅ???????粋昭?帥??紊掩?????????<???祉?若?後?阪??
528     if GikoSys.FAbon.GoForward =false then begin
529 h677 1.38 MsgBox(GikoForm.Handle, '筝??ゅ????G???若?????<?ゃ??????粋昭?帥??け?????障????',
530     MSG_ERROR, MB_OK or MB_ICONEXCLAMATION);
531 h677 1.1 end else begin
532 h677 1.16 //?鴻???若?帥?鴻??;腓冴??????NG???若?????<?ゃ???????贋??/span>
533     RepaintStatusBar;
534     //???????帥????????祉??荐??
535 h677 1.1 GikoForm.RepaintAllTabsBrowser();
536     end;
537     end;
538     // *************************************************************************
539 h677 1.16 //! NG???若????紊??眼????緇????鴻???若?帥?鴻???若???贋?医????
540     // *************************************************************************
541     procedure TGikoDM.RepaintStatusBar;
542     var
543     s : String;
544     begin
545     //?鴻???若?帥?鴻??;腓冴??????NG???若?????<?ゃ???????贋??/span>
546     s := GikoSys.FAbon.NGwordname;
547 h677 1.23 GikoForm.StatusBar.Panels.Items[GiKo.NGWORDNAME_PANEL].Text := s;
548 h677 1.16 //?鴻???若?帥?鴻??;腓冴?泣?ゃ?冴?????泣?ゃ??/span>
549 h677 1.23 GikoForm.StatusBar.Panels[GiKo.NGWORDNAME_PANEL].Width
550     := Max(GikoForm.StatusBar.Canvas.TextWidth(s), 100);
551 h677 1.16 GikoForm.StatusBarResize(nil);
552     end;
553     // *************************************************************************
554 yoffy 1.9 //! ?≪?????鴻???若??;腓冴?????????≪?????鴻?悟Щ??????
555 h677 1.1 // *************************************************************************
556     procedure TGikoDM.MoveToActionExecute(Sender: TObject);
557     var
558     URL: string;
559     idx: Integer;
560     begin
561     //?≪?????鴻?潟?潟?????????鴻????URL????緇?
562     URL := Trim(GikoForm.AddressComboBox.Text);
563     //URL??Щ??
564     GikoForm.MoveToURL(URL);
565     //篁ヤ???絮ユ???????
566     idx := GikoForm.AddressComboBox.Items.IndexOf(URL);
567     if idx = -1 then begin
568     GikoForm.AddressComboBox.Items.Insert(0, URL);
569     if GikoForm.AddressComboBox.Items.Count > GikoSys.Setting.AddressHistoryCount then
570     GikoForm.AddressComboBox.Items.Delete(GikoForm.AddressComboBox.Items.Count - 1);
571     end else begin
572     GikoForm.AddressComboBox.Items.Delete(idx);
573     GikoForm.AddressComboBox.Items.Insert(0, URL);
574     end;
575     end;
576     // *************************************************************************
577 yoffy 1.9 //! ??羂????ャ????申?????ゃ?≪???違??????span>
578 h677 1.1 // *************************************************************************
579     procedure TGikoDM.FavoriteAddActionExecute(Sender: TObject);
580     begin
581     GikoForm.ShowFavoriteAddDialog(GikoForm.GetActiveContent);
582     end;
583     // *************************************************************************
584 yoffy 1.9 //! ??羂????ャ?????雁?????ゃ?≪???違??????span>
585 h677 1.1 // *************************************************************************
586     procedure TGikoDM.FavoriteArrangeActionExecute(Sender: TObject);
587     var
588     Dlg: TFavoriteArrangeDialog;
589     begin
590 h677 1.12 Dlg := TFavoriteArrangeDialog.Create(GikoForm);
591 h677 1.1 try
592     Dlg.ShowModal;
593     finally
594     Dlg.Release;
595     end;
596     //???潟?????若???贋?違??篌?????
597     PostMessage( GikoForm.Handle, USER_SETLINKBAR, 0, 0 );
598     end;
599     // *************************************************************************
600 yoffy 1.9 //! ?????若????????????
601 h677 1.1 // *************************************************************************
602     procedure TGikoDM.FavoriteTreeViewCollapseActionExecute(Sender: TObject);
603     var
604     node : TTreeNode;
605     begin
606     node := GikoForm.FavoriteTreeView.Items.GetFirstNode;
607     try
608     //???若????膓???????????若????膰????????
609     while node <> nil do begin
610     if node.HasChildren then
611     node.Expanded := False;
612     node := node.GetNext;
613     end;
614     except
615     end;
616     end;
617 h677 1.2 // *************************************************************************
618 yoffy 1.9 //! ??羂????ャ??????????膩???????
619 h677 1.2 // *************************************************************************
620     procedure TGikoDM.FavoriteTreeViewRenameActionExecute(Sender: TObject);
621     var
622     node : TTreeNode;
623     begin
624    
625     if GikoForm.ClickNode = nil then
626     Exit;
627     if GikoForm.ClickNode.IsFirstNode then
628     Exit;
629     if GikoForm.ClickNode.Text = Favorite.FAVORITE_LINK_NAME then
630     Exit;
631     GikoForm.FavoriteTreeView.ReadOnly := False;
632     if (GikoForm.TreeType = gttFavorite) and (GikoForm.CabinetPanel.Visible) then begin
633     node := GikoForm.ClickNode.Parent;
634     while node <> nil do begin
635     node.Expanded := True;
636     node := node.Parent;
637     end;
638     GikoForm.ClickNode.EditText;
639     end else begin
640     GikoForm.ClickNode.Text := InputBox( '?????????#39;, '??羂????ャ?????違???????????ュ?????????????', GikoForm.ClickNode.Text );
641     end;
642 h677 1.22 //?贋?違????????????????
643     FavoriteDM.Modified := true;
644 h677 1.2 GikoForm.SetLinkBar;
645     end;
646     // *************************************************************************
647 yoffy 1.9 //! ?違?????羂????ャ??????????????篏???????
648 h677 1.2 // *************************************************************************
649     procedure TGikoDM.FavoriteTreeViewNewFolderActionExecute(Sender: TObject);
650     var
651     NewFavFolder: TFavoriteFolder;
652     Node: TTreeNode;
653     begin
654    
655     if GikoForm.ClickNode = nil then
656     Exit;
657    
658     try
659     if not (TObject(GikoForm.ClickNode.Data) is TFavoriteFolder) then begin
660     GikoForm.FavoriteTreeView.Selected := GikoForm.ClickNode.Parent;
661     GikoForm.ClickNode := GikoForm.ClickNode.Parent;
662     end;
663    
664     NewFavFolder := TFavoriteFolder.Create;
665     Node := GikoForm.FavoriteTreeView.Items.AddChildObject(GikoForm.ClickNode, '?違????????????', NewFavFolder);
666     Node.ImageIndex := 14;
667     Node.SelectedIndex := 14;
668     // FClickNode.Selected.Expanded := True;
669     GikoForm.FavoriteTreeView.Selected := Node;
670     GikoForm.ClickNode := Node;
671 h677 1.22 //?贋?違????????????????
672     FavoriteDM.Modified := true;
673 h677 1.2 FavoriteTreeViewRenameAction.Execute;
674     finally
675     end;
676    
677     end;
678     // *************************************************************************
679 yoffy 1.9 //! ??????羂????ャ???????ゃ????
680 h677 1.2 // *************************************************************************
681     procedure TGikoDM.FavoriteTreeViewDeleteActionExecute(Sender: TObject);
682     const
683     DEL_LINK_MSG = '?????潟?????????潟?????主???????????с???????ゃ?????????????с????鐚?';
684     DEL_MSG = '??^0???????ゃ???障?????????????с????鐚?';
685     DEL_TITLE = '???ょ∈茯?';
686     begin
687    
688     if GikoForm.ClickNode = nil then
689     Exit;
690     if GikoForm.ClickNode.IsFirstNode then
691     Exit;
692     if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then begin
693     if GikoForm.ClickNode.Text = Favorite.FAVORITE_LINK_NAME then begin
694     if MsgBox(GikoForm.Handle, DEL_LINK_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
695     Exit;
696     end else begin
697     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
698     Exit;
699     end;
700     end;
701    
702     GikoForm.ClickNode.Delete;
703 h677 1.22 //?贋?違????????????????
704     FavoriteDM.Modified := true;
705 h677 1.2
706     GikoForm.SetLinkBar;
707    
708     end;
709     // *************************************************************************
710 yoffy 1.9 //! ???????????????ャ?c????????羂????ャ????????????span>
711 h677 1.2 // *************************************************************************
712     procedure TGikoDM.FavoriteTreeViewBrowseFolderActionExecute(
713     Sender: TObject);
714     begin
715     GikoForm.FavoriteBrowseFolder( GikoForm.ClickNode );
716     end;
717     // *************************************************************************
718 yoffy 1.9 //! ?御??????????????羂????ャ?????????潟???若??????
719 h677 1.2 // *************************************************************************
720     procedure TGikoDM.FavoriteTreeViewReloadActionExecute(Sender: TObject);
721     var
722     FavThread: TFavoriteThreadItem;
723     FavBoard: TFavoriteBoardItem;
724     shiftDown: Boolean;
725     begin
726 h677 1.29 if (GikoForm.ClickNode = nil) then Exit;
727 h677 1.2
728     shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
729    
730 h677 1.29 if TObject( GikoForm.ClickNode.Data ) is TFavoriteThreadItem then begin
731     FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
732     if FavThread.Item <> nil then
733     GikoForm.DownloadContent(FavThread.Item, shiftDown);
734     end else if TObject( GikoForm.ClickNode.Data ) is TFavoriteBoardItem then begin
735     FavBoard := TFavoriteBoardItem( GikoForm.ClickNode.Data );
736     GikoForm.DownloadList(FavBoard.Item, shiftDown);
737 h677 1.2 end;
738    
739     end;
740     // *************************************************************************
741 h677 1.36 //! ?御??????????????羂????ャ????RL???潟???若????
742 h677 1.2 // *************************************************************************
743     procedure TGikoDM.FavoriteTreeViewURLCopyActionExecute(Sender: TObject);
744     begin
745    
746     if GikoForm.ClickNode = nil then Exit;
747    
748 h677 1.16 if (TObject(GikoForm.ClickNode.Data) is TFavoriteItem) then begin
749     Clipboard.AsText := TFavoriteItem( GikoForm.ClickNode.Data ).URL + #13#10;
750 h677 1.2 end;
751     end;
752     // *************************************************************************
753 h677 1.36 //! ?御??????????????羂????ャ???????????潟???若????
754 h677 1.2 // *************************************************************************
755     procedure TGikoDM.FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
756     begin
757    
758     if GikoForm.ClickNode = nil then Exit;
759    
760 h677 1.16 if (TObject(GikoForm.ClickNode.Data) is TFavoriteItem) then begin
761     Clipboard.AsText :=
762     TFavoriteItem(GikoForm.ClickNode.Data).GetItemTitle + #13#10;
763 h677 1.36 end else begin
764     Clipboard.AsText :=
765     GikoForm.ClickNode.Text + #13#10;
766    
767 h677 1.2 end;
768     end;
769     // *************************************************************************
770 h677 1.36 //! ?御??????????????羂????ャ??????????RL???潟???若????
771 h677 1.2 // *************************************************************************
772     procedure TGikoDM.FavoriteTreeViewNameURLCopyActionExecute(
773     Sender: TObject);
774     var
775 h677 1.16 favItem : TFavoriteItem;
776 h677 1.2 begin
777    
778     if GikoForm.ClickNode = nil then Exit;
779    
780 h677 1.16 if (TObject(GikoForm.ClickNode.Data) is TFavoriteItem) then begin
781     favItem := TFavoriteItem(GikoForm.ClickNode.Data);
782     Clipboard.AsText := favItem.GetItemTitle + #13#10 +
783     favItem.URL + #13#10;
784 h677 1.2 end;
785    
786     end;
787     // *************************************************************************
788 h677 1.36 //! ?御??????????????羂????ャ???鴻???????????ゃ????
789 h677 1.2 // *************************************************************************
790     procedure TGikoDM.FavoriteTreeViewLogDeleteActionExecute(Sender: TObject);
791     const
792     DEL_MSG = '??^0???????違?????ゃ???障?????????????с????鐚?';
793     DEL_TITLE = '???ょ∈茯?';
794     var
795     ThreadItem: TThreadItem;
796     FavThread: TFavoriteThreadItem;
797     begin
798    
799     if GikoForm.ClickNode = nil then Exit;
800     if not (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then Exit;
801    
802     FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
803     ThreadItem := FavThread.Item;
804    
805     try
806     if GikoSys.Setting.DeleteMsg then begin
807     if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
808     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
809     Exit;
810     end;
811    
812     GikoForm.DeleteHistory(ThreadItem);
813     GikoForm.DeleteTab(ThreadItem);
814     ThreadItem.DeleteLogFile;
815    
816     GikoForm.ListView.Refresh;
817     finally
818     end;
819    
820     end;
821     // *************************************************************************
822 yoffy 1.9 //! ?上??;腓冴?????????鴻???????????????吟?ц;腓冴????
823 h677 1.2 // *************************************************************************
824     procedure TGikoDM.FavoriteTreeViewBrowseThreadActionExecute(
825     Sender: TObject);
826     var
827     threadItem : TThreadItem;
828     begin
829    
830     if GikoForm.ClickNode = nil then Exit;
831    
832     if (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then begin
833    
834     threadItem := TFavoriteThreadItem( GikoForm.ClickNode.Data ).Item;
835     if threadItem = nil then
836     Exit;
837     GikoSys.OpenBrowser( threadItem.URL, gbtAuto );
838    
839     end;
840     end;
841 h677 1.17 //! ???鴻???莨若?帥???c???帥?若??腥冴??????
842     procedure TGikoDM.ClearResFilter;
843     var
844     FilterList : TStringList;
845     begin
846     // ???c???炊??絖?????腥冴??????
847     FilterList := TStringList.Create;
848     try
849     GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
850     GikoSys.FSelectResFilter.Reverse := False;
851     finally
852     FilterList.Free;
853     end;
854     GikoForm.SelectResWord := '';
855     end;
856     // *************************************************************************
857     //! ???鴻??;腓榊??蚊??荐??????
858     // *************************************************************************
859     procedure TGikoDM.SetResRange(range: Integer);
860     begin
861     if GikoSys.ResRange <> range then begin
862     GikoSys.ResRange := range;
863     // ???c???炊??絖?????腥冴??????
864     ClearResFilter;
865     GikoForm.RepaintAllTabsBrowser();
866     end;
867     end;
868 h677 1.3 // *************************************************************************
869 yoffy 1.9 //! ????00???鴻???粋;腓?/span>
870 h677 1.3 // *************************************************************************
871     procedure TGikoDM.OnlyAHundredResActionExecute(Sender: TObject);
872     begin
873     if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
874     and (GikoForm.ActiveContent.Browser.Busy) then Exit;
875    
876     GikoForm.ResRangeMenuSelect := 100;
877     OnlyAHundredResAction.Checked := True;
878 h677 1.17 //??茵?ず膀??蚊??荐??????
879     SetResRange(100);
880 h677 1.3 end;
881     // *************************************************************************
882 yoffy 1.9 //! ??????鴻???粋;腓?/span>
883 h677 1.3 // *************************************************************************
884     procedure TGikoDM.OnlyKokoResActionExecute(Sender: TObject);
885     begin
886     if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
887     and (GikoForm.ActiveContent.Browser.Busy) then Exit;
888    
889     GikoForm.ResRangeMenuSelect := Ord( grrKoko );
890     OnlyKokoResAction.Checked := True;
891    
892 h677 1.17 //??茵?ず膀??蚊??荐??????
893     SetResRange(Ord( grrKoko ));
894 h677 1.3 end;
895     // *************************************************************************
896 yoffy 1.9 //! ?亥?????鴻???粋;腓?/span>
897 h677 1.3 // *************************************************************************
898     procedure TGikoDM.OnlyNewResActionExecute(Sender: TObject);
899     begin
900     if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
901     and (GikoForm.ActiveContent.Browser.Busy) then Exit;
902    
903     GikoForm.ResRangeMenuSelect := Ord( grrNew );
904     OnlyNewResAction.Checked := True;
905    
906 h677 1.17 //??茵?ず膀??蚊??荐??????
907     SetResRange(Ord( grrNew ));
908 h677 1.3 end;
909     // *************************************************************************
910 h677 1.18 //! ?鴻??????茵?ず?????∫??絽梧;腓冴?????? 羈?ListOrientation = gloHorizontal??
911     // *************************************************************************
912     procedure TGikoDM.SetThreadAreaHorNormal;
913     begin
914     //??絽梧;腓冴??????
915     GikoForm.ViewPanel.Width := GikoForm.BrowserSizeWidth;
916     BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
917     BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
918     GikoSys.Setting.ListWidthState := glsNormal;
919     end;
920     // *************************************************************************
921     //! ?鴻??????茵?ず?????∽??紊???絨頫?ず?????? 羈?ListOrientation = gloHorizontal??
922     // *************************************************************************
923     procedure TGikoDM.SetThreadAreaHorizontal(gls : TGikoListState);
924     begin
925     if GikoSys.Setting.ListWidthState = glsNormal then
926     GikoForm.BrowserSizeWidth := GikoForm.ViewPanel.Width;
927     //??紊ц;腓?/span>
928     if (gls = glsMax) then begin
929     GikoForm.ViewPanel.Width := 1;
930     BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
931     BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
932     GikoSys.Setting.ListWidthState := glsMax;
933     end else if (gls = glsMin) then begin
934     GikoForm.ViewPanel.Width := GikoForm.ThreadMainPanel.Width - 80;
935     BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
936     BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
937     GikoSys.Setting.ListWidthState := glsMin;
938     end;
939     end;
940     // *************************************************************************
941     //! ?鴻??????茵?ず?????∫??絽梧;腓冴?????? 羈?ListOrientation = gloVertical
942     // *************************************************************************
943     procedure TGikoDM.SetThreadAreaVerNormal;
944     begin
945     //??絽梧;腓冴??????
946     GikoForm.ViewPanel.Height := GikoForm.BrowserSizeHeight;
947     BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
948     BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
949     GikoSys.Setting.ListHeightState := glsNormal;
950     end;
951     // *************************************************************************
952     //! ?鴻??????茵?ず?????∽??紊???絨頫?ず?????? 羈?ListOrientation = gloVertical
953     // *************************************************************************
954     procedure TGikoDM.SetThreadAreaVertical(gls : TGikoListState);
955     begin
956     if GikoSys.Setting.ListHeightState = glsNormal then
957     GikoForm.BrowserSizeHeight := GikoForm.ViewPanel.Height;
958     if (gls = glsMin) then begin
959     GikoForm.ViewPanel.Height := GikoForm.ThreadMainPanel.Height - GikoForm.BrowserCoolBar.Height - 7;
960     BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
961     BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
962     GikoSys.Setting.ListHeightState := glsMin;
963     end else if (gls = glsMax) then begin
964     GikoForm.ViewPanel.Height := 1;
965     BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
966     BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
967     GikoSys.Setting.ListHeightState := glsMax;
968     end;
969     end;
970     // *************************************************************************
971 yoffy 1.9 //! ?鴻??????茵?ず?????≪??紊с???頫?ず????
972 h677 1.3 // *************************************************************************
973     procedure TGikoDM.BrowserMaxActionExecute(Sender: TObject);
974     begin
975     if GikoSys.Setting.ListOrientation = gloHorizontal then begin
976     case GikoSys.Setting.ListWidthState of
977     glsMax: begin
978     //??絽梧;腓冴??????
979 h677 1.18 SetThreadAreaHorNormal;
980 h677 1.3 end;
981     glsMin, glsNormal: begin
982     //??紊ц;腓冴??????
983 h677 1.18 SetThreadAreaHorizontal(glsMax);
984 h677 1.3 end;
985     end;
986     end else begin
987     case GikoSys.Setting.ListHeightState of
988     glsMax: begin
989     //??絽梧;腓冴??????
990 h677 1.18 SetThreadAreaVerNormal;
991 h677 1.3 end;
992     glsMin, glsNormal: begin
993     //??紊ц;腓冴??????
994 h677 1.18 SetThreadAreaVertical(glsMax);
995 h677 1.3 end;
996     end;
997     end;
998     end;
999     // *************************************************************************
1000 yoffy 1.9 //! ?鴻??????茵?ず?????≪??絨???頫?ず????
1001 h677 1.3 // *************************************************************************
1002     procedure TGikoDM.BrowserMinActionExecute(Sender: TObject);
1003     begin
1004     if GikoSys.Setting.ListOrientation = gloHorizontal then begin
1005     case GikoSys.Setting.ListWidthState of
1006     glsMax, glsNormal: begin
1007     //??絨頫?ず??????
1008 h677 1.18 SetThreadAreaHorizontal(glsMin);
1009 h677 1.3 end;
1010     glsMin: begin
1011     //??絽梧;腓冴??????
1012 h677 1.18 SetThreadAreaHorNormal;
1013 h677 1.3 end;
1014     end;
1015     end else begin
1016     case GikoSys.Setting.ListHeightState of
1017     glsMax, glsNormal: begin
1018     //??絨頫?ず??????
1019 h677 1.18 SetThreadAreaVertical(glsMin);
1020 h677 1.3 end;
1021     glsMin: begin
1022     //??絽梧;腓冴??????
1023 h677 1.18 SetThreadAreaVerNormal;
1024 h677 1.3 end;
1025     end;
1026     end;
1027     end;
1028     // *************************************************************************
1029 yoffy 1.9 //! ?上??;腓冴?????????鴻?????????????悟Щ??????
1030 h677 1.3 // *************************************************************************
1031     procedure TGikoDM.ScrollTopActionExecute(Sender: TObject);
1032     begin
1033     GikoForm.BrowserMovement('top');
1034     end;
1035     // *************************************************************************
1036 yoffy 1.9 //! ?上??;腓冴?????????鴻??????????緇??悟Щ??????
1037 h677 1.3 // *************************************************************************
1038     procedure TGikoDM.ScrollLastActionExecute(Sender: TObject);
1039     begin
1040     GikoForm.BrowserMovement('bottom');
1041     end;
1042     // *************************************************************************
1043 yoffy 1.9 //! ?上??;腓冴?????????鴻?????????亥???悟Щ??????
1044 h677 1.3 // *************************************************************************
1045     procedure TGikoDM.ScrollNewActionExecute(Sender: TObject);
1046     begin
1047     GikoForm.BrowserMovement('new');
1048     end;
1049     // *************************************************************************
1050 yoffy 1.9 //! ?上??;腓冴?????????鴻?????????潟?潟?障?ц??????悟Щ??????
1051 h677 1.3 // *************************************************************************
1052     procedure TGikoDM.ScrollKokoActionExecute(Sender: TObject);
1053     begin
1054     GikoForm.BrowserMovement('koko');
1055     end;
1056     // *************************************************************************
1057 yoffy 1.9 //! ?上??;腓冴?????????鴻?????????潟?潟?障?ц??????悟Щ????????pdate?ゃ???潟??
1058 h677 1.3 // *************************************************************************
1059     procedure TGikoDM.ScrollKokoActionUpdate(Sender: TObject);
1060     begin
1061     ScrollKokoAction.Enabled := (GikoForm.GetActiveContent <> nil)
1062     and (GikoForm.GetActiveContent.IsLogFile)
1063     and (GikoForm.GetActiveContent.Kokomade <> -1);
1064     end;
1065     // *************************************************************************
1066 yoffy 1.9 //! ???号?吾??莨若?帥???c?潟??????茵?ず????
1067 h677 1.3 // *************************************************************************
1068     procedure TGikoDM.EditorActionExecute(Sender: TObject);
1069     var
1070     Editor: TEditorForm;
1071     Item: TThreadItem;
1072     begin
1073     Item := GikoForm.GetActiveContent;
1074     if Item = nil then Exit;
1075     Editor := TEditorForm.Create(GikoForm.GetMainForm);
1076     Editor.SetThreadItem(Item);
1077     Editor.Show;
1078     Editor.BodyEdit.SetFocus;
1079     end;
1080     // *************************************************************************
1081 yoffy 1.9 //! ?鴻???????????吟?ц;腓冴????
1082 h677 1.3 // *************************************************************************
1083     procedure TGikoDM.IEActionExecute(Sender: TObject);
1084     begin
1085     ShowThreadAction.Execute;
1086     end;
1087     // *************************************************************************
1088 yoffy 1.9 //! ?上??;腓冴?????????鴻???????????????吟?ц;腓冴????
1089 h677 1.3 // *************************************************************************
1090     procedure TGikoDM.ShowThreadActionExecute(Sender: TObject);
1091     var
1092     ThreadItem: TThreadItem;
1093     begin
1094     ThreadItem := GikoForm.GetActiveContent;
1095     if ThreadItem = nil then Exit;
1096     GikoSys.OpenBrowser(ThreadItem.URL, gbtAuto);
1097     end;
1098     // *************************************************************************
1099 yoffy 1.9 //! ?上??;腓冴?????????鴻?????????帥?????????吟?ц;腓冴????
1100 h677 1.3 // *************************************************************************
1101     procedure TGikoDM.ShowBoardActionExecute(Sender: TObject);
1102     var
1103     ThreadItem: TThreadItem;
1104     begin
1105     ThreadItem := GikoForm.GetActiveContent;
1106     if ThreadItem = nil then Exit;
1107     GikoSys.OpenBrowser(ThreadItem.ParentBoard.URL, gbtAuto);
1108     end;
1109     // *************************************************************************
1110 yoffy 1.9 //! ?上??;腓冴?????????鴻????????RL???潟???若????
1111 h677 1.3 // *************************************************************************
1112     procedure TGikoDM.URLCopyActionExecute(Sender: TObject);
1113     var
1114     s: string;
1115     begin
1116     s := '';
1117     if TObject(GikoForm.GetActiveContent) is TBoard then
1118     s := s + TBoard(GikoForm.GetActiveContent).URL + #13#10
1119     else if TObject(GikoForm.GetActiveContent) is TThreadItem then
1120     s := s + TThreadItem(GikoForm.GetActiveContent).URL + #13#10;
1121     if s <> '' then
1122     Clipboard.AsText := s;
1123     end;
1124     // *************************************************************************
1125 yoffy 1.9 //! ?上??;腓冴?????????鴻???????????潟???若????
1126 h677 1.3 // *************************************************************************
1127     procedure TGikoDM.NameCopyActionExecute(Sender: TObject);
1128     var
1129     s: string;
1130     begin
1131     s := '';
1132     if TObject(GikoForm.GetActiveContent) is TBoard then
1133     s := s + TBoard(GikoForm.GetActiveContent).Title + #13#10
1134     else if TObject(GikoForm.GetActiveContent) is TThreadItem then
1135     s := s + TThreadItem(GikoForm.GetActiveContent).Title + #13#10;
1136     if s <> '' then
1137     Clipboard.AsText := s;
1138     end;
1139     // *************************************************************************
1140 yoffy 1.9 //! ?上??;腓冴?????????鴻??????????RL???潟???若????
1141 h677 1.3 // *************************************************************************
1142     procedure TGikoDM.NameURLCopyActionExecute(Sender: TObject);
1143     var
1144     s: string;
1145     begin
1146     s := '';
1147     if TObject(GikoForm.GetActiveContent) is TBoard then
1148     s := s + TBoard(GikoForm.GetActiveContent).Title + #13#10 + TBoard(GikoForm.GetActiveContent).URL + #13#10
1149     else if TObject(GikoForm.GetActiveContent) is TThreadItem then
1150     s := s + TThreadItem(GikoForm.GetActiveContent).Title + #13#10 + TThreadItem(GikoForm.GetActiveContent).URL + #13#10;
1151     if s <> '' then
1152     Clipboard.AsText := s;
1153     end;
1154     // *************************************************************************
1155 yoffy 1.9 //! 茵?ず???????????鴻?????????????潟???若??????
1156 h677 1.3 // *************************************************************************
1157     procedure TGikoDM.ItemReloadActionExecute(Sender: TObject);
1158     var
1159     ThreadItem: TThreadItem;
1160     shiftDown: Boolean;
1161     begin
1162     ThreadItem := GikoForm.GetActiveContent;
1163     shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
1164     if ThreadItem <> nil then
1165     GikoForm.DownloadContent(ThreadItem, shiftDown);
1166     end;
1167     // *************************************************************************
1168 yoffy 1.9 //! ?上?????????????帥??????????
1169 h677 1.3 // *************************************************************************
1170     procedure TGikoDM.BrowserTabCloseActionExecute(Sender: TObject);
1171     var
1172     idx: Integer;
1173     begin
1174     idx := GikoForm.BrowserTab.TabIndex;
1175     if idx <> -1 then begin
1176     if GikoForm.BrowserTab.Tabs.Objects[idx] <> nil then begin
1177     GikoForm.DeleteTab(TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]));
1178     end;
1179     end;
1180     end;
1181     // *************************************************************************
1182 yoffy 1.9 //! ?帥????鐚??や札筝??????????鴻??????Update?ゃ???潟??
1183 h677 1.3 // *************************************************************************
1184     procedure TGikoDM.BrowserTabCloseActionUpdate(Sender: TObject);
1185     begin
1186     TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0);
1187     end;
1188     // *************************************************************************
1189 yoffy 1.9 //! ?上?????????????帥??篁ュ?????????
1190 h677 1.3 // *************************************************************************
1191     procedure TGikoDM.NotSelectTabCloseActionExecute(Sender: TObject);
1192     var
1193     i: Integer;
1194     idx: Integer;
1195     begin
1196     idx := GikoForm.BrowserTab.TabIndex;
1197     if idx = -1 then Exit;
1198     GikoForm.BrowserTab.Tabs.BeginUpdate;
1199     for i := GikoForm.BrowserTab.Tabs.Count - 1 downto GikoForm.BrowserTab.TabIndex + 1 do begin
1200     TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1201     GikoForm.BrowserTab.Tabs.Delete(i);
1202     end;
1203     if idx > 0 then begin
1204     for i := GikoForm.BrowserTab.TabIndex - 1 downto 0 do begin
1205     TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1206     GikoForm.BrowserTab.Tabs.Delete(i);
1207     end;
1208     end;
1209     GikoForm.BrowserTab.Tabs.EndUpdate;
1210     end;
1211     // *************************************************************************
1212 yoffy 1.9 //! ?帥????鐚??や札筝??????????鴻??????Update?ゃ???潟??
1213 h677 1.3 // *************************************************************************
1214     procedure TGikoDM.NotSelectTabCloseActionUpdate(Sender: TObject);
1215     begin
1216     TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 1);
1217     end;
1218     // *************************************************************************
1219 yoffy 1.9 //! ???????帥??????????
1220 h677 1.3 // *************************************************************************
1221     procedure TGikoDM.AllTabCloseActionExecute(Sender: TObject);
1222     var
1223     i: Integer;
1224     begin
1225     if GikoSys.Setting.ShowDialogForAllTabClose then
1226     if(MessageDlg('???????帥???????????????????с????鐚?', mtConfirmation,[mbOk, mbCancel], 0) = mrCancel ) then
1227     Exit;
1228    
1229     GikoForm.ActiveContent := nil;
1230     GikoForm.BrowserNullTab.Thread := nil;
1231     GikoForm.BrowserTab.OnChange := nil;
1232     GikoForm.BrowserTab.Tabs.BeginUpdate;
1233     for i := GikoForm.BrowserTab.Tabs.Count - 1 downto 0 do begin
1234     TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1235     end;
1236     GikoForm.BrowserTab.Tabs.Clear;
1237     GikoForm.BrowserTab.Tabs.EndUpdate;
1238     GikoForm.BrowserTab.OnChange := GikoForm.BrowserTabChange;
1239     GikoForm.SetContent(GikoForm.BrowserNullTab);
1240     GikoForm.Caption := CAPTION_NAME ;
1241     end;
1242     // *************************************************************************
1243 yoffy 1.9 //! ?上?????????????帥?????鴻???????????ゃ????
1244 h677 1.3 // *************************************************************************
1245     procedure TGikoDM.ActiveLogDeleteActionExecute(Sender: TObject);
1246     const
1247     DEL_MSG = '??^0???????違?????ゃ???障?????????????с????鐚?';
1248     DEL_TITLE = '???ょ∈茯?';
1249     var
1250     idx: Integer;
1251     ThreadItem: TThreadItem;
1252     begin
1253     idx := GikoForm.BrowserTab.TabIndex;
1254     if idx <> -1 then begin
1255     if GikoForm.BrowserTab.Tabs.Objects[idx] <> nil then begin
1256     ThreadItem := TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]).Thread;
1257     if GikoSys.Setting.DeleteMsg then
1258     if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
1259     if MsgBox(GikoForm.Handle, StringReplace( DEL_MSG, '^0', ThreadItem.Title, [rfReplaceAll] ) , DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
1260     Exit;
1261     GikoForm.DeleteTab(TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]));
1262 h677 1.37 GikoForm.DeleteHistory(ThreadItem);
1263 h677 1.3 ThreadItem.DeleteLogFile;
1264     if ThreadItem.ParentBoard = GikoForm.ActiveList then
1265     GikoForm.ListView.Refresh;
1266     end;
1267     end;
1268     end;
1269     // *************************************************************************
1270 yoffy 1.9 //! 筝???窪???帥?????御??????
1271 h677 1.3 // *************************************************************************
1272     procedure TGikoDM.LeftmostTabSelectActionExecute(Sender: TObject);
1273     begin
1274     if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1275     GikoForm.BrowserTab.TabIndex := 0;
1276     GikoForm.BrowserTab.OnChange(nil);
1277     end;
1278     end;
1279     // *************************************************************************
1280 yoffy 1.9 //! ?帥?????違??鐚?篁ヤ??с???帥?????ゃ?潟???????鴻??鐚?篁ュ??ф???鴻??????Update?ゃ???潟??
1281 h677 1.3 // *************************************************************************
1282     procedure TGikoDM.LeftmostTabSelectActionUpdate(Sender: TObject);
1283     begin
1284     TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0)
1285     and (GikoForm.BrowserTab.TabIndex <> 0);
1286     end;
1287     // *************************************************************************
1288 yoffy 1.9 //! 綏????帥?????御??????
1289 h677 1.3 // *************************************************************************
1290     procedure TGikoDM.LeftTabSelectActionExecute(Sender: TObject);
1291     begin
1292     if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1293     if GikoForm.BrowserTab.TabIndex = -1 then begin
1294     GikoForm.BrowserTab.TabIndex := 0;
1295     GikoForm.BrowserTab.OnChange(nil);
1296     end else if GikoForm.BrowserTab.TabIndex > 0 then begin
1297     GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.TabIndex - 1;
1298     GikoForm.BrowserTab.OnChange(nil);
1299     end;
1300     end;
1301     end;
1302     // *************************************************************************
1303 yoffy 1.9 //! ?潟???帥?????御??????
1304 h677 1.3 // *************************************************************************
1305     procedure TGikoDM.RightTabSelectActionExecute(Sender: TObject);
1306     begin
1307     if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1308     if GikoForm.BrowserTab.TabIndex = -1 then begin
1309     GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.Tabs.Count - 1;
1310     GikoForm.BrowserTab.OnChange(nil);
1311     end else if GikoForm.BrowserTab.TabIndex < (GikoForm.BrowserTab.Tabs.Count - 1) then begin
1312     GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.TabIndex + 1;
1313     GikoForm.BrowserTab.OnChange(nil);
1314     end;
1315     end;
1316     end;
1317     // *************************************************************************
1318 yoffy 1.9 //! ?帥?????違??鐚?篁ヤ??с???帥?????括?篁ュ??ф???鴻??????Update?ゃ???潟??
1319 h677 1.3 // *************************************************************************
1320     procedure TGikoDM.RightTabSelectActionUpdate(Sender: TObject);
1321     begin
1322     TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0)
1323     and (GikoForm.BrowserTab.TabIndex <> GikoForm.BrowserTab.Tabs.Count - 1);
1324     end;
1325     // *************************************************************************
1326 yoffy 1.9 //! 筝???劻???帥?????御??????
1327 h677 1.3 // *************************************************************************
1328     procedure TGikoDM.RightmostTabSelectActionExecute(Sender: TObject);
1329     begin
1330     if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1331     GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.Tabs.Count - 1;
1332     GikoForm.BrowserTab.OnChange(nil);
1333     end;
1334     end;
1335     // *************************************************************************
1336 yoffy 1.9 //! ?御?????????????鴻??????????羂????ャ????申??
1337 h677 1.3 // *************************************************************************
1338     procedure TGikoDM.ThreadFavoriteAddActionExecute(Sender: TObject);
1339     begin
1340     if TObject(GikoForm.ListView.Selected.Data) is TThreadItem then
1341     GikoForm.ShowFavoriteAddDialog(TObject(GikoForm.ListView.Selected.Data));
1342     end;
1343     // *************************************************************************
1344 yoffy 1.9 //! ?鴻??????筝?荀с?с???鴻????鐚??や札筝??御???????????????鴻??????Update?ゃ???潟??
1345 h677 1.3 // *************************************************************************
1346     procedure TGikoDM.ThreadFavoriteAddActionUpdate(Sender: TObject);
1347     begin
1348     TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard)
1349     and (GikoForm.ListView.SelCount > 0);
1350     end;
1351     // *************************************************************************
1352 yoffy 1.9 //! ???鴻????絎鴻??腟???莨若??
1353 h677 1.3 // *************************************************************************
1354     procedure TGikoDM.SelectResActionExecute(Sender: TObject);
1355     var
1356     Dlg: TListSelectDialog;
1357     FilterList : TStringList;
1358     idx : Integer;
1359     begin
1360 h677 1.12 Dlg := TListSelectDialog.Create(GikoForm);
1361 h677 1.3 try
1362     Dlg.SelectComboBox.Items.Assign(GikoSys.Setting.SelectTextList);
1363     Dlg.SelectComboBox.Text := GikoForm.SelectResWord;
1364     Dlg.ShowModal;
1365     if Dlg.ModalResult = mrOK then begin
1366     SelectResAction.Checked := True;
1367     if Length( Dlg.SelectComboBox.Text ) = 0 then begin
1368     // 腥阪?ュ??? OK ?????莨若?粋В?ゃ?????靸?/span>
1369     ResRangeAction.Execute;
1370     end else begin
1371     GikoSys.ResRange := Ord( grrSelect );
1372    
1373     // ??緇???┃絎???????????荀?????????span>
1374     GikoForm.SelectResWord := Dlg.SelectComboBox.Text;
1375    
1376     // 罎?膣√吋罩眼???贋??/span>
1377     idx := GikoSys.Setting.SelectTextList.IndexOf(Dlg.SelectComboBox.Text);
1378     if idx <> -1 then
1379     GikoSys.Setting.SelectTextList.Delete(idx);
1380     GikoSys.Setting.SelectTextList.Insert(0, Dlg.SelectComboBox.Text);
1381     while Dlg.SelectComboBox.Items.Count > 100 do begin
1382     Dlg.SelectComboBox.Items.Delete(Dlg.SelectComboBox.Items.Count - 1);
1383     end;
1384    
1385     try
1386     if GikoForm.SelectComboBoxPanel.Visible then
1387     GikoForm.SelectComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
1388     except
1389     end;
1390    
1391     // ???c???帥??┃絎?
1392     FilterList := TStringList.Create;
1393     try
1394     GikoSys.FSelectResFilter.Reverse := True;
1395     FilterList.Delimiter := ' '; //?阪????絖?????茹??鴻???若?鴻??┃絎?
1396     FilterList.DelimitedText := Dlg.SelectComboBox.Text;
1397    
1398     GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
1399     finally
1400     FilterList.Free;
1401     end;
1402     GikoForm.RepaintAllTabsBrowser();
1403     end;
1404     end else begin
1405     // ???c?潟?祉??/span>
1406     if GikoSys.ResRange <> Ord( grrSelect ) then
1407     ResRangeAction.Execute;
1408     end;
1409     finally
1410     Dlg.Release;
1411     end;
1412    
1413     end;
1414     // *************************************************************************
1415 yoffy 1.9 //! ?????????鴻??茵?ず????
1416 h677 1.3 // *************************************************************************
1417     procedure TGikoDM.AllResActionExecute(Sender: TObject);
1418     begin
1419     if(GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil )
1420     and (GikoForm.ActiveContent.Browser.Busy) then Exit;
1421    
1422     GikoForm.ResRangeMenuSelect := Ord( grrAll );
1423     AllResAction.Checked := True;
1424    
1425 h677 1.17 //??茵?ず膀??蚊??荐??????
1426     SetResRange(Ord( grrAll ));
1427 h677 1.3 end;
1428     // *************************************************************************
1429 yoffy 1.9 //! ???鴻??;腓榊??蚊??荐??
1430 h677 1.3 // *************************************************************************
1431     procedure TGikoDM.ResRangeActionExecute(Sender: TObject);
1432     begin
1433     case GikoForm.ResRangeMenuSelect of
1434     Ord( grrAll ): AllResAction.Execute;
1435     Ord( grrKoko ): OnlyKokoResAction.Execute;
1436     Ord( grrNew ): OnlyNewResAction.Execute;
1437     100: OnlyAHundredResAction.Execute;
1438     end;
1439    
1440     end;
1441     // *************************************************************************
1442 yoffy 1.9 //! ?????鴻?????????????鴻??????筝?荀с??茵?ず
1443 h677 1.3 // *************************************************************************
1444     procedure TGikoDM.UpBoardActionExecute(Sender: TObject);
1445     begin
1446     GikoForm.SelectTreeNode( GikoForm.GetActiveContent.ParentBoard, True );
1447     end;
1448     // *************************************************************************
1449 yoffy 1.9 //! ??絎???????垩?????鴻?????/span>
1450 h677 1.3 // *************************************************************************
1451     procedure TGikoDM.JumpToNumOfResActionExecute(Sender: TObject);
1452     var
1453     str: string;
1454     res: integer;
1455     begin
1456     str := '1';
1457     if( InputQuery('??絎???????垩?????鴻?????#39;, '??垩???ュ?????????????', str) ) then begin
1458     str := ZenToHan(str);
1459     res := StrToIntDef(str, -1);
1460     if (res > 0) and (res <= GikoForm.GetActiveContent.Count) then begin
1461 h677 1.15 GikoForm.ActiveContent.Move(IntToStr(res));
1462 h677 1.3 SetFocusForBrowserAction.Execute;
1463     end else if res > GikoForm.GetActiveContent.Count then begin
1464 h677 1.15 GikoForm.ActiveContent.Move(IntToStr(GikoForm.GetActiveContent.Count));
1465 h677 1.3 SetFocusForBrowserAction.Execute;
1466     end;
1467     end;
1468     end;
1469     // *************************************************************************
1470 yoffy 1.9 //! ?≪?????c?????帥???????潟????????
1471 h677 1.3 // *************************************************************************
1472     procedure TGikoDM.RightTabCloseActionExecute(Sender: TObject);
1473     var
1474     i: Integer;
1475     idx: Integer;
1476     begin
1477     idx := GikoForm.BrowserTab.TabIndex;
1478     if idx = -1 then Exit;
1479     GikoForm.BrowserTab.Tabs.BeginUpdate;
1480     for i := GikoForm.BrowserTab.Tabs.Count - 1 downto idx + 1 do begin
1481     TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1482     GikoForm.BrowserTab.Tabs.Delete(i);
1483     end;
1484     GikoForm.BrowserTab.Tabs.EndUpdate;
1485     end;
1486     // *************************************************************************
1487 yoffy 1.9 //! ?帥?????違??鐚?篁ヤ??ф???鴻??pdate?ゃ???潟??
1488 h677 1.3 // *************************************************************************
1489     procedure TGikoDM.RightTabCloseActionUpdate(Sender: TObject);
1490     begin
1491     TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 1);
1492     end;
1493     // *************************************************************************
1494 yoffy 1.9 //! ?≪?????c?????帥??????綏?????????
1495 h677 1.3 // *************************************************************************
1496     procedure TGikoDM.LeftTabCloseActionExecute(Sender: TObject);
1497     var
1498     i: Integer;
1499     idx: Integer;
1500     begin
1501     idx := GikoForm.BrowserTab.TabIndex;
1502     if idx = -1 then Exit;
1503     GikoForm.BrowserTab.Tabs.BeginUpdate;
1504     if idx > 0 then begin
1505     for i := idx - 1 downto 0 do begin
1506     TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1507     GikoForm.BrowserTab.Tabs.Delete(i);
1508     end;
1509     end;
1510     GikoForm.BrowserTab.Tabs.EndUpdate;
1511     end;
1512     ////////////////////////////////?鴻???????障?с?????障??/////////////////////
1513 h677 1.4 procedure TGikoDM.DataModuleCreate(Sender: TObject);
1514     begin
1515 h677 1.40 // GikoDM?????????????????????綽?荀??????????<?ゃ????????????????鐚?鐚?
1516     // ????????????絵??????????鐚?
1517     //????莎桁???????????????<?ゃ??┃絎?
1518     TDefaultFileManager.CopyDefaultFiles(
1519     GikoSys.GetAppDir + 'defaultFiles.ini');
1520 h677 1.4 end;
1521     // *************************************************************************
1522 yoffy 1.9 //! ???井?膣≪???ゃ?≪???違??茵?ず????
1523 h677 1.4 // *************************************************************************
1524     procedure TGikoDM.SearchActionExecute(Sender: TObject);
1525     var
1526     chk: TObject;
1527     begin
1528    
1529     if GikoForm.SearchDialog = nil then begin
1530     if (GikoForm.GetActiveList is TCategory) or (GikoForm.GetActiveList is TBoard) then
1531     chk := GikoForm.GetActiveList
1532     else
1533     chk := nil;
1534    
1535 h677 1.12 GikoForm.SearchDialog := TSearchDialog.Create(GikoForm, chk);
1536 h677 1.4 GikoForm.SearchDialog.SearchComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
1537     end;
1538    
1539     try
1540     GikoForm.SearchDialog.Show;
1541     except
1542     end;
1543     end;
1544     // *************************************************************************
1545 yoffy 1.9 //! ?????激?с?潟???ゃ?≪???違??茵?ず????
1546 h677 1.4 // *************************************************************************
1547     procedure TGikoDM.OptionActionExecute(Sender: TObject);
1548     var
1549     Dlg: TOptionDialog;
1550     begin
1551 h677 1.12 Dlg := TOptionDialog.Create(GikoForm);
1552 h677 1.4 try
1553     Dlg.ShowModal;
1554     finally
1555     Dlg.Release;
1556     end;
1557     end;
1558     // *************************************************************************
1559 yoffy 1.9 //! 綏≦?????ゃ?≪???違??茵?ず????
1560 h677 1.4 // *************************************************************************
1561     procedure TGikoDM.RoundActionExecute(Sender: TObject);
1562     var
1563     Dlg: TRoundDialog;
1564     begin
1565 h677 1.12 Dlg := TRoundDialog.Create(GikoForm);
1566 h677 1.4 try
1567     Dlg.ShowModal;
1568     finally
1569     Dlg.Release;
1570     end;
1571     end;
1572     // *************************************************************************
1573 yoffy 1.9 //! ???取┃絎????ゃ?≪???違??????span>
1574 h677 1.4 // *************************************************************************
1575     procedure TGikoDM.KeySettingActionExecute(Sender: TObject);
1576     var
1577     Dlg: TKeySettingForm;
1578     begin
1579 h677 1.12 Dlg := TKeySettingForm.Create(GikoForm);
1580 h677 1.4 try
1581     if Dlg.ShowModal = mrOk then begin
1582 h677 1.20 GikoSys.SaveKeySetting(GikoFormActionList, Setting.KEY_SETTING_FILE_NAME);
1583 h677 1.30 GikoSys.SaveKeySetting(Dlg.EditorForm.ActionList, Setting.EKEY_SETTING_FILE_NAME);
1584 h677 1.4 GikoSys.Setting.Gestures.SaveGesture( GikoSys.Setting.GetGestureFileName );
1585     end;
1586    
1587     finally
1588     Dlg.Release;
1589     MouseGesture.UnHook;
1590     MouseGesture.OnGestureStart := GikoForm.OnGestureStart;
1591     MouseGesture.OnGestureMove := GikoForm.OnGestureMove;
1592     MouseGesture.OnGestureEnd := GikoForm.OnGestureEnd;
1593     if GikoSys.Setting.GestureEnabled then begin
1594     GikoSys.Setting.Gestures.ClearGesture;
1595     GikoSys.Setting.Gestures.LoadGesture(
1596     GikoSys.Setting.GetGestureFileName, GikoFormActionList );
1597     MouseGesture.SetHook( GikoForm.Handle );
1598     end;
1599     end;
1600     end;
1601     // *************************************************************************
1602 yoffy 1.9 //! ???取┃絎????ゃ?≪???違??????span>
1603 h677 1.4 // *************************************************************************
1604     procedure TGikoDM.KotehanActionExecute(Sender: TObject);
1605     var
1606     Dlg: TKotehanDialog;
1607     begin
1608 h677 1.12 Dlg := TKotehanDialog.Create(GikoForm);
1609 h677 1.4 try
1610     Dlg.ShowModal;
1611     finally
1612     Dlg.Release;
1613     end;
1614     end;
1615     // *************************************************************************
1616 yoffy 1.9 //! ???若?????取┃絎????ゃ?≪???違??????span>
1617 h677 1.4 // *************************************************************************
1618     procedure TGikoDM.ToolBarSettingActionExecute(Sender: TObject);
1619     var
1620     Dlg: TToolBarSettingDialog;
1621     i: Integer;
1622     begin
1623     Dlg := TToolBarSettingDialog.Create(GikoForm, GikoFormActionList);
1624     try
1625     Dlg.AddToolBar(GikoForm.StdToolBar, gttStandard);
1626     Dlg.AddToolBar(GikoForm.ListToolBar, gttList);
1627     Dlg.AddToolBar(GikoForm.BrowserToolBar, gttBrowser);
1628     case GikoForm.ToolBarSettingSender of
1629     tssMain: Dlg.ToolBarIndex := 0;
1630     tssList: Dlg.ToolBarIndex := 1;
1631     tssBrowser: Dlg.ToolBarIndex := 2;
1632     end;
1633     if Dlg.ShowModal = mrOK then begin
1634     GikoForm.SetToolBarPopup;
1635    
1636     //?????????荐??????????????????????????c?????????
1637     for i := 0 to GikoForm.MainCoolBar.Bands.Count - 1 do begin
1638     GikoForm.MainCoolBar.Bands[i].MinWidth :=
1639     GikoForm.MainCoolBar.Bands[i].MinWidth + 1;
1640     GikoForm.MainCoolBar.Bands[i].MinWidth :=
1641     GikoForm.MainCoolBar.Bands[i].MinWidth - 1;
1642     end;
1643     for i := 0 to GikoForm.ListCoolBar.Bands.Count - 1 do begin
1644     GikoForm.ListCoolBar.Bands[i].MinWidth :=
1645     GikoForm.ListCoolBar.Bands[i].MinWidth + 1;
1646     GikoForm.ListCoolBar.Bands[i].MinWidth :=
1647     GikoForm.ListCoolBar.Bands[i].MinWidth - 1;
1648     end;
1649     for i := 0 to GikoForm.BrowserCoolBar.Bands.Count - 1 do begin
1650     GikoForm.BrowserCoolBar.Bands[i].MinWidth :=
1651     GikoForm.BrowserCoolBar.Bands[i].MinWidth + 1;
1652     GikoForm.BrowserCoolBar.Bands[i].MinWidth :=
1653     GikoForm.BrowserCoolBar.Bands[i].MinWidth - 1;
1654     end;
1655    
1656     SaveToolBarSetting(GikoForm.StdToolBar);
1657     SaveToolBarSetting(GikoForm.ListToolBar);
1658     //ListToolBar??????????????????腟?莨若??omboBox????臀?/span>
1659 h677 1.13 GikoForm.SetSelectComboBox;
1660 h677 1.4 GikoForm.ResetBandInfo( GikoForm.ListCoolBar, GikoForm.ListToolBar );
1661     SaveToolBarSetting(GikoForm.BrowserToolBar);
1662     end;
1663     finally
1664     Dlg.Release;
1665     GikoForm.ToolBarSettingSender := tssNone;
1666     end;
1667     end;
1668     // *************************************************************************
1669 yoffy 1.9 //! ???ャ?若??
1670 h677 1.4 // *************************************************************************
1671     procedure TGikoDM.MuteActionExecute(Sender: TObject);
1672     begin
1673     GikoSys.Setting.Mute := not GikoSys.Setting.Mute;
1674     end;
1675     ////////////////////////////////???若???障?с?????障??/////////////////////
1676     // *************************************************************************
1677 yoffy 1.9 //! ?鴻??????筝?荀с???????潟???若??????
1678 h677 1.4 // *************************************************************************
1679     procedure TGikoDM.TreeSelectBoradReloadExecute(Sender: TObject);
1680     var
1681     Board: TBoard;
1682     TmpTreeNode: TTreeNode;
1683     begin
1684     TmpTreeNode := GikoForm.ClickNode;
1685     GikoForm.TreeView.Selected := GikoForm.ClickNode;
1686     Board := nil;
1687    
1688     if TObject(TmpTreeNode.Data) is TBoard then
1689     Board := TBoard(TmpTreeNode.Data)
1690     else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then
1691     Board := TFavoriteBoardItem(TmpTreeNode.Data).Item;
1692    
1693     if Board <> nil then
1694     GikoForm.DownloadList(Board);
1695     end;
1696     // *************************************************************************
1697 yoffy 1.9 //! ?御?????????鴻?????????????潟???若??????
1698 h677 1.4 // *************************************************************************
1699     procedure TGikoDM.TreeSelectThreadReloadExecute(Sender: TObject);
1700     var
1701     ThreadItem: TThreadItem;
1702     TmpTreeNode: TTreeNode;
1703     begin
1704     TmpTreeNode := GikoForm.ClickNode;
1705     GikoForm.TreeView.Selected := GikoForm.ClickNode;
1706     ThreadItem := nil;
1707    
1708     if TObject(TmpTreeNode.Data) is TThreadItem then
1709     ThreadItem := TThreadItem(TmpTreeNode.Data)
1710     else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then
1711     ThreadItem := TFavoriteThreadItem(TmpTreeNode.Data).Item;
1712    
1713     if ThreadItem <> nil then
1714     GikoForm.DownloadContent(ThreadItem);
1715     end;
1716     // *************************************************************************
1717 yoffy 1.9 //! ?御?????????帥??RL???潟???若????
1718 h677 1.4 // *************************************************************************
1719     procedure TGikoDM.TreeSelectURLCopyExecute(Sender: TObject);
1720     var
1721     TmpTreeNode: TTreeNode;
1722     s: string;
1723     begin
1724     TmpTreeNode := GikoForm.ClickNode;
1725     GikoForm.TreeView.Selected := GikoForm.ClickNode;
1726     if TObject(TmpTreeNode.Data) is TBoard then begin
1727     s := TBoard(TmpTreeNode.Data).URL + #13#10;
1728     end else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then begin
1729     s := TFavoriteBoardItem(TmpTreeNode.Data).URL + #13#10;
1730     end else if (TObject(TmpTreeNode.Data) is TThreadItem) then begin
1731     s := TThreadItem(TmpTreeNode.Data).URL + #13#10;
1732     end else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then begin
1733     s := TFavoriteThreadItem(TmpTreeNode.Data).URL + #13#10;
1734     end;
1735     Clipboard.AsText := s;
1736     end;
1737     // *************************************************************************
1738 yoffy 1.9 //! ?御?????????帥????????RL???潟???若????
1739 h677 1.4 // *************************************************************************
1740     procedure TGikoDM.TreeSelectNameURLCopyExecute(Sender: TObject);
1741     var
1742     TmpTreeNode: TTreeNode;
1743     s: string;
1744     begin
1745     TmpTreeNode := GikoForm.ClickNode;
1746     GikoForm.TreeView.Selected := GikoForm.ClickNode;
1747     if TObject(TmpTreeNode.Data) is TBoard then begin
1748     s := TBoard(TmpTreeNode.Data).Title + #13#10 + TBoard(TmpTreeNode.Data).URL + #13#10;
1749     end else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then begin
1750     s := TFavoriteBoardItem(TmpTreeNode.Data).Item.Title + #13#10 + TFavoriteBoardItem(TmpTreeNode.Data).URL + #13#10;
1751     end else if (TObject(TmpTreeNode.Data) is TThreadItem) then begin
1752     s := TThreadItem(TmpTreeNode.Data).Title + #13#10 + TThreadItem(TmpTreeNode.Data).URL + #13#10;
1753     end else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then begin
1754     s := TFavoriteThreadItem(TmpTreeNode.Data).Item.Title + #13#10 + TFavoriteThreadItem(TmpTreeNode.Data).URL + #13#10;
1755     end;
1756     Clipboard.AsText := s;
1757     end;
1758     // *************************************************************************
1759 yoffy 1.9 //! ??羂????ャ????申??????
1760 h677 1.4 // *************************************************************************
1761     procedure TGikoDM.TreeSelectFavoriteAddActionExecute(Sender: TObject);
1762     begin
1763     GikoForm.ShowFavoriteAddDialog(TObject(GikoForm.ClickNode.Data));
1764     end;
1765     // *************************************************************************
1766 yoffy 1.9 //! ?水??罎?膣?/span>
1767 h677 1.4 // *************************************************************************
1768     procedure TGikoDM.TreeSelectSearchBoardNameExecute(Sender: TObject);
1769     var
1770     s : String;
1771     msg : String;
1772     CurItem : TTreeNode;
1773     next : boolean;
1774     begin
1775     if InputQuery('?水??罎?膣?#39;,'?水?????ュ??',s) then begin
1776     next := true;
1777     while next do begin
1778     if GikoForm.TreeView.Selected = nil then
1779     CurItem := GikoForm.TreeView.Items.GetFirstNode
1780     else begin
1781     CurItem := GikoForm.TreeView.Selected.GetNext;
1782     if CurItem = nil then
1783     CurItem := GikoForm.TreeView.Items.GetFirstNode;
1784     end;
1785     while CurItem <> nil do begin
1786     if (CurItem.ImageIndex <> 2) and (VaguePos(s,CurItem.Text) <> 0) then begin
1787     break;
1788     end;
1789     CurItem := CurItem.GetNext;
1790     end;
1791     try
1792     if CurItem = nil then begin
1793     msg := '???????祉???障????鐚?';
1794     if MsgBox(GikoForm.Handle, msg, '', MB_YESNO or MB_ICONEXCLAMATION) = mrYes then begin
1795     CurItem := GikoForm.TreeView.Items.GetFirstNode;
1796     end else begin
1797     Exit;
1798     end;
1799     GikoForm.TreeView.Select(CurItem);
1800     GikoForm.TreeView.SetFocus;
1801     end else begin
1802     GikoForm.TreeView.Select(CurItem);
1803     GikoForm.TreeView.SetFocus;
1804     msg := '罨<??????障????鐚?';
1805     if MsgBox(GikoForm.Handle, msg, '', MB_YESNO or MB_ICONEXCLAMATION) = mrYes then begin
1806     next := true;
1807     end else begin
1808     next := false;
1809     end;
1810     end;
1811    
1812     except
1813     Exit;
1814     end;
1815     end;
1816     end;
1817     end;
1818     // *************************************************************************
1819 yoffy 1.9 //! ?御?????????帥?????????潟???若????
1820 h677 1.4 // *************************************************************************
1821     procedure TGikoDM.TreeSelectNameCopyExecute(Sender: TObject);
1822     var
1823     s: string;
1824     begin
1825     GikoForm.TreeView.Selected := GikoForm.ClickNode;
1826     s := GikoForm.ClickNode.Text;
1827     Clipboard.AsText := s;
1828     end;
1829     ////////////////////////////////?????若???????≪?????障?с?????障??/////////////////////
1830 h677 1.5 // *************************************************************************
1831 yoffy 1.9 //! ???違?ゃ?鰹????違?≪??????????
1832 h677 1.5 // *************************************************************************
1833     procedure TGikoDM.LoginActionExecute(Sender: TObject);
1834     var
1835     TmpCursor: TCursor;
1836     msg : String;
1837     begin
1838     if GikoSys.Dolib.Connected then begin
1839     //???違?≪????
1840     GikoSys.Dolib.Disconnect;
1841     LoginAction.Checked := False;
1842 h677 1.21 GikoForm.AddMessageList(GikoSys.GetGikoMessage(gmLogout), nil, gmiOK);
1843 h677 1.5 LoginAction.Caption := '???違?ゃ??&L)';
1844     end else begin
1845     TmpCursor := GikoForm.ScreenCursor;
1846     GikoForm.ScreenCursor := crHourGlass;
1847     try
1848     //??絽吾???違?ゃ??/span>
1849     if not GikoSys.Setting.ForcedLogin then begin
1850     GikoSys.Dolib.ClientUA := 'gikoNavi/1.00';
1851     GikoSys.Dolib.UserName := GikoSys.Setting.UserID;
1852     GikoSys.Dolib.Password := GikoSys.Setting.Password;
1853     if GikoSys.Setting.ReadProxy then begin
1854     GikoSys.Dolib.ProxyAddress := GikoSys.Setting.ReadProxyAddress;
1855     GikoSys.Dolib.ProxyPort := GikoSys.Setting.ReadProxyPort;
1856     end else begin
1857     GikoSys.Dolib.ProxyAddress := '';
1858     GikoSys.Dolib.ProxyPort := 0;
1859     end;
1860     if GikoSys.Dolib.Connect then begin
1861     LoginAction.Checked := True;
1862 h677 1.21 GikoForm.AddMessageList(GikoSys.GetGikoMessage(gmLogin) + GikoSys.Setting.UserID, nil, gmiOK);
1863 h677 1.5 LoginAction.Caption := '???違?≪????(&L)';
1864     //LoginToolButton.Style := tbsCheck;
1865     end else begin
1866     // MsgBox(Handle, '???違?ゃ?喝?堺?ャ?障?????с????', '??????#39;, MB_OK or MB_ICONSTOP);
1867     GikoForm.AddMessageList(GikoSys.Dolib.ErrorMsg, nil, gmiNG);
1868     GikoForm.PlaySound('Error');
1869     LoginAction.Checked := False;
1870     //LoginToolButton.Down := False;
1871     ///LoginToolButton.Style := tbsButton;
1872     end;
1873     end else begin
1874     msg := '綣桁?吟???違?ゃ?潟?≪?若???с????泣?若????┝???吾?????号?с?????с???????障??????' + #13#10
1875     + '?処??泣?若?????翫???????????????鴻???若?????障???????醇?с???????障????' + #13#10
1876     + '?????≪?若???с???違?ゃ?潟??荅??帥?障????鐚?' + #13#10;
1877     if MsgBox(GikoForm.Handle, msg, '茘???', MB_YESNO or MB_ICONEXCLAMATION) = IDYES then begin
1878     GikoSys.Dolib.ClientUA := 'gikoNavi/1.00';
1879     GikoSys.Dolib.UserName := GikoSys.Setting.UserID;
1880     GikoSys.Dolib.Password := GikoSys.Setting.Password;
1881     if GikoSys.Setting.ReadProxy then begin
1882     GikoSys.Dolib.ProxyAddress := GikoSys.Setting.ReadProxyAddress;
1883     GikoSys.Dolib.ProxyPort := GikoSys.Setting.ReadProxyPort;
1884     end else begin
1885     GikoSys.Dolib.ProxyAddress := '';
1886     GikoSys.Dolib.ProxyPort := 0;
1887     end;
1888     //SSL??絎括??七?吟???違?ゃ??/span>
1889     GikoSys.Dolib.ForcedConnect;
1890     if GikoSys.Dolib.Connect then begin
1891     LoginAction.Checked := True;
1892 h677 1.21 GikoForm.AddMessageList(GikoSys.GetGikoMessage(gmForceLogin) + GikoSys.Setting.UserID, nil, gmiOK);
1893 h677 1.5 LoginAction.Caption := '???違?≪????(&L)';
1894     //LoginToolButton.Style := tbsCheck;
1895     end else begin
1896     // MsgBox(Handle, '???違?ゃ?喝?堺?ャ?障?????с????', '??????#39;, MB_OK or MB_ICONSTOP);
1897     GikoForm.AddMessageList(GikoSys.Dolib.ErrorMsg, nil, gmiNG);
1898     GikoForm.PlaySound('Error');
1899     LoginAction.Checked := False;
1900     //LoginToolButton.Down := False;
1901     //LoginToolButton.Style := tbsButton;
1902     end;
1903     end else begin
1904     LoginAction.Checked := False;
1905     //LoginToolButton.Down := False;
1906     //LoginToolButton.Style := tbsButton;
1907     end;
1908     end;
1909     finally
1910     GikoForm.ScreenCursor := TmpCursor;
1911     end;
1912     end;
1913     end;
1914     // *************************************************************************
1915 yoffy 1.9 //! ???若???贋?違???ゃ?≪???違??茵?ず????
1916 h677 1.5 // *************************************************************************
1917     procedure TGikoDM.NewBoardActionExecute(Sender: TObject);
1918     var
1919     Dlg: TNewBoardDialog;
1920     Msg: string;
1921     begin
1922 h677 1.41 if (EditorFormExists) then begin
1923 h677 1.5 Msg := '???鴻?????c?帥???????????????????';
1924 h677 1.38 MsgBox(GikoForm.Handle, Msg, MSG_ERROR, MB_OK or MB_ICONSTOP);
1925 h677 1.5 Exit;
1926     end;
1927 h677 1.12 Dlg := TNewBoardDialog.Create(GikoForm);
1928 h677 1.5 try
1929     Dlg.ShowModal;
1930     finally
1931     Dlg.Release;
1932     end;
1933     end;
1934     // *************************************************************************
1935 yoffy 1.9 //! ?御?????????????鴻???????????ゃ????
1936 h677 1.5 // *************************************************************************
1937     procedure TGikoDM.LogDeleteActionExecute(Sender: TObject);
1938     const
1939     DEL_MSG = '??^0???????違?????ゃ???障?????????????с????鐚?';
1940     DEL_SAME_MSG = '?????? ^0 ?????鴻???????????違?????ゃ???障?????????????с????鐚?';
1941     DEL_TITLE = '???ょ∈茯?';
1942     var
1943     ThreadItem: TThreadItem;
1944     TmpListItem: TListItem;
1945     List: TList;
1946     i: Integer;
1947     begin
1948     List := TList.Create;
1949     try
1950     TmpListItem := GikoForm.ListView.Selected;
1951     while TmpListItem <> nil do begin
1952     if TObject(TmpListItem.Data) is TThreadItem then begin
1953     ThreadItem := TThreadItem(TmpListItem.Data);
1954     if ThreadItem.IsLogFile then
1955     List.Add(ThreadItem);
1956     end;
1957     TmpListItem := GikoForm.ListView.GetNextItem(TmpListItem, sdAll, [isSelected]);
1958     end;
1959    
1960     if GikoSys.Setting.DeleteMsg and (List.Count > 0) then begin
1961     if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then begin
1962     if List.Count = 1 then begin
1963     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
1964     Exit;
1965     end else begin
1966     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
1967     Exit;
1968     end;
1969     end;
1970     end;
1971    
1972     for i := 0 to List.Count - 1 do begin
1973     ThreadItem := TThreadItem(List[i]);
1974     GikoForm.DeleteHistory(ThreadItem);
1975     GikoForm.DeleteTab(ThreadItem);
1976     ThreadItem.DeleteLogFile;
1977    
1978     GikoForm.TreeView.Refresh; // UnRead ??;腓冴???贋??/span>
1979     end;
1980     GikoForm.ListView.Refresh;
1981     finally
1982     List.Free;
1983     end;
1984     end;
1985     // *************************************************************************
1986 yoffy 1.9 //! ActiveList??TBoard?с?鴻???荀с?э??や札筝??御???????????????鴻??????Action?у?演??
1987 h677 1.5 // *************************************************************************
1988     procedure TGikoDM.LogDeleteActionUpdate(Sender: TObject);
1989     begin
1990     TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard)
1991     and (GikoForm.ListView.SelCount > 0);
1992     end;
1993     // *************************************************************************
1994 yoffy 1.9 //! 腟?莨若?水吋罩眼??羔??祉????
1995 h677 1.5 // *************************************************************************
1996     procedure TGikoDM.SelectTextClearActionExecute(Sender: TObject);
1997     const
1998     DEL_MSG = '腟?莨若?水??吋罩眼?????ゃ???障?????????????с????鐚?';
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.SelectTextList.Clear;
2005     GikoForm.SelectComboBox.Items.Clear;
2006     GikoForm.SelectComboBox.Text := '';
2007     GikoForm.SetListViewType( gvtAll );
2008     end;
2009     // *************************************************************************
2010 yoffy 1.9 //! ???鴻?????c?帥??????絮ユ???羔??祉????
2011 h677 1.5 // *************************************************************************
2012     procedure TGikoDM.NameTextClearActionExecute(Sender: TObject);
2013     const
2014     DEL_MSG = '???鴻?????c?水??????吋罩眼?????ゃ???障?????????????с????鐚?';
2015     DEL_TITLE = '???ょ∈茯?';
2016     begin
2017     if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
2018     if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
2019     Exit;
2020     GikoSys.Setting.NameList.Clear;
2021 h677 1.41 ClearNameTextAllEditor
2022 h677 1.5 end;
2023     // *************************************************************************
2024 yoffy 1.9 //! ???鴻?????c?帥???<?若??吋罩眼??羔??祉????
2025 h677 1.5 // *************************************************************************
2026     procedure TGikoDM.MailTextClearActionExecute(Sender: TObject);
2027     const
2028     DEL_MSG = '???鴻?????c?帥?<?若????吋罩眼?????ゃ???障?????????????с????鐚?';
2029     DEL_TITLE = '???ょ∈茯?';
2030     begin
2031     if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
2032     if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
2033     Exit;
2034     GikoSys.Setting.MailList.Clear;
2035 h677 1.41 ClearMailAllEditor;
2036 h677 1.5 end;
2037     // *************************************************************************
2038 yoffy 1.9 //! ???潟??????腟?篋?????
2039 h677 1.5 // *************************************************************************
2040     procedure TGikoDM.ExitActionExecute(Sender: TObject);
2041     begin
2042     GikoForm.Close;
2043     end;
2044     // *************************************************************************
2045 yoffy 1.9 //! ??羂????ャ?????????鴻???若????絎?茵???????
2046 h677 1.5 // *************************************************************************
2047     procedure TGikoDM.ExportFavoriteFileBeforeExecute(Sender: TObject);
2048     begin
2049     ExportFavoriteFile.Dialog.FileName := FavoriteDM.GetFavoriteFilePath;
2050     end;
2051     // *************************************************************************
2052 yoffy 1.9 //! ??羂????ャ?????????鴻???若????絎?茵?????
2053 h677 1.5 // *************************************************************************
2054     procedure TGikoDM.ExportFavoriteFileAccept(Sender: TObject);
2055     begin
2056     if FavoriteDM.SaveFavoriteFile( ExportFavoriteFile.Dialog.FileName ) Then begin
2057     ShowMessage('???<?ゃ?????阪?????障????');
2058     end else begin
2059     ShowMessage('???<?ゃ?????阪????け?????障????');
2060     end;
2061     end;
2062     // *************************************************************************
2063 h677 1.19 //! ?御???鴻???????????<?ゃ?????絖?????
2064 h677 1.5 // *************************************************************************
2065 h677 1.19 procedure TGikoDM.SelectThreadSaveToFile(dat: Boolean);
2066 h677 1.5 var
2067     List: TList;
2068     i: Integer;
2069     html: TStringList;
2070     title: string;
2071     begin
2072     List := TList.Create;
2073     try
2074     GikoForm.ScreenCursor := crHourGlass;
2075     GikoForm.SelectListItem(List);
2076     if ((GikoSys.Setting.ListOrientation = gloVertical) and
2077     (GikoSys.Setting.ListHeightState = glsMax)) or
2078     ((GikoSys.Setting.ListOrientation = gloHorizontal) and
2079     (GikoSys.Setting.ListWidthState = glsMax)) then
2080     ShowMessage('?鴻??????筝?荀с??茵?ず???????????')
2081     else if(List.Count = 0) then
2082     ShowMessage('?鴻?????????御?????????????')
2083     else begin
2084 h677 1.19 if dat then begin
2085     SaveDialog.Title := '?御???鴻????????dat???障?鞘?絖?';
2086     SaveDialog.Filter := 'DAT???<?ゃ??*.dat)|*.dat';
2087     end else begin
2088     SaveDialog.Title := '?御???鴻????????HTML???????絖?';
2089     SaveDialog.Filter := 'HTML???<?ゃ??*.html)|*.html';
2090     end;
2091 h677 1.5 for i := 0 to List.Count - 1 do begin
2092     if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin
2093 h677 1.19 if dat then begin
2094     SaveDialog.FileName := TThreadItem(List[i]).FileName;
2095     end else begin
2096     SaveDialog.FileName := ReplaseNoValidateChar(TThreadItem(List[i]).Title) + '.html';
2097     end;
2098     if SaveDialog.Execute then begin
2099     if dat then begin
2100     CopyFile(PChar(TThreadItem(List[i]).FilePath),
2101     PChar(SaveDialog.FileName), true);
2102     end else begin
2103     html := TStringList.Create;
2104     title := TThreadItem(List[i]).Title;
2105     try
2106     HTMLCreater.CreateHTML3(html, TThreadItem(List[i]), title);
2107     html.SaveToFile(SaveDialog.FileName);
2108     THTMLCreate.SkinorCSSFilesCopy(ExtractFilePath(SaveDialog.FileName));
2109     finally
2110     html.Free;
2111     end;
2112 h677 1.5 end;
2113     end;
2114     end;
2115     end;
2116     end;
2117     finally
2118     GikoForm.ScreenCursor := crDefault;
2119     List.Free;
2120     end;
2121     end;
2122     // *************************************************************************
2123 h677 1.19 //! ?御???鴻????????HTML???????絖?
2124     // *************************************************************************
2125     procedure TGikoDM.SelectItemSaveForHTMLExecute(Sender: TObject);
2126     begin
2127     SelectThreadSaveToFile(false);
2128     end;
2129     // *************************************************************************
2130 yoffy 1.9 //! ?御???鴻????????DAT綵√????障?鞘?絖?
2131 h677 1.5 // *************************************************************************
2132     procedure TGikoDM.SelectItemSaveForDatExecute(Sender: TObject);
2133     begin
2134 h677 1.19 SelectThreadSaveToFile(true);
2135 h677 1.5 end;
2136     // *************************************************************************
2137 yoffy 1.9 //! ?帥??????????篆?絖?
2138 h677 1.5 // *************************************************************************
2139     procedure TGikoDM.TabsSaveActionExecute(Sender: TObject);
2140 h677 1.42 const
2141     Filename = 'tab.sav';
2142     bFilename = '~tab.sav';
2143     var
2144     SaveStringList: TStringList;
2145 h677 1.5 begin
2146 h677 1.42 SaveStringList := TStringList.Create;
2147     try
2148     GetTabURLs(SaveStringList);
2149     try
2150     if FileExists( GikoSys.GetAppDir + Filename) then begin
2151     CopyFile(PChar(GikoSys.GetAppDir + Filename),
2152     PChar(GikoSys.GetAppDir + bFilename), False);
2153     end;
2154     except
2155     end;
2156     SaveStringList.SaveToFile(GikoSys.GetAppDir + Filename);
2157     finally
2158     SaveStringList.Free;
2159     end;
2160 h677 1.5 end;
2161     // *************************************************************************
2162 h677 1.42 //! ???????吟?帥????┃絎????????????鴻????????RL??緇?
2163 h677 1.5 // *************************************************************************
2164 h677 1.42 procedure TGikoDM.GetTabURLs(AStringList: TStringList);
2165     var
2166     rec : TBrowserRecord;
2167     i : Integer;
2168 h677 1.5 begin
2169 h677 1.42 for i := 0 to GikoForm.BrowserTab.Tabs.Count -1 do begin
2170     try
2171     rec := TBrowserRecord( GikoForm.BrowserTab.Tabs.Objects[ i ] );
2172     if( rec <> nil) and (rec.Thread <> nil) then
2173     AStringList.Add( rec.Thread.URL );
2174     except
2175     end;
2176 h677 1.39 end;
2177 h677 1.5 end;
2178     // *************************************************************************
2179 h677 1.42 //! ??絎???????URL??????鐚????????帥?????????若???鴻????
2180 h677 1.5 // *************************************************************************
2181 h677 1.42 procedure TGikoDM.OpenURLs(AStringList: TStringList);
2182     var
2183     GikoTab : TGikoTabAppend;
2184     i, bound : Integer;
2185     item : TThreadItem;
2186     begin
2187     if (AStringList <> nil) then begin
2188     GikoTab := GikoSys.Setting.BrowserTabAppend;
2189     try
2190     bound := AStringList.Count - 1;
2191     if bound > -1 then begin
2192     GikoSys.Setting.BrowserTabAppend := gtpLast;
2193     for i := 0 to bound do begin
2194     item := BBSsFindThreadFromURL( AStringList[ i ] );
2195     if item <> nil then
2196     GikoForm.InsertBrowserTab( item, false );
2197     end;
2198     //???????????┃絎? ?≪?????鴻??┃絎??????????????若??/span>
2199     if GikoForm.BrowserTab.Tabs.Count > 0 then begin
2200     GikoForm.BrowserTab.OnChange(nil);
2201     end;
2202     end;
2203     finally
2204     GikoSys.Setting.BrowserTabAppend := GikoTab;
2205     end;
2206     end;
2207 h677 1.5 end;
2208     // *************************************************************************
2209 h677 1.42 //! ?帥??????????緇???
2210 h677 1.5 // *************************************************************************
2211 h677 1.42 procedure TGikoDM.TabsOpenActionExecute(Sender: TObject);
2212     const
2213     TABFILE = 'tab.sav';
2214     var
2215     URLs : TStringList;
2216     fileName : string;
2217 h677 1.5 begin
2218 h677 1.42 URLs := TStringList.Create();
2219     try
2220     fileName := ExtractFilePath(Application.ExeName) + TABFILE;
2221     if FileExists(fileName) then begin
2222     try
2223     URLs.LoadFromFile(fileName);
2224     if (URLs.Count = 0) then begin
2225     // 腥冴?????<?ゃ?????翫??鐚????????≪?????????ゃ????????????????/span>
2226     SysUtils.DeleteFile(fileName);
2227     end else begin
2228     OpenURLs(URLs);
2229     end;
2230     except
2231     on EFOpenError do ShowMessage('?帥?????<?ゃ?????????障????');
2232     end;
2233     end;
2234     finally
2235     URLs.Free;
2236     end;
2237    
2238 h677 1.42.2.1 if (GikoForm.BrowserTab.Tabs.Count = 0) and
2239     (TabsOpenAction.Tag = 0) then begin
2240 h677 1.42 ShowMessage('茵?ず?????帥?????????障??????');
2241     end;
2242 h677 1.5 end;
2243     // *************************************************************************
2244 yoffy 1.9 //! Be2ch?????違?ゃ?????違?≪????????
2245 h677 1.5 // *************************************************************************
2246     procedure TGikoDM.BeLogInOutActionExecute(Sender: TObject);
2247     begin
2248     GikoSys.Setting.BeLogin := not GikoSys.Setting.BeLogin;
2249     end;
2250     // *************************************************************************
2251 yoffy 1.9 //! Be2ch?????違?ゃ?????違?≪??????????pdate?ゃ???潟??
2252 h677 1.5 // *************************************************************************
2253     procedure TGikoDM.BeLogInOutActionUpdate(Sender: TObject);
2254     begin
2255     if (GikoSys.Setting.BeUserID <> '') and (GikoSys.Setting.BeCode <> '') then begin
2256     if (GikoSys.Setting.BeLogin) then BeLogInOutAction.Checked := true
2257     else BeLogInOutAction.Checked := false;
2258     BeLogInOutAction.Enabled := true
2259     end else
2260     BeLogInOutAction.Enabled := false;
2261     end;
2262     ////////////////////////////////???<?ゃ???障?с?????障??/////////////////////
2263 h677 1.6 // *************************************************************************
2264 yoffy 1.9 //! ?潟?潟?障?ц?????
2265 h677 1.6 // *************************************************************************
2266     procedure TGikoDM.KokomadeActionExecute(Sender: TObject);
2267     var
2268     No: Integer;
2269     ThreadItem: TThreadItem;
2270     begin
2271     No := GikoForm.KokoPopupMenu.Tag;
2272     if No = 0 then Exit;
2273     ThreadItem := GikoForm.GetActiveContent;
2274     if ThreadItem = nil then Exit;
2275     ThreadItem.Kokomade := No;
2276     GikoForm