ギコナビ
Revisão | 58e677de547cceba64ae02b6c9837e18ebb83f18 (tree) |
---|---|
Hora | 2006-01-17 00:19:02 |
Autor | cvs2git <cvs2git> |
Commiter | cvs2git |
This commit was manufactured by cvs2svn to create tag 'v1_52_0_642'.
@@ -1,6 +1,6 @@ | ||
1 | 1 | object EditorForm: TEditorForm |
2 | - Left = 328 | |
3 | - Top = 257 | |
2 | + Left = 432 | |
3 | + Top = 258 | |
4 | 4 | Width = 640 |
5 | 5 | Height = 449 |
6 | 6 | HorzScrollBar.Visible = False |
@@ -58,24 +58,14 @@ object EditorForm: TEditorForm | ||
58 | 58 | Top = 30 |
59 | 59 | Width = 632 |
60 | 60 | Height = 354 |
61 | - ActivePage = RocalRuleTab | |
61 | + ActivePage = EditorTab | |
62 | 62 | Align = alClient |
63 | 63 | MultiLine = True |
64 | - TabIndex = 4 | |
64 | + TabIndex = 0 | |
65 | 65 | TabOrder = 0 |
66 | 66 | OnChange = EditorPageChange |
67 | 67 | object EditorTab: TTabSheet |
68 | 68 | Caption = #32232#38598 |
69 | - object BodyEdit: TMemo | |
70 | - Left = 0 | |
71 | - Top = 60 | |
72 | - Width = 624 | |
73 | - Height = 267 | |
74 | - Align = alClient | |
75 | - ScrollBars = ssBoth | |
76 | - TabOrder = 0 | |
77 | - WordWrap = False | |
78 | - end | |
79 | 69 | object NameBasePanel: TPanel |
80 | 70 | Left = 0 |
81 | 71 | Top = 29 |
@@ -83,7 +73,7 @@ object EditorForm: TEditorForm | ||
83 | 73 | Height = 31 |
84 | 74 | Align = alTop |
85 | 75 | BevelOuter = bvNone |
86 | - TabOrder = 2 | |
76 | + TabOrder = 1 | |
87 | 77 | object NameLabel: TLabel |
88 | 78 | Left = 4 |
89 | 79 | Top = 8 |
@@ -144,7 +134,7 @@ object EditorForm: TEditorForm | ||
144 | 134 | Height = 29 |
145 | 135 | Align = alTop |
146 | 136 | BevelOuter = bvNone |
147 | - TabOrder = 1 | |
137 | + TabOrder = 0 | |
148 | 138 | object Label1: TLabel |
149 | 139 | Left = 4 |
150 | 140 | Top = 8 |
@@ -161,6 +151,16 @@ object EditorForm: TEditorForm | ||
161 | 151 | TabOrder = 0 |
162 | 152 | end |
163 | 153 | end |
154 | + object BodyEdit: TMemo | |
155 | + Left = 0 | |
156 | + Top = 60 | |
157 | + Width = 624 | |
158 | + Height = 267 | |
159 | + Align = alClient | |
160 | + ScrollBars = ssBoth | |
161 | + TabOrder = 2 | |
162 | + WordWrap = False | |
163 | + end | |
164 | 164 | end |
165 | 165 | object PreviewTab: TTabSheet |
166 | 166 | Caption = #12503#12524#12499#12517#12540 |
@@ -1733,6 +1733,12 @@ object EditorForm: TEditorForm | ||
1733 | 1733 | OnExecute = UpdateSambaActionExecute |
1734 | 1734 | OnUpdate = UpdateSambaActionUpdate |
1735 | 1735 | end |
1736 | + object InputAssistAction: TAction | |
1737 | + Tag = -1 | |
1738 | + Category = #32232#38598 | |
1739 | + Caption = #20837#21147#12450#12471#12473#12488 | |
1740 | + OnExecute = InputAssistActionExecute | |
1741 | + end | |
1736 | 1742 | end |
1737 | 1743 | object IdLogDebug: TIdLogDebug |
1738 | 1744 | OnReceive = IdLogDebugReceive |
@@ -1748,4 +1754,16 @@ object EditorForm: TEditorForm | ||
1748 | 1754 | Left = 233 |
1749 | 1755 | Top = 123 |
1750 | 1756 | end |
1757 | + object InputAssistPopupMenu: TPopupMenu | |
1758 | + AutoHotkeys = maManual | |
1759 | + AutoPopup = False | |
1760 | + OwnerDraw = True | |
1761 | + Left = 272 | |
1762 | + Top = 128 | |
1763 | + end | |
1764 | + object ApplicationEvents1: TApplicationEvents | |
1765 | + OnMessage = ApplicationEvents1Message | |
1766 | + Left = 304 | |
1767 | + Top = 128 | |
1768 | + end | |
1751 | 1769 | end |
@@ -17,7 +17,7 @@ uses | ||
17 | 17 | IdAntiFreezeBase, IdAntiFreeze, IdBaseComponent, IdComponent, |
18 | 18 | IdTCPConnection, IdTCPClient, IdHTTP, ActnList, StdActns, IdIntercept, |
19 | 19 | IdLogBase, IdLogDebug, IdException, DateUtils, bmRegExp, |
20 | - Gesture; | |
20 | + Gesture, AppEvnts; | |
21 | 21 | |
22 | 22 | type |
23 | 23 | // TSetLayeredWindowAttributes = function(wnd: HWND; crKey: DWORD; bAlpha: BYTE; dwFlag: DWORD): Boolean; stdcall; |
@@ -44,7 +44,6 @@ type | ||
44 | 44 | N02: TMenuItem; |
45 | 45 | ToolBarImageList: TImageList; |
46 | 46 | HotToobarImageList: TImageList; |
47 | - BodyEdit: TMemo; | |
48 | 47 | NameBasePanel: TPanel; |
49 | 48 | NameLabel: TLabel; |
50 | 49 | MailLabel: TLabel; |
@@ -127,6 +126,10 @@ type | ||
127 | 126 | UpdateSambaAction: TAction; |
128 | 127 | Samba241: TMenuItem; |
129 | 128 | N7: TMenuItem; |
129 | + InputAssistAction: TAction; | |
130 | + InputAssistPopupMenu: TPopupMenu; | |
131 | + BodyEdit: TMemo; | |
132 | + ApplicationEvents1: TApplicationEvents; | |
130 | 133 | |
131 | 134 | procedure EditorPageChange(Sender: TObject); |
132 | 135 | procedure FormCreate(Sender: TObject); |
@@ -181,6 +184,9 @@ type | ||
181 | 184 | procedure BeLogInOutEActionUpdate(Sender: TObject); |
182 | 185 | procedure UpdateSambaActionUpdate(Sender: TObject); |
183 | 186 | procedure UpdateSambaActionExecute(Sender: TObject); |
187 | + procedure InputAssistActionExecute(Sender: TObject); | |
188 | + procedure ApplicationEvents1Message(var Msg: tagMSG; | |
189 | + var Handled: Boolean); | |
184 | 190 | private |
185 | 191 | FThreadItem: TThreadItem; |
186 | 192 | FBoard: TBoard; |
@@ -195,6 +201,8 @@ type | ||
195 | 201 | FHost: string; |
196 | 202 | FNow: TDateTime; |
197 | 203 | FGestures : TMouseGesture; |
204 | + FInputAssistKey: String; ///< üÍAVXgÌL[ | |
205 | + FResistWords: TStringList; ///< üÍAVXgÌ«©çÌõÊ | |
198 | 206 | procedure Preview; |
199 | 207 | function RepHtml(s: string): string; |
200 | 208 | function Check: Boolean; |
@@ -244,6 +252,8 @@ type | ||
244 | 252 | function LFusianaGet(s: String): Boolean; |
245 | 253 | // CookieÌæ¾ |
246 | 254 | procedure GetCookie(Rawtext: String; ABoard: TBoard); |
255 | + //! üÍAVXgÌ|bvAbvj [ÌNbNCxg | |
256 | + procedure InputAssistMenuClick(Sender: TObject); | |
247 | 257 | protected |
248 | 258 | procedure CreateParams(var Params: TCreateParams); override; |
249 | 259 | public |
@@ -252,13 +262,13 @@ type | ||
252 | 262 | procedure SetThreadItem(Item: TThreadItem); |
253 | 263 | procedure SetBoard(Item: TBoard); |
254 | 264 | property BBSID: string read FBBSID write FBBSID; |
255 | - | |
256 | 265 | end; |
257 | 266 | |
258 | 267 | implementation |
259 | 268 | |
260 | 269 | uses |
261 | - Giko, ItemDownload, MojuUtils, IdGlobal, GikoMessage; | |
270 | + Giko, ItemDownload, MojuUtils, IdGlobal, GikoMessage, Imm, | |
271 | + InputAssistDataModule; | |
262 | 272 | const |
263 | 273 | CAPTION_NAME_NEW: string = 'MRir X§ÄGfB^'; |
264 | 274 | CAPTION_NAME_RES: string = 'MRir XGfB^'; |
@@ -427,7 +437,8 @@ begin | ||
427 | 437 | finally |
428 | 438 | ini.Free; |
429 | 439 | end; |
430 | - | |
440 | + // L[ÝèÌÇÝÝ | |
441 | + GikoSys.LoadKeySetting(ActionList, GikoSys.GetEditorKeyFileName); | |
431 | 442 | // }EXWFX`[ÌCXg[ |
432 | 443 | if GikoSys.Setting.GestureEnabled then begin |
433 | 444 | MouseGesture.UnHook; |
@@ -930,33 +941,35 @@ begin | ||
930 | 941 | |
931 | 942 | if ABoard = nil then Exit; |
932 | 943 | |
933 | - if FileExists(ABoard.GetSETTINGTXTFileName) then begin | |
934 | - body := TStringList.Create; | |
935 | - try | |
936 | - body.LoadFromFile(ABoard.GetSETTINGTXTFileName); | |
937 | - Remote := GetFusianaName(body, ABoard); | |
938 | - finally | |
939 | - body.Free; | |
940 | - end; | |
941 | - end; | |
942 | - | |
943 | - //Setting.txtªÈ©Á½çæ¾ | |
944 | - //IÉת©©è»¤Å|¢EEE | |
945 | - if not FileExists(ABoard.GetSETTINGTXTFileName) then begin | |
946 | - //GetSETTINGTXTActionðÄÑo·ÆIndyªú»³êéÌÅA | |
944 | + if FileExists(ABoard.GetSETTINGTXTFileName) then begin | |
945 | + body := TStringList.Create; | |
946 | + try | |
947 | + body.LoadFromFile(ABoard.GetSETTINGTXTFileName); | |
948 | + Remote := GetFusianaName(body, ABoard); | |
949 | + finally | |
950 | + body.Free; | |
951 | + end; | |
952 | + end; | |
953 | + | |
954 | + //Setting.txtªÈ©Á½çæ¾ | |
955 | + //IÉת©©è»¤Å|¢EEE | |
956 | + if not FileExists(ABoard.GetSETTINGTXTFileName) then begin | |
957 | + //GetSETTINGTXTActionðÄÑo·ÆIndyªú»³êéÌÅA | |
947 | 958 | //±±ÅCookieðÛ¶µÈÄÍ¢¯È¢ |
948 | 959 | tmpRawheader := Indy.Response.RawHeaders.Text; |
949 | 960 | GetSETTINGTXTAction.Execute; |
950 | 961 | body := TStringList.Create; |
951 | 962 | try |
952 | - body.LoadFromFile(ABoard.GetSETTINGTXTFileName); | |
953 | - Remote := GetFusianaName(body, ABoard); | |
954 | - finally | |
955 | - body.Free; | |
956 | - end; | |
963 | + if FileExists(ABoard.GetSETTINGTXTFileName) then begin | |
964 | + body.LoadFromFile(ABoard.GetSETTINGTXTFileName); | |
965 | + Remote := GetFusianaName(body, ABoard); | |
966 | + end; | |
967 | + finally | |
968 | + body.Free; | |
969 | + end; | |
957 | 970 | end; |
958 | 971 | |
959 | - if Remote = 'fusianasan' then begin | |
972 | + if Remote = 'fusianasan' then begin | |
960 | 973 | MsgResult := MsgBox( |
961 | 974 | Handle, |
962 | 975 | '[gzXgð\¦·é@\ªgíêĢܷ' + #13#10 + |
@@ -971,8 +984,8 @@ begin | ||
971 | 984 | EnableMenuItem(SysMenu, SC_CLOSE, MF_BYCOMMAND or MF_ENABLED); |
972 | 985 | DrawMenuBar(Handle); |
973 | 986 | Exit; |
974 | - end; | |
975 | - end; | |
987 | + end; | |
988 | + end; | |
976 | 989 | end; |
977 | 990 | |
978 | 991 | if ResultType = grtOK then begin |
@@ -1731,9 +1744,6 @@ var | ||
1731 | 1744 | settingBody: TStringList; |
1732 | 1745 | tmpBoard: TBoard; |
1733 | 1746 | begin |
1734 | - if FWork then | |
1735 | - Exit; | |
1736 | - FWork := True; | |
1737 | 1747 | |
1738 | 1748 | InitIdHTTP(Indy); |
1739 | 1749 | if FThreadItem = nil then |
@@ -1784,7 +1794,6 @@ begin | ||
1784 | 1794 | end; |
1785 | 1795 | ShowBoardInformation(tmpBoard, BoardInformationMemo); |
1786 | 1796 | |
1787 | - FWork := False; | |
1788 | 1797 | end; |
1789 | 1798 | |
1790 | 1799 | procedure TEditorForm.ShowBoardInformation(ABoard: TBoard; AMemo: TMemo); |
@@ -2211,4 +2220,156 @@ begin | ||
2211 | 2220 | end; |
2212 | 2221 | end; |
2213 | 2222 | |
2223 | +procedure TEditorForm.InputAssistActionExecute(Sender: TObject); | |
2224 | +var | |
2225 | + count, i : Integer; | |
2226 | + item : TMenuItem; | |
2227 | + point: TPoint; | |
2228 | + Bitmap : TBitmap; | |
2229 | + TextWidth, ItemWidth, tmpWidth: Integer; | |
2230 | +begin | |
2231 | + if FInputAssistKey = '' then Exit; | |
2232 | + | |
2233 | + InputAssistPopupMenu.Items.Clear; | |
2234 | + | |
2235 | + if (FResistWords = nil) then begin | |
2236 | + FResistWords := TStringList.Create; | |
2237 | + end else begin | |
2238 | + FResistWords.Clear; | |
2239 | + end; | |
2240 | + | |
2241 | + if (GetKeyState( VK_SHIFT ) < 0) then begin | |
2242 | + // Vtgª³êÄ¢êÎAL[ÅnÜéJeS | |
2243 | + count := | |
2244 | + InputAssistDM.GetStartWithCategoryResistWords( | |
2245 | + FInputAssistKey, FResistWords); | |
2246 | + end else begin | |
2247 | + // Vtgª³¢ÌÅAL[ÅnÜéL[ | |
2248 | + count := | |
2249 | + InputAssistDM.GetStartWithKeyResistWords( | |
2250 | + FInputAssistKey, FResistWords); | |
2251 | + end; | |
2252 | + Bitmap := TBitmap.Create; | |
2253 | + try | |
2254 | + Bitmap.Canvas.Font.Assign(BodyEdit.Font); | |
2255 | + // }[W5px | |
2256 | + TextWidth := Bitmap.Canvas.TextWidth(FInputAssistKey) + 5; | |
2257 | + ItemWidth := 0; | |
2258 | + for i := 0 to count - 1 do begin | |
2259 | + item := TMenuItem.Create(nil); | |
2260 | + item.Break := mbNone; | |
2261 | + item.Caption := FResistWords[i]; | |
2262 | + item.Tag := i; | |
2263 | + item.OnClick := InputAssistMenuClick; | |
2264 | + InputAssistPopupMenu.Items.Add(item); | |
2265 | + | |
2266 | + tmpWidth := Bitmap.Canvas.TextWidth(Item.Caption); | |
2267 | + if (tmpWidth > ItemWidth) then begin | |
2268 | + ItemWidth := tmpWidth; | |
2269 | + end; | |
2270 | + end; | |
2271 | + finally | |
2272 | + Bitmap.Free; | |
2273 | + end; | |
2274 | + | |
2275 | + if (count > 0) then begin | |
2276 | + GetCaretpos(point); | |
2277 | + point.X := point.X + Self.Left + (Self.Width - BodyEdit.Width) div 2; | |
2278 | + point.Y := point.Y + Self.Top + (Self.Height - Self.ClientHeight); | |
2279 | + | |
2280 | + if Screen.DesktopWidth > | |
2281 | + (point.X + TextWidth + ItemWidth) then begin | |
2282 | + InputAssistPopupMenu.Popup( | |
2283 | + point.X + TextWidth, | |
2284 | + point.Y + EditorPage.Top + EditorPage.TabHeight + BodyEdit.Top); | |
2285 | + end else begin | |
2286 | + InputAssistPopupMenu.Popup( | |
2287 | + point.X - TextWidth - ItemWidth, | |
2288 | + point.Y + EditorPage.Top + EditorPage.TabHeight + BodyEdit.Top); | |
2289 | + end; | |
2290 | + end; | |
2291 | +end; | |
2292 | + | |
2293 | +procedure TEditorForm.InputAssistMenuClick(Sender: TObject); | |
2294 | +var | |
2295 | + line, pos, sel : Integer; | |
2296 | + text, left, right : String; | |
2297 | + IMC: HIMC; | |
2298 | +begin | |
2299 | + if not (Sender is TMenuItem) then Exit; | |
2300 | + | |
2301 | + if (FResistWords <> nil) then begin | |
2302 | + try | |
2303 | + text := | |
2304 | + TResistWord(FResistWords.Objects[TMenuItem(Sender).Tag]).GetText; | |
2305 | + except | |
2306 | + text := ''; | |
2307 | + end; | |
2308 | + IMC := ImmGetContext(BodyEdit.Handle); //ReLXgæ¾ | |
2309 | + try | |
2310 | + ImmNotifyIME(IMC, NI_COMPOSITIONSTR, CPS_CANCEL, 0); | |
2311 | + finally | |
2312 | + ImmReleaseContext(BodyEdit.Handle, IMC); //ReLXgðú | |
2313 | + end; | |
2314 | + | |
2315 | + FResistWords.Clear; | |
2316 | + FInputAssistKey := ''; | |
2317 | + end; | |
2318 | + BodyEdit.Lines.BeginUpdate; | |
2319 | + line := SendMessage(BodyEdit.Handle,EM_LINEFROMCHAR,-1,0); //s | |
2320 | + sel := BodyEdit.SelStart; | |
2321 | + pos := sel - SendMessage(BodyEdit.Handle, EM_LINEINDEX, -1, 0); // | |
2322 | + if (pos > 0) then begin | |
2323 | + left := Copy(BodyEdit.Lines[line], 0, pos); | |
2324 | + end else begin | |
2325 | + left := ''; | |
2326 | + end; | |
2327 | + right := Copy(BodyEdit.Lines[line], pos + 1, Length(BodyEdit.Lines[line])); | |
2328 | + BodyEdit.Lines.Strings[line] := left + text + right; | |
2329 | + BodyEdit.Lines.EndUpdate; | |
2330 | + //@LbgÌÊuðXV·é | |
2331 | + BodyEdit.SelStart := sel + Length(text); | |
2332 | + // LbgÌÊuÜÅXN[ | |
2333 | + BodyEdit.Perform(EM_SCROLLCARET, 0, 0); | |
2334 | +end; | |
2335 | + | |
2336 | +procedure TEditorForm.ApplicationEvents1Message(var Msg: tagMSG; | |
2337 | + var Handled: Boolean); | |
2338 | +var | |
2339 | + wmMsg: TWMKey; | |
2340 | + IMC: HIMC; | |
2341 | + Len: integer; | |
2342 | + Str: string; | |
2343 | +begin | |
2344 | + if (Self.Active) then begin | |
2345 | + case Msg.message of | |
2346 | + //L[ºÌÝó¯æé | |
2347 | + WM_KEYDOWN: | |
2348 | + begin | |
2349 | + // ^uªhÒWhÅCtrlL[ª³êÄ¢éÌðmF·é | |
2350 | + if (EditorPage.ActivePageIndex = 0) | |
2351 | + and (GetKeyState( VK_CONTROL ) < 0) then begin | |
2352 | + wmMsg.Msg := Msg.message; | |
2353 | + wmMsg.CharCode := Word(Msg.wParam); | |
2354 | + wmMsg.KeyData := Msg.lParam; | |
2355 | + if (wmMsg.CharCode = 229) and (wmMsg.KeyData = 3735553) then begin | |
2356 | + IMC := ImmGetContext(BodyEdit.Handle); //ReLXgæ¾ | |
2357 | + Len := ImmGetCompositionString(IMC, GCS_COMPSTR, nil, 0); //ܸ·³ðæ¾ | |
2358 | + if (Len > 0) then begin | |
2359 | + SetLength(Str, Len + 1); //BufferÌðÝè | |
2360 | + ImmGetCompositionString(IMC, GCS_COMPSTR, PChar(Str), Len + 1); //ܸ·³ðæ¾ | |
2361 | + SetLength(Str, Len); | |
2362 | + FInputAssistKey := Str; | |
2363 | + InputAssistActionExecute(nil); | |
2364 | + Handled := True; | |
2365 | + end; | |
2366 | + ImmReleaseContext(BodyEdit.Handle, IMC); //ReLXgðú | |
2367 | + end; | |
2368 | + end; | |
2369 | + end; | |
2370 | + end; | |
2371 | + | |
2372 | + end; | |
2373 | +end; | |
2374 | + | |
2214 | 2375 | end. |
@@ -1,6 +1,6 @@ | ||
1 | 1 | object GikoForm: TGikoForm |
2 | - Left = 363 | |
3 | - Top = 92 | |
2 | + Left = 97 | |
3 | + Top = 51 | |
4 | 4 | HorzScrollBar.Visible = False |
5 | 5 | VertScrollBar.Visible = False |
6 | 6 | AutoScroll = False |
@@ -7959,6 +7959,12 @@ object GikoForm: TGikoForm | ||
7959 | 7959 | object N43: TMenuItem |
7960 | 7960 | Caption = '-' |
7961 | 7961 | end |
7962 | + object N22: TMenuItem | |
7963 | + Action = GikoDM.SetInputAssistAction | |
7964 | + end | |
7965 | + object N42: TMenuItem | |
7966 | + Caption = '-' | |
7967 | + end | |
7962 | 7968 | object PlugInMenu: TMenuItem |
7963 | 7969 | Caption = #12503#12521#12464#12452#12531'(&P)' |
7964 | 7970 | end |
@@ -402,6 +402,8 @@ type | ||
402 | 402 | N74: TMenuItem; |
403 | 403 | WikiFAQ: TMenuItem; |
404 | 404 | GikoApplicationEvents: TApplicationEvents; |
405 | + N22: TMenuItem; | |
406 | + N42: TMenuItem; | |
405 | 407 | procedure FormCreate(Sender: TObject); |
406 | 408 | procedure FormDestroy(Sender: TObject); |
407 | 409 | procedure BrowserStatusTextChange(Sender: TObject; |
@@ -588,7 +590,8 @@ type | ||
588 | 590 | FIsHandledWheel : Boolean; ///< ùÉó¯æÁ½ WM_MOUSEWHEEL ©Ç¤© |
589 | 591 | DiffComp: Boolean; //Add by Genyakun XªXV³ê½Æ«ÉTrueÉÈé |
590 | 592 | FOrigenCaption: String; //¨CÉüèc[ÌACeÒWÌÒWO̶ñ |
591 | - FPreviewBrowserRect: TRect; ///< vr [Ì\¦ÊuðL¯·é | |
593 | + FPreviewBrowserRect: TRect; ///< vr [Ì\¦ÊuðL¯·é | |
594 | + FActionListGroupIndexes: array of Integer; ///<GikoDMãÌANVXgÌeANVÉÝè³ê½GroupIndexðÛ¶·ézñ | |
592 | 595 | procedure DownloadEnd(Sender: TObject; Item: TDownloadItem); |
593 | 596 | procedure DownloadMsg(Sender: TObject; Item: TDownloadItem; Msg: string; Icon: TGikoMessageIcon); |
594 | 597 | procedure WorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer; Number: Integer; const AWorkTitle: string); |
@@ -648,12 +651,14 @@ type | ||
648 | 651 | function GetScreenCursor(): TCursor; |
649 | 652 | //J[\ðÝè·é |
650 | 653 | procedure SetScreenCursor(Cursor : TCursor); |
651 | - //! ANVÌ`FbNóÔÌú» | |
652 | - procedure InitActionChecked(); | |
653 | 654 | //! _E[hRg[Xbh̶¬ |
654 | 655 | procedure CreateControlThread(); |
655 | 656 | //! uEU̶¬ |
656 | 657 | procedure CreateBrowsers(count: Integer); |
658 | + //! ActionListÌGroupIndexÌÛ¶ | |
659 | + procedure GetGroupIndex(ActionList: TActionList); | |
660 | + //! ActionListÌGroupIndexÌÝè | |
661 | + procedure SetGroupIndex(ActionList: TActionList); | |
657 | 662 | protected |
658 | 663 | procedure CreateParams(var Params: TCreateParams); override; |
659 | 664 | procedure WndProc(var Message: TMessage); override; |
@@ -820,7 +825,8 @@ uses | ||
820 | 825 | FavoriteArrange, AddressHistory, Preview, Gesture, |
821 | 826 | About, Option, Round, Splash, Sort, ListSelect, Imm, |
822 | 827 | NewBoard, MojuUtils, Clipbrd, GikoBayesian,Y_TextConverter, |
823 | - HTMLCreate, ListViewUtils, GikoDataModule, GikoMessage; | |
828 | + HTMLCreate, ListViewUtils, GikoDataModule, GikoMessage, | |
829 | + InputAssistDataModule; | |
824 | 830 | |
825 | 831 | const |
826 | 832 | BLANK_HTML: string = 'about:blank'; |
@@ -869,12 +875,16 @@ begin | ||
869 | 875 | Writeln(' I¹ÍAMRirEBhEð¶ľ³¢'); |
870 | 876 | Writeln('============================================================'); |
871 | 877 | {$ENDIF} |
878 | +//try | |
872 | 879 | FTreeType := gttNone; |
873 | 880 | // N®ÉÛ¶³êĵܤÎô |
874 | 881 | FStartUp := true; |
875 | 882 | Application.HookMainWindow(Hook); |
876 | 883 | FIsIgnoreResize := rtResizing; |
877 | - | |
884 | + //ActionListÌGuoupIndexðÛ¶µÄA0ÉNA·éB | |
885 | + //(N®Éc[{^ÌDownvpeBð½f³¹ésãGroupIndexÍÝèÅ«È¢) | |
886 | + //±êÈãSet`ÅÄÝè·éÜÅAActionÌCheckedð¢¶éÆ«ÍÓI | |
887 | + GetGroupIndex(GikoDM.GikoFormActionList); | |
878 | 888 | FSearchDialog := nil; |
879 | 889 | CreateBrowsers(BROWSER_COUNT); |
880 | 890 |
@@ -944,6 +954,49 @@ begin | ||
944 | 954 | //ViewNoButton.Down := GikoSys.Setting.ListViewNo; |
945 | 955 | GikoDM.ListNumberVisibleAction.Checked := GikoSys.Setting.ListViewNo; |
946 | 956 | |
957 | + //~ [gÌóÔðÝè | |
958 | + GikoDM.MuteAction.Checked := GikoSys.Setting.Mute; | |
959 | + | |
960 | + // X\¦ÍÍ | |
961 | + FResRangeMenuSelect := GikoSys.ResRange; | |
962 | + case GikoSys.ResRange of | |
963 | + Ord( grrAll ): | |
964 | + begin | |
965 | + GikoDM.AllResAction.Execute; | |
966 | + end; | |
967 | + Ord( grrSelect ): | |
968 | + begin | |
969 | + SelectComboBox.Text := SelectComboBox.Items[ 1 ]; | |
970 | + GikoDM.SelectResAction.Checked := True; | |
971 | + end; | |
972 | + else | |
973 | + case FResRangeMenuSelect of | |
974 | + Ord( grrKoko ): GikoDM.OnlyKokoResAction.Checked := True; | |
975 | + Ord( grrNew ): GikoDM.OnlyNewResAction.Checked := True; | |
976 | + 100: GikoDM.OnlyAHundredResAction.Checked := True; | |
977 | + end; | |
978 | + end; | |
979 | + | |
980 | + // Xbhê\¦ÍÍ | |
981 | + case GikoSys.Setting.ThreadRange of | |
982 | + gtrAll: | |
983 | + begin | |
984 | + GikoDM.AllItemAction.Checked := True; | |
985 | + ViewType := gvtAll; | |
986 | + end; | |
987 | + gtrLog: | |
988 | + begin | |
989 | + GikoDM.LogItemAction.Checked := True; | |
990 | + ViewType := gvtLog; | |
991 | + end; | |
992 | + gtrNew: | |
993 | + begin | |
994 | + GikoDM.NewItemAction.Checked := True; | |
995 | + ViewType := gvtNew; | |
996 | + end; | |
997 | + end; | |
998 | + | |
999 | + | |
947 | 1000 | //uEU^utHg |
948 | 1001 | BrowserTab.Font.Name := GikoSys.Setting.BrowserTabFontName; |
949 | 1002 | BrowserTab.Font.Size := GikoSys.Setting.BrowserTabFontSize; |
@@ -952,9 +1005,27 @@ begin | ||
952 | 1005 | BrowserTab.Font.Style := [fsBold]; |
953 | 1006 | if GikoSys.Setting.BrowserTabFontItalic then |
954 | 1007 | BrowserTab.Font.Style := GikoForm.BrowserTab.Font.Style + [fsItalic]; |
1008 | + BrowserTab.DoubleBuffered := True; | |
955 | 1009 | FDragWFirst := false; |
956 | 1010 | SetContent(BrowserNullTab); //uEUðó\¦ |
957 | 1011 | |
1012 | + //uEU^u | |
1013 | + GikoDM.BrowserTabVisibleAction.Checked := GikoSys.Setting.BrowserTabVisible; | |
1014 | + | |
1015 | + if GikoSys.Setting.BrowserTabPosition = gtpTop then begin | |
1016 | + GikoDM.BrowserTabTopAction.Checked := True; | |
1017 | + end else begin | |
1018 | + GikoDM.BrowserTabBottomAction.Checked := True; | |
1019 | + end; | |
1020 | + | |
1021 | + if GikoSys.Setting.BrowserTabStyle = gtsTab then begin | |
1022 | + GikoDM.BrowserTabTabStyleAction.Checked := True; | |
1023 | + end else if GikoSys.Setting.BrowserTabStyle = gtsButton then begin | |
1024 | + GikoDM.BrowserTabButtonStyleAction.Checked := True; | |
1025 | + end else begin | |
1026 | + GikoDM.BrowserTabFlatStyleAction.Checked := True; | |
1027 | + end; | |
1028 | + | |
958 | 1029 | //vOXo[Ìú» |
959 | 1030 | ProgressBar.Parent := StatusBar; |
960 | 1031 | ProgressBar.Top := 2; |
@@ -968,10 +1039,14 @@ begin | ||
968 | 1039 | |
969 | 1040 | // {[ht@Cñ(ReadFavorite æèæÉs¤±Æ) |
970 | 1041 | GikoSys.ListBoardFile; |
971 | - | |
1042 | + //@A±N®ÉXvbV EBhE̪sèÉ | |
1043 | + try | |
972 | 1044 | // XvbV EBhEÌvOXo[ÌÝè |
973 | - SplashWindow.ProgressBar.Max := Length(BBSs) * 20; | |
974 | - | |
1045 | + if (SplashWindow <> nil) then begin | |
1046 | + SplashWindow.ProgressBar.Max := Length(BBSs) * 20; | |
1047 | + end; | |
1048 | + except | |
1049 | + end; | |
975 | 1050 | // ·×ÄÌBBSðÇÝñŨ |
976 | 1051 | for i := Length(BBSs) - 1 downto 0 do begin |
977 | 1052 | if not BBSs[i].IsBoardFileRead then |
@@ -982,6 +1057,7 @@ begin | ||
982 | 1057 | SplashWindow.Update; |
983 | 1058 | end; |
984 | 1059 | end; |
1060 | + | |
985 | 1061 | //ñf[^ÇÝÝ |
986 | 1062 | RoundList := TRoundList.Create; |
987 | 1063 | RoundList.LoadRoundBoardFile; |
@@ -1200,7 +1276,8 @@ begin | ||
1200 | 1276 | FavoriteAddToolButton.Caption := 'ÇÁ...'; |
1201 | 1277 | AntiIndivAbonMenuItem.Caption := 'ÂÊ Ú`ñð'; |
1202 | 1278 | |
1203 | - | |
1279 | + //üÍAVXg@\Ìú» | |
1280 | + InputAssistDM.Init(GikoSys.GetInputAssistFileName); | |
1204 | 1281 | end; |
1205 | 1282 | |
1206 | 1283 | // CoolBar ÌÝèðÏÉÛ¶ |
@@ -1341,51 +1418,20 @@ begin | ||
1341 | 1418 | GikoDM.BrowserNameBarVisibleAction.Checked := GikoSys.Setting.BrowserNameBarVisible; |
1342 | 1419 | GikoDM.BrowserNameBarVisibleActionExecute( nil ); |
1343 | 1420 | |
1344 | - //uEU^u | |
1345 | - GikoDM.BrowserTabVisibleAction.Checked := GikoSys.Setting.BrowserTabVisible; | |
1346 | - GikoDM.BrowserTabVisibleActionExecute(nil); | |
1347 | - | |
1348 | - if GikoSys.Setting.BrowserTabPosition = gtpTop then begin | |
1349 | - GikoDM.BrowserTabTopAction.Checked := True; | |
1350 | - GikoDM.BrowserTabTopActionExecute(nil); | |
1351 | - end else begin | |
1352 | - GikoDM.BrowserTabBottomAction.Checked := True; | |
1353 | - GikoDM.BrowserTabBottomActionExecute(nil); | |
1354 | - end; | |
1355 | - | |
1356 | - if GikoSys.Setting.BrowserTabStyle = gtsTab then begin | |
1357 | - GikoDM.BrowserTabTabStyleAction.Checked := True; | |
1358 | - GikoDM.BrowserTabTabStyleActionExecute(nil); | |
1359 | - end else if GikoSys.Setting.BrowserTabStyle = gtsButton then begin | |
1360 | - GikoDM.BrowserTabButtonStyleAction.Checked := True; | |
1361 | - GikoDM.BrowserTabButtonStyleActionExecute(nil); | |
1362 | - end else begin | |
1363 | - GikoDM.BrowserTabFlatStyleAction.Checked := True; | |
1364 | - GikoDM.BrowserTabFlatStyleActionExecute(nil); | |
1365 | - end; | |
1366 | - | |
1367 | - // ListView Ìwb_hbO | |
1368 | -// ListView.FullDrag := True; | |
1369 | - | |
1370 | 1421 | // CoolBar ³ |
1371 | 1422 | LoadCoolBarSettings; |
1372 | 1423 | |
1373 | 1424 | //dv@±êªÈ¢Æc[{^ÌXVª¨©µÈé |
1374 | 1425 | // ResetBandInfo( ListCoolBar, ListToolBar ); |
1375 | 1426 | FIsIgnoreResize := rtNone; |
1376 | - //c[o[ÌXVðI¦½ãÉâçȢƢ¯È¢Ì©à | |
1377 | - //ANVÌ`FbNóÔðú» | |
1378 | - InitActionChecked(); | |
1379 | 1427 | |
1380 | 1428 | //FormCrete©çÚ®B |
1381 | 1429 | if GikoSys.Setting.TabAutoLoadSave then begin |
1382 | 1430 | GikoDM.TabAutoLoadAction.Execute; |
1383 | 1431 | end; |
1384 | - //É¿áñêÄàT|[g@\ | |
1385 | - if GikoSys.Setting.GengoSupport then begin | |
1386 | - //\èn | |
1387 | - //Testü¯ | |
1388 | - end; | |
1432 | + | |
1433 | + //ActionListÌGroupIndexð³Éß· | |
1434 | + SetGroupIndex(GikoDM.GikoFormActionList); | |
1389 | 1435 | |
1390 | 1436 | FStartUp := false; |
1391 | 1437 | end; |
@@ -1474,6 +1520,8 @@ begin | ||
1474 | 1520 | // CoolBar Û¶ |
1475 | 1521 | //if (GikoForm.WindowState <> wsMinimized) and (GikoForm.WindowState <> wsMaximized) then |
1476 | 1522 | |
1523 | + //üÍAVXg@\ÌÝèÌÛ¶ | |
1524 | + InputAssistDM.SaveToFile(GikoSys.GetInputAssistFileName); | |
1477 | 1525 | |
1478 | 1526 | //¨CÉüèÛ¶ |
1479 | 1527 | try |
@@ -3560,7 +3608,6 @@ begin | ||
3560 | 3608 | FTabHintIndex := -1; |
3561 | 3609 | for i := 0 to BrowserTab.Tabs.Count - 1 do begin |
3562 | 3610 | if TBrowserRecord(BrowserTab.Tabs.Objects[i]) = BrowserRecord then begin |
3563 | - BrowserTab.Tabs.BeginUpdate; | |
3564 | 3611 | try |
3565 | 3612 | if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser <> nil then begin |
3566 | 3613 | doc := TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser.Document; |
@@ -3576,15 +3623,25 @@ begin | ||
3576 | 3623 | if j <> -1 then |
3577 | 3624 | FBrowsers.Move(j, BROWSER_COUNT - 1); |
3578 | 3625 | end; |
3579 | - TBrowserRecord(BrowserTab.Tabs.Objects[i]).Free; | |
3580 | - BrowserTab.Tabs.Delete(i); | |
3581 | - if idx > i then begin | |
3582 | - BrowserTab.TabIndex := idx - 1; | |
3583 | - end else begin | |
3584 | - if BrowserTab.Tabs.Count -1 >= idx then | |
3585 | - BrowserTab.TabIndex := idx | |
3586 | - else | |
3587 | - BrowserTab.TabIndex := BrowserTab.Tabs.Count - 1; | |
3626 | + BrowserTab.Tabs.BeginUpdate; | |
3627 | + try | |
3628 | + TBrowserRecord(BrowserTab.Tabs.Objects[i]).Free; | |
3629 | + if ( BrowserTab.Tabs.Count - 1 = i ) and | |
3630 | + ( BrowserTab.TabRect(i).Left | |
3631 | + <= BrowserTab.DisplayRect.Left ) then begin | |
3632 | + BrowserTab.ScrollTabs(-1); | |
3633 | + end; | |
3634 | + BrowserTab.Tabs.Delete(i); | |
3635 | + if idx > i then begin | |
3636 | + BrowserTab.TabIndex := idx - 1; | |
3637 | + end else begin | |
3638 | + if BrowserTab.Tabs.Count -1 >= idx then | |
3639 | + BrowserTab.TabIndex := idx | |
3640 | + else | |
3641 | + BrowserTab.TabIndex := BrowserTab.Tabs.Count - 1; | |
3642 | + end; | |
3643 | + finally | |
3644 | + BrowserTab.Tabs.EndUpdate; | |
3588 | 3645 | end; |
3589 | 3646 | if BrowserTab.Tabs.Count = 0 then begin |
3590 | 3647 | BrowserNullTab.Thread := nil; |
@@ -3604,7 +3661,6 @@ begin | ||
3604 | 3661 | TBrowserRecord(BrowserTab.Tabs.Objects[BrowserTab.TabIndex]).Repaint := true; |
3605 | 3662 | FBrowsers.Move(BROWSER_COUNT - 1, 0); |
3606 | 3663 | end; |
3607 | - BrowserTab.Tabs.EndUpdate; | |
3608 | 3664 | if( FActiveContent = nil) then |
3609 | 3665 | BrowserTab.OnChange(nil); |
3610 | 3666 | Exit; |
@@ -3620,7 +3676,6 @@ begin | ||
3620 | 3676 | FTabHintIndex := -1; |
3621 | 3677 | for i := 0 to BrowserTab.Tabs.Count - 1 do begin |
3622 | 3678 | if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread = ThreadItem then begin |
3623 | - BrowserTab.Tabs.BeginUpdate; | |
3624 | 3679 | try |
3625 | 3680 | if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser <> nil then begin |
3626 | 3681 | doc := TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser.Document; |
@@ -3637,15 +3692,25 @@ begin | ||
3637 | 3692 | if j <> -1 then |
3638 | 3693 | FBrowsers.Move(j, BROWSER_COUNT - 1); |
3639 | 3694 | end; |
3640 | - TBrowserRecord(BrowserTab.Tabs.Objects[i]).Free; | |
3641 | - BrowserTab.Tabs.Delete(i); | |
3642 | - if idx > i then begin | |
3643 | - BrowserTab.TabIndex := idx - 1; | |
3644 | - end else begin | |
3645 | - if BrowserTab.Tabs.Count -1 >= idx then | |
3646 | - BrowserTab.TabIndex := idx | |
3647 | - else | |
3648 | - BrowserTab.TabIndex := BrowserTab.Tabs.Count - 1; | |
3695 | + BrowserTab.Tabs.BeginUpdate; | |
3696 | + try | |
3697 | + TBrowserRecord(BrowserTab.Tabs.Objects[i]).Free; | |
3698 | + if ( BrowserTab.Tabs.Count - 1 = i ) and | |
3699 | + ( BrowserTab.TabRect(i).Left | |
3700 | + <= BrowserTab.DisplayRect.Left ) then begin | |
3701 | + BrowserTab.ScrollTabs(-1); | |
3702 | + end; | |
3703 | + BrowserTab.Tabs.Delete(i); | |
3704 | + if idx > i then begin | |
3705 | + BrowserTab.TabIndex := idx - 1; | |
3706 | + end else begin | |
3707 | + if BrowserTab.Tabs.Count -1 >= idx then | |
3708 | + BrowserTab.TabIndex := idx | |
3709 | + else | |
3710 | + BrowserTab.TabIndex := BrowserTab.Tabs.Count - 1; | |
3711 | + end; | |
3712 | + finally | |
3713 | + BrowserTab.Tabs.EndUpdate; | |
3649 | 3714 | end; |
3650 | 3715 | if(BrowserTab.TabIndex <> -1) and |
3651 | 3716 | ( TBrowserRecord(BrowserTab.Tabs.Objects[BrowserTab.TabIndex]).Browser = nil) then begin |
@@ -3663,7 +3728,6 @@ begin | ||
3663 | 3728 | FBrowsers.Move(BROWSER_COUNT - 1, 0); |
3664 | 3729 | end; |
3665 | 3730 | |
3666 | - BrowserTab.Tabs.EndUpdate; | |
3667 | 3731 | if( FActiveContent = nil) then |
3668 | 3732 | BrowserTab.OnChange(nil); |
3669 | 3733 | Exit; |
@@ -3927,52 +3991,53 @@ var | ||
3927 | 3991 | i, j: Integer; |
3928 | 3992 | idx: Integer; |
3929 | 3993 | begin |
3994 | + BrowserTab.Tabs.BeginUpdate; | |
3995 | + try | |
3996 | + if not BrowserTab.Dragging then begin | |
3997 | + FTabHintIndex := -1; | |
3998 | + BrowserTab.Hint := ''; | |
3999 | + idx := BrowserTab.TabIndex; | |
4000 | + if idx = -1 then begin | |
4001 | + SetContent(BrowserNullTab); | |
4002 | + | |
4003 | + end else if(BrowserTab.Tabs.Objects[idx] <> nil) and (BrowserTab.Tabs.Objects[idx] is TBrowserRecord) then begin | |
4004 | + if TBrowserRecord(BrowserTab.Tabs.Objects[idx]).Browser <> nil then begin | |
4005 | + j := FBrowsers.IndexOf(TBrowserRecord(BrowserTab.Tabs.Objects[idx]).Browser); | |
4006 | + if j <> -1 then | |
4007 | + FBrowsers.Move(j ,0); | |
4008 | + end else begin | |
4009 | + if( FActiveContent <> nil ) and (FActiveContent.Browser <> nil) and | |
4010 | + (FActiveContent.Browser <> BrowserNullTab.Browser) and | |
4011 | + (FActiveContent.Browser = TWebBrowser(FBrowsers[BROWSER_COUNT - 1])) then | |
4012 | + FBrowsers.Move(BROWSER_COUNT - 1, 0); | |
3930 | 4013 | |
3931 | - if not BrowserTab.Dragging then begin | |
3932 | - FTabHintIndex := -1; | |
3933 | - BrowserTab.Hint := ''; | |
3934 | - idx := BrowserTab.TabIndex; | |
3935 | - if idx = -1 then begin | |
3936 | - SetContent(BrowserNullTab); | |
3937 | - | |
3938 | - end else if(BrowserTab.Tabs.Objects[idx] <> nil) and (BrowserTab.Tabs.Objects[idx] is TBrowserRecord) then begin | |
3939 | - if TBrowserRecord(BrowserTab.Tabs.Objects[idx]).Browser <> nil then begin | |
3940 | - j := FBrowsers.IndexOf(TBrowserRecord(BrowserTab.Tabs.Objects[idx]).Browser); | |
3941 | - if j <> -1 then | |
3942 | - FBrowsers.Move(j ,0); | |
3943 | - end else begin | |
3944 | - if( FActiveContent <> nil ) and (FActiveContent.Browser <> nil) and | |
3945 | - (FActiveContent.Browser <> BrowserNullTab.Browser) and | |
3946 | - (FActiveContent.Browser = TWebBrowser(FBrowsers[BROWSER_COUNT - 1])) then | |
3947 | - FBrowsers.Move(BROWSER_COUNT - 1, 0); | |
3948 | - | |
3949 | - for i := 0 to BrowserTab.Tabs.Count - 1 do begin | |
3950 | - if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser = TWebBrowser(FBrowsers[BROWSER_COUNT - 1]) then begin | |
3951 | - ReleaseBrowser(TBrowserRecord(BrowserTab.Tabs.Objects[i])); | |
3952 | - break; | |
4014 | + for i := 0 to BrowserTab.Tabs.Count - 1 do begin | |
4015 | + if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser = TWebBrowser(FBrowsers[BROWSER_COUNT - 1]) then begin | |
4016 | + ReleaseBrowser(TBrowserRecord(BrowserTab.Tabs.Objects[i])); | |
4017 | + break; | |
4018 | + end; | |
3953 | 4019 | end; |
4020 | + TBrowserRecord(BrowserTab.Tabs.Objects[idx]).Browser := TWebBrowser(FBrowsers[BROWSER_COUNT - 1]); | |
4021 | + TBrowserRecord(BrowserTab.Tabs.Objects[idx]).Repaint := true; | |
4022 | + FBrowsers.Move(BROWSER_COUNT - 1, 0); | |
3954 | 4023 | end; |
3955 | - TBrowserRecord(BrowserTab.Tabs.Objects[idx]).Browser := TWebBrowser(FBrowsers[BROWSER_COUNT - 1]); | |
3956 | - TBrowserRecord(BrowserTab.Tabs.Objects[idx]).Repaint := true; | |
3957 | - FBrowsers.Move(BROWSER_COUNT - 1, 0); | |
3958 | - end; | |
3959 | - MoveWindow(TBrowserRecord(BrowserTab.Tabs.Objects[idx]).Browser.Handle, 0, 0, BrowserPanel.Width, BrowserPanel.Height, false); | |
3960 | - TOleControl(TBrowserRecord(BrowserTab.Tabs.Objects[idx]).Browser).BringToFront; | |
3961 | - SetContent(TBrowserRecord(BrowserTab.Tabs.Objects[idx])); | |
3962 | - | |
3963 | - if (GikoSys.Setting.URLDisplay) and (GetActiveContent <> nil) then | |
3964 | - AddressComboBox.Text := GetActiveContent.URL; | |
4024 | + MoveWindow(TBrowserRecord(BrowserTab.Tabs.Objects[idx]).Browser.Handle, 0, 0, BrowserPanel.Width, BrowserPanel.Height, false); | |
4025 | + TOleControl(TBrowserRecord(BrowserTab.Tabs.Objects[idx]).Browser).BringToFront; | |
4026 | + SetContent(TBrowserRecord(BrowserTab.Tabs.Objects[idx])); | |
3965 | 4027 | |
3966 | - if ((TreeView.Visible) and (TreeView.Focused)) or ((FavoriteTreeView.Visible) and (FavoriteTreeView.Focused)) or | |
3967 | - (ListView.Focused) or (SelectComboBox.Focused) or (AddressComboBox.Focused) | |
3968 | - then | |
3969 | - else | |
3970 | - GikoDM.SetFocusForBrowserAction.Execute; | |
4028 | + if (GikoSys.Setting.URLDisplay) and (GetActiveContent <> nil) then | |
4029 | + AddressComboBox.Text := GetActiveContent.URL; | |
3971 | 4030 | |
4031 | + if ((TreeView.Visible) and (TreeView.Focused)) or ((FavoriteTreeView.Visible) and (FavoriteTreeView.Focused)) or | |
4032 | + (ListView.Focused) or (SelectComboBox.Focused) or (AddressComboBox.Focused) | |
4033 | + then | |
4034 | + else | |
4035 | + GikoDM.SetFocusForBrowserAction.Execute; | |
4036 | + end; | |
3972 | 4037 | end; |
3973 | - | |
4038 | + finally | |
4039 | + BrowserTab.Tabs.EndUpdate; | |
3974 | 4040 | end; |
3975 | - | |
3976 | 4041 | end; |
3977 | 4042 | |
3978 | 4043 |
@@ -4001,54 +4066,51 @@ end; | ||
4001 | 4066 | |
4002 | 4067 | procedure TGikoForm.SetBrowserTabState; |
4003 | 4068 | var |
4004 | -// i: Integer; | |
4005 | 4069 | CoolBand: TCoolBand; |
4006 | 4070 | begin |
4007 | 4071 | BrowserBottomPanel.AutoSize := False; |
4008 | 4072 | if GikoSys.Setting.BrowserTabVisible then begin |
4009 | - if GikoSys.Setting.BrowserTabStyle = gtsTab then begin | |
4010 | - BrowserTab.Style := tsTabs; | |
4011 | - if GikoSys.Setting.BrowserTabPosition = gtpTop then | |
4012 | - BrowserTab.TabPosition := tpTop | |
4013 | - else | |
4014 | - BrowserTab.TabPosition := tpBottom; | |
4015 | - end else if GikoSys.Setting.BrowserTabStyle = gtsButton then begin | |
4016 | - BrowserTab.TabPosition := tpTop; | |
4017 | - BrowserTab.Style := tsButtons; | |
4018 | - end else begin | |
4019 | - BrowserTab.TabPosition := tpTop; | |
4020 | - BrowserTab.Style := tsFlatButtons | |
4021 | - end; | |
4022 | - | |
4023 | - if GikoSys.Setting.BrowserTabPosition = gtpTop then begin | |
4024 | - BrowserTab.Parent := BrowserTabToolBar; | |
4025 | - BrowserBottomPanel.Hide; | |
4026 | - CoolBand := GetCoolBand(BrowserCoolBar, BrowserTabToolBar); | |
4027 | - if CoolBand <> nil then | |
4028 | - CoolBand.Visible := True; | |
4029 | -// BrowserTab.Parent := BrowserTopPanel; | |
4030 | -// BrowserTab.Parent := BrowserCoolBar; | |
4031 | -// BrowserTab.Top := 26; | |
4032 | -// BrowserTopPanel.Height := 44; | |
4073 | + BrowserTab.Hide; | |
4074 | + BrowserTab.Tabs.BeginUpdate; | |
4075 | + try | |
4076 | + if GikoSys.Setting.BrowserTabStyle = gtsTab then begin | |
4077 | + BrowserTab.Style := tsTabs; | |
4078 | + if GikoSys.Setting.BrowserTabPosition = gtpTop then | |
4079 | + BrowserTab.TabPosition := tpTop | |
4080 | + else | |
4081 | + BrowserTab.TabPosition := tpBottom; | |
4082 | + end else if GikoSys.Setting.BrowserTabStyle = gtsButton then begin | |
4083 | + BrowserTab.TabPosition := tpTop; | |
4084 | + BrowserTab.Style := tsButtons; | |
4085 | + end else begin | |
4086 | + BrowserTab.TabPosition := tpTop; | |
4087 | + BrowserTab.Style := tsFlatButtons | |
4088 | + end; | |
4033 | 4089 | |
4034 | - end else begin | |
4035 | - BrowserTab.Parent := BrowserBottomPanel; | |
4036 | - BrowserTab.Top := 0; | |
4037 | - BrowserTab.Left := 0; | |
4038 | - BrowserBottomPanel.Show; | |
4039 | - CoolBand := GetCoolBand(BrowserCoolBar, BrowserTabToolBar); | |
4040 | - if CoolBand <> nil then | |
4041 | - CoolBand.Visible := False; | |
4042 | -// BrowserTopPanel.Height := 26; | |
4043 | - end; | |
4044 | - BrowserTab.Show; | |
4090 | + if GikoSys.Setting.BrowserTabPosition = gtpTop then begin | |
4091 | + BrowserTab.Parent := BrowserTabToolBar; | |
4092 | + BrowserBottomPanel.Hide; | |
4093 | + CoolBand := GetCoolBand(BrowserCoolBar, BrowserTabToolBar); | |
4094 | + if CoolBand <> nil then | |
4095 | + CoolBand.Visible := True; | |
4096 | + end else begin | |
4097 | + BrowserTab.Parent := BrowserBottomPanel; | |
4098 | + BrowserTab.Top := 0; | |
4099 | + BrowserTab.Left := 0; | |
4100 | + BrowserBottomPanel.Show; | |
4101 | + CoolBand := GetCoolBand(BrowserCoolBar, BrowserTabToolBar); | |
4102 | + if CoolBand <> nil then | |
4103 | + CoolBand.Visible := False; | |
4104 | + end; | |
4105 | + finally | |
4106 | + BrowserTab.Tabs.EndUpdate; | |
4107 | + BrowserTab.Show; | |
4108 | + end; | |
4045 | 4109 | end else begin |
4046 | 4110 | CoolBand := GetCoolBand(BrowserCoolBar, BrowserTabToolBar); |
4047 | 4111 | if CoolBand <> nil then |
4048 | 4112 | CoolBand.Visible := False; |
4049 | 4113 | BrowserBottomPanel.Visible := False; |
4050 | -// BrowserTab.Visible := False; | |
4051 | -// BrowserTopPanel.Height := 26; | |
4052 | 4114 | GikoDM.AllTabCloseAction.Execute; |
4053 | 4115 | end; |
4054 | 4116 | end; |
@@ -7580,61 +7642,6 @@ begin | ||
7580 | 7642 | MsgBox(Handle, s, '³êÈ©Á½áO', MB_OK or MB_ICONSTOP); |
7581 | 7643 | end; |
7582 | 7644 | // ************************************************************************* |
7583 | -//! ANVÌ`FbNóÔÌú» FormÌCreateÅÄÑoµÄà½fµÈ¢ | |
7584 | -// ************************************************************************* | |
7585 | -procedure TGikoForm.InitActionChecked(); | |
7586 | -begin | |
7587 | - //OCóÔðÄÝè | |
7588 | - GikoDM.LoginAction.Checked := GikoDM.LoginAction.Checked; | |
7589 | - //~ [gÌóÔðÝè | |
7590 | - GikoDM.MuteAction.Checked := GikoSys.Setting.Mute; | |
7591 | - //æÊ̪ÌóÔðÄÝè | |
7592 | - GikoDM.ArrangeAction.Checked := GikoDM.ArrangeAction.Checked; | |
7593 | - | |
7594 | - //XS\¦{^ð³ê½óÔÉ·é | |
7595 | - GikoDM.AllItemAction.Checked := True; | |
7596 | - GikoDM.AllResAction.Checked := True; | |
7597 | - | |
7598 | - // X\¦ÍÍ | |
7599 | - FResRangeMenuSelect := GikoSys.ResRange; | |
7600 | - case GikoSys.ResRange of | |
7601 | - Ord( grrAll ): | |
7602 | - begin | |
7603 | - GikoDM.AllResAction.Execute; | |
7604 | - end; | |
7605 | - Ord( grrSelect ): | |
7606 | - begin | |
7607 | - SelectComboBox.Text := SelectComboBox.Items[ 1 ]; | |
7608 | - GikoDM.SelectResAction.Checked := True; | |
7609 | - end; | |
7610 | - else | |
7611 | - case FResRangeMenuSelect of | |
7612 | - Ord( grrKoko ): GikoDM.OnlyKokoResAction.Checked := True; | |
7613 | - Ord( grrNew ): GikoDM.OnlyNewResAction.Checked := True; | |
7614 | - 100: GikoDM.OnlyAHundredResAction.Checked := True; | |
7615 | - end; | |
7616 | - end; | |
7617 | - | |
7618 | - // Xbhê\¦ÍÍ | |
7619 | - case GikoSys.Setting.ThreadRange of | |
7620 | - gtrAll: | |
7621 | - begin | |
7622 | - GikoDM.AllItemAction.Checked := True; | |
7623 | - ViewType := gvtAll; | |
7624 | - end; | |
7625 | - gtrLog: | |
7626 | - begin | |
7627 | - GikoDM.LogItemAction.Checked := True; | |
7628 | - ViewType := gvtLog; | |
7629 | - end; | |
7630 | - gtrNew: | |
7631 | - begin | |
7632 | - GikoDM.NewItemAction.Checked := True; | |
7633 | - ViewType := gvtNew; | |
7634 | - end; | |
7635 | - end; | |
7636 | -end; | |
7637 | -// ************************************************************************* | |
7638 | 7645 | //! _E[hRg[Xbh̶¬ |
7639 | 7646 | // ************************************************************************* |
7640 | 7647 | procedure TGikoForm.CreateControlThread(); |
@@ -7757,7 +7764,7 @@ begin | ||
7757 | 7764 | rect := TreeView.Selected.DisplayRect(true); |
7758 | 7765 | if ((rect.Left <= X) and (rect.Right >= X)) and |
7759 | 7766 | ((rect.Bottom >= Y) and (rect.Top <= Y)) then begin |
7760 | - // NbNÆ_uNbNðRRÅ»è | |
7767 | + // NbNÆ_uNbNðRRÅ»è | |
7761 | 7768 | if ssDouble in Shift then begin |
7762 | 7769 | TreeDoubleClick( TreeView.Selected ); |
7763 | 7770 | end else begin |
@@ -7768,6 +7775,45 @@ begin | ||
7768 | 7775 | end; |
7769 | 7776 | end; |
7770 | 7777 | end; |
7778 | +//! ActionListÌGroupIndexÌÛ¶ | |
7779 | +procedure TGikoForm.GetGroupIndex(ActionList: TActionList); | |
7780 | +var | |
7781 | + i: Integer; | |
7782 | +begin | |
7783 | + if ActionList <> nil then begin | |
7784 | + SetLength(FActionListGroupIndexes, ActionList.ActionCount); | |
7785 | + | |
7786 | + for i := 0 to ActionList.ActionCount - 1 do begin | |
7787 | + try | |
7788 | + FActionListGroupIndexes[i] := | |
7789 | + TCustomAction(ActionList.Actions[i]).GroupIndex; | |
7790 | + TCustomAction(ActionList.Actions[i]).GroupIndex | |
7791 | + := 0; | |
7792 | + except | |
7793 | + ;//CastūȢƫÎô | |
7794 | + end; | |
7795 | + end; | |
7796 | + | |
7797 | + end; | |
7798 | +end; | |
7799 | +//! ActionListÌGroupIndexÌÝè | |
7800 | +procedure TGikoForm.SetGroupIndex(ActionList: TActionList); | |
7801 | +var | |
7802 | + i: Integer; | |
7803 | +begin | |
7804 | + if ActionList <> nil then begin | |
7805 | + if Length( FActionListGroupIndexes ) = ActionList.ActionCount then begin | |
7806 | + for i := 0 to ActionList.ActionCount - 1 do begin | |
7807 | + try | |
7808 | + TCustomAction(ActionList.Actions[i]).GroupIndex | |
7809 | + := FActionListGroupIndexes[i]; | |
7810 | + except | |
7811 | + ;//CastūȢƫÎô | |
7812 | + end; | |
7813 | + end; | |
7814 | + end; | |
7815 | + end; | |
7816 | +end; | |
7771 | 7817 | |
7772 | 7818 | initialization |
7773 | 7819 | OleInitialize(nil); |
@@ -37,7 +37,7 @@ object GikoDM: TGikoDM | ||
37 | 37 | end |
38 | 38 | object NewBoardAction: TAction |
39 | 39 | Category = #12501#12449#12452#12523 |
40 | - Caption = #26495#26356#26032'(&B)...' | |
40 | + Caption = #26495#19968#35239#26356#26032'(&B)...' | |
41 | 41 | Hint = #12508#12540#12489#26356#26032#12480#12452#12450#12525#12464#12434#34920#31034#12377#12427 |
42 | 42 | OnExecute = NewBoardActionExecute |
43 | 43 | end |
@@ -1201,6 +1201,12 @@ object GikoDM: TGikoDM | ||
1201 | 1201 | Hint = #12473#12524#12483#12489#12398#23481#37327#12434#12501#12449#12452#12523#12363#12425#20877#35336#31639#12377#12427 |
1202 | 1202 | OnExecute = ThreadSizeCalcForFileActionExecute |
1203 | 1203 | end |
1204 | + object SetInputAssistAction: TAction | |
1205 | + Category = #12484#12540#12523 | |
1206 | + Caption = #20837#21147#12450#12471#12473#12488#12398#35373#23450 | |
1207 | + Hint = #20837#21147#12450#12471#12473#12488#12398#35373#23450#12501#12457#12540#12512#12434#38283#12367 | |
1208 | + OnExecute = SetInputAssistActionExecute | |
1209 | + end | |
1204 | 1210 | end |
1205 | 1211 | object ToobarImageList: TImageList |
1206 | 1212 | Left = 44 |
@@ -212,6 +212,7 @@ type | ||
212 | 212 | ToobarImageList: TImageList; |
213 | 213 | SaveDialog: TSaveDialog; |
214 | 214 | ThreadSizeCalcForFileAction: TAction; |
215 | + SetInputAssistAction: TAction; | |
215 | 216 | procedure EditNGActionExecute(Sender: TObject); |
216 | 217 | procedure ReloadActionExecute(Sender: TObject); |
217 | 218 | procedure GoFowardActionExecute(Sender: TObject); |
@@ -394,6 +395,7 @@ type | ||
394 | 395 | procedure AllSelectActionExecute(Sender: TObject); |
395 | 396 | procedure AllSelectActionUpdate(Sender: TObject); |
396 | 397 | procedure ThreadSizeCalcForFileActionExecute(Sender: TObject); |
398 | + procedure SetInputAssistActionExecute(Sender: TObject); | |
397 | 399 | private |
398 | 400 | { Private é¾ } |
399 | 401 | procedure ClearResFilter; |
@@ -434,7 +436,7 @@ uses | ||
434 | 436 | ToolBarUtil, NewBoard, HTMLCreate, IndividualAbon, |
435 | 437 | GikoBayesian, About, ShellAPI, |
436 | 438 | RoundName, RoundData, Menus, ListViewUtils, |
437 | - ThreadControl, GikoMessage; | |
439 | + ThreadControl, GikoMessage, InputAssist; | |
438 | 440 | |
439 | 441 | |
440 | 442 | {$R *.dfm} |
@@ -1062,7 +1064,6 @@ begin | ||
1062 | 1064 | if Item = nil then Exit; |
1063 | 1065 | Editor := TEditorForm.Create(GikoForm.GetMainForm); |
1064 | 1066 | Editor.SetThreadItem(Item); |
1065 | - GikoSys.LoadKeySetting(Editor.ActionList, GikoSys.GetEditorKeyFileName); | |
1066 | 1067 | Editor.Show; |
1067 | 1068 | Editor.BodyEdit.SetFocus; |
1068 | 1069 | end; |
@@ -1563,7 +1564,7 @@ begin | ||
1563 | 1564 | try |
1564 | 1565 | if Dlg.ShowModal = mrOk then begin |
1565 | 1566 | GikoSys.SaveKeySetting(GikoFormActionList, Setting.KEY_SETTING_FILE_NAME); |
1566 | - GikoSys.SaveKeySetting(Dlg.EditorForm.ActionList, Setting.KEY_SETTING_FILE_NAME); | |
1567 | + GikoSys.SaveKeySetting(Dlg.EditorForm.ActionList, Setting.EKEY_SETTING_FILE_NAME); | |
1567 | 1568 | GikoSys.Setting.Gestures.SaveGesture( GikoSys.Setting.GetGestureFileName ); |
1568 | 1569 | end; |
1569 | 1570 |
@@ -2227,7 +2228,6 @@ begin | ||
2227 | 2228 | |
2228 | 2229 | Editor := TEditorForm.Create(GikoForm); |
2229 | 2230 | Editor.SetThreadItem(Item); |
2230 | - GikoSys.LoadKeySetting(Editor.ActionList, GikoSys.GetEditorKeyFileName); | |
2231 | 2231 | Editor.BodyEdit.Text := '>>' + IntToStr(Number) + #13#10; |
2232 | 2232 | Editor.Show; |
2233 | 2233 | Editor.BodyEdit.SetFocus; |
@@ -3783,5 +3783,17 @@ begin | ||
3783 | 3783 | ShowMessage('vZI¹µÜµ½B'); |
3784 | 3784 | end; |
3785 | 3785 | |
3786 | +procedure TGikoDM.SetInputAssistActionExecute(Sender: TObject); | |
3787 | +var | |
3788 | + form : TInputAssistForm; | |
3789 | +begin | |
3790 | + form := TInputAssistForm.Create(GikoForm); | |
3791 | + try | |
3792 | + form.ShowModal; | |
3793 | + finally | |
3794 | + form.Release; | |
3795 | + end; | |
3796 | +end; | |
3797 | + | |
3786 | 3798 | end. |
3787 | 3799 |
@@ -152,6 +152,7 @@ type | ||
152 | 152 | |
153 | 153 | function GetMainKeyFileName : String; |
154 | 154 | function GetEditorKeyFileName: String; |
155 | + function GetInputAssistFileName: String; | |
155 | 156 | procedure ReadSubjectFile(Board: TBoard); |
156 | 157 | procedure CreateThreadDat(Board: TBoard); |
157 | 158 | procedure WriteThreadDat(Board: TBoard); |
@@ -254,7 +255,7 @@ const | ||
254 | 255 | ZERO_DATE: Integer = 25569; |
255 | 256 | BETA_VERSION_NAME_E = 'beta'; |
256 | 257 | BETA_VERSION_NAME_J = 'ÊÞÀ'; |
257 | - BETA_VERSION = 51; | |
258 | + BETA_VERSION = 52; | |
258 | 259 | BETA_VERSION_BUILD = ''; //!< debugÅÈÇ |
259 | 260 | APP_NAME = 'gikoNavi'; |
260 | 261 | BE_PHP_URL = 'http://be.2ch.net/test/p.php?i='; |
@@ -3248,7 +3249,11 @@ function TGikoSys.GetEditorKeyFileName: String; | ||
3248 | 3249 | begin |
3249 | 3250 | Result := Setting.GetEditorKeyFileName; |
3250 | 3251 | end; |
3251 | - | |
3252 | +//! üÍAVXgÌÝèt@C¼ | |
3253 | +function TGikoSys.GetInputAssistFileName: String; | |
3254 | +begin | |
3255 | + Result := Setting.GetInputAssistFileName; | |
3256 | +end; | |
3252 | 3257 | //! MRirÌbZ[WðÝè·é |
3253 | 3258 | procedure TGikoSys.SetGikoMessage; |
3254 | 3259 | begin |
@@ -970,17 +970,17 @@ const | ||
970 | 970 | FORMAT_NOMAIL = '<a name="%s"></a><div class="header"><span class="no"><a href="menu:%s">%s</a></span>' |
971 | 971 | + '<span class="name_label">¼OF</span> <span class="name"><b>%s</b></span>' |
972 | 972 | + '<span class="date_label">eúF</span> <span class="date">%s</span></div>' |
973 | - + '<div class="mes">%s</div>'; | |
973 | + + '<div class="mes">%s</div>'#13#10; | |
974 | 974 | |
975 | 975 | FORMAT_SHOWMAIL = '<a name="%s"></a><div class="header"><span class="no"><a href="menu:%s">%s</a></span>' |
976 | 976 | + '<span class="name_label"> ¼OF </span><a class="name_mail" href="mailto:%s">' |
977 | 977 | + '<b>%s</b></a><span class="mail"> [%s]</span><span class="date_label"> eúF</span>' |
978 | - + '<span class="date"> %s</span></div><div class="mes">%s </div>'; | |
978 | + + '<span class="date"> %s</span></div><div class="mes">%s</div>'#13#10; | |
979 | 979 | |
980 | 980 | FORMAT_NOSHOW = '<a name="%s"></a><div class="header"><span class="no"><a href="menu:%s">%s</a></span>' |
981 | 981 | + '<span class="name_label"> ¼OF </span><a class="name_mail" href="mailto:%s">' |
982 | 982 | + '<b>%s</b></a><span class="date_label"> eúF</span><span class="date"> %s</span></div>' |
983 | - + '<div class="mes">%s </div>'; | |
983 | + + '<div class="mes">%s</div>'#13#10; | |
984 | 984 | |
985 | 985 | var |
986 | 986 | i: integer; |
@@ -1045,7 +1045,7 @@ begin | ||
1045 | 1045 | else if GikoSys.Setting.ShowMail then |
1046 | 1046 | doc.Write(Format(FORMAT_SHOWMAIL, [No, No, No, Res.FMailTo, Res.FName, Res.FMailTo, Res.FDateTime, Res.FBody])) |
1047 | 1047 | else |
1048 | - doc.Write(Format(FORMAT_NOSHOW, [No, No, No, Res.FName, Res.FDateTime, Res.FBody])); | |
1048 | + doc.Write(Format(FORMAT_NOSHOW, [No, No, No, Res.FMailTo, Res.FName, Res.FDateTime, Res.FBody])); | |
1049 | 1049 | end; |
1050 | 1050 | |
1051 | 1051 | if ThreadItem.Kokomade = (i + 1) then begin |
@@ -0,0 +1,325 @@ | ||
1 | +object InputAssistForm: TInputAssistForm | |
2 | + Left = 328 | |
3 | + Top = 115 | |
4 | + Width = 494 | |
5 | + Height = 453 | |
6 | + Caption = #20837#21147#12450#12471#12473#12488#35373#23450 | |
7 | + Color = clBtnFace | |
8 | + Font.Charset = SHIFTJIS_CHARSET | |
9 | + Font.Color = clWindowText | |
10 | + Font.Height = -12 | |
11 | + Font.Name = #65325#65331' '#65328#12468#12471#12483#12463 | |
12 | + Font.Style = [] | |
13 | + OldCreateOrder = False | |
14 | + OnClose = FormClose | |
15 | + OnCreate = FormCreate | |
16 | + PixelsPerInch = 96 | |
17 | + TextHeight = 12 | |
18 | + object Panel1: TPanel | |
19 | + Left = 0 | |
20 | + Top = 0 | |
21 | + Width = 486 | |
22 | + Height = 177 | |
23 | + Align = alTop | |
24 | + Caption = 'Panel1' | |
25 | + TabOrder = 0 | |
26 | + object GikoListView1: TGikoListView | |
27 | + Left = 8 | |
28 | + Top = 8 | |
29 | + Width = 361 | |
30 | + Height = 161 | |
31 | + Columns = <> | |
32 | + ReadOnly = True | |
33 | + RowSelect = True | |
34 | + SmallImages = ColumnImageList | |
35 | + TabOrder = 0 | |
36 | + ViewStyle = vsReport | |
37 | + OnColumnClick = GikoListView1ColumnClick | |
38 | + OnCompare = GikoListView1Compare | |
39 | + OnSelectItem = GikoListView1SelectItem | |
40 | + end | |
41 | + object DeleteButton: TButton | |
42 | + Left = 382 | |
43 | + Top = 40 | |
44 | + Width = 75 | |
45 | + Height = 25 | |
46 | + Caption = #21066#38500 | |
47 | + TabOrder = 1 | |
48 | + OnClick = DeleteButtonClick | |
49 | + end | |
50 | + object AddButton: TButton | |
51 | + Left = 382 | |
52 | + Top = 8 | |
53 | + Width = 75 | |
54 | + Height = 25 | |
55 | + Caption = #36861#21152 | |
56 | + TabOrder = 2 | |
57 | + OnClick = AddButtonClick | |
58 | + end | |
59 | + object ApplyButton: TButton | |
60 | + Left = 382 | |
61 | + Top = 72 | |
62 | + Width = 75 | |
63 | + Height = 25 | |
64 | + Caption = #36969#29992 | |
65 | + TabOrder = 3 | |
66 | + OnClick = ApplyButtonClick | |
67 | + end | |
68 | + object CloseButton: TButton | |
69 | + Left = 384 | |
70 | + Top = 136 | |
71 | + Width = 75 | |
72 | + Height = 25 | |
73 | + Caption = #32066#20102 | |
74 | + TabOrder = 4 | |
75 | + OnClick = CloseButtonClick | |
76 | + end | |
77 | + end | |
78 | + object Panel2: TPanel | |
79 | + Left = 0 | |
80 | + Top = 177 | |
81 | + Width = 486 | |
82 | + Height = 249 | |
83 | + Align = alClient | |
84 | + Caption = 'Panel2' | |
85 | + TabOrder = 1 | |
86 | + object Panel3: TPanel | |
87 | + Left = 1 | |
88 | + Top = 1 | |
89 | + Width = 484 | |
90 | + Height = 49 | |
91 | + Align = alTop | |
92 | + BevelOuter = bvNone | |
93 | + TabOrder = 0 | |
94 | + object KeyNameEdit: TLabeledEdit | |
95 | + Left = 8 | |
96 | + Top = 21 | |
97 | + Width = 161 | |
98 | + Height = 20 | |
99 | + EditLabel.Width = 36 | |
100 | + EditLabel.Height = 12 | |
101 | + EditLabel.Caption = #12461#12540#21517 | |
102 | + LabelPosition = lpAbove | |
103 | + LabelSpacing = 3 | |
104 | + TabOrder = 0 | |
105 | + end | |
106 | + object CategoryNameEdit: TLabeledEdit | |
107 | + Left = 184 | |
108 | + Top = 21 | |
109 | + Width = 121 | |
110 | + Height = 20 | |
111 | + EditLabel.Width = 53 | |
112 | + EditLabel.Height = 12 | |
113 | + EditLabel.Caption = #12459#12486#12468#12522#21517 | |
114 | + LabelPosition = lpAbove | |
115 | + LabelSpacing = 3 | |
116 | + TabOrder = 1 | |
117 | + end | |
118 | + end | |
119 | + object Panel4: TPanel | |
120 | + Left = 1 | |
121 | + Top = 50 | |
122 | + Width = 484 | |
123 | + Height = 198 | |
124 | + Align = alClient | |
125 | + BevelOuter = bvNone | |
126 | + TabOrder = 1 | |
127 | + object TextMemo: TMemo | |
128 | + Left = 0 | |
129 | + Top = 0 | |
130 | + Width = 484 | |
131 | + Height = 198 | |
132 | + Align = alClient | |
133 | + ScrollBars = ssBoth | |
134 | + TabOrder = 0 | |
135 | + end | |
136 | + end | |
137 | + end | |
138 | + object ColumnImageList: TImageList | |
139 | + Left = 384 | |
140 | + Top = 144 | |
141 | + Bitmap = { | |
142 | + 494C010102000400040010001000FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600 | |
143 | + 0000000000003600000028000000400000001000000001002000000000000010 | |
144 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
145 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
146 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
147 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
148 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
149 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
150 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
151 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
152 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
153 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
154 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
155 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
156 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
157 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
158 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
159 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
160 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
161 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
162 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
163 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
164 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
165 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
166 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
167 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
168 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
169 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
170 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
171 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
172 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
173 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
174 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
175 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
176 | + 000000000000000000000000000000000000000000000000000000000000FFFF | |
177 | + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 | |
178 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
179 | + 0000000000000000000080808000FFFFFF000000000000000000000000000000 | |
180 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
181 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
182 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
183 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
184 | + 0000000000000000000000000000000000000000000000000000000000008080 | |
185 | + 80008080800000000000000000000000000000000000FFFFFF00FFFFFF000000 | |
186 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
187 | + 0000000000008080800080808000FFFFFF00FFFFFF0000000000000000000000 | |
188 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
189 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
190 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
191 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
192 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
193 | + 00008080800000000000000000000000000000000000FFFFFF00000000000000 | |
194 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
195 | + 000000000000808080000000000000000000FFFFFF0000000000000000000000 | |
196 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
197 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
198 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
199 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
200 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
201 | + 000080808000808080000000000000000000FFFFFF00FFFFFF00000000000000 | |
202 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
203 | + 000080808000808080000000000000000000FFFFFF00FFFFFF00000000000000 | |
204 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
205 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
206 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
207 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
208 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
209 | + 000000000000808080000000000000000000FFFFFF0000000000000000000000 | |
210 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
211 | + 00008080800000000000000000000000000000000000FFFFFF00000000000000 | |
212 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
213 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
214 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
215 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
216 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
217 | + 0000000000008080800080808000FFFFFF00FFFFFF0000000000000000000000 | |
218 | + 0000000000000000000000000000000000000000000000000000000000008080 | |
219 | + 80008080800000000000000000000000000000000000FFFFFF00FFFFFF000000 | |
220 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
221 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
222 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
223 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
224 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
225 | + 0000000000000000000080808000FFFFFF000000000000000000000000000000 | |
226 | + 0000000000000000000000000000000000000000000000000000000000008080 | |
227 | + 8000808080008080800080808000808080008080800080808000808080000000 | |
228 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
229 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
230 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
231 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
232 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
233 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
234 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
235 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
236 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
237 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
238 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
239 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
240 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
241 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
242 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
243 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
244 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
245 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
246 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
247 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
248 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
249 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
250 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
251 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
252 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
253 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
254 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
255 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
256 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
257 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
258 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
259 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
260 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
261 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
262 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
263 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
264 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
265 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
266 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
267 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
268 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
269 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
270 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
271 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
272 | + 000000000000000000000000000000000000424D3E000000000000003E000000 | |
273 | + 2800000040000000100000000100010000000000800000000000000000000000 | |
274 | + 000000000000000000000000FFFFFF00FFFFFFFF00000000FFFFFFFF00000000 | |
275 | + FFFFFFFF00000000FFFFFFFF00000000E01FFCFF00000000E79FF87F00000000 | |
276 | + F7BFFB7F00000000F33FF33F00000000FB7FF7BF00000000F87FE79F00000000 | |
277 | + FCFFE01F00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000 | |
278 | + FFFFFFFF00000000FFFFFFFF00000000} | |
279 | + end | |
280 | + object InputAssistFormActionList: TActionList | |
281 | + Left = 376 | |
282 | + Top = 184 | |
283 | + object EditCut1: TEditCut | |
284 | + Category = #32232#38598 | |
285 | + Caption = #20999#12426#21462#12426'(&T)' | |
286 | + Hint = #20999#12426#21462#12426'|'#36984#25246#37096#20998#12434#20999#12426#21462#12426#12289#12463#12522#12483#12503#12508#12540#12489#12395#36865#12427 | |
287 | + ImageIndex = 0 | |
288 | + ShortCut = 16472 | |
289 | + end | |
290 | + object EditCopy1: TEditCopy | |
291 | + Category = #32232#38598 | |
292 | + Caption = #12467#12500#12540'(&C)' | |
293 | + Hint = #12467#12500#12540'|'#36984#25246#37096#20998#12434#12467#12500#12540#12375#12289#12463#12522#12483#12503#12508#12540#12489#12395#36865#12427 | |
294 | + ImageIndex = 1 | |
295 | + ShortCut = 16451 | |
296 | + end | |
297 | + object EditPaste1: TEditPaste | |
298 | + Category = #32232#38598 | |
299 | + Caption = #36028#12426#20184#12369'(&P)' | |
300 | + Hint = #36028#12426#20184#12369'|'#12463#12522#12483#12503#12508#12540#12489#12398#20869#23481#12434#36028#12426#20184#12369#12427 | |
301 | + ImageIndex = 2 | |
302 | + ShortCut = 16470 | |
303 | + end | |
304 | + object EditSelectAll1: TEditSelectAll | |
305 | + Category = #32232#38598 | |
306 | + Caption = #12377#12409#12390#12434#36984#25246'(&A)' | |
307 | + Hint = #12377#12409#12390#12434#36984#25246'|'#12489#12461#12517#12513#12531#12488#20840#20307#12434#36984#25246#12377#12427 | |
308 | + ShortCut = 16449 | |
309 | + end | |
310 | + object EditUndo1: TEditUndo | |
311 | + Category = #32232#38598 | |
312 | + Caption = #20803#12395#25147#12377'(&U)' | |
313 | + Hint = #20803#12395#25147#12377'|'#30452#21069#12398#22793#26356#12434#20803#12395#25147#12377 | |
314 | + ImageIndex = 3 | |
315 | + ShortCut = 16474 | |
316 | + end | |
317 | + object EditDelete1: TEditDelete | |
318 | + Category = #32232#38598 | |
319 | + Caption = #21066#38500'(&D)' | |
320 | + Hint = #21066#38500'|'#36984#25246#37096#20998#12434#21066#38500#12377#12427 | |
321 | + ImageIndex = 5 | |
322 | + ShortCut = 46 | |
323 | + end | |
324 | + end | |
325 | +end |
@@ -0,0 +1,214 @@ | ||
1 | +unit InputAssist; | |
2 | + | |
3 | +interface | |
4 | + | |
5 | +uses | |
6 | + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, | |
7 | + Dialogs, StdCtrls, ComCtrls, GikoListView, Menus, ExtCtrls, ImgList, | |
8 | + InputAssistDataModule, StdActns, ActnList; | |
9 | + | |
10 | +type | |
11 | + TInputAssistForm = class(TForm) | |
12 | + Panel1: TPanel; | |
13 | + Panel2: TPanel; | |
14 | + GikoListView1: TGikoListView; | |
15 | + DeleteButton: TButton; | |
16 | + AddButton: TButton; | |
17 | + ApplyButton: TButton; | |
18 | + Panel3: TPanel; | |
19 | + KeyNameEdit: TLabeledEdit; | |
20 | + CategoryNameEdit: TLabeledEdit; | |
21 | + Panel4: TPanel; | |
22 | + TextMemo: TMemo; | |
23 | + ColumnImageList: TImageList; | |
24 | + CloseButton: TButton; | |
25 | + InputAssistFormActionList: TActionList; | |
26 | + EditCut1: TEditCut; | |
27 | + EditCopy1: TEditCopy; | |
28 | + EditPaste1: TEditPaste; | |
29 | + EditSelectAll1: TEditSelectAll; | |
30 | + EditUndo1: TEditUndo; | |
31 | + EditDelete1: TEditDelete; | |
32 | + procedure FormCreate(Sender: TObject); | |
33 | + procedure GikoListView1SelectItem(Sender: TObject; Item: TListItem; | |
34 | + Selected: Boolean); | |
35 | + procedure AddButtonClick(Sender: TObject); | |
36 | + procedure DeleteButtonClick(Sender: TObject); | |
37 | + procedure ApplyButtonClick(Sender: TObject); | |
38 | + procedure FormClose(Sender: TObject; var Action: TCloseAction); | |
39 | + procedure GikoListView1Compare(Sender: TObject; Item1, | |
40 | + Item2: TListItem; Data: Integer; var Compare: Integer); | |
41 | + procedure GikoListView1ColumnClick(Sender: TObject; | |
42 | + Column: TListColumn); | |
43 | + procedure CloseButtonClick(Sender: TObject); | |
44 | + private | |
45 | + { Private é¾ } | |
46 | + FSortColumn : Integer; | |
47 | + procedure AddListViewItem(ResWord : TResistWord); | |
48 | + public | |
49 | + { Public é¾ } | |
50 | + end; | |
51 | + | |
52 | +var | |
53 | + InputAssistForm: TInputAssistForm; | |
54 | + | |
55 | +implementation | |
56 | + | |
57 | + | |
58 | +{$R *.dfm} | |
59 | +//! tH[¶¬ÌCxg | |
60 | +procedure TInputAssistForm.FormCreate(Sender: TObject); | |
61 | +var | |
62 | + i : Integer; | |
63 | + column: TListColumn; | |
64 | +begin | |
65 | + FSortColumn := 0; | |
66 | + GikoListView1.Columns.Clear; | |
67 | + column := GikoListView1.Columns.Add; | |
68 | + column.ImageIndex := 0; | |
69 | + column.Caption := 'L['; | |
70 | + column.Width := 150; | |
71 | + column := GikoListView1.Columns.Add; | |
72 | + column.Caption := 'JeS'; | |
73 | + column.Width := 80; | |
74 | + for i := 0 to InputAssistDM.ResistWordCount - 1 do begin | |
75 | + AddListViewItem(InputAssistDM.GetResistWord(i)); | |
76 | + end; | |
77 | + //\[góÔðð (ðµÈ¢ÆACeÌL[¼ðÏXÅ«È¢) | |
78 | + InputAssistDM.Sorted := False; | |
79 | +end; | |
80 | +//! êÉACeðÇÁ·é | |
81 | +procedure TInputAssistForm.AddListViewItem(ResWord : TResistWord); | |
82 | +var | |
83 | + item: TListItem; | |
84 | +begin | |
85 | + item := GikoListView1.Items.Add; | |
86 | + item.ImageIndex := -1; | |
87 | + item.Caption := resWord.GetKey; | |
88 | + item.SubItems.Add(resWord.GetCategory); | |
89 | + item.Data := resWord; | |
90 | +end; | |
91 | +//! o^Pêê©çACeðIðµ½Æ«ÌCxg | |
92 | +procedure TInputAssistForm.GikoListView1SelectItem(Sender: TObject; | |
93 | + Item: TListItem; Selected: Boolean); | |
94 | +begin | |
95 | + if (Item <> nil) and (Item.Data <> nil) then begin | |
96 | + KeyNameEdit.Text := TResistWord(Item.Data).GetKey; | |
97 | + CategoryNameEdit.Text := TResistWord(Item.Data).GetCategory; | |
98 | + TextMemo.Lines.Text := TResistWord(Item.Data).GetText; | |
99 | + end else begin | |
100 | + TextMemo.Lines.Text := ''; | |
101 | + end; | |
102 | +end; | |
103 | +//! ÇÁ{^ºÌCxg | |
104 | +procedure TInputAssistForm.AddButtonClick(Sender: TObject); | |
105 | +var | |
106 | + resWord : TResistWord; | |
107 | +begin | |
108 | + if (Length(KeyNameEdit.Text) = 0) then begin | |
109 | + ShowMessage('L[¼ðÝèµÄ¾³¢B'); | |
110 | + end else begin | |
111 | + resWord := InputAssistDM.Add(KeyNameEdit.Text); | |
112 | + resWord.SetCategory(CategoryNameEdit.Text); | |
113 | + resWord.SetText(TextMemo.Text); | |
114 | + AddListViewItem(resWord); | |
115 | + GikoListView1.AlphaSort; | |
116 | + end; | |
117 | +end; | |
118 | +//! í{^ºÌCxg | |
119 | +procedure TInputAssistForm.DeleteButtonClick(Sender: TObject); | |
120 | +begin | |
121 | + if GikoListView1.Selected <> nil then begin | |
122 | + InputAssistDM.DeleteResistWord(GikoListView1.Selected.Data); | |
123 | + GikoListView1.Selected.Data := nil; | |
124 | + GikoListView1.DeleteSelected; | |
125 | + end; | |
126 | +end; | |
127 | +//! Kp{^ºÌCxg | |
128 | +procedure TInputAssistForm.ApplyButtonClick(Sender: TObject); | |
129 | +var | |
130 | + resWord : TResistWord; | |
131 | +begin | |
132 | + if GikoListView1.Selected <> nil then begin | |
133 | + if (Length(KeyNameEdit.Text) = 0) then begin | |
134 | + ShowMessage('L[¼ð³µÉÍūܹñB'); | |
135 | + end else begin | |
136 | + resWord := TResistWord(GikoListView1.Selected.Data); | |
137 | + resWord.SetKey(KeyNameEdit.Text); | |
138 | + resWord.SetCategory(CategoryNameEdit.Text); | |
139 | + resWord.SetText(TextMemo.Text); | |
140 | + // êÌXV | |
141 | + GikoListView1.Selected.Caption := resWord.GetKey; | |
142 | + GikoListView1.Selected.SubItems[0] := resWord.GetCategory; | |
143 | + GikoListView1.AlphaSort; | |
144 | + end; | |
145 | + end; | |
146 | +end; | |
147 | +//! tH[ð¶éÆ«ÌCxg | |
148 | +procedure TInputAssistForm.FormClose(Sender: TObject; | |
149 | + var Action: TCloseAction); | |
150 | +begin | |
151 | + //\[góÔÌÝè | |
152 | + InputAssistDM.Sorted := True; | |
153 | +end; | |
154 | +//! o^PêêÌ\[gpÌär | |
155 | +procedure TInputAssistForm.GikoListView1Compare(Sender: TObject; Item1, | |
156 | + Item2: TListItem; Data: Integer; var Compare: Integer); | |
157 | +begin | |
158 | + if ((FSortColumn and 2) > 0) then begin | |
159 | + // JeSÅ\[g | |
160 | + Compare := AnsiCompareStr(Item1.SubItems[0], Item2.SubItems[0]); | |
161 | + if (Compare = 0) then begin | |
162 | + Compare := AnsiCompareStr(Item1.Caption, Item2.Caption); | |
163 | + end; | |
164 | + end else begin | |
165 | + // L[Å\[g | |
166 | + Compare := AnsiCompareStr(Item1.Caption, Item2.Caption); | |
167 | + if (Compare = 0) then begin | |
168 | + Compare := AnsiCompareStr(Item1.SubItems[0], Item2.SubItems[0]); | |
169 | + end; | |
170 | + end; | |
171 | + // ¸~̽] | |
172 | + if ((FSortColumn and 1) > 0) then begin | |
173 | + Compare := Compare * -1; | |
174 | + end; | |
175 | + ; | |
176 | +end; | |
177 | +//! o^PêêÌXgÌJNbNCxg | |
178 | +procedure TInputAssistForm.GikoListView1ColumnClick(Sender: TObject; | |
179 | + Column: TListColumn); | |
180 | +var | |
181 | + i : Integer; | |
182 | +begin | |
183 | + if Column <> nil then begin | |
184 | + // C[WÌí | |
185 | + for i := 0 to GikoListView1.Columns.Count - 1 do begin | |
186 | + GikoListView1.Column[i].ImageIndex := -1; | |
187 | + end; | |
188 | + | |
189 | + // FSortColumn ô:¸ ïF~ | |
190 | + if Column.Caption = 'L[' then begin | |
191 | + if FSortColumn = 0 then begin | |
192 | + FSortColumn := 1; | |
193 | + end else begin | |
194 | + FSortColumn := 0; | |
195 | + end; | |
196 | + end else begin | |
197 | + if FSortColumn = 2 then begin | |
198 | + FSortColumn := 3; | |
199 | + end else begin | |
200 | + FSortColumn := 2; | |
201 | + end; | |
202 | + end; | |
203 | + Column.ImageIndex := (FSortColumn and 1); | |
204 | + GikoListView1.AlphaSort; | |
205 | + end; | |
206 | + | |
207 | +end; | |
208 | +//! I¹{^ðºÌCxg | |
209 | +procedure TInputAssistForm.CloseButtonClick(Sender: TObject); | |
210 | +begin | |
211 | + Close(); | |
212 | +end; | |
213 | + | |
214 | +end. |
@@ -0,0 +1,9 @@ | ||
1 | +object InputAssistDM: TInputAssistDM | |
2 | + OldCreateOrder = False | |
3 | + OnCreate = DataModuleCreate | |
4 | + OnDestroy = DataModuleDestroy | |
5 | + Left = 582 | |
6 | + Top = 174 | |
7 | + Height = 150 | |
8 | + Width = 215 | |
9 | +end |
@@ -0,0 +1,329 @@ | ||
1 | +unit InputAssistDataModule; | |
2 | + | |
3 | +interface | |
4 | + | |
5 | +uses | |
6 | + SysUtils, Classes; | |
7 | + | |
8 | +type | |
9 | + TResistWord = class; | |
10 | + | |
11 | + TInputAssistDM = class(TDataModule) | |
12 | + procedure DataModuleDestroy(Sender: TObject); | |
13 | + procedure DataModuleCreate(Sender: TObject); | |
14 | + private | |
15 | + { Private é¾ } | |
16 | + FInit : Boolean; | |
17 | + FDictionary : TStringList; ///< o^PêÆè^¶Ì« | |
18 | + function GetSorted: Boolean; ///< \[gÌóÔÌæ¾ | |
19 | + procedure SetSorted(Value: Boolean); ///< \[góÔÌÝè | |
20 | + | |
21 | + public | |
22 | + { Public é¾ } | |
23 | + property Sorted : Boolean read GetSorted write SetSorted; | |
24 | + procedure Init(FilePath: String); | |
25 | + procedure SaveToFile(FilePath: String); | |
26 | + function ResistWordCount : Integer; ///<o^Pêæ¾ | |
27 | + function GetResistWord(Index: Integer): TResistWord; ///< o^Pêæ¾ | |
28 | + procedure DeleteResistWord(ResistWord: TResistWord); ///< o^PêÌí | |
29 | + function Add(Key: String): TResistWord; ///< o^PêÇÁ | |
30 | + procedure ChangeKey(ResistWord: TResistWord); ///< o^PêÌL[ÏX | |
31 | + //! KeyðL[ÉÂo^³êÄ¢éPêðæ¾ | |
32 | + function GetStartWithKeyResistWords(Key: String; var list: TStringList): Integer; | |
33 | + //! KeyðJeSÉÂo^³êÄ¢éPêðæ¾ | |
34 | + function GetStartWithCategoryResistWords(Key: String; var list: TStringList): Integer; | |
35 | + end; | |
36 | + | |
37 | + TResistWord = class(TObject) | |
38 | + private | |
39 | + FKey : String; ///< Ï·ÌL[ÉÈé | |
40 | + FCategory : String; ///< ªÞ | |
41 | + FText : String; ///< è^¶ | |
42 | + public | |
43 | + function GetKey: String; | |
44 | + procedure SetKey(Value: String); | |
45 | + function GetCategory: String; | |
46 | + procedure SetCategory(Value: String); | |
47 | + function GetText: String; | |
48 | + procedure SetText(Value: String); | |
49 | + property Key: String read FKey write FKey; | |
50 | + property Category: String read FCategory write FCategory; | |
51 | + property Text: String read GetText write SetText; | |
52 | + end; | |
53 | + | |
54 | + function CategorySort(List: TStringList; Index1, Index2: Integer): Integer; | |
55 | +var | |
56 | + InputAssistDM: TInputAssistDM; | |
57 | + | |
58 | +implementation | |
59 | + | |
60 | +uses | |
61 | + MojuUtils, IniFiles; | |
62 | + | |
63 | +{$R *.dfm} | |
64 | +//! FKeyÉÝè³êÄ¢élðæ¾·é | |
65 | +function TResistWord.GetKey: String; | |
66 | +begin | |
67 | + //GXP[vµÄ¢é=ð³·é | |
68 | + Result := MojuUtils.CustomStringReplace(FKey, '=', '='); | |
69 | +end; | |
70 | +//! FKeyÉlðÝè·é | |
71 | +procedure TResistWord.SetKey(Value: String); | |
72 | +begin | |
73 | + //=ÍÛ¶Ég¤ÌÅGXP[v·é | |
74 | + FKey := MojuUtils.CustomStringReplace(Value, '=', '='); | |
75 | +end; | |
76 | +//! FCategoryÉÝè³êÄ¢élðæ¾·é | |
77 | +function TResistWord.GetCategory: String; | |
78 | +begin | |
79 | + //GXP[vµÄ¢é=ð³·é | |
80 | + Result := MojuUtils.CustomStringReplace(FCategory, '=', '='); | |
81 | +end; | |
82 | +//! FCategoryÉlðÝè·é | |
83 | +procedure TResistWord.SetCategory(Value: String); | |
84 | +begin | |
85 | + //=ÍÛ¶Ég¤ÌÅGXP[v·é | |
86 | + FCategory := MojuUtils.CustomStringReplace(Value, '=', '='); | |
87 | +end; | |
88 | +//! FTextÉÝè³êÄ¢élðæ¾·é | |
89 | +function TResistWord.GetText: String; | |
90 | +begin | |
91 | + //GXP[vµÄ¢é=ð³·é | |
92 | + Result := MojuUtils.CustomStringReplace(FText, '=', '='); | |
93 | + // #1ɵ½üsR[hð#13#10ɳ·é | |
94 | + Result := MojuUtils.CustomStringReplace(Result, #1, #13#10); | |
95 | +end; | |
96 | +procedure TResistWord.SetText(Value: String); | |
97 | +begin | |
98 | + //=ÍÛ¶Ég¤ÌÅGXP[v·é | |
99 | + FText := MojuUtils.CustomStringReplace(Value, '=', '='); | |
100 | + //üsR[hð#1É·éi1sÉ·é½ß) | |
101 | + FText := MojuUtils.CustomStringReplace(FText, #13#10, #1); | |
102 | +end; | |
103 | +//! t@CðÇÝñÅú»·é | |
104 | +procedure TInputAssistDM.Init(FilePath: String); | |
105 | +var | |
106 | + ini : TMemIniFile; | |
107 | + sections: TStringList; | |
108 | + keys: TStringList; | |
109 | + i, j : Integer; | |
110 | + resWord : TResistWord; | |
111 | +begin | |
112 | + FInit := True; | |
113 | + try | |
114 | + // t@C̶ÝðmF | |
115 | + if FileExists(FilePath) then begin | |
116 | + ini := TMemIniFile.Create(FilePath); | |
117 | + sections := TStringList.Create; | |
118 | + keys := TStringList.Create; | |
119 | + try | |
120 | + ini.ReadSections(sections); | |
121 | + | |
122 | + for i :=0 to sections.Count - 1 do begin | |
123 | + keys.Clear; | |
124 | + ini.ReadSection(sections[i], keys); | |
125 | + for j := 0 to keys.Count - 1 do begin | |
126 | + resWord := TResistWord.Create; | |
127 | + resWord.SetCategory(sections[i]); | |
128 | + resWord.SetKey(keys[j]); | |
129 | + resWord.SetText(ini.ReadString(sections[i], keys[j], '')); | |
130 | + FDictionary.AddObject(resWord.GetKey, resWord); | |
131 | + end; | |
132 | + end; | |
133 | + finally | |
134 | + keys.Free; | |
135 | + sections.Free; | |
136 | + ini.Free; | |
137 | + end; | |
138 | + end; | |
139 | + | |
140 | + except | |
141 | + FInit := False; | |
142 | + end; | |
143 | +end; | |
144 | +//! wè³ê½pXÌt@CÉÛ¶·é | |
145 | +procedure TInputAssistDM.SaveToFile(FilePath: String); | |
146 | +var | |
147 | + ini : TMemIniFile; | |
148 | + i : Integer; | |
149 | + resWord : TResistWord; | |
150 | +begin | |
151 | + if FileExists(FilePath) then begin | |
152 | + try | |
153 | + DeleteFile(FilePath); | |
154 | + except | |
155 | + end; | |
156 | + end; | |
157 | + ini := TMemIniFile.Create(FilePath); | |
158 | + try | |
159 | + for i :=0 to FDictionary.Count - 1 do begin | |
160 | + resWord := TResistWord(FDictionary.Objects[i]); | |
161 | + ini.WriteString(resWord.FCategory, resWord.FKey, resWord.FText); | |
162 | + end; | |
163 | + ini.UpdateFile; | |
164 | + finally | |
165 | + ini.Free; | |
166 | + end; | |
167 | +end; | |
168 | +//! fXgN^ | |
169 | +procedure TInputAssistDM.DataModuleDestroy(Sender: TObject); | |
170 | +var | |
171 | + i : Integer; | |
172 | +begin | |
173 | + if (FDictionary <> nil) then begin | |
174 | + for i := FDictionary.Count - 1 downto 0 do begin | |
175 | + TResistWord(FDictionary.Objects[i]).Free; | |
176 | + end; | |
177 | + FDictionary.Clear; | |
178 | + FDictionary.Capacity := 0; | |
179 | + FDictionary.Free; | |
180 | + end; | |
181 | +end; | |
182 | +//! RXgN^ | |
183 | +procedure TInputAssistDM.DataModuleCreate(Sender: TObject); | |
184 | +begin | |
185 | + FDictionary := TStringList.Create; | |
186 | + FDictionary.Duplicates := dupAccept; | |
187 | + FDictionary.Sorted := True; | |
188 | +end; | |
189 | +//! o^Pêæ¾ | |
190 | +function TInputAssistDM.ResistWordCount : Integer; | |
191 | +begin | |
192 | + Result := 0; | |
193 | + if (FDictionary <> nil) then begin | |
194 | + Result := FDictionary.Count; | |
195 | + end; | |
196 | +end; | |
197 | +//! o^Pêæ¾ | |
198 | +function TInputAssistDM.GetResistWord(Index: Integer): TResistWord; | |
199 | +begin | |
200 | + Result := nil; | |
201 | + if (FDictionary <> nil) then begin | |
202 | + if (Index >= 0) and (Index < FDictionary.Count) then begin | |
203 | + Result := TResistWord(FDictionary.Objects[index]); | |
204 | + end; | |
205 | + end; | |
206 | +end; | |
207 | +//! o^PêÌí | |
208 | +procedure TInputAssistDM.DeleteResistWord(ResistWord: TResistWord); | |
209 | +var | |
210 | + i : Integer; | |
211 | +begin | |
212 | + if (FDictionary <> nil) then begin | |
213 | + for i := 0 to FDictionary.Count - 1 do begin | |
214 | + if (ResistWord = FDictionary.Objects[i]) then begin | |
215 | + TResistWord(FDictionary.Objects[i]).Free; | |
216 | + FDictionary.Delete(i); | |
217 | + break; | |
218 | + end; | |
219 | + end; | |
220 | + end; | |
221 | +end; | |
222 | +//! o^PêÇÁ | |
223 | +function TInputAssistDM.Add(Key: String): TResistWord; | |
224 | +var | |
225 | + resWord : TResistWord; | |
226 | +begin | |
227 | + Result := nil; | |
228 | + if (FDictionary <> nil) then begin | |
229 | + resWord := TResistWord.Create; | |
230 | + resWord.SetKey(Key); | |
231 | + resWord.SetCategory('JeS'); | |
232 | + resWord.SetText('è^¶'); | |
233 | + FDictionary.AddObject(Key, resWord); | |
234 | + Result := resWord; | |
235 | + end; | |
236 | +end; | |
237 | +//! o^PêÌL[ÏX | |
238 | +procedure TInputAssistDM.ChangeKey(ResistWord: TResistWord); | |
239 | +var | |
240 | + i : Integer; | |
241 | +begin | |
242 | + if (FDictionary <> nil) then begin | |
243 | + for i := 0 to FDictionary.Count - 1 do begin | |
244 | + if (ResistWord = FDictionary.Objects[i]) then begin | |
245 | + FDictionary.Strings[i] := ResistWord.GetKey; | |
246 | + break; | |
247 | + end; | |
248 | + end; | |
249 | + end; | |
250 | +end; | |
251 | +//! KeyðÂo^³êÄ¢éPêðæ¾ | |
252 | +function TInputAssistDM.GetStartWithKeyResistWords(Key: String; var list: TStringList): Integer; | |
253 | +var | |
254 | + i : Integer; | |
255 | + resWord : TResistWord; | |
256 | + | |
257 | +begin | |
258 | + Result := 0; | |
259 | + if (FDictionary <> nil) and (list <> nil) then begin | |
260 | + Key := ZenToHan(Key); | |
261 | + for i := 0 to FDictionary.Count - 1 do begin | |
262 | + if (AnsiPos(Key, ZenToHan(FDictionary.Strings[i])) = 1) then begin | |
263 | + Inc(Result); | |
264 | + resWord := TResistWord(FDictionary.Objects[i]); | |
265 | + list.AddObject(resWord.GetKey + '(' + | |
266 | + resWord.GetCategory + ')', resWord); | |
267 | + end else if (Result > 0) then begin | |
268 | + //\[g³êÄ¢é©çAqbg·êÎA±·é͸ | |
269 | + break; | |
270 | + end; | |
271 | + end; | |
272 | + end; | |
273 | +end; | |
274 | +//! KeyðJeSÉÂo^³êÄ¢éPêðæ¾ | |
275 | +function TInputAssistDM.GetStartWithCategoryResistWords(Key: String; var list: TStringList): Integer; | |
276 | +var | |
277 | + i : Integer; | |
278 | + resWord : TResistWord; | |
279 | +begin | |
280 | + Result := 0; | |
281 | + if (FDictionary <> nil) and (list <> nil) then begin | |
282 | + Key := ZenToHan(Key); | |
283 | + for i := 0 to FDictionary.Count - 1 do begin | |
284 | + resWord := TResistWord(FDictionary.Objects[i]); | |
285 | + if (AnsiPos(Key, ZenToHan(resWord.GetCategory)) = 1) then begin | |
286 | + Inc(Result); | |
287 | + list.AddObject(resWord.GetKey + '(' + | |
288 | + resWord.GetCategory + ')', resWord); | |
289 | + end; | |
290 | + end; | |
291 | + list.CustomSort(CategorySort); | |
292 | + end; | |
293 | +end; | |
294 | + | |
295 | +//! \[gÌóÔÌæ¾ | |
296 | +function TInputAssistDM.GetSorted: Boolean; | |
297 | +begin | |
298 | + Result := False; | |
299 | + if (FDictionary <> nil) then begin | |
300 | + Result := FDictionary.Sorted; | |
301 | + end; | |
302 | +end; | |
303 | +//! \[góÔÌÝè | |
304 | +procedure TInputAssistDM.SetSorted(Value: Boolean); | |
305 | +begin | |
306 | + if (FDictionary <> nil) then begin | |
307 | + FDictionary.Sorted := Value; | |
308 | + end; | |
309 | +end; | |
310 | + | |
311 | +//! KeyðJeSÉÂo^PêðÔ·Ì\[gpär\bh | |
312 | +function CategorySort(List: TStringList; Index1, Index2: Integer): Integer; | |
313 | +var | |
314 | + resWord1 : TResistWord; | |
315 | + resWord2 : TResistWord; | |
316 | +begin | |
317 | + Result := 0; | |
318 | + try | |
319 | + resWord1 := TResistWord(List.Objects[Index1]); | |
320 | + resWord2 := TResistWord(List.Objects[Index2]); | |
321 | + Result := AnsiCompareStr(resWord1.GetCategory, resWord2.GetCategory); | |
322 | + if (Result = 0) then begin | |
323 | + Result := AnsiCompareStr(resWord1.GetKey, resWord2.GetKey); | |
324 | + end; | |
325 | + except | |
326 | + end; | |
327 | +end; | |
328 | + | |
329 | +end. |
@@ -111,7 +111,6 @@ begin | ||
111 | 111 | if ListView.Items.Count > 0 then |
112 | 112 | ListView.Selected := ListView.Items[0]; |
113 | 113 | EditorForm := TEditorForm.Create(Self); |
114 | - GikoSys.LoadKeySetting(EditorForm.ActionList, GikoSys.GetEditorKeyFileName); | |
115 | 114 | try |
116 | 115 | for i := 0 to EditorForm.ActionList.ActionCount - 1 do begin |
117 | 116 | if EditorForm.ActionList.Actions[i] is TAction then begin |
@@ -491,7 +491,7 @@ type | ||
491 | 491 | function GetMainKeyFileName: String; |
492 | 492 | function GetEditorKeyFileName: String; |
493 | 493 | procedure WriteLogFolder(AVal : String); |
494 | - | |
494 | + function GetInputAssistFileName : String; | |
495 | 495 | //óMobt@TCY |
496 | 496 | property RecvBufferSize: Integer read FRecvBufferSize write FRecvBufferSize; |
497 | 497 | //HTTP1.1gp |
@@ -772,7 +772,8 @@ const | ||
772 | 772 | MAX_POPUP_RES : Integer = 10; |
773 | 773 | GESTURE_FILE_NAME = 'Gestures.ini'; |
774 | 774 | SPAMFILTER_FILE_NAME = 'SpamFilter.ini'; |
775 | - LANGUAGE_FILE_NAME = 'language.ini'; | |
775 | + LANGUAGE_FILE_NAME = 'language.ini'; | |
776 | + INPUTASSIST_FILE_NAME = 'InputAssist.ini'; | |
776 | 777 | |
777 | 778 | |
778 | 779 |
@@ -2175,8 +2176,13 @@ begin | ||
2175 | 2176 | end; |
2176 | 2177 | function TSetting.GetEditorKeyFileName: String; |
2177 | 2178 | begin |
2178 | - Result := GetConfigDir + EKEY_SETTING_FILE_NAME; | |
2179 | + Result := GetConfigDir + EKEY_SETTING_FILE_NAME; | |
2180 | +end; | |
2181 | +function TSetting.GetInputAssistFileName : String; | |
2182 | +begin | |
2183 | + Result := GetConfigDir + INPUTASSIST_FILE_NAME; | |
2179 | 2184 | end; |
2185 | + | |
2180 | 2186 | end. |
2181 | 2187 | |
2182 | 2188 |
@@ -71,7 +71,9 @@ uses | ||
71 | 71 | ListViewUtils in 'ListViewUtils.pas', |
72 | 72 | GikoDataModule in 'GikoDataModule.pas' {GikoDM: TDataModule}, |
73 | 73 | BrowserRecord in 'BrowserRecord.pas', |
74 | - GikoMessage in 'GikoMessage.pas'; | |
74 | + GikoMessage in 'GikoMessage.pas', | |
75 | + InputAssist in 'InputAssist.pas' {InputAssistForm}, | |
76 | + InputAssistDataModule in 'InputAssistDataModule.pas' {InputAssistDM: TDataModule}; | |
75 | 77 | |
76 | 78 | {$R *.RES} |
77 | 79 | {$R gikoResource.res} |
@@ -90,7 +92,11 @@ begin | ||
90 | 92 | Wnd := FindWindow('TGikoForm', nil); |
91 | 93 | if Wnd <> 0 then begin |
92 | 94 | //ùÉN®ÏÝMRirÌANeBu»ACR»³êÄ½ç³ |
93 | - SetForegroundWindow(Wnd); | |
95 | + try | |
96 | + SetForegroundWindow(Wnd); | |
97 | + except | |
98 | + //ú»ªIíÁĢȢÆtHAOEhÉÚ¹¸ÉáO¶ | |
99 | + end; | |
94 | 100 | if IsIconic(Wnd) then |
95 | 101 | SendMessage(Wnd, WM_SYSCOMMAND, SC_RESTORE, -1); |
96 | 102 | // AppWnd := GetWindowLong(Wnd, GWL_HWNDPARENT); |
@@ -122,6 +128,7 @@ begin | ||
122 | 128 | Application.CreateForm(TFavoriteDM, FavoriteDM); |
123 | 129 | Application.CreateForm(TAddressHistoryDM, AddressHistoryDM); |
124 | 130 | Application.CreateForm(TGikoDM, GikoDM); |
131 | + Application.CreateForm(TInputAssistDM, InputAssistDM); | |
125 | 132 | Application.CreateForm(TGikoForm, GikoForm); |
126 | 133 | Application.Run; |
127 | 134 | ReleaseMutex(hMutex); |
@@ -0,0 +1,23 @@ | ||
1 | +[MRL] | |
2 | +¬±=@@@@@@ÈÈ@@`PP(,,ßDß)@@@UUPU U | |
3 | +¬±ãë=@@@ ÈÈ@@@(@@,,)@@@/@@|@`iQQj | |
4 | +¬±Àè=@@ÈÈ@@@(,,ßDß)@@/ ÂÂ`iQQj | |
5 | +¬±§¿=@@ÈÈ@@(,,ßDß)@ ¼@@Â@ `@@|@@ µMi | |
6 | + | |
7 | +[JeS] | |
8 | +«½[=·Àªªª( LÍ`)ßÍß)*ß[ß)¥Ö¥) ßDß)L[`)¥Í¥)P°P)L_T`)`DL)-Q-)LDM)ªª!!! | |
9 | + | |
10 | +[½s] | |
11 | +«½[=·Àªªªªª(ßÍß)ªªªªª!!!!·Àªªªªª(ßÍß)ªªªªª!!!!·Àªªªªª(ßÍß)ªªªªª!!!!·Àªªªªª(ßÍß)ªªªªª!!!!·Àªªªªª(ßÍß)ªªªªª!!!! | |
12 | + | |
13 | +[®¨] | |
14 | +Áé=@ @ÉÉÉÉ@@-Q__@@(߸ß*)@@_Q___@______P@@¦_ÉÜ_@@____@___@c^_@/R~@__@__Q@@@@./É_m_@@Q@@@./^._^RÐ@ß-@@Ц@-__P___________ | |
15 | + | |
16 | +[N}[] | |
17 | +Ü[=@@ ¿QQQ¿ @@ | m@@@@@ R @@/@@@@@ |@N}II @ |@@@@( __)@ ~ @c¤@@@|¾|@@¤M_ /@QQ@ Rm@/L>@ ) (QQQj@@@/@(_^ @|@@@@@@ / @|@@^_@_ @|@/@@@ )@ ) @¾@@@ i@ _ @@@@@@ _Q) | |
18 | +£é=@@@@@@@@@@@@@@@@@@@@@@Q ^-@C¤_ @@@@@@@@@@ QQ@@@@@ @@^: : : : : : : : : : : ( @@@@@@@@@ qqqq@R@@@@@/: : : : ::;:;: ;: ;:;: ; : : : ::T @@@@@@@@@@q½@@}@@@@@{:: : : :m@--]'@¤__: : ::p @@ ¿QQQ¿@ |@@ |@@@@@ {:: : :m ,_;:;:;m¤ Fª S: :::} @@ | m@@@@@ R !@@ !@@@A@@: :É@^ñ\-¤@|: ::É @@/@@@@@ |@@/@@@C,¥_@@|@/^@ P7/ /::m @ |@@@@( __)@ ~^@, f, ¥@N@ r(_ñ-£{^ @c¤@@@|¾|@@^@@¤¥æ f@@^¤^/|@PPR /@QQ@ Rm@/@@@@@@@@ ^@@ //@|^^_ r (QQQj@@@/@@@@@@@ @/@@@ //@@ /_ ^ @@@@@@@/@@@@@@@ @ / @@@@@@@/@ | |
19 | + | |
20 | +[AA] | |
21 | +µåÚ=(L¥Ö¥`) | |
22 | +ऱ˦æ=@@@@@@@@@@@@@@@@@¡¢ @@@@@@@@@@@@@@@@@bà.b @@@@@@@@@@@@@@@@@b¤@| @@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@ Ë @@@@@@@@@@@@@@@@@ ¦ .| @@@@@@@@@@@@@@@@@ æ .| @@@@@@ÊÞ¶@@@@ºÞÙ§@@ !!. @@@@@@@@@@@@@@@@@¤§@@@@ÌßÝÌßÝ @@@@R(`DL)É@R(`DL)É@@(`DL)É@@@ i@`Dj @@@@|PPP||PPP||PPP| i R¢U ` `@PP@@.PP@@PP@@ |>£ | |
23 | + |
@@ -9,11 +9,11 @@ comic6=30 | ||
9 | 9 | dso=10 |
10 | 10 | etc3=30 |
11 | 11 | etc4=30 |
12 | -ex9=20 | |
13 | -ex10=20 | |
14 | -ex11=20 | |
15 | -ex12=20 | |
16 | -ex13=20 | |
12 | +ex9=15 | |
13 | +ex11=15 | |
14 | +ex12=15 | |
15 | +ex13=15 | |
16 | +ex14=15 | |
17 | 17 | food6=30 |
18 | 18 | game9=30 |
19 | 19 | game10=30 |
@@ -21,12 +21,9 @@ hobby7=30 | ||
21 | 21 | hobby8=30 |
22 | 22 | human5=30 |
23 | 23 | life7=30 |
24 | -live14=15 | |
25 | -live16=15 | |
26 | -live18=15 | |
27 | -live19=15 | |
28 | -live20=15 | |
29 | -live21=15 | |
24 | +live14=10 | |
25 | +live19=10 | |
26 | +live22x=10 | |
30 | 27 | love3=30 |
31 | 28 | money4=30 |
32 | 29 | music4=30 |
@@ -43,8 +40,8 @@ school5=30 | ||
43 | 40 | science4=30 |
44 | 41 | society3=30 |
45 | 42 | sports2=0 |
46 | -sports9=30 | |
47 | -that3=30 | |
43 | +sports9=60 | |
44 | +that4=30 | |
48 | 45 | tmp5=45 |
49 | 46 | travel2=30 |
50 | 47 | tv7=30 |
@@ -53,4 +50,4 @@ idol=30 | ||
53 | 50 | pie=30 |
54 | 51 | sakura01=30 |
55 | 52 | sakura02=30 |
56 | -sakura03=30 | |
\ No newline at end of file | ||
53 | +sakura03=30 |
@@ -107,21 +107,21 @@ LICENSE | ||
107 | 107 | ------------------------------ |
108 | 108 | ð |
109 | 109 | ------------------------------ |
110 | -200X/XX/XX | |
110 | +2006/01/14 | |
111 | 111 | Version ÊÞÀ51 |
112 | +@CtH[ãÅÌV[gJbgL[ÌDæʪMRir©ÌªÅãÊÉÏX | |
112 | 113 | @Xbh`æÌÅK» |
113 | 114 | @XÔwèURLðNbNµ½Æ«Ì®ìÅAæ¾ÏÝOÌXÔÌê©®ÅDL·éæ¤ÉÏX |
114 | 115 | @XGfB^©çSambaÌÝèlðÏXÅ«éæ¤ÉÏX |
115 | 116 | @LrlbgãÅNbNE_uNbNCxgªßèɶ·ésïÌC³ |
116 | 117 | @}EXWFX`[LøÉvr [ãÅENbNÅ«È¢sïÌC³ |
117 | -@CtH[ãÅÌV[gJbgL[ÌDæʪMRir©ÌªÅãÊÉÏX | |
118 | 118 | @Cj [̨CÉüèÌ`æ̬» |
119 | 119 | @Xe[^Xo[É»Ý\¦µÄ¢éXbhÌeÊð\¦·éæ¤Éµ½ |
120 | 120 | @DAT¿µ½XÌeÊðæ¾Å«È¢sïÌC³ |
121 | 121 | @ÂXVÅ[Jt@CðwèÅ«éæ¤ÉÏX |
122 | 122 | @Xbhê_E[hãÌ\[gðIvV» |
123 | 123 | @NG[hÉS¼pÐçªÈJ^JiÌá¢ð¯ê·éIvVÌÇÁ |
124 | -@XÌiÝÅS¼pÐçªÈJ^J^Ìá¢ð³·éæ¤ÉÏX | |
124 | +@XÌiÝÅS¼pÐçªÈJ^JiÌá¢ð³·éæ¤ÉÏX | |
125 | 125 | |
126 | 126 | 2005/10/10 |
127 | 127 | Version ÊÞÀ50 [X3 |
@@ -90,6 +90,7 @@ Folder=gikoNavi | ||
90 | 90 | 87=config\Board\MRir.txt |
91 | 91 | 88=Samba.default |
92 | 92 | 89=config\language.ini |
93 | +90=config\InputAssist.ini | |
93 | 94 | |
94 | 95 | [Group] |
95 | 96 | 1=MRir,gikoNavi.exe |