ギコナビ
リビジョン | 14eb15e5f0007500f7121006c9942ab634126878 (tree) |
---|---|
日時 | 2006-08-06 23:37:45 |
作者 | cvs2git <cvs2git> |
コミッター | cvs2git |
This commit was manufactured by cvs2svn to create tag 'v1_54_0_674'.
@@ -883,8 +883,11 @@ begin | ||
883 | 883 | Dec(ps); |
884 | 884 | |
885 | 885 | //VAêuNÌÅÈ¢ |
886 | - if (icode <1792) or (icode > 1871) then | |
887 | - Result := Result + Copy(AString, 1, ps - PChar(AString) + 1); | |
886 | + if ( icode < 1758) or | |
887 | + ((icode > 1871) and (icode < 1958)) or | |
888 | + (icode > 1968) then begin | |
889 | + Result := Result + Copy(AString, 1, ps - PChar(AString) + 1); | |
890 | + end; | |
888 | 891 | |
889 | 892 | Delete(AString, 1, ps - PChar(AString) + 1); |
890 | 893 | end else begin |
@@ -159,7 +159,7 @@ object GikoForm: TGikoForm | ||
159 | 159 | object ToolBar1: TToolBar |
160 | 160 | Left = 2 |
161 | 161 | Top = 4 |
162 | - Width = 15 | |
162 | + Width = 16 | |
163 | 163 | Height = 18 |
164 | 164 | Align = alNone |
165 | 165 | AutoSize = True |
@@ -971,7 +971,7 @@ object GikoForm: TGikoForm | ||
971 | 971 | OnResize = AddressToolBarResize |
972 | 972 | object AddressComboBox: TComboBox |
973 | 973 | Left = 0 |
974 | - Top = 0 | |
974 | + Top = 1 | |
975 | 975 | Width = 177 |
976 | 976 | Height = 20 |
977 | 977 | DropDownCount = 20 |
@@ -4520,6 +4520,12 @@ object GikoForm: TGikoForm | ||
4520 | 4520 | object N61: TMenuItem |
4521 | 4521 | Caption = '-' |
4522 | 4522 | end |
4523 | + object N77: TMenuItem | |
4524 | + Action = GikoDM.StoredTaskTrayAction | |
4525 | + end | |
4526 | + object N78: TMenuItem | |
4527 | + Caption = '-' | |
4528 | + end | |
4523 | 4529 | object ExitMenu: TMenuItem |
4524 | 4530 | Action = GikoDM.ExitAction |
4525 | 4531 | end |
@@ -18,7 +18,8 @@ uses | ||
18 | 18 | Editor, RoundData, GikoPanel, Favorite, HTMLDocumentEvent, |
19 | 19 | HintWindow, GikoCoolBar, GikoListView, Search, ExternalBoardManager, |
20 | 20 | ExternalBoardPlugInMain, StdActns, Variants, ExtActns,IdTCPConnection, |
21 | - IdBaseComponent, IdTCPClient, AppEvnts, BrowserRecord; | |
21 | + IdBaseComponent, IdTCPClient, AppEvnts, BrowserRecord, MoveHistoryItem, | |
22 | + ShellAPI; | |
22 | 23 | |
23 | 24 | const |
24 | 25 | NGWORDNAME_PANEL = 3; |
@@ -409,6 +410,8 @@ type | ||
409 | 410 | DAT3: TMenuItem; |
410 | 411 | N76: TMenuItem; |
411 | 412 | FavoriteTreeItemNameCopyPopupMenu: TMenuItem; |
413 | + N77: TMenuItem; | |
414 | + N78: TMenuItem; | |
412 | 415 | procedure FormCreate(Sender: TObject); |
413 | 416 | procedure FormDestroy(Sender: TObject); |
414 | 417 | procedure BrowserStatusTextChange(Sender: TObject; |
@@ -594,6 +597,7 @@ type | ||
594 | 597 | FOrigenCaption: String; //¨CÉüèc[ÌACeÒWÌÒWO̶ñ |
595 | 598 | FPreviewBrowserRect: TRect; ///< vr [Ì\¦ÊuðL¯·é |
596 | 599 | FActionListGroupIndexes: array of Integer; ///<GikoDMãÌANVXgÌeANVÉÝè³ê½GroupIndexðÛ¶·ézñ |
600 | + | |
597 | 601 | procedure DownloadEnd(Sender: TObject; Item: TDownloadItem); |
598 | 602 | procedure DownloadMsg(Sender: TObject; Item: TDownloadItem; Msg: string; Icon: TGikoMessageIcon); |
599 | 603 | procedure WorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer; Number: Integer; const AWorkTitle: string); |
@@ -665,6 +669,8 @@ type | ||
665 | 669 | procedure RefreshListView(Thread: TThreadItem); |
666 | 670 | //! XbhêÌ\¦ÍÍÝè`FbNNA |
667 | 671 | procedure ClearThreadRengeAction; |
672 | + //! ^XNgCÌACRítH[\¦ | |
673 | + procedure UnStoredTaskTray; | |
668 | 674 | protected |
669 | 675 | procedure CreateParams(var Params: TCreateParams); override; |
670 | 676 | procedure WndProc(var Message: TMessage); override; |
@@ -677,6 +683,7 @@ type | ||
677 | 683 | LastRoundTime: TDateTime; |
678 | 684 | BrowserNullTab: TBrowserRecord; |
679 | 685 | FControlThread: TThreadControl; |
686 | + FIconData : TNotifyIconData; | |
680 | 687 | procedure MoveToURL(const inURL: string); |
681 | 688 | function InsertBrowserTab(ThreadItem: TThreadItem; ActiveTab: Boolean = True) : TBrowserRecord; |
682 | 689 | procedure ReloadBBS; |
@@ -788,6 +795,11 @@ type | ||
788 | 795 | //! c[o[ÉXiÝR{{bNXðÝè·é |
789 | 796 | procedure SetSelectComboBox(); |
790 | 797 | |
798 | + //! ^XNgCÉi[µ½ACRðNbNµ½Æ«Ì | |
799 | + procedure TaskTrayIconMessage(var Msg : TMsg); message WM_USER + 2010; | |
800 | + //! ^XNgCÉACRo^tH[Bµ | |
801 | + procedure StoredTaskTray; | |
802 | + | |
791 | 803 | published |
792 | 804 | property EnabledCloseButton: Boolean read FEnabledCloseButton write SetEnabledCloseButton; |
793 | 805 | end; |
@@ -820,7 +832,7 @@ implementation | ||
820 | 832 | |
821 | 833 | uses |
822 | 834 | GikoUtil, IndividualAbon, Math, Kotehan, KeySetting, |
823 | - YofUtils, ShellAPI, ToolBarUtil, ToolBarSetting, | |
835 | + YofUtils, ToolBarUtil, ToolBarSetting, | |
824 | 836 | GikoXMLDoc, RoundName, IniFiles, FavoriteAdd, |
825 | 837 | FavoriteArrange, AddressHistory, Preview, Gesture, |
826 | 838 | About, Option, Round, Splash, Sort, ListSelect, Imm, |
@@ -843,6 +855,7 @@ const | ||
843 | 855 | USER_MINIMIZED = WM_USER + 2002; |
844 | 856 | USER_SETLINKBAR = WM_USER + 2003; |
845 | 857 | USER_DOCUMENTCOMPLETE = WM_USER + 2004; ///< wParam : TWebBrowser |
858 | + USER_TASKTRAY = WM_USER + 2010; | |
846 | 859 | {$R *.DFM} |
847 | 860 | |
848 | 861 | procedure TGikoForm.CreateParams(var Params: TCreateParams); |
@@ -889,7 +902,8 @@ begin | ||
889 | 902 | GetGroupIndex(GikoDM.GikoFormActionList); |
890 | 903 | FSearchDialog := nil; |
891 | 904 | CreateBrowsers(BROWSER_COUNT); |
892 | - | |
905 | + FIconData.uID := 0; | |
906 | + | |
893 | 907 | //j [tHg |
894 | 908 | SetMenuFont; |
895 | 909 |
@@ -1287,6 +1301,7 @@ begin | ||
1287 | 1301 | |
1288 | 1302 | //üÍAVXg@\Ìú» |
1289 | 1303 | InputAssistDM.Init(GikoSys.GetInputAssistFileName); |
1304 | + | |
1290 | 1305 | end; |
1291 | 1306 | |
1292 | 1307 | // CoolBar ÌÝèðÏÉÛ¶ |
@@ -3884,15 +3899,17 @@ var | ||
3884 | 3899 | wkIntTo: Integer; |
3885 | 3900 | BNum, BRes: string; |
3886 | 3901 | threadItem: TThreadItem; |
3902 | + aElement : IHTMLElement; | |
3887 | 3903 | begin |
3888 | - | |
3889 | 3904 | Cancel := True; |
3890 | - if (IHTMLDocument2(TWebBrowser(Sender).Document).activeElement <> nil) then begin | |
3891 | - Text := IHTMLDocument2(TWebBrowser(Sender).Document).activeElement.Get_outerText; | |
3892 | - Html := IHTMLDocument2(TWebBrowser(Sender).Document).activeElement.Get_outerHTML; | |
3905 | + aElement := IHTMLDocument2(TWebBrowser(Sender).Document).activeElement; | |
3906 | + if ( aElement <> nil) then begin | |
3907 | + Text := aElement.Get_outerText; | |
3908 | + Html := aElement.Get_outerHTML; | |
3893 | 3909 | if(AnsiPos('>>', Text) = 1) or (AnsiPos('>', Text) = 1) |
3894 | 3910 | or (AnsiPos('', Text) = 1) or (AnsiPos('', Text) = 1) then begin |
3895 | 3911 | if GikoSys.Setting.ResAnchorJamp then begin |
3912 | + | |
3896 | 3913 | Text := ZenToHan(Trim(Text)); |
3897 | 3914 | |
3898 | 3915 | if(AnsiPos('>>', Text) = 1) then begin |
@@ -3915,6 +3932,7 @@ begin | ||
3915 | 3932 | |
3916 | 3933 | if wkIntSt <> 0 then begin |
3917 | 3934 | FActiveContent.IDAnchorPopup(''); |
3935 | + MoveHisotryManager.pushItem(FActiveContent); | |
3918 | 3936 | BrowserMovement(IntToStr(wkIntSt)); |
3919 | 3937 | end; |
3920 | 3938 |
@@ -3948,6 +3966,7 @@ begin | ||
3948 | 3966 | AddressComboBox.Items.Insert(0, URL); |
3949 | 3967 | end; |
3950 | 3968 | end; |
3969 | + MoveHisotryManager.pushItem(FActiveContent); | |
3951 | 3970 | MoveToURL( URL ); |
3952 | 3971 | end; |
3953 | 3972 | end; |
@@ -4830,7 +4849,13 @@ begin | ||
4830 | 4849 | USER_RESIZED: |
4831 | 4850 | OnResized; |
4832 | 4851 | USER_MINIMIZED: |
4833 | - OnMinimized; | |
4852 | + begin | |
4853 | + if (GikoSys.Setting.StoredTaskTray) then begin | |
4854 | + // ^XNgCÉACRðÇÁ·é | |
4855 | + StoredTaskTray; | |
4856 | + end; | |
4857 | + OnMinimized; | |
4858 | + end; | |
4834 | 4859 | USER_SETLINKBAR: |
4835 | 4860 | SetLinkBar; |
4836 | 4861 | USER_DOCUMENTCOMPLETE: |
@@ -7696,6 +7721,52 @@ begin | ||
7696 | 7721 | end; |
7697 | 7722 | end; |
7698 | 7723 | |
7724 | +procedure TGikoForm.TaskTrayIconMessage(var Msg: TMsg); | |
7725 | +begin | |
7726 | + // ¶NbNÈç³·é | |
7727 | + if (Msg.wParam = WM_LBUTTONUP) then begin | |
7728 | + UnStoredTaskTray; | |
7729 | + end; | |
7730 | +end; | |
7731 | +//! ^XNgCÉACRo^tH[Bµ | |
7732 | +procedure TGikoForm.StoredTaskTray; | |
7733 | +begin | |
7734 | + try | |
7735 | + if (FIconData.uID = 0) then begin | |
7736 | + FIconData.cbSize := SizeOf(TNotifyIconData); | |
7737 | + FIconData.uID := Self.Handle; | |
7738 | + FIconData.Wnd := Handle; | |
7739 | + FIconData.uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP; | |
7740 | + FIconData.uCallbackMessage := USER_TASKTRAY; | |
7741 | + FIconData.hIcon := Application.Icon.Handle; {ACRwè} | |
7742 | + FIconData.szTip := 'MRir'; {qg¶ñ} | |
7743 | + Shell_NotifyIcon(NIM_ADD, @FIconData); | |
7744 | + ShowWindow(Self.Handle, SW_HIDE); | |
7745 | + end; | |
7746 | + except | |
7747 | + end; | |
7748 | +end; | |
7749 | +//! ^XNgCÌACRítH[\¦ | |
7750 | +procedure TGikoForm.UnStoredTaskTray; | |
7751 | +begin | |
7752 | + try | |
7753 | + try | |
7754 | + Shell_NotifyIcon(NIM_DELETE, @FIconData); | |
7755 | + SetForegroundWindow(Application.Handle); | |
7756 | + except | |
7757 | + end; | |
7758 | + finally | |
7759 | + FIconData.uID := 0; | |
7760 | + // Action©çi[µ½Æ«ÍTagÌlÍ0ÈO | |
7761 | + if (GikoDM.StoredTaskTrayAction.Tag = 0) then begin | |
7762 | + ShowWindow(Self.Handle, SW_RESTORE); | |
7763 | + end else begin | |
7764 | + ShowWindow(Self.Handle, SW_SHOW); | |
7765 | + end; | |
7766 | + GikoDM.StoredTaskTrayAction.Tag := 0; | |
7767 | + end; | |
7768 | +end; | |
7769 | + | |
7699 | 7770 | initialization |
7700 | 7771 | OleInitialize(nil); |
7701 | 7772 | finalization |
@@ -1235,6 +1235,56 @@ object GikoDM: TGikoDM | ||
1235 | 1235 | OnExecute = CloseAllEditorActionExecute |
1236 | 1236 | OnUpdate = CloseAllEditorActionUpdate |
1237 | 1237 | end |
1238 | + object PrevMoveHistory: TAction | |
1239 | + Category = #25805#20316 | |
1240 | + Caption = #12522#12531#12463#23653#27508#12434#25147#12427 | |
1241 | + Hint = #12522#12531#12463#23653#27508#12434#25147#12427 | |
1242 | + OnExecute = PrevMoveHistoryExecute | |
1243 | + OnUpdate = PrevMoveHistoryUpdate | |
1244 | + end | |
1245 | + object NextMoveHistory: TAction | |
1246 | + Category = #25805#20316 | |
1247 | + Caption = #12522#12531#12463#23653#27508#12434#36914#12416 | |
1248 | + Hint = #12522#12531#12463#23653#27508#12434#36914#12416 | |
1249 | + OnExecute = NextMoveHistoryExecute | |
1250 | + OnUpdate = NextMoveHistoryUpdate | |
1251 | + end | |
1252 | + object ClickActiveElementAction: TAction | |
1253 | + Category = #12473#12524#12483#12489 | |
1254 | + Caption = #12450#12463#12486#12451#12502#12394#35201#32032#12434#12463#12522#12483#12463#12377#12427 | |
1255 | + Hint = #12450#12463#12486#12451#12502#12394#35201#32032#12434#12463#12522#12483#12463#12377#12427 | |
1256 | + OnExecute = ClickActiveElementActionExecute | |
1257 | + end | |
1258 | + object VKDownAction: TAction | |
1259 | + Category = #25805#20316 | |
1260 | + Caption = #19979#30690#21360#12461#12540#25276#19979 | |
1261 | + Hint = #19979#30690#21360#12461#12540#25276#19979 | |
1262 | + OnExecute = VKDownActionExecute | |
1263 | + end | |
1264 | + object VKUpAction: TAction | |
1265 | + Category = #25805#20316 | |
1266 | + Caption = #19978#30690#21360#12461#12540#25276#19979 | |
1267 | + Hint = #19978#30690#21360#12461#12540#25276#19979 | |
1268 | + OnExecute = VKUpActionExecute | |
1269 | + end | |
1270 | + object VKRightAction: TAction | |
1271 | + Category = #25805#20316 | |
1272 | + Caption = #21491#30690#21360#12461#12540#25276#19979 | |
1273 | + Hint = #21491#30690#21360#12461#12540#25276#19979 | |
1274 | + OnExecute = VKRightActionExecute | |
1275 | + end | |
1276 | + object VKLeftAction: TAction | |
1277 | + Category = #25805#20316 | |
1278 | + Caption = #24038#30690#21360#12461#12540#25276#19979 | |
1279 | + Hint = #24038#30690#21360#12461#12540#25276#19979 | |
1280 | + OnExecute = VKLeftActionExecute | |
1281 | + end | |
1282 | + object StoredTaskTrayAction: TAction | |
1283 | + Category = #25805#20316 | |
1284 | + Caption = #12479#12473#12463#12488#12524#12452#12395#26684#32013#12377#12427 | |
1285 | + Hint = #12479#12473#12463#12488#12524#12452#12395#26684#32013#12377#12427 | |
1286 | + OnExecute = StoredTaskTrayActionExecute | |
1287 | + end | |
1238 | 1288 | end |
1239 | 1289 | object ToobarImageList: TImageList |
1240 | 1290 | Left = 44 |
@@ -12,7 +12,7 @@ uses | ||
12 | 12 | MSHTML_TLB, |
13 | 13 | {$IFEND} |
14 | 14 | ComCtrls, BrowserRecord, Graphics, Messages, Setting, Dialogs, |
15 | - ActiveX; | |
15 | + ActiveX, MoveHistoryItem; | |
16 | 16 | |
17 | 17 | const |
18 | 18 | CAPTION_NAME: string = 'MRir'; |
@@ -219,6 +219,14 @@ type | ||
219 | 219 | LiveItemAction: TAction; |
220 | 220 | FavoriteTreeViewItemNameCopyAction: TAction; |
221 | 221 | CloseAllEditorAction: TAction; |
222 | + PrevMoveHistory: TAction; | |
223 | + NextMoveHistory: TAction; | |
224 | + ClickActiveElementAction: TAction; | |
225 | + VKDownAction: TAction; | |
226 | + VKUpAction: TAction; | |
227 | + VKRightAction: TAction; | |
228 | + VKLeftAction: TAction; | |
229 | + StoredTaskTrayAction: TAction; | |
222 | 230 | procedure EditNGActionExecute(Sender: TObject); |
223 | 231 | procedure ReloadActionExecute(Sender: TObject); |
224 | 232 | procedure GoFowardActionExecute(Sender: TObject); |
@@ -406,6 +414,16 @@ type | ||
406 | 414 | procedure FavoriteTreeViewItemNameCopyActionExecute(Sender: TObject); |
407 | 415 | procedure CloseAllEditorActionExecute(Sender: TObject); |
408 | 416 | procedure CloseAllEditorActionUpdate(Sender: TObject); |
417 | + procedure PrevMoveHistoryUpdate(Sender: TObject); | |
418 | + procedure PrevMoveHistoryExecute(Sender: TObject); | |
419 | + procedure NextMoveHistoryUpdate(Sender: TObject); | |
420 | + procedure NextMoveHistoryExecute(Sender: TObject); | |
421 | + procedure ClickActiveElementActionExecute(Sender: TObject); | |
422 | + procedure VKDownActionExecute(Sender: TObject); | |
423 | + procedure VKUpActionExecute(Sender: TObject); | |
424 | + procedure VKRightActionExecute(Sender: TObject); | |
425 | + procedure VKLeftActionExecute(Sender: TObject); | |
426 | + procedure StoredTaskTrayActionExecute(Sender: TObject); | |
409 | 427 | private |
410 | 428 | { Private é¾ } |
411 | 429 | procedure ClearResFilter; |
@@ -421,6 +439,8 @@ type | ||
421 | 439 | procedure ClearSelectComboBox; |
422 | 440 | procedure ClearMailAllEditor(); |
423 | 441 | procedure ClearNameTextAllEditor(); |
442 | + procedure MoveURLWithHistory(URL : String); | |
443 | + procedure BackToHistory(item: TMoveHistoryItem); | |
424 | 444 | public |
425 | 445 | { Public é¾ } |
426 | 446 | procedure RepaintStatusBar; |
@@ -554,24 +574,10 @@ end; | ||
554 | 574 | //! AhXo[É\¦µÄ¢éAhXÖÚ®·é |
555 | 575 | // ************************************************************************* |
556 | 576 | procedure TGikoDM.MoveToActionExecute(Sender: TObject); |
557 | -var | |
558 | - URL: string; | |
559 | - idx: Integer; | |
560 | 577 | begin |
561 | 578 | //AhXR{{bNX©çURLðæ¾ |
562 | - URL := Trim(GikoForm.AddressComboBox.Text); | |
563 | 579 | //URLÉÚ® |
564 | - GikoForm.MoveToURL(URL); | |
565 | - //ȺAðÌ | |
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; | |
580 | + MoveURLWithHistory( Trim(GikoForm.AddressComboBox.Text) ); | |
575 | 581 | end; |
576 | 582 | // ************************************************************************* |
577 | 583 | //! ¨CÉüèÌÇÁ_CAOðJ |
@@ -2235,7 +2241,8 @@ begin | ||
2235 | 2241 | URLs.Free; |
2236 | 2242 | end; |
2237 | 2243 | |
2238 | - if (GikoForm.BrowserTab.Tabs.Count = 0) then begin | |
2244 | + if (GikoForm.BrowserTab.Tabs.Count = 0) and | |
2245 | + (TabsOpenAction.Tag <> 1) then begin | |
2239 | 2246 | ShowMessage('\¦·é^uª èܹñB'); |
2240 | 2247 | end; |
2241 | 2248 | end; |
@@ -3685,7 +3692,7 @@ end; | ||
3685 | 3692 | // ************************************************************************* |
3686 | 3693 | procedure TGikoDM.SetFocusForBrowserActionExecute(Sender: TObject); |
3687 | 3694 | begin |
3688 | - GikoForm.ActiveContent.Browser.SetFocus; | |
3695 | + GikoForm.ActiveContent.Browser.SetFocus; | |
3689 | 3696 | end; |
3690 | 3697 | // ************************************************************************* |
3691 | 3698 | //! uEUÉtH[JXðÄéUpdateCxg |
@@ -4038,5 +4045,137 @@ begin | ||
4038 | 4045 | end; |
4039 | 4046 | end; |
4040 | 4047 | |
4048 | +// ************************************************************************* | |
4049 | +//! NððßéÌXV | |
4050 | +// ************************************************************************* | |
4051 | +procedure TGikoDM.PrevMoveHistoryUpdate(Sender: TObject); | |
4052 | +begin | |
4053 | + PrevMoveHistory.Enabled := | |
4054 | + (MoveHisotryManager.HisotryIndex > 0) | |
4055 | +end; | |
4056 | +// ************************************************************************* | |
4057 | +//! Nððßé | |
4058 | +// ************************************************************************* | |
4059 | +procedure TGikoDM.PrevMoveHistoryExecute(Sender: TObject); | |
4060 | +begin | |
4061 | + if ( GikoForm.BrowserTab.TabIndex >= 0 ) then begin | |
4062 | + BackToHistory(MoveHisotryManager.getPrevItem | |
4063 | + (TBrowserRecord(GikoForm.BrowserTab.Tabs | |
4064 | + .Objects[GikoForm.BrowserTab.TabIndex]))); | |
4065 | + end else begin | |
4066 | + BackToHistory(MoveHisotryManager.getPrevItem( nil ) ); | |
4067 | + end; | |
4068 | +end; | |
4069 | +//! Nð | |
4070 | +procedure TGikoDM.BackToHistory(item: TMoveHistoryItem); | |
4071 | +var | |
4072 | + browser : TWebBrowser; | |
4073 | + doc : OleVariant; | |
4074 | +begin | |
4075 | + if ( item <> nil ) then begin | |
4076 | + if ( GikoForm.GetActiveContent = item.ThreadItem ) then begin | |
4077 | + browser := TBrowserRecord(GikoForm.BrowserTab.Tabs | |
4078 | + .Objects[GikoForm.BrowserTab.TabIndex]).Browser; | |
4079 | + if (browser <> nil) then begin | |
4080 | + try | |
4081 | + doc := Idispatch( olevariant(browser.ControlInterface).Document) as IHTMLDocument2; | |
4082 | + doc.Body.ScrollTop := item.ScrollTop; | |
4083 | + except | |
4084 | + end; | |
4085 | + end; | |
4086 | + end else begin | |
4087 | + //URLÉÚ® | |
4088 | + MoveURLWithHistory(item.ThreadItem.URL); | |
4089 | + end; | |
4090 | + end; | |
4091 | +end; | |
4092 | +//! ð«URLÚ® | |
4093 | +procedure TGikoDM.MoveURLWithHistory(URL : String); | |
4094 | +var | |
4095 | + idx : Integer; | |
4096 | +begin | |
4097 | + //URLÉÚ® | |
4098 | + GikoForm.MoveToURL(URL); | |
4099 | + //ȺAðÌ | |
4100 | + idx := GikoForm.AddressComboBox.Items.IndexOf(URL); | |
4101 | + if idx = -1 then begin | |
4102 | + GikoForm.AddressComboBox.Items.Insert(0, URL); | |
4103 | + if GikoForm.AddressComboBox.Items.Count > GikoSys.Setting.AddressHistoryCount then | |
4104 | + GikoForm.AddressComboBox.Items.Delete(GikoForm.AddressComboBox.Items.Count - 1); | |
4105 | + end else begin | |
4106 | + GikoForm.AddressComboBox.Items.Delete(idx); | |
4107 | + GikoForm.AddressComboBox.Items.Insert(0, URL); | |
4108 | + end; | |
4109 | +end; | |
4110 | +// ************************************************************************* | |
4111 | +//! NððiÞÌXV | |
4112 | +// ************************************************************************* | |
4113 | +procedure TGikoDM.NextMoveHistoryUpdate(Sender: TObject); | |
4114 | +begin | |
4115 | + NextMoveHistory.Enabled := | |
4116 | + (MoveHisotryManager.HisotryIndex < MoveHisotryManager.Count - 1); | |
4117 | +end; | |
4118 | +// ************************************************************************* | |
4119 | +//! NððiÞ | |
4120 | +// ************************************************************************* | |
4121 | +procedure TGikoDM.NextMoveHistoryExecute(Sender: TObject); | |
4122 | +begin | |
4123 | + BackToHistory(MoveHisotryManager.getNextItem); | |
4124 | +end; | |
4125 | +// ************************************************************************* | |
4126 | +//! ANeBuvfÌNbN | |
4127 | +// ************************************************************************* | |
4128 | +procedure TGikoDM.ClickActiveElementActionExecute(Sender: TObject); | |
4129 | +var | |
4130 | + browser : TWebBrowser; | |
4131 | + elem : IHTMLElement; | |
4132 | +begin | |
4133 | + if (GikoForm.GetActiveContent <> nil) then begin | |
4134 | + if (GikoForm.BrowserTab.Tabs.Count > 0) and | |
4135 | + (GikoForm.BrowserTab.TabIndex >= 0) then begin | |
4136 | + browser := TBrowserRecord(GikoForm.BrowserTab.Tabs | |
4137 | + .Objects[GikoForm.BrowserTab.TabIndex]).Browser; | |
4138 | + if (browser <> nil) then begin | |
4139 | + try | |
4140 | + elem := IHTMLDocument2(browser.Document).activeElement; | |
4141 | + elem.click; | |
4142 | + except | |
4143 | + end; | |
4144 | + end; | |
4145 | + | |
4146 | + end; | |
4147 | + end; | |
4148 | +end; | |
4149 | +//! «L[ÌG~ [gANV | |
4150 | +procedure TGikoDM.VKDownActionExecute(Sender: TObject); | |
4151 | +begin | |
4152 | + keybd_event(VK_DOWN, 0, KEYEVENTF_EXTENDEDKEY, 0); | |
4153 | + keybd_event(VK_DOWN, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0); | |
4154 | +end; | |
4155 | +//! ªL[ÌG~ [gANV | |
4156 | +procedure TGikoDM.VKUpActionExecute(Sender: TObject); | |
4157 | +begin | |
4158 | + keybd_event(VK_UP, 0, KEYEVENTF_EXTENDEDKEY, 0); | |
4159 | + keybd_event(VK_UP, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0); | |
4160 | +end; | |
4161 | +//! ¨L[ÌG~ [gANV | |
4162 | +procedure TGikoDM.VKRightActionExecute(Sender: TObject); | |
4163 | +begin | |
4164 | + keybd_event(VK_RIGHT, 0, KEYEVENTF_EXTENDEDKEY, 0); | |
4165 | + keybd_event(VK_RIGHT, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0); | |
4166 | +end; | |
4167 | +//! ©L[ÌG~ [gANV | |
4168 | +procedure TGikoDM.VKLeftActionExecute(Sender: TObject); | |
4169 | +begin | |
4170 | + keybd_event(VK_LEFT, 0, KEYEVENTF_EXTENDEDKEY, 0); | |
4171 | + keybd_event(VK_LEFT, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0); | |
4172 | +end; | |
4173 | +//! ^XNgCÉi[·é | |
4174 | +procedure TGikoDM.StoredTaskTrayActionExecute(Sender: TObject); | |
4175 | +begin | |
4176 | + GikoForm.StoredTaskTray; | |
4177 | + StoredTaskTrayAction.Tag := -1; | |
4178 | +end; | |
4179 | + | |
4041 | 4180 | end. |
4042 | 4181 |
@@ -256,7 +256,7 @@ const | ||
256 | 256 | ZERO_DATE: Integer = 25569; |
257 | 257 | BETA_VERSION_NAME_E = 'beta'; |
258 | 258 | BETA_VERSION_NAME_J = 'ÊÞÀ'; |
259 | - BETA_VERSION = 53; | |
259 | + BETA_VERSION = 54; | |
260 | 260 | BETA_VERSION_BUILD = ''; //!< debugÅÈÇ |
261 | 261 | APP_NAME = 'gikoNavi'; |
262 | 262 | BE_PHP_URL = 'http://be.2ch.net/test/p.php?i='; |
@@ -395,6 +395,35 @@ object KuroutOption: TKuroutOption | ||
395 | 395 | TabOrder = 0 |
396 | 396 | end |
397 | 397 | end |
398 | + object GroupBox3: TGroupBox | |
399 | + Left = 16 | |
400 | + Top = 126 | |
401 | + Width = 473 | |
402 | + Height = 51 | |
403 | + Caption = #12522#12531#12463#31227#21205#23653#27508 | |
404 | + TabOrder = 1 | |
405 | + object Label10: TLabel | |
406 | + Left = 8 | |
407 | + Top = 20 | |
408 | + Width = 84 | |
409 | + Height = 12 | |
410 | + Caption = #23653#27508#26368#22823#20445#25345#25968 | |
411 | + end | |
412 | + object Label11: TLabel | |
413 | + Left = 227 | |
414 | + Top = 20 | |
415 | + Width = 158 | |
416 | + Height = 12 | |
417 | + Caption = #65288#12487#12501#12457#12523#12488'=20 '#20877#36215#21205#24460#26377#21177#65289 | |
418 | + end | |
419 | + object MoveHistoryMaxEdit: TEdit | |
420 | + Left = 112 | |
421 | + Top = 16 | |
422 | + Width = 105 | |
423 | + Height = 20 | |
424 | + TabOrder = 0 | |
425 | + end | |
426 | + end | |
398 | 427 | end |
399 | 428 | end |
400 | 429 | object OkBotton: TButton |
@@ -61,6 +61,10 @@ type | ||
61 | 61 | Label8: TLabel; |
62 | 62 | FixedCookieEdit: TEdit; |
63 | 63 | Label9: TLabel; |
64 | + GroupBox3: TGroupBox; | |
65 | + Label10: TLabel; | |
66 | + MoveHistoryMaxEdit: TEdit; | |
67 | + Label11: TLabel; | |
64 | 68 | procedure OkBottonClick(Sender: TObject); |
65 | 69 | procedure FormCreate(Sender: TObject); |
66 | 70 | procedure CDeleteButtonClick(Sender: TObject); |
@@ -123,6 +127,8 @@ begin | ||
123 | 127 | RemoteTrapAtt.Checked := GikoSys.Setting.RemoteTrapAtt; |
124 | 128 | // Cookie |
125 | 129 | FixedCookieEdit.Text := GikoSys.Setting.FixedCookie; |
130 | + // NÚ®ð | |
131 | + MoveHistoryMaxEdit.Text := IntToStr( GikoSys.Setting.MoveHistorySize ); | |
126 | 132 | end; |
127 | 133 | |
128 | 134 | procedure TKuroutOption.SaveSetting; |
@@ -150,6 +156,9 @@ begin | ||
150 | 156 | // Cookie |
151 | 157 | GikoSys.Setting.FixedCookie := FixedCookieEdit.Text; |
152 | 158 | |
159 | + // NÚ®ð | |
160 | + GikoSys.Setting.MoveHistorySize := | |
161 | + StrToIntDef( MoveHistoryMaxEdit.Text, 20 ); | |
153 | 162 | |
154 | 163 | GikoSys.Setting.KuroutSettingTabIndex := PageControl1.ActivePageIndex; |
155 | 164 | end; |
@@ -0,0 +1,182 @@ | ||
1 | +unit MoveHistoryItem; | |
2 | + | |
3 | +interface | |
4 | + | |
5 | +uses | |
6 | + SysUtils, Classes, BoardGroup, BrowserRecord, | |
7 | +{$IF Defined(DELPRO) } | |
8 | + SHDocVw, | |
9 | + MSHTML, | |
10 | +{$ELSE} | |
11 | + SHDocVw_TLB, | |
12 | + MSHTML_TLB, | |
13 | +{$IFEND} | |
14 | + OleCtrls, ActiveX; | |
15 | +type | |
16 | + | |
17 | + TMoveHistoryItem = class(TObject) | |
18 | + private | |
19 | + FThreadItem : TThreadItem; | |
20 | + FScrollTop : Integer; | |
21 | + public | |
22 | + property ThreadItem : TThreadItem read FThreadItem write FThreadItem; | |
23 | + property ScrollTop : Integer read FScrollTop write FScrollTop; | |
24 | + end; | |
25 | + | |
26 | + TMoveHistory = class(TList) | |
27 | + private | |
28 | + FHistoryMax : Integer; | |
29 | + FIndex : Integer; | |
30 | + { | |
31 | + \brief NÚ®ðÅåÛðÝè·éB | |
32 | + \param AVal Û | |
33 | + } | |
34 | + procedure SetHistoryMax(AVal: Integer); | |
35 | + { | |
36 | + \brief NÚ®ðÅåÛðæ¾·éB | |
37 | + \return Û( > 0 ) | |
38 | + } | |
39 | + function GetHistoryMax: Integer; | |
40 | + public | |
41 | + constructor Create( max : Integer ); overload; | |
42 | + function pushItem( item: TMoveHistoryItem): Integer; overload; | |
43 | + function pushItem( item: TBrowserRecord): Integer; overload; | |
44 | + function getPrevItem( item: TBrowserRecord): TMoveHistoryItem; | |
45 | + function getNextItem: TMoveHistoryItem; | |
46 | + procedure clear; override; | |
47 | + property HistoryMax : Integer read GetHistoryMax write SetHistoryMax; | |
48 | + property HisotryIndex: Integer read FIndex; | |
49 | + end; | |
50 | + | |
51 | +var | |
52 | + MoveHisotryManager : TMoveHistory; | |
53 | + | |
54 | +implementation | |
55 | + | |
56 | +uses | |
57 | + GikoSystem; | |
58 | + | |
59 | + | |
60 | +//! RXgN^ | |
61 | +constructor TMoveHistory.Create( max : Integer ); | |
62 | +begin | |
63 | + inherited Create; | |
64 | + | |
65 | + FIndex := 0; | |
66 | + | |
67 | + SetHistoryMax( GikoSys.Setting.MoveHistorySize ); | |
68 | +end; | |
69 | +//! Ú®ðÌACeÇÁ | |
70 | +function TMoveHistory.pushItem( item: TMoveHistoryItem): Integer; | |
71 | +var | |
72 | + i : Integer; | |
73 | + top: TMoveHistoryItem; | |
74 | +begin | |
75 | + Result := -1; | |
76 | + if (Self.Count > 0) then begin | |
77 | + top := TMoveHistoryItem( Self.Items[Self.Count - 1] ); | |
78 | + if (top.FThreadItem = item.FThreadItem) and | |
79 | + (top.FScrollTop = item.FScrollTop) then begin | |
80 | + Exit; | |
81 | + end; | |
82 | + end; | |
83 | + // ÛÌÅålð´¦éêæªðí | |
84 | + if (FIndex + 1 > FHistoryMax) then begin | |
85 | + if ( Self.Items[0] <> nil ) then begin | |
86 | + TMoveHistoryItem( Self.Items[0] ).Free; | |
87 | + end; | |
88 | + Self.Delete(0); | |
89 | + Dec(Findex); | |
90 | + end; | |
91 | + // FIndexæèãëÌACeðí·é | |
92 | + for i := Self.Count - 1 downto Findex do begin | |
93 | + if (Self.Items [i] <> nil) then begin | |
94 | + TMoveHistoryItem( Self.Items[i] ).Free; | |
95 | + end; | |
96 | + Self.Delete(i); | |
97 | + end; | |
98 | + Inc(FIndex); | |
99 | + Result := Self.Add( item ); | |
100 | +end; | |
101 | +//! Ú®ðÌACeÇÁ | |
102 | +function TMoveHistory.pushItem( item: TBrowserRecord): Integer; | |
103 | +var | |
104 | + history : TMoveHistoryItem; | |
105 | + doc : OleVariant; | |
106 | +begin | |
107 | + Result := -1; | |
108 | + if ( item <> nil ) and ( item.Thread <> nil ) | |
109 | + and ( item.Browser <> nil) then begin | |
110 | + history := TMoveHistoryItem.Create; | |
111 | + history.FThreadItem := item.Thread; | |
112 | + doc := Idispatch( olevariant(item.Browser.ControlInterface).Document) as IHTMLDocument2; | |
113 | + history.ScrollTop := doc.Body.ScrollTop; | |
114 | + | |
115 | + Result := pushItem( history ); | |
116 | + end; | |
117 | +end; | |
118 | +//! êÂOÌðACeæ¾ | |
119 | +function TMoveHistory.getPrevItem(item: TBrowserRecord): TMoveHistoryItem; | |
120 | +begin | |
121 | + Result := nil; | |
122 | + if (FIndex = Self.Count) and (item <> nil) then begin | |
123 | + pushItem( item ); | |
124 | + Dec(FIndex); | |
125 | + end; | |
126 | + if ( FIndex > 0 ) then begin | |
127 | + Dec( FIndex ); | |
128 | + Result := TMoveHistoryItem( Self.items[ FIndex ] ); | |
129 | + end; | |
130 | +end; | |
131 | +//! êÂãëÌðACeæ¾ | |
132 | +function TMoveHistory.getNextItem: TMoveHistoryItem; | |
133 | +begin | |
134 | + Result := nil; | |
135 | + if ( FIndex < Self.Count - 1 ) then begin | |
136 | + Inc( FIndex ); | |
137 | + Result := TMoveHistoryItem( Self.items[ FIndex ] ); | |
138 | + end; | |
139 | +end; | |
140 | +//! ðÌSÁ | |
141 | +procedure TMoveHistory.clear; | |
142 | +var | |
143 | + i : Integer; | |
144 | +begin | |
145 | + // ACeðí·é | |
146 | + for i := Self.Count - 1 downto 0 do begin | |
147 | + if (Self.Items [i] <> nil) then begin | |
148 | + TMoveHistoryItem( Self.Items[i] ).Free; | |
149 | + end; | |
150 | + Self.Delete(i); | |
151 | + end; | |
152 | + Self.Capacity := 0; | |
153 | + FIndex := 0; | |
154 | + inherited; | |
155 | +end; | |
156 | + | |
157 | +procedure TMoveHistory.SetHistoryMax(AVal: Integer); | |
158 | +begin | |
159 | + // ðÌTCYÍ0æèå«È¢Æ¢¯È¢ | |
160 | + if ( AVal > 0 ) then begin | |
161 | + if ((AVal + 1) <> FHistoryMax) then begin | |
162 | + Self.clear; | |
163 | + // Ú®µ½ÛÉAßéNð1«·ÌÅ | |
164 | + FHistoryMax := AVal + 1; | |
165 | + end; | |
166 | + end; | |
167 | +end; | |
168 | +function TMoveHistory.GetHistoryMax: Integer; | |
169 | +begin | |
170 | + // Ú®µ½ÛÉAßéNð1«·ÌÅ | |
171 | + Result := FHistoryMax - 1; | |
172 | +end; | |
173 | +initialization | |
174 | + MoveHisotryManager := TMoveHistory.Create( 20 ); | |
175 | + | |
176 | +finalization | |
177 | + if MoveHisotryManager <> nil then begin | |
178 | + MoveHisotryManager.clear; | |
179 | + MoveHisotryManager.Free; | |
180 | + MoveHisotryManager := nil; | |
181 | + end; | |
182 | +end. |
@@ -61,9 +61,9 @@ object OptionDialog: TOptionDialog | ||
61 | 61 | Top = 4 |
62 | 62 | Width = 509 |
63 | 63 | Height = 389 |
64 | - ActivePage = TabSheet3 | |
64 | + ActivePage = TabSheet4 | |
65 | 65 | MultiLine = True |
66 | - TabIndex = 3 | |
66 | + TabIndex = 7 | |
67 | 67 | TabOrder = 3 |
68 | 68 | OnChange = OptionTabChange |
69 | 69 | object ConnectSheet: TTabSheet |
@@ -1207,9 +1207,9 @@ object OptionDialog: TOptionDialog | ||
1207 | 1207 | end |
1208 | 1208 | end |
1209 | 1209 | object GroupBox19: TGroupBox |
1210 | - Left = 11 | |
1210 | + Left = 12 | |
1211 | 1211 | Top = 74 |
1212 | - Width = 465 | |
1212 | + Width = 473 | |
1213 | 1213 | Height = 49 |
1214 | 1214 | Caption = #23653#27508 |
1215 | 1215 | TabOrder = 1 |
@@ -1238,6 +1238,22 @@ object OptionDialog: TOptionDialog | ||
1238 | 1238 | OnExit = MaxRecordCountEditExit |
1239 | 1239 | end |
1240 | 1240 | end |
1241 | + object GroupBox21: TGroupBox | |
1242 | + Left = 11 | |
1243 | + Top = 133 | |
1244 | + Width = 473 | |
1245 | + Height = 52 | |
1246 | + Caption = #26368#23567#21270#26178#12479#12473#12463#12488#12524#12452 | |
1247 | + TabOrder = 2 | |
1248 | + object StoredTaskTrayCB: TCheckBox | |
1249 | + Left = 11 | |
1250 | + Top = 24 | |
1251 | + Width = 118 | |
1252 | + Height = 17 | |
1253 | + Caption = #26377#21177#12395#12377#12427 | |
1254 | + TabOrder = 0 | |
1255 | + end | |
1256 | + end | |
1241 | 1257 | end |
1242 | 1258 | object SoundSheet: TTabSheet |
1243 | 1259 | Caption = #12469#12454#12531#12489 |
@@ -205,6 +205,8 @@ type | ||
205 | 205 | GroupBox20: TGroupBox; |
206 | 206 | AutoSortCheckBox: TCheckBox; |
207 | 207 | Label24: TLabel; |
208 | + GroupBox21: TGroupBox; | |
209 | + StoredTaskTrayCB: TCheckBox; | |
208 | 210 | procedure FormCreate(Sender: TObject); |
209 | 211 | procedure FormDestroy(Sender: TObject); |
210 | 212 | procedure ApplyButtonClick(Sender: TObject); |
@@ -864,6 +866,8 @@ begin | ||
864 | 866 | BeAutoLoginCheckBox.Checked := GikoSys.Setting.BeAutoLogin; |
865 | 867 | //ðÌÅåÛ¶ |
866 | 868 | MaxRecordCountEdit.Text := IntToStr(GikoSys.Setting.MaxRecordCount); |
869 | + // Ŭ»É^XNgCÉi[·é© | |
870 | + StoredTaskTrayCB.Checked := GikoSys.Setting.StoredTaskTray; | |
867 | 871 | end; |
868 | 872 | |
869 | 873 | procedure TOptionDialog.SaveSetting; |
@@ -1151,6 +1155,7 @@ begin | ||
1151 | 1155 | GikoSys.Setting.BeAutoLogin := BeAutoLoginCheckBox.Checked; |
1152 | 1156 | //ðÌÅåÛ¶ |
1153 | 1157 | GikoSys.Setting.MaxRecordCount := Max(StrToInt64Def(MaxRecordCountEdit.Text,100),1); |
1158 | + GikoSys.Setting.StoredTaskTray := StoredTaskTrayCB.Checked; | |
1154 | 1159 | end; |
1155 | 1160 | |
1156 | 1161 | procedure TOptionDialog.SettingApply; |
@@ -430,9 +430,12 @@ type | ||
430 | 430 | FInputAssistFormWidth: Integer; |
431 | 431 | FInputAssistFormHeight: Integer; |
432 | 432 | |
433 | - // CookieÉtÁ·éÅèR[h | |
433 | + //! CookieÉtÁ·éÅèR[h | |
434 | 434 | FFixedCookie: String; |
435 | - | |
435 | + //! NÚ®ðÌÛ | |
436 | + FMoveHistorySize : Integer; | |
437 | + //! Ŭ»µ½Æ«É^XNgCÉi[·é© | |
438 | + FStoredTaskTray : Boolean; | |
436 | 439 | function GetMainCoolSet(Index: Integer): TCoolSet; |
437 | 440 | function GetBoardCoolSet(Index: Integer): TCoolSet; |
438 | 441 | function GetBrowserCoolSet(Index: Integer): TCoolSet; |
@@ -503,6 +506,11 @@ type | ||
503 | 506 | function GetEditorKeyFileName: String; |
504 | 507 | procedure WriteLogFolder(AVal : String); |
505 | 508 | function GetInputAssistFileName : String; |
509 | + { | |
510 | + \brief NðÌÛTCYÌsetter | |
511 | + \param AVal Ýè·éTCY( >0) | |
512 | + } | |
513 | + procedure SetMoveHistorySize(AVal : Integer); | |
506 | 514 | //óMobt@TCY |
507 | 515 | property RecvBufferSize: Integer read FRecvBufferSize write FRecvBufferSize; |
508 | 516 | //HTTP1.1gp |
@@ -758,7 +766,10 @@ type | ||
758 | 766 | property InputAssistFormHeight: Integer read FInputAssistFormHeight write FInputAssistFormHeight; |
759 | 767 | //! CookieÉtÁ·éÅèR[h |
760 | 768 | property FixedCookie: String read FFixedCookie write FFixedCookie; |
761 | - | |
769 | + //! NÚ®ðÌÛ | |
770 | + property MoveHistorySize : Integer read FMoveHistorySize write SetMoveHistorySize; | |
771 | + //! Ŭ»É^XNgCÉi[·é© | |
772 | + property StoredTaskTray : Boolean read FStoredTaskTray write FStoredTaskTray; | |
762 | 773 | end; |
763 | 774 | |
764 | 775 |
@@ -1381,6 +1392,11 @@ begin | ||
1381 | 1392 | // CookieÉtÁ·éÅèR[h |
1382 | 1393 | FFixedCookie := ini.ReadString('Cookie', 'fixedString', FIXED_COOKIE); |
1383 | 1394 | |
1395 | + // NÚ®ðÌÅåÛ | |
1396 | + FMoveHistorySize := ini.ReadInteger('MoveHisotry', 'Max', 20); | |
1397 | + | |
1398 | + FStoredTaskTray := ini.ReadBool('Function', 'StroedTaskTray', false); | |
1399 | + | |
1384 | 1400 | ini.UpdateFile; |
1385 | 1401 | finally |
1386 | 1402 | ini.Free; |
@@ -1752,6 +1768,11 @@ begin | ||
1752 | 1768 | // ÅèÌCookie¶ñ |
1753 | 1769 | ini.WriteString('Cookie', 'fixedString', FFixedCookie); |
1754 | 1770 | |
1771 | + // NÚ®ðÌÅåÛ | |
1772 | + ini.WriteInteger('MoveHisotry', 'Max', FMoveHistorySize); | |
1773 | + | |
1774 | + ini.WriteBool('Function', 'StroedTaskTray', FStoredTaskTray); | |
1775 | + | |
1755 | 1776 | ini.UpdateFile; |
1756 | 1777 | finally |
1757 | 1778 | ini.Free; |
@@ -2225,7 +2246,12 @@ function TSetting.GetInputAssistFileName : String; | ||
2225 | 2246 | begin |
2226 | 2247 | Result := GetConfigDir + INPUTASSIST_FILE_NAME; |
2227 | 2248 | end; |
2228 | - | |
2249 | +procedure TSetting.SetMoveHistorySize(AVal : Integer); | |
2250 | +begin | |
2251 | + if (AVal > 0) then begin | |
2252 | + FMoveHistorySize := AVal; | |
2253 | + end; | |
2254 | +end; | |
2229 | 2255 | end. |
2230 | 2256 | |
2231 | 2257 |
@@ -33,6 +33,16 @@ function get_2ch_trip( | ||
33 | 33 | const pw : PChar |
34 | 34 | ) : string; |
35 | 35 | |
36 | +{! | |
37 | +\brief gbv̶¬ÉKvÈsalt̶¬ | |
38 | +\parm pw salt̳ÉÈépX[h | |
39 | +\param salt ¶¬µ½saltªi[³êé (array[0..2] of char) | |
40 | +} | |
41 | +procedure get_salt( | |
42 | + const pw : PChar; | |
43 | + salt : PChar | |
44 | +); | |
45 | + | |
36 | 46 | const |
37 | 47 | kCryptInitialTr : CryptOrdering = ( o_data: ( |
38 | 48 | #58,#50,#42,#34,#26,#18,#10, #2,#60,#52,#44,#36,#28,#20,#12, #4, |
@@ -413,18 +423,30 @@ function get_2ch_trip( | ||
413 | 423 | var |
414 | 424 | s : CryptData; |
415 | 425 | salt : array [0..2] of char; |
416 | - | |
417 | - i : Integer; | |
418 | - len : Integer; | |
419 | 426 | begin |
420 | 427 | |
421 | - salt[ 0 ] := #0; | |
422 | 428 | if pw[ 0 ] = #0 then |
423 | 429 | begin |
424 | 430 | Result := ''; |
425 | 431 | Exit; |
426 | 432 | end; |
427 | 433 | |
434 | + get_salt( pw, salt ); | |
435 | + | |
436 | + | |
437 | + Result := Copy( crypt_r( pw, salt, s ), 4, 100 ); | |
438 | + | |
439 | +end; | |
440 | + | |
441 | +procedure get_salt( | |
442 | + const pw : PChar; | |
443 | + salt : PChar | |
444 | +); | |
445 | +var | |
446 | + i, len : Integer; | |
447 | +begin | |
448 | + salt[ 0 ] := #0; | |
449 | + | |
428 | 450 | if pw[ 1 ] <> #0 then |
429 | 451 | begin |
430 | 452 | if pw[ 2 ] <> #0 then |
@@ -438,8 +460,11 @@ begin | ||
438 | 460 | else |
439 | 461 | salt[ i ] := '.'; |
440 | 462 | |
441 | - if Pos( salt[ i ], ':;<=>?@[\\]^_`' ) > 0 then | |
442 | - salt[ i ] := Char( Integer( salt[ i ] ) + 7 ); | |
463 | + if Pos ( salt[ i ], ':;<=>?@' ) > 0 then begin | |
464 | + salt[ i ] := Char( Integer( salt[ i ] ) + 7 ); | |
465 | + end else if Pos( salt[ i ], '[\\]^_`' ) > 0 then begin | |
466 | + salt[ i ] := Char( Integer( salt[ i ] ) + 6 ); | |
467 | + end; | |
443 | 468 | end; |
444 | 469 | if len = 1 then |
445 | 470 | salt[ 1 ] := 'H'; |
@@ -448,9 +473,6 @@ begin | ||
448 | 473 | salt[ 0 ] := 'H'; |
449 | 474 | salt[ 1 ] := '.'; |
450 | 475 | end; |
451 | - | |
452 | - Result := Copy( crypt_r( pw, salt, s ), 4, 100 ); | |
453 | - | |
454 | 476 | end; |
455 | 477 | |
456 | 478 | end. |
@@ -72,7 +72,8 @@ uses | ||
72 | 72 | GikoMessage in 'GikoMessage.pas', |
73 | 73 | InputAssist in 'InputAssist.pas' {InputAssistForm}, |
74 | 74 | InputAssistDataModule in 'InputAssistDataModule.pas' {InputAssistDM: TDataModule}, |
75 | - DefaultFileManager in 'DefaultFileManager.pas'; | |
75 | + DefaultFileManager in 'DefaultFileManager.pas', | |
76 | + MoveHistoryItem in 'MoveHistoryItem.pas'; | |
76 | 77 | |
77 | 78 | {$R *.RES} |
78 | 79 | {$R gikoResource.res} |
@@ -1,4 +1,4 @@ | ||
1 | -¡MRir Version1.00 ÊÞÀ53 Readme.txt | |
1 | +¡MRir Version1.00 ÊÞÀ54 Readme.txt | |
2 | 2 | |
3 | 3 | |
4 | 4 | ------------------------------ |
@@ -50,7 +50,7 @@ | ||
50 | 50 | ------------------------------ |
51 | 51 | oOâv]ÍAMRirXbhÅó¯t¯Ä¨èÜ·B |
52 | 52 | MRirTCgFhttp://gikonavi.sourceforge.jp/ |
53 | -MRirXFhttp://pc7.2ch.net/test/read.cgi/software/1149268313/l50 | |
53 | +MRirXFhttp://pc7.2ch.net/test/read.cgi/software/1151728347/l50 | |
54 | 54 | |
55 | 55 | ------------------------------ |
56 | 56 | ]ÚÉ墀 |
@@ -107,7 +107,12 @@ LICENSE | ||
107 | 107 | ------------------------------ |
108 | 108 | ð |
109 | 109 | ------------------------------ |
110 | -2006/XX/XX | |
110 | +2006/12/XX | |
111 | + Version ÊÞÀ54 | |
112 | +@XbhàÅÌNÅÚ®µ½Æ«ÌððHêé@\ðÇÁ | |
113 | +@^XNgCÉi[·é@\ðÇÁiIvVÅŬ»àj | |
114 | + | |
115 | +2006/08/07 | |
111 | 116 | Version ÊÞÀ53 |
112 | 117 | @IE7(beta)ðCXg[·éÆXAJ[Ì|bvAbvÅ\¦³êÈ¢sïÌC³ |
113 | 118 | @µ½çÎJBBSÂXVªA®ìµÈ¢sïÌC³ |
@@ -116,8 +121,8 @@ LICENSE | ||
116 | 121 | @ñ\ñ¼ÌÏXª½f³êÈ¢sïÌC³ |
117 | 122 | @ðíɺ¤sïÌC³ |
118 | 123 | @J}ÅA±·éXAJ[ÉNªÝè³êÈ¢sïÌC³ |
119 | -@ | |
120 | - | |
124 | +@ftHgÌÝèt@C̵¢ðê | |
125 | +@XGfB^Ìvr [Å\¦³êégbvL[ÆÀÛÌgbvL[ªÙÈésïÌC³ | |
121 | 126 | |
122 | 127 | 2006/06/18 |
123 | 128 | Version ÊÞÀ52 |
@@ -3,15 +3,14 @@ aa5=30 | ||
3 | 3 | academy4=30 |
4 | 4 | anime=45 |
5 | 5 | book3=30 |
6 | -bubble4=120 | |
6 | +bubble4=30 | |
7 | 7 | comic6=30 |
8 | 8 | etc3=30 |
9 | 9 | etc4=30 |
10 | 10 | ex9=15 |
11 | 11 | ex11=15 |
12 | -ex12=15 | |
13 | -ex13=15 | |
14 | -ex14=15 | |
12 | +ex13=120 | |
13 | +ex16=15 | |
15 | 14 | food6=30 |
16 | 15 | game9=30 |
17 | 16 | game10=30 |
@@ -22,29 +21,31 @@ life7=30 | ||
22 | 21 | live14=10 |
23 | 22 | live19=10 |
24 | 23 | live22x=10 |
24 | +live23=10 | |
25 | 25 | love3=30 |
26 | 26 | money4=30 |
27 | -music4=30 | |
28 | 27 | music5=30 |
28 | +music6=30 | |
29 | 29 | news18=30 |
30 | 30 | news19=120 |
31 | +news20=120 | |
31 | 32 | off3=30 |
32 | 33 | pc7=30 |
33 | 34 | pc8=30 |
34 | 35 | qa=30 |
35 | -qb5=30 | |
36 | +qb5=120 | |
36 | 37 | qb6=30 |
37 | 38 | school5=30 |
38 | 39 | science4=30 |
39 | 40 | society3=30 |
40 | 41 | sports9=60 |
41 | 42 | that4=30 |
42 | -tmp5=45 | |
43 | -travel2=30 | |
43 | +tmp6=45 | |
44 | +travel2=120 | |
44 | 45 | tv7=30 |
45 | -tv8=60 | |
46 | -pie=30 | |
46 | +tv8=120 | |
47 | 47 | idol=30 |
48 | +pie=30 | |
48 | 49 | sakura01=30 |
49 | 50 | sakura02=30 |
50 | -sakura03=30 | |
51 | +sakura03=120 |