ギコナビ
Revision | fae08f9b79a2321e7c77c52288f77d0f5fb7a5a8 (tree) |
---|---|
Time | 2006-02-23 03:37:21 |
Author | cvs2git <cvs2git> |
Commiter | cvs2git |
This commit was manufactured by cvs2svn to create tag 'v1_52_0_648'.
@@ -8,9 +8,9 @@ uses | ||
8 | 8 | |
9 | 9 | type |
10 | 10 | //XgÌ\¦ACeIð |
11 | - TGikoViewType = (gvtAll, gvtLog, gvtNew, gvtUser); | |
11 | + TGikoViewType = (gvtAll, gvtLog, gvtNew, gvtLive, gvtArch, gvtUser); | |
12 | 12 | //XgÌã°º° |
13 | - TGikoAgeSage = (gasNone, gasAge, gasSage, gasNew, gasNull); | |
13 | + TGikoAgeSage = (gasNone, gasAge, gasSage, gasNew, gasArch, gasNull); | |
14 | 14 | |
15 | 15 | TCategory = class; |
16 | 16 | TBoard = class; |
@@ -138,7 +138,8 @@ type | ||
138 | 138 | FNewThreadCount: Integer; //V XbhÌ |
139 | 139 | FLogThreadCount: Integer; //OLèXbhÌ |
140 | 140 | FUserThreadCount: Integer; //H |
141 | - | |
141 | + FLiveThreadCount: Integer; //¶¶Xbh | |
142 | + FArchiveThreadCount: Integer; //DAT¿Xbh | |
142 | 143 | function GetThreadItem(index: integer): TThreadItem; |
143 | 144 | procedure SetThreadItem(index: integer; value: TThreadItem); |
144 | 145 | procedure SetRound(b: Boolean); |
@@ -200,10 +201,14 @@ type | ||
200 | 201 | |
201 | 202 | function GetNewThreadCount: Integer; |
202 | 203 | function GetLogThreadCount: Integer; |
204 | + function GetArchiveThreadCount: Integer; | |
205 | + function GetLiveThreadCount: Integer; | |
203 | 206 | function GetUserThreadCount: Integer; |
204 | 207 | function GetNewThread(Index: Integer): TThreadItem; |
205 | 208 | function GetLogThread(Index: Integer): TThreadItem; overload; |
206 | 209 | function GetLogThread(Index: Integer; Base: Integer): TThreadItem; overload; |
210 | + function GetArchiveThread(Index: Integer): TThreadItem; | |
211 | + function GetLiveThread(Index: Integer): TThreadItem; | |
207 | 212 | function GetUserThread(Index: Integer): TThreadItem; |
208 | 213 | |
209 | 214 | procedure BeginUpdate; |
@@ -225,6 +230,9 @@ type | ||
225 | 230 | property NewThreadCount: Integer read FNewThreadCount write FNewThreadCount; //V XbhÌ |
226 | 231 | property LogThreadCount: Integer read FLogThreadCount write FLogThreadCount; //OLèXbhÌ |
227 | 232 | property UserThreadCount: Integer read FUserThreadCount write FUserThreadCount; //H |
233 | + property LiveThreadCount: Integer read FLiveThreadCount write FLiveThreadCount; | |
234 | + property ArchiveThreadCount: Integer read FArchiveThreadCount write FArchiveThreadCount; | |
235 | + | |
228 | 236 | property Cookie: string read FCookie write FCookie; |
229 | 237 | property Expires: TDateTime read FExpires write FExpires; |
230 | 238 | end; |
@@ -233,7 +241,6 @@ type | ||
233 | 241 | TThreadItem = class(TObject) |
234 | 242 | private |
235 | 243 | FContext: DWORD; // vOCª©RÉÝèµÄ¢¢l(åÉCX^Xªüé) |
236 | - | |
237 | 244 | FNo: Integer; //Ô |
238 | 245 | FFileName: string; //Xbht@C¼ |
239 | 246 | FTitle: string; //Xbh^Cg |
@@ -246,7 +253,6 @@ type | ||
246 | 253 | FSize: Integer; //XbhTCY |
247 | 254 | FRound: Boolean; //ñtO |
248 | 255 | FRoundName: string; //ñ¼ |
249 | - //FRoundName: PChar; //ñ¼ | |
250 | 256 | FIsLogFile: Boolean; //O¶ÝtO |
251 | 257 | FParentBoard: TBoard; //e{[h |
252 | 258 | FKokomade: Integer; //RRÜÅÇñ¾Ô |
@@ -256,14 +262,10 @@ type | ||
256 | 262 | FScrollTop: Integer; //XN[Êu |
257 | 263 | FDownloadHost: string; //¡ÌzXgÆá¤êÌzXg |
258 | 264 | FAgeSage: TGikoAgeSage; //ACeÌã°º° |
259 | -// FSPID: string; //«ÝpSPID | |
260 | - | |
261 | 265 | FUpdate: Boolean; |
262 | 266 | FExpand: Boolean; |
263 | 267 | FURL : string; // ±ÌXðuEUÅ\¦·éÛÌ URL |
264 | - //FBoardPlugIn : TBoardPlugIn; // ±ÌXðT|[g·évOC | |
265 | - //FFilePath : string; // ±ÌXªÛ¶³êÄ¢épX | |
266 | - | |
268 | + FJumpAddress : Integer; //XÔwèURLð¥ñ¾Æ«Éwè³êéXÌÔªüé | |
267 | 269 | procedure SetLastModified(d: TDateTime); |
268 | 270 | procedure SetRound(b: Boolean); |
269 | 271 | procedure SetRoundName(const s: string); |
@@ -320,6 +322,7 @@ type | ||
320 | 322 | property CreateDate: TDateTime read GetCreateDate; |
321 | 323 | property URL : string read FURL write FURL; |
322 | 324 | property FilePath : string read GetFilePath; |
325 | + property JumpAddress : Integer read FJumpAddress write FJumpAddress; | |
323 | 326 | end; |
324 | 327 | |
325 | 328 | TBoardGroup = class(TStringList) |
@@ -1404,7 +1407,125 @@ begin | ||
1404 | 1407 | inc(Result); |
1405 | 1408 | end; |
1406 | 1409 | end; |
1410 | +function TBoard.GetArchiveThreadCount: Integer; | |
1411 | +var | |
1412 | + i: Integer; | |
1413 | +begin | |
1414 | + Result := 0; | |
1415 | + if Length( ParentCategory.ParenTBBS.ShortSelectText ) = 0 then | |
1416 | + begin | |
1417 | + for i := 0 to Count - 1 do begin | |
1418 | + if Items[i].AgeSage = gasArch then | |
1419 | + inc(Result); | |
1420 | + end; | |
1421 | + end else begin | |
1422 | + for i := 0 to Count - 1 do begin | |
1423 | + if Items[i].AgeSage = gasArch then | |
1424 | + begin | |
1425 | + if Items[i].ShortTitle = '' then | |
1426 | + Items[i].ShortTitle := CustomStringReplace(ZenToHan(Items[i].Title), ' ', ''); | |
1427 | + if AnsiPos(ParentCategory.ParenTBBS.ShortSelectText, Items[i].ShortTitle) <> 0 then | |
1428 | + inc(Result); | |
1429 | + end; | |
1430 | + end; | |
1431 | + end; | |
1432 | +end; | |
1407 | 1433 | |
1434 | +function TBoard.GetLiveThreadCount: Integer; | |
1435 | +var | |
1436 | + i: Integer; | |
1437 | +begin | |
1438 | + Result := 0; | |
1439 | + if Length( ParentCategory.ParenTBBS.ShortSelectText ) = 0 then | |
1440 | + begin | |
1441 | + for i := 0 to Count - 1 do begin | |
1442 | + if Items[i].AgeSage <> gasArch then | |
1443 | + inc(Result); | |
1444 | + end; | |
1445 | + end else begin | |
1446 | + for i := 0 to Count - 1 do begin | |
1447 | + if Items[i].AgeSage <> gasArch then | |
1448 | + begin | |
1449 | + if Items[i].ShortTitle = '' then | |
1450 | + Items[i].ShortTitle := CustomStringReplace(ZenToHan(Items[i].Title), ' ', ''); | |
1451 | + if AnsiPos(ParentCategory.ParenTBBS.ShortSelectText, Items[i].ShortTitle) <> 0 then | |
1452 | + inc(Result); | |
1453 | + end; | |
1454 | + end; | |
1455 | + end; | |
1456 | +end; | |
1457 | +function TBoard.GetArchiveThread(Index: Integer): TThreadItem; | |
1458 | +var | |
1459 | + i: Integer; | |
1460 | + Cnt: Integer; | |
1461 | +begin | |
1462 | + Result := nil; | |
1463 | + Cnt := 0; | |
1464 | + if Length( ParentCategory.ParenTBBS.ShortSelectText ) = 0 then | |
1465 | + begin | |
1466 | + for i := 0 to Count - 1 do begin | |
1467 | + if Items[i].AgeSage = gasArch then | |
1468 | + begin | |
1469 | + if Index = Cnt then begin | |
1470 | + Result := Items[i]; | |
1471 | + Exit; | |
1472 | + end; | |
1473 | + inc(Cnt); | |
1474 | + end; | |
1475 | + end; | |
1476 | + end else begin | |
1477 | + for i := 0 to Count - 1 do begin | |
1478 | + if Items[i].AgeSage = gasArch then | |
1479 | + begin | |
1480 | + if Items[i].ShortTitle = '' then | |
1481 | + Items[i].ShortTitle := CustomStringReplace(ZenToHan(Items[i].Title), ' ', ''); | |
1482 | + if AnsiPos(ParentCategory.ParenTBBS.ShortSelectText, Items[i].ShortTitle) <> 0 then begin | |
1483 | + if Index = Cnt then begin | |
1484 | + Result := Items[i]; | |
1485 | + Exit; | |
1486 | + end; | |
1487 | + inc(Cnt); | |
1488 | + end; | |
1489 | + end; | |
1490 | + end; | |
1491 | + end; | |
1492 | +end; | |
1493 | +function TBoard.GetLiveThread(Index: Integer): TThreadItem; | |
1494 | +var | |
1495 | + i: Integer; | |
1496 | + Cnt: Integer; | |
1497 | +begin | |
1498 | + Result := nil; | |
1499 | + Cnt := 0; | |
1500 | + if Length( ParentCategory.ParenTBBS.ShortSelectText ) = 0 then | |
1501 | + begin | |
1502 | + for i := 0 to Count - 1 do begin | |
1503 | + if Items[i].AgeSage <> gasArch then | |
1504 | + begin | |
1505 | + if Index = Cnt then begin | |
1506 | + Result := Items[i]; | |
1507 | + Exit; | |
1508 | + end; | |
1509 | + inc(Cnt); | |
1510 | + end; | |
1511 | + end; | |
1512 | + end else begin | |
1513 | + for i := 0 to Count - 1 do begin | |
1514 | + if Items[i].AgeSage <> gasArch then | |
1515 | + begin | |
1516 | + if Items[i].ShortTitle = '' then | |
1517 | + Items[i].ShortTitle := CustomStringReplace(ZenToHan(Items[i].Title), ' ', ''); | |
1518 | + if AnsiPos(ParentCategory.ParenTBBS.ShortSelectText, Items[i].ShortTitle) <> 0 then begin | |
1519 | + if Index = Cnt then begin | |
1520 | + Result := Items[i]; | |
1521 | + Exit; | |
1522 | + end; | |
1523 | + inc(Cnt); | |
1524 | + end; | |
1525 | + end; | |
1526 | + end; | |
1527 | + end; | |
1528 | +end; | |
1408 | 1529 | function TBoard.GetNewThread(Index: Integer): TThreadItem; |
1409 | 1530 | var |
1410 | 1531 | i: Integer; |
@@ -1587,7 +1708,7 @@ begin | ||
1587 | 1708 | |
1588 | 1709 | FUpdate := True; |
1589 | 1710 | FURL := ''; |
1590 | - //FBoardPlugIn := nil; | |
1711 | + FJumpAddress := 0; | |
1591 | 1712 | end; |
1592 | 1713 | |
1593 | 1714 | // ************************************************************************* |
@@ -21,7 +21,7 @@ type | ||
21 | 21 | FThread : TThreadItem; |
22 | 22 | FLastSize : Integer; |
23 | 23 | FRepaint : Boolean; |
24 | - FMovement : string; ///< XN[æAJ[ | |
24 | + //FMovement : string; ///< XN[æAJ[ | |
25 | 25 | public |
26 | 26 | destructor Destroy; override; |
27 | 27 | property Event : THTMLDocumentEventSink read FEvent write FEvent; |
@@ -29,7 +29,7 @@ type | ||
29 | 29 | property Thread : TThreadItem read FThread write FThread; |
30 | 30 | property LastSize : Integer read FLastSize write FLastSize; |
31 | 31 | property Repaint : Boolean read FRepaint write FRepaint; |
32 | - property Movement : string read FMovement write FMovement; | |
32 | + //property Movement : string read FMovement write FMovement; | |
33 | 33 | procedure Move(const AName: string); |
34 | 34 | procedure IDAnchorPopup(Abody :string); |
35 | 35 | end; |
@@ -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 |
@@ -343,6 +343,19 @@ object EditorForm: TEditorForm | ||
343 | 343 | Action = BeLogInOutEAction |
344 | 344 | Style = tbsCheck |
345 | 345 | end |
346 | + object ToolButton8: TToolButton | |
347 | + Left = 285 | |
348 | + Top = 0 | |
349 | + Width = 8 | |
350 | + Caption = 'ToolButton8' | |
351 | + ImageIndex = 11 | |
352 | + Style = tbsSeparator | |
353 | + end | |
354 | + object ToolButton9: TToolButton | |
355 | + Left = 293 | |
356 | + Top = 0 | |
357 | + Action = ShowInputAssistForm | |
358 | + end | |
346 | 359 | end |
347 | 360 | object MainMenu: TMainMenu |
348 | 361 | Left = 8 |
@@ -469,7 +482,7 @@ object EditorForm: TEditorForm | ||
469 | 482 | Left = 72 |
470 | 483 | Top = 124 |
471 | 484 | Bitmap = { |
472 | - 494C01010B000E00040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 | |
485 | + 494C01010C000E00040010001000FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600 | |
473 | 486 | 0000000000003600000028000000400000004000000001002000000000000040 |
474 | 487 | 0000000000000000000000000000000000000000000000000000000000000000 |
475 | 488 | 0000000000000000000000000000000000000000000000000000000000000000 |
@@ -989,11 +1002,11 @@ object EditorForm: TEditorForm | ||
989 | 1002 | 0000000000000000000000000000000000000000000000000000000000000000 |
990 | 1003 | 0000000000000000000000000000000000000000000000000000000000000000 |
991 | 1004 | 0000000000000000000000000000000000000000000000000000000000000000 |
992 | - 00000000000000000000000000000000F81FFFFFFFFF0000E007FDFFF81F0000 | |
993 | - C003F17FF00F00008001E05FE00700008001C017C00300000000800580010000 | |
994 | - 0000000180010000000000018001000000008001800100000000E00180010000 | |
995 | - 0000F803800100008001FE07C00300008001FF8FE0070000C003FFFFF00F0000 | |
996 | - E007FFFFF81F0000F81FFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFE00FFFFFFFF | |
1005 | + 00000000000000000000000000000000F81FFFFFFFFFFFFFE007FDFFF81FF3F9 | |
1006 | + C003F17FF00FF9F38001E05FE007F9F38001C017C003F80300008005800184E7 | |
1007 | + 000000018001CCE7000000018001CE4F000080018001CE4F0000E0018001CE4F | |
1008 | + 0000F8038001CF1F8001FE07C0038F1F8001FF8FE007FFFFC003FFFFF00F8FFF | |
1009 | + E007FFFFF81F8FFFF81FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00FFFFFFFF | |
997 | 1010 | FE00C000F000F000FE008000F000F000FE008000F000F0008000800000000000 |
998 | 1011 | 8000800070000000800080017000000080008001700000008001800170000000 |
999 | 1012 | 8003800170000000800780017FDF001F807F8001001F001F80FFC003001F001F |
@@ -1001,14 +1014,13 @@ object EditorForm: TEditorForm | ||
1001 | 1014 | FFF3000FFFFFF0CFFF010007FFFFF08700000003FFFFF08700010003FFF7F887 |
1002 | 1015 | 0003003FC1F7FE8F0003003FC3FBFE3F00038FFFC7FBFF7F0003FC00CBFBFE3F |
1003 | 1016 | 0003C400DCF7FEBF0003CC00FF0FFC9F0003D400FFFFFDDF0003F800FFFFFDDF |
1004 | - FFFFFC00FFFFFDDFFFFFFC00FFFFFFFF00000000000000000000000000000000 | |
1005 | - 000000000000} | |
1017 | + FFFFFC00FFFFFDDFFFFFFC00FFFFFFFF} | |
1006 | 1018 | end |
1007 | 1019 | object HotToobarImageList: TImageList |
1008 | 1020 | Left = 104 |
1009 | 1021 | Top = 124 |
1010 | 1022 | Bitmap = { |
1011 | - 494C01010B000E00040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 | |
1023 | + 494C01010C000E00040010001000FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600 | |
1012 | 1024 | 0000000000003600000028000000400000004000000001002000000000000040 |
1013 | 1025 | 0000000000000000000000000000000000000000000000000000000000000000 |
1014 | 1026 | 0000000000000000000000000000000000000000000000000000000000000000 |
@@ -1528,11 +1540,11 @@ object EditorForm: TEditorForm | ||
1528 | 1540 | 0000000000000000000000000000000000000000000000000000000000000000 |
1529 | 1541 | 0000000000000000000000000000000000000000000000000000000000000000 |
1530 | 1542 | 0000000000000000000000000000000000000000000000000000000000000000 |
1531 | - 00000000000000000000000000000000F81FFFFFFFFF0000E007FDFFF81F0000 | |
1532 | - C003F17FF00F00008001E05FE00700008001C017C00300000000000580010000 | |
1533 | - 0000000180010000000000018001000000008001800100000000E00180010000 | |
1534 | - 0000F803800100008001FE07C00300008001FF8FE0070000C003FFFFF00F0000 | |
1535 | - E007FFFFF81F0000F81FFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFE00FFFFFFFF | |
1543 | + 00000000000000000000000000000000F81FFFFFFFFFFFFFE007FDFFF81FF3F9 | |
1544 | + C003F17FF00FF9F38001E05FE007F9F38001C017C003F80300000005800184E7 | |
1545 | + 000000018001CCE7000000018001CE4F000080018001CE4F0000E0018001CE4F | |
1546 | + 0000F8038001CF1F8001FE07C0038F1F8001FF8FE007FFFFC003FFFFF00F8FFF | |
1547 | + E007FFFFF81F8FFFF81FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00FFFFFFFF | |
1536 | 1548 | FE00C000F000F000FE008000F000F000FE008000F000F0008000800000000000 |
1537 | 1549 | 8000800070000000800080017000000080008001700000008001800170000000 |
1538 | 1550 | 8003800170000000800780017FDF001F807F8001001F001F80FFC003001F001F |
@@ -1540,8 +1552,7 @@ object EditorForm: TEditorForm | ||
1540 | 1552 | FFF3000FFFFFF0CFFF010007FFFFF08700000003FFFFF08700010003FFE7F887 |
1541 | 1553 | 0003003FC1F3FE8F0003003FC3FBFE3F00038FFFC7FBFF7F0003FC00CBFBFE3F |
1542 | 1554 | 0003C400DCF3FEBF0003CC00FF07FC9F0003D400FFFFFDDF0003F800FFFFFDDF |
1543 | - FFFFFC00FFFFFDDFFFFFFC00FFFFFFFF00000000000000000000000000000000 | |
1544 | - 000000000000} | |
1555 | + FFFFFC00FFFFFDDFFFFFFC00FFFFFFFF} | |
1545 | 1556 | end |
1546 | 1557 | object Indy: TIdHTTP |
1547 | 1558 | Intercept = IdLogDebug |
@@ -1733,6 +1744,19 @@ object EditorForm: TEditorForm | ||
1733 | 1744 | OnExecute = UpdateSambaActionExecute |
1734 | 1745 | OnUpdate = UpdateSambaActionUpdate |
1735 | 1746 | end |
1747 | + object InputAssistAction: TAction | |
1748 | + Tag = -1 | |
1749 | + Category = #32232#38598 | |
1750 | + Caption = #20837#21147#12450#12471#12473#12488 | |
1751 | + OnExecute = InputAssistActionExecute | |
1752 | + end | |
1753 | + object ShowInputAssistForm: TAction | |
1754 | + Category = #32232#38598 | |
1755 | + Caption = #20837#21147#12450#12471#12473#12488#12501#12457#12540#12512#21628#12403#20986#12375 | |
1756 | + Hint = #20837#21147#12450#12471#12473#12488#12501#12457#12540#12512#12434#21628#12403#20986#12377 | |
1757 | + ImageIndex = 11 | |
1758 | + OnExecute = ShowInputAssistFormExecute | |
1759 | + end | |
1736 | 1760 | end |
1737 | 1761 | object IdLogDebug: TIdLogDebug |
1738 | 1762 | OnReceive = IdLogDebugReceive |
@@ -1748,4 +1772,16 @@ object EditorForm: TEditorForm | ||
1748 | 1772 | Left = 233 |
1749 | 1773 | Top = 123 |
1750 | 1774 | end |
1775 | + object InputAssistPopupMenu: TPopupMenu | |
1776 | + AutoHotkeys = maManual | |
1777 | + AutoPopup = False | |
1778 | + OwnerDraw = True | |
1779 | + Left = 272 | |
1780 | + Top = 128 | |
1781 | + end | |
1782 | + object ApplicationEvents1: TApplicationEvents | |
1783 | + OnMessage = ApplicationEvents1Message | |
1784 | + Left = 304 | |
1785 | + Top = 128 | |
1786 | + end | |
1751 | 1787 | 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,13 @@ 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; | |
133 | + ToolButton8: TToolButton; | |
134 | + ToolButton9: TToolButton; | |
135 | + ShowInputAssistForm: TAction; | |
130 | 136 | |
131 | 137 | procedure EditorPageChange(Sender: TObject); |
132 | 138 | procedure FormCreate(Sender: TObject); |
@@ -181,6 +187,10 @@ type | ||
181 | 187 | procedure BeLogInOutEActionUpdate(Sender: TObject); |
182 | 188 | procedure UpdateSambaActionUpdate(Sender: TObject); |
183 | 189 | procedure UpdateSambaActionExecute(Sender: TObject); |
190 | + procedure InputAssistActionExecute(Sender: TObject); | |
191 | + procedure ApplicationEvents1Message(var Msg: tagMSG; | |
192 | + var Handled: Boolean); | |
193 | + procedure ShowInputAssistFormExecute(Sender: TObject); | |
184 | 194 | private |
185 | 195 | FThreadItem: TThreadItem; |
186 | 196 | FBoard: TBoard; |
@@ -195,6 +205,8 @@ type | ||
195 | 205 | FHost: string; |
196 | 206 | FNow: TDateTime; |
197 | 207 | FGestures : TMouseGesture; |
208 | + FInputAssistKey: String; ///< üÍAVXgÌL[ | |
209 | + FResistWords: TStringList; ///< üÍAVXgÌ«©çÌõÊ | |
198 | 210 | procedure Preview; |
199 | 211 | function RepHtml(s: string): string; |
200 | 212 | function Check: Boolean; |
@@ -244,21 +256,25 @@ type | ||
244 | 256 | function LFusianaGet(s: String): Boolean; |
245 | 257 | // CookieÌæ¾ |
246 | 258 | procedure GetCookie(Rawtext: String; ABoard: TBoard); |
259 | + //! üÍAVXgÌ|bvAbvj [ÌNbNCxg | |
260 | + procedure InputAssistMenuClick(Sender: TObject); | |
261 | + //! TMemoÌJ[\Êuɶñ}ü | |
262 | + procedure InsertText(Memo: TMemo; Text: String); | |
247 | 263 | protected |
248 | 264 | procedure CreateParams(var Params: TCreateParams); override; |
249 | 265 | public |
250 | - FBBSID: String; | |
266 | + FBBSID: String; | |
251 | 267 | procedure SetFont; |
252 | 268 | procedure SetThreadItem(Item: TThreadItem); |
253 | 269 | procedure SetBoard(Item: TBoard); |
254 | - property BBSID: string read FBBSID write FBBSID; | |
255 | - | |
270 | + property BBSID: string read FBBSID write FBBSID; | |
256 | 271 | end; |
257 | 272 | |
258 | 273 | implementation |
259 | 274 | |
260 | 275 | uses |
261 | - Giko, ItemDownload, MojuUtils, IdGlobal, GikoMessage; | |
276 | + Giko, ItemDownload, MojuUtils, IdGlobal, GikoMessage, Imm, | |
277 | + InputAssistDataModule, InputAssist; | |
262 | 278 | const |
263 | 279 | CAPTION_NAME_NEW: string = 'MRir X§ÄGfB^'; |
264 | 280 | CAPTION_NAME_RES: string = 'MRir XGfB^'; |
@@ -427,7 +443,8 @@ begin | ||
427 | 443 | finally |
428 | 444 | ini.Free; |
429 | 445 | end; |
430 | - | |
446 | + // L[ÝèÌÇÝÝ | |
447 | + GikoSys.LoadKeySetting(ActionList, GikoSys.GetEditorKeyFileName); | |
431 | 448 | // }EXWFX`[ÌCXg[ |
432 | 449 | if GikoSys.Setting.GestureEnabled then begin |
433 | 450 | MouseGesture.UnHook; |
@@ -930,33 +947,35 @@ begin | ||
930 | 947 | |
931 | 948 | if ABoard = nil then Exit; |
932 | 949 | |
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 | |
950 | + if FileExists(ABoard.GetSETTINGTXTFileName) then begin | |
951 | + body := TStringList.Create; | |
952 | + try | |
953 | + body.LoadFromFile(ABoard.GetSETTINGTXTFileName); | |
954 | + Remote := GetFusianaName(body, ABoard); | |
955 | + finally | |
956 | + body.Free; | |
957 | + end; | |
958 | + end; | |
959 | + | |
960 | + //Setting.txtªÈ©Á½çæ¾ | |
961 | + //IÉת©©è»¤Å|¢EEE | |
962 | + if not FileExists(ABoard.GetSETTINGTXTFileName) then begin | |
963 | + //GetSETTINGTXTActionðÄÑo·ÆIndyªú»³êéÌÅA | |
947 | 964 | //±±ÅCookieðÛ¶µÈÄÍ¢¯È¢ |
948 | 965 | tmpRawheader := Indy.Response.RawHeaders.Text; |
949 | 966 | GetSETTINGTXTAction.Execute; |
950 | 967 | body := TStringList.Create; |
951 | 968 | try |
952 | - body.LoadFromFile(ABoard.GetSETTINGTXTFileName); | |
953 | - Remote := GetFusianaName(body, ABoard); | |
954 | - finally | |
955 | - body.Free; | |
956 | - end; | |
969 | + if FileExists(ABoard.GetSETTINGTXTFileName) then begin | |
970 | + body.LoadFromFile(ABoard.GetSETTINGTXTFileName); | |
971 | + Remote := GetFusianaName(body, ABoard); | |
972 | + end; | |
973 | + finally | |
974 | + body.Free; | |
975 | + end; | |
957 | 976 | end; |
958 | 977 | |
959 | - if Remote = 'fusianasan' then begin | |
978 | + if Remote = 'fusianasan' then begin | |
960 | 979 | MsgResult := MsgBox( |
961 | 980 | Handle, |
962 | 981 | '[gzXgð\¦·é@\ªgíêĢܷ' + #13#10 + |
@@ -971,8 +990,8 @@ begin | ||
971 | 990 | EnableMenuItem(SysMenu, SC_CLOSE, MF_BYCOMMAND or MF_ENABLED); |
972 | 991 | DrawMenuBar(Handle); |
973 | 992 | Exit; |
974 | - end; | |
975 | - end; | |
993 | + end; | |
994 | + end; | |
976 | 995 | end; |
977 | 996 | |
978 | 997 | if ResultType = grtOK then begin |
@@ -1214,7 +1233,7 @@ begin | ||
1214 | 1233 | ini.WriteInteger(sDate, 'Status', FStatusCode); |
1215 | 1234 | ini.WriteDateTime(sDate, 'Date', Now); |
1216 | 1235 | if FThreadItem = nil then begin |
1217 | - ini.WriteString(sDate, 'Title', TitleEdit.Text); | |
1236 | + ini.WriteString(sDate, 'Title', MojuUtils.Sanitize(TitleEdit.Text)); | |
1218 | 1237 | ini.WriteString(sDate, 'BBS', FBoard.BBSID); |
1219 | 1238 | ini.WriteInteger(sDate, 'NewThread', 1); |
1220 | 1239 | end else begin |
@@ -1731,9 +1750,6 @@ var | ||
1731 | 1750 | settingBody: TStringList; |
1732 | 1751 | tmpBoard: TBoard; |
1733 | 1752 | begin |
1734 | - if FWork then | |
1735 | - Exit; | |
1736 | - FWork := True; | |
1737 | 1753 | |
1738 | 1754 | InitIdHTTP(Indy); |
1739 | 1755 | if FThreadItem = nil then |
@@ -1784,7 +1800,6 @@ begin | ||
1784 | 1800 | end; |
1785 | 1801 | ShowBoardInformation(tmpBoard, BoardInformationMemo); |
1786 | 1802 | |
1787 | - FWork := False; | |
1788 | 1803 | end; |
1789 | 1804 | |
1790 | 1805 | procedure TEditorForm.ShowBoardInformation(ABoard: TBoard; AMemo: TMemo); |
@@ -2211,4 +2226,183 @@ begin | ||
2211 | 2226 | end; |
2212 | 2227 | end; |
2213 | 2228 | |
2229 | +procedure TEditorForm.InputAssistActionExecute(Sender: TObject); | |
2230 | +var | |
2231 | + count, i : Integer; | |
2232 | + item : TMenuItem; | |
2233 | + point: TPoint; | |
2234 | + Bitmap : TBitmap; | |
2235 | + TextWidth, ItemWidth, tmpWidth: Integer; | |
2236 | +begin | |
2237 | + if FInputAssistKey = '' then Exit; | |
2238 | + | |
2239 | + InputAssistPopupMenu.Items.Clear; | |
2240 | + | |
2241 | + if (FResistWords = nil) then begin | |
2242 | + FResistWords := TStringList.Create; | |
2243 | + end else begin | |
2244 | + FResistWords.Clear; | |
2245 | + end; | |
2246 | + | |
2247 | + if (GetKeyState( VK_SHIFT ) < 0) then begin | |
2248 | + // Vtgª³êÄ¢êÎAL[ÅnÜéJeS | |
2249 | + count := | |
2250 | + InputAssistDM.GetStartWithCategoryResistWords( | |
2251 | + FInputAssistKey, FResistWords); | |
2252 | + end else begin | |
2253 | + // Vtgª³¢ÌÅAL[ÅnÜéL[ | |
2254 | + count := | |
2255 | + InputAssistDM.GetStartWithKeyResistWords( | |
2256 | + FInputAssistKey, FResistWords); | |
2257 | + end; | |
2258 | + Bitmap := TBitmap.Create; | |
2259 | + try | |
2260 | + Bitmap.Canvas.Font.Assign(BodyEdit.Font); | |
2261 | + // }[W5px | |
2262 | + TextWidth := Bitmap.Canvas.TextWidth(FInputAssistKey) + 5; | |
2263 | + ItemWidth := 0; | |
2264 | + for i := 0 to count - 1 do begin | |
2265 | + item := TMenuItem.Create(nil); | |
2266 | + item.Break := mbNone; | |
2267 | + item.Caption := FResistWords[i]; | |
2268 | + item.Tag := i; | |
2269 | + item.OnClick := InputAssistMenuClick; | |
2270 | + InputAssistPopupMenu.Items.Add(item); | |
2271 | + | |
2272 | + tmpWidth := Bitmap.Canvas.TextWidth(Item.Caption); | |
2273 | + if (tmpWidth > ItemWidth) then begin | |
2274 | + ItemWidth := tmpWidth; | |
2275 | + end; | |
2276 | + end; | |
2277 | + finally | |
2278 | + Bitmap.Free; | |
2279 | + end; | |
2280 | + | |
2281 | + if (count > 0) then begin | |
2282 | + GetCaretpos(point); | |
2283 | + point.X := point.X + Self.Left + (Self.Width - BodyEdit.Width) div 2; | |
2284 | + point.Y := point.Y + Self.Top + (Self.Height - Self.ClientHeight); | |
2285 | + | |
2286 | + if Screen.DesktopWidth > | |
2287 | + (point.X + TextWidth + ItemWidth) then begin | |
2288 | + InputAssistPopupMenu.Popup( | |
2289 | + point.X + TextWidth, | |
2290 | + point.Y + EditorPage.Top + EditorPage.TabHeight + BodyEdit.Top); | |
2291 | + end else begin | |
2292 | + InputAssistPopupMenu.Popup( | |
2293 | + point.X - TextWidth - ItemWidth, | |
2294 | + point.Y + EditorPage.Top + EditorPage.TabHeight + BodyEdit.Top); | |
2295 | + end; | |
2296 | + end; | |
2297 | +end; | |
2298 | + | |
2299 | +procedure TEditorForm.InputAssistMenuClick(Sender: TObject); | |
2300 | +var | |
2301 | + text : String; | |
2302 | + IMC: HIMC; | |
2303 | +begin | |
2304 | + if not (Sender is TMenuItem) then Exit; | |
2305 | + | |
2306 | + if (FResistWords <> nil) then begin | |
2307 | + try | |
2308 | + text := | |
2309 | + TResistWord(FResistWords.Objects[TMenuItem(Sender).Tag]).GetText; | |
2310 | + except | |
2311 | + text := ''; | |
2312 | + end; | |
2313 | + IMC := ImmGetContext(BodyEdit.Handle); //ReLXgæ¾ | |
2314 | + try | |
2315 | + ImmNotifyIME(IMC, NI_COMPOSITIONSTR, CPS_CANCEL, 0); | |
2316 | + finally | |
2317 | + ImmReleaseContext(BodyEdit.Handle, IMC); //ReLXgðú | |
2318 | + end; | |
2319 | + | |
2320 | + FResistWords.Clear; | |
2321 | + FInputAssistKey := ''; | |
2322 | + end; | |
2323 | + InsertText(BodyEdit, text); | |
2324 | +end; | |
2325 | + | |
2326 | +//! TMemoÌJ[\Êuɶñ}ü | |
2327 | +procedure TEditorForm.InsertText(Memo: TMemo; Text: String); | |
2328 | +var | |
2329 | + line, sel, pos: Integer; | |
2330 | + left, right : String; | |
2331 | +begin | |
2332 | + Memo.Lines.BeginUpdate; | |
2333 | + line := SendMessage(Memo.Handle,EM_LINEFROMCHAR,-1,0); //s | |
2334 | + sel := Memo.SelStart; | |
2335 | + pos := sel - SendMessage(Memo.Handle, EM_LINEINDEX, -1, 0); // | |
2336 | + if (pos > 0) then begin | |
2337 | + left := Copy(Memo.Lines[line], 0, pos); | |
2338 | + end else begin | |
2339 | + left := ''; | |
2340 | + end; | |
2341 | + right := Copy(Memo.Lines[line], pos + 1, Length(Memo.Lines[line])); | |
2342 | + Memo.Lines.Strings[line] := left + Text + right; | |
2343 | + Memo.Lines.EndUpdate; | |
2344 | + //@LbgÌÊuðXV·é | |
2345 | + Memo.SelStart := sel + Length(text); | |
2346 | + // LbgÌÊuÜÅXN[ | |
2347 | + Memo.Perform(EM_SCROLLCARET, 0, 0); | |
2348 | + | |
2349 | +end; | |
2350 | + | |
2351 | +procedure TEditorForm.ApplicationEvents1Message(var Msg: tagMSG; | |
2352 | + var Handled: Boolean); | |
2353 | +var | |
2354 | + wmMsg: TWMKey; | |
2355 | + IMC: HIMC; | |
2356 | + Len: integer; | |
2357 | + Str: string; | |
2358 | +begin | |
2359 | + if (Self.Active) then begin | |
2360 | + case Msg.message of | |
2361 | + //L[ºÌÝó¯æé | |
2362 | + WM_KEYDOWN: | |
2363 | + begin | |
2364 | + // ^uªhÒWhÅCtrlL[ª³êÄ¢éÌðmF·é | |
2365 | + if (EditorPage.ActivePageIndex = 0) | |
2366 | + and (GetKeyState( VK_CONTROL ) < 0) then begin | |
2367 | + wmMsg.Msg := Msg.message; | |
2368 | + wmMsg.CharCode := Word(Msg.wParam); | |
2369 | + wmMsg.KeyData := Msg.lParam; | |
2370 | + if (wmMsg.CharCode = 229) and (wmMsg.KeyData = 3735553) then begin | |
2371 | + IMC := ImmGetContext(BodyEdit.Handle); //ReLXgæ¾ | |
2372 | + Len := ImmGetCompositionString(IMC, GCS_COMPSTR, nil, 0); //ܸ·³ðæ¾ | |
2373 | + if (Len > 0) then begin | |
2374 | + SetLength(Str, Len + 1); //BufferÌðÝè | |
2375 | + ImmGetCompositionString(IMC, GCS_COMPSTR, PChar(Str), Len + 1); //ܸ·³ðæ¾ | |
2376 | + SetLength(Str, Len); | |
2377 | + FInputAssistKey := Str; | |
2378 | + InputAssistActionExecute(nil); | |
2379 | + Handled := True; | |
2380 | + end; | |
2381 | + ImmReleaseContext(BodyEdit.Handle, IMC); //ReLXgðú | |
2382 | + end; | |
2383 | + end; | |
2384 | + end; | |
2385 | + end; | |
2386 | + | |
2387 | + end; | |
2388 | +end; | |
2389 | + | |
2390 | +procedure TEditorForm.ShowInputAssistFormExecute(Sender: TObject); | |
2391 | +var | |
2392 | + form : TInputAssistForm; | |
2393 | +begin | |
2394 | + form := TInputAssistForm.Create(nil); | |
2395 | + try | |
2396 | + if TopAction.Checked then begin // XeCóÔÉÝè | |
2397 | + SetWindowPos(form.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE); | |
2398 | + end; | |
2399 | + form.SetUpFromEditor; | |
2400 | + if (form.ShowModal = mrOk) then begin | |
2401 | + InsertText(BodyEdit, form.GetInsertText); | |
2402 | + end; | |
2403 | + finally | |
2404 | + form.Release; | |
2405 | + end; | |
2406 | +end; | |
2407 | + | |
2214 | 2408 | end. |
@@ -31,7 +31,8 @@ type | ||
31 | 31 | tipDownloadHost, // : string // ¡ÌzXgÆá¤êÌzXg |
32 | 32 | tipAgeSage, // : TThreadAgeSage // ACeÌã°º° |
33 | 33 | tipURL, // : string // XbhðuEUÅ\¦·éÛÌ URL |
34 | - tipFilePath // : string // ±ÌXªÛ¶³êÄ¢épX | |
34 | + tipFilePath, // : string // ±ÌXªÛ¶³êÄ¢épX | |
35 | + tipJumpAddress // : Integer // JUMPæXÔ | |
35 | 36 | ); |
36 | 37 | |
37 | 38 | // ************************************************************************* |
@@ -168,6 +169,8 @@ begin | ||
168 | 169 | Result := DWORD( CreateResultString( threadItem.URL ) ); |
169 | 170 | tipFilePath: // ±ÌXªÛ¶³êÄ¢épX |
170 | 171 | Result := DWORD( CreateResultString( threadItem.FilePath ) ); |
172 | + tipJumpAddress: | |
173 | + Result := threadItem.JumpAddress; | |
171 | 174 | else |
172 | 175 | Result := 0; |
173 | 176 | end; |
@@ -228,6 +231,8 @@ begin | ||
228 | 231 | threadItem.URL := string( PChar( param ) ); |
229 | 232 | //tipFilePath: // : string // ±ÌXªÛ¶³êÄ¢épX |
230 | 233 | // threadItem.FilePath := string( PChar( param ) ); |
234 | + tipJumpAddress: | |
235 | + threadItem.JumpAddress := param; | |
231 | 236 | end; |
232 | 237 | |
233 | 238 | end; |
@@ -410,12 +410,12 @@ begin | ||
410 | 410 | board := BBSsFindBoardFromBBSID( Node.Attributes[ 'bbs' ] ); |
411 | 411 | if board <> nil then |
412 | 412 | FavBoard := TFavoriteBoardItem.Create( |
413 | - board.URL, Node.Attributes[ 'title' ], board ); | |
413 | + board.URL, MojuUtils.UnSanitize(Node.Attributes[ 'title' ]), board ); | |
414 | 414 | end else begin |
415 | 415 | FavBoard := TFavoriteBoardItem.Create( |
416 | - Node.Attributes[ 'url' ], Node.Attributes[ 'title' ], nil ); | |
416 | + Node.Attributes[ 'url' ], MojuUtils.UnSanitize(Node.Attributes[ 'title' ]), nil ); | |
417 | 417 | end; |
418 | - CurrentNode := FTreeView.Items.AddChildObjectFirst(ParentNode, Node.Attributes['title'], FavBoard); | |
418 | + CurrentNode := FTreeView.Items.AddChildObjectFirst(ParentNode, UnSanitize(Node.Attributes['title']), FavBoard); | |
419 | 419 | CurrentNode.ImageIndex := 15; |
420 | 420 | CurrentNode.SelectedIndex := 15; |
421 | 421 | end else if Node.Attributes['favtype'] = 'thread' then begin |
@@ -433,17 +433,17 @@ begin | ||
433 | 433 | board.BoardPlugIn, |
434 | 434 | board, |
435 | 435 | GikoSys.Get2chBoard2ThreadURL( board, ChangeFileExt( Node.Attributes[ 'thread' ], '' ) ) ); |
436 | - threadItem.Title := Node.Attributes[ 'title' ]; | |
436 | + threadItem.Title := UnSanitize(Node.Attributes[ 'title' ]); | |
437 | 437 | board.Add( threadItem ); |
438 | 438 | end; |
439 | 439 | FavThread := TFavoriteThreadItem.Create( |
440 | - threadItem.URL, Node.Attributes[ 'title' ], threadItem ); | |
440 | + threadItem.URL, UnSanitize(Node.Attributes[ 'title' ]), threadItem ); | |
441 | 441 | threadItem.Free; |
442 | 442 | end else begin |
443 | 443 | FavThread := TFavoriteThreadItem.Create( |
444 | - Node.Attributes[ 'url' ], Node.Attributes[ 'title' ], nil ); | |
444 | + Node.Attributes[ 'url' ], UnSanitize(Node.Attributes[ 'title' ]), nil ); | |
445 | 445 | end; |
446 | - CurrentNode := FTreeView.Items.AddChildObjectFirst(ParentNode, Node.Attributes['title'], FavThread); | |
446 | + CurrentNode := FTreeView.Items.AddChildObjectFirst(ParentNode, UnSanitize(Node.Attributes['title']), FavThread); | |
447 | 447 | CurrentNode.ImageIndex := 16; |
448 | 448 | CurrentNode.SelectedIndex := 16; |
449 | 449 | end; |
@@ -558,12 +558,12 @@ begin | ||
558 | 558 | end else if TObject(data) is TFavoriteBoardItem then begin |
559 | 559 | FavBoard := TFavoriteBoardItem(data); |
560 | 560 | s := Format('<favitem type="2ch" favtype="board" url="%s" title="%s"/>', |
561 | - [HtmlEncode( FavBoard.URL ), HtmlEncode(Node.Text)]); | |
561 | + [HtmlEncode( FavBoard.URL ), HtmlEncode(MojuUtils.Sanitize(Node.Text))]); | |
562 | 562 | SaveList.Add(s); |
563 | 563 | end else if TObject(data) is TFavoriteThreadItem then begin |
564 | 564 | FavThread := TFavoriteThreadItem(data); |
565 | 565 | s := Format('<favitem type="2ch" favtype="thread" url="%s" title="%s"/>', |
566 | - [HtmlEncode( FavThread.URL ), HtmlEncode(Node.Text)]); | |
566 | + [HtmlEncode( FavThread.URL ), HtmlEncode(MojuUtils.Sanitize(Node.Text))]); | |
567 | 567 | SaveList.Add(s); |
568 | 568 | end; |
569 | 569 | Node := Node.getNextSibling; |
@@ -146,7 +146,7 @@ begin | ||
146 | 146 | WM_RBUTTONUP: begin |
147 | 147 | if FCancelMode then |
148 | 148 | FCancelMode := False |
149 | - else begin | |
149 | + else if (FBeginGesture) then begin | |
150 | 150 | FBeginGesture := False; |
151 | 151 | ReleaseCapture; |
152 | 152 | if FGestureItemList.Count <> 0 then begin |
@@ -1,6 +1,6 @@ | ||
1 | 1 | object GikoForm: TGikoForm |
2 | - Left = 363 | |
3 | - Top = 92 | |
2 | + Left = 422 | |
3 | + Top = 68 | |
4 | 4 | HorzScrollBar.Visible = False |
5 | 5 | VertScrollBar.Visible = False |
6 | 6 | AutoScroll = False |
@@ -527,7 +527,7 @@ object GikoForm: TGikoForm | ||
527 | 527 | ControlData = { |
528 | 528 | 4C00000098400000281100000000000000000000000000000000000000000000 |
529 | 529 | 000000004C000000000000000000000001000000E0D057007335CF11AE690800 |
530 | - 2B2E12620A000000000000004C0000000114020000000000C000000000000046 | |
530 | + 2B2E126202000000000000004C0000000114020000000000C000000000000046 | |
531 | 531 | 8000000000000000000000000000000000000000000000000000000000000000 |
532 | 532 | 00000000000000000100000000000000000000000000000000000000} |
533 | 533 | end |
@@ -4469,7 +4469,7 @@ object GikoForm: TGikoForm | ||
4469 | 4469 | Left = 4 |
4470 | 4470 | Top = 244 |
4471 | 4471 | Bitmap = { |
4472 | - 494C010136003B00040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 | |
4472 | + 494C010138003B00040010001000FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600 | |
4473 | 4473 | 000000000000360000002800000040000000F0000000010020000000000000F0 |
4474 | 4474 | 0000000000000000000000000000000000000000000000000000000000000000 |
4475 | 4475 | 0000000000000000000000000000000000000000000000000000000000000000 |
@@ -4605,126 +4605,126 @@ object GikoForm: TGikoForm | ||
4605 | 4605 | 0000000000000000000000000000000000000000000000000000000000000000 |
4606 | 4606 | 0000000000000000000000000000000000000000000000000000000000000000 |
4607 | 4607 | 0000000000000000000000000000000000000000000000000000000000000000 |
4608 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4609 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4608 | + 0000000000000000FF000000000000000000000000000000000080808000FFFF | |
4609 | + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00C0C0C0000000 | |
4610 | 4610 | 0000000000000000000000000000000000000000000000000000000000000000 |
4611 | 4611 | 000000000000000000000000FF000000FF000000FF000000FF000000FF000000 |
4612 | 4612 | 0000000000000000000000000000000000000000000000000000000000000000 |
4613 | 4613 | 0000000000000042840000428400004284000042840000428400004284000000 |
4614 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4615 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4616 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4617 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4614 | + 0000000000000000000000000000000000000000000000000000C0C0C000C0C0 | |
4615 | + C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000000000000000 | |
4616 | + 00000000FF000000FF000000FF0000000000000000000000000080808000FFFF | |
4617 | + FF00FF000000FF000000FF000000FF000000FF000000FFFFFF00C0C0C0000000 | |
4618 | 4618 | 0000000000000000000000000000000000000000000000000000000000000000 |
4619 | 4619 | 00000000FF000000FF000084840000000000C6C6C600C6C6C600848484000000 |
4620 | 4620 | FF000000FF000000000084848400000000000000000000000000000000000000 |
4621 | 4621 | 0000004284004284E7004284E7004284E7004284E7004284E7004284E7000042 |
4622 | - 8400000000000000000000000000000000000000000000000000000000000000 | |
4623 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4624 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4625 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4622 | + 8400000000000000000000000000000000000000000000000000C0C0C000FFFF | |
4623 | + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00C0C0C000000000000000 | |
4624 | + 0000000000000000FF000000000000000000000000000000000080808000FFFF | |
4625 | + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00C0C0C0000000 | |
4626 | 4626 | 0000000000000000000000000000000000000000000000000000000000000000 |
4627 | 4627 | FF00000000000000FF008484840084848400FFFFFF00FFFFFF00848484000000 |
4628 | 4628 | 0000000000000000FF0000000000000000000000000000000000000000000042 |
4629 | 4629 | 84004284E7000000000000000000000000000000000000000000000000000000 |
4630 | - 0000004284000000000000000000000000000000000000000000000000000000 | |
4631 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4632 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4633 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4630 | + 0000004284000000000000000000000000000000000000000000C0C0C000FFFF | |
4631 | + FF00C0C0C000C0C0C000C0C0C000C0C0C000FFFFFF00C0C0C000000000000000 | |
4632 | + 0000000000000000FF000000000000000000000000000000000080808000FFFF | |
4633 | + FF00FF000000FF000000FF000000FF000000FF000000FFFFFF00C0C0C0000000 | |
4634 | 4634 | 00000000000000000000000000000000000000000000000000000000FF000000 |
4635 | 4635 | 0000008484000000FF000000FF00C6C6C600FFFFFF00FFFFFF00848484000000 |
4636 | 4636 | 000084848400000000000000FF00000000000000000000000000004284004284 |
4637 | 4637 | E7004284E7000000000000000000FFFFFF00FFFFFF00FFFFFF004284E7000000 |
4638 | 4638 | 0000000000000042840000000000000000000000000000000000000000000000 |
4639 | 4639 | 0000000000000000000000000000000000000000000000000000000000000000 |
4640 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4641 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4640 | + 000000000000000000000000000000000000000000000000000080808000FFFF | |
4641 | + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000 | |
4642 | 4642 | 00000000000000000000000000000000000000000000000000000000FF000084 |
4643 | 4643 | 840000FFFF00FFFFFF000000FF000000FF00FFFFFF00FFFFFF00848484000000 |
4644 | 4644 | 000000000000000000000000FF000000000000000000004284004284E7004284 |
4645 | 4645 | E7004284E7000000000000000000FFFFFF004284E7004284E7004284E7000000 |
4646 | - 0000000000004284E70000428400000000000000000000000000000000000000 | |
4647 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4648 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4649 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4646 | + 0000000000004284E7000042840000000000000000000000000080808000C0C0 | |
4647 | + C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000000000000000 | |
4648 | + 000000000000000000000000000000000000000000000000000080808000FFFF | |
4649 | + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00C0C0C000FFFFFF00808080000000 | |
4650 | 4650 | 000000000000000000000000000000000000000000000000FF008484840000FF |
4651 | 4651 | FF00FFFFFF0000FFFF00000000000000FF000000FF00FFFFFF00848484000000 |
4652 | 4652 | 00000000000000000000000000000000FF0000000000004284004284E7004284 |
4653 | 4653 | E7004284E7000000000000000000FFFFFF004284E7004284E7004284E7000000 |
4654 | - 0000000000004284E70000428400000000000000000000000000000000000000 | |
4655 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4656 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4657 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4654 | + 0000000000004284E7000042840000000000000000000000000080808000FFFF | |
4655 | + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00C0C0C000000000000000 | |
4656 | + 00000000000000E000000000000000000000000000000000000080808000FFFF | |
4657 | + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00C0C0C00080808000000000000000 | |
4658 | 4658 | 000000000000000000000000000000000000008484000000FF00C6C6C600FFFF |
4659 | 4659 | FF0000FFFF00FFFFFF0000000000848484000000FF000000FF00848484000000 |
4660 | 4660 | 00008484840084848400848484000000FF0000000000004284004284E7004284 |
4661 | 4661 | E7004284E7000000000000000000000000000000000000000000000000000000 |
4662 | - 00004284E7004284E70000428400000000000000000000000000000000000000 | |
4663 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4664 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4665 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4662 | + 00004284E7004284E7000042840000000000000000000000000080808000FFFF | |
4663 | + FF00FF000000FF000000FF000000FF000000FFFFFF00C0C0C000000000000000 | |
4664 | + 000000E0000000E0000000E00000000000000000000000000000808080008080 | |
4665 | + 8000808080008080800080808000808080008080800000000000000000000000 | |
4666 | 4666 | 000000000000000000000000000000000000008484000000FF00C6C6C60000FF |
4667 | 4667 | FF00FFFFFF0000FFFF0000000000C6C6C600000000000000FF000000FF000000 |
4668 | 4668 | 00000000000000000000000000000000FF0000000000004284004284E7004284 |
4669 | 4669 | E7004284E7000000000000000000FFFFFF00FFFFFF00FFFFFF00000000004284 |
4670 | - E7004284E7004284E70000428400000000000000000000000000000000000000 | |
4671 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4672 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4673 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4670 | + E7004284E7004284E7000042840000000000000000000000000080808000FFFF | |
4671 | + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00C0C0C000000000000000 | |
4672 | + 00000000000000E0000000000000000000000000000000000000000000000000 | |
4673 | + 00000000000000FFFF0000000000000000000000000000000000000000000000 | |
4674 | 4674 | 000000000000000000000000000000000000008484000000FF00C6C6C600FFFF |
4675 | 4675 | FF0000FFFF00FFFFFF000000000000000000FFFFFF00FFFFFF000000FF000000 |
4676 | 4676 | FF000000000000000000000000000000FF0000000000004284004284E7004284 |
4677 | 4677 | E7004284E7000000000000000000FFFFFF004284E7004284E700000000000000 |
4678 | - 00004284E7004284E70000428400000000000000000000000000000000000000 | |
4679 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4680 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4678 | + 00004284E7004284E7000042840000000000000000000000000080808000FFFF | |
4679 | + FF00FF000000FF000000FF000000FF000000FFFFFF00C0C0C000000000000000 | |
4681 | 4680 | 0000000000000000000000000000000000000000000000000000000000000000 |
4681 | + 00000000000000FFFF0000000000000000000000000000000000000000000000 | |
4682 | 4682 | 00000000000000000000000000000000000000000000008484000000FF0000FF |
4683 | 4683 | FF00FFFFFF0000FFFF0000000000C6C6C600FFFFFF00FFFFFF00848484000000 |
4684 | 4684 | FF000000FF00000000000000FF000000000000000000004284004284E7004284 |
4685 | 4685 | E7004284E7000000000000000000FFFFFF004284E7004284E700000000000000 |
4686 | - 00004284E7004284E70000428400000000000000000000000000000000000000 | |
4687 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4688 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4686 | + 00004284E7004284E7000042840000000000000000000000000080808000FFFF | |
4687 | + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00C0C0C000000000000000 | |
4689 | 4688 | 0000000000000000000000000000000000000000000000000000000000000000 |
4689 | + 00000000000000FFFF0000000000000000000000000000000000000000000000 | |
4690 | 4690 | 00000000000000000000000000000000000000000000000000000000FF000084 |
4691 | 4691 | 840000FFFF00FFFFFF0000000000C6C6C600FFFFFF00FFFFFF00848484000000 |
4692 | 4692 | 00000000FF000000FF000000FF00000000000000000000000000004284004284 |
4693 | 4693 | E7004284E7000000000000000000FFFFFF00FFFFFF00FFFFFF00000000000000 |
4694 | - 00004284E7000042840000000000000000000000000000000000000000000000 | |
4695 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4696 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4697 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4694 | + 00004284E700004284000000000000000000000000000000000080808000FFFF | |
4695 | + FF00FF000000FF000000FF000000FF000000FFFFFF00C0C0C000000000000000 | |
4696 | + 0000000000000000FF0000000000000000000000000000000000000000000000 | |
4697 | + 00000000000000FFFF0000000000000000000000000000000000000000000000 | |
4698 | 4698 | 0000000000000000000000000000000000000000000000000000000000000000 |
4699 | 4699 | FF000084840000FFFF008484840084848400C6C6C600FFFFFF00848484000000 |
4700 | 4700 | 0000000000000000FF0084848400000000000000000000000000000000000042 |
4701 | 4701 | 84004284E7000000000000000000000000000000000000000000000000004284 |
4702 | - E700004284000000000000000000000000000000000000000000000000000000 | |
4703 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4704 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4705 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4702 | + E70000428400000000000000000000000000000000000000000080808000FFFF | |
4703 | + FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 | |
4704 | + 0000000000000000FF00000000000000000000000000000000000000000000FF | |
4705 | + FF0000FFFF0000FFFF0000FFFF0000FFFF000000000000000000000000000000 | |
4706 | 4706 | 0000000000000000000000000000000000000000000000000000000000000000 |
4707 | 4707 | 00000000FF000000FF0000FFFF0000000000C6C6C600C6C6C600000000000000 |
4708 | 4708 | FF000000FF000000000000000000000000000000000000000000000000000000 |
4709 | 4709 | 0000004284004284E7004284E7004284E7004284E7004284E7004284E7000042 |
4710 | - 8400000000000000000000000000000000000000000000000000000000000000 | |
4711 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4712 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4713 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4710 | + 840000000000000000000000000000000000000000000000000080808000FFFF | |
4711 | + FF00FFFFFF00FFFFFF00FFFFFF00C0C0C000FFFFFF0080808000000000000000 | |
4712 | + 00000000FF000000FF000000FF00000000000000000000000000000000000000 | |
4713 | + 00000000000000FFFF0000000000000000000000000000000000000000000000 | |
4714 | 4714 | 0000000000000000000000000000000000000000000000000000000000000000 |
4715 | 4715 | 000000000000000000000000FF000000FF000000FF000000FF000000FF000000 |
4716 | 4716 | 0000000000000000000000000000000000000000000000000000000000000000 |
4717 | 4717 | 0000000000000042840000428400004284000042840000428400004284000000 |
4718 | + 000000000000000000000000000000000000000000000000000080808000FFFF | |
4719 | + FF00FFFFFF00FFFFFF00FFFFFF00C0C0C0008080800000000000000000000000 | |
4720 | + 0000000000000000FF0000000000000000000000000000000000000000000000 | |
4721 | + 00000000000000FFFF0000000000000000000000000000000000000000000000 | |
4718 | 4722 | 0000000000000000000000000000000000000000000000000000000000000000 |
4719 | 4723 | 0000000000000000000000000000000000000000000000000000000000000000 |
4720 | 4724 | 0000000000000000000000000000000000000000000000000000000000000000 |
4721 | 4725 | 0000000000000000000000000000000000000000000000000000000000000000 |
4722 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4723 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4724 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4725 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4726 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4727 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
4726 | + 0000000000000000000000000000000000000000000000000000808080008080 | |
4727 | + 8000808080008080800080808000808080000000000000000000000000000000 | |
4728 | 4728 | 0000000000000000000000000000000000000000000000000000000000000000 |
4729 | 4729 | 0000000000000000000000000000000000000000000000000000000000000000 |
4730 | 4730 | 0000000000000000000000000000000000000000000000000000000000000000 |
@@ -6397,11 +6397,11 @@ object GikoForm: TGikoForm | ||
6397 | 6397 | 0000000000000000000000000000000000000000000000000000000000000000 |
6398 | 6398 | 0000000000000000000000000000000000000000000000000000000000000000 |
6399 | 6399 | 0000000000000000000000000000000000000000000000000000000000000000 |
6400 | - 00000000000000000000000000000000FE7FFFFF00000000FC1FF81F00000000 | |
6401 | - F005F00F00000000E01BE00700000000C015C00300000000801D800100000000 | |
6402 | - 001E8001000000000010800100000000001E800100000000000E800100000000 | |
6403 | - 8005800100000000C011C00300000000E019E00700000000F027F00F00000000 | |
6404 | - FC1FF81F00000000FE7FFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFC003 | |
6400 | + 00000000000000000000000000000000FE7FFFFFC01BC00FFC1FF81FC011C00F | |
6401 | + F005F00FC01BC00FE01BE007C01BC00FC015C003C01FC00F801D8001C01FC01F | |
6402 | + 001E8001C01BC03F00108001C011C07F001E8001C01BFBFF000E8001C01FFBFF | |
6403 | + 80058001C01FFBFFC011C003C01BFBFFE019E007C01BE0FFF027F00FC031FBFF | |
6404 | + FC1FF81FC07BFBFFFE7FFFFFC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC003 | |
6405 | 6405 | FFFFFFFFFFFFC003FC01803FFC01C003FC01803C3C01C003FC01803C3C01C003 |
6406 | 6406 | FC01803C3C01C003FC01803C3C01C003FC01803C3C01C003C00180000001C003 |
6407 | 6407 | C00180000001C003C00180000001C003C00180000001C003FFFFFFFC3FFFC003 |
@@ -6453,8 +6453,7 @@ object GikoForm: TGikoForm | ||
6453 | 6453 | 00000000C003FFFF0000000080017FFF0000000080013F7F0000000000000E3F |
6454 | 6454 | 000000000000861F800000000000C20FC00100000000E007F81F00000000F043 |
6455 | 6455 | F00F00000000F861E00700008001FC70C003803F8001FEFCF81FC07FC003FFFE |
6456 | - F81FE0FFE007FFFFF83FFFFFF81FFFFF00000000000000000000000000000000 | |
6457 | - 000000000000} | |
6456 | + F81FE0FFE007FFFFF83FFFFFF81FFFFF} | |
6458 | 6457 | end |
6459 | 6458 | object ItemImageList: TImageList |
6460 | 6459 | Left = 4 |
@@ -7211,8 +7210,8 @@ object GikoForm: TGikoForm | ||
7211 | 7210 | Left = 4 |
7212 | 7211 | Top = 308 |
7213 | 7212 | Bitmap = { |
7214 | - 494C01010300040004000B001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 | |
7215 | - 00000000000036000000280000002C000000100000000100200000000000000B | |
7213 | + 494C01010400090004000B001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 | |
7214 | + 00000000000036000000280000002C0000003000000001002000000000000021 | |
7216 | 7215 | 0000000000000000000000000000000000000000000000000000000000000000 |
7217 | 7216 | 0000000000000000000000000000000000000000000000000000000000000000 |
7218 | 7217 | 0000000000000000000000000000000000000000000000000000000000000000 |
@@ -7235,39 +7234,215 @@ object GikoForm: TGikoForm | ||
7235 | 7234 | 0000000000000000000000000000000000000000000000000000000000000000 |
7236 | 7235 | 0000000000000000000000000000000000000000000000000000000000000000 |
7237 | 7236 | 0000000000000000000000000000000000000000000000000000000000000000 |
7238 | - 000000000000000000000000000000000000000000000000000000000000FFFF | |
7237 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7238 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7239 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7240 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7241 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7242 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7243 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7244 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7245 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7246 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7247 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7248 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7249 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7250 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7251 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7252 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7253 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7254 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7255 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7256 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7257 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7258 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7259 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7260 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7261 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7262 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7263 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7264 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7265 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7266 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7267 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7268 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7269 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7270 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7271 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7272 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7273 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7274 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7275 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7276 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7277 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7278 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7279 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7280 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7281 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7282 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7283 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7284 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7285 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7286 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7287 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7288 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7289 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7290 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7291 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7292 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7293 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7294 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7295 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7296 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7297 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7298 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7299 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7300 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7301 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7302 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7303 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7304 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7305 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7306 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7307 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7308 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7309 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7310 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7311 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7312 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7313 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7314 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7315 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7316 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7317 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7318 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7319 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7320 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7321 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7322 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7323 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7324 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7325 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7326 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7327 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7328 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7329 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7330 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7331 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7332 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7333 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7334 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7335 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7336 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7337 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7338 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7339 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7340 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7341 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7342 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7343 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7344 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7345 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7346 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7347 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7348 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7349 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7350 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7351 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7352 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7353 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7354 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7355 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7356 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7357 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7358 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7359 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7360 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7361 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7362 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7363 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7364 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7365 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7366 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7367 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7368 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7369 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7370 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7371 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7372 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7373 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7374 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7375 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7376 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7377 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7378 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7379 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7380 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7381 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7382 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7383 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7384 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7385 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7386 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7387 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7388 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7389 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7390 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7391 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7392 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7393 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7394 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7395 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7396 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7397 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7398 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7399 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7400 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7401 | + 0000000000000000000000000000000000000000000000000000808080000000 | |
7402 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7403 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7404 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7405 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7406 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7407 | + 00008080800080808000C0DCC000808080008080800000000000000000000000 | |
7408 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7409 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7410 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7411 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7412 | + 00000000000000000000000000000000000080808000C0DCC000C0DCC000C0DC | |
7413 | + C00080808000000000000000000000000000000000000000000000000000FFFF | |
7239 | 7414 | FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000 |
7240 | 7415 | 0000000000000000000000000000000000000000000000000000000000000000 |
7241 | 7416 | 000000000000000000000000000000000000000000000000000000000000FFFF |
7242 | - FF00000000000000000000000000000000000000000000000000000000000000 | |
7243 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
7417 | + FF00000000000000000000000000000000000000000000000000000000008080 | |
7418 | + 8000C0DCC000C0DCC000C0DCC000C0DCC000C0DCC00080808000000000000000 | |
7244 | 7419 | 0000000000000000000000000000FFFFFF00008400000084000000840000FFFF |
7245 | 7420 | FF00000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF |
7246 | 7421 | FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000 |
7247 | 7422 | 00000000000000000000FFFFFF0084848400FFFFFF0000000000000000000000 |
7248 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
7249 | - 00000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF | |
7423 | + 000000000000000000000000000080808000C0DCC000C0DCC000C0DCC000C0DC | |
7424 | + C000C0DCC00080808000000000000000000000000000FFFFFF00FFFFFF00FFFF | |
7250 | 7425 | FF000084000000FF000000840000FFFFFF00FFFFFF00FFFFFF0000000000FFFF |
7251 | 7426 | FF00840000008400000084000000840000008400000084000000840000008400 |
7252 | 7427 | 000084000000FFFFFF00000000000000000000000000FFFFFF00848484008484 |
7253 | - 840084848400FFFFFF0000000000000000000000000000000000000000000000 | |
7254 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
7428 | + 840084848400FFFFFF0000000000000000000000000000000000000000008080 | |
7429 | + 8000C0DCC000C0DCC000C0DCC000C0DCC000C0DCC00080808000000000000000 | |
7255 | 7430 | 000000000000FFFFFF0000840000008400000084000000FF0000008400000084 |
7256 | 7431 | 000000840000FFFFFF000000000000000000FFFFFF0084000000840000008400 |
7257 | 7432 | 000084000000840000008400000084000000FFFFFF0000000000000000000000 |
7258 | 7433 | 0000FFFFFF008484840084848400848484008484840084848400FFFFFF000000 |
7259 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
7260 | - 00000000000000000000000000000000000000000000FFFFFF000084000000FF | |
7434 | + 00000000000000000000000000000000000080808000C0DCC000C0DCC000C0DC | |
7435 | + C0008080800000000000000000000000000000000000FFFFFF000084000000FF | |
7261 | 7436 | 000000FF000000FF000000FF000000FF000000840000FFFFFF00000000000000 |
7262 | 7437 | 000000000000FFFFFF008400000084000000840000008400000084000000FFFF |
7263 | 7438 | FF00000000000000000000000000FFFFFF008484840084848400848484008484 |
7264 | 7439 | 8400848484008484840084848400FFFFFF000000000000000000000000000000 |
7265 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
7440 | + 00008080800080808000C0DCC000808080008080800000000000000000000000 | |
7266 | 7441 | 000000000000FFFFFF0000840000008400000084000000FF0000008400000084 |
7267 | 7442 | 000000840000FFFFFF0000000000000000000000000000000000FFFFFF008400 |
7268 | 7443 | 00008400000084000000FFFFFF00000000000000000000000000FFFFFF008484 |
7269 | 7444 | 8400848484008484840084848400848484008484840084848400848484008484 |
7270 | - 8400FFFFFF000000000000000000000000000000000000000000000000000000 | |
7445 | + 8400FFFFFF000000000000000000000000000000000000000000808080000000 | |
7271 | 7446 | 00000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF |
7272 | 7447 | FF000084000000FF000000840000FFFFFF00FFFFFF00FFFFFF00000000000000 |
7273 | 7448 | 0000000000000000000000000000FFFFFF0084000000FFFFFF00000000000000 |
@@ -7302,12 +7477,20 @@ object GikoForm: TGikoForm | ||
7302 | 7477 | 0000000000000000000000000000000000000000000000000000000000000000 |
7303 | 7478 | 0000000000000000000000000000000000000000000000000000000000000000 |
7304 | 7479 | 000000000000000000000000000000000000424D3E000000000000003E000000 |
7305 | - 280000002C000000100000000100010000000000800000000000000000000000 | |
7306 | - 000000000000000000000000FFFFFF00FFFFFFFF80000000FFFFFFFF80000000 | |
7307 | - FFFFFFFF80000000FFFFFFFF80000000E0FFFFEF80000000E0E003C780000000 | |
7308 | - 8020038380000000803007018000000080380E0080000000803C1C0000000000 | |
7309 | - 803E3C0000000000E0FF7FFF80000000E0FFFFFF80000000FFFFFFFF80000000 | |
7310 | - FFFFFFFF80000000FFFFFFFF8000000000000000000000000000000000000000 | |
7480 | + 280000002C000000300000000100010000000000800100000000000000000000 | |
7481 | + 000000000000000000000000FFFFFF0000000000000000000000000000000000 | |
7482 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7483 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7484 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7485 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7486 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7487 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7488 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
7489 | + 00000000000000000000000000000000FFFFFFFFFFF00000FFFFFFFFFDF00000 | |
7490 | + FFFFFFFFF0700000FFFFFFFFF0700000E0FFFFEFE0300000E0E003C7E0300000 | |
7491 | + 80200383E030000080300701F070000080380E00F0700000803C1C007DF00000 | |
7492 | + 803E3C007FF00000E0FF7FFFFFF00000E0FFFFFFFFF00000FFFFFFFFFFF00000 | |
7493 | + FFFFFFFFFFF00000FFFFFFFFFFF0000000000000000000000000000000000000 | |
7311 | 7494 | 000000000000} |
7312 | 7495 | end |
7313 | 7496 | object AddressImageList: TImageList |
@@ -7700,6 +7883,14 @@ object GikoForm: TGikoForm | ||
7700 | 7883 | GroupIndex = 1 |
7701 | 7884 | RadioItem = True |
7702 | 7885 | end |
7886 | + object N76: TMenuItem | |
7887 | + Action = GikoDM.LiveItemAction | |
7888 | + GroupIndex = 1 | |
7889 | + end | |
7890 | + object DAT3: TMenuItem | |
7891 | + Action = GikoDM.ArchiveItemAction | |
7892 | + GroupIndex = 1 | |
7893 | + end | |
7703 | 7894 | object S2: TMenuItem |
7704 | 7895 | Action = GikoDM.SelectItemAction |
7705 | 7896 | AutoCheck = True |
@@ -7959,6 +8150,12 @@ object GikoForm: TGikoForm | ||
7959 | 8150 | object N43: TMenuItem |
7960 | 8151 | Caption = '-' |
7961 | 8152 | end |
8153 | + object N22: TMenuItem | |
8154 | + Action = GikoDM.SetInputAssistAction | |
8155 | + end | |
8156 | + object N42: TMenuItem | |
8157 | + Caption = '-' | |
8158 | + end | |
7962 | 8159 | object PlugInMenu: TMenuItem |
7963 | 8160 | Caption = #12503#12521#12464#12452#12531'(&P)' |
7964 | 8161 | end |
@@ -8523,6 +8720,12 @@ object GikoForm: TGikoForm | ||
8523 | 8720 | Action = GikoDM.NewItemAction |
8524 | 8721 | AutoCheck = True |
8525 | 8722 | end |
8723 | + object N75: TMenuItem | |
8724 | + Action = GikoDM.LiveItemAction | |
8725 | + end | |
8726 | + object DAT2: TMenuItem | |
8727 | + Action = GikoDM.ArchiveItemAction | |
8728 | + end | |
8526 | 8729 | object N68: TMenuItem |
8527 | 8730 | Caption = '-' |
8528 | 8731 | end |
@@ -402,6 +402,12 @@ type | ||
402 | 402 | N74: TMenuItem; |
403 | 403 | WikiFAQ: TMenuItem; |
404 | 404 | GikoApplicationEvents: TApplicationEvents; |
405 | + N22: TMenuItem; | |
406 | + N42: TMenuItem; | |
407 | + DAT2: TMenuItem; | |
408 | + N75: TMenuItem; | |
409 | + DAT3: TMenuItem; | |
410 | + N76: TMenuItem; | |
405 | 411 | procedure FormCreate(Sender: TObject); |
406 | 412 | procedure FormDestroy(Sender: TObject); |
407 | 413 | procedure BrowserStatusTextChange(Sender: TObject; |
@@ -541,6 +547,7 @@ type | ||
541 | 547 | procedure GikoApplicationEventsException(Sender: TObject; E: Exception); |
542 | 548 | procedure TreeViewMouseDown(Sender: TObject; Button: TMouseButton; |
543 | 549 | Shift: TShiftState; X, Y: Integer); |
550 | + procedure GetResURLMenuClick(Sender: TObject); | |
544 | 551 | private |
545 | 552 | { Private é¾ } |
546 | 553 | FEnabledCloseButton: Boolean; |
@@ -588,7 +595,8 @@ type | ||
588 | 595 | FIsHandledWheel : Boolean; ///< ùÉó¯æÁ½ WM_MOUSEWHEEL ©Ç¤© |
589 | 596 | DiffComp: Boolean; //Add by Genyakun XªXV³ê½Æ«ÉTrueÉÈé |
590 | 597 | FOrigenCaption: String; //¨CÉüèc[ÌACeÒWÌÒWO̶ñ |
591 | - FPreviewBrowserRect: TRect; ///< vr [Ì\¦ÊuðL¯·é | |
598 | + FPreviewBrowserRect: TRect; ///< vr [Ì\¦ÊuðL¯·é | |
599 | + FActionListGroupIndexes: array of Integer; ///<GikoDMãÌANVXgÌeANVÉÝè³ê½GroupIndexðÛ¶·ézñ | |
592 | 600 | procedure DownloadEnd(Sender: TObject; Item: TDownloadItem); |
593 | 601 | procedure DownloadMsg(Sender: TObject; Item: TDownloadItem; Msg: string; Icon: TGikoMessageIcon); |
594 | 602 | procedure WorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer; Number: Integer; const AWorkTitle: string); |
@@ -648,12 +656,16 @@ type | ||
648 | 656 | function GetScreenCursor(): TCursor; |
649 | 657 | //J[\ðÝè·é |
650 | 658 | procedure SetScreenCursor(Cursor : TCursor); |
651 | - //! ANVÌ`FbNóÔÌú» | |
652 | - procedure InitActionChecked(); | |
653 | 659 | //! _E[hRg[Xbh̶¬ |
654 | 660 | procedure CreateControlThread(); |
655 | 661 | //! uEU̶¬ |
656 | 662 | procedure CreateBrowsers(count: Integer); |
663 | + //! ActionListÌGroupIndexÌÛ¶ | |
664 | + procedure GetGroupIndex(ActionList: TActionList); | |
665 | + //! ActionListÌGroupIndexÌÝè | |
666 | + procedure SetGroupIndex(ActionList: TActionList); | |
667 | + //! wè³ê½XbhðJ(Oª³¢Æ« or wèJUMPÜÅ«èȢƫÍDL·é) | |
668 | + procedure OpenThreadItem(Thread: TThreadItem; URL: String); | |
657 | 669 | protected |
658 | 670 | procedure CreateParams(var Params: TCreateParams); override; |
659 | 671 | procedure WndProc(var Message: TMessage); override; |
@@ -783,6 +795,7 @@ type | ||
783 | 795 | function WebBrowserClick(Sender: TObject): WordBool; |
784 | 796 | //! c[o[ÉXiÝR{{bNXðÝè·é |
785 | 797 | procedure SetSelectComboBox(); |
798 | + | |
786 | 799 | published |
787 | 800 | property EnabledCloseButton: Boolean read FEnabledCloseButton write SetEnabledCloseButton; |
788 | 801 | end; |
@@ -820,7 +833,8 @@ uses | ||
820 | 833 | FavoriteArrange, AddressHistory, Preview, Gesture, |
821 | 834 | About, Option, Round, Splash, Sort, ListSelect, Imm, |
822 | 835 | NewBoard, MojuUtils, Clipbrd, GikoBayesian,Y_TextConverter, |
823 | - HTMLCreate, ListViewUtils, GikoDataModule, GikoMessage; | |
836 | + HTMLCreate, ListViewUtils, GikoDataModule, GikoMessage, | |
837 | + InputAssistDataModule; | |
824 | 838 | |
825 | 839 | const |
826 | 840 | BLANK_HTML: string = 'about:blank'; |
@@ -869,12 +883,18 @@ begin | ||
869 | 883 | Writeln(' I¹ÍAMRirEBhEð¶ľ³¢'); |
870 | 884 | Writeln('============================================================'); |
871 | 885 | {$ENDIF} |
886 | +//try | |
887 | + Sort.SetSortDate(Now()); | |
888 | + | |
872 | 889 | FTreeType := gttNone; |
873 | 890 | // N®ÉÛ¶³êĵܤÎô |
874 | 891 | FStartUp := true; |
875 | 892 | Application.HookMainWindow(Hook); |
876 | 893 | FIsIgnoreResize := rtResizing; |
877 | - | |
894 | + //ActionListÌGuoupIndexðÛ¶µÄA0ÉNA·éB | |
895 | + //(N®Éc[{^ÌDownvpeBð½f³¹ésãGroupIndexÍÝèÅ«È¢) | |
896 | + //±êÈãSet`ÅÄÝè·éÜÅAActionÌCheckedð¢¶éÆ«ÍÓI | |
897 | + GetGroupIndex(GikoDM.GikoFormActionList); | |
878 | 898 | FSearchDialog := nil; |
879 | 899 | CreateBrowsers(BROWSER_COUNT); |
880 | 900 |
@@ -944,6 +964,59 @@ begin | ||
944 | 964 | //ViewNoButton.Down := GikoSys.Setting.ListViewNo; |
945 | 965 | GikoDM.ListNumberVisibleAction.Checked := GikoSys.Setting.ListViewNo; |
946 | 966 | |
967 | + //~ [gÌóÔðÝè | |
968 | + GikoDM.MuteAction.Checked := GikoSys.Setting.Mute; | |
969 | + | |
970 | + // X\¦ÍÍ | |
971 | + FResRangeMenuSelect := GikoSys.ResRange; | |
972 | + case GikoSys.ResRange of | |
973 | + Ord( grrAll ): | |
974 | + begin | |
975 | + GikoDM.AllResAction.Execute; | |
976 | + end; | |
977 | + Ord( grrSelect ): | |
978 | + begin | |
979 | + SelectComboBox.Text := SelectComboBox.Items[ 1 ]; | |
980 | + GikoDM.SelectResAction.Checked := True; | |
981 | + end; | |
982 | + else | |
983 | + case FResRangeMenuSelect of | |
984 | + Ord( grrKoko ): GikoDM.OnlyKokoResAction.Checked := True; | |
985 | + Ord( grrNew ): GikoDM.OnlyNewResAction.Checked := True; | |
986 | + 100: GikoDM.OnlyAHundredResAction.Checked := True; | |
987 | + end; | |
988 | + end; | |
989 | + | |
990 | + // Xbhê\¦ÍÍ | |
991 | + case GikoSys.Setting.ThreadRange of | |
992 | + gtrAll: | |
993 | + begin | |
994 | + GikoDM.AllItemAction.Checked := True; | |
995 | + ViewType := gvtAll; | |
996 | + end; | |
997 | + gtrLog: | |
998 | + begin | |
999 | + GikoDM.LogItemAction.Checked := True; | |
1000 | + ViewType := gvtLog; | |
1001 | + end; | |
1002 | + gtrNew: | |
1003 | + begin | |
1004 | + GikoDM.NewItemAction.Checked := True; | |
1005 | + ViewType := gvtNew; | |
1006 | + end; | |
1007 | + gtrLive: | |
1008 | + begin | |
1009 | + GikoDM.LiveItemAction.Checked := True; | |
1010 | + ViewType := gvtLive; | |
1011 | + end; | |
1012 | + gtrArch: | |
1013 | + begin | |
1014 | + GikoDM.ArchiveItemAction.Checked := True; | |
1015 | + ViewType := gvtArch; | |
1016 | + end; | |
1017 | + end; | |
1018 | + | |
1019 | + | |
947 | 1020 | //uEU^utHg |
948 | 1021 | BrowserTab.Font.Name := GikoSys.Setting.BrowserTabFontName; |
949 | 1022 | BrowserTab.Font.Size := GikoSys.Setting.BrowserTabFontSize; |
@@ -952,9 +1025,27 @@ begin | ||
952 | 1025 | BrowserTab.Font.Style := [fsBold]; |
953 | 1026 | if GikoSys.Setting.BrowserTabFontItalic then |
954 | 1027 | BrowserTab.Font.Style := GikoForm.BrowserTab.Font.Style + [fsItalic]; |
1028 | + BrowserTab.DoubleBuffered := True; | |
955 | 1029 | FDragWFirst := false; |
956 | 1030 | SetContent(BrowserNullTab); //uEUðó\¦ |
957 | 1031 | |
1032 | + //uEU^u | |
1033 | + GikoDM.BrowserTabVisibleAction.Checked := GikoSys.Setting.BrowserTabVisible; | |
1034 | + | |
1035 | + if GikoSys.Setting.BrowserTabPosition = gtpTop then begin | |
1036 | + GikoDM.BrowserTabTopAction.Checked := True; | |
1037 | + end else begin | |
1038 | + GikoDM.BrowserTabBottomAction.Checked := True; | |
1039 | + end; | |
1040 | + | |
1041 | + if GikoSys.Setting.BrowserTabStyle = gtsTab then begin | |
1042 | + GikoDM.BrowserTabTabStyleAction.Checked := True; | |
1043 | + end else if GikoSys.Setting.BrowserTabStyle = gtsButton then begin | |
1044 | + GikoDM.BrowserTabButtonStyleAction.Checked := True; | |
1045 | + end else begin | |
1046 | + GikoDM.BrowserTabFlatStyleAction.Checked := True; | |
1047 | + end; | |
1048 | + | |
958 | 1049 | //vOXo[Ìú» |
959 | 1050 | ProgressBar.Parent := StatusBar; |
960 | 1051 | ProgressBar.Top := 2; |
@@ -968,10 +1059,14 @@ begin | ||
968 | 1059 | |
969 | 1060 | // {[ht@Cñ(ReadFavorite æèæÉs¤±Æ) |
970 | 1061 | GikoSys.ListBoardFile; |
971 | - | |
1062 | + //@A±N®ÉXvbV EBhE̪sèÉ | |
1063 | + try | |
972 | 1064 | // XvbV EBhEÌvOXo[ÌÝè |
973 | - SplashWindow.ProgressBar.Max := Length(BBSs) * 20; | |
974 | - | |
1065 | + if (SplashWindow <> nil) then begin | |
1066 | + SplashWindow.ProgressBar.Max := Length(BBSs) * 20; | |
1067 | + end; | |
1068 | + except | |
1069 | + end; | |
975 | 1070 | // ·×ÄÌBBSðÇÝñŨ |
976 | 1071 | for i := Length(BBSs) - 1 downto 0 do begin |
977 | 1072 | if not BBSs[i].IsBoardFileRead then |
@@ -982,6 +1077,7 @@ begin | ||
982 | 1077 | SplashWindow.Update; |
983 | 1078 | end; |
984 | 1079 | end; |
1080 | + | |
985 | 1081 | //ñf[^ÇÝÝ |
986 | 1082 | RoundList := TRoundList.Create; |
987 | 1083 | RoundList.LoadRoundBoardFile; |
@@ -1200,7 +1296,8 @@ begin | ||
1200 | 1296 | FavoriteAddToolButton.Caption := 'ÇÁ...'; |
1201 | 1297 | AntiIndivAbonMenuItem.Caption := 'ÂÊ Ú`ñð'; |
1202 | 1298 | |
1203 | - | |
1299 | + //üÍAVXg@\Ìú» | |
1300 | + InputAssistDM.Init(GikoSys.GetInputAssistFileName); | |
1204 | 1301 | end; |
1205 | 1302 | |
1206 | 1303 | // CoolBar ÌÝèðÏÉÛ¶ |
@@ -1341,51 +1438,20 @@ begin | ||
1341 | 1438 | GikoDM.BrowserNameBarVisibleAction.Checked := GikoSys.Setting.BrowserNameBarVisible; |
1342 | 1439 | GikoDM.BrowserNameBarVisibleActionExecute( nil ); |
1343 | 1440 | |
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 | 1441 | // CoolBar ³ |
1371 | 1442 | LoadCoolBarSettings; |
1372 | 1443 | |
1373 | 1444 | //dv@±êªÈ¢Æc[{^ÌXVª¨©µÈé |
1374 | 1445 | // ResetBandInfo( ListCoolBar, ListToolBar ); |
1375 | 1446 | FIsIgnoreResize := rtNone; |
1376 | - //c[o[ÌXVðI¦½ãÉâçȢƢ¯È¢Ì©à | |
1377 | - //ANVÌ`FbNóÔðú» | |
1378 | - InitActionChecked(); | |
1379 | 1447 | |
1380 | 1448 | //FormCrete©çÚ®B |
1381 | 1449 | if GikoSys.Setting.TabAutoLoadSave then begin |
1382 | 1450 | GikoDM.TabAutoLoadAction.Execute; |
1383 | 1451 | end; |
1384 | - //É¿áñêÄàT|[g@\ | |
1385 | - if GikoSys.Setting.GengoSupport then begin | |
1386 | - //\èn | |
1387 | - //Testü¯ | |
1388 | - end; | |
1452 | + | |
1453 | + //ActionListÌGroupIndexð³Éß· | |
1454 | + SetGroupIndex(GikoDM.GikoFormActionList); | |
1389 | 1455 | |
1390 | 1456 | FStartUp := false; |
1391 | 1457 | end; |
@@ -1474,6 +1540,8 @@ begin | ||
1474 | 1540 | // CoolBar Û¶ |
1475 | 1541 | //if (GikoForm.WindowState <> wsMinimized) and (GikoForm.WindowState <> wsMaximized) then |
1476 | 1542 | |
1543 | + //üÍAVXg@\ÌÝèÌÛ¶ | |
1544 | + InputAssistDM.SaveToFile(GikoSys.GetInputAssistFileName); | |
1477 | 1545 | |
1478 | 1546 | //¨CÉüèÛ¶ |
1479 | 1547 | try |
@@ -2225,7 +2293,6 @@ var | ||
2225 | 2293 | s: string; |
2226 | 2294 | boardPlugIn : TBoardPlugIn; |
2227 | 2295 | i: Integer; |
2228 | - browserRec : TBrowserRecord; | |
2229 | 2296 | Res : TResRec; |
2230 | 2297 | begin |
2231 | 2298 | try |
@@ -2249,6 +2316,7 @@ begin | ||
2249 | 2316 | GikoSys.Setting.BoardSortIndex := 0; |
2250 | 2317 | GikoSys.Setting.BoardSortOrder := True; |
2251 | 2318 | end; |
2319 | + Sort.SetSortDate(Now()); | |
2252 | 2320 | SetActiveList(Item.Board); |
2253 | 2321 | end; |
2254 | 2322 | Item.Board.Modified := True; |
@@ -2277,15 +2345,12 @@ begin | ||
2277 | 2345 | end; |
2278 | 2346 | if GikoSys.Setting.BrowserTabVisible then begin |
2279 | 2347 | if GetActiveContent = Item.ThreadItem then |
2280 | - browserRec := InsertBrowserTab(Item.ThreadItem) | |
2348 | + InsertBrowserTab(Item.ThreadItem) | |
2281 | 2349 | else if (ListView.Selected <> nil ) and ( TObject(ListView.Selected.Data) is TThreadItem ) and ( Item.ThreadItem = TThreadItem(ListView.Selected.Data)) then |
2282 | - browserRec := InsertBrowserTab(Item.ThreadItem, True) | |
2350 | + InsertBrowserTab(Item.ThreadItem, True) | |
2283 | 2351 | else |
2284 | - browserRec := InsertBrowserTab(Item.ThreadItem, False); | |
2285 | - if browserRec.Thread = BrowserNullTab.Thread then begin | |
2286 | - browserRec.Movement := BrowserNullTab.Movement; | |
2287 | - BrowserNullTab.Movement := ''; | |
2288 | - end; | |
2352 | + InsertBrowserTab(Item.ThreadItem, False); | |
2353 | + | |
2289 | 2354 | end else begin |
2290 | 2355 | if (GetActiveContent = Item.ThreadItem) or (FActiveContent = nil) or(FActiveContent.Browser = BrowserNullTab.Browser) then |
2291 | 2356 | InsertBrowserTab(Item.ThreadItem); |
@@ -2322,6 +2387,8 @@ begin | ||
2322 | 2387 | gvtAll: ListView.Items.Count := TBoard(ActiveList).Count; |
2323 | 2388 | gvtLog: ListView.Items.Count := TBoard(ActiveList).LogThreadCount; |
2324 | 2389 | gvtNew: ListView.Items.Count := TBoard(ActiveList).NewThreadCount; |
2390 | + gvtArch: ListView.Items.Count := TBoard(ActiveList).ArchiveThreadCount; | |
2391 | + gvtLive: ListView.Items.Count := TBoard(ActiveList).LiveThreadCount; | |
2325 | 2392 | gvtUser: ListView.Items.Count := TBoard(ActiveList).UserThreadCount; |
2326 | 2393 | end; |
2327 | 2394 | end; |
@@ -2524,9 +2591,9 @@ begin | ||
2524 | 2591 | BrowserNullTab := TBrowserRecord.Create; |
2525 | 2592 | BrowserNullTab.Browser := Browser; |
2526 | 2593 | end; |
2527 | - if BrowserNullTab.thread <> ThreadItem then begin | |
2528 | - BrowserNullTab.Movement := ''; | |
2529 | - end; | |
2594 | +// if BrowserNullTab.thread <> ThreadItem then begin | |
2595 | +// BrowserNullTab.Movement := ''; | |
2596 | +// end; | |
2530 | 2597 | BrowserNullTab.thread := ThreadItem; |
2531 | 2598 | Result := BrowserNullTab; |
2532 | 2599 | BrowserTab.TabIndex := -1; |
@@ -2543,7 +2610,7 @@ var | ||
2543 | 2610 | BBSID: string; |
2544 | 2611 | FileName: string; |
2545 | 2612 | sTitle: string; |
2546 | - doc: Variant; | |
2613 | + doc: Variant; | |
2547 | 2614 | s: string; |
2548 | 2615 | i: Integer; |
2549 | 2616 | idx: Integer; |
@@ -2560,7 +2627,6 @@ begin | ||
2560 | 2627 | (Assigned(FActiveContent.Browser.Document)) then begin |
2561 | 2628 | try |
2562 | 2629 | try |
2563 | - Sleep(1); | |
2564 | 2630 | FActiveContent.Thread.ScrollTop := OleVariant(IHTMLDocument2(FActiveContent.Browser.Document).Body).ScrollTop; |
2565 | 2631 | except |
2566 | 2632 | on E: Exception do |
@@ -2618,7 +2684,6 @@ begin | ||
2618 | 2684 | if (not Assigned(Thread.Browser.Document)) then begin |
2619 | 2685 | Thread.Browser.Navigate('about:blank'); |
2620 | 2686 | end; |
2621 | - | |
2622 | 2687 | while (Thread.Browser.ReadyState <> READYSTATE_COMPLETE) and |
2623 | 2688 | (Thread.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin |
2624 | 2689 | Application.ProcessMessages; |
@@ -2627,14 +2692,32 @@ begin | ||
2627 | 2692 | end; |
2628 | 2693 | end; |
2629 | 2694 | |
2695 | + if (Thread <> nil) and (ThreadItem <>nil) then begin | |
2696 | + BrowserBoardNameLabel.Caption := ThreadPTitle; | |
2697 | + ItemIcon16.GetBitmap(4, ItemBoardImage.Picture.Bitmap); | |
2698 | + BrowserNameLabel.Caption := ThreadTitle; | |
2699 | + ItemImage.Picture := nil; | |
2700 | + if ThreadIsLog then | |
2701 | + if ThreadNewArraical then | |
2702 | + ItemImageList.GetBitmap(2, ItemImage.Picture.Bitmap) | |
2703 | + else | |
2704 | + ItemImageList.GetBitmap(0, ItemImage.Picture.Bitmap) | |
2705 | + else | |
2706 | + ItemImageList.GetBitmap(1, ItemImage.Picture.Bitmap); | |
2707 | + | |
2708 | + ItemImage.Left := BrowserBoardNameLabel.Left + BrowserBoardNameLabel.Width + 8; | |
2709 | + BrowserNameLabel.Left := ItemImage.Left + 20; | |
2710 | + | |
2711 | + end; | |
2630 | 2712 | //ActiveContent@ÌXV |
2631 | 2713 | FActiveContent := Thread; |
2632 | 2714 | |
2633 | 2715 | if not ThreadIsLog then begin |
2634 | 2716 | Self.Caption := GikoDataModule.CAPTION_NAME ; |
2635 | - //Xe[^Xo[É\¦µÄ¢éXÌeÊðÁ | |
2717 | + //Xe[^Xo[É\¦µÄ¢éXÌeÊðÁ | |
2636 | 2718 | StatusBar.Panels[THREADSIZE_PANEL].Text := ''; |
2637 | 2719 | try |
2720 | + Thread.Browser.BringToFront; | |
2638 | 2721 | s := '<HTML><BODY><CENTER>±ÌXbhÍ澵Ģܹñ</CENTER></BODY></HTML>'; |
2639 | 2722 | doc := Idispatch( olevariant(Thread.Browser.ControlInterface).Document) as IHTMLDocument2; |
2640 | 2723 | doc.open; |
@@ -2642,10 +2725,11 @@ begin | ||
2642 | 2725 | doc.Write(s); |
2643 | 2726 | doc.Close; |
2644 | 2727 | finally |
2728 | + | |
2645 | 2729 | end; |
2646 | 2730 | end else begin |
2647 | 2731 | Self.Caption := GikoDataModule.CAPTION_NAME + ' - [' + ThreadTitle + ']'; |
2648 | - //Xe[^Xo[É\¦µÄ¢éXÌeÊð\¦ | |
2732 | + //Xe[^Xo[É\¦µÄ¢éXÌeÊð\¦ | |
2649 | 2733 | StatusBar.Panels[THREADSIZE_PANEL].Text := Format('%6.2f kB', [ThreadItem.Size / 1024]); |
2650 | 2734 | StatusBar.Panels[THREADSIZE_PANEL].Width := |
2651 | 2735 | Max(StatusBar.Canvas.TextWidth(StatusBar.Panels[THREADSIZE_PANEL].Text), 70); |
@@ -2655,42 +2739,28 @@ begin | ||
2655 | 2739 | Thread.Repaint := false; |
2656 | 2740 | |
2657 | 2741 | Thread.Browser.OnStatusTextChange := nil; |
2658 | - doc := Idispatch( olevariant(Thread.Browser.ControlInterface).Document) as IHTMLDocument2; | |
2659 | - | |
2660 | - //GikoSys.CreateHTML2(doc, ThreadItem, sTitle); | |
2661 | - HTMLCreater.CreateHTML2(doc, ThreadItem, sTitle); | |
2662 | - Thread.Browser.OnStatusTextChange := BrowserStatusTextChange; | |
2663 | - | |
2664 | - if ThreadItem = nil then begin | |
2665 | - FActiveContent := nil; | |
2666 | - BrowserTab.Repaint; | |
2667 | - Exit; | |
2742 | + LockWindowUpdate(Thread.Browser.ParentWindow); | |
2743 | + HTMLCreater.CreateHTML2( | |
2744 | + Idispatch( olevariant(Thread.Browser.ControlInterface).Document), | |
2745 | + ThreadItem, sTitle); | |
2746 | + | |
2747 | + // gªÇÝIíéÌðÒ | |
2748 | + while ( (((Thread.Browser.Document as IHTMLDocument2).body as IHTMLElement).document | |
2749 | + as IHTMLDocument2).readyState <> 'complete' ) do begin | |
2750 | + Sleep(1); | |
2751 | + Application.ProcessMessages; | |
2668 | 2752 | end; |
2669 | - PostMessage( Handle, USER_DOCUMENTCOMPLETE, Integer( Thread.Browser ), 0 ); | |
2753 | + Thread.Browser.OnStatusTextChange := BrowserStatusTextChange; | |
2670 | 2754 | end; |
2671 | 2755 | end; |
2672 | - if (Thread <> nil) and (ThreadItem <>nil) then begin | |
2673 | - BrowserBoardNameLabel.Caption := ThreadPTitle; | |
2674 | - ItemIcon16.GetBitmap(4, ItemBoardImage.Picture.Bitmap); | |
2675 | - BrowserNameLabel.Caption := ThreadTitle; | |
2676 | - ItemImage.Picture := nil; | |
2677 | - if ThreadIsLog then | |
2678 | - if ThreadNewArraical then | |
2679 | - ItemImageList.GetBitmap(2, ItemImage.Picture.Bitmap) | |
2680 | - else | |
2681 | - ItemImageList.GetBitmap(0, ItemImage.Picture.Bitmap) | |
2682 | - else | |
2683 | - ItemImageList.GetBitmap(1, ItemImage.Picture.Bitmap); | |
2684 | 2756 | |
2685 | - ItemImage.Left := BrowserBoardNameLabel.Left + BrowserBoardNameLabel.Width + 8; | |
2686 | - BrowserNameLabel.Left := ItemImage.Left + 20; | |
2687 | 2757 | |
2688 | - //ThreadÌÂÆ\¦µÄ¢éª¯¶Èç`æðXV·é | |
2689 | - if (FActiveList is TBoard) and (TBoard(ActiveList) = ThreadItem.ParentBoard) then | |
2690 | - ListView.Refresh; | |
2691 | - end else begin | |
2692 | - FActiveContent := nil; | |
2758 | + | |
2759 | + //ThreadÌÂÆ\¦µÄ¢éª¯¶Èç`æðXV·é | |
2760 | + if (FActiveList is TBoard) and (TBoard(ActiveList) = ThreadItem.ParentBoard) then begin | |
2761 | + ListView.Refresh; | |
2693 | 2762 | end; |
2763 | + | |
2694 | 2764 | finally |
2695 | 2765 | Screen.Cursor := crDefault; |
2696 | 2766 | end; |
@@ -2797,7 +2867,10 @@ begin | ||
2797 | 2867 | //gvtAll: ListView.Items.Count := Board.Count; |
2798 | 2868 | gvtLog: Board.LogThreadCount := Board.GetLogThreadCount; |
2799 | 2869 | gvtNew: Board.NewThreadCount := Board.GetNewThreadCount; |
2870 | + gvtArch: Board.ArchiveThreadCount := Board.GetArchiveThreadCount; | |
2871 | + gvtLive: Board.LiveThreadCount := Board.GetLiveThreadCount; | |
2800 | 2872 | gvtUser: Board.UserThreadCount:= Board.GetUserThreadCount; |
2873 | + | |
2801 | 2874 | end; |
2802 | 2875 | |
2803 | 2876 | SetActiveList(Board); |
@@ -2829,6 +2902,14 @@ begin | ||
2829 | 2902 | ListView.Canvas.Font.Color := clGreen; |
2830 | 2903 | s := '±Ìr [ÉÍV ACeª èܹñB'; |
2831 | 2904 | end; |
2905 | + gvtArch: begin | |
2906 | + ListView.Canvas.Font.Color := clFuchsia; | |
2907 | + s := '±Ìr [ÉÍDAT¿ACeª èܹñB'; | |
2908 | + end; | |
2909 | + gvtLive: begin | |
2910 | + ListView.Canvas.Font.Color := clMaroon; | |
2911 | + s := '±Ìr [ÉͶ¶ACeª èܹñB'; | |
2912 | + end; | |
2832 | 2913 | gvtUser: begin |
2833 | 2914 | ListView.Canvas.Font.Color := clNavy; |
2834 | 2915 | s := '±Ìr [ÉÍ^Cgªu%svðÜÞACeª èܹñB'; |
@@ -3037,7 +3118,7 @@ begin | ||
3037 | 3118 | // title Í¡ÌƱëgÁĢȢ |
3038 | 3119 | saveList.Add( |
3039 | 3120 | '<history url="' + HtmlEncode( TFavoriteThreadItem( FHistoryList[ i ] ).URL ) + '"' + |
3040 | - ' title="' + HtmlEncode( TFavoriteThreadItem( FHistoryList[ i ] ).Title ) + '"/>'); | |
3121 | + ' title="' + HtmlEncode( MojuUtils.Sanitize(TFavoriteThreadItem( FHistoryList[ i ] ).Title )) + '"/>'); | |
3041 | 3122 | end; |
3042 | 3123 | saveList.Add('</address>'); |
3043 | 3124 | saveList.SaveToFile( GikoSys.GetConfigDir + 'History.xml' ); |
@@ -3056,15 +3137,21 @@ var | ||
3056 | 3137 | HistoryNode : IXMLNode; |
3057 | 3138 | s : string; |
3058 | 3139 | favItem : TFavoriteThreadItem; |
3140 | +{$IFDEF DEBUG} | |
3141 | + st, rt : Cardinal; | |
3142 | +{$ENDIF} | |
3059 | 3143 | begin |
3144 | +{$IFDEF DEBUG} | |
3145 | + st := GetTickCount; | |
3146 | +{$ENDIF} | |
3060 | 3147 | |
3061 | 3148 | fileName := GikoSys.GetConfigDir + 'History.xml'; |
3062 | 3149 | |
3063 | 3150 | if FileExists( fileName ) then begin |
3064 | 3151 | try |
3065 | - XMLDoc := IXMLDocument.Create; | |
3152 | + XMLDoc := IXMLDocument.Create; | |
3066 | 3153 | //XMLDoc := LoadXMLDocument(FileName); |
3067 | - LoadXMLDocument(FileName, XMLDoc); | |
3154 | + LoadXMLDocument(FileName, XMLDoc); | |
3068 | 3155 | try |
3069 | 3156 | XMLNode := XMLDoc.DocumentElement; |
3070 | 3157 |
@@ -3077,9 +3164,9 @@ begin | ||
3077 | 3164 | s := Trim(HistoryNode.Attributes['url']); |
3078 | 3165 | if s <> '' then begin |
3079 | 3166 | favItem := TFavoriteThreadItem.Create( |
3080 | - s, HistoryNode.Attributes[ 'title' ] ); | |
3167 | + s, MojuUtils.UnSanitize(HistoryNode.Attributes[ 'title' ]) ); | |
3081 | 3168 | if not AddHistory( favItem ) then |
3082 | - favItem.Free; | |
3169 | + favItem.Free; | |
3083 | 3170 | end; |
3084 | 3171 | //end; |
3085 | 3172 | end; |
@@ -3091,6 +3178,10 @@ begin | ||
3091 | 3178 | except |
3092 | 3179 | end; |
3093 | 3180 | end; |
3181 | +{$IFDEF DEBUG} | |
3182 | + rt := GetTickCount - st; | |
3183 | + Writeln('Runtime(Load Histroy) : ' + IntToStr(rt) + ' ms'); | |
3184 | +{$ENDIF} | |
3094 | 3185 | |
3095 | 3186 | end; |
3096 | 3187 |
@@ -3338,7 +3429,6 @@ begin | ||
3338 | 3429 | end else begin |
3339 | 3430 | if Item <> FActiveList then begin |
3340 | 3431 | ActiveListColumnSave; |
3341 | - | |
3342 | 3432 | if (Item is TBBS) or (Item is TCategory) then begin |
3343 | 3433 | ListView.Columns.Clear; |
3344 | 3434 | SetActiveList( Item ); |
@@ -3352,6 +3442,7 @@ begin | ||
3352 | 3442 | Screen.Cursor := crDefault; |
3353 | 3443 | end; |
3354 | 3444 | end; |
3445 | + Sort.SetSortDate(Now()); | |
3355 | 3446 | SetActiveList( Item ); |
3356 | 3447 | end; |
3357 | 3448 | end; |
@@ -3560,7 +3651,6 @@ begin | ||
3560 | 3651 | FTabHintIndex := -1; |
3561 | 3652 | for i := 0 to BrowserTab.Tabs.Count - 1 do begin |
3562 | 3653 | if TBrowserRecord(BrowserTab.Tabs.Objects[i]) = BrowserRecord then begin |
3563 | - BrowserTab.Tabs.BeginUpdate; | |
3564 | 3654 | try |
3565 | 3655 | if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser <> nil then begin |
3566 | 3656 | doc := TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser.Document; |
@@ -3576,15 +3666,25 @@ begin | ||
3576 | 3666 | if j <> -1 then |
3577 | 3667 | FBrowsers.Move(j, BROWSER_COUNT - 1); |
3578 | 3668 | 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; | |
3669 | + BrowserTab.Tabs.BeginUpdate; | |
3670 | + try | |
3671 | + TBrowserRecord(BrowserTab.Tabs.Objects[i]).Free; | |
3672 | + if ( BrowserTab.Tabs.Count - 1 = i ) and | |
3673 | + ( BrowserTab.TabRect(i).Left | |
3674 | + <= BrowserTab.DisplayRect.Left ) then begin | |
3675 | + BrowserTab.ScrollTabs(-1); | |
3676 | + end; | |
3677 | + BrowserTab.Tabs.Delete(i); | |
3678 | + if idx > i then begin | |
3679 | + BrowserTab.TabIndex := idx - 1; | |
3680 | + end else begin | |
3681 | + if BrowserTab.Tabs.Count -1 >= idx then | |
3682 | + BrowserTab.TabIndex := idx | |
3683 | + else | |
3684 | + BrowserTab.TabIndex := BrowserTab.Tabs.Count - 1; | |
3685 | + end; | |
3686 | + finally | |
3687 | + BrowserTab.Tabs.EndUpdate; | |
3588 | 3688 | end; |
3589 | 3689 | if BrowserTab.Tabs.Count = 0 then begin |
3590 | 3690 | BrowserNullTab.Thread := nil; |
@@ -3604,7 +3704,6 @@ begin | ||
3604 | 3704 | TBrowserRecord(BrowserTab.Tabs.Objects[BrowserTab.TabIndex]).Repaint := true; |
3605 | 3705 | FBrowsers.Move(BROWSER_COUNT - 1, 0); |
3606 | 3706 | end; |
3607 | - BrowserTab.Tabs.EndUpdate; | |
3608 | 3707 | if( FActiveContent = nil) then |
3609 | 3708 | BrowserTab.OnChange(nil); |
3610 | 3709 | Exit; |
@@ -3620,7 +3719,6 @@ begin | ||
3620 | 3719 | FTabHintIndex := -1; |
3621 | 3720 | for i := 0 to BrowserTab.Tabs.Count - 1 do begin |
3622 | 3721 | if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread = ThreadItem then begin |
3623 | - BrowserTab.Tabs.BeginUpdate; | |
3624 | 3722 | try |
3625 | 3723 | if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser <> nil then begin |
3626 | 3724 | doc := TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser.Document; |
@@ -3637,15 +3735,25 @@ begin | ||
3637 | 3735 | if j <> -1 then |
3638 | 3736 | FBrowsers.Move(j, BROWSER_COUNT - 1); |
3639 | 3737 | 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; | |
3738 | + BrowserTab.Tabs.BeginUpdate; | |
3739 | + try | |
3740 | + TBrowserRecord(BrowserTab.Tabs.Objects[i]).Free; | |
3741 | + if ( BrowserTab.Tabs.Count - 1 = i ) and | |
3742 | + ( BrowserTab.TabRect(i).Left | |
3743 | + <= BrowserTab.DisplayRect.Left ) then begin | |
3744 | + BrowserTab.ScrollTabs(-1); | |
3745 | + end; | |
3746 | + BrowserTab.Tabs.Delete(i); | |
3747 | + if idx > i then begin | |
3748 | + BrowserTab.TabIndex := idx - 1; | |
3749 | + end else begin | |
3750 | + if BrowserTab.Tabs.Count -1 >= idx then | |
3751 | + BrowserTab.TabIndex := idx | |
3752 | + else | |
3753 | + BrowserTab.TabIndex := BrowserTab.Tabs.Count - 1; | |
3754 | + end; | |
3755 | + finally | |
3756 | + BrowserTab.Tabs.EndUpdate; | |
3649 | 3757 | end; |
3650 | 3758 | if(BrowserTab.TabIndex <> -1) and |
3651 | 3759 | ( TBrowserRecord(BrowserTab.Tabs.Objects[BrowserTab.TabIndex]).Browser = nil) then begin |
@@ -3663,7 +3771,6 @@ begin | ||
3663 | 3771 | FBrowsers.Move(BROWSER_COUNT - 1, 0); |
3664 | 3772 | end; |
3665 | 3773 | |
3666 | - BrowserTab.Tabs.EndUpdate; | |
3667 | 3774 | if( FActiveContent = nil) then |
3668 | 3775 | BrowserTab.OnChange(nil); |
3669 | 3776 | Exit; |
@@ -3927,52 +4034,53 @@ var | ||
3927 | 4034 | i, j: Integer; |
3928 | 4035 | idx: Integer; |
3929 | 4036 | begin |
4037 | + BrowserTab.Tabs.BeginUpdate; | |
4038 | + try | |
4039 | + if not BrowserTab.Dragging then begin | |
4040 | + FTabHintIndex := -1; | |
4041 | + BrowserTab.Hint := ''; | |
4042 | + idx := BrowserTab.TabIndex; | |
4043 | + if idx = -1 then begin | |
4044 | + SetContent(BrowserNullTab); | |
4045 | + | |
4046 | + end else if(BrowserTab.Tabs.Objects[idx] <> nil) and (BrowserTab.Tabs.Objects[idx] is TBrowserRecord) then begin | |
4047 | + if TBrowserRecord(BrowserTab.Tabs.Objects[idx]).Browser <> nil then begin | |
4048 | + j := FBrowsers.IndexOf(TBrowserRecord(BrowserTab.Tabs.Objects[idx]).Browser); | |
4049 | + if j <> -1 then | |
4050 | + FBrowsers.Move(j ,0); | |
4051 | + end else begin | |
4052 | + if( FActiveContent <> nil ) and (FActiveContent.Browser <> nil) and | |
4053 | + (FActiveContent.Browser <> BrowserNullTab.Browser) and | |
4054 | + (FActiveContent.Browser = TWebBrowser(FBrowsers[BROWSER_COUNT - 1])) then | |
4055 | + FBrowsers.Move(BROWSER_COUNT - 1, 0); | |
3930 | 4056 | |
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; | |
4057 | + for i := 0 to BrowserTab.Tabs.Count - 1 do begin | |
4058 | + if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser = TWebBrowser(FBrowsers[BROWSER_COUNT - 1]) then begin | |
4059 | + ReleaseBrowser(TBrowserRecord(BrowserTab.Tabs.Objects[i])); | |
4060 | + break; | |
4061 | + end; | |
3953 | 4062 | end; |
4063 | + TBrowserRecord(BrowserTab.Tabs.Objects[idx]).Browser := TWebBrowser(FBrowsers[BROWSER_COUNT - 1]); | |
4064 | + TBrowserRecord(BrowserTab.Tabs.Objects[idx]).Repaint := true; | |
4065 | + FBrowsers.Move(BROWSER_COUNT - 1, 0); | |
3954 | 4066 | 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; | |
4067 | + MoveWindow(TBrowserRecord(BrowserTab.Tabs.Objects[idx]).Browser.Handle, 0, 0, BrowserPanel.Width, BrowserPanel.Height, false); | |
4068 | + TOleControl(TBrowserRecord(BrowserTab.Tabs.Objects[idx]).Browser).BringToFront; | |
4069 | + SetContent(TBrowserRecord(BrowserTab.Tabs.Objects[idx])); | |
3965 | 4070 | |
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; | |
4071 | + if (GikoSys.Setting.URLDisplay) and (GetActiveContent <> nil) then | |
4072 | + AddressComboBox.Text := GetActiveContent.URL; | |
3971 | 4073 | |
4074 | + if ((TreeView.Visible) and (TreeView.Focused)) or ((FavoriteTreeView.Visible) and (FavoriteTreeView.Focused)) or | |
4075 | + (ListView.Focused) or (SelectComboBox.Focused) or (AddressComboBox.Focused) | |
4076 | + then | |
4077 | + else | |
4078 | + GikoDM.SetFocusForBrowserAction.Execute; | |
4079 | + end; | |
3972 | 4080 | end; |
3973 | - | |
4081 | + finally | |
4082 | + BrowserTab.Tabs.EndUpdate; | |
3974 | 4083 | end; |
3975 | - | |
3976 | 4084 | end; |
3977 | 4085 | |
3978 | 4086 |
@@ -4001,54 +4109,51 @@ end; | ||
4001 | 4109 | |
4002 | 4110 | procedure TGikoForm.SetBrowserTabState; |
4003 | 4111 | var |
4004 | -// i: Integer; | |
4005 | 4112 | CoolBand: TCoolBand; |
4006 | 4113 | begin |
4007 | 4114 | BrowserBottomPanel.AutoSize := False; |
4008 | 4115 | 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; | |
4116 | + BrowserTab.Hide; | |
4117 | + BrowserTab.Tabs.BeginUpdate; | |
4118 | + try | |
4119 | + if GikoSys.Setting.BrowserTabStyle = gtsTab then begin | |
4120 | + BrowserTab.Style := tsTabs; | |
4121 | + if GikoSys.Setting.BrowserTabPosition = gtpTop then | |
4122 | + BrowserTab.TabPosition := tpTop | |
4123 | + else | |
4124 | + BrowserTab.TabPosition := tpBottom; | |
4125 | + end else if GikoSys.Setting.BrowserTabStyle = gtsButton then begin | |
4126 | + BrowserTab.TabPosition := tpTop; | |
4127 | + BrowserTab.Style := tsButtons; | |
4128 | + end else begin | |
4129 | + BrowserTab.TabPosition := tpTop; | |
4130 | + BrowserTab.Style := tsFlatButtons | |
4131 | + end; | |
4033 | 4132 | |
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; | |
4133 | + if GikoSys.Setting.BrowserTabPosition = gtpTop then begin | |
4134 | + BrowserTab.Parent := BrowserTabToolBar; | |
4135 | + BrowserBottomPanel.Hide; | |
4136 | + CoolBand := GetCoolBand(BrowserCoolBar, BrowserTabToolBar); | |
4137 | + if CoolBand <> nil then | |
4138 | + CoolBand.Visible := True; | |
4139 | + end else begin | |
4140 | + BrowserTab.Parent := BrowserBottomPanel; | |
4141 | + BrowserTab.Top := 0; | |
4142 | + BrowserTab.Left := 0; | |
4143 | + BrowserBottomPanel.Show; | |
4144 | + CoolBand := GetCoolBand(BrowserCoolBar, BrowserTabToolBar); | |
4145 | + if CoolBand <> nil then | |
4146 | + CoolBand.Visible := False; | |
4147 | + end; | |
4148 | + finally | |
4149 | + BrowserTab.Tabs.EndUpdate; | |
4150 | + BrowserTab.Show; | |
4151 | + end; | |
4045 | 4152 | end else begin |
4046 | 4153 | CoolBand := GetCoolBand(BrowserCoolBar, BrowserTabToolBar); |
4047 | 4154 | if CoolBand <> nil then |
4048 | 4155 | CoolBand.Visible := False; |
4049 | 4156 | BrowserBottomPanel.Visible := False; |
4050 | -// BrowserTab.Visible := False; | |
4051 | -// BrowserTopPanel.Height := 26; | |
4052 | 4157 | GikoDM.AllTabCloseAction.Execute; |
4053 | 4158 | end; |
4054 | 4159 | end; |
@@ -4118,7 +4223,6 @@ var | ||
4118 | 4223 | doc : Variant; |
4119 | 4224 | threadItem : TThreadItem; |
4120 | 4225 | begin |
4121 | -// AddMessageList('DocumentComplete', nil, gmiWhat); | |
4122 | 4226 | if TObject(Sender) is TWebBrowser then begin |
4123 | 4227 | BrowserRecord := nil; |
4124 | 4228 | if TWebBrowser(Sender) <> Browser then begin |
@@ -4150,23 +4254,25 @@ begin | ||
4150 | 4254 | FEvent := nil; |
4151 | 4255 | end; |
4152 | 4256 | end; |
4153 | - | |
4257 | + | |
4154 | 4258 | end; |
4155 | 4259 | |
4156 | 4260 | if (BrowserRecord <> nil) and |
4157 | 4261 | Assigned( BrowserRecord.Thread ) then begin |
4158 | 4262 | threadItem := BrowserRecord.Thread; |
4159 | 4263 | |
4160 | - if (BrowserRecord <> nil) and (Length( BrowserRecord.Movement ) > 0) then begin | |
4264 | + if (threadItem.JumpAddress > 0) then begin | |
4265 | + //if (BrowserRecord <> nil) and (Length( BrowserRecord.Movement ) > 0) then begin | |
4161 | 4266 | if threadItem.UnRead then begin |
4162 | 4267 | threadItem.UnRead := False; |
4163 | 4268 | TreeView.Refresh; |
4164 | 4269 | ListView.Refresh; |
4165 | 4270 | end; |
4166 | 4271 | // XN[æªæ¾OÌXÌÍI[ÉÚ® |
4167 | - if (StrToIntDef(BrowserRecord.Movement, 0) <= BrowserRecord.Thread.Count) then begin | |
4168 | - BrowserRecord.Move(BrowserRecord.Movement); | |
4169 | - BrowserRecord.Movement := ''; | |
4272 | + //if (StrToIntDef(BrowserRecord.Movement, 0) <= BrowserRecord.Thread.Count) then begin | |
4273 | + if (threadItem.JumpAddress <= BrowserRecord.Thread.Count) then begin | |
4274 | + BrowserRecord.Move(IntToStr(threadItem.JumpAddress)); | |
4275 | + threadItem.JumpAddress := 0; | |
4170 | 4276 | end else begin |
4171 | 4277 | BrowserRecord.Move(IntToStr(BrowserRecord.Thread.Count)); |
4172 | 4278 | end; |
@@ -4187,6 +4293,7 @@ begin | ||
4187 | 4293 | end; |
4188 | 4294 | end; |
4189 | 4295 | end; |
4296 | + LockWindowUpdate(0); | |
4190 | 4297 | end; |
4191 | 4298 | |
4192 | 4299 | procedure TGikoForm.RoundNamePopupMenuPopup(Sender: TObject); |
@@ -4495,6 +4602,48 @@ begin | ||
4495 | 4602 | TopPanel.Height := Max(MainCoolBar.Height, AnimePanel.Height); |
4496 | 4603 | |
4497 | 4604 | end; |
4605 | +//! wè³ê½XbhðJ(Oª³¢Æ« or wèJUMPÜÅ«èȢƫÍDL·é) | |
4606 | +procedure TGikoForm.OpenThreadItem(Thread: TThreadItem; URL: String); | |
4607 | +var | |
4608 | + stRes, edRes : Int64; | |
4609 | + browserRec : TBrowserRecord; | |
4610 | + threadNumber : String; | |
4611 | + doc : Variant; | |
4612 | +begin | |
4613 | + stRes := 0; | |
4614 | + edRes := 0; | |
4615 | + Thread.JumpAddress := 0; | |
4616 | + // ^u𶬠| |
4617 | + browserRec := InsertBrowserTab(Thread); | |
4618 | + if (browserRec <> nil) then begin | |
4619 | + // JUMP·×«XÔª é©`FbN·é | |
4620 | + threadNumber := ChangeFileExt(Thread.FileName, ''); | |
4621 | + GikoSys.GetPopupResNumber( URL, stRes, edRes ); | |
4622 | + // XÌÔðXÔÆëÁÄF¯µÄ¢éÌðNA | |
4623 | + if (StrToInt(threadNumber) = stRes) then begin | |
4624 | + if not (AnsiEndsText(threadNumber + '/' + threadNumber, URL)) | |
4625 | + and (Pos('&st=' + threadNumber , URL) = 0) then begin | |
4626 | + stRes := 0; | |
4627 | + end; | |
4628 | + end; | |
4629 | + if ( stRes > 0 ) then begin | |
4630 | + Thread.JumpAddress := stRes; | |
4631 | + | |
4632 | + // OðÁĢȢ© JUMP·×«XÔÜÅ澵ĢȢƫÍDL·é | |
4633 | + if (not Thread.IsLogFile) or (stRes > Thread.Count) then begin | |
4634 | + DownloadContent(Thread); | |
4635 | + end else if (not browserRec.Repaint) then begin | |
4636 | + try | |
4637 | + browserRec.Move(IntToStr(stRes)); | |
4638 | + Thread.JumpAddress := 0; | |
4639 | + doc := Idispatch( OleVariant( browserRec.Browser.ControlInterface ).Document ) as IHTMLDocument2; | |
4640 | + Thread.ScrollTop := doc.Body.ScrollTop; | |
4641 | + except | |
4642 | + end; | |
4643 | + end; | |
4644 | + end; | |
4645 | + end; | |
4646 | +end; | |
4498 | 4647 | |
4499 | 4648 | procedure TGikoForm.MoveToURL(const inURL: string); |
4500 | 4649 | var |
@@ -4507,13 +4656,8 @@ var | ||
4507 | 4656 | i, bi : Integer; |
4508 | 4657 | boardURL : string; |
4509 | 4658 | tmpThread : TThreadItem; |
4510 | -// category : TCategory; | |
4511 | -// categoryNode : TTreeNode; | |
4512 | -// boardNode : TTreeNode; | |
4513 | 4659 | shiftDown : Boolean; |
4514 | 4660 | ctrlDown : Boolean; |
4515 | - stRes, edRes : Int64; | |
4516 | - browserRec : TBrowserRecord; | |
4517 | 4661 | begin |
4518 | 4662 | |
4519 | 4663 | GikoSys.ParseURI( inURL, protocol, host, path, document, port, bookmark ); |
@@ -4569,30 +4713,11 @@ begin | ||
4569 | 4713 | if TBoard(ActiveList) = Board then |
4570 | 4714 | ListView.Items.Count := ListView.Items.Count + 1; |
4571 | 4715 | end; |
4572 | - GikoSys.GetPopupResNumber( inURL, stRes, edRes ); | |
4573 | - browserRec := InsertBrowserTab( ThreadItem ); | |
4574 | - if (browserRec <> nil) and (stRes > 0) then | |
4575 | - browserRec.Movement := IntToStr( stRes ); | |
4576 | - DownloadContent( ThreadItem ); | |
4577 | - Exit; | |
4578 | 4716 | end else begin |
4579 | 4717 | tmpThread.Free; |
4580 | - GikoSys.GetPopupResNumber( inURL, stRes, edRes ); | |
4581 | - browserRec := InsertBrowserTab( ThreadItem ); | |
4582 | - if ThreadItem.IsLogFile then begin | |
4583 | - if (browserRec <> nil) and (stRes > 0) then begin | |
4584 | - browserRec.Movement := IntToStr( stRes ); | |
4585 | - if (stRes > ThreadItem.Count) then begin | |
4586 | - DownloadContent( ThreadItem ); | |
4587 | - end; | |
4588 | - end; | |
4589 | - end else begin | |
4590 | - if (browserRec <> nil) and (stRes > 0) then | |
4591 | - browserRec.Movement := IntToStr( stRes ); | |
4592 | - DownloadContent( ThreadItem ); | |
4593 | - end; | |
4594 | - Exit; | |
4595 | 4718 | end; |
4719 | + OpenThreadItem(ThreadItem, inURL); | |
4720 | + Exit; | |
4596 | 4721 | end; |
4597 | 4722 | end; |
4598 | 4723 |
@@ -4619,15 +4744,6 @@ begin | ||
4619 | 4744 | if (Length( Trim(BBSKey) ) > 0) and (Length( Trim(BBSID) ) > 0) then begin |
4620 | 4745 | boardURL := GikoSys.Get2chThreadURL2BoardURL( inURL ); |
4621 | 4746 | Board := BBSsFindBoardFromURL( boardURL ); |
4622 | - //if Board = nil then | |
4623 | - // Board := BBSsFindBoardFromBBSID( BBSID ); | |
4624 | - { ±ÌªàBBSFindBoardFromURLɽ¹½@20050523 | |
4625 | - if Board = nil then begin | |
4626 | - // ¦ìÁÄàÇÁ·éƱ몳¢Ìŵۯ | |
4627 | - //@ßOqÉ©çA_E\µ½Xª©Å«È¢Ìű±ÅT·æ¤É·é (2004/01/22) | |
4628 | - Board := BBSs[ 0 ].FindBBSID( BBSID ); | |
4629 | - end; | |
4630 | - } | |
4631 | 4747 | if Board = nil then begin |
4632 | 4748 | // üé׫ª©Â©çÈ©Á½ÌÅAÊÌuEUÅJ |
4633 | 4749 | GikoSys.OpenBrowser(inURL, gbtUserApp); |
@@ -4652,55 +4768,26 @@ begin | ||
4652 | 4768 | if ThreadItem = nil then begin |
4653 | 4769 | ThreadItem := Board.FindThreadFromFileName( BBSKey + '.dat' ); |
4654 | 4770 | end; |
4655 | - if ThreadItem = nil then begin | |
4656 | - //shift -> ÝèuEUi³¯êÎIEj | |
4657 | - //ctrl -> IE | |
4658 | - {shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001); | |
4659 | - ctrlDown := GetAsyncKeyState(VK_CONTROL) = Smallint($8001); | |
4660 | - if shiftDown then | |
4661 | - GikoSys.OpenBrowser(URL1, gbtUserApp) | |
4662 | - else if ctrlDown then | |
4663 | - GikoSys.OpenBrowser(URL1, gbtIE) | |
4664 | - else begin | |
4665 | - } | |
4666 | - ThreadItem := TThreadItem.Create( nil, Board, URL ); | |
4667 | - ThreadItem.FileName := ChangeFileExt(BBSKey, '.dat'); | |
4668 | - if AnsiPos(Host, Board.URL) = 0 then | |
4669 | - ThreadItem.DownloadHost := Host | |
4670 | - else | |
4671 | - ThreadItem.DownloadHost := ''; | |
4672 | - Board.Insert(0, ThreadItem); | |
4673 | - if ActiveList is TBoard then begin | |
4674 | - if TBoard(ActiveList) = Board then | |
4675 | - ListView.Items.Count := ListView.Items.Count + 1; | |
4676 | - end; | |
4677 | - GikoSys.GetPopupResNumber( inURL, stRes, edRes ); | |
4678 | - browserRec := InsertBrowserTab(ThreadItem); | |
4679 | - if (browserRec <> nil) and (stRes > 0) then | |
4680 | - browserRec.Movement := IntToStr( stRes ); | |
4681 | - DownloadContent(ThreadItem); | |
4682 | - {end;} | |
4683 | - end else begin | |
4684 | - if ThreadItem.IsLogFile then begin | |
4685 | - GikoSys.GetPopupResNumber( inURL, stRes, edRes ); | |
4686 | - browserRec := InsertBrowserTab(ThreadItem); | |
4687 | - if (browserRec <> nil) and (stRes > 0) then begin | |
4688 | - browserRec.Movement := IntToStr( stRes ); | |
4689 | - if (stRes > ThreadItem.Count) then begin | |
4690 | - DownloadContent(ThreadItem); | |
4691 | - end; | |
4771 | + try | |
4772 | + // XbhACeªÈ¢È綬·éB | |
4773 | + if ThreadItem = nil then begin | |
4774 | + ThreadItem := TThreadItem.Create( nil, Board, URL ); | |
4775 | + ThreadItem.FileName := ChangeFileExt(BBSKey, '.dat'); | |
4776 | + Board.Insert(0, ThreadItem); | |
4777 | + if ActiveList is TBoard then begin | |
4778 | + if TBoard(ActiveList) = Board then | |
4779 | + ListView.Items.Count := ListView.Items.Count + 1; | |
4692 | 4780 | end; |
4693 | - end else begin | |
4781 | + end; | |
4782 | + // OȵXbhÌÆ«ÍAzXg¼Ì`FbNð·é | |
4783 | + if not ThreadItem.IsLogFile then begin | |
4694 | 4784 | if AnsiPos(Host, Board.URL) = 0 then |
4695 | 4785 | ThreadItem.DownloadHost := Host |
4696 | 4786 | else |
4697 | 4787 | ThreadItem.DownloadHost := ''; |
4698 | - GikoSys.GetPopupResNumber( inURL, stRes, edRes ); | |
4699 | - browserRec := InsertBrowserTab(ThreadItem); | |
4700 | - if (browserRec <> nil) and (stRes > 0) then | |
4701 | - browserRec.Movement := IntToStr( stRes ); | |
4702 | - DownloadContent(ThreadItem); | |
4703 | 4788 | end; |
4789 | + OpenThreadItem(ThreadItem, inURL); | |
4790 | + except | |
4704 | 4791 | end; |
4705 | 4792 | end else begin |
4706 | 4793 | Board := BBSsFindBoardFromURL( inURL ); |
@@ -4710,7 +4797,7 @@ begin | ||
4710 | 4797 | if FActiveBBS <> Board.ParentCategory.ParenTBBS then |
4711 | 4798 | ShowBBSTree( Board.ParentCategory.ParenTBBS ); |
4712 | 4799 | SelectTreeNode( Board, True ); |
4713 | - end; | |
4800 | + end; | |
4714 | 4801 | end; |
4715 | 4802 | end; |
4716 | 4803 |
@@ -6613,6 +6700,7 @@ begin | ||
6613 | 6700 | Screen.Cursor := crDefault; |
6614 | 6701 | end; |
6615 | 6702 | end; |
6703 | + Sort.SetSortDate(Now()); | |
6616 | 6704 | SetActiveList(Node.data); |
6617 | 6705 | end; |
6618 | 6706 |
@@ -6687,7 +6775,8 @@ begin | ||
6687 | 6775 | (FavoriteTreeView.Selected = FavoriteTreeView.GetNodeAt(X, Y)) then begin |
6688 | 6776 | //}EXªnodeÌãÉ¢é© |
6689 | 6777 | rect := FavoriteTreeView.Selected.DisplayRect(true); |
6690 | - if ((rect.Left <= X) and (rect.Right >= X)) and | |
6778 | + // ACRª¶É¸ç· | |
6779 | + if ((rect.Left - FavoriteTreeView.Indent <= X) and (rect.Right >= X)) and | |
6691 | 6780 | ((rect.Bottom >= Y) and (rect.Top <= Y)) then begin |
6692 | 6781 | if ssDouble in Shift then begin |
6693 | 6782 | FClickNode := FavoriteTreeView.Selected; |
@@ -7580,61 +7669,6 @@ begin | ||
7580 | 7669 | MsgBox(Handle, s, '³êÈ©Á½áO', MB_OK or MB_ICONSTOP); |
7581 | 7670 | end; |
7582 | 7671 | // ************************************************************************* |
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 | 7672 | //! _E[hRg[Xbh̶¬ |
7639 | 7673 | // ************************************************************************* |
7640 | 7674 | procedure TGikoForm.CreateControlThread(); |
@@ -7668,6 +7702,7 @@ begin | ||
7668 | 7702 | TOleControl(newBrowser).Align := alNone; |
7669 | 7703 | TOleControl(newBrowser).Left := 0; |
7670 | 7704 | TOleControl(newBrowser).Top := 0; |
7705 | + newBrowser.RegisterAsDropTarget := False; | |
7671 | 7706 | newBrowser.OnDocumentComplete := BrowserDocumentComplete; |
7672 | 7707 | newBrowser.OnBeforeNavigate2 := BrowserBeforeNavigate2; |
7673 | 7708 | newBrowser.OnEnter := BrowserEnter; |
@@ -7755,9 +7790,10 @@ begin | ||
7755 | 7790 | (TreeView.Selected = TreeView.GetNodeAt(X, Y)) then begin |
7756 | 7791 | //}EXªnodeÌãÉ¢é© |
7757 | 7792 | rect := TreeView.Selected.DisplayRect(true); |
7758 | - if ((rect.Left <= X) and (rect.Right >= X)) and | |
7793 | + // ACRª¾¯¶É¸ç· | |
7794 | + if ((rect.Left - TreeView.Indent <= X) and (rect.Right >= X)) and | |
7759 | 7795 | ((rect.Bottom >= Y) and (rect.Top <= Y)) then begin |
7760 | - // NbNÆ_uNbNðRRÅ»è | |
7796 | + // NbNÆ_uNbNðRRÅ»è | |
7761 | 7797 | if ssDouble in Shift then begin |
7762 | 7798 | TreeDoubleClick( TreeView.Selected ); |
7763 | 7799 | end else begin |
@@ -7768,6 +7804,50 @@ begin | ||
7768 | 7804 | end; |
7769 | 7805 | end; |
7770 | 7806 | end; |
7807 | +//! ActionListÌGroupIndexÌÛ¶ | |
7808 | +procedure TGikoForm.GetGroupIndex(ActionList: TActionList); | |
7809 | +var | |
7810 | + i: Integer; | |
7811 | +begin | |
7812 | + if ActionList <> nil then begin | |
7813 | + SetLength(FActionListGroupIndexes, ActionList.ActionCount); | |
7814 | + | |
7815 | + for i := 0 to ActionList.ActionCount - 1 do begin | |
7816 | + try | |
7817 | + FActionListGroupIndexes[i] := | |
7818 | + TCustomAction(ActionList.Actions[i]).GroupIndex; | |
7819 | + TCustomAction(ActionList.Actions[i]).GroupIndex | |
7820 | + := 0; | |
7821 | + except | |
7822 | + ;//CastūȢƫÎô | |
7823 | + end; | |
7824 | + end; | |
7825 | + | |
7826 | + end; | |
7827 | +end; | |
7828 | +//! ActionListÌGroupIndexÌÝè | |
7829 | +procedure TGikoForm.SetGroupIndex(ActionList: TActionList); | |
7830 | +var | |
7831 | + i: Integer; | |
7832 | +begin | |
7833 | + if ActionList <> nil then begin | |
7834 | + if Length( FActionListGroupIndexes ) = ActionList.ActionCount then begin | |
7835 | + for i := 0 to ActionList.ActionCount - 1 do begin | |
7836 | + try | |
7837 | + TCustomAction(ActionList.Actions[i]).GroupIndex | |
7838 | + := FActionListGroupIndexes[i]; | |
7839 | + except | |
7840 | + ;//CastūȢƫÎô | |
7841 | + end; | |
7842 | + end; | |
7843 | + end; | |
7844 | + end; | |
7845 | +end; | |
7846 | +//! ±ÌXÌURLæ¾ | |
7847 | +procedure TGikoForm.GetResURLMenuClick(Sender: TObject); | |
7848 | +begin | |
7849 | +; | |
7850 | +end; | |
7771 | 7851 | |
7772 | 7852 | initialization |
7773 | 7853 | 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 |
@@ -339,6 +339,24 @@ object GikoDM: TGikoDM | ||
339 | 339 | OnExecute = NewItemActionExecute |
340 | 340 | OnUpdate = DependActiveListTBoardActionUpdate |
341 | 341 | end |
342 | + object ArchiveItemAction: TAction | |
343 | + Category = #26495 | |
344 | + Caption = 'DAT'#33853#12385#12473#12524#12483#12489#34920#31034'(&D)' | |
345 | + GroupIndex = 1 | |
346 | + Hint = 'DAT'#33853#12385#12473#12524#12483#12489#12398#12415#34920#31034#12377#12427 | |
347 | + ImageIndex = 55 | |
348 | + OnExecute = ArchiveItemActionExecute | |
349 | + OnUpdate = DependActiveListTBoardActionUpdate | |
350 | + end | |
351 | + object LiveItemAction: TAction | |
352 | + Category = #26495 | |
353 | + Caption = #29983#23384#12473#12524#12483#12489#34920#31034'(&S)' | |
354 | + GroupIndex = 1 | |
355 | + Hint = #29983#23384#12375#12390#12356#12427#12473#12524#12483#12489#12398#12415#12434#34920#31034#12377#12427 | |
356 | + ImageIndex = 54 | |
357 | + OnExecute = LiveItemActionExecute | |
358 | + OnUpdate = DependActiveListTBoardActionUpdate | |
359 | + end | |
342 | 360 | object ThreadRangeAction: TAction |
343 | 361 | Category = #26495 |
344 | 362 | AutoCheck = True |
@@ -1201,12 +1219,25 @@ object GikoDM: TGikoDM | ||
1201 | 1219 | Hint = #12473#12524#12483#12489#12398#23481#37327#12434#12501#12449#12452#12523#12363#12425#20877#35336#31639#12377#12427 |
1202 | 1220 | OnExecute = ThreadSizeCalcForFileActionExecute |
1203 | 1221 | end |
1222 | + object SetInputAssistAction: TAction | |
1223 | + Category = #12484#12540#12523 | |
1224 | + Caption = #20837#21147#12450#12471#12473#12488#12398#35373#23450 | |
1225 | + Hint = #20837#21147#12450#12471#12473#12488#12398#35373#23450#12501#12457#12540#12512#12434#38283#12367 | |
1226 | + OnExecute = SetInputAssistActionExecute | |
1227 | + end | |
1228 | + object OpenFindDialogAction: TAction | |
1229 | + Category = #12473#12524#12483#12489 | |
1230 | + Caption = #29694#22312#34920#31034#12375#12390#12356#12427#12473#12524#12483#12489#12398#26908#32034#12480#12452#12450#12525#12464#12434#34920#31034#12377#12427 | |
1231 | + Hint = #29694#22312#34920#31034#12375#12390#12356#12427#12473#12524#12483#12489#12398#26908#32034#12480#12452#12450#12525#12464#12434#34920#31034#12377#12427 | |
1232 | + ShortCut = 16454 | |
1233 | + OnExecute = OpenFindDialogActionExecute | |
1234 | + end | |
1204 | 1235 | end |
1205 | 1236 | object ToobarImageList: TImageList |
1206 | 1237 | Left = 44 |
1207 | 1238 | Top = 60 |
1208 | 1239 | Bitmap = { |
1209 | - 494C010136003B00040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 | |
1240 | + 494C010138003B00040010001000FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600 | |
1210 | 1241 | 000000000000360000002800000040000000F0000000010020000000000000F0 |
1211 | 1242 | 0000000000000000000000000000000000000000000000000000000000000000 |
1212 | 1243 | 0000000000000000000000000000000000000000000000000000000000000000 |
@@ -1342,126 +1373,126 @@ object GikoDM: TGikoDM | ||
1342 | 1373 | 0000000000000000000000000000000000000000000000000000000000000000 |
1343 | 1374 | 0000000000000000000000000000000000000000000000000000000000000000 |
1344 | 1375 | 0000000000000000000000000000000000000000000000000000000000000000 |
1345 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1346 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1376 | + 0000000000004C4C4C000000000000000000000000000000000080808000FFFF | |
1377 | + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00C0C0C0000000 | |
1347 | 1378 | 0000000000000000000000000000000000000000000000000000000000000000 |
1348 | 1379 | 0000000000000000000000000000008484000000000084848400000000000000 |
1349 | 1380 | 0000000000000000000000000000000000000000000000000000000000000000 |
1350 | 1381 | 0000000000008484840084848400848484008484840084848400848484000000 |
1351 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1352 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1353 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1354 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1382 | + 0000000000000000000000000000000000000000000000000000C0C0C000C0C0 | |
1383 | + C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000000000000000 | |
1384 | + 00004C4C4C004C4C4C004C4C4C0000000000000000000000000080808000FFFF | |
1385 | + FF001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C00FFFFFF00C0C0C0000000 | |
1355 | 1386 | 0000000000000000000000000000000000000000000000000000000000000000 |
1356 | 1387 | 000000000000000000000084840000000000C6C6C600C6C6C600848484000000 |
1357 | 1388 | 0000000000000000000084848400000000000000000000000000000000000000 |
1358 | 1389 | 000084848400C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C6008484 |
1359 | - 8400000000000000000000000000000000000000000000000000000000000000 | |
1360 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1361 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1362 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1390 | + 8400000000000000000000000000000000000000000000000000C0C0C000FFFF | |
1391 | + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00C0C0C000000000000000 | |
1392 | + 0000000000004C4C4C000000000000000000000000000000000080808000FFFF | |
1393 | + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00C0C0C0000000 | |
1363 | 1394 | 0000000000000000000000000000000000000000000000000000000000000000 |
1364 | 1395 | 000000000000008484008484840084848400FFFFFF00FFFFFF00848484000000 |
1365 | 1396 | 0000000000008484840000000000000000000000000000000000000000008484 |
1366 | 1397 | 8400C6C6C6000000000000000000000000000000000000000000000000000000 |
1367 | - 0000848484000000000000000000000000000000000000000000000000000000 | |
1368 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1369 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1370 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1398 | + 0000848484000000000000000000000000000000000000000000C0C0C000FFFF | |
1399 | + FF00C0C0C000C0C0C000C0C0C000C0C0C000FFFFFF00C0C0C000000000000000 | |
1400 | + 0000000000004C4C4C000000000000000000000000000000000080808000FFFF | |
1401 | + FF001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C00FFFFFF00C0C0C0000000 | |
1371 | 1402 | 0000000000000000000000000000000000000000000000000000000000000000 |
1372 | 1403 | 00000084840000FFFF0000000000C6C6C600FFFFFF00FFFFFF00848484000000 |
1373 | 1404 | 000084848400000000000000000000000000000000000000000084848400C6C6 |
1374 | 1405 | C600C6C6C6000000000000000000FFFFFF00FFFFFF00FFFFFF00C6C6C6000000 |
1375 | 1406 | 0000000000008484840000000000000000000000000000000000000000000000 |
1376 | 1407 | 0000000000000000000000000000000000000000000000000000000000000000 |
1377 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1378 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1408 | + 000000000000000000000000000000000000000000000000000080808000FFFF | |
1409 | + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000 | |
1379 | 1410 | 0000000000000000000000000000000000000000000000000000000000000084 |
1380 | 1411 | 840000FFFF00FFFFFF0000000000C6C6C600FFFFFF00FFFFFF00848484000000 |
1381 | 1412 | 0000000000000000000000000000000000000000000084848400C6C6C600C6C6 |
1382 | 1413 | C600C6C6C6000000000000000000FFFFFF00C6C6C600C6C6C600C6C6C6000000 |
1383 | - 000000000000C6C6C60084848400000000000000000000000000000000000000 | |
1384 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1385 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1386 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1414 | + 000000000000C6C6C6008484840000000000000000000000000080808000C0C0 | |
1415 | + C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000000000000000 | |
1416 | + 000000000000000000000000000000000000000000000000000080808000FFFF | |
1417 | + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00C0C0C000FFFFFF00808080000000 | |
1387 | 1418 | 00000000000000000000000000000000000000000000008484008484840000FF |
1388 | 1419 | FF00FFFFFF0000FFFF000000000000000000FFFFFF00FFFFFF00848484000000 |
1389 | 1420 | 0000000000000000000000000000000000000000000084848400C6C6C600C6C6 |
1390 | 1421 | C600C6C6C6000000000000000000FFFFFF00C6C6C600C6C6C600C6C6C6000000 |
1391 | - 000000000000C6C6C60084848400000000000000000000000000000000000000 | |
1392 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1393 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1394 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1422 | + 000000000000C6C6C6008484840000000000000000000000000080808000FFFF | |
1423 | + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00C0C0C000000000000000 | |
1424 | + 000000000000848484000000000000000000000000000000000080808000FFFF | |
1425 | + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00C0C0C00080808000000000000000 | |
1395 | 1426 | 0000000000000000000000000000000000000084840000FFFF00C6C6C600FFFF |
1396 | 1427 | FF0000FFFF00FFFFFF00000000008484840000000000FFFFFF00848484000000 |
1397 | 1428 | 0000848484008484840084848400848484000000000084848400C6C6C600C6C6 |
1398 | 1429 | C600C6C6C6000000000000000000000000000000000000000000000000000000 |
1399 | - 0000C6C6C600C6C6C60084848400000000000000000000000000000000000000 | |
1400 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1401 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1402 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1430 | + 0000C6C6C600C6C6C6008484840000000000000000000000000080808000FFFF | |
1431 | + FF001C1C1C001C1C1C001C1C1C001C1C1C00FFFFFF00C0C0C000000000000000 | |
1432 | + 0000848484008484840084848400000000000000000000000000808080008080 | |
1433 | + 8000808080008080800080808000808080008080800000000000000000000000 | |
1403 | 1434 | 0000000000000000000000000000000000000084840000FFFF00C6C6C60000FF |
1404 | 1435 | FF00FFFFFF0000FFFF0000000000C6C6C60000000000FFFFFF00848484000000 |
1405 | 1436 | 0000000000000000000000000000000000000000000084848400C6C6C600C6C6 |
1406 | 1437 | C600C6C6C6000000000000000000FFFFFF00FFFFFF00FFFFFF0000000000C6C6 |
1407 | - C600C6C6C600C6C6C60084848400000000000000000000000000000000000000 | |
1408 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1409 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1410 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1438 | + C600C6C6C600C6C6C6008484840000000000000000000000000080808000FFFF | |
1439 | + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00C0C0C000000000000000 | |
1440 | + 0000000000008484840000000000000000000000000000000000000000000000 | |
1441 | + 000000000000E2E2E20000000000000000000000000000000000000000000000 | |
1411 | 1442 | 00000000000000000000000000000000000000848400FFFFFF00C6C6C600FFFF |
1412 | 1443 | FF0000FFFF00FFFFFF000000000000000000FFFFFF00FFFFFF00848484000000 |
1413 | 1444 | 0000000000000000000000000000000000000000000084848400C6C6C600C6C6 |
1414 | 1445 | C600C6C6C6000000000000000000FFFFFF00C6C6C600C6C6C600000000000000 |
1415 | - 0000C6C6C600C6C6C60084848400000000000000000000000000000000000000 | |
1416 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1417 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1446 | + 0000C6C6C600C6C6C6008484840000000000000000000000000080808000FFFF | |
1447 | + FF001C1C1C001C1C1C001C1C1C001C1C1C00FFFFFF00C0C0C000000000000000 | |
1418 | 1448 | 0000000000000000000000000000000000000000000000000000000000000000 |
1449 | + 000000000000E2E2E20000000000000000000000000000000000000000000000 | |
1419 | 1450 | 00000000000000000000000000000000000000000000008484000084840000FF |
1420 | 1451 | FF00FFFFFF0000FFFF0000000000C6C6C600FFFFFF00FFFFFF00848484000000 |
1421 | 1452 | 0000848484000000000000000000000000000000000084848400C6C6C600C6C6 |
1422 | 1453 | C600C6C6C6000000000000000000FFFFFF00C6C6C600C6C6C600000000000000 |
1423 | - 0000C6C6C600C6C6C60084848400000000000000000000000000000000000000 | |
1424 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1425 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1454 | + 0000C6C6C600C6C6C6008484840000000000000000000000000080808000FFFF | |
1455 | + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00C0C0C000000000000000 | |
1426 | 1456 | 0000000000000000000000000000000000000000000000000000000000000000 |
1457 | + 000000000000E2E2E20000000000000000000000000000000000000000000000 | |
1427 | 1458 | 0000000000000000000000000000000000000000000000000000000000000084 |
1428 | 1459 | 840000FFFF00FFFFFF0000000000C6C6C600FFFFFF00FFFFFF00848484000000 |
1429 | 1460 | 000000000000848484000000000000000000000000000000000084848400C6C6 |
1430 | 1461 | C600C6C6C6000000000000000000FFFFFF00FFFFFF00FFFFFF00000000000000 |
1431 | - 0000C6C6C6008484840000000000000000000000000000000000000000000000 | |
1432 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1433 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1434 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1462 | + 0000C6C6C600848484000000000000000000000000000000000080808000FFFF | |
1463 | + FF001C1C1C001C1C1C001C1C1C001C1C1C00FFFFFF00C0C0C000000000000000 | |
1464 | + 0000000000004C4C4C0000000000000000000000000000000000000000000000 | |
1465 | + 000000000000E2E2E20000000000000000000000000000000000000000000000 | |
1435 | 1466 | 0000000000000000000000000000000000000000000000000000000000000000 |
1436 | 1467 | 00000084840000FFFF008484840084848400C6C6C600FFFFFF00848484000000 |
1437 | 1468 | 0000000000000000000084848400000000000000000000000000000000008484 |
1438 | 1469 | 8400C6C6C600000000000000000000000000000000000000000000000000C6C6 |
1439 | - C600848484000000000000000000000000000000000000000000000000000000 | |
1440 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1441 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1442 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1470 | + C60084848400000000000000000000000000000000000000000080808000FFFF | |
1471 | + FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 | |
1472 | + 0000000000004C4C4C000000000000000000000000000000000000000000E2E2 | |
1473 | + E200E2E2E200E2E2E200E2E2E200E2E2E2000000000000000000000000000000 | |
1443 | 1474 | 0000000000000000000000000000000000000000000000000000000000000000 |
1444 | 1475 | 0000000000000084840000FFFF0000000000C6C6C600C6C6C600000000000000 |
1445 | 1476 | 0000000000000000000000000000000000000000000000000000000000000000 |
1446 | 1477 | 000084848400C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C6008484 |
1447 | - 8400000000000000000000000000000000000000000000000000000000000000 | |
1448 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1449 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1450 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1478 | + 840000000000000000000000000000000000000000000000000080808000FFFF | |
1479 | + FF00FFFFFF00FFFFFF00FFFFFF00C0C0C000FFFFFF0080808000000000000000 | |
1480 | + 00004C4C4C004C4C4C004C4C4C00000000000000000000000000000000000000 | |
1481 | + 000000000000E2E2E20000000000000000000000000000000000000000000000 | |
1451 | 1482 | 0000000000000000000000000000000000000000000000000000000000000000 |
1452 | 1483 | 0000000000000000000000848400848484000000000084848400000000000000 |
1453 | 1484 | 0000000000000000000000000000000000000000000000000000000000000000 |
1454 | 1485 | 0000000000008484840084848400848484008484840084848400848484000000 |
1486 | + 000000000000000000000000000000000000000000000000000080808000FFFF | |
1487 | + FF00FFFFFF00FFFFFF00FFFFFF00C0C0C0008080800000000000000000000000 | |
1488 | + 0000000000004C4C4C0000000000000000000000000000000000000000000000 | |
1489 | + 000000000000E2E2E20000000000000000000000000000000000000000000000 | |
1455 | 1490 | 0000000000000000000000000000000000000000000000000000000000000000 |
1456 | 1491 | 0000000000000000000000000000000000000000000000000000000000000000 |
1457 | 1492 | 0000000000000000000000000000000000000000000000000000000000000000 |
1458 | 1493 | 0000000000000000000000000000000000000000000000000000000000000000 |
1459 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1460 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1461 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1462 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1463 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1464 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1494 | + 0000000000000000000000000000000000000000000000000000808080008080 | |
1495 | + 8000808080008080800080808000808080000000000000000000000000000000 | |
1465 | 1496 | 0000000000000000000000000000000000000000000000000000000000000000 |
1466 | 1497 | 0000000000000000000000000000000000000000000000000000000000000000 |
1467 | 1498 | 0000000000000000000000000000000000000000000000000000000000000000 |
@@ -3134,11 +3165,11 @@ object GikoDM: TGikoDM | ||
3134 | 3165 | 0000000000000000000000000000000000000000000000000000000000000000 |
3135 | 3166 | 0000000000000000000000000000000000000000000000000000000000000000 |
3136 | 3167 | 0000000000000000000000000000000000000000000000000000000000000000 |
3137 | - 00000000000000000000000000000000FE7FFFFF00000000FC3FF81F00000000 | |
3138 | - F81DF00F00000000F01BE00700000000E017C00300000000801F800100000000 | |
3139 | - 001F8001000000000010800100000000001F800100000000001F800100000000 | |
3140 | - 8017800100000000E01BC00300000000F01DE00700000000F83FF00F00000000 | |
3141 | - FC3FF81F00000000FE7FFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFC003 | |
3168 | + 00000000000000000000000000000000FE7FFFFFC01BC00FFC3FF81FC011C00F | |
3169 | + F81DF00FC01BC00FF01BE007C01BC00FE017C003C01FC00F801F8001C01FC01F | |
3170 | + 001F8001C01BC03F00108001C011C07F001F8001C01BFBFF001F8001C01FFBFF | |
3171 | + 80178001C01FFBFFE01BC003C01BFBFFF01DE007C01BE0FFF83FF00FC031FBFF | |
3172 | + FC3FF81FC07BFBFFFE7FFFFFC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC003 | |
3142 | 3173 | FFFFFFFFFFFFC003FC01803FFC01C003FC01803C3C01C003FC01803C3C01C003 |
3143 | 3174 | FC01803C3C01C003FC01803C3C01C003FC01803C3C01C003C00180000001C003 |
3144 | 3175 | C00180000001C003C00180000001C003C00180000001C003FFFFFFFC3FFFC003 |
@@ -3190,8 +3221,7 @@ object GikoDM: TGikoDM | ||
3190 | 3221 | 00000000C003FFFF0000000080017FFF0000000080013F7F0000000000000E3F |
3191 | 3222 | 000000000000861F800000000000C20FC00100000000E007F81F00000000F043 |
3192 | 3223 | F00F00000000F861E00700008001FC70C003803F8001FEFCF81FC07FC003FFFE |
3193 | - F81FE0FFE007FFFFF83FFFFFF81FFFFF00000000000000000000000000000000 | |
3194 | - 000000000000} | |
3224 | + F81FE0FFE007FFFFF83FFFFFF81FFFFF} | |
3195 | 3225 | end |
3196 | 3226 | object SaveDialog: TSaveDialog |
3197 | 3227 | Left = 48 |
@@ -11,7 +11,8 @@ uses | ||
11 | 11 | SHDocVw_TLB, |
12 | 12 | MSHTML_TLB, |
13 | 13 | {$IFEND} |
14 | - ComCtrls, BrowserRecord, Graphics, Messages, Setting, Dialogs; | |
14 | + ComCtrls, BrowserRecord, Graphics, Messages, Setting, Dialogs, | |
15 | + ActiveX; | |
15 | 16 | |
16 | 17 | const |
17 | 18 | CAPTION_NAME: string = 'MRir'; |
@@ -212,6 +213,10 @@ type | ||
212 | 213 | ToobarImageList: TImageList; |
213 | 214 | SaveDialog: TSaveDialog; |
214 | 215 | ThreadSizeCalcForFileAction: TAction; |
216 | + SetInputAssistAction: TAction; | |
217 | + OpenFindDialogAction: TAction; | |
218 | + ArchiveItemAction: TAction; | |
219 | + LiveItemAction: TAction; | |
215 | 220 | procedure EditNGActionExecute(Sender: TObject); |
216 | 221 | procedure ReloadActionExecute(Sender: TObject); |
217 | 222 | procedure GoFowardActionExecute(Sender: TObject); |
@@ -394,6 +399,10 @@ type | ||
394 | 399 | procedure AllSelectActionExecute(Sender: TObject); |
395 | 400 | procedure AllSelectActionUpdate(Sender: TObject); |
396 | 401 | procedure ThreadSizeCalcForFileActionExecute(Sender: TObject); |
402 | + procedure SetInputAssistActionExecute(Sender: TObject); | |
403 | + procedure OpenFindDialogActionExecute(Sender: TObject); | |
404 | + procedure ArchiveItemActionExecute(Sender: TObject); | |
405 | + procedure LiveItemActionExecute(Sender: TObject); | |
397 | 406 | private |
398 | 407 | { Private é¾ } |
399 | 408 | procedure ClearResFilter; |
@@ -406,6 +415,7 @@ type | ||
406 | 415 | procedure SelectThreadSaveToFile(dat: Boolean); |
407 | 416 | function GetSortProperties(List: TObject;var vSortOrder: Boolean): Boolean; |
408 | 417 | procedure RecalcThreadSize(limit : Integer); |
418 | + procedure ClearSelectComboBox; | |
409 | 419 | public |
410 | 420 | { Public é¾ } |
411 | 421 | procedure RepaintStatusBar; |
@@ -434,7 +444,7 @@ uses | ||
434 | 444 | ToolBarUtil, NewBoard, HTMLCreate, IndividualAbon, |
435 | 445 | GikoBayesian, About, ShellAPI, |
436 | 446 | RoundName, RoundData, Menus, ListViewUtils, |
437 | - ThreadControl, GikoMessage; | |
447 | + ThreadControl, GikoMessage, InputAssist; | |
438 | 448 | |
439 | 449 | |
440 | 450 | {$R *.dfm} |
@@ -884,22 +894,16 @@ end; | ||
884 | 894 | procedure TGikoDM.SetThreadAreaHorNormal; |
885 | 895 | begin |
886 | 896 | //Êí\¦É·é |
887 | - if GikoForm.ActiveContent <> nil then | |
888 | - SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //`æâ~ | |
889 | 897 | GikoForm.ViewPanel.Width := GikoForm.BrowserSizeWidth; |
890 | 898 | BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX; |
891 | 899 | BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN; |
892 | 900 | GikoSys.Setting.ListWidthState := glsNormal; |
893 | - if GikoForm.ActiveContent <> nil then | |
894 | - SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //`æ | |
895 | 901 | end; |
896 | 902 | // ************************************************************************* |
897 | 903 | //! Xbh\¦GAÅå/Ŭ\¦É·é )ListOrientation = gloHorizontal@ |
898 | 904 | // ************************************************************************* |
899 | 905 | procedure TGikoDM.SetThreadAreaHorizontal(gls : TGikoListState); |
900 | 906 | begin |
901 | - if GikoForm.ActiveContent <> nil then | |
902 | - SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //`æâ~ | |
903 | 907 | if GikoSys.Setting.ListWidthState = glsNormal then |
904 | 908 | GikoForm.BrowserSizeWidth := GikoForm.ViewPanel.Width; |
905 | 909 | //Åå\¦ |
@@ -914,8 +918,6 @@ begin | ||
914 | 918 | BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL; |
915 | 919 | GikoSys.Setting.ListWidthState := glsMin; |
916 | 920 | end; |
917 | - if GikoForm.ActiveContent <> nil then | |
918 | - SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //`æ | |
919 | 921 | end; |
920 | 922 | // ************************************************************************* |
921 | 923 | //! Xbh\¦GAÊí\¦É·é )ListOrientation = gloVertical |
@@ -923,22 +925,16 @@ end; | ||
923 | 925 | procedure TGikoDM.SetThreadAreaVerNormal; |
924 | 926 | begin |
925 | 927 | //Êí\¦É·é |
926 | - if GikoForm.ActiveContent <> nil then | |
927 | - SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //`æâ~ | |
928 | 928 | GikoForm.ViewPanel.Height := GikoForm.BrowserSizeHeight; |
929 | 929 | BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX; |
930 | 930 | BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN; |
931 | 931 | GikoSys.Setting.ListHeightState := glsNormal; |
932 | - if GikoForm.ActiveContent <> nil then | |
933 | - SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //`æ | |
934 | 932 | end; |
935 | 933 | // ************************************************************************* |
936 | 934 | //! Xbh\¦GAÅå/Ŭ\¦É·é )ListOrientation = gloVertical |
937 | 935 | // ************************************************************************* |
938 | 936 | procedure TGikoDM.SetThreadAreaVertical(gls : TGikoListState); |
939 | 937 | begin |
940 | - if GikoForm.ActiveContent <> nil then | |
941 | - SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //`æâ~ | |
942 | 938 | if GikoSys.Setting.ListHeightState = glsNormal then |
943 | 939 | GikoForm.BrowserSizeHeight := GikoForm.ViewPanel.Height; |
944 | 940 | if (gls = glsMin) then begin |
@@ -952,8 +948,6 @@ begin | ||
952 | 948 | BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN; |
953 | 949 | GikoSys.Setting.ListHeightState := glsMax; |
954 | 950 | end; |
955 | - if GikoForm.ActiveContent <> nil then | |
956 | - SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //`æ | |
957 | 951 | end; |
958 | 952 | // ************************************************************************* |
959 | 953 | //! Xbh\¦GAðå«\¦·é |
@@ -1062,7 +1056,6 @@ begin | ||
1062 | 1056 | if Item = nil then Exit; |
1063 | 1057 | Editor := TEditorForm.Create(GikoForm.GetMainForm); |
1064 | 1058 | Editor.SetThreadItem(Item); |
1065 | - GikoSys.LoadKeySetting(Editor.ActionList, GikoSys.GetEditorKeyFileName); | |
1066 | 1059 | Editor.Show; |
1067 | 1060 | Editor.BodyEdit.SetFocus; |
1068 | 1061 | end; |
@@ -1563,7 +1556,7 @@ begin | ||
1563 | 1556 | try |
1564 | 1557 | if Dlg.ShowModal = mrOk then begin |
1565 | 1558 | GikoSys.SaveKeySetting(GikoFormActionList, Setting.KEY_SETTING_FILE_NAME); |
1566 | - GikoSys.SaveKeySetting(Dlg.EditorForm.ActionList, Setting.KEY_SETTING_FILE_NAME); | |
1559 | + GikoSys.SaveKeySetting(Dlg.EditorForm.ActionList, Setting.EKEY_SETTING_FILE_NAME); | |
1567 | 1560 | GikoSys.Setting.Gestures.SaveGesture( GikoSys.Setting.GetGestureFileName ); |
1568 | 1561 | end; |
1569 | 1562 |
@@ -2227,7 +2220,6 @@ begin | ||
2227 | 2220 | |
2228 | 2221 | Editor := TEditorForm.Create(GikoForm); |
2229 | 2222 | Editor.SetThreadItem(Item); |
2230 | - GikoSys.LoadKeySetting(Editor.ActionList, GikoSys.GetEditorKeyFileName); | |
2231 | 2223 | Editor.BodyEdit.Text := '>>' + IntToStr(Number) + #13#10; |
2232 | 2224 | Editor.Show; |
2233 | 2225 | Editor.BodyEdit.SetFocus; |
@@ -2501,6 +2493,17 @@ begin | ||
2501 | 2493 | end; |
2502 | 2494 | end; |
2503 | 2495 | // ************************************************************************* |
2496 | +//! SelectComboBoxÌlðNA·é | |
2497 | +// ************************************************************************* | |
2498 | +procedure TGikoDM.ClearSelectComboBox; | |
2499 | +begin | |
2500 | + if GikoForm.SelectComboBoxPanel.Visible then begin | |
2501 | + GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME; | |
2502 | + GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR; | |
2503 | + GikoForm.ListView.SetFocus; | |
2504 | + end; | |
2505 | +end; | |
2506 | +// ************************************************************************* | |
2504 | 2507 | //! Xbhð·×Ä\¦·é |
2505 | 2508 | // ************************************************************************* |
2506 | 2509 | procedure TGikoDM.AllItemActionExecute(Sender: TObject); |
@@ -2513,11 +2516,7 @@ begin | ||
2513 | 2516 | // SelectComboBox ÌððXVµÄ¨ |
2514 | 2517 | GikoForm.ModifySelectList; |
2515 | 2518 | // SelectComboBox ÌlðNA |
2516 | - if GikoForm.SelectComboBoxPanel.Visible then begin | |
2517 | - GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME; | |
2518 | - GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR; | |
2519 | - GikoForm.ListView.SetFocus; | |
2520 | - end; | |
2519 | + ClearSelectComboBox; | |
2521 | 2520 | except |
2522 | 2521 | end; |
2523 | 2522 | end; |
@@ -2534,11 +2533,7 @@ begin | ||
2534 | 2533 | // SelectComboBox ÌððXVµÄ¨ |
2535 | 2534 | GikoForm.ModifySelectList; |
2536 | 2535 | // SelectComboBox ÌlðNA |
2537 | - if GikoForm.SelectComboBoxPanel.Visible then begin | |
2538 | - GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME; | |
2539 | - GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR; | |
2540 | - GikoForm.ListView.SetFocus; | |
2541 | - end; | |
2536 | + ClearSelectComboBox; | |
2542 | 2537 | except |
2543 | 2538 | end; |
2544 | 2539 | end; |
@@ -2556,15 +2551,46 @@ begin | ||
2556 | 2551 | // SelectComboBox ÌððXVµÄ¨ |
2557 | 2552 | GikoForm.ModifySelectList; |
2558 | 2553 | // SelectComboBox ÌlðNA |
2559 | - if GikoForm.SelectComboBoxPanel.Visible then begin | |
2560 | - GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME; | |
2561 | - GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR; | |
2562 | - GikoForm.ListView.SetFocus; | |
2563 | - end; | |
2554 | + ClearSelectComboBox; | |
2564 | 2555 | except |
2565 | 2556 | end; |
2566 | 2557 | end; |
2567 | 2558 | // ************************************************************************* |
2559 | +//! DAT¿XbhÌÝ\¦·é | |
2560 | +// ************************************************************************* | |
2561 | +procedure TGikoDM.ArchiveItemActionExecute(Sender: TObject); | |
2562 | +begin | |
2563 | + try | |
2564 | + if GikoForm.ViewType <> gvtArch then | |
2565 | + GikoForm.SetListViewType(gvtArch); | |
2566 | + GikoSys.Setting.ThreadRange := gtrArch; | |
2567 | + ArchiveItemAction.Checked := True; | |
2568 | + // SelectComboBox ÌððXVµÄ¨ | |
2569 | + GikoForm.ModifySelectList; | |
2570 | + // SelectComboBox ÌlðNA | |
2571 | + ClearSelectComboBox; | |
2572 | + except | |
2573 | + end; | |
2574 | +end; | |
2575 | +// ************************************************************************* | |
2576 | +//! ¶¶XbhÌÝ\¦·é | |
2577 | +// ************************************************************************* | |
2578 | +procedure TGikoDM.LiveItemActionExecute(Sender: TObject); | |
2579 | +begin | |
2580 | + try | |
2581 | + if GikoForm.ViewType <> gvtLive then | |
2582 | + GikoForm.SetListViewType(gvtLive); | |
2583 | + GikoSys.Setting.ThreadRange := gtrLive; | |
2584 | + LiveItemAction.Checked := True; | |
2585 | + // SelectComboBox ÌððXVµÄ¨ | |
2586 | + GikoForm.ModifySelectList; | |
2587 | + // SelectComboBox ÌlðNA | |
2588 | + ClearSelectComboBox; | |
2589 | + except | |
2590 | + end; | |
2591 | +end; | |
2592 | + | |
2593 | +// ************************************************************************* | |
2568 | 2594 | //! XbhÌ\¦ÍÍðÝè |
2569 | 2595 | // ************************************************************************* |
2570 | 2596 | procedure TGikoDM.ThreadRangeActionExecute(Sender: TObject); |
@@ -2573,6 +2599,8 @@ begin | ||
2573 | 2599 | gtrAll: AllItemAction.Execute; |
2574 | 2600 | gtrLog: LogItemAction.Execute; |
2575 | 2601 | gtrNew: NewItemAction.Execute; |
2602 | + gtrArch: ArchiveItemAction.Execute; | |
2603 | + gtrLive: LiveItemAction.Execute; | |
2576 | 2604 | end; |
2577 | 2605 | end; |
2578 | 2606 | // ************************************************************************* |
@@ -2781,6 +2809,7 @@ var | ||
2781 | 2809 | shiftDown: Boolean; |
2782 | 2810 | begin |
2783 | 2811 | shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001); |
2812 | + GikoForm.ActiveListColumnSave; | |
2784 | 2813 | if GikoForm.GetActiveList is TCategory then begin |
2785 | 2814 | List := TList.Create; |
2786 | 2815 | try |
@@ -3782,6 +3811,54 @@ begin | ||
3782 | 3811 | GikoForm.ProgressBar.Position := 0; |
3783 | 3812 | ShowMessage('vZI¹µÜµ½B'); |
3784 | 3813 | end; |
3814 | +//! üÍAVXgÌÝètH[ðÄÑo· | |
3815 | +procedure TGikoDM.SetInputAssistActionExecute(Sender: TObject); | |
3816 | +var | |
3817 | + form : TInputAssistForm; | |
3818 | +begin | |
3819 | + form := TInputAssistForm.Create(GikoForm); | |
3820 | + try | |
3821 | + form.SetUpFromMain; | |
3822 | + form.ShowModal; | |
3823 | + finally | |
3824 | + form.Release; | |
3825 | + end; | |
3826 | +end; | |
3827 | +// WebBrowserÌõ_CAOðÄÑo· | |
3828 | +procedure OpenFindDialog(Browser: TWebbrowser); | |
3829 | +const | |
3830 | + CGID_WebBrowser: TGUID = '{ED016940-BD5B-11cf-BA4E-00C04FD70816}'; | |
3831 | + HTMLID_FIND = 1; | |
3832 | +var | |
3833 | + CmdTarget : IOleCommandTarget; | |
3834 | + vaIn, vaOut: OleVariant; | |
3835 | + PtrGUID: PGUID; | |
3836 | +begin | |
3837 | + if Browser.Document <> nil then begin | |
3838 | + New(PtrGUID); | |
3839 | + PtrGUID^ := CGID_WebBrowser; | |
3840 | + try | |
3841 | + Browser.Document.QueryInterface(IOleCommandTarget, CmdTarget); | |
3842 | + if CmdTarget <> nil then begin | |
3843 | + try | |
3844 | + CmdTarget.Exec(PtrGUID, HTMLID_FIND, 0, vaIn, vaOut); | |
3845 | + finally | |
3846 | + CmdTarget._Release; | |
3847 | + end; | |
3848 | + end; | |
3849 | + except | |
3850 | + end; | |
3851 | + Dispose(PtrGUID); | |
3852 | + end; | |
3853 | +end; | |
3854 | +//! »Ý\¦µÄ¢éXbhÌõ_CAOð\¦·é | |
3855 | +procedure TGikoDM.OpenFindDialogActionExecute(Sender: TObject); | |
3856 | +begin | |
3857 | + if( GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil) then begin | |
3858 | + OpenFindDialog(GikoForm.ActiveContent.Browser); | |
3859 | + end; | |
3860 | +end; | |
3861 | + | |
3785 | 3862 | |
3786 | 3863 | end. |
3787 | 3864 |
@@ -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='; |
@@ -889,9 +890,9 @@ begin | ||
889 | 890 | sl.Add(FOLDER_INDEX_VERSION); |
890 | 891 | |
891 | 892 | // XÔ۶̽ß\[g |
892 | - Sort.SortNoFlag := true; | |
893 | - Sort.SortOrder := true; | |
894 | - Sort.SortIndex := 0; | |
893 | + Sort.SetSortNoFlag(true); | |
894 | + Sort.SetSortOrder(true); | |
895 | + Sort.SetSortIndex(0); | |
895 | 896 | //Sort.SortNonAcquiredCountFlag := GikoSys.Setting.NonAcquiredCount; |
896 | 897 | Board.CustomSort(ThreadItemSortProc); |
897 | 898 |
@@ -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 |
@@ -15,7 +15,7 @@ uses | ||
15 | 15 | {HttpApp,} YofUtils, {URLMon,} BoardGroup, {gzip,} {Dolib,} |
16 | 16 | {bmRegExp,} AbonUnit, MojuUtils, Setting, |
17 | 17 | ExternalBoardManager, ExternalBoardPlugInMain{,} |
18 | - {Sort,} ,GikoBayesian, HintWindow; | |
18 | + {Sort,} ,GikoBayesian, HintWindow, ActiveX; | |
19 | 19 | |
20 | 20 | type |
21 | 21 |
@@ -38,10 +38,10 @@ type | ||
38 | 38 | constructor Create; |
39 | 39 | |
40 | 40 | function AddBeProfileLink(AID : string; ANum: Integer):string ; |
41 | - procedure CreateUsePluginHTML(doc: Variant; ThreadItem: TThreadItem; var sTitle: string); | |
42 | - procedure CreateUseSKINHTML(doc: Variant; ThreadItem: TThreadItem; ReadList: TStringList); | |
43 | - procedure CreateUseCSSHTML(doc: Variant; ThreadItem: TThreadItem; ReadList: TStringList; sTitle: string ); | |
44 | - procedure CreateDefaultHTML (doc: Variant; ThreadItem: TThreadItem; ReadList: TStringList; sTitle: string ); | |
41 | + procedure CreateUsePluginHTML(html:TStringList; ThreadItem: TThreadItem; var sTitle: string); | |
42 | + procedure CreateUseSKINHTML(html:TStringList; ThreadItem: TThreadItem; ReadList: TStringList); | |
43 | + procedure CreateUseCSSHTML(html:TStringList; ThreadItem: TThreadItem; ReadList: TStringList; sTitle: string ); | |
44 | + procedure CreateDefaultHTML (html:TStringList; ThreadItem: TThreadItem; ReadList: TStringList; sTitle: string ); | |
45 | 45 | procedure ConvertResAnchor(PRes: PResRec); |
46 | 46 | procedure separateNumber(var st: String; var et: String; const Text, Separator: String); |
47 | 47 | function checkComma(const s : String; var j : Integer; var No : String) : boolean; |
@@ -54,7 +54,7 @@ type | ||
54 | 54 | function SkinedRes(const skin: string; PRes: PResRec; const No: string): string; |
55 | 55 | procedure ConvRes( PRes : PResRec; PResLink : PResLinkRec; DatToHTML: boolean = false); overload; |
56 | 56 | function ConvRes(const Body, Bbs, Key, ParamBBS, ParamKey, ParamStart, ParamTo, ParamNoFirst, ParamTrue : string; DatToHTML: boolean = false): string; overload; |
57 | - procedure CreateHTML2(doc: Variant; ThreadItem: TThreadItem; var sTitle: string); | |
57 | + procedure CreateHTML2(doc: IDispatch; ThreadItem: TThreadItem; var sTitle: string); | |
58 | 58 | procedure CreateHTML3(var html: TStringList; ThreadItem: TThreadItem; var sTitle: string); |
59 | 59 | //X|bvAbvÌì¬ |
60 | 60 | procedure SetResPopupText(Hint :TResPopup; threadItem: TThreadItem; StNum, ToNum: Integer; Title, First: Boolean); |
@@ -778,7 +778,7 @@ begin | ||
778 | 778 | end; |
779 | 779 | |
780 | 780 | //Pluginðp·éBoardÌXbhÌHTMLð쬵ÄdocÉ«Þ |
781 | -procedure THTMLCreate.CreateUsePluginHTML(doc: Variant; ThreadItem: TThreadItem; var sTitle: string); | |
781 | +procedure THTMLCreate.CreateUsePluginHTML(html:TStringList; ThreadItem: TThreadItem; var sTitle: string); | |
782 | 782 | var |
783 | 783 | i: integer; |
784 | 784 | NewReceiveNo: Integer; |
@@ -791,11 +791,11 @@ begin | ||
791 | 791 | // tHgâTCYÌÝè |
792 | 792 | UserOptionalStyle := GikoSys.SetUserOptionalStyle; |
793 | 793 | try |
794 | - doc.open; | |
794 | +// doc.open; | |
795 | 795 | // wb_ |
796 | - doc.Write( boardPlugIn.GetHeader( DWORD( threadItem ), | |
796 | + html.add(boardPlugIn.GetHeader( DWORD( threadItem ), | |
797 | 797 | '<style type="text/css">body {' + UserOptionalStyle + '}</style>' )); |
798 | - doc.Write('<p id="idSearch"></p>'); | |
798 | + html.Add('<p id="idSearch"></p>'); | |
799 | 799 | |
800 | 800 | for i := 0 to threadItem.Count - 1 do begin |
801 | 801 | // 1 ÍK¸\¦ |
@@ -819,56 +819,56 @@ begin | ||
819 | 819 | try |
820 | 820 | if GikoSys.Setting.UseSkin then begin |
821 | 821 | if FileExists( GikoSys.GetSkinNewmarkFileName ) then |
822 | - doc.Write( LoadFromSkin( GikoSys.GetSkinNewmarkFileName, ThreadItem, ThreadItem.Size )) | |
822 | + html.Add( LoadFromSkin( GikoSys.GetSkinNewmarkFileName, ThreadItem, ThreadItem.Size )) | |
823 | 823 | else |
824 | - doc.Write( '<a name="new"></a>'); | |
824 | + html.Add( '<a name="new"></a>'); | |
825 | 825 | end else if GikoSys.Setting.UseCSS then begin |
826 | - doc.Write('<a name="new"></a><div class="new">V X <span class="newdate">' + FormatDateTime('yyyy/mm/dd(ddd) hh:mm', ThreadItem.RoundDate) + '</span></div>'); | |
826 | + html.Add('<a name="new"></a><div class="new">V X <span class="newdate">' + FormatDateTime('yyyy/mm/dd(ddd) hh:mm', ThreadItem.RoundDate) + '</span></div>'); | |
827 | 827 | end else begin |
828 | - doc.Write('</dl>'); | |
829 | - doc.Write('<a name="new"></a>'); | |
830 | - doc.Write('<table width="100%" bgcolor="#3333CC" cellpadding="0" cellspacing="1"><tr><td align="center" bgcolor="#6666FF" valign="middle"><font size="-1" color="#ffffff"><b>V X ' + FormatDateTime('yyyy/mm/dd(ddd) hh:mm', ThreadItem.RoundDate) + '</b></font></td></tr></table>'); | |
831 | - doc.Write('<dl>'); | |
828 | + html.Add('</dl>'); | |
829 | + html.Add('<a name="new"></a>'); | |
830 | + html.Add('<table width="100%" bgcolor="#3333CC" cellpadding="0" cellspacing="1"><tr><td align="center" bgcolor="#6666FF" valign="middle"><font size="-1" color="#ffffff"><b>V X ' + FormatDateTime('yyyy/mm/dd(ddd) hh:mm', ThreadItem.RoundDate) + '</b></font></td></tr></table>'); | |
831 | + html.Add('<dl>'); | |
832 | 832 | end; |
833 | 833 | except |
834 | - doc.Write( '<a name="new"></a>'); | |
834 | + html.Add( '<a name="new"></a>'); | |
835 | 835 | end; |
836 | 836 | end; |
837 | 837 | |
838 | 838 | // X |
839 | - doc.Write( boardPlugIn.GetRes( DWORD( threadItem ), i + 1 )); | |
839 | + html.Add( boardPlugIn.GetRes( DWORD( threadItem ), i + 1 )); | |
840 | 840 | |
841 | 841 | if ThreadItem.Kokomade = (i + 1) then begin |
842 | 842 | // ±±ÜÅÇñ¾ |
843 | 843 | try |
844 | 844 | if GikoSys.Setting.UseSkin then begin |
845 | 845 | if FileExists( GikoSys.GetSkinBookmarkFileName ) then |
846 | - doc.Write( LoadFromSkin( GikoSys.GetSkinBookmarkFileName, ThreadItem, ThreadItem.Size ) + #13#10 ) | |
846 | + html.Add( LoadFromSkin( GikoSys.GetSkinBookmarkFileName, ThreadItem, ThreadItem.Size )) | |
847 | 847 | else |
848 | - doc.Write( '<a name="koko"></a>'); | |
848 | + html.Add( '<a name="koko"></a>'); | |
849 | 849 | end else if GikoSys.Setting.UseCSS then begin |
850 | - doc.Write('<a name="koko"></a><div class="koko">RRÜÅÇñ¾</div>'); | |
850 | + html.Add('<a name="koko"></a><div class="koko">RRÜÅÇñ¾</div>'); | |
851 | 851 | end else begin |
852 | - doc.Write('</dl>'); | |
853 | - doc.Write('<a name="koko"></a><table width="100%" bgcolor="#55AA55" cellpadding="0" cellspacing="1"><tr><td align="center" bgcolor="#77CC77" valign="middle"><font size="-1" color="#ffffff"><b>RRÜÅÇñ¾</b></font></td></tr></table>'); | |
854 | - doc.Write('<dl>'); | |
852 | + html.Add('</dl>'); | |
853 | + html.Add('<a name="koko"></a><table width="100%" bgcolor="#55AA55" cellpadding="0" cellspacing="1"><tr><td align="center" bgcolor="#77CC77" valign="middle"><font size="-1" color="#ffffff"><b>RRÜÅÇñ¾</b></font></td></tr></table>'); | |
854 | + html.Add('<dl>'); | |
855 | 855 | end; |
856 | 856 | except |
857 | - doc.Write( '<a name="koko"></a>'); | |
857 | + html.Add('<a name="koko"></a>'); | |
858 | 858 | end; |
859 | 859 | end; |
860 | 860 | end; |
861 | 861 | |
862 | 862 | |
863 | 863 | // XL(tb^) |
864 | - doc.Write( boardPlugIn.GetFooter( DWORD( threadItem ), '<a name="bottom"></a>' )); | |
864 | + html.Add( boardPlugIn.GetFooter( DWORD( threadItem ), '<a name="bottom"></a>' )); | |
865 | 865 | finally |
866 | - doc.Close; | |
866 | + //doc.Close; | |
867 | 867 | end; |
868 | 868 | end; |
869 | 869 | |
870 | 870 | |
871 | -procedure THTMLCreate.CreateUseSKINHTML(doc: Variant; ThreadItem: TThreadItem; ReadList: TStringList); | |
871 | +procedure THTMLCreate.CreateUseSKINHTML(html:TStringList; ThreadItem: TThreadItem; ReadList: TStringList); | |
872 | 872 | const |
873 | 873 | KOKO_TAG = '<a name="koko"></a>'; |
874 | 874 | NEW_TAG = '<a name="new"></a>'; |
@@ -890,9 +890,9 @@ begin | ||
890 | 890 | ResLink.FBbs := ThreadItem.ParentBoard.BBSID; |
891 | 891 | ResLink.FKey := ThreadName; |
892 | 892 | //, |
893 | - doc.open; | |
893 | + //doc.open; | |
894 | 894 | try |
895 | - doc.charset := 'Shift_JIS'; | |
895 | + //doc.charset := 'Shift_JIS'; | |
896 | 896 | |
897 | 897 | // XLÌÝè |
898 | 898 | try |
@@ -900,14 +900,14 @@ begin | ||
900 | 900 | if Length( UserOptionalStyle ) > 0 then |
901 | 901 | SkinHeader := CustomStringReplace( SkinHeader, '</head>', |
902 | 902 | '<style type="text/css">body {' + UserOptionalStyle + '}</style></head>'); |
903 | - doc.Write( SkinHeader ); | |
903 | + html.Add( SkinHeader ); | |
904 | 904 | except |
905 | 905 | end; |
906 | 906 | |
907 | 907 | SkinNewRes := LoadFromSkin( GikoSys.GetSkinNewResFileName, ThreadItem, ThreadItem.Size); |
908 | 908 | SkinRes := LoadFromSkin( GikoSys.GetSkinResFileName, ThreadItem, ThreadItem.Size ); |
909 | 909 | |
910 | - doc.Write('<p id="idSearch"></p>'#13#10'<a name="top"></a>'); | |
910 | + html.Add('<p id="idSearch"></p>'#13#10'<a name="top"></a>'); | |
911 | 911 | |
912 | 912 | for i := 0 to ReadList.Count - 1 do begin |
913 | 913 | // 1 ÍK¸\¦ |
@@ -929,9 +929,9 @@ begin | ||
929 | 929 | // V }[N |
930 | 930 | if (NewReceiveNo = i + 1) or ((NewReceiveNo = 0) and (i = 0)) then begin |
931 | 931 | if FileExists( GikoSys.GetSkinNewmarkFileName ) then |
932 | - doc.Write( LoadFromSkin( GikoSys.GetSkinNewmarkFileName, ThreadItem, ThreadItem.Size )) | |
932 | + html.Add( LoadFromSkin( GikoSys.GetSkinNewmarkFileName, ThreadItem, ThreadItem.Size )) | |
933 | 933 | else |
934 | - doc.Write( NEW_TAG ); | |
934 | + html.Add( NEW_TAG ); | |
935 | 935 | end; |
936 | 936 | |
937 | 937 | if (Trim(ReadList[i]) <> '') then begin |
@@ -942,46 +942,45 @@ begin | ||
942 | 942 | |
943 | 943 | if NewReceiveNo <= (i + 1) then |
944 | 944 | // V X |
945 | - doc.Write(SkinedRes(SkinNewRes, @Res, IntToStr(i + 1))) | |
945 | + html.Add(SkinedRes(SkinNewRes, @Res, IntToStr(i + 1))) | |
946 | 946 | else |
947 | 947 | // ÊíÌX |
948 | - doc.Write(SkinedRes(SkinRes, @Res, IntToStr(i + 1))); | |
948 | + html.Add(SkinedRes(SkinRes, @Res, IntToStr(i + 1))); | |
949 | 949 | end; |
950 | 950 | |
951 | 951 | if ThreadItem.Kokomade = (i + 1) then begin |
952 | 952 | // ±±ÜÅÇñ¾ |
953 | 953 | if FileExists( GikoSys.GetSkinBookmarkFileName ) then |
954 | - doc.Write( LoadFromSkin( GikoSys.GetSkinBookmarkFileName, ThreadItem, ThreadItem.Size ) + #13#10 ) | |
954 | + html.Add( LoadFromSkin( GikoSys.GetSkinBookmarkFileName, ThreadItem, ThreadItem.Size )) | |
955 | 955 | else |
956 | - doc.Write( KOKO_TAG ); | |
956 | + html.Add( KOKO_TAG ); | |
957 | 957 | end; |
958 | 958 | end; |
959 | 959 | |
960 | - doc.Write('<a name="bottom"></a>'); | |
960 | + html.Add('<a name="bottom"></a>'); | |
961 | 961 | // XL(tb^) |
962 | - doc.Write( LoadFromSkin( GikoSys.GetSkinFooterFileName, ThreadItem, ThreadItem.Size ) ); | |
962 | + html.Add( LoadFromSkin( GikoSys.GetSkinFooterFileName, ThreadItem, ThreadItem.Size ) ); | |
963 | 963 | finally |
964 | - doc.close; | |
964 | + //doc.close; | |
965 | 965 | end; |
966 | 966 | end; |
967 | 967 | |
968 | -procedure THTMLCreate.CreateUseCSSHTML(doc: Variant; ThreadItem: TThreadItem; ReadList: TStringList; sTitle: string ); | |
968 | +procedure THTMLCreate.CreateUseCSSHTML(html:TStringList; ThreadItem: TThreadItem; ReadList: TStringList; sTitle: string ); | |
969 | 969 | const |
970 | 970 | FORMAT_NOMAIL = '<a name="%s"></a><div class="header"><span class="no"><a href="menu:%s">%s</a></span>' |
971 | - + '<span class="name_label">¼OF</span> <span class="name"><b>%s</b></span>' | |
972 | - + '<span class="date_label">eúF</span> <span class="date">%s</span></div>' | |
971 | + + '<span class="name_label"> ¼OF </span> <span class="name"><b>%s</b></span>' | |
972 | + + '<span class="date_label"> eúF</span> <span class="date">%s</span></div>' | |
973 | 973 | + '<div class="mes">%s</div>'; |
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>'; | |
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>'; | |
984 | - | |
983 | + + '<div class="mes">%s</div>'; | |
985 | 984 | var |
986 | 985 | i: integer; |
987 | 986 | No: string; |
@@ -992,9 +991,9 @@ var | ||
992 | 991 | ThreadName :String; |
993 | 992 | ResLink :TResLinkRec; |
994 | 993 | begin |
995 | - doc.open; | |
994 | + //doc.open; | |
996 | 995 | try |
997 | - doc.charset := 'Shift_JIS'; | |
996 | + //doc.charset := 'Shift_JIS'; | |
998 | 997 | NewReceiveNo := ThreadItem.NewReceive; |
999 | 998 | ThreadName := ChangeFileExt(ThreadItem.FileName, ''); |
1000 | 999 | ResLink.FBbs := ThreadItem.ParentBoard.BBSID; |
@@ -1004,15 +1003,15 @@ begin | ||
1004 | 1003 | CSSFileName := GikoSys.GetStyleSheetDir + GikoSys.Setting.CSSFileName; |
1005 | 1004 | if GikoSys.Setting.UseCSS and FileExists(CSSFileName) then begin |
1006 | 1005 | //CSSgp |
1007 | - doc.Write('<html><head>'); | |
1008 | - doc.Write('<meta http-equiv="Content-type" content="text/html; charset=Shift_JIS">'); | |
1009 | - doc.Write('<title>' + sTitle + '</title>'); | |
1010 | - doc.Write('<link rel="stylesheet" href="'+CSSFileName+'" type="text/css">'); | |
1006 | + html.Add('<html><head>'); | |
1007 | + html.Add('<meta http-equiv="Content-type" content="text/html; charset=Shift_JIS">'); | |
1008 | + html.Add('<title>' + sTitle + '</title>'); | |
1009 | + html.Add('<link rel="stylesheet" href="'+CSSFileName+'" type="text/css">'); | |
1011 | 1010 | if Length( UserOptionalStyle ) > 0 then |
1012 | - doc.Write('<style type="text/css">body {' + UserOptionalStyle + '}</style>'); | |
1013 | - doc.Write('</head>'#13#10'<body>'); | |
1014 | - doc.Write('<a name="top"></a>'#13#10'<p id="idSearch"></p>'); | |
1015 | - doc.Write('<div class="title">' + sTitle + '</div>'); | |
1011 | + html.Add('<style type="text/css">body {' + UserOptionalStyle + '}</style>'); | |
1012 | + html.Add('</head>'#13#10'<body>'); | |
1013 | + html.Add('<a name="top"></a>'#13#10'<p id="idSearch"></p>'); | |
1014 | + html.Add('<div class="title">' + sTitle + '</div>'); | |
1016 | 1015 | for i := 0 to ReadList.Count - 1 do begin |
1017 | 1016 | // 1 ÍK¸\¦ |
1018 | 1017 | if i <> 0 then begin |
@@ -1031,7 +1030,7 @@ begin | ||
1031 | 1030 | end; |
1032 | 1031 | |
1033 | 1032 | if (NewReceiveNo = (i + 1)) or ((NewReceiveNo = 0) and (i = 0)) then begin |
1034 | - doc.Write('<a name="new"></a><div class="new">V X <span class="newdate">' + FormatDateTime('yyyy/mm/dd(ddd) hh:mm', ThreadItem.RoundDate) + '</span></div>'); | |
1033 | + html.Add('<a name="new"></a><div class="new">V X <span class="newdate">' + FormatDateTime('yyyy/mm/dd(ddd) hh:mm', ThreadItem.RoundDate) + '</span></div>'); | |
1035 | 1034 | end; |
1036 | 1035 | |
1037 | 1036 | if (Trim(ReadList[i]) <> '') then begin |
@@ -1041,29 +1040,29 @@ begin | ||
1041 | 1040 | ConvRes(@Res, @ResLink); |
1042 | 1041 | Res.FDateTime := AddBeProfileLink(Res.FDateTime, i + 1); |
1043 | 1042 | if Res.FMailTo = '' then |
1044 | - doc.Write(Format(FORMAT_NOMAIL, [No, No, No, Res.FName, Res.FDateTime, Res.FBody])) | |
1043 | + html.Add(Format(FORMAT_NOMAIL, [No, No, No, Res.FName, Res.FDateTime, Res.FBody])) | |
1045 | 1044 | else if GikoSys.Setting.ShowMail then |
1046 | - doc.Write(Format(FORMAT_SHOWMAIL, [No, No, No, Res.FMailTo, Res.FName, Res.FMailTo, Res.FDateTime, Res.FBody])) | |
1045 | + html.Add(Format(FORMAT_SHOWMAIL, [No, No, No, Res.FMailTo, Res.FName, Res.FMailTo, Res.FDateTime, Res.FBody])) | |
1047 | 1046 | else |
1048 | - doc.Write(Format(FORMAT_NOSHOW, [No, No, No, Res.FName, Res.FDateTime, Res.FBody])); | |
1047 | + html.Add(Format(FORMAT_NOSHOW, [No, No, No, Res.FMailTo, Res.FName, Res.FDateTime, Res.FBody])); | |
1049 | 1048 | end; |
1050 | 1049 | |
1051 | 1050 | if ThreadItem.Kokomade = (i + 1) then begin |
1052 | - doc.Write('<a name="koko"></a><div class="koko">RRÜÅÇñ¾</div>'); | |
1051 | + html.Add('<a name="koko"></a><div class="koko">RRÜÅÇñ¾</div>'); | |
1053 | 1052 | end; |
1054 | 1053 | |
1055 | 1054 | end; |
1056 | 1055 | |
1057 | - doc.Write('<a name="bottom"></a>'); | |
1058 | - doc.Write('<a name="last"></a>'); | |
1059 | - doc.Write('</body></html>'); | |
1056 | + html.Add('<a name="bottom"></a>'); | |
1057 | + html.Add('<a name="last"></a>'); | |
1058 | + html.Add('</body></html>'); | |
1060 | 1059 | end; |
1061 | 1060 | finally |
1062 | - doc.Close; | |
1061 | + //doc.Close; | |
1063 | 1062 | end; |
1064 | 1063 | end; |
1065 | 1064 | |
1066 | -procedure THTMLCreate.CreateDefaultHTML (doc: Variant; ThreadItem: TThreadItem; ReadList: TStringList; sTitle: string ); | |
1065 | +procedure THTMLCreate.CreateDefaultHTML (html:TStringList; ThreadItem: TThreadItem; ReadList: TStringList; sTitle: string ); | |
1067 | 1066 | var |
1068 | 1067 | i: integer; |
1069 | 1068 | No: string; |
@@ -1072,21 +1071,21 @@ var | ||
1072 | 1071 | ThreadName: String; |
1073 | 1072 | ResLink : TResLinkRec; |
1074 | 1073 | begin |
1075 | - doc.open; | |
1074 | +// doc.open; | |
1076 | 1075 | try |
1077 | - doc.charset := 'Shift_JIS'; | |
1076 | +// doc.charset := 'Shift_JIS'; | |
1078 | 1077 | NewReceiveNo := ThreadItem.NewReceive; |
1079 | 1078 | ThreadName := ChangeFileExt(ThreadItem.FileName, ''); |
1080 | 1079 | ResLink.FBbs := ThreadItem.ParentBoard.BBSID; |
1081 | 1080 | ResLink.FKey := ThreadName; |
1082 | - doc.Write('<html><head>'#13#10); | |
1083 | - doc.Write('<meta http-equiv="Content-type" content="text/html; charset=Shift_JIS">'#13#10); | |
1084 | - doc.Write('<title>' + sTitle + '</title></head>'#13#10); | |
1085 | - doc.Write('<body TEXT="#000000" BGCOLOR="#EFEFEF" link="#0000FF" alink="#FF0000" vlink="#660099">'#13#10); | |
1086 | - doc.Write('<a name="top"></a>'#13#10); | |
1087 | - doc.Write('<font size=+1 color="#FF0000">' + sTitle + '</font>'#13#10); | |
1088 | - doc.Write('<dl>'#13#10); | |
1089 | - doc.Write('<p id="idSearch"></p>'#13#10); | |
1081 | + html.Add('<html><head>'); | |
1082 | + html.Add('<meta http-equiv="Content-type" content="text/html; charset=Shift_JIS">'); | |
1083 | + html.Add('<title>' + sTitle + '</title></head>'); | |
1084 | + html.Add('<body TEXT="#000000" BGCOLOR="#EFEFEF" link="#0000FF" alink="#FF0000" vlink="#660099">'); | |
1085 | + html.Add('<a name="top"></a>'); | |
1086 | + html.Add('<font size=+1 color="#FF0000">' + sTitle + '</font>'); | |
1087 | + html.Add('<dl>'); | |
1088 | + html.Add('<p id="idSearch"></p>'); | |
1090 | 1089 | for i := 0 to ReadList.Count - 1 do begin |
1091 | 1090 | // 1 ÍK¸\¦ |
1092 | 1091 | if i <> 0 then begin |
@@ -1105,10 +1104,10 @@ begin | ||
1105 | 1104 | end; |
1106 | 1105 | |
1107 | 1106 | if (NewReceiveNo = (i + 1)) or ((NewReceiveNo = 0) and (i = 0)) then begin |
1108 | - doc.Write('</dl>'); | |
1109 | - doc.Write('<a name="new"></a>'); | |
1110 | - doc.Write('<table width="100%" bgcolor="#3333CC" cellpadding="0" cellspacing="1"><tr><td align="center" bgcolor="#6666FF" valign="middle"><font size="-1" color="#ffffff"><b>V X ' + FormatDateTime('yyyy/mm/dd(ddd) hh:mm', ThreadItem.RoundDate) + '</b></font></td></tr></table>'); | |
1111 | - doc.Write('<dl>'); | |
1107 | + html.Add('</dl>'); | |
1108 | + html.Add('<a name="new"></a>'); | |
1109 | + html.Add('<table width="100%" bgcolor="#3333CC" cellpadding="0" cellspacing="1"><tr><td align="center" bgcolor="#6666FF" valign="middle"><font size="-1" color="#ffffff"><b>V X ' + FormatDateTime('yyyy/mm/dd(ddd) hh:mm', ThreadItem.RoundDate) + '</b></font></td></tr></table>'); | |
1110 | + html.Add('<dl>'); | |
1112 | 1111 | end; |
1113 | 1112 | |
1114 | 1113 | if (Trim(ReadList[i]) <> '') then begin |
@@ -1118,30 +1117,32 @@ begin | ||
1118 | 1117 | ConvRes(@Res, @ResLink); |
1119 | 1118 | Res.FDateTime := AddBeProfileLink(Res.FDateTime, i + 1); |
1120 | 1119 | if Res.FMailTo = '' then |
1121 | - doc.Write('<a name="' + No + '"></a><dt><a href="menu:' + No + '">' + No + '</a> ¼OF<font color="forestgreen"><b> ' + Res.FName + ' </b></font> eúF <span class="date">' + Res.FDateTime+ '</span><br><dd>' + Res.Fbody + ' <br><br><br>'#13#10) | |
1120 | + html.Add('<a name="' + No + '"></a><dt><a href="menu:' + No + '">' + No + '</a> ¼OF<font color="forestgreen"><b> ' + Res.FName + ' </b></font> eúF <span class="date">' + Res.FDateTime+ '</span><br><dd>' + Res.Fbody + ' <br><br><br>'#13#10) | |
1122 | 1121 | else if GikoSys.Setting.ShowMail then |
1123 | - doc.Write('<a name="' + No + '"></a><dt><a href="menu:' + No + '">' + No + '</a> ¼OF<a href="mailto:' + Res.FMailTo + '"><b> ' + Res.FName + ' </B></a> [' + Res.FMailTo + '] eúF <span class="date">' + Res.FDateTime+ '</span><br><dd>' + Res.Fbody + ' <br><br><br>'#13#10) | |
1122 | + html.Add('<a name="' + No + '"></a><dt><a href="menu:' + No + '">' + No + '</a> ¼OF<a href="mailto:' + Res.FMailTo + '"><b> ' + Res.FName + ' </B></a> [' + Res.FMailTo + '] eúF <span class="date">' + Res.FDateTime+ '</span><br><dd>' + Res.Fbody + ' <br><br><br>'#13#10) | |
1124 | 1123 | else |
1125 | - doc.Write('<a name="' + No + '"></a><dt><a href="menu:' + No + '">' + No + '</a> ¼OF<a href="mailto:' + Res.FMailTo + '"><b> ' + Res.FName + ' </B></a> eúF <span class="date">' + Res.FDateTime+ '</span><br><dd>' + Res.Fbody + ' <br><br><br>'#13#10); | |
1124 | + html.Add('<a name="' + No + '"></a><dt><a href="menu:' + No + '">' + No + '</a> ¼OF<a href="mailto:' + Res.FMailTo + '"><b> ' + Res.FName + ' </B></a> eúF <span class="date">' + Res.FDateTime+ '</span><br><dd>' + Res.Fbody + ' <br><br><br>'#13#10); | |
1126 | 1125 | end; |
1127 | 1126 | if ThreadItem.Kokomade = (i + 1) then begin |
1128 | - doc.Write('</dl>'); | |
1129 | - doc.Write('<a name="koko"></a><table width="100%" bgcolor="#55AA55" cellpadding="0" cellspacing="1"><tr><td align="center" bgcolor="#77CC77" valign="middle"><font size="-1" color="#ffffff"><b>RRÜÅÇñ¾</b></font></td></tr></table>'); | |
1130 | - doc.Write('<dl>'); | |
1127 | + html.Add('</dl>'); | |
1128 | + html.Add('<a name="koko"></a><table width="100%" bgcolor="#55AA55" cellpadding="0" cellspacing="1"><tr><td align="center" bgcolor="#77CC77" valign="middle"><font size="-1" color="#ffffff"><b>RRÜÅÇñ¾</b></font></td></tr></table>'); | |
1129 | + html.Add('<dl>'); | |
1131 | 1130 | end; |
1132 | 1131 | end; |
1133 | - doc.Write('</dl>'#13#10'<a name="bottom"></a>'#13#10'</body></html>'); | |
1132 | + html.Add('</dl>'#13#10'<a name="bottom"></a>'#13#10'</body></html>'); | |
1134 | 1133 | finally |
1135 | - doc.Close; | |
1134 | + //doc.Close; | |
1136 | 1135 | end; |
1137 | 1136 | end; |
1138 | 1137 | |
1139 | -procedure THTMLCreate.CreateHTML2(doc: Variant; ThreadItem: TThreadItem; var sTitle: string); | |
1138 | +procedure THTMLCreate.CreateHTML2(doc: IDispatch; ThreadItem: TThreadItem; var sTitle: string); | |
1140 | 1139 | var |
1141 | 1140 | ReadList: TStringList; |
1142 | 1141 | CSSFileName: string; |
1143 | 1142 | FileName: string; |
1144 | 1143 | Res: TResRec; |
1144 | + body : TStringList; | |
1145 | + mStream : TMemoryStream; | |
1145 | 1146 | {$IFDEF DEBUG} |
1146 | 1147 | st, rt: Cardinal; |
1147 | 1148 | {$ENDIF} |
@@ -1151,45 +1152,60 @@ begin | ||
1151 | 1152 | st := GetTickCount; |
1152 | 1153 | {$ENDIF} |
1153 | 1154 | if ThreadItem <> nil then begin |
1154 | - if ThreadItem.ParentBoard.IsBoardPlugInAvailable then begin | |
1155 | - CreateUsePluginHTML(doc, ThreadItem, sTitle); | |
1156 | - end else begin | |
1157 | - ShortDayNames[1] := 'ú'; ShortDayNames[2] := ''; | |
1158 | - ShortDayNames[3] := 'Î'; ShortDayNames[4] := ' '; | |
1159 | - ShortDayNames[5] := 'Ø'; ShortDayNames[6] := 'à'; | |
1160 | - ShortDayNames[7] := 'y'; | |
1155 | + body := TStringList.Create; | |
1156 | + try | |
1157 | + body.BeginUpdate; | |
1158 | + if ThreadItem.ParentBoard.IsBoardPlugInAvailable then begin | |
1159 | + CreateUsePluginHTML(body, ThreadItem, sTitle); | |
1160 | + end else begin | |
1161 | + ShortDayNames[1] := 'ú'; ShortDayNames[2] := ''; | |
1162 | + ShortDayNames[3] := 'Î'; ShortDayNames[4] := ' '; | |
1163 | + ShortDayNames[5] := 'Ø'; ShortDayNames[6] := 'à'; | |
1164 | + ShortDayNames[7] := 'y'; | |
1161 | 1165 | |
1162 | - ReadList := TStringList.Create; | |
1163 | - try | |
1164 | - if ThreadItem.IsLogFile then begin | |
1165 | - ReadList.BeginUpdate; | |
1166 | - FileName := ThreadItem.GetThreadFileName; | |
1167 | - ReadList.LoadFromFile(FileName); | |
1168 | - ReadList.EndUpdate; | |
1169 | - GikoSys.FAbon.IndividualAbon(ReadList, ChangeFileExt(FileName,'.NG')); | |
1170 | - GikoSys.FAbon.Execute(ReadList); // Ú`ñµÄ | |
1171 | - GikoSys.FSelectResFilter.Execute(ReadList); //XÌtB^Oð·é | |
1172 | - if ThreadItem.Title = '' then begin | |
1173 | - DivideStrLine(ReadList[0], @Res); | |
1174 | - sTitle := Res.FTitle; | |
1175 | - end else | |
1176 | - sTitle := ThreadItem.Title | |
1177 | - end else begin | |
1178 | - sTitle := CustomStringReplace(ThreadItem.Title, 'M', ','); | |
1179 | - end; | |
1180 | - // tHgâTCYÌÝè | |
1181 | - CSSFileName := GikoSys.GetStyleSheetDir + GikoSys.Setting.CSSFileName; | |
1182 | - if GikoSys.Setting.UseSkin then begin | |
1183 | - CreateUseSKINHTML(doc, ThreadItem, ReadList); | |
1184 | - end else if GikoSys.Setting.UseCSS and FileExists(CSSFileName) then begin | |
1185 | - CreateUseCSSHTML(doc, ThreadItem, ReadList, sTitle); | |
1186 | - end else begin | |
1187 | - CreateDefaultHTML(doc, ThreadItem, ReadList, sTitle); | |
1166 | + ReadList := TStringList.Create; | |
1167 | + try | |
1168 | + if ThreadItem.IsLogFile then begin | |
1169 | + ReadList.BeginUpdate; | |
1170 | + FileName := ThreadItem.GetThreadFileName; | |
1171 | + ReadList.LoadFromFile(FileName); | |
1172 | + ReadList.EndUpdate; | |
1173 | + GikoSys.FAbon.IndividualAbon(ReadList, ChangeFileExt(FileName,'.NG')); | |
1174 | + GikoSys.FAbon.Execute(ReadList); // Ú`ñµÄ | |
1175 | + GikoSys.FSelectResFilter.Execute(ReadList); //XÌtB^Oð·é | |
1176 | + if ThreadItem.Title = '' then begin | |
1177 | + DivideStrLine(ReadList[0], @Res); | |
1178 | + sTitle := Res.FTitle; | |
1179 | + end else | |
1180 | + sTitle := ThreadItem.Title | |
1181 | + end else begin | |
1182 | + sTitle := CustomStringReplace(ThreadItem.Title, 'M', ','); | |
1183 | + end; | |
1184 | + // tHgâTCYÌÝè | |
1185 | + CSSFileName := GikoSys.GetStyleSheetDir + GikoSys.Setting.CSSFileName; | |
1186 | + if GikoSys.Setting.UseSkin then begin | |
1187 | + CreateUseSKINHTML(body, ThreadItem, ReadList); | |
1188 | + end else if GikoSys.Setting.UseCSS and FileExists(CSSFileName) then begin | |
1189 | + CreateUseCSSHTML(body, ThreadItem, ReadList, sTitle); | |
1190 | + end else begin | |
1191 | + CreateDefaultHTML(body, ThreadItem, ReadList, sTitle); | |
1192 | + end; | |
1193 | + finally | |
1194 | + ReadList.Free; | |
1188 | 1195 | end; |
1189 | - | |
1196 | + end; | |
1197 | + body.EndUpdate; | |
1198 | + //WebBrowserÉ«Ý | |
1199 | + mStream := TMemoryStream.Create; | |
1200 | + try | |
1201 | + body.SaveToStream(mStream); | |
1202 | + mStream.Seek(soFromBeginning, 0); | |
1203 | + (doc as IPersistStreamInit).Load(TStreamAdapter.Create(mStream)); | |
1190 | 1204 | finally |
1191 | - ReadList.Free; | |
1205 | + mStream.Free; | |
1192 | 1206 | end; |
1207 | + finally | |
1208 | + body.Free; | |
1193 | 1209 | end; |
1194 | 1210 | end; |
1195 | 1211 | {$IFDEF DEBUG} |
@@ -0,0 +1,405 @@ | ||
1 | +object InputAssistForm: TInputAssistForm | |
2 | + Left = 589 | |
3 | + Top = 279 | |
4 | + Width = 397 | |
5 | + Height = 460 | |
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 = 389 | |
22 | + Height = 200 | |
23 | + Align = alTop | |
24 | + BevelOuter = bvLowered | |
25 | + Caption = 'Panel1' | |
26 | + TabOrder = 0 | |
27 | + object Panel5: TPanel | |
28 | + Left = 295 | |
29 | + Top = 33 | |
30 | + Width = 93 | |
31 | + Height = 166 | |
32 | + Align = alRight | |
33 | + TabOrder = 0 | |
34 | + object CloseButton: TButton | |
35 | + Left = 10 | |
36 | + Top = 136 | |
37 | + Width = 75 | |
38 | + Height = 25 | |
39 | + Caption = #32066#20102 | |
40 | + TabOrder = 0 | |
41 | + OnClick = CloseButtonClick | |
42 | + end | |
43 | + object ApplyButton: TButton | |
44 | + Left = 10 | |
45 | + Top = 72 | |
46 | + Width = 75 | |
47 | + Height = 25 | |
48 | + Caption = #36969#29992 | |
49 | + TabOrder = 1 | |
50 | + OnClick = ApplyButtonClick | |
51 | + end | |
52 | + object DeleteButton: TButton | |
53 | + Left = 10 | |
54 | + Top = 40 | |
55 | + Width = 75 | |
56 | + Height = 25 | |
57 | + Caption = #21066#38500 | |
58 | + TabOrder = 2 | |
59 | + OnClick = DeleteButtonClick | |
60 | + end | |
61 | + object AddButton: TButton | |
62 | + Left = 10 | |
63 | + Top = 8 | |
64 | + Width = 75 | |
65 | + Height = 25 | |
66 | + Caption = #36861#21152 | |
67 | + TabOrder = 3 | |
68 | + OnClick = AddButtonClick | |
69 | + end | |
70 | + end | |
71 | + object Panel6: TPanel | |
72 | + Left = 1 | |
73 | + Top = 33 | |
74 | + Width = 294 | |
75 | + Height = 166 | |
76 | + Align = alClient | |
77 | + BevelOuter = bvNone | |
78 | + Caption = 'Panel6' | |
79 | + TabOrder = 1 | |
80 | + object GikoListView1: TGikoListView | |
81 | + Left = 0 | |
82 | + Top = 0 | |
83 | + Width = 294 | |
84 | + Height = 166 | |
85 | + Align = alClient | |
86 | + Columns = <> | |
87 | + ReadOnly = True | |
88 | + RowSelect = True | |
89 | + SmallImages = ColumnImageList | |
90 | + TabOrder = 0 | |
91 | + ViewStyle = vsReport | |
92 | + OnColumnClick = GikoListView1ColumnClick | |
93 | + OnCompare = GikoListView1Compare | |
94 | + OnSelectItem = GikoListView1SelectItem | |
95 | + end | |
96 | + end | |
97 | + object Panel7: TPanel | |
98 | + Left = 1 | |
99 | + Top = 1 | |
100 | + Width = 387 | |
101 | + Height = 32 | |
102 | + Align = alTop | |
103 | + Caption = 'Panel7' | |
104 | + TabOrder = 2 | |
105 | + object CategoryComboLabel: TLabel | |
106 | + Left = 12 | |
107 | + Top = 10 | |
108 | + Width = 77 | |
109 | + Height = 12 | |
110 | + Caption = #12459#12486#12468#12522#21517#36984#25246 | |
111 | + end | |
112 | + object CategoryComboBox: TComboBox | |
113 | + Left = 105 | |
114 | + Top = 6 | |
115 | + Width = 176 | |
116 | + Height = 20 | |
117 | + ItemHeight = 12 | |
118 | + TabOrder = 0 | |
119 | + Text = 'CategoryComboBox' | |
120 | + OnChange = CategoryComboBoxChange | |
121 | + OnKeyPress = CategoryComboBoxKeyPress | |
122 | + end | |
123 | + object InsertButton: TButton | |
124 | + Left = 297 | |
125 | + Top = 4 | |
126 | + Width = 75 | |
127 | + Height = 25 | |
128 | + Action = InsertButtonAction | |
129 | + TabOrder = 1 | |
130 | + end | |
131 | + end | |
132 | + end | |
133 | + object Panel2: TPanel | |
134 | + Left = 0 | |
135 | + Top = 200 | |
136 | + Width = 389 | |
137 | + Height = 233 | |
138 | + Align = alClient | |
139 | + BevelOuter = bvNone | |
140 | + Caption = 'Panel2' | |
141 | + TabOrder = 1 | |
142 | + object Panel3: TPanel | |
143 | + Left = 0 | |
144 | + Top = 0 | |
145 | + Width = 389 | |
146 | + Height = 48 | |
147 | + Align = alTop | |
148 | + BevelOuter = bvNone | |
149 | + TabOrder = 0 | |
150 | + object KeyNameEdit: TLabeledEdit | |
151 | + Left = 8 | |
152 | + Top = 21 | |
153 | + Width = 161 | |
154 | + Height = 20 | |
155 | + Hint = #20837#21147#12395#20351#12358#12461#12540#21517 | |
156 | + EditLabel.Width = 36 | |
157 | + EditLabel.Height = 12 | |
158 | + EditLabel.Caption = #12461#12540#21517 | |
159 | + LabelPosition = lpAbove | |
160 | + LabelSpacing = 3 | |
161 | + TabOrder = 0 | |
162 | + end | |
163 | + object CategoryNameEdit: TLabeledEdit | |
164 | + Left = 176 | |
165 | + Top = 21 | |
166 | + Width = 121 | |
167 | + Height = 20 | |
168 | + Hint = #20837#21147#12395#20351#12358#12459#12486#12468#12522#21517 | |
169 | + EditLabel.Width = 53 | |
170 | + EditLabel.Height = 12 | |
171 | + EditLabel.Caption = #12459#12486#12468#12522#21517 | |
172 | + LabelPosition = lpAbove | |
173 | + LabelSpacing = 3 | |
174 | + TabOrder = 1 | |
175 | + end | |
176 | + end | |
177 | + object Panel4: TPanel | |
178 | + Left = 0 | |
179 | + Top = 48 | |
180 | + Width = 389 | |
181 | + Height = 185 | |
182 | + Align = alClient | |
183 | + BevelOuter = bvNone | |
184 | + TabOrder = 1 | |
185 | + object GroupBox1: TGroupBox | |
186 | + Left = 0 | |
187 | + Top = 0 | |
188 | + Width = 389 | |
189 | + Height = 185 | |
190 | + Align = alClient | |
191 | + Caption = #25407#20837#25991#23383#21015 | |
192 | + TabOrder = 0 | |
193 | + object TextMemo: TMemo | |
194 | + Left = 2 | |
195 | + Top = 14 | |
196 | + Width = 385 | |
197 | + Height = 169 | |
198 | + Hint = #25407#20837#12377#12427#25991#23383#21015 | |
199 | + Align = alClient | |
200 | + ScrollBars = ssBoth | |
201 | + TabOrder = 0 | |
202 | + end | |
203 | + end | |
204 | + end | |
205 | + end | |
206 | + object ColumnImageList: TImageList | |
207 | + Left = 312 | |
208 | + Top = 192 | |
209 | + Bitmap = { | |
210 | + 494C010102000400040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 | |
211 | + 0000000000003600000028000000400000001000000001002000000000000010 | |
212 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
213 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
214 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
215 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
216 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
217 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
218 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
219 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
220 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
221 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
222 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
223 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
224 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
225 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
226 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
227 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
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 | + 000000000000000000000000000000000000000000000000000000000000FFFF | |
245 | + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 | |
246 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
247 | + 0000000000000000000080808000FFFFFF000000000000000000000000000000 | |
248 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
249 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
250 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
251 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
252 | + 0000000000000000000000000000000000000000000000000000000000008080 | |
253 | + 80008080800000000000000000000000000000000000FFFFFF00FFFFFF000000 | |
254 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
255 | + 0000000000008080800080808000FFFFFF00FFFFFF0000000000000000000000 | |
256 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
257 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
258 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
259 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
260 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
261 | + 00008080800000000000000000000000000000000000FFFFFF00000000000000 | |
262 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
263 | + 000000000000808080000000000000000000FFFFFF0000000000000000000000 | |
264 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
265 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
266 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
267 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
268 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
269 | + 000080808000808080000000000000000000FFFFFF00FFFFFF00000000000000 | |
270 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
271 | + 000080808000808080000000000000000000FFFFFF00FFFFFF00000000000000 | |
272 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
273 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
274 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
275 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
276 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
277 | + 000000000000808080000000000000000000FFFFFF0000000000000000000000 | |
278 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
279 | + 00008080800000000000000000000000000000000000FFFFFF00000000000000 | |
280 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
281 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
282 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
283 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
284 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
285 | + 0000000000008080800080808000FFFFFF00FFFFFF0000000000000000000000 | |
286 | + 0000000000000000000000000000000000000000000000000000000000008080 | |
287 | + 80008080800000000000000000000000000000000000FFFFFF00FFFFFF000000 | |
288 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
289 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
290 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
291 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
292 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
293 | + 0000000000000000000080808000FFFFFF000000000000000000000000000000 | |
294 | + 0000000000000000000000000000000000000000000000000000000000008080 | |
295 | + 8000808080008080800080808000808080008080800080808000808080000000 | |
296 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
297 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
298 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
299 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
300 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
301 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
302 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
303 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
304 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
305 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
306 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
307 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
308 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
309 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
310 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
311 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
312 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
313 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
314 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
315 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
316 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
317 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
318 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
319 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
320 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
321 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
322 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
323 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
324 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
325 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
326 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
327 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
328 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
329 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
330 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
331 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
332 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
333 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
334 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
335 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
336 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
337 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
338 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
339 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
340 | + 000000000000000000000000000000000000424D3E000000000000003E000000 | |
341 | + 2800000040000000100000000100010000000000800000000000000000000000 | |
342 | + 000000000000000000000000FFFFFF00FFFFFFFF00000000FFFFFFFF00000000 | |
343 | + FFFFFFFF00000000FFFFFFFF00000000E01FFCFF00000000E79FF87F00000000 | |
344 | + F7BFFB7F00000000F33FF33F00000000FB7FF7BF00000000F87FE79F00000000 | |
345 | + FCFFE01F00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000 | |
346 | + FFFFFFFF00000000FFFFFFFF0000000000000000000000000000000000000000 | |
347 | + 000000000000} | |
348 | + end | |
349 | + object InputAssistFormActionList: TActionList | |
350 | + Left = 360 | |
351 | + Top = 192 | |
352 | + object EditCut1: TEditCut | |
353 | + Category = #32232#38598 | |
354 | + Caption = #20999#12426#21462#12426'(&T)' | |
355 | + 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 | |
356 | + ImageIndex = 0 | |
357 | + ShortCut = 16472 | |
358 | + end | |
359 | + object EditCopy1: TEditCopy | |
360 | + Category = #32232#38598 | |
361 | + Caption = #12467#12500#12540'(&C)' | |
362 | + Hint = #12467#12500#12540'|'#36984#25246#37096#20998#12434#12467#12500#12540#12375#12289#12463#12522#12483#12503#12508#12540#12489#12395#36865#12427 | |
363 | + ImageIndex = 1 | |
364 | + ShortCut = 16451 | |
365 | + end | |
366 | + object EditPaste1: TEditPaste | |
367 | + Category = #32232#38598 | |
368 | + Caption = #36028#12426#20184#12369'(&P)' | |
369 | + Hint = #36028#12426#20184#12369'|'#12463#12522#12483#12503#12508#12540#12489#12398#20869#23481#12434#36028#12426#20184#12369#12427 | |
370 | + ImageIndex = 2 | |
371 | + ShortCut = 16470 | |
372 | + end | |
373 | + object EditSelectAll1: TEditSelectAll | |
374 | + Category = #32232#38598 | |
375 | + Caption = #12377#12409#12390#12434#36984#25246'(&A)' | |
376 | + Hint = #12377#12409#12390#12434#36984#25246'|'#12489#12461#12517#12513#12531#12488#20840#20307#12434#36984#25246#12377#12427 | |
377 | + ShortCut = 16449 | |
378 | + end | |
379 | + object EditUndo1: TEditUndo | |
380 | + Category = #32232#38598 | |
381 | + Caption = #20803#12395#25147#12377'(&U)' | |
382 | + Hint = #20803#12395#25147#12377'|'#30452#21069#12398#22793#26356#12434#20803#12395#25147#12377 | |
383 | + ImageIndex = 3 | |
384 | + ShortCut = 16474 | |
385 | + end | |
386 | + object EditDelete1: TEditDelete | |
387 | + Category = #32232#38598 | |
388 | + Caption = #21066#38500'(&D)' | |
389 | + Hint = #21066#38500'|'#36984#25246#37096#20998#12434#21066#38500#12377#12427 | |
390 | + ImageIndex = 5 | |
391 | + ShortCut = 46 | |
392 | + end | |
393 | + object InsertButtonAction: TAction | |
394 | + Category = #32232#38598 | |
395 | + Caption = #25407#20837 | |
396 | + OnExecute = InsertButtonActionExecute | |
397 | + OnUpdate = InsertButtonActionUpdate | |
398 | + end | |
399 | + object CloseAction: TAction | |
400 | + Category = #32232#38598 | |
401 | + Caption = 'CloseAction' | |
402 | + OnExecute = CloseActionExecute | |
403 | + end | |
404 | + end | |
405 | +end |
@@ -0,0 +1,319 @@ | ||
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 | + Panel3: TPanel; | |
16 | + KeyNameEdit: TLabeledEdit; | |
17 | + CategoryNameEdit: TLabeledEdit; | |
18 | + Panel4: TPanel; | |
19 | + TextMemo: TMemo; | |
20 | + ColumnImageList: TImageList; | |
21 | + InputAssistFormActionList: TActionList; | |
22 | + EditCut1: TEditCut; | |
23 | + EditCopy1: TEditCopy; | |
24 | + EditPaste1: TEditPaste; | |
25 | + EditSelectAll1: TEditSelectAll; | |
26 | + EditUndo1: TEditUndo; | |
27 | + EditDelete1: TEditDelete; | |
28 | + GroupBox1: TGroupBox; | |
29 | + Panel5: TPanel; | |
30 | + CloseButton: TButton; | |
31 | + ApplyButton: TButton; | |
32 | + DeleteButton: TButton; | |
33 | + AddButton: TButton; | |
34 | + Panel6: TPanel; | |
35 | + Panel7: TPanel; | |
36 | + CategoryComboBox: TComboBox; | |
37 | + CategoryComboLabel: TLabel; | |
38 | + InsertButton: TButton; | |
39 | + InsertButtonAction: TAction; | |
40 | + CloseAction: TAction; | |
41 | + procedure FormCreate(Sender: TObject); | |
42 | + procedure GikoListView1SelectItem(Sender: TObject; Item: TListItem; | |
43 | + Selected: Boolean); | |
44 | + procedure AddButtonClick(Sender: TObject); | |
45 | + procedure DeleteButtonClick(Sender: TObject); | |
46 | + procedure ApplyButtonClick(Sender: TObject); | |
47 | + procedure FormClose(Sender: TObject; var Action: TCloseAction); | |
48 | + procedure GikoListView1Compare(Sender: TObject; Item1, | |
49 | + Item2: TListItem; Data: Integer; var Compare: Integer); | |
50 | + procedure GikoListView1ColumnClick(Sender: TObject; | |
51 | + Column: TListColumn); | |
52 | + procedure CloseButtonClick(Sender: TObject); | |
53 | + procedure CategoryComboBoxKeyPress(Sender: TObject; var Key: Char); | |
54 | + procedure CategoryComboBoxChange(Sender: TObject); | |
55 | + procedure InsertButtonActionUpdate(Sender: TObject); | |
56 | + procedure InsertButtonActionExecute(Sender: TObject); | |
57 | + procedure CloseActionExecute(Sender: TObject); | |
58 | + private | |
59 | + { Private é¾ } | |
60 | + FSortColumn : Integer; | |
61 | + FInsertText : String; | |
62 | + procedure AddListViewItem(ResWord : TResistWord); | |
63 | + public | |
64 | + { Public é¾ } | |
65 | + procedure SetUpFromEditor(); | |
66 | + procedure SetUpFromMain(); | |
67 | + function GetInsertText(): String; | |
68 | + end; | |
69 | + | |
70 | +var | |
71 | + InputAssistForm: TInputAssistForm; | |
72 | + | |
73 | +implementation | |
74 | + | |
75 | + | |
76 | +{$R *.dfm} | |
77 | +//! tH[¶¬ÌCxg | |
78 | +procedure TInputAssistForm.FormCreate(Sender: TObject); | |
79 | +var | |
80 | + i : Integer; | |
81 | + column: TListColumn; | |
82 | +begin | |
83 | + FSortColumn := 0; | |
84 | + GikoListView1.Columns.Clear; | |
85 | + column := GikoListView1.Columns.Add; | |
86 | + column.ImageIndex := 0; | |
87 | + column.Caption := 'L['; | |
88 | + column.Width := 150; | |
89 | + column := GikoListView1.Columns.Add; | |
90 | + column.Caption := 'JeS'; | |
91 | + column.Width := 80; | |
92 | + for i := 0 to InputAssistDM.ResistWordCount - 1 do begin | |
93 | + AddListViewItem(InputAssistDM.GetResistWord(i)); | |
94 | + end; | |
95 | + //\[góÔðð (ðµÈ¢ÆACeÌL[¼ðÏXÅ«È¢) | |
96 | + InputAssistDM.Sorted := False; | |
97 | +end; | |
98 | +//! êÉACeðÇÁ·é | |
99 | +procedure TInputAssistForm.AddListViewItem(ResWord : TResistWord); | |
100 | +var | |
101 | + item: TListItem; | |
102 | +begin | |
103 | + item := GikoListView1.Items.Add; | |
104 | + item.ImageIndex := -1; | |
105 | + item.Caption := resWord.GetKey; | |
106 | + item.SubItems.Add(resWord.GetCategory); | |
107 | + item.Data := resWord; | |
108 | +end; | |
109 | +//! o^Pêê©çACeðIðµ½Æ«ÌCxg | |
110 | +procedure TInputAssistForm.GikoListView1SelectItem(Sender: TObject; | |
111 | + Item: TListItem; Selected: Boolean); | |
112 | +begin | |
113 | + if (Item <> nil) and (Item.Data <> nil) then begin | |
114 | + KeyNameEdit.Text := TResistWord(Item.Data).GetKey; | |
115 | + CategoryNameEdit.Text := TResistWord(Item.Data).GetCategory; | |
116 | + TextMemo.Lines.Text := TResistWord(Item.Data).GetText; | |
117 | + end else begin | |
118 | + TextMemo.Lines.Text := ''; | |
119 | + end; | |
120 | +end; | |
121 | +//! ÇÁ{^ºÌCxg | |
122 | +procedure TInputAssistForm.AddButtonClick(Sender: TObject); | |
123 | +var | |
124 | + resWord : TResistWord; | |
125 | +begin | |
126 | + if (Length(KeyNameEdit.Text) = 0) then begin | |
127 | + ShowMessage('L[¼ðÝèµÄ¾³¢B'); | |
128 | + end else begin | |
129 | + resWord := InputAssistDM.Add(KeyNameEdit.Text); | |
130 | + resWord.SetCategory(CategoryNameEdit.Text); | |
131 | + resWord.SetText(TextMemo.Text); | |
132 | + AddListViewItem(resWord); | |
133 | + GikoListView1.AlphaSort; | |
134 | + end; | |
135 | +end; | |
136 | +//! í{^ºÌCxg | |
137 | +procedure TInputAssistForm.DeleteButtonClick(Sender: TObject); | |
138 | +begin | |
139 | + if GikoListView1.Selected <> nil then begin | |
140 | + InputAssistDM.DeleteResistWord(GikoListView1.Selected.Data); | |
141 | + GikoListView1.Selected.Data := nil; | |
142 | + GikoListView1.DeleteSelected; | |
143 | + end; | |
144 | +end; | |
145 | +//! Kp{^ºÌCxg | |
146 | +procedure TInputAssistForm.ApplyButtonClick(Sender: TObject); | |
147 | +var | |
148 | + resWord : TResistWord; | |
149 | +begin | |
150 | + if GikoListView1.Selected <> nil then begin | |
151 | + if (Length(KeyNameEdit.Text) = 0) then begin | |
152 | + ShowMessage('L[¼ð³µÉÍūܹñB'); | |
153 | + end else begin | |
154 | + resWord := TResistWord(GikoListView1.Selected.Data); | |
155 | + resWord.SetKey(KeyNameEdit.Text); | |
156 | + resWord.SetCategory(CategoryNameEdit.Text); | |
157 | + resWord.SetText(TextMemo.Text); | |
158 | + // êÌXV | |
159 | + GikoListView1.Selected.Caption := resWord.GetKey; | |
160 | + GikoListView1.Selected.SubItems[0] := resWord.GetCategory; | |
161 | + GikoListView1.AlphaSort; | |
162 | + end; | |
163 | + end; | |
164 | +end; | |
165 | +//! tH[ð¶éÆ«ÌCxg | |
166 | +procedure TInputAssistForm.FormClose(Sender: TObject; | |
167 | + var Action: TCloseAction); | |
168 | +begin | |
169 | + //\[góÔÌÝè | |
170 | + InputAssistDM.Sorted := True; | |
171 | +end; | |
172 | +//! o^PêêÌ\[gpÌär | |
173 | +procedure TInputAssistForm.GikoListView1Compare(Sender: TObject; Item1, | |
174 | + Item2: TListItem; Data: Integer; var Compare: Integer); | |
175 | +begin | |
176 | + if ((FSortColumn and 2) > 0) then begin | |
177 | + // JeSÅ\[g | |
178 | + Compare := AnsiCompareStr(Item1.SubItems[0], Item2.SubItems[0]); | |
179 | + if (Compare = 0) then begin | |
180 | + Compare := AnsiCompareStr(Item1.Caption, Item2.Caption); | |
181 | + end; | |
182 | + end else begin | |
183 | + // L[Å\[g | |
184 | + Compare := AnsiCompareStr(Item1.Caption, Item2.Caption); | |
185 | + if (Compare = 0) then begin | |
186 | + Compare := AnsiCompareStr(Item1.SubItems[0], Item2.SubItems[0]); | |
187 | + end; | |
188 | + end; | |
189 | + // ¸~̽] | |
190 | + if ((FSortColumn and 1) > 0) then begin | |
191 | + Compare := Compare * -1; | |
192 | + end; | |
193 | + ; | |
194 | +end; | |
195 | +//! o^PêêÌXgÌJNbNCxg | |
196 | +procedure TInputAssistForm.GikoListView1ColumnClick(Sender: TObject; | |
197 | + Column: TListColumn); | |
198 | +var | |
199 | + i : Integer; | |
200 | +begin | |
201 | + if Column <> nil then begin | |
202 | + // C[WÌí | |
203 | + for i := 0 to GikoListView1.Columns.Count - 1 do begin | |
204 | + GikoListView1.Column[i].ImageIndex := -1; | |
205 | + end; | |
206 | + | |
207 | + // FSortColumn ô:¸ ïF~ | |
208 | + if Column.Caption = 'L[' then begin | |
209 | + if FSortColumn = 0 then begin | |
210 | + FSortColumn := 1; | |
211 | + end else begin | |
212 | + FSortColumn := 0; | |
213 | + end; | |
214 | + end else begin | |
215 | + if FSortColumn = 2 then begin | |
216 | + FSortColumn := 3; | |
217 | + end else begin | |
218 | + FSortColumn := 2; | |
219 | + end; | |
220 | + end; | |
221 | + Column.ImageIndex := (FSortColumn and 1); | |
222 | + GikoListView1.AlphaSort; | |
223 | + end; | |
224 | + | |
225 | +end; | |
226 | +//! I¹{^ðºÌCxg | |
227 | +procedure TInputAssistForm.CloseButtonClick(Sender: TObject); | |
228 | +begin | |
229 | + Close(); | |
230 | +end; | |
231 | +//! JeSiÝR{{bNXðÇæêpÉ·é½ßÌCxg | |
232 | +procedure TInputAssistForm.CategoryComboBoxKeyPress(Sender: TObject; | |
233 | + var Key: Char); | |
234 | +begin | |
235 | + Key := #0; | |
236 | +end; | |
237 | +//! JeSiÝR{{bNXÅÌJeSÏX | |
238 | +procedure TInputAssistForm.CategoryComboBoxChange(Sender: TObject); | |
239 | +var | |
240 | + i : Integer; | |
241 | + key : String; | |
242 | +begin | |
243 | + LockWindowUpdate(GikoListView1.Handle); | |
244 | + GikoListView1.Clear; | |
245 | + if (CategoryComboBox.ItemIndex <= 0) then begin | |
246 | + for i := 0 to InputAssistDM.ResistWordCount - 1 do begin | |
247 | + AddListViewItem(InputAssistDM.GetResistWord(i)); | |
248 | + end; | |
249 | + end else begin | |
250 | + key := CategoryComboBox.Items[CategoryComboBox.ItemIndex]; | |
251 | + for i := 0 to InputAssistDM.ResistWordCount - 1 do begin | |
252 | + if (key = InputAssistDM.GetResistWord(i).GetCategory) then begin | |
253 | + AddListViewItem(InputAssistDM.GetResistWord(i)); | |
254 | + end; | |
255 | + end; | |
256 | + end; | |
257 | + LockWindowUpdate(0); | |
258 | +end; | |
259 | + | |
260 | +procedure TInputAssistForm.SetUpFromMain(); | |
261 | +begin | |
262 | + Self.Caption := 'üÍAVXgÝè'; | |
263 | + Panel3.Visible := True; | |
264 | + Panel5.Visible := True; | |
265 | + Panel7.Visible := False; | |
266 | + TextMemo.ReadOnly := False; | |
267 | + FInsertText := ''; | |
268 | + CloseAction.ShortCut := TShortCut(0); | |
269 | +end; | |
270 | +procedure TInputAssistForm.SetUpFromEditor(); | |
271 | +var | |
272 | + cat : TStringList; | |
273 | +begin | |
274 | + Self.Caption := 'üÍAVXg'; | |
275 | + Panel3.Visible := False; | |
276 | + Panel5.Visible := False; | |
277 | + Panel7.Visible := True; | |
278 | + TextMemo.ReadOnly := True; | |
279 | + FInsertText := ''; | |
280 | + CloseAction.ShortCut := ShortCut(VK_ESCAPE, []); | |
281 | + // õp | |
282 | + cat := TStringList.Create; | |
283 | + try | |
284 | + InputAssistDM.GetCategoryList(cat); | |
285 | + CategoryComboBox.Items.Clear; | |
286 | + CategoryComboBox.Items.Add(''); | |
287 | + CategoryComboBox.Items.AddStrings(cat); | |
288 | + CategoryComboBox.ItemIndex := 0; | |
289 | + finally | |
290 | + cat.Free; | |
291 | + end; | |
292 | +end; | |
293 | +function TInputAssistForm.GetInsertText(): String; | |
294 | +begin | |
295 | + Result := FInsertText; | |
296 | +end; | |
297 | + | |
298 | +procedure TInputAssistForm.InsertButtonActionUpdate(Sender: TObject); | |
299 | +begin | |
300 | + InsertButtonAction.Enabled := (GikoListView1.Selected <> nil); | |
301 | +end; | |
302 | + | |
303 | +procedure TInputAssistForm.InsertButtonActionExecute(Sender: TObject); | |
304 | +begin | |
305 | + if (GikoListView1.Selected = nil) then begin | |
306 | + FInsertText := ''; | |
307 | + Self.ModalResult := mrNone; | |
308 | + end else begin | |
309 | + FInsertText := TResistWord(GikoListView1.Selected.Data).GetText; | |
310 | + Self.ModalResult := mrOk; | |
311 | + end; | |
312 | +end; | |
313 | + | |
314 | +procedure TInputAssistForm.CloseActionExecute(Sender: TObject); | |
315 | +begin | |
316 | + Self.ModalResult := mrCancel; | |
317 | +end; | |
318 | + | |
319 | +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,371 @@ | ||
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 | + //! KeyÌJeSÉo^³êÄ¢éPêðæ¾ | |
36 | + function GetCategoryResistWords(Key: String; var list: TStringList): Integer; | |
37 | + //! o^ÏÝL[ÌSÄÌJeSXgæ¾ | |
38 | + procedure GetCategoryList(var list: TStringList); | |
39 | + | |
40 | + end; | |
41 | + | |
42 | + TResistWord = class(TObject) | |
43 | + private | |
44 | + FKey : String; ///< Ï·ÌL[ÉÈé | |
45 | + FCategory : String; ///< ªÞ | |
46 | + FText : String; ///< è^¶ | |
47 | + public | |
48 | + function GetKey: String; | |
49 | + procedure SetKey(Value: String); | |
50 | + function GetCategory: String; | |
51 | + procedure SetCategory(Value: String); | |
52 | + function GetText: String; | |
53 | + procedure SetText(Value: String); | |
54 | + property Key: String read FKey write FKey; | |
55 | + property Category: String read FCategory write FCategory; | |
56 | + property Text: String read GetText write SetText; | |
57 | + end; | |
58 | + | |
59 | + function CategorySort(List: TStringList; Index1, Index2: Integer): Integer; | |
60 | +var | |
61 | + InputAssistDM: TInputAssistDM; | |
62 | + | |
63 | +implementation | |
64 | + | |
65 | +uses | |
66 | + MojuUtils, IniFiles; | |
67 | + | |
68 | +{$R *.dfm} | |
69 | +//! FKeyÉÝè³êÄ¢élðæ¾·é | |
70 | +function TResistWord.GetKey: String; | |
71 | +begin | |
72 | + //GXP[vµÄ¢é=ð³·é | |
73 | + Result := MojuUtils.CustomStringReplace(FKey, '=', '='); | |
74 | +end; | |
75 | +//! FKeyÉlðÝè·é | |
76 | +procedure TResistWord.SetKey(Value: String); | |
77 | +begin | |
78 | + //=ÍÛ¶Ég¤ÌÅGXP[v·é | |
79 | + FKey := MojuUtils.CustomStringReplace(Value, '=', '='); | |
80 | +end; | |
81 | +//! FCategoryÉÝè³êÄ¢élðæ¾·é | |
82 | +function TResistWord.GetCategory: String; | |
83 | +begin | |
84 | + //GXP[vµÄ¢é=ð³·é | |
85 | + Result := MojuUtils.CustomStringReplace(FCategory, '=', '='); | |
86 | +end; | |
87 | +//! FCategoryÉlðÝè·é | |
88 | +procedure TResistWord.SetCategory(Value: String); | |
89 | +begin | |
90 | + //=ÍÛ¶Ég¤ÌÅGXP[v·é | |
91 | + FCategory := MojuUtils.CustomStringReplace(Value, '=', '='); | |
92 | +end; | |
93 | +//! FTextÉÝè³êÄ¢élðæ¾·é | |
94 | +function TResistWord.GetText: String; | |
95 | +begin | |
96 | + //GXP[vµÄ¢é=ð³·é | |
97 | + Result := MojuUtils.CustomStringReplace(FText, '=', '='); | |
98 | + // #1ɵ½üsR[hð#13#10ɳ·é | |
99 | + Result := MojuUtils.CustomStringReplace(Result, #1, #13#10); | |
100 | +end; | |
101 | +procedure TResistWord.SetText(Value: String); | |
102 | +begin | |
103 | + //=ÍÛ¶Ég¤ÌÅGXP[v·é | |
104 | + FText := MojuUtils.CustomStringReplace(Value, '=', '='); | |
105 | + //üsR[hð#1É·éi1sÉ·é½ß) | |
106 | + FText := MojuUtils.CustomStringReplace(FText, #13#10, #1); | |
107 | +end; | |
108 | +//! t@CðÇÝñÅú»·é | |
109 | +procedure TInputAssistDM.Init(FilePath: String); | |
110 | +var | |
111 | + ini : TMemIniFile; | |
112 | + sections: TStringList; | |
113 | + keys: TStringList; | |
114 | + i, j : Integer; | |
115 | + resWord : TResistWord; | |
116 | +begin | |
117 | + FInit := True; | |
118 | + try | |
119 | + // t@C̶ÝðmF | |
120 | + if FileExists(FilePath) then begin | |
121 | + ini := TMemIniFile.Create(FilePath); | |
122 | + sections := TStringList.Create; | |
123 | + keys := TStringList.Create; | |
124 | + try | |
125 | + ini.ReadSections(sections); | |
126 | + | |
127 | + for i :=0 to sections.Count - 1 do begin | |
128 | + keys.Clear; | |
129 | + ini.ReadSection(sections[i], keys); | |
130 | + for j := 0 to keys.Count - 1 do begin | |
131 | + resWord := TResistWord.Create; | |
132 | + resWord.SetCategory(sections[i]); | |
133 | + resWord.SetKey(keys[j]); | |
134 | + resWord.SetText(ini.ReadString(sections[i], keys[j], '')); | |
135 | + FDictionary.AddObject(resWord.GetKey, resWord); | |
136 | + end; | |
137 | + end; | |
138 | + finally | |
139 | + keys.Free; | |
140 | + sections.Free; | |
141 | + ini.Free; | |
142 | + end; | |
143 | + end; | |
144 | + | |
145 | + except | |
146 | + FInit := False; | |
147 | + end; | |
148 | +end; | |
149 | +//! wè³ê½pXÌt@CÉÛ¶·é | |
150 | +procedure TInputAssistDM.SaveToFile(FilePath: String); | |
151 | +var | |
152 | + ini : TMemIniFile; | |
153 | + i : Integer; | |
154 | + resWord : TResistWord; | |
155 | +begin | |
156 | + if FileExists(FilePath) then begin | |
157 | + try | |
158 | + DeleteFile(FilePath); | |
159 | + except | |
160 | + end; | |
161 | + end; | |
162 | + ini := TMemIniFile.Create(FilePath); | |
163 | + try | |
164 | + for i :=0 to FDictionary.Count - 1 do begin | |
165 | + resWord := TResistWord(FDictionary.Objects[i]); | |
166 | + ini.WriteString(resWord.FCategory, resWord.FKey, resWord.FText); | |
167 | + end; | |
168 | + ini.UpdateFile; | |
169 | + finally | |
170 | + ini.Free; | |
171 | + end; | |
172 | +end; | |
173 | +//! fXgN^ | |
174 | +procedure TInputAssistDM.DataModuleDestroy(Sender: TObject); | |
175 | +var | |
176 | + i : Integer; | |
177 | +begin | |
178 | + if (FDictionary <> nil) then begin | |
179 | + for i := FDictionary.Count - 1 downto 0 do begin | |
180 | + TResistWord(FDictionary.Objects[i]).Free; | |
181 | + end; | |
182 | + FDictionary.Clear; | |
183 | + FDictionary.Capacity := 0; | |
184 | + FDictionary.Free; | |
185 | + end; | |
186 | +end; | |
187 | +//! RXgN^ | |
188 | +procedure TInputAssistDM.DataModuleCreate(Sender: TObject); | |
189 | +begin | |
190 | + FDictionary := TStringList.Create; | |
191 | + FDictionary.Duplicates := dupAccept; | |
192 | + FDictionary.Sorted := True; | |
193 | +end; | |
194 | +//! o^Pêæ¾ | |
195 | +function TInputAssistDM.ResistWordCount : Integer; | |
196 | +begin | |
197 | + Result := 0; | |
198 | + if (FDictionary <> nil) then begin | |
199 | + Result := FDictionary.Count; | |
200 | + end; | |
201 | +end; | |
202 | +//! o^Pêæ¾ | |
203 | +function TInputAssistDM.GetResistWord(Index: Integer): TResistWord; | |
204 | +begin | |
205 | + Result := nil; | |
206 | + if (FDictionary <> nil) then begin | |
207 | + if (Index >= 0) and (Index < FDictionary.Count) then begin | |
208 | + Result := TResistWord(FDictionary.Objects[index]); | |
209 | + end; | |
210 | + end; | |
211 | +end; | |
212 | +//! o^PêÌí | |
213 | +procedure TInputAssistDM.DeleteResistWord(ResistWord: TResistWord); | |
214 | +var | |
215 | + i : Integer; | |
216 | +begin | |
217 | + if (FDictionary <> nil) then begin | |
218 | + for i := 0 to FDictionary.Count - 1 do begin | |
219 | + if (ResistWord = FDictionary.Objects[i]) then begin | |
220 | + TResistWord(FDictionary.Objects[i]).Free; | |
221 | + FDictionary.Delete(i); | |
222 | + break; | |
223 | + end; | |
224 | + end; | |
225 | + end; | |
226 | +end; | |
227 | +//! o^PêÇÁ | |
228 | +function TInputAssistDM.Add(Key: String): TResistWord; | |
229 | +var | |
230 | + resWord : TResistWord; | |
231 | +begin | |
232 | + Result := nil; | |
233 | + if (FDictionary <> nil) then begin | |
234 | + resWord := TResistWord.Create; | |
235 | + resWord.SetKey(Key); | |
236 | + resWord.SetCategory('JeS'); | |
237 | + resWord.SetText('è^¶'); | |
238 | + FDictionary.AddObject(Key, resWord); | |
239 | + Result := resWord; | |
240 | + end; | |
241 | +end; | |
242 | +//! o^PêÌL[ÏX | |
243 | +procedure TInputAssistDM.ChangeKey(ResistWord: TResistWord); | |
244 | +var | |
245 | + i : Integer; | |
246 | +begin | |
247 | + if (FDictionary <> nil) then begin | |
248 | + for i := 0 to FDictionary.Count - 1 do begin | |
249 | + if (ResistWord = FDictionary.Objects[i]) then begin | |
250 | + FDictionary.Strings[i] := ResistWord.GetKey; | |
251 | + break; | |
252 | + end; | |
253 | + end; | |
254 | + end; | |
255 | +end; | |
256 | +//! KeyðÂo^³êÄ¢éPêðæ¾ | |
257 | +function TInputAssistDM.GetStartWithKeyResistWords(Key: String; var list: TStringList): Integer; | |
258 | +var | |
259 | + i : Integer; | |
260 | + resWord : TResistWord; | |
261 | + | |
262 | +begin | |
263 | + Result := 0; | |
264 | + if (FDictionary <> nil) and (list <> nil) then begin | |
265 | + Key := ZenToHan(Key); | |
266 | + for i := 0 to FDictionary.Count - 1 do begin | |
267 | + if (AnsiPos(Key, ZenToHan(FDictionary.Strings[i])) = 1) then begin | |
268 | + Inc(Result); | |
269 | + resWord := TResistWord(FDictionary.Objects[i]); | |
270 | + list.AddObject(resWord.GetKey + '(' + | |
271 | + resWord.GetCategory + ')', resWord); | |
272 | + end else if (Result > 0) then begin | |
273 | + //\[g³êÄ¢é©çAqbg·êÎA±·é͸ | |
274 | + break; | |
275 | + end; | |
276 | + end; | |
277 | + end; | |
278 | +end; | |
279 | +//! KeyðJeSÉÂo^³êÄ¢éPêðæ¾ | |
280 | +function TInputAssistDM.GetStartWithCategoryResistWords(Key: String; var list: TStringList): Integer; | |
281 | +var | |
282 | + i : Integer; | |
283 | + resWord : TResistWord; | |
284 | +begin | |
285 | + Result := 0; | |
286 | + if (FDictionary <> nil) and (list <> nil) then begin | |
287 | + Key := ZenToHan(Key); | |
288 | + for i := 0 to FDictionary.Count - 1 do begin | |
289 | + resWord := TResistWord(FDictionary.Objects[i]); | |
290 | + if (AnsiPos(Key, ZenToHan(resWord.GetCategory)) = 1) then begin | |
291 | + Inc(Result); | |
292 | + list.AddObject(resWord.GetKey + '(' + | |
293 | + resWord.GetCategory + ')', resWord); | |
294 | + end; | |
295 | + end; | |
296 | + list.CustomSort(CategorySort); | |
297 | + end; | |
298 | +end; | |
299 | + | |
300 | +//! \[gÌóÔÌæ¾ | |
301 | +function TInputAssistDM.GetSorted: Boolean; | |
302 | +begin | |
303 | + Result := False; | |
304 | + if (FDictionary <> nil) then begin | |
305 | + Result := FDictionary.Sorted; | |
306 | + end; | |
307 | +end; | |
308 | +//! \[góÔÌÝè | |
309 | +procedure TInputAssistDM.SetSorted(Value: Boolean); | |
310 | +begin | |
311 | + if (FDictionary <> nil) then begin | |
312 | + FDictionary.Sorted := Value; | |
313 | + end; | |
314 | +end; | |
315 | +//! KeyÌJeSÉo^³êÄ¢éPêðæ¾ | |
316 | +function TInputAssistDM.GetCategoryResistWords(Key: String; var list: TStringList): Integer; | |
317 | +var | |
318 | + i : Integer; | |
319 | + resWord : TResistWord; | |
320 | +begin | |
321 | + Result := 0; | |
322 | + if (FDictionary <> nil) and (list <> nil) then begin | |
323 | + for i := 0 to FDictionary.Count - 1 do begin | |
324 | + resWord := TResistWord(FDictionary.Objects[i]); | |
325 | + if (Key = resWord.GetCategory) then begin | |
326 | + Inc(Result); | |
327 | + list.AddObject(resWord.GetKey + '(' + | |
328 | + resWord.GetCategory + ')', resWord); | |
329 | + end; | |
330 | + end; | |
331 | + list.CustomSort(CategorySort); | |
332 | + end; | |
333 | +end; | |
334 | + | |
335 | +//! o^ÏÝL[ÌSÄÌJeSXgæ¾ | |
336 | +procedure TInputAssistDM.GetCategoryList(var list: TStringList); | |
337 | +var | |
338 | + i : Integer; | |
339 | +begin | |
340 | + if (FDictionary <> nil) and (list <> nil) then begin | |
341 | + // d¡`FbNðTStringListÌ@\Ås¤ | |
342 | + list.Clear; | |
343 | + list.Duplicates := dupIgnore; | |
344 | + list.Sorted := true; | |
345 | + list.BeginUpdate; | |
346 | + for i := 0 to FDictionary.Count - 1 do begin | |
347 | + list.Add(TResistWord(FDictionary.Objects[i]).GetCategory); | |
348 | + end; | |
349 | + list.EndUpdate; | |
350 | + end; | |
351 | +end; | |
352 | + | |
353 | +//! KeyðJeSÉÂo^PêðÔ·Ì\[gpär\bh | |
354 | +function CategorySort(List: TStringList; Index1, Index2: Integer): Integer; | |
355 | +var | |
356 | + resWord1 : TResistWord; | |
357 | + resWord2 : TResistWord; | |
358 | +begin | |
359 | + Result := 0; | |
360 | + try | |
361 | + resWord1 := TResistWord(List.Objects[Index1]); | |
362 | + resWord2 := TResistWord(List.Objects[Index2]); | |
363 | + Result := AnsiCompareStr(resWord1.GetCategory, resWord2.GetCategory); | |
364 | + if (Result = 0) then begin | |
365 | + Result := AnsiCompareStr(resWord1.GetKey, resWord2.GetKey); | |
366 | + end; | |
367 | + except | |
368 | + end; | |
369 | +end; | |
370 | + | |
371 | +end. |
@@ -981,9 +981,9 @@ begin | ||
981 | 981 | |
982 | 982 | //dat¿XÌ\[gðè·é½ßÉ\[g·é |
983 | 983 | if GikoSys.Setting.DatOchiSortIndex >= 0 then begin |
984 | - Sort.SortNoFlag := true; | |
985 | - Sort.SortOrder := GikoSys.Setting.DatOchiSortOrder; | |
986 | - Sort.SortIndex := GikoSys.Setting.DatOchiSortIndex; | |
984 | + Sort.SetSortNoFlag(true); | |
985 | + Sort.SetSortOrder(GikoSys.Setting.DatOchiSortOrder); | |
986 | + Sort.SetSortIndex(GikoSys.Setting.DatOchiSortIndex); | |
987 | 987 | //Sort.SortNonAcquiredCountFlag := GikoSys.Setting.NonAcquiredCount; |
988 | 988 | Board.CustomSort(ThreadItemSortProc); |
989 | 989 | end; |
@@ -1029,7 +1029,7 @@ begin | ||
1029 | 1029 | Board.Items[i].No := Board.IntData; |
1030 | 1030 | Board.Items[i].AllResCount := Board.Items[i].Count; |
1031 | 1031 | Board.Items[i].NewResCount := 0; |
1032 | - Board.Items[i].AgeSage := gasNone; | |
1032 | + Board.Items[i].AgeSage := gasArch; | |
1033 | 1033 | end; |
1034 | 1034 | end; |
1035 | 1035 |
@@ -1084,7 +1084,7 @@ begin | ||
1084 | 1084 | Board.Items[i].No := NumCount; |
1085 | 1085 | Board.Items[i].AllResCount := Board.Items[i].Count; |
1086 | 1086 | Board.Items[i].NewResCount := 0; |
1087 | - Board.Items[i].AgeSage := gasNone; | |
1087 | + Board.Items[i].AgeSage := gasArch; | |
1088 | 1088 | end; |
1089 | 1089 | end; |
1090 | 1090 | //Xg(subject.txt)ðÛ¶ |
@@ -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 |
@@ -10,6 +10,7 @@ type | ||
10 | 10 | TListViewUtils = class(TObject) |
11 | 11 | private |
12 | 12 | {Private é¾} |
13 | + | |
13 | 14 | class procedure DrawCategoryItem(BBS: TBBS; Item: TListItem; ListView: TListView); |
14 | 15 | class procedure DrawBoardItem(Category: TCategory; Item: TListItem; ListView: TListView); |
15 | 16 | class procedure DrawThreadItem(Board: TBoard; Item: TListItem; ListView: TListView); |
@@ -30,11 +31,10 @@ type | ||
30 | 31 | class procedure ListViewData(Sender: TObject; Item: TListItem); |
31 | 32 | end; |
32 | 33 | |
33 | - | |
34 | 34 | implementation |
35 | 35 | |
36 | 36 | uses |
37 | - GikoSystem, Sort, Setting, Giko, MojuUtils, GikoDataModule; | |
37 | + GikoSystem, Sort, Setting, Giko, MojuUtils, GikoDataModule, DateUtils, Math; | |
38 | 38 | |
39 | 39 | const |
40 | 40 | //c[EXgACR |
@@ -80,9 +80,9 @@ begin | ||
80 | 80 | |
81 | 81 | // Lrlbg\¦OÉÄ\[g |
82 | 82 | if ( GikoSys.Setting.BBSSortIndex <> 0 ) or ( GikoSys.Setting.BBSSortOrder <> true ) then begin |
83 | - Sort.SortOrder := true; | |
84 | - Sort.SortIndex := 0; | |
85 | - Sort.SortNoFlag := true; | |
83 | + Sort.SetSortOrder(true); | |
84 | + Sort.SetSortIndex(0); | |
85 | + Sort.SetSortNoFlag(true); | |
86 | 86 | inBBS.Sort(CategorySortProc); |
87 | 87 | end; |
88 | 88 |
@@ -99,9 +99,9 @@ begin | ||
99 | 99 | |
100 | 100 | // Lrlbg\¦OÉÄ\[g |
101 | 101 | if ( GikoSys.Setting.CategorySortIndex <> 0 ) or ( GikoSys.Setting.CategorySortOrder <> true ) then begin |
102 | - Sort.SortOrder := true; | |
103 | - Sort.SortIndex := 0; | |
104 | - Sort.SortNoFlag := true; | |
102 | + Sort.SetSortOrder(true); | |
103 | + Sort.SetSortIndex(0); | |
104 | + Sort.SetSortNoFlag(true); | |
105 | 105 | Category.CustomSort(BoardSortProc); |
106 | 106 | end; |
107 | 107 |
@@ -221,31 +221,31 @@ begin | ||
221 | 221 | ListView.Column[ idx ].ImageIndex := ITEM_ICON_SORT2; |
222 | 222 | |
223 | 223 | |
224 | - Sort.SortNoFlag := NumberVisible; | |
224 | + Sort.SetSortNoFlag(NumberVisible); | |
225 | 225 | |
226 | 226 | if TObject( GikoForm.ActiveList ) is TBBS then begin |
227 | 227 | wkBBS := TBBS( GikoForm.ActiveList ); |
228 | 228 | orderList := GikoSys.Setting.BBSColumnOrder; |
229 | - Sort.SortOrder := vSortOrder; | |
230 | - Sort.SortIndex := Integer( orderList[ idx ] ); | |
231 | - GikoSys.Setting.BBSSortIndex := Sort.SortIndex; | |
232 | - GikoSys.Setting.BBSSortOrder := Sort.SortOrder; | |
229 | + Sort.SetSortOrder(vSortOrder); | |
230 | + Sort.SetSortIndex(Integer( orderList[ idx ] )); | |
231 | + GikoSys.Setting.BBSSortIndex := Sort.GetSortIndex; | |
232 | + GikoSys.Setting.BBSSortOrder := Sort.GetSortOrder; | |
233 | 233 | wkBBS.Sort(Sort.CategorySortProc); |
234 | 234 | end else if TObject( GikoForm.ActiveList ) is TCategory then begin |
235 | 235 | wkCategory := TCategory( GikoForm.ActiveList ); |
236 | 236 | orderList := GikoSys.Setting.CategoryColumnOrder; |
237 | - Sort.SortOrder := vSortOrder; | |
238 | - Sort.SortIndex := Integer( orderList[ idx ] ); | |
239 | - GikoSys.Setting.CategorySortIndex := Sort.SortIndex; | |
240 | - GikoSys.Setting.CategorySortOrder := Sort.SortOrder; | |
237 | + Sort.SetSortOrder(vSortOrder); | |
238 | + Sort.SetSortIndex(Integer( orderList[ idx ] )); | |
239 | + GikoSys.Setting.CategorySortIndex := Sort.GetSortIndex; | |
240 | + GikoSys.Setting.CategorySortOrder := Sort.GetSortOrder; | |
241 | 241 | wkCategory.CustomSort(BoardSortProc); |
242 | 242 | end else if TObject( GikoForm.ActiveList ) is TBoard then begin |
243 | 243 | wkBoard := TBoard( GikoForm.ActiveList ); |
244 | 244 | orderList := GikoSys.Setting.BoardColumnOrder; |
245 | - Sort.SortOrder := vSortOrder; | |
246 | - Sort.SortIndex := Integer( orderList[ idx ] ); | |
247 | - GikoSys.Setting.BoardSortIndex := Sort.SortIndex; | |
248 | - GikoSys.Setting.BoardSortOrder := Sort.SortOrder; | |
245 | + Sort.SetSortOrder(vSortOrder); | |
246 | + Sort.SetSortIndex(Integer( orderList[ idx ] )); | |
247 | + GikoSys.Setting.BoardSortIndex := Sort.GetSortIndex; | |
248 | + GikoSys.Setting.BoardSortOrder := Sort.GetSortOrder; | |
249 | 249 | wkBoard.CustomSort(ThreadItemSortProc); |
250 | 250 | end; |
251 | 251 |
@@ -405,6 +405,16 @@ begin | ||
405 | 405 | Board.NewThreadCount := Board.GetNewThreadCount; |
406 | 406 | ListView.Items.Count := Board.NewThreadCount; |
407 | 407 | end; |
408 | + gvtArch: | |
409 | + begin | |
410 | + Board.ArchiveThreadCount := Board.GetArchiveThreadCount; | |
411 | + ListView.Items.Count := Board.ArchiveThreadCount; | |
412 | + end; | |
413 | + gvtLive: | |
414 | + begin | |
415 | + Board.LiveThreadCount := Board.GetLiveThreadCount; | |
416 | + ListView.Items.Count := Board.LiveThreadCount; | |
417 | + end; | |
408 | 418 | gvtUser: |
409 | 419 | begin |
410 | 420 | Board.UserThreadCount:= Board.GetUserThreadCount; |
@@ -555,6 +565,8 @@ begin | ||
555 | 565 | gvtAll: BoardCnt := Board.Count; |
556 | 566 | gvtLog: BoardCnt := Board.LogThreadCount; |
557 | 567 | gvtNew: BoardCnt := Board.NewThreadCount; |
568 | + gvtArch: BoardCnt := Board.ArchiveThreadCount; | |
569 | + gvtLive: BoardCnt := Board.LiveThreadCount; | |
558 | 570 | gvtUser: BoardCnt := Board.UserThreadCount; |
559 | 571 | else |
560 | 572 | BoardCnt := 0; |
@@ -570,6 +582,8 @@ begin | ||
570 | 582 | ThreadItem := TThreadItem(Board.Items[Item.Index]); |
571 | 583 | gvtLog: ThreadItem := Board.GetLogThread(Item.Index); |
572 | 584 | gvtNew: ThreadItem := Board.GetNewThread(Item.Index); |
585 | + gvtArch: ThreadItem := Board.GetArchiveThread(Item.Index); | |
586 | + gvtLive: ThreadItem := Board.GetLiveThread(Item.Index); | |
573 | 587 | gvtUser: ThreadItem := Board.GetUserThread(Item.Index); |
574 | 588 | end; |
575 | 589 | ////////////////////////////////////////////////////////////////////////// |
@@ -598,6 +612,7 @@ begin | ||
598 | 612 | gasNew: Item.StateIndex := 0; |
599 | 613 | gasAge: Item.StateIndex := 1; |
600 | 614 | gasSage: Item.StateIndex := 2; |
615 | + gasArch: Item.StateIndex := 3; | |
601 | 616 | end; |
602 | 617 | |
603 | 618 | if ThreadItem.IsLogFile then begin |
@@ -612,6 +627,7 @@ end; | ||
612 | 627 | class procedure TListViewUtils.DrawItemLogThread(Thread: TThreadItem; Item: TListItem; ColumnCount: Integer); |
613 | 628 | var |
614 | 629 | i, idx : Integer; |
630 | + spanday: Double; | |
615 | 631 | begin |
616 | 632 | idx := 0; |
617 | 633 | for i := 0 to ColumnCount - 1 do begin |
@@ -655,6 +671,20 @@ begin | ||
655 | 671 | Item.SubItems[ idx ] := ''; |
656 | 672 | end else |
657 | 673 | Item.SubItems[ idx ] := FormatDateTime('yyyy/mm/dd hh:mm:ss', Thread.LastModified); |
674 | + gbcVigor: | |
675 | + begin | |
676 | + if (Thread.AgeSage <> gasArch) then begin | |
677 | + spanday := DaySpan(Sort.GetSortDate, Thread.CreateDate); | |
678 | + end else begin | |
679 | + spanday := DaySpan(Thread.LastModified, Thread.CreateDate); | |
680 | + end; | |
681 | + if (spanday > 0) then begin | |
682 | + Item.SubItems[ idx ] := Format('%f', [Thread.AllResCount / spanday]); | |
683 | + end else begin | |
684 | + Item.SubItems[ idx ] := ''; | |
685 | + end; | |
686 | + | |
687 | + end; | |
658 | 688 | end; |
659 | 689 | Inc( idx ); |
660 | 690 | end; |
@@ -668,6 +698,7 @@ end; | ||
668 | 698 | class procedure TListViewUtils.DrawItemNoLogThread(Thread: TThreadItem; Item: TListItem; ColumnCount: Integer); |
669 | 699 | var |
670 | 700 | i, idx: Integer; |
701 | + spanday: Double; | |
671 | 702 | begin |
672 | 703 | idx := 0; |
673 | 704 | for i := 0 to ColumnCount - 1do begin |
@@ -686,9 +717,25 @@ begin | ||
686 | 717 | Item.SubItems[ idx ] := FormatDateTime('yyyy/mm/dd hh:mm:ss', Thread.CreateDate); |
687 | 718 | gbcLastModified: |
688 | 719 | Item.SubItems[ idx ] := ''; |
720 | + gbcVigor: | |
721 | + begin | |
722 | + if (Thread.AgeSage <> gasArch) then begin | |
723 | + spanday := DaySpan(Sort.GetSortDate, Thread.CreateDate); | |
724 | + end else begin | |
725 | + spanday := DaySpan(Thread.LastModified, Thread.CreateDate); | |
726 | + end; | |
727 | + | |
728 | + if (spanday > 0) then begin | |
729 | + Item.SubItems[ idx ] := Format('%f', [Thread.AllResCount / spanday]); | |
730 | + end else begin | |
731 | + Item.SubItems[ idx ] := ''; | |
732 | + end; | |
733 | + | |
734 | + end; | |
689 | 735 | else |
690 | 736 | Item.SubItems[ idx ] := ''; |
691 | 737 | end; |
738 | + | |
692 | 739 | Inc( idx ); |
693 | 740 | end; |
694 | 741 | if Thread.NewArrival then |
@@ -32,6 +32,10 @@ uses | ||
32 | 32 | //<font>^OðSÄí·é |
33 | 33 | function DeleteFontTag( inSource : string) : string; |
34 | 34 | function RemoveToken(var s: string;const delimiter: string): string; |
35 | + // ³Q»(& -> & " -> &auot; ÉÏ··é) | |
36 | + function Sanitize(const s: String): String; | |
37 | + // ³Q»ð(& -> & &auot; -> " ÉÏ··é) | |
38 | + function UnSanitize(const s: String): String; | |
35 | 39 | |
36 | 40 | implementation |
37 | 41 | // |C^[AZuÉæé¬|X |
@@ -358,6 +362,17 @@ begin | ||
358 | 362 | s := ''; |
359 | 363 | end; |
360 | 364 | end; |
361 | - | |
365 | +//! ³Q»(& -> & " -> &auot; ÉÏ··é) | |
366 | +function Sanitize(const s: String): String; | |
367 | +begin | |
368 | + Result := CustomStringReplace(s, '&', '&'); | |
369 | + Result := CustomStringReplace(Result, '"', '"'); | |
370 | +end; | |
371 | +//! ³Q»ð(& -> & &auot; -> " ÉÏ··é) | |
372 | +function UnSanitize(const s: String): String; | |
373 | +begin | |
374 | + Result := CustomStringReplace(s, '"', '"'); | |
375 | + Result := CustomStringReplace(Result, '&', '&'); | |
376 | +end; | |
362 | 377 | |
363 | 378 | end. |
@@ -32,7 +32,7 @@ type | ||
32 | 32 | TGikoResRange = (grrAll, grrSelect, grrKoko, grrNew); |
33 | 33 | |
34 | 34 | /// Xbhê\¦ÍÍ |
35 | - TGikoThreadRange = (gtrAll, gtrSelect, gtrLog, gtrNew); | |
35 | + TGikoThreadRange = (gtrAll, gtrSelect, gtrLog, gtrNew, gtrLive, gtrArch); | |
36 | 36 | |
37 | 37 | //! XptB^[ASY |
38 | 38 | TGikoSpamFilterAlgorithm = ( |
@@ -73,15 +73,15 @@ type | ||
73 | 73 | end; |
74 | 74 | /// XXgÌJ ID |
75 | 75 | type TGikoBoardColumnID = (gbcTitle, gbcAllCount, gbcLocalCount, gbcNonAcqCount, |
76 | - gbcNewCount, gbcUnReadCount, gbcRoundName, gbcRoundDate, gbcCreated, gbcLastModified );{gbcLastModified,} | |
76 | + gbcNewCount, gbcUnReadCount, gbcRoundName, gbcRoundDate, gbcCreated, gbcLastModified, gbcVigor );{gbcLastModified,} | |
77 | 77 | /// XXgÌJ¼ |
78 | - const GikoBoardColumnCaption : array[0..9] of string = | |
78 | + const GikoBoardColumnCaption : array[0..10] of string = | |
79 | 79 | ( 'Xbh¼', 'JEg', 'æ¾', '¢æ¾', 'V ', |
80 | - '¢Ç', 'ñ\ñ', 'æ¾ú', 'Xì¬ú', 'ÅIXVú' ); | |
81 | - const GikoBoardColumnAlignment : array[0..9] of TAlignment = ( | |
80 | + '¢Ç', 'ñ\ñ', 'æ¾ú', 'Xì¬ú', 'ÅIXVú', '¨¢' ); | |
81 | + const GikoBoardColumnAlignment : array[0..10] of TAlignment = ( | |
82 | 82 | taLeftJustify, taRightJustify, taRightJustify, taRightJustify, |
83 | 83 | taRightJustify, taRightJustify, taLeftJustify, taLeftJustify, |
84 | - taLeftJustify, taLeftJustify); | |
84 | + taLeftJustify, taLeftJustify, taRightJustify); | |
85 | 85 | /// XXgJzñ |
86 | 86 | type TGikoBoardColumnList = class( TList ) |
87 | 87 | private |
@@ -259,7 +259,7 @@ type | ||
259 | 259 | //XgJwb_[TCY |
260 | 260 | FBBSColumnWidth: array[0..0] of Integer; |
261 | 261 | FCategoryColumnWidth: array[0..2] of Integer; |
262 | - FBoardColumnWidth: array[0..9] of Integer; | |
262 | + FBoardColumnWidth: array[0..10] of Integer; | |
263 | 263 | |
264 | 264 | /// JeSXgJ |
265 | 265 | FBBSColumnOrder : TGikoBBSColumnList; |
@@ -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 |
@@ -935,7 +936,7 @@ procedure TSetting.ReadSettingFile(); | ||
935 | 936 | const |
936 | 937 | DEFAULT_BBS_WIDTH: array[0..0] of Integer = (140); |
937 | 938 | DEFAULT_CATEGORY_WIDTH: array[0..2] of Integer = (150, 80, 130); |
938 | - DEFAULT_BOARD_WIDTH: array[0..9] of Integer = (350, 60, 60, 60, 60, 60, 80, 130, 130, 130); | |
939 | + DEFAULT_BOARD_WIDTH: array[0..10] of Integer = (350, 60, 60, 60, 60, 60, 80, 130, 130, 130, 60); | |
939 | 940 | MAX_WIDTH: Integer = 2000; |
940 | 941 | var |
941 | 942 | ini: TMemIniFile; |
@@ -1164,8 +1165,12 @@ begin | ||
1164 | 1165 | end; |
1165 | 1166 | if FBoardColumnOrder.Count = 0 then begin |
1166 | 1167 | // Ý誳¢ÌÅì¬ |
1167 | - for i := 0 to Integer( High( TGikoBoardColumnID ) ) do | |
1168 | - FBoardColumnOrder.Add( TGikoBoardColumnID( i ) ); | |
1168 | + for i := 0 to Integer( High( TGikoBoardColumnID ) ) do begin | |
1169 | + // ¨¢ÌJÍftHgÅñ\¦É·é | |
1170 | + if ( i <> Ord(gbcVigor) ) then begin | |
1171 | + FBoardColumnOrder.Add( TGikoBoardColumnID( i ) ); | |
1172 | + end; | |
1173 | + end; | |
1169 | 1174 | end; |
1170 | 1175 | finally |
1171 | 1176 | wkList.Free; |
@@ -1257,7 +1262,7 @@ begin | ||
1257 | 1262 | FBoardSortIndex := ini.ReadInteger('ThreadList', 'BoardSortIndex', 0); |
1258 | 1263 | FBoardSortOrder := ini.ReadBool('ThreadList', 'BoardSortOrder', True); |
1259 | 1264 | // DLãÌ©®\[g |
1260 | - FAutoSortThreadList := ini.ReadBool('ThreadList', 'AutoSort', True); | |
1265 | + FAutoSortThreadList := ini.ReadBool('ThreadList', 'AutoSort', False); | |
1261 | 1266 | //Dat¿X\[g |
1262 | 1267 | FDatOchiSortIndex := ini.ReadInteger('ThreadList', 'DatOchiSortIndex', -1); |
1263 | 1268 | FDatOchiSortOrder := ini.ReadBool('ThreadList', 'DatOchiSortOrder', False); |
@@ -2175,8 +2180,13 @@ begin | ||
2175 | 2180 | end; |
2176 | 2181 | function TSetting.GetEditorKeyFileName: String; |
2177 | 2182 | begin |
2178 | - Result := GetConfigDir + EKEY_SETTING_FILE_NAME; | |
2183 | + Result := GetConfigDir + EKEY_SETTING_FILE_NAME; | |
2184 | +end; | |
2185 | +function TSetting.GetInputAssistFileName : String; | |
2186 | +begin | |
2187 | + Result := GetConfigDir + INPUTASSIST_FILE_NAME; | |
2179 | 2188 | end; |
2189 | + | |
2180 | 2190 | end. |
2181 | 2191 | |
2182 | 2192 |
@@ -4,7 +4,7 @@ interface | ||
4 | 4 | uses |
5 | 5 | Windows, Messages, SysUtils, Classes, Controls, Forms, |
6 | 6 | BoardGroup,DateUtils, |
7 | - Setting; | |
7 | + Setting, Math; | |
8 | 8 | |
9 | 9 | function CategorySortProc(Item1, Item2: Pointer): integer; |
10 | 10 | function BoardSortProc(List: TStringList; Item1, Item2: Integer): integer; |
@@ -12,13 +12,62 @@ uses | ||
12 | 12 | function CompareBool(Item1, Item2: Boolean): integer; |
13 | 13 | function CompareInt(Item1, Item2: Integer): Integer; |
14 | 14 | function CompareDate(Item1, Item2: TDateTime): Integer; |
15 | + procedure SetSortDate(Date: TDateTime); | |
16 | + function GetSortDate(): TDateTime; | |
17 | + procedure SetSortOrder(Order: Boolean); | |
18 | + function GetSortOrder: Boolean; | |
19 | + procedure SetSortIndex(Index: Integer); | |
20 | + function GetSortIndex: Integer; | |
21 | + procedure SetSortNoFlag(Flag: Boolean); | |
22 | + function GetSortNoFlag: Boolean; | |
23 | + | |
24 | +implementation | |
15 | 25 | |
16 | 26 | var |
17 | - SortOrder: Boolean; | |
18 | - SortIndex: Integer; | |
19 | - SortNoFlag: Boolean; | |
27 | + FSortDate: TDateTime; | |
28 | + FSortOrder: Boolean; | |
29 | + FSortIndex: Integer; | |
30 | + FSortNoFlag: Boolean; | |
20 | 31 | |
21 | -implementation | |
32 | +function CaclVigor(Thread: TThreadItem): Double; | |
33 | +var | |
34 | + span : Double; | |
35 | +begin | |
36 | + if (Thread.AgeSage <> gasArch) then begin | |
37 | + span := DaySpan(Sort.GetSortDate, Thread.CreateDate); | |
38 | + end else begin | |
39 | + span := DaySpan(Thread.LastModified, Thread.CreateDate); | |
40 | + end; | |
41 | + if (span > 0) then begin | |
42 | + Result := Thread.AllResCount / span; | |
43 | + end else begin | |
44 | + Result := 0; | |
45 | + end; | |
46 | +end; | |
47 | +procedure SetSortOrder(Order: Boolean); | |
48 | +begin | |
49 | + FSortOrder := Order; | |
50 | +end; | |
51 | +function GetSortOrder: Boolean; | |
52 | +begin | |
53 | + Result := FSortOrder; | |
54 | +end; | |
55 | +procedure SetSortIndex(Index: Integer); | |
56 | +begin | |
57 | + FSortIndex := Index; | |
58 | +end; | |
59 | +function GetSortIndex: Integer; | |
60 | +begin | |
61 | + Result := FSortIndex; | |
62 | +end; | |
63 | +procedure SetSortNoFlag(Flag: Boolean); | |
64 | +begin | |
65 | + FSortNoFlag := Flag; | |
66 | +end; | |
67 | +function GetSortNoFlag: Boolean; | |
68 | +begin | |
69 | + Result := FSortNoFlag; | |
70 | +end; | |
22 | 71 | |
23 | 72 | function CategorySortProc(Item1, Item2: Pointer): integer; |
24 | 73 | var |
@@ -28,9 +77,9 @@ begin | ||
28 | 77 | CategoryItem1 := TCategory(Item1); |
29 | 78 | CategoryItem2 := TCategory(Item2); |
30 | 79 | |
31 | - case TGikoBBSColumnID( SortIndex ) of | |
80 | + case TGikoBBSColumnID( FSortIndex ) of | |
32 | 81 | gbbscTitle: |
33 | - if SortNoFlag then | |
82 | + if FSortNoFlag then | |
34 | 83 | Result := CompareInt(CategoryItem1.No, CategoryItem2.No) |
35 | 84 | else |
36 | 85 | Result := AnsiCompareText(CategoryItem1.Title, CategoryItem2.Title); |
@@ -38,7 +87,7 @@ begin | ||
38 | 87 | Result := CompareInt(CategoryItem1.No, CategoryItem2.No) |
39 | 88 | end; |
40 | 89 | |
41 | - if not SortOrder then | |
90 | + if not FSortOrder then | |
42 | 91 | Result := Result * -1; |
43 | 92 | end; |
44 | 93 |
@@ -49,9 +98,9 @@ var | ||
49 | 98 | begin |
50 | 99 | BoardItem1 := TBoard(List.Objects[Item1]); |
51 | 100 | BoardItem2 := TBoard(List.Objects[Item2]); |
52 | - case TGikoCategoryColumnID( SortIndex ) of | |
101 | + case TGikoCategoryColumnID( FSortIndex ) of | |
53 | 102 | gccTitle: |
54 | - if SortNoFlag then | |
103 | + if FSortNoFlag then | |
55 | 104 | Result := CompareInt(BoardItem1.No, BoardItem2.No) |
56 | 105 | else |
57 | 106 | Result := AnsiCompareText(BoardItem1.Title, BoardItem2.Title); |
@@ -65,7 +114,7 @@ begin | ||
65 | 114 | Result := CompareInt(BoardItem1.No, BoardItem2.No) |
66 | 115 | end; |
67 | 116 | |
68 | - if not SortOrder then | |
117 | + if not FSortOrder then | |
69 | 118 | Result := Result * -1; |
70 | 119 | end; |
71 | 120 |
@@ -76,10 +125,10 @@ var | ||
76 | 125 | begin |
77 | 126 | ThreadItem1 := TThreadItem(List.Objects[ Item1 ]); |
78 | 127 | ThreadItem2 := TThreadItem(List.Objects[ Item2 ]); |
79 | - case TGikoBoardColumnID( SortIndex ) of | |
128 | + case TGikoBoardColumnID( FSortIndex ) of | |
80 | 129 | gbcTitle: |
81 | 130 | begin |
82 | - if SortNoFlag then | |
131 | + if FSortNoFlag then | |
83 | 132 | Result := CompareInt(ThreadItem1.No, ThreadItem2.No) |
84 | 133 | else |
85 | 134 | Result := AnsiCompareText(ThreadItem1.Title, ThreadItem2.Title) |
@@ -105,6 +154,7 @@ begin | ||
105 | 154 | gbcRoundDate: Result := CompareDateTime(ThreadItem1.RoundDate, ThreadItem2.RoundDate); {gbcLastModified:} |
106 | 155 | gbcCreated: Result := CompareDateTime(ThreadItem1.CreateDate, ThreadItem2.CreateDate); |
107 | 156 | gbcLastModified: Result := CompareDateTime(ThreadItem1.LastModified, ThreadItem2.LastModified); {gbcLastModified:} |
157 | + gbcVigor: Result := CompareValue(CaclVigor(ThreadItem1), CaclVigor(ThreadItem2)); | |
108 | 158 | else |
109 | 159 | Result := 0; |
110 | 160 | end; |
@@ -122,12 +172,12 @@ begin | ||
122 | 172 | else |
123 | 173 | Result := CompareDate(ThreadItem1.LastModified, ThreadItem2.LastModified); |
124 | 174 | } |
125 | - if not SortOrder then | |
175 | + if not FSortOrder then | |
126 | 176 | Result := Result * -1; |
127 | 177 | |
128 | 178 | // \[g]¿ª¯¶êÍAæ1J̸É\[g |
129 | 179 | if Result = 0 then begin |
130 | - if SortNoFlag then | |
180 | + if FSortNoFlag then | |
131 | 181 | Result := CompareInt(ThreadItem1.No, ThreadItem2.No) |
132 | 182 | else |
133 | 183 | Result := AnsiCompareText(ThreadItem1.Title, ThreadItem2.Title) |
@@ -163,5 +213,12 @@ begin | ||
163 | 213 | else |
164 | 214 | Result := 0; |
165 | 215 | end; |
166 | - | |
216 | +procedure SetSortDate(Date: TDateTime); | |
217 | +begin | |
218 | + FSortDate := Date; | |
219 | +end; | |
220 | +function GetSortDate(): TDateTime; | |
221 | +begin | |
222 | + Result := FSortDate; | |
223 | +end; | |
167 | 224 | end. |
@@ -22,13 +22,15 @@ const | ||
22 | 22 | 'MuteAction', |
23 | 23 | 'BeLogInOutAction'); |
24 | 24 | //Xgc[o[ftHg |
25 | - DEF_LIST: array[0..16] of string = ('ListNumberVisibleAction', | |
25 | + DEF_LIST: array[0..18] of string = ('ListNumberVisibleAction', | |
26 | 26 | 'IconStyle', |
27 | 27 | 'UpFolderAction', |
28 | 28 | '', |
29 | 29 | 'AllItemAction', |
30 | 30 | 'LogItemAction', |
31 | 31 | 'NewItemAction', |
32 | + 'LiveItemAction', | |
33 | + 'ArchiveItemAction', | |
32 | 34 | 'SelectItemAction', |
33 | 35 | '', |
34 | 36 | 'ThreadEditorAction', |
@@ -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 |
@@ -1,4 +1,4 @@ | ||
1 | -¡MRir Version1.00 ÊÞÀ51 Readme.txt | |
1 | +¡MRir Version1.00 ÊÞÀ52 Readme.txt | |
2 | 2 | |
3 | 3 | |
4 | 4 | ------------------------------ |
@@ -107,21 +107,28 @@ LICENSE | ||
107 | 107 | ------------------------------ |
108 | 108 | ð |
109 | 109 | ------------------------------ |
110 | -200X/XX/XX | |
110 | +2006/XX/YY | |
111 | + Version ÊÞÀ52 | |
112 | +@üÍAVXg@\ÇÁ | |
113 | +@XbhêÉh¨¢hJÇÁiftHgñ\¦j | |
114 | +@¨CÉüèAðAMOÌXbh^Cg¼ðTj^CY·éæ¤ÉC³ | |
115 | +im[gÌë½âèÖ̪IÎj | |
116 | + | |
117 | +2006/01/14 | |
111 | 118 | Version ÊÞÀ51 |
119 | +@CtH[ãÅÌV[gJbgL[ÌDæʪMRir©ÌªÅãÊÉÏX | |
112 | 120 | @Xbh`æÌÅK» |
113 | 121 | @XÔwèURLðNbNµ½Æ«Ì®ìÅAæ¾ÏÝOÌXÔÌê©®ÅDL·éæ¤ÉÏX |
114 | 122 | @XGfB^©çSambaÌÝèlðÏXÅ«éæ¤ÉÏX |
115 | 123 | @LrlbgãÅNbNE_uNbNCxgªßèɶ·ésïÌC³ |
116 | 124 | @}EXWFX`[LøÉvr [ãÅENbNÅ«È¢sïÌC³ |
117 | -@CtH[ãÅÌV[gJbgL[ÌDæʪMRir©ÌªÅãÊÉÏX | |
118 | 125 | @Cj [̨CÉüèÌ`æ̬» |
119 | 126 | @Xe[^Xo[É»Ý\¦µÄ¢éXbhÌeÊð\¦·éæ¤Éµ½ |
120 | 127 | @DAT¿µ½XÌeÊðæ¾Å«È¢sïÌC³ |
121 | 128 | @ÂXVÅ[Jt@CðwèÅ«éæ¤ÉÏX |
122 | 129 | @Xbhê_E[hãÌ\[gðIvV» |
123 | 130 | @NG[hÉS¼pÐçªÈJ^JiÌá¢ð¯ê·éIvVÌÇÁ |
124 | -@XÌiÝÅS¼pÐçªÈJ^J^Ìá¢ð³·éæ¤ÉÏX | |
131 | +@XÌiÝÅS¼pÐçªÈJ^JiÌá¢ð³·éæ¤ÉÏX | |
125 | 132 | |
126 | 133 | 2005/10/10 |
127 | 134 | 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 |
@@ -79,7 +79,7 @@ const | ||
79 | 79 | MAJOR_VERSION = 1; |
80 | 80 | MINOR_VERSION = 0; |
81 | 81 | RELEASE_VERSION = 'alpha'; |
82 | - REVISION_VERSION = 1; | |
82 | + REVISION_VERSION = 3; | |
83 | 83 | |
84 | 84 | // ========================================================================= |
85 | 85 | // GpÖ |
@@ -83,7 +83,7 @@ const | ||
83 | 83 | MAJOR_VERSION = 1; |
84 | 84 | MINOR_VERSION = 0; |
85 | 85 | RELEASE_VERSION = 'beta'; |
86 | - REVISION_VERSION = 15; | |
86 | + REVISION_VERSION = 17; | |
87 | 87 | |
88 | 88 | // ========================================================================= |
89 | 89 | // GpÖ |
@@ -2,7 +2,7 @@ library ShitarabaJBBSPlugIn; | ||
2 | 2 | |
3 | 3 | { |
4 | 4 | ShitarabaJBBSPlugIn |
5 | - $Id: ShitarabaJBBSPlugIn.dpr,v 1.41 2005/07/28 14:14:37 h677 Exp $ | |
5 | + $Id: ShitarabaJBBSPlugIn.dpr,v 1.43 2006/02/21 15:58:27 h677 Exp $ | |
6 | 6 | } |
7 | 7 | |
8 | 8 | uses |
@@ -83,7 +83,7 @@ const | ||
83 | 83 | MAJOR_VERSION = 1; |
84 | 84 | MINOR_VERSION = 1; |
85 | 85 | RELEASE_VERSION = 'alpha'; |
86 | - REVISION_VERSION = 12; | |
86 | + REVISION_VERSION = 14; | |
87 | 87 | |
88 | 88 | SYNCRONIZE_MENU_CAPTION = 'µ½çÎJBBSÂXV'; |
89 | 89 |
@@ -13,7 +13,7 @@ uses | ||
13 | 13 | |
14 | 14 | type |
15 | 15 | // XêÌã°º°tO |
16 | - TThreadAgeSage = (tasNone, tasAge, tasSage, tasNew, tasNull); | |
16 | + TThreadAgeSage = (tasNone, tasAge, tasSage, tasNew, tasArch, tasNull); | |
17 | 17 | |
18 | 18 | // TThreadItem ÌvpeBÝè^æ¾ ID |
19 | 19 | TThreadItemProperty = ( |
@@ -38,7 +38,8 @@ type | ||
38 | 38 | tipDownloadHost, // : string // ¡ÌzXgÆá¤êÌzXg |
39 | 39 | tipAgeSage, // : TThreadAgeSage // ACeÌã°º° |
40 | 40 | tipURL, // : string // XbhðuEUÅ\¦·éÛÌ URL |
41 | - tipFilePath // : string // ±ÌXªÛ¶³êÄ¢épX | |
41 | + tipFilePath, // : string // ±ÌXªÛ¶³êÄ¢épX | |
42 | + tipJumpAddress // : Integer // JUMPæXÔ | |
42 | 43 | ); |
43 | 44 | |
44 | 45 |
@@ -301,7 +302,8 @@ type | ||
301 | 302 | procedure SetURL( param : string ); |
302 | 303 | function GetFilePath : string; |
303 | 304 | {procedure SetFilePath( param : string );} |
304 | - | |
305 | + procedure SetJumpAddress( param : Integer ); | |
306 | + function GetJumpAddress : Integer; | |
305 | 307 | protected |
306 | 308 | property Instance : DWORD read FInstance; |
307 | 309 |
@@ -358,6 +360,8 @@ type | ||
358 | 360 | property URL : string read GetURL write SetURL; |
359 | 361 | // ±ÌXªÛ¶³êÄ¢épX |
360 | 362 | property FilePath : string read GetFilePath {write SetFilePath}; |
363 | + // JUMPæXÔ | |
364 | + property JumpAddress : Integer read GetJumpAddress write SetJumpAddress; | |
361 | 365 | end; |
362 | 366 | |
363 | 367 | var |
@@ -765,6 +769,15 @@ begin | ||
765 | 769 | Result := string( tmp ); |
766 | 770 | DisposeResultString( tmp ); |
767 | 771 | end; |
772 | +function TThreadItem.GetJumpAddress : Integer; | |
773 | +begin | |
774 | + Result := GetLong( tipJumpAddress ); | |
775 | +end; | |
776 | + | |
777 | +procedure TThreadItem.SetJumpAddress( param : Integer ); | |
778 | +begin | |
779 | + SetLong( tipJumpAddress, param ); | |
780 | +end; | |
768 | 781 | { |
769 | 782 | procedure TThreadItem.SetFilePath( param : string ); |
770 | 783 | begin |