ギコナビ
修订版 | 71881b65cd5f8c4952b462688354d4fdbd841c9b (tree) |
---|---|
时间 | 2007-01-22 02:43:43 |
作者 | cvs2git <cvs2git> |
Commiter | cvs2git |
This commit was manufactured by cvs2svn to create branch 'Bb54'.
@@ -883,8 +883,11 @@ begin | ||
883 | 883 | Dec(ps); |
884 | 884 | |
885 | 885 | //VAêuNÌÅÈ¢ |
886 | - if (icode <1792) or (icode > 1871) then | |
887 | - Result := Result + Copy(AString, 1, ps - PChar(AString) + 1); | |
886 | + if ( icode < 1758) or | |
887 | + ((icode > 1871) and (icode < 1958)) or | |
888 | + (icode > 1968) then begin | |
889 | + Result := Result + Copy(AString, 1, ps - PChar(AString) + 1); | |
890 | + end; | |
888 | 891 | |
889 | 892 | Delete(AString, 1, ps - PChar(AString) + 1); |
890 | 893 | end else begin |
@@ -32,6 +32,7 @@ type | ||
32 | 32 | //property Movement : string read FMovement write FMovement; |
33 | 33 | procedure Move(const AName: string); |
34 | 34 | procedure IDAnchorPopup(Abody :string); |
35 | + procedure OpenFindDialog; | |
35 | 36 | end; |
36 | 37 | // BrowserRecordÉ¢ĢéFBrowserðO· |
37 | 38 | procedure ReleaseBrowser( BRecord: TBrowserRecord); |
@@ -148,6 +149,48 @@ begin | ||
148 | 149 | end; |
149 | 150 | end; |
150 | 151 | end; |
151 | - | |
152 | +{ | |
153 | +\brief õ_CAOÄÑoµ | |
154 | +} | |
155 | +procedure TBrowserRecord.OpenFindDialog(); | |
156 | +const | |
157 | + CGID_WebBrowser: TGUID = '{ED016940-BD5B-11cf-BA4E-00C04FD70816}'; | |
158 | + HTMLID_FIND = 1; | |
159 | +var | |
160 | + CmdTarget : IOleCommandTarget; | |
161 | + vaIn, vaOut: OleVariant; | |
162 | + PtrGUID: PGUID; | |
163 | +begin | |
164 | + if (Self.Browser <> nil) and (Self.Browser.Document <> nil) then begin | |
165 | + //uEUªf[^ÌÇÝÝÌÍÇÝÝðÒÂ | |
166 | + while (Self.Browser.ReadyState <> READYSTATE_COMPLETE) and | |
167 | + (Self.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin | |
168 | + Sleep(1); | |
169 | + Application.ProcessMessages; | |
170 | + end; | |
171 | + vaIn := 0; | |
172 | + vaOut := 0; | |
173 | + New(PtrGUID); | |
174 | + PtrGUID^ := CGID_WebBrowser; | |
175 | + try | |
176 | + try | |
177 | + if Self.Browser.Document | |
178 | + .QueryInterface(IOleCommandTarget, CmdTarget) | |
179 | + = S_OK then begin | |
180 | + if CmdTarget <> nil then begin | |
181 | + try | |
182 | + CmdTarget.Exec(PtrGUID, HTMLID_FIND, 0, vaIn, vaOut); | |
183 | + finally | |
184 | + CmdTarget._Release; | |
185 | + end; | |
186 | + end; | |
187 | + end; | |
188 | + except | |
189 | + end; | |
190 | + finally | |
191 | + Dispose(PtrGUID); | |
192 | + end; | |
193 | + end; | |
194 | +end; | |
152 | 195 | |
153 | 196 | end. |
@@ -486,7 +486,7 @@ object EditorForm: TEditorForm | ||
486 | 486 | Top = 124 |
487 | 487 | Bitmap = { |
488 | 488 | 494C01010C000E00040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 |
489 | - 0000000000003600000028000000400000004000000001002000000000000040 | |
489 | + 0000000000003600000028000000400000004000000001001000000000000020 | |
490 | 490 | 0000000000000000000000000000000000000000000000000000000000000000 |
491 | 491 | 0000000000000000000000000000000000000000000000000000000000000000 |
492 | 492 | 0000000000000000000000000000000000000000000000000000000000000000 |
@@ -555,6 +555,62 @@ object EditorForm: TEditorForm | ||
555 | 555 | 0000000000000000000000000000000000000000000000000000000000000000 |
556 | 556 | 0000000000000000000000000000000000000000000000000000000000000000 |
557 | 557 | 0000000000000000000000000000000000000000000000000000000000000000 |
558 | + 0000000000000000000000000000000000000000000000000000000010421042 | |
559 | + 1042104210421042000000000000000000000000000000000000000000004208 | |
560 | + 0000000000000000000000000000000000000000000000000000000010421042 | |
561 | + 1042104210421042000000000000000000000000000000000000000000000000 | |
562 | + 0000000000000000000000000000000000000000000000001042104210421042 | |
563 | + 1042104210421042104210420000000000000000000000000000B556630C4208 | |
564 | + 0000420800000000000000000000000000000000000000000000104218631863 | |
565 | + 1863186318631863104200000000000000000000000000000000000000000000 | |
566 | + 0000000000000000000000000000000000000000000010421042104210421042 | |
567 | + 1042104210421042104210421042000000000000000000004208DE7B08218410 | |
568 | + 4208420800004208000000000000000000000000000000001042186300000000 | |
569 | + 0000000000000000000010420000000000000000000000000000000000000000 | |
570 | + 0000000000000000000000000000000000000000000010421042104210421042 | |
571 | + 1042104210421042104210421042000000000000000042083967FF7FBD77D65A | |
572 | + E71C841042084208000042080000000000000000000010421863186300000000 | |
573 | + FF7FFF7FFF7F1863000000001042000000000000000000000000000000000000 | |
574 | + 0000000000000000000000000000000000000000104210421042104210421042 | |
575 | + 1042104210421042104210421042104200000000B556EF3DBD77BD77FF7FDE7B | |
576 | + 9C73734EA5148410210442080000420800000000104218631863186300000000 | |
577 | + FF7F186318631863000000001863104200000000000000000000000000000000 | |
578 | + 00000000000000000000000000000000000000001042104210421042FF7FFF7F | |
579 | + 10421042FF7FFF7F104210421042104200004208FF7FDE7B7B6FFF7FFF7FDE7B | |
580 | + DE7BDE7B7B6F734EA51484102104420800000000104218631863186300000000 | |
581 | + FF7F186318631863000000001863104200000000000000000000000000000000 | |
582 | + 000000000000000000000000000000000000000010421042104210421042FF7F | |
583 | + FF7FFF7FFF7F1042104210421042104200004208FF7FFF7FFF7FFF7FDE7BDE7B | |
584 | + DE7BBD77BD777B6F5A6B31468410630C00000000104218631863186300000000 | |
585 | + 0000000000000000000018631863104200000000000000000000000000000000 | |
586 | + 0000000000000000000000000000000000000000104210421042104210421042 | |
587 | + FF7FFF7F1042104210421042104210420000000042085A6BDE7BDE7BDE7BDE7B | |
588 | + BD77BD77BD779C735A6B5A6B1863CE3900000000104218631863186300000000 | |
589 | + FF7FFF7FFF7F0000186318631863104200000000000000000000000000000000 | |
590 | + 000000000000000000000000000000000000000010421042104210421042FF7F | |
591 | + FF7FFF7FFF7F10421042104210421042000000000000000042085A6BDE7BDE7B | |
592 | + BD779C739C735A6B5A6B39671863000000000000104218631863186300000000 | |
593 | + FF7F186318630000000018631863104200000000000000000000000000000000 | |
594 | + 00000000000000000000000000000000000000001042104210421042FF7FFF7F | |
595 | + 10421042FF7FFF7F104210421042104200000000000000000000000042083967 | |
596 | + 9C737B6F5A6B5A6B396718630000000000000000104218631863186300000000 | |
597 | + FF7F186318630000000018631863104200000000000000000000000000000000 | |
598 | + 0000000000000000000000000000000000000000000010421042104210421042 | |
599 | + 1042104210421042104210421042000000000000000000000000000000000000 | |
600 | + 420818635A6B3967396700000000000000000000000010421863186300000000 | |
601 | + FF7FFF7FFF7F0000000018631042000000000000000000000000000000000000 | |
602 | + 0000000000000000000000000000000000000000000010421042104210421042 | |
603 | + 1042104210421042104210421042000000000000000000000000000000000000 | |
604 | + 000000004208F75E000000000000000000000000000000001042186300000000 | |
605 | + 0000000000000000186310420000000000000000000000000000000000000000 | |
606 | + 0000000000000000000000000000000000000000000000001042104210421042 | |
607 | + 1042104210421042104210420000000000000000000000000000000000000000 | |
608 | + 0000000000000000000000000000000000000000000000000000104218631863 | |
609 | + 1863186318631863104200000000000000000000000000000000000000000000 | |
610 | + 0000000000000000000000000000000000000000000000000000000010421042 | |
611 | + 1042104210421042000000000000000000000000000000000000000000000000 | |
612 | + 0000000000000000000000000000000000000000000000000000000010421042 | |
613 | + 1042104210421042000000000000000000000000000000000000000000000000 | |
558 | 614 | 0000000000000000000000000000000000000000000000000000000000000000 |
559 | 615 | 0000000000000000000000000000000000000000000000000000000000000000 |
560 | 616 | 0000000000000000000000000000000000000000000000000000000000000000 |
@@ -569,10 +625,51 @@ object EditorForm: TEditorForm | ||
569 | 625 | 0000000000000000000000000000000000000000000000000000000000000000 |
570 | 626 | 0000000000000000000000000000000000000000000000000000000000000000 |
571 | 627 | 0000000000000000000000000000000000000000000000000000000000000000 |
628 | + 0000FF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000000000000000 | |
572 | 629 | 0000000000000000000000000000000000000000000000000000000000000000 |
573 | 630 | 0000000000000000000000000000000000000000000000000000000000000000 |
631 | + 0000FF7FFF7FFF7FFF7FFF7FFF7FFF7F000000000000FF7FFF7FFF7FFF7FFF7F | |
632 | + 0000FF7F00000000000000000000FF7F00000000000000000000000010421042 | |
633 | + 1042104210421042104210421042104200000000000000000000000010421042 | |
634 | + 1042104210421042104210421042104200000000000000000000000000000000 | |
635 | + 0000FF7F00000000000000000000FF7F000000000000FF7FFF7FFF7FFF7FFF7F | |
636 | + 0000FF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000000010421042 | |
637 | + 1042104210421042104210421042104200000000000000000000000010421042 | |
638 | + 1042104210421042104210421042104200000000000000000000000000000000 | |
639 | + 0000FF7FFF7FFF7FFF7FFF7FFF7FFF7F000000000000FF7FFF7FFF7FFF7FFF7F | |
640 | + 0000FF7F000000000000FF7F0000000000000000000000000000000000000000 | |
641 | + 0000000000000000104210421042104200000000000000000000000000000000 | |
642 | + 00000000000000001042104210421042000000000000FF7FFF7FFF7FFF7FFF7F | |
643 | + 0000FF7F00000000000000000000FF7F000000000000FF7FFF7FFF7FFF7FFF7F | |
644 | + 0000FF7FFF7FFF7FFF7FFF7F0000FF7F00000000000000000000000018631863 | |
645 | + 1863186318630000104210421042104200000000FF7FFF7FFF7FFF7FFF7FFF7F | |
646 | + FF7FFF7FFF7F00001042104210421042000000000000FF7F0000000000000000 | |
647 | + 0000FF7FFF7FFF7FFF7FFF7FFF7FFF7F000000000000FF7FFF7FFF7FFF7FFF7F | |
648 | + 0000FF7FFF7FFF7FFF7FFF7F0000000000000000000000000000000018631863 | |
649 | + 1863186318630000104210421042104200000000FF7FFF7FFF7FFF7FFF7FFF7F | |
650 | + FF7FFF7FFF7F00001042104210421042000000000000FF7FFF7FFF7FFF7FFF7F | |
651 | + 0000FF7F00000000FF7F000000000000000000000000FF7FFF7FFF7FFF7FFF7F | |
652 | + 0000000000000000000000000000000000000000000000000000000018631863 | |
653 | + 1863186318630000104210421042104200000000FF7FFF7FFF7FFF7FFF7FFF7F | |
654 | + FF7FFF7FFF7F00001042104210421042000000000000FF7F0000000000000000 | |
655 | + 0000FF7FFF7FFF7FFF7F0000FF7F0000000000000000FF7FFF7FFF7FFF7FFF7F | |
656 | + FF7FFF7FFF7FFF7FFF7FFF7FFF7F000000000000000000000000104210421042 | |
657 | + 1042104210420000000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7F | |
658 | + FF7FFF7FFF7F00000000000000000000000000000000FF7FFF7FFF7FFF7FFF7F | |
659 | + 0000FF7FFF7FFF7FFF7F000000000000000000000000FF7FFF7F000000000000 | |
660 | + 00000000000000000000FF7FFF7F000000000000000000000000104210421042 | |
661 | + 1042104210420000000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7F | |
662 | + FF7FFF7FFF7F00000000000000000000000000000000FF7F00000000FF7F0000 | |
663 | + 00000000000000000000000000000000000000000000FF7FFF7F0000FF7FFF7F | |
664 | + FF7FFF7FFF7FFF7F0000FF7FFF7F000000000000000000000000000000000000 | |
665 | + 0000000000000000000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7F | |
666 | + FF7FFF7FFF7F00000000000000000000000000000000FF7FFF7FFF7FFF7F0000 | |
667 | + FF7F0000000000000000000000000000000000000000FF7FFF7FFF7F0000FF7F | |
668 | + 00000000FF7F0000FF7FFF7FFF7F000000000000000000000000000000000000 | |
574 | 669 | 0000000000000000000000000000000000000000000000000000000000000000 |
670 | + 00000000000000000000000000000000000000000000FF7FFF7FFF7FFF7F0000 | |
575 | 671 | 0000000000000000000000000000000000000000000000000000000000000000 |
672 | + FF7FFF7F00000000000000000000000000000000000000000000000000000000 | |
576 | 673 | 0000000000000000000000000000000000000000000000000000000000000000 |
577 | 674 | 0000000000000000000000000000000000000000000000000000000000000000 |
578 | 675 | 0000000000000000000000000000000000000000000000000000000000000000 |
@@ -587,417 +684,64 @@ object EditorForm: TEditorForm | ||
587 | 684 | 0000000000000000000000000000000000000000000000000000000000000000 |
588 | 685 | 0000000000000000000000000000000000000000000000000000000000000000 |
589 | 686 | 0000000000000000000000000000000000000000000000000000000000000000 |
687 | + 00000000000000000000000000000000000000000000FF7FFF7FFF7FFF7FFF7F | |
688 | + FF7FFF7FFF7F0000000000000000000000000000000000000000000000000000 | |
590 | 689 | 0000000000000000000000000000000000000000000000000000000000000000 |
591 | 690 | 0000000000000000000000000000000000000000000000000000000000000000 |
691 | + 0000000000000000000000000000000000000000FF7F0000FF7FFF7FFF7FFF7F | |
692 | + FF7FFF7FFF7FFF7F000000000000000000000000000000000000000000000000 | |
693 | + 00000000000000000000000000000000000000000000000000000000FF7FFF7F | |
592 | 694 | 0000000000000000000000000000000000000000000000000000000000000000 |
695 | + 00000000000000000000FF7FFF7F000000000000FF7FFF7F0000FF7FFF7FFF7F | |
696 | + FF7FFF7FFF7FFF7FFF7F00000000000000000000000000000000000000000000 | |
697 | + 00000000000000000000000000000000000000000000000000000000FF7FFF7F | |
698 | + 000000000000FF7FFF7F00000000000000001042104210421042104210421042 | |
699 | + 10420000FF7FFF7FFF7FFF7FFF7FFF7F00000000FF7FFF7FFF7F0000FF7FFF7F | |
700 | + FF7FFF7FFF7FFF7FFF7FFF7F0000000000000000000000000000000000000000 | |
701 | + 00000000000000000000000000000000000000000000000000000000FF7FFF7F | |
702 | + 000000000000FF7FFF7F00000000000000001863FF7FFF7FFF7FFF7FFF7FFF7F | |
703 | + FF7F0000000000000000FF7FFF7F000000000000FF7FFF7FFF7FFF7F00000000 | |
593 | 704 | 0000000000000000000000000000000000000000000000000000000000000000 |
594 | 705 | 0000000000000000000000000000000000000000000000000000000000000000 |
706 | + 000000000000FF7FFF7F00000000000000001863FF7FFF7FFF7FFF7FFF7FFF7F | |
707 | + FF7FFF7FFF7FFF7FFF7F00000000000000000000FF7FFF7FFF7FFF7FFF7FFF7F | |
708 | + FF7FFF7F00000000000000000000000000000000000000000000000000000000 | |
595 | 709 | 0000000000000000000000000000000000000000000000000000000000000000 |
710 | + 0000000000000000000000000000000000001863FF7FFF7F0000000000000000 | |
711 | + FF7FFF7FFF7FFF7FFF7F00001042000000000000FF7FFF7FFF7F000000000000 | |
596 | 712 | 0000000000000000000000000000000000000000000000000000000000000000 |
597 | 713 | 0000000000000000000000000000000000000000000000000000000000000000 |
714 | + 0000000000000000000000000000000000001863FF7FFF7FFF7FFF7FFF7FFF7F | |
715 | + FF7FFF7FFF7FFF7FFF7FFF7F1042000000000000000000000000000000000000 | |
598 | 716 | 0000000000000000000000000000000000000000000000000000000000000000 |
599 | 717 | 0000000000000000000000000000000000000000000000000000000000000000 |
718 | + 0000000000000000000000000000000000001863FF7FFF7F0000000000000000 | |
719 | + 000000000000FF7FFF7FFF7F1042000000000000000000000000000000001042 | |
720 | + 1042104210421042104210421042104210420000000000000000000000000000 | |
600 | 721 | 0000000000000000000000000000000000000000000000000000000000000000 |
722 | + 0000000000000000000000000000000000001863FF7FFF7FFF7FFF7FFF7FFF7F | |
723 | + FF7FFF7FFF7FFF7FFF7FFF7F1042000000000000000000000000000000001863 | |
724 | + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F10420000000000000000000000000000 | |
601 | 725 | 0000000000000000000000000000000000000000000000000000000000000000 |
726 | + 0000000000000000000000000000000000001863FF7FFF7F0000000000000000 | |
727 | + 00000000000000000000FF7F1042000000000000000000000000000000001863 | |
728 | + FF7FFF7F000000000000FF7FFF7FFF7F10420000000000000000000000000000 | |
602 | 729 | 0000000000000000000000000000000000000000000000000000000000000000 |
730 | + 0000000000000000000000000000000000001863FF7FFF7FFF7FFF7FFF7FFF7F | |
731 | + FF7FFF7FFF7FFF7FFF7FFF7F1042000000000000000000000000000000001863 | |
732 | + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F10420000000000000000000000000000 | |
603 | 733 | 0000000000000000000000000000000000000000000000000000000000000000 |
734 | + 0000000000000000000000000000000000001863186318631863186318631863 | |
735 | + 1863186318631863186318631863000000000000000000000000000000000000 | |
736 | + 0000FF7F0000000000000000FF7FFF7F10420000000000000000000000000000 | |
604 | 737 | 0000000000000000000000000000000000000000000000000000000000000000 |
605 | 738 | 0000000000000000000000000000000000000000000000000000000000000000 |
739 | + 0000000000000000000000000000000000000000000000000000000000001863 | |
740 | + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F10420000000000000000000000000000 | |
606 | 741 | 0000000000000000000000000000000000000000000000000000000000000000 |
607 | 742 | 0000000000000000000000000000000000000000000000000000000000000000 |
608 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
609 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
610 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
611 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
612 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
613 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
614 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
615 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
616 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
617 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
618 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
619 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
620 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
621 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
622 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
623 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
624 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
625 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
626 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
627 | - 0000000000008484840084848400848484008484840084848400848484000000 | |
628 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
629 | - 0000000000000000000010101000000000000000000000000000000000000000 | |
630 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
631 | - 0000000000008080800080808000808080008080800080808000808080000000 | |
632 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
633 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
634 | - 0000000000000000000000000000000000000000000000000000000000008484 | |
635 | - 8400848484008484840084848400848484008484840084848400848484008484 | |
636 | - 8400848484000000000000000000000000000000000000000000000000000000 | |
637 | - 0000ADADAD001818180010101000000000001010100000000000000000000000 | |
638 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
639 | - 000080808000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C0008080 | |
640 | - 8000000000000000000000000000000000000000000000000000000000000000 | |
641 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
642 | - 0000000000000000000000000000000000000000000000000000848484008484 | |
643 | - 8400848484008484840084848400848484008484840084848400848484008484 | |
644 | - 8400848484008484840000000000000000000000000000000000000000001010 | |
645 | - 1000F7F7F7004242420021212100101010001010100000000000101010000000 | |
646 | - 0000000000000000000000000000000000000000000000000000000000008080 | |
647 | - 8000C0C0C0000000000000000000000000000000000000000000000000000000 | |
648 | - 0000808080000000000000000000000000000000000000000000000000000000 | |
649 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
650 | - 0000000000000000000000000000000000000000000000000000848484008484 | |
651 | - 8400848484008484840084848400848484008484840084848400848484008484 | |
652 | - 840084848400848484000000000000000000000000000000000010101000CECE | |
653 | - CE00FFFFFF00EFEFEF00B5B5B500393939002121210010101000101010000000 | |
654 | - 000010101000000000000000000000000000000000000000000080808000C0C0 | |
655 | - C000C0C0C0000000000000000000FFFFFF00FFFFFF00FFFFFF00C0C0C0000000 | |
656 | - 0000000000008080800000000000000000000000000000000000000000000000 | |
657 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
658 | - 0000000000000000000000000000000000000000000084848400848484008484 | |
659 | - 8400848484008484840084848400848484008484840084848400848484008484 | |
660 | - 84008484840084848400848484000000000000000000ADADAD007B7B7B00EFEF | |
661 | - EF00EFEFEF00FFFFFF00F7F7F700E7E7E7009C9C9C0029292900212121000808 | |
662 | - 0800101010000000000010101000000000000000000080808000C0C0C000C0C0 | |
663 | - C000C0C0C0000000000000000000FFFFFF00C0C0C000C0C0C000C0C0C0000000 | |
664 | - 000000000000C0C0C00080808000000000000000000000000000000000000000 | |
665 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
666 | - 0000000000000000000000000000000000000000000084848400848484008484 | |
667 | - 840084848400FFFFFF00FFFFFF008484840084848400FFFFFF00FFFFFF008484 | |
668 | - 84008484840084848400848484000000000010101000FFFFFF00F7F7F700DEDE | |
669 | - DE00FFFFFF00FFFFFF00F7F7F700F7F7F700F7F7F700DEDEDE009C9C9C002929 | |
670 | - 2900212121000808080010101000000000000000000080808000C0C0C000C0C0 | |
671 | - C000C0C0C0000000000000000000FFFFFF00C0C0C000C0C0C000C0C0C0000000 | |
672 | - 000000000000C0C0C00080808000000000000000000000000000000000000000 | |
673 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
674 | - 0000000000000000000000000000000000000000000084848400848484008484 | |
675 | - 84008484840084848400FFFFFF00FFFFFF00FFFFFF00FFFFFF00848484008484 | |
676 | - 84008484840084848400848484000000000010101000FFFFFF00FFFFFF00FFFF | |
677 | - FF00FFFFFF00F7F7F700F7F7F700F7F7F700EFEFEF00EFEFEF00DEDEDE00D6D6 | |
678 | - D6008C8C8C002121210018181800000000000000000080808000C0C0C000C0C0 | |
679 | - C000C0C0C0000000000000000000000000000000000000000000000000000000 | |
680 | - 0000C0C0C000C0C0C00080808000000000000000000000000000000000000000 | |
681 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
682 | - 0000000000000000000000000000000000000000000084848400848484008484 | |
683 | - 8400848484008484840084848400FFFFFF00FFFFFF0084848400848484008484 | |
684 | - 8400848484008484840084848400000000000000000010101000D6D6D600F7F7 | |
685 | - F700F7F7F700F7F7F700F7F7F700EFEFEF00EFEFEF00EFEFEF00E7E7E700D6D6 | |
686 | - D600D6D6D600C6C6C60073737300000000000000000080808000C0C0C000C0C0 | |
687 | - C000C0C0C0000000000000000000FFFFFF00FFFFFF00FFFFFF0000000000C0C0 | |
688 | - C000C0C0C000C0C0C00080808000000000000000000000000000000000000000 | |
689 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
690 | - 0000000000000000000000000000000000000000000084848400848484008484 | |
691 | - 84008484840084848400FFFFFF00FFFFFF00FFFFFF00FFFFFF00848484008484 | |
692 | - 8400848484008484840084848400000000000000000000000000000000001010 | |
693 | - 1000D6D6D600F7F7F700F7F7F700EFEFEF00E7E7E700E7E7E700D6D6D600D6D6 | |
694 | - D600CECECE00C6C6C60000000000000000000000000080808000C0C0C000C0C0 | |
695 | - C000C0C0C0000000000000000000FFFFFF00C0C0C000C0C0C000000000000000 | |
696 | - 0000C0C0C000C0C0C00080808000000000000000000000000000000000000000 | |
697 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
698 | - 0000000000000000000000000000000000000000000084848400848484008484 | |
699 | - 840084848400FFFFFF00FFFFFF008484840084848400FFFFFF00FFFFFF008484 | |
700 | - 8400848484008484840084848400000000000000000000000000000000000000 | |
701 | - 00000000000010101000CECECE00E7E7E700DEDEDE00D6D6D600D6D6D600CECE | |
702 | - CE00C6C6C6000000000000000000000000000000000080808000C0C0C000C0C0 | |
703 | - C000C0C0C0000000000000000000FFFFFF00C0C0C000C0C0C000000000000000 | |
704 | - 0000C0C0C000C0C0C00080808000000000000000000000000000000000000000 | |
705 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
706 | - 0000000000000000000000000000000000000000000000000000848484008484 | |
707 | - 8400848484008484840084848400848484008484840084848400848484008484 | |
708 | - 8400848484008484840000000000000000000000000000000000000000000000 | |
709 | - 000000000000000000000000000010101000C6C6C600D6D6D600CECECE00CECE | |
710 | - CE0000000000000000000000000000000000000000000000000080808000C0C0 | |
711 | - C000C0C0C0000000000000000000FFFFFF00FFFFFF00FFFFFF00000000000000 | |
712 | - 0000C0C0C0008080800000000000000000000000000000000000000000000000 | |
713 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
714 | - 0000000000000000000000000000000000000000000000000000848484008484 | |
715 | - 8400848484008484840084848400848484008484840084848400848484008484 | |
716 | - 8400848484008484840000000000000000000000000000000000000000000000 | |
717 | - 0000000000000000000000000000000000000000000010101000BDBDBD000000 | |
718 | - 0000000000000000000000000000000000000000000000000000000000008080 | |
719 | - 8000C0C0C000000000000000000000000000000000000000000000000000C0C0 | |
720 | - C000808080000000000000000000000000000000000000000000000000000000 | |
721 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
722 | - 0000000000000000000000000000000000000000000000000000000000008484 | |
723 | - 8400848484008484840084848400848484008484840084848400848484008484 | |
724 | - 8400848484000000000000000000000000000000000000000000000000000000 | |
725 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
726 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
727 | - 000080808000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C0008080 | |
728 | - 8000000000000000000000000000000000000000000000000000000000000000 | |
729 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
730 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
731 | - 0000000000008484840084848400848484008484840084848400848484000000 | |
732 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
733 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
734 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
735 | - 0000000000008080800080808000808080008080800080808000808080000000 | |
736 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
737 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
738 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
739 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
740 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
741 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
742 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
743 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
744 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
745 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
746 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
747 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
748 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
749 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
750 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
751 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
752 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
753 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
754 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
755 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
756 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
757 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
758 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
759 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
760 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
761 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
762 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
763 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
764 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
765 | - 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF | |
766 | - FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 | |
767 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
768 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
769 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
770 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
771 | - 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF | |
772 | - FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000FFFFFF00FFFF | |
773 | - FF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF0000000000000000000000 | |
774 | - 00000000000000000000FFFFFF00000000000000000000000000000000000000 | |
775 | - 0000000000008484840084848400848484008484840084848400848484008484 | |
776 | - 8400848484008484840084848400000000000000000000000000000000000000 | |
777 | - 0000000000008484840084848400848484008484840084848400848484008484 | |
778 | - 8400848484008484840084848400000000000000000000000000000000000000 | |
779 | - 000000000000000000000000000000000000FFFFFF0000000000000000000000 | |
780 | - 00000000000000000000FFFFFF00000000000000000000000000FFFFFF00FFFF | |
781 | - FF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF | |
782 | - FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 | |
783 | - 0000000000008484840084848400848484008484840084848400848484008484 | |
784 | - 8400848484008484840084848400000000000000000000000000000000000000 | |
785 | - 0000000000008484840084848400848484008484840084848400848484008484 | |
786 | - 8400848484008484840084848400000000000000000000000000000000000000 | |
787 | - 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF | |
788 | - FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000FFFFFF00FFFF | |
789 | - FF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF0000000000000000000000 | |
790 | - 0000FFFFFF000000000000000000000000000000000000000000000000000000 | |
791 | - 0000000000000000000000000000000000000000000000000000000000008484 | |
792 | - 8400848484008484840084848400000000000000000000000000000000000000 | |
793 | - 0000000000000000000000000000000000000000000000000000000000008484 | |
794 | - 8400848484008484840084848400000000000000000000000000FFFFFF00FFFF | |
795 | - FF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF0000000000000000000000 | |
796 | - 00000000000000000000FFFFFF00000000000000000000000000FFFFFF00FFFF | |
797 | - FF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF | |
798 | - FF00FFFFFF0000000000FFFFFF00000000000000000000000000000000000000 | |
799 | - 000000000000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600000000008484 | |
800 | - 84008484840084848400848484000000000000000000FFFFFF00FFFFFF00FFFF | |
801 | - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000008484 | |
802 | - 8400848484008484840084848400000000000000000000000000FFFFFF000000 | |
803 | - 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF | |
804 | - FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000FFFFFF00FFFF | |
805 | - FF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF | |
806 | - FF00FFFFFF000000000000000000000000000000000000000000000000000000 | |
807 | - 000000000000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600000000008484 | |
808 | - 84008484840084848400848484000000000000000000FFFFFF00FFFFFF00FFFF | |
809 | - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000008484 | |
810 | - 8400848484008484840084848400000000000000000000000000FFFFFF00FFFF | |
811 | - FF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF000000000000000000FFFF | |
812 | - FF00000000000000000000000000000000000000000000000000FFFFFF00FFFF | |
813 | - FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 | |
814 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
815 | - 000000000000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600000000008484 | |
816 | - 84008484840084848400848484000000000000000000FFFFFF00FFFFFF00FFFF | |
817 | - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000008484 | |
818 | - 8400848484008484840084848400000000000000000000000000FFFFFF000000 | |
819 | - 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF | |
820 | - FF0000000000FFFFFF0000000000000000000000000000000000FFFFFF00FFFF | |
821 | - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF | |
822 | - FF00FFFFFF00FFFFFF0000000000000000000000000000000000000000000000 | |
823 | - 0000848484008484840084848400848484008484840084848400000000000000 | |
824 | - 00000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF | |
825 | - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000 | |
826 | - 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF | |
827 | - FF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF | |
828 | - FF00000000000000000000000000000000000000000000000000FFFFFF00FFFF | |
829 | - FF00000000000000000000000000000000000000000000000000000000000000 | |
830 | - 0000FFFFFF00FFFFFF0000000000000000000000000000000000000000000000 | |
831 | - 0000848484008484840084848400848484008484840084848400000000000000 | |
832 | - 00000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF | |
833 | - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000 | |
834 | - 0000000000000000000000000000000000000000000000000000FFFFFF000000 | |
835 | - 000000000000FFFFFF0000000000000000000000000000000000000000000000 | |
836 | - 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF | |
837 | - FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 | |
838 | - 0000FFFFFF00FFFFFF0000000000000000000000000000000000000000000000 | |
839 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
840 | - 00000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF | |
841 | - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000 | |
842 | - 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF | |
843 | - FF00FFFFFF00FFFFFF0000000000FFFFFF000000000000000000000000000000 | |
844 | - 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF | |
845 | - FF00FFFFFF0000000000FFFFFF000000000000000000FFFFFF0000000000FFFF | |
846 | - FF00FFFFFF00FFFFFF0000000000000000000000000000000000000000000000 | |
847 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
848 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
849 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
850 | - 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF | |
851 | - FF00FFFFFF00FFFFFF0000000000000000000000000000000000000000000000 | |
852 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
853 | - 0000000000000000000000000000FFFFFF00FFFFFF0000000000000000000000 | |
854 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
855 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
856 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
857 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
858 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
859 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
860 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
861 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
862 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
863 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
864 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
865 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
866 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
867 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
868 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
869 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
870 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
871 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
872 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
873 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
874 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
875 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
876 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
877 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
878 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
879 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
880 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
881 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
882 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
883 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
884 | - 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF | |
885 | - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000 | |
886 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
887 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
888 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
889 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
890 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
891 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
892 | - 00000000000000000000000000000000000000000000FFFFFF0000000000FFFF | |
893 | - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 | |
894 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
895 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
896 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
897 | - 000000000000FFFFFF00FFFFFF00000000000000000000000000000000000000 | |
898 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
899 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
900 | - 0000FFFFFF00FFFFFF00000000000000000000000000FFFFFF00FFFFFF000000 | |
901 | - 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF | |
902 | - FF00000000000000000000000000000000000000000000000000000000000000 | |
903 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
904 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
905 | - 000000000000FFFFFF00FFFFFF00000000000000000000000000FFFFFF00FFFF | |
906 | - FF00000000000000000000000000000000008484840084848400848484008484 | |
907 | - 84008484840084848400848484008484840000000000FFFFFF00FFFFFF00FFFF | |
908 | - FF00FFFFFF00FFFFFF00FFFFFF000000000000000000FFFFFF00FFFFFF00FFFF | |
909 | - FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF | |
910 | - FF00FFFFFF000000000000000000000000000000000000000000000000000000 | |
911 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
912 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
913 | - 000000000000FFFFFF00FFFFFF00000000000000000000000000FFFFFF00FFFF | |
914 | - FF0000000000000000000000000000000000C6C6C600FFFFFF00FFFFFF00FFFF | |
915 | - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000 | |
916 | - 0000FFFFFF00FFFFFF00000000000000000000000000FFFFFF00FFFFFF00FFFF | |
917 | - FF00FFFFFF000000000000000000000000000000000000000000000000000000 | |
918 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
919 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
920 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
921 | - 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF | |
922 | - FF0000000000000000000000000000000000C6C6C600FFFFFF00FFFFFF00FFFF | |
923 | - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF | |
924 | - FF000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF | |
925 | - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 | |
926 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
927 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
928 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
929 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
930 | - 000000000000000000000000000000000000C6C6C600FFFFFF00FFFFFF000000 | |
931 | - 0000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF | |
932 | - FF000000000084848400000000000000000000000000FFFFFF00FFFFFF00FFFF | |
933 | - FF00000000000000000000000000000000000000000000000000000000000000 | |
934 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
935 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
936 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
937 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
938 | - 000000000000000000000000000000000000C6C6C600FFFFFF00FFFFFF00FFFF | |
939 | - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF | |
940 | - FF00FFFFFF008484840000000000000000000000000000000000000000000000 | |
941 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
942 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
943 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
944 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
945 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
946 | - 000000000000000000000000000000000000C6C6C600FFFFFF00FFFFFF000000 | |
947 | - 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF | |
948 | - FF00FFFFFF008484840000000000000000000000000000000000000000000000 | |
949 | - 0000000000000000000084848400848484008484840084848400848484008484 | |
950 | - 8400848484008484840084848400848484000000000000000000000000000000 | |
951 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
952 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
953 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
954 | - 000000000000000000000000000000000000C6C6C600FFFFFF00FFFFFF00FFFF | |
955 | - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF | |
956 | - FF00FFFFFF008484840000000000000000000000000000000000000000000000 | |
957 | - 00000000000000000000C6C6C600FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF | |
958 | - FF00FFFFFF00FFFFFF00FFFFFF00848484000000000000000000000000000000 | |
959 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
960 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
961 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
962 | - 000000000000000000000000000000000000C6C6C600FFFFFF00FFFFFF000000 | |
963 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
964 | - 0000FFFFFF008484840000000000000000000000000000000000000000000000 | |
965 | - 00000000000000000000C6C6C600FFFFFF00FFFFFF0000000000000000000000 | |
966 | - 0000FFFFFF00FFFFFF00FFFFFF00848484000000000000000000000000000000 | |
967 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
968 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
969 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
970 | - 000000000000000000000000000000000000C6C6C600FFFFFF00FFFFFF00FFFF | |
971 | - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF | |
972 | - FF00FFFFFF008484840000000000000000000000000000000000000000000000 | |
973 | - 00000000000000000000C6C6C600FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF | |
974 | - FF00FFFFFF00FFFFFF00FFFFFF00848484000000000000000000000000000000 | |
975 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
976 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
977 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
978 | - 000000000000000000000000000000000000C6C6C600C6C6C600C6C6C600C6C6 | |
979 | - C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 | |
980 | - C600C6C6C600C6C6C60000000000000000000000000000000000000000000000 | |
981 | - 000000000000000000000000000000000000FFFFFF0000000000000000000000 | |
982 | - 000000000000FFFFFF00FFFFFF00848484000000000000000000000000000000 | |
983 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
984 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
985 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
986 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
987 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
988 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
989 | - 00000000000000000000C6C6C600FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF | |
990 | - FF00FFFFFF00FFFFFF00FFFFFF00848484000000000000000000000000000000 | |
991 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
992 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
993 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
994 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
995 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
996 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
997 | - 00000000000000000000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 | |
998 | - C600C6C6C600C6C6C600C6C6C600C6C6C6000000000000000000000000000000 | |
999 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1000 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
743 | + 0000000000000000000000000000000000000000000000000000000000001863 | |
744 | + 1863186318631863186318631863186318630000000000000000000000000000 | |
1001 | 745 | 0000000000000000000000000000000000000000000000000000000000000000 |
1002 | 746 | 000000000000000000000000000000000000424D3E000000000000003E000000 |
1003 | 747 | 2800000040000000400000000100010000000000000200000000000000000000 |
@@ -1025,74 +769,7 @@ object EditorForm: TEditorForm | ||
1025 | 769 | Top = 124 |
1026 | 770 | Bitmap = { |
1027 | 771 | 494C01010C000E00040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 |
1028 | - 0000000000003600000028000000400000004000000001002000000000000040 | |
1029 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1030 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1031 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1032 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1033 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1034 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1035 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1036 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1037 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1038 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1039 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1040 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1041 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1042 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1043 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1044 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1045 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1046 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1047 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1048 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1049 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1050 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1051 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1052 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1053 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1054 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1055 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1056 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1057 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1058 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1059 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1060 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1061 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1062 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1063 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1064 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1065 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1066 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1067 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1068 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1069 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1070 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1071 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1072 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1073 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1074 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1075 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1076 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1077 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1078 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1079 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1080 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1081 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1082 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1083 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1084 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1085 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1086 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1087 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1088 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1089 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1090 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1091 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1092 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1093 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1094 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1095 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
772 | + 0000000000003600000028000000400000004000000001001000000000000020 | |
1096 | 773 | 0000000000000000000000000000000000000000000000000000000000000000 |
1097 | 774 | 0000000000000000000000000000000000000000000000000000000000000000 |
1098 | 775 | 0000000000000000000000000000000000000000000000000000000000000000 |
@@ -1161,382 +838,193 @@ object EditorForm: TEditorForm | ||
1161 | 838 | 0000000000000000000000000000000000000000000000000000000000000000 |
1162 | 839 | 0000000000000000000000000000000000000000000000000000000000000000 |
1163 | 840 | 0000000000000000000000000000000000000000000000000000000000000000 |
841 | + 0000000000000000000000000000000000000000000000000000000000400040 | |
842 | + 0040004000400040000000000000000000000000000000000000000000000821 | |
843 | + 0000000000000000000000000000000000000000000000000000000000410041 | |
844 | + 0041004100410041000000000000000000000000000000000000000000000000 | |
845 | + 0000000000000000000000000000000000000000000000000040004000400040 | |
846 | + 0040004000400040004000400000000000000000000000000000524A0821E71C | |
847 | + 0000E71C00000000000000000000000000000000000000000000004108720872 | |
848 | + 0872087208720872004100000000000000000000000000000000000000000000 | |
849 | + 0000000000000000000000000000000000000000000000400040004000400040 | |
850 | + 004000400040004000400040004000000000000000000000E71C3A6B8C314929 | |
851 | + 0821082100000821000000000000000000000000000000000041087200000000 | |
852 | + 0000000000000000000000410000000000000000000000000000000000000000 | |
853 | + 0000000000000000000000000000000000000000000000400040004000400040 | |
854 | + 00400040004000400040004000400000000000000000E71C94527B6F3767714E | |
855 | + 8B2D49290821E71C0000E71C0000000000000000000000410872087200000000 | |
856 | + FF7FFF7FFF7F0872000000000041000000000000000000000000000000000000 | |
857 | + 0000000000000000000000000000000000000000004000400040004000400040 | |
858 | + 004000400040004000400040004000400000630C524AEF3D186318635A6B3967 | |
859 | + F55E30466A294829E71C08210000082100000000004108720872087200000000 | |
860 | + FF7F087208720872000000000872004100000000000000000000000000000000 | |
861 | + 00000000000000000000000000000000000000000040004000400040FF7FFF7F | |
862 | + 00400040FF7FFF7F0040004000400040000008215A6B5A6BB5565A6B5A6B3967 | |
863 | + 39671863D55E30466A294829E71C082100000000004108720872087200000000 | |
864 | + FF7F087208720872000000000872004100000000000000000000000000000000 | |
865 | + 000000000000000000000000000000000000000000400040004000400040FF7F | |
866 | + FF7FFF7FFF7F00400040004000400040000008219D777B6F7B6F5A6B5A6B3967 | |
867 | + 3967F862F75EB65AB4562F464925282500000000004108720872087200000000 | |
868 | + 0000000000000000000008720872004100000000000000000000000000000000 | |
869 | + 0000000000000000000000000000000000000000004000400040004000400040 | |
870 | + FF7FFF7F004000400040004000400040000000000821B3565A6B5A6B39671967 | |
871 | + 1863F75EF75ED65AB556955692520E4200000000004108720872087200000000 | |
872 | + FF7FFF7FFF7F0000087208720872004100000000000000000000000000000000 | |
873 | + 000000000000000000000000000000000000000000400040004000400040FF7F | |
874 | + FF7FFF7FFF7F0040004000400040004000000000000000000821B35639671967 | |
875 | + F862D75ED65AB55695569452734E841000000000004108720872087200000000 | |
876 | + FF7F087208720000000008720872004100000000000000000000000000000000 | |
877 | + 00000000000000000000000000000000000000000040004000400040FF7FFF7F | |
878 | + 00400040FF7FFF7F004000400040004000000000000000000000000008219352 | |
879 | + D75EB65AB556B556945274528410000000000000004108720872087200000000 | |
880 | + FF7F087208720000000008720872004100000000000000000000000000000000 | |
881 | + 0000000000000000000000000000000000000000000000400040004000400040 | |
882 | + 0040004000400040004000400040000000000000000000000000000000000000 | |
883 | + 08219252B55694529452A5140000000000000000000000410872087200000000 | |
884 | + FF7FFF7FFF7F0000000008720041000000000000000000000000000000000000 | |
885 | + 0000000000000000000000000000000000000000000000400040004000400040 | |
886 | + 0040004000400040004000400040000000000000000000000000000000000000 | |
887 | + 000000000821724EA51400000000000000000000000000000041087200000000 | |
888 | + 0000000000000000087200410000000000000000000000000000000000000000 | |
889 | + 0000000000000000000000000000000000000000000000000040004000400040 | |
890 | + 0040004000400040004000400000000000000000000000000000000000000000 | |
891 | + 0000000000000000000000000000000000000000000000000000004108720872 | |
892 | + 0872087208720872004100000000000000000000000000000000000000000000 | |
893 | + 0000000000000000000000000000000000000000000000000000000000400040 | |
894 | + 0040004000400040000000000000000000000000000000000000000000000000 | |
895 | + 0000000000000000000000000000000000000000000000000000000000410041 | |
896 | + 0041004100410041000000000000000000000000000000000000000000000000 | |
1164 | 897 | 0000000000000000000000000000000000000000000000000000000000000000 |
1165 | 898 | 0000000000000000000000000000000000000000000000000000000000000000 |
1166 | - 0000000000000000840000008400000084000000840000008400000084000000 | |
1167 | 899 | 0000000000000000000000000000000000000000000000000000000000000000 |
1168 | - 0000000000000000000042424200000000000000000000000000000000000000 | |
1169 | 900 | 0000000000000000000000000000000000000000000000000000000000000000 |
1170 | - 0000000000000040800000408000004080000040800000408000004080000000 | |
1171 | 901 | 0000000000000000000000000000000000000000000000000000000000000000 |
1172 | 902 | 0000000000000000000000000000000000000000000000000000000000000000 |
1173 | 903 | 0000000000000000000000000000000000000000000000000000000000000000 |
1174 | - 8400000084000000840000008400000084000000840000008400000084000000 | |
1175 | - 8400000084000000000000000000000000000000000000000000000000000000 | |
1176 | - 0000949494004242420039393900000000003939390000000000000000000000 | |
1177 | 904 | 0000000000000000000000000000000000000000000000000000000000000000 |
1178 | - 0000004080004080E0004080E0004080E0004080E0004080E0004080E0000040 | |
1179 | - 8000000000000000000000000000000000000000000000000000000000000000 | |
1180 | 905 | 0000000000000000000000000000000000000000000000000000000000000000 |
1181 | - 0000000000000000000000000000000000000000000000000000000084000000 | |
1182 | - 8400000084000000840000008400000084000000840000008400000084000000 | |
1183 | - 8400000084000000840000000000000000000000000000000000000000003939 | |
1184 | - 3900D6CED600636363004A525200424242004242420000000000424242000000 | |
1185 | - 0000000000000000000000000000000000000000000000000000000000000040 | |
1186 | - 80004080E0000000000000000000000000000000000000000000000000000000 | |
1187 | - 0000004080000000000000000000000000000000000000000000000000000000 | |
1188 | 906 | 0000000000000000000000000000000000000000000000000000000000000000 |
1189 | - 0000000000000000000000000000000000000000000000000000000084000000 | |
1190 | - 8400000084000000840000008400000084000000840000008400000084000000 | |
1191 | - 840000008400000084000000000000000000000000000000000039393900A5A5 | |
1192 | - A500DEDEDE00BDCECE008C9C9C005A635A004A52520042424200393939000000 | |
1193 | - 0000393939000000000000000000000000000000000000000000004080004080 | |
1194 | - E0004080E0000000000000000000FFFFFF00FFFFFF00FFFFFF004080E0000000 | |
1195 | - 0000000000000040800000000000000000000000000000000000000000000000 | |
907 | + 1000100010001000100010001000100010000000000000000000000000000000 | |
1196 | 908 | 0000000000000000000000000000000000000000000000000000000000000000 |
1197 | - 0000000000000000000000000000000000000000000000008400000084000000 | |
1198 | - 8400000084000000840000008400000084000000840000008400000084000000 | |
1199 | - 84000000840000008400000084000000000018181800949494007B7B7B00C6C6 | |
1200 | - C600C6C6C600D6D6D600CECECE00ADBDBD00848C8C00525A5200425252003939 | |
1201 | - 39004242420000000000424242000000000000000000004080004080E0004080 | |
1202 | - E0004080E0000000000000000000FFFFFF004080E0004080E0004080E0000000 | |
1203 | - 0000000000004080E00000408000000000000000000000000000000000000000 | |
1204 | 909 | 0000000000000000000000000000000000000000000000000000000000000000 |
1205 | - 0000000000000000000000000000000000000000000000008400000084000000 | |
1206 | - 840000008400FFFFFF00FFFFFF000000840000008400FFFFFF00FFFFFF000000 | |
1207 | - 84000000840000008400000084000000000042424200D6D6D600D6D6D600ADAD | |
1208 | - AD00D6D6D600D6D6D600CECECE00CECECE00C6C6C600ADB5BD00848C8C00525A | |
1209 | - 52004252520039393900424242000000000000000000004080004080E0004080 | |
1210 | - E0004080E0000000000000000000FFFFFF004080E0004080E0004080E0000000 | |
1211 | - 0000000000004080E00000408000000000000000000000000000000000000000 | |
910 | + 1000100010001000100010001000100010000000000000000000000000000000 | |
911 | + 1000FF7FFF7FFF7FFF7FFF7FFF7FFF7F10000000000000000000000000000000 | |
1212 | 912 | 0000000000000000000000000000000000000000000000000000000000000000 |
1213 | - 0000000000000000000000000000000000000000000000008400000084000000 | |
1214 | - 84000000840000008400FFFFFF00FFFFFF00FFFFFF00FFFFFF00000084000000 | |
1215 | - 84000000840000008400000084000000000042424200EFE7EF00DEDEDE00DEDE | |
1216 | - DE00D6D6D600D6D6D600CECECE00CECECE00C6BDC600BDBDBD00B5ADB500A5AD | |
1217 | - AD007B8C8C004A524A00424A4A000000000000000000004080004080E0004080 | |
1218 | - E0004080E0000000000000000000000000000000000000000000000000000000 | |
1219 | - 00004080E0004080E00000408000000000000000000000000000000000000000 | |
1220 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1221 | - 0000000000000000000000000000000000000000000000008400000084000000 | |
1222 | - 8400000084000000840000008400FFFFFF00FFFFFF0000008400000084000000 | |
1223 | - 84000000840000008400000084000000000000000000424242009CADAD00D6D6 | |
1224 | - D600D6D6D600CECECE00CEC6CE00C6C6C600BDBDBD00BDBDBD00B5B5B500ADAD | |
1225 | - AD00ADA5AD0094A5A500738484000000000000000000004080004080E0004080 | |
1226 | - E0004080E0000000000000000000FFFFFF00FFFFFF00FFFFFF00000000004080 | |
1227 | - E0004080E0004080E00000408000000000000000000000000000000000000000 | |
1228 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1229 | - 0000000000000000000000000000000000000000000000008400000084000000 | |
1230 | - 84000000840000008400FFFFFF00FFFFFF00FFFFFF00FFFFFF00000084000000 | |
1231 | - 8400000084000000840000008400000000000000000000000000000000004242 | |
1232 | - 42009CADAD00CECECE00CEC6CE00C6BDC600BDB5BD00B5B5B500ADADAD00ADA5 | |
1233 | - AD00A5A5A5009C9C9C00212121000000000000000000004080004080E0004080 | |
1234 | - E0004080E0000000000000000000FFFFFF004080E0004080E000000000000000 | |
1235 | - 00004080E0004080E00000408000000000000000000000000000000000000000 | |
1236 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1237 | - 0000000000000000000000000000000000000000000000008400000084000000 | |
1238 | - 840000008400FFFFFF00FFFFFF000000840000008400FFFFFF00FFFFFF000000 | |
1239 | - 8400000084000000840000008400000000000000000000000000000000000000 | |
1240 | - 000000000000424242009CA5A500BDB5BD00B5ADB500ADADAD00ADADAD00A5A5 | |
1241 | - A500A59CA50021212100000000000000000000000000004080004080E0004080 | |
1242 | - E0004080E0000000000000000000FFFFFF004080E0004080E000000000000000 | |
1243 | - 00004080E0004080E00000408000000000000000000000000000000000000000 | |
1244 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1245 | - 0000000000000000000000000000000000000000000000000000000084000000 | |
1246 | - 8400000084000000840000008400000084000000840000008400000084000000 | |
1247 | - 8400000084000000840000000000000000000000000000000000000000000000 | |
1248 | - 00000000000000000000000000004242420094A5A500ADADAD00A5A5A500A5A5 | |
1249 | - A500292929000000000000000000000000000000000000000000004080004080 | |
1250 | - E0004080E0000000000000000000FFFFFF00FFFFFF00FFFFFF00000000000000 | |
1251 | - 00004080E0000040800000000000000000000000000000000000000000000000 | |
1252 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1253 | - 0000000000000000000000000000000000000000000000000000000084000000 | |
1254 | - 8400000084000000840000008400000084000000840000008400000084000000 | |
1255 | - 8400000084000000840000000000000000000000000000000000000000000000 | |
1256 | - 0000000000000000000000000000000000000000000042424200949C9C002929 | |
1257 | - 2900000000000000000000000000000000000000000000000000000000000040 | |
1258 | - 80004080E0000000000000000000000000000000000000000000000000004080 | |
1259 | - E000004080000000000000000000000000000000000000000000000000000000 | |
1260 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1261 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1262 | - 8400000084000000840000008400000084000000840000008400000084000000 | |
1263 | - 8400000084000000000000000000000000000000000000000000000000000000 | |
1264 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1265 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1266 | - 0000004080004080E0004080E0004080E0004080E0004080E0004080E0000040 | |
1267 | - 8000000000000000000000000000000000000000000000000000000000000000 | |
1268 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1269 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1270 | - 0000000000000000840000008400000084000000840000008400000084000000 | |
1271 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1272 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1273 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1274 | - 0000000000000040800000408000004080000040800000408000004080000000 | |
1275 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1276 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1277 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1278 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1279 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1280 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1281 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1282 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1283 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1284 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1285 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1286 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1287 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1288 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1289 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1290 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1291 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1292 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1293 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1294 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1295 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1296 | - 0000000000000000000000000000840000008400000084000000840000008400 | |
1297 | - 0000840000008400000084000000840000000000000000000000000000000000 | |
1298 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1299 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1300 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1301 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1302 | - 0000000000000000000000000000840000008400000084000000840000008400 | |
1303 | - 0000840000008400000084000000840000000000000000000000000000000000 | |
1304 | - 000000000000000000000000000084000000FFFFFF00FFFFFF00FFFFFF00FFFF | |
1305 | - FF00FFFFFF00FFFFFF00FFFFFF00840000000000000000000000000000000000 | |
1306 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1307 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1308 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1309 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1310 | - 000000000000000000000000000084000000FFFFFF00FFFFFF00FFFFFF00FFFF | |
1311 | - FF00FFFFFF00FFFFFF00FFFFFF00840000000000000000000000008484008484 | |
1312 | - 840000848400848484000084840084000000FFFFFF0084000000840000008400 | |
1313 | - 00008400000084000000FFFFFF00840000000000000000000000000000000000 | |
1314 | - 0000000000008484840084848400848484008484840084848400848484008484 | |
1315 | - 8400848484008484840084848400000000000000000000000000000000000000 | |
1316 | - 0000000000008484840084848400848484008484840084848400848484008484 | |
1317 | - 8400848484008484840084848400000000000000000000000000000000000000 | |
1318 | - 000000000000000000000000000084000000FFFFFF0084000000840000008400 | |
1319 | - 00008400000084000000FFFFFF00840000000000000000000000848484000084 | |
1320 | - 840084848400008484008484840084000000FFFFFF00FFFFFF00FFFFFF00FFFF | |
1321 | - FF00FFFFFF00FFFFFF00FFFFFF00840000000000000000000000000000000000 | |
1322 | - 0000000000008484840084848400848484008484840084848400848484008484 | |
1323 | - 8400848484008484840084848400000000000000000000000000000000000000 | |
1324 | - 0000000000008484840084848400848484008484840084848400848484008484 | |
1325 | - 8400848484008484840084848400000000000000000000000000000000000000 | |
1326 | - 000000000000000000000000000084000000FFFFFF00FFFFFF00FFFFFF00FFFF | |
1327 | - FF00FFFFFF00FFFFFF00FFFFFF00840000000000000000000000008484008484 | |
1328 | - 840000848400848484000084840084000000FFFFFF0084000000840000008400 | |
1329 | - 0000FFFFFF008400000084000000840000008484840084848400848484008484 | |
1330 | - 8400848484008484840084848400848484008484840084848400848484008484 | |
1331 | - 8400848484008484840084848400000000008484840084848400848484008484 | |
1332 | - 8400848484008484840084848400848484008484840084848400848484008484 | |
1333 | - 8400848484008484840084848400000000000000000000000000FFFFFF00FFFF | |
1334 | - FF00FFFFFF00FFFFFF00FFFFFF0084000000FFFFFF0084000000840000008400 | |
1335 | - 00008400000084000000FFFFFF00840000000000000000000000848484000084 | |
1336 | - 840084848400008484008484840084000000FFFFFF00FFFFFF00FFFFFF00FFFF | |
1337 | - FF00FFFFFF0084000000FFFFFF0084000000C6C6C60000000000000000000000 | |
1338 | - 000084848400C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600848484008484 | |
1339 | - 840084848400848484008484840000000000C6C6C600FFFFFF00FFFFFF00FFFF | |
1340 | - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00848484008484 | |
1341 | - 8400848484008484840084848400000000000000000000000000FFFFFF000000 | |
1342 | - 000000000000000000000000000084000000FFFFFF00FFFFFF00FFFFFF00FFFF | |
1343 | - FF00FFFFFF00FFFFFF00FFFFFF00840000000000000000000000008484008484 | |
1344 | - 840000848400848484000084840084000000FFFFFF00FFFFFF00FFFFFF00FFFF | |
1345 | - FF00FFFFFF00840000008400000000000000C6C6C60000000000000000000000 | |
1346 | - 000084848400C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600848484008484 | |
1347 | - 840084848400848484008484840000000000C6C6C600FFFFFF00FFFFFF00FFFF | |
1348 | - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00848484008484 | |
1349 | - 8400848484008484840084848400000000000000000000000000FFFFFF00FFFF | |
1350 | - FF00FFFFFF00FFFFFF00FFFFFF0084000000FFFFFF008400000084000000FFFF | |
1351 | - FF00840000008400000084000000840000000000000000000000848484000084 | |
1352 | - 8400848484000084840084848400840000008400000084000000840000008400 | |
1353 | - 000084000000840000000000000000000000C6C6C60000000000000000000000 | |
1354 | - 000084848400C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600848484008484 | |
1355 | - 840084848400848484008484840000000000C6C6C600FFFFFF00FFFFFF00FFFF | |
1356 | - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00848484008484 | |
1357 | - 8400848484008484840084848400000000000000000000000000FFFFFF000000 | |
1358 | - 000000000000000000000000000084000000FFFFFF00FFFFFF00FFFFFF00FFFF | |
1359 | - FF0084000000FFFFFF0084000000000000000000000000000000008484008484 | |
1360 | - 8400008484008484840000848400848484000084840084848400008484008484 | |
1361 | - 840000848400848484000000000000000000C6C6C60000000000000000000000 | |
1362 | - 0000FF000000FF000000FF000000FF000000FF000000FF000000848484008400 | |
1363 | - 000084000000840000008400000084000000C6C6C600FFFFFF00FFFFFF00FFFF | |
1364 | - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00848484008400 | |
1365 | - 0000840000008400000084000000840000000000000000000000FFFFFF00FFFF | |
1366 | - FF00FFFFFF00FFFFFF00FFFFFF0084000000FFFFFF00FFFFFF00FFFFFF00FFFF | |
1367 | - FF00840000008400000000000000000000000000000000000000848484000084 | |
1368 | - 8400000000000000000000000000000000000000000000000000000000000000 | |
1369 | - 000084848400008484000000000000000000C6C6C60000000000000000000000 | |
1370 | - 0000FF000000FF000000FF000000FF000000FF000000FF000000848484008400 | |
1371 | - 000084000000840000008400000084000000C6C6C600FFFFFF00FFFFFF00FFFF | |
1372 | - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00848484008400 | |
1373 | - 0000840000008400000084000000840000000000000000000000FFFFFF000000 | |
1374 | - 000000000000FFFFFF0000000000840000008400000084000000840000008400 | |
1375 | - 0000840000000000000000000000000000000000000000000000008484008484 | |
1376 | - 840000000000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C6000000 | |
1377 | - 000000848400848484000000000000000000C6C6C60000000000000000000000 | |
1378 | - 0000000000000000000000000000000000000000000000000000848484000000 | |
1379 | - 000000000000000000000000000000000000C6C6C600FFFFFF00FFFFFF00FFFF | |
1380 | - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00848484000000 | |
1381 | - 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF | |
1382 | - FF00FFFFFF00FFFFFF0000000000FFFFFF000000000000000000000000000000 | |
1383 | - 0000000000000000000000000000000000000000000000000000848484000084 | |
1384 | - 8400848484000000000000FFFF00000000000000000000FFFF00000000000084 | |
1385 | - 8400848484000084840000000000000000008400000084000000840000008400 | |
1386 | - 0000840000008400000084000000840000008400000084000000840000000000 | |
1387 | - 000000000000000000000000000000000000FF000000FF000000FF000000FF00 | |
1388 | - 0000FF000000FF000000FF000000FF000000FF000000FF000000FF0000000000 | |
1389 | - 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF | |
1390 | - FF00FFFFFF00FFFFFF0000000000000000000000000000000000000000000000 | |
1391 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1392 | - 000000000000000000000000000000FFFF0000FFFF0000000000000000000000 | |
1393 | - 0000000000000000000000000000000000008400000084000000840000008400 | |
1394 | - 0000840000008400000084000000840000008400000084000000840000000000 | |
1395 | - 000000000000000000000000000000000000FF000000FF000000FF000000FF00 | |
1396 | - 0000FF000000FF000000FF000000FF000000FF000000FF000000FF0000000000 | |
1397 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1398 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1399 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1400 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1401 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1402 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1403 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1404 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1405 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1406 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1407 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1408 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1409 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1410 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1411 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1412 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1413 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1414 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1415 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1416 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1417 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1418 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1419 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1420 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1421 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1422 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1423 | - 0000000000000000000000000000000000000000000000000000008484000084 | |
1424 | - 8400008484000084840000848400008484000084840000848400000000000000 | |
1425 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1426 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1427 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1428 | - 0000000000008400000084000000000000000000000000000000000000000000 | |
1429 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1430 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1431 | - 0000000000000000000000000000000000000000000000FFFF00000000000084 | |
1432 | - 8400008484000084840000848400008484000084840000848400008484000000 | |
1433 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1434 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1435 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1436 | - 000084000000FFFFFF00FFFFFF00840000000000000000000000840000008400 | |
1437 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1438 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1439 | - 000000FF000000FF000000000000000000000000000000FFFF0000FFFF000000 | |
1440 | - 0000008484000084840000848400008484000084840000848400008484000084 | |
1441 | - 8400000000000000000000000000000000000000000000000000000000000000 | |
1442 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1443 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1444 | - 000084000000FFFFFF00FFFFFF00840000000000000084000000FFFFFF00FFFF | |
1445 | - FF00840000000000000000000000000000008484840084848400848484008484 | |
1446 | - 8400848484008484840084848400848484000000000000FF000000FF000000FF | |
1447 | - 000000FF000000FF000000FF0000000000000000000000FFFF0000FFFF0000FF | |
1448 | - FF00000000000084840000848400008484000084840000848400008484000084 | |
1449 | - 8400008484000000000000000000000000000000000000000000000000000000 | |
1450 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1451 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1452 | - 000084000000FFFFFF00FFFFFF00840000000000000084000000FFFFFF00FFFF | |
1453 | - FF0084000000000000000000000000000000C6C6C60000FFFF00FFFFFF0000FF | |
1454 | - FF00FFFFFF0000FFFF00FFFFFF0000FFFF000000000000000000000000000000 | |
1455 | - 000000FF000000FF000000000000000000000000000000FFFF0000FFFF0000FF | |
1456 | - FF0000FFFF000000000000000000000000000000000000000000000000000000 | |
1457 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1458 | - 0000000000000000000000000000000000000000000000000000000000008484 | |
1459 | - 8400840000000000000000000000000000000000000000000000000000000000 | |
1460 | - 0000000000008400000084000000840000000000000084000000FFFFFF00FFFF | |
1461 | - FF0084000000000000000000000000000000C6C6C600FFFFFF0000FFFF00FFFF | |
1462 | - FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFF | |
1463 | - FF00000000000000000000000000000000000000000000FFFF0000FFFF0000FF | |
1464 | - FF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000000000000000000000 | |
1465 | - 0000000000000000000000000000000000000000000000000000840000008400 | |
1466 | - 0000840000008400000084000000000000000000000000000000000000000000 | |
1467 | - 0000840000008484840000000000000000000000000000000000000000000000 | |
1468 | - 0000000000000000000000000000840000000000000084000000840000008400 | |
1469 | - 000000000000000000000000000000000000C6C6C60000FFFF00FFFFFF000000 | |
1470 | - 000000000000000000000000000000FFFF00FFFFFF0000FFFF00FFFFFF0000FF | |
1471 | - FF00000000008484840000000000000000000000000000FFFF0000FFFF0000FF | |
1472 | - FF00000000000000000000000000000000000000000000000000000000000000 | |
1473 | - 0000000000000000000000000000000000000000000000000000840000008400 | |
1474 | - 0000840000008400000000000000000000000000000000000000000000000000 | |
1475 | - 0000000000008400000000000000000000000000000000000000000000000000 | |
1476 | - 0000000000000000000000000000840000000000000084000000000000000000 | |
1477 | - 000000000000000000000000000000000000C6C6C600FFFFFF0000FFFF00FFFF | |
1478 | - FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFF | |
1479 | - FF0000FFFF008484840000000000000000000000000000000000000000000000 | |
1480 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1481 | - 0000000000000000000000000000000000000000000000000000840000008400 | |
1482 | - 0000840000000000000000000000000000000000000000000000000000000000 | |
1483 | - 0000000000008400000000000000000000000000000000000000000000000000 | |
1484 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1485 | - 000000000000000000000000000000000000C6C6C60000FFFF00FFFFFF000000 | |
1486 | - 0000000000000000000000000000000000000000000000000000FFFFFF0000FF | |
1487 | - FF00FFFFFF008484840000000000000000000000000000000000000000000000 | |
1488 | - 0000000000000000000084848400848484008484840084848400848484008484 | |
1489 | - 8400848484008484840084848400848484000000000000000000840000008400 | |
1490 | - 0000000000008400000000000000000000000000000000000000000000000000 | |
1491 | - 0000000000008400000000000000000000000000000000000000000000000000 | |
1492 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1493 | - 000000000000000000000000000000000000C6C6C600FFFFFF0000FFFF00FFFF | |
1494 | - FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFF | |
1495 | - FF0000FFFF008484840000000000000000000000000000000000000000000000 | |
1496 | - 00000000000000000000C6C6C60000FFFF00FFFFFF0000FFFF00FFFFFF0000FF | |
1497 | - FF00FFFFFF0000FFFF00FFFFFF00848484000000000000000000840000000000 | |
1498 | - 0000000000000000000084000000840000000000000000000000000000000000 | |
1499 | - 0000840000008484840000000000000000000000000000000000000000000000 | |
1500 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1501 | - 000000000000000000000000000000000000C6C6C60000FFFF00FFFFFF000000 | |
1502 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1503 | - 0000FFFFFF008484840000000000000000000000000000000000000000000000 | |
1504 | - 00000000000000000000C6C6C600FFFFFF0000FFFF0000000000000000000000 | |
1505 | - 000000FFFF00FFFFFF0000FFFF00848484000000000000000000000000000000 | |
1506 | - 0000000000000000000000000000000000008400000084000000840000008400 | |
1507 | - 0000848484000000000000000000000000000000000000000000000000000000 | |
1508 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1509 | - 000000000000000000000000000000000000C6C6C600FFFFFF0000FFFF00FFFF | |
1510 | - FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFF | |
1511 | - FF0000FFFF008484840000000000000000000000000000000000000000000000 | |
1512 | - 00000000000000000000C6C6C60000FFFF00FFFFFF0000FFFF00FFFFFF0000FF | |
1513 | - FF00FFFFFF0000FFFF00FFFFFF00848484000000000000000000000000000000 | |
1514 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1515 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1516 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1517 | - 000000000000000000000000000000000000C6C6C600C6C6C600C6C6C600C6C6 | |
1518 | - C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 | |
1519 | - C600C6C6C600C6C6C60000000000000000000000000000000000000000000000 | |
1520 | - 00000000000000000000000000000000000000FFFF0000000000000000000000 | |
1521 | - 000000000000FFFFFF0000FFFF00848484000000000000000000000000000000 | |
1522 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1523 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1524 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1525 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1526 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1527 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1528 | - 00000000000000000000C6C6C60000FFFF00FFFFFF0000FFFF00FFFFFF0000FF | |
1529 | - FF00FFFFFF0000FFFF00FFFFFF00848484000000000000000000000000000000 | |
1530 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1531 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1532 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1533 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1534 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1535 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
1536 | - 00000000000000000000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 | |
1537 | - C600C6C6C600C6C6C600C6C6C600C6C6C6000000000000000000000000000000 | |
1538 | 913 | 0000000000000000000000000000000000000000000000000000000000000000 |
914 | + 1000FF7FFF7FFF7FFF7FFF7FFF7FFF7F10000000000000421042004210420042 | |
915 | + 1000FF7F10001000100010001000FF7F10000000000000000000000010421042 | |
916 | + 1042104210421042104210421042104200000000000000000000000010421042 | |
917 | + 1042104210421042104210421042104200000000000000000000000000000000 | |
918 | + 1000FF7F10001000100010001000FF7F10000000000010420042104200421042 | |
919 | + 1000FF7FFF7FFF7FFF7FFF7FFF7FFF7F10000000000000000000000010421042 | |
920 | + 1042104210421042104210421042104200000000000000000000000010421042 | |
921 | + 1042104210421042104210421042104200000000000000000000000000000000 | |
922 | + 1000FF7FFF7FFF7FFF7FFF7FFF7FFF7F10000000000000421042004210420042 | |
923 | + 1000FF7F100010001000FF7F1000100010001042104210421042104210421042 | |
924 | + 1042104210421042104210421042104200001042104210421042104210421042 | |
925 | + 10421042104210421042104210421042000000000000FF7FFF7FFF7FFF7FFF7F | |
926 | + 1000FF7F10001000100010001000FF7F10000000000010420042104200421042 | |
927 | + 1000FF7FFF7FFF7FFF7FFF7F1000FF7F10001863000000000000104218631863 | |
928 | + 1863186318631042104210421042104200001863FF7FFF7FFF7FFF7FFF7FFF7F | |
929 | + FF7FFF7FFF7F10421042104210421042000000000000FF7F0000000000000000 | |
930 | + 1000FF7FFF7FFF7FFF7FFF7FFF7FFF7F10000000000000421042004210420042 | |
931 | + 1000FF7FFF7FFF7FFF7FFF7F1000100000001863000000000000104218631863 | |
932 | + 1863186318631042104210421042104200001863FF7FFF7FFF7FFF7FFF7FFF7F | |
933 | + FF7FFF7FFF7F10421042104210421042000000000000FF7FFF7FFF7FFF7FFF7F | |
934 | + 1000FF7F10001000FF7F10001000100010000000000010420042104200421042 | |
935 | + 1000100010001000100010001000000000001863000000000000104218631863 | |
936 | + 1863186318631042104210421042104200001863FF7FFF7FFF7FFF7FFF7FFF7F | |
937 | + FF7FFF7FFF7F10421042104210421042000000000000FF7F0000000000000000 | |
938 | + 1000FF7FFF7FFF7FFF7F1000FF7F100000000000000000421042004210420042 | |
939 | + 10420042104200421042004210420000000018630000000000001F001F001F00 | |
940 | + 1F001F001F001042100010001000100010001863FF7FFF7FFF7FFF7FFF7FFF7F | |
941 | + FF7FFF7FFF7F10421000100010001000100000000000FF7FFF7FFF7FFF7FFF7F | |
942 | + 1000FF7FFF7FFF7FFF7F10001000000000000000000010420042000000000000 | |
943 | + 00000000000000000000104200420000000018630000000000001F001F001F00 | |
944 | + 1F001F001F001042100010001000100010001863FF7FFF7FFF7FFF7FFF7FFF7F | |
945 | + FF7FFF7FFF7F10421000100010001000100000000000FF7F00000000FF7F0000 | |
946 | + 1000100010001000100010000000000000000000000000421042000018631863 | |
947 | + 1863186318631863000000421042000000001863000000000000000000000000 | |
948 | + 0000000000001042000000000000000000001863FF7FFF7FFF7FFF7FFF7FFF7F | |
949 | + FF7FFF7FFF7F10420000000000000000000000000000FF7FFF7FFF7FFF7F0000 | |
950 | + FF7F00000000000000000000000000000000000000001042004210420000E07F | |
951 | + 00000000E07F0000004210420042000000001000100010001000100010001000 | |
952 | + 1000100010001000000000000000000000001F001F001F001F001F001F001F00 | |
953 | + 1F001F001F001F000000000000000000000000000000FF7FFF7FFF7FFF7F0000 | |
954 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
955 | + E07FE07F00000000000000000000000000001000100010001000100010001000 | |
956 | + 1000100010001000000000000000000000001F001F001F001F001F001F001F00 | |
957 | + 1F001F001F001F00000000000000000000000000000000000000000000000000 | |
958 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
959 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
960 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
961 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
962 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
963 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
964 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
965 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
966 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
967 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
968 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
969 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
970 | + 0000000000000000000000000000000000000000000000420042004200420042 | |
971 | + 0042004200420000000000000000000000000000000000000000000000000000 | |
972 | + 0000000000000000000000000000000000000000000000000000000010001000 | |
973 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
974 | + 0000000000000000000000000000000000000000E07F00000042004200420042 | |
975 | + 0042004200420042000000000000000000000000000000000000000000000000 | |
976 | + 00000000000000000000000000000000000000000000000000001000FF7FFF7F | |
977 | + 1000000000001000100000000000000000000000000000000000000000000000 | |
978 | + 00000000000000000000E003E003000000000000E07FE07F0000004200420042 | |
979 | + 0042004200420042004200000000000000000000000000000000000000000000 | |
980 | + 00000000000000000000000000000000000000000000000000001000FF7FFF7F | |
981 | + 100000001000FF7FFF7F10000000000000001042104210421042104210421042 | |
982 | + 10420000E003E003E003E003E003E00300000000E07FE07FE07F000000420042 | |
983 | + 0042004200420042004200420000000000000000000000000000000000000000 | |
984 | + 00000000000000000000000000000000000000000000000000001000FF7FFF7F | |
985 | + 100000001000FF7FFF7F10000000000000001863E07FFF7FE07FFF7FE07FFF7F | |
986 | + E07F0000000000000000E003E003000000000000E07FE07FE07FE07F00000000 | |
1539 | 987 | 0000000000000000000000000000000000000000000000000000000000000000 |
988 | + 0000000000000000104210000000000000000000000000000000000010001000 | |
989 | + 100000001000FF7FFF7F10000000000000001863FF7FE07FFF7FE07FFF7FE07F | |
990 | + FF7FE07FFF7FE07FFF7F00000000000000000000E07FE07FE07FE07FE07FE07F | |
991 | + E07FE07F00000000000000000000000000000000000010001000100010001000 | |
992 | + 0000000000000000000010001042000000000000000000000000000000000000 | |
993 | + 1000000010001000100000000000000000001863E07FFF7F0000000000000000 | |
994 | + E07FFF7FE07FFF7FE07F00001042000000000000E07FE07FE07F000000000000 | |
995 | + 0000000000000000000000000000000000000000000010001000100010000000 | |
996 | + 0000000000000000000000001000000000000000000000000000000000000000 | |
997 | + 1000000010000000000000000000000000001863FF7FE07FFF7FE07FFF7FE07F | |
998 | + FF7FE07FFF7FE07FFF7FE07F1042000000000000000000000000000000000000 | |
999 | + 0000000000000000000000000000000000000000000010001000100000000000 | |
1000 | + 0000000000000000000000001000000000000000000000000000000000000000 | |
1001 | + 0000000000000000000000000000000000001863E07FFF7F0000000000000000 | |
1002 | + 000000000000FF7FE07FFF7F1042000000000000000000000000000000001042 | |
1003 | + 1042104210421042104210421042104210420000000010001000000010000000 | |
1004 | + 0000000000000000000000001000000000000000000000000000000000000000 | |
1005 | + 0000000000000000000000000000000000001863FF7FE07FFF7FE07FFF7FE07F | |
1006 | + FF7FE07FFF7FE07FFF7FE07F1042000000000000000000000000000000001863 | |
1007 | + E07FFF7FE07FFF7FE07FFF7FE07FFF7F10420000000010000000000000001000 | |
1008 | + 1000000000000000000010001042000000000000000000000000000000000000 | |
1009 | + 0000000000000000000000000000000000001863E07FFF7F0000000000000000 | |
1010 | + 00000000000000000000FF7F1042000000000000000000000000000000001863 | |
1011 | + FF7FE07F000000000000E07FFF7FE07F10420000000000000000000000000000 | |
1012 | + 0000100010001000100010420000000000000000000000000000000000000000 | |
1013 | + 0000000000000000000000000000000000001863FF7FE07FFF7FE07FFF7FE07F | |
1014 | + FF7FE07FFF7FE07FFF7FE07F1042000000000000000000000000000000001863 | |
1015 | + E07FFF7FE07FFF7FE07FFF7FE07FFF7F10420000000000000000000000000000 | |
1016 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
1017 | + 0000000000000000000000000000000000001863186318631863186318631863 | |
1018 | + 1863186318631863186318631863000000000000000000000000000000000000 | |
1019 | + 0000E07F0000000000000000FF7FE07F10420000000000000000000000000000 | |
1020 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
1021 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
1022 | + 0000000000000000000000000000000000000000000000000000000000001863 | |
1023 | + E07FFF7FE07FFF7FE07FFF7FE07FFF7F10420000000000000000000000000000 | |
1024 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
1025 | + 0000000000000000000000000000000000000000000000000000000000000000 | |
1026 | + 0000000000000000000000000000000000000000000000000000000000001863 | |
1027 | + 1863186318631863186318631863186318630000000000000000000000000000 | |
1540 | 1028 | 0000000000000000000000000000000000000000000000000000000000000000 |
1541 | 1029 | 000000000000000000000000000000000000424D3E000000000000003E000000 |
1542 | 1030 | 2800000040000000400000000100010000000000000200000000000000000000 |
@@ -1778,13 +1266,6 @@ object EditorForm: TEditorForm | ||
1778 | 1266 | Left = 200 |
1779 | 1267 | Top = 124 |
1780 | 1268 | end |
1781 | - object Timer1: TTimer | |
1782 | - Enabled = False | |
1783 | - Interval = 500 | |
1784 | - OnTimer = Timer1Timer | |
1785 | - Left = 233 | |
1786 | - Top = 123 | |
1787 | - end | |
1788 | 1269 | object InputAssistPopupMenu: TPopupMenu |
1789 | 1270 | AutoHotkeys = maManual |
1790 | 1271 | AutoPopup = False |
@@ -12,12 +12,12 @@ uses | ||
12 | 12 | SHDocVw_TLB, |
13 | 13 | MSHTML_TLB, |
14 | 14 | {$IFEND} |
15 | - ActiveX, {HTTPApp,} YofUtils, Trip, IniFiles, StrUtils, | |
15 | + ActiveX, {HTTPApp,} YofUtils, IniFiles, StrUtils, | |
16 | 16 | GikoSystem, GikoUtil, ImgList, Clipbrd, BoardGroup, |
17 | 17 | IdAntiFreezeBase, IdAntiFreeze, IdBaseComponent, IdComponent, |
18 | 18 | IdTCPConnection, IdTCPClient, IdHTTP, ActnList, StdActns, IdIntercept, |
19 | 19 | IdLogBase, IdLogDebug, IdException, DateUtils, bmRegExp, |
20 | - Gesture, AppEvnts; | |
20 | + Gesture, AppEvnts, SambaTimer; | |
21 | 21 | |
22 | 22 | type |
23 | 23 | // TSetLayeredWindowAttributes = function(wnd: HWND; crKey: DWORD; bAlpha: BYTE; dwFlag: DWORD): Boolean; stdcall; |
@@ -89,7 +89,6 @@ type | ||
89 | 89 | SelectAllAction: TAction; |
90 | 90 | N2: TMenuItem; |
91 | 91 | SelectAll1: TMenuItem; |
92 | - Timer1: TTimer; | |
93 | 92 | QuotePasteAction: TAction; |
94 | 93 | QuotePasteMenuItem: TMenuItem; |
95 | 94 | C1: TMenuItem; |
@@ -169,7 +168,6 @@ type | ||
169 | 168 | AStream: TStream); |
170 | 169 | procedure SelectAllActionExecute(Sender: TObject); |
171 | 170 | procedure StatusBarResize(Sender: TObject); |
172 | - procedure Timer1Timer(Sender: TObject); | |
173 | 171 | procedure FormActivate(Sender: TObject); |
174 | 172 | procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); |
175 | 173 | procedure QuotePasteActionExecute(Sender: TObject); |
@@ -206,41 +204,20 @@ type | ||
206 | 204 | FStatusCode: Integer; |
207 | 205 | FDebugStrReceive: string; |
208 | 206 | FDebugStrSend: string; |
209 | - FSambaTime: TDateTime; | |
210 | - FHost: string; | |
211 | 207 | FNow: TDateTime; |
212 | 208 | FGestures : TMouseGesture; |
213 | 209 | FInputAssistKey: String; ///< üÍAVXgÌL[ |
214 | 210 | FResistWords: TStringList; ///< üÍAVXgÌ«©çÌõÊ |
211 | + FSambaTimer: TSambaTimer; ///< SambaÎôÌ^C}[ | |
215 | 212 | procedure Preview; |
216 | - function RepHtml(s: string): string; | |
217 | 213 | function Check: Boolean; |
218 | 214 | procedure SetNameList(sName, sMail: string); |
219 | -// procedure Send(SendType: TGikoSendType; SPID: string; PON: string; FirstWriting: Boolean); | |
220 | -// procedure Send(SPID: string; PON: string; FirstWriting: Boolean); | |
221 | - procedure Send(ACOOKIE: string; SPID: string; PON: string; FirstWriting: Boolean); | |
222 | - | |
215 | + procedure Send(const ACOOKIE: string; const SPID: string; const PON: string; FirstWriting: Boolean); | |
223 | 216 | function GetActiveControlHandle: THandle; |
224 | -// function GetSendData: string; | |
225 | -// procedure GetSendData(Source: TStringStream); | |
226 | 217 | procedure GetSendData(Source: TStringStream); |
227 | 218 | procedure SaveSendFile; |
228 | 219 | procedure SetContent(Content: string; ABrowser: TWebBrowser); |
229 | 220 | function GetResultType(ResponseText: string): TGikoResultType; |
230 | - //SambaÌÔðÇÝÞ | |
231 | - procedure ReadSambaTime(const AHost: string); | |
232 | - //SambaÉÔð«Þ | |
233 | - procedure WriteSambaTime(const AHost: string; ATime: TDateTime); | |
234 | - //SambaÌÝèlðÇÝÞ | |
235 | - function ReadSettingTime(const AHost: string): Integer; | |
236 | - //SambaÉøÁ©©é©¸·é | |
237 | - function CheckSambaTime(const AHost: string; ATime: TDateTime): Boolean; | |
238 | - //SambaÌÝèlð«Þ | |
239 | - procedure SetSamba24(AURL: string); | |
240 | - //SambaÌÝèlðXV·é | |
241 | - procedure UpdateSamba(const AHost: String; value: Integer); | |
242 | - /// øpÌæ¾ | |
243 | - function GetOEIndentChar : string; | |
244 | 221 | /// {¶Ìæ¾ |
245 | 222 | function GetBody : string; |
246 | 223 | //IdHttpÌú» |
@@ -258,7 +235,7 @@ type | ||
258 | 235 | //HEAD.TXT©®\¦ |
259 | 236 | procedure ShowBoardHead(ABoard: TBoard; AMemo: TMemo); |
260 | 237 | //LocalFusianaTrapAlart |
261 | - function LFusianaGet(s: String): Boolean; | |
238 | + function LFusianaGet(const s: String): Boolean; | |
262 | 239 | // CookieÌæ¾ |
263 | 240 | procedure GetCookie(Rawtext: String; ABoard: TBoard); |
264 | 241 | //! üÍAVXgÌ|bvAbvj [ÌNbNCxg |
@@ -267,6 +244,28 @@ type | ||
267 | 244 | procedure InsertText(Memo: TMemo; Text: String); |
268 | 245 | //! M~ |
269 | 246 | procedure CancelSend(ABoard: TBoard; ASysMenu: HMENU); |
247 | + //! Samba^C}[Cxg | |
248 | + procedure SambaTimer(Sender: TObject); | |
249 | + //! EBhEÌÊuÆTCYÌÝè | |
250 | + procedure SetWindowRect; | |
251 | + //! g£^uÝè | |
252 | + procedure SetExtraTab; | |
253 | + //! Âæ¾ | |
254 | + function GetBoard : TBoard; | |
255 | + //! URLÌf[^ðstreamÉæèÞ | |
256 | + procedure GetWebData(const URL: string; const RefURL: string; | |
257 | + Modified: TDateTime; stream: TStream); | |
258 | + //! GikoFormÉV bZ[WðÇÁ·é | |
259 | + procedure AddFormMessageNew(icon: TGikoMessageIcon); | |
260 | + //! [Jfusianagbv | |
261 | + function isLocalFusianaTrap: Boolean; | |
262 | + //! [Jfusianagbv | |
263 | + function isRemoteFusianaTrap: Boolean; | |
264 | + //! Header¶ñæ¾ | |
265 | + function getHeaderStr(const ACOOKIE: string; const SPID : string; | |
266 | + const PON : string; Board : TBoard) : string; | |
267 | + //! fusianax_CAO | |
268 | + function FusianaMsgBox: Integer; | |
270 | 269 | protected |
271 | 270 | procedure CreateParams(var Params: TCreateParams); override; |
272 | 271 | public |
@@ -274,6 +273,7 @@ type | ||
274 | 273 | procedure SetFont; |
275 | 274 | procedure SetThreadItem(Item: TThreadItem); |
276 | 275 | procedure SetBoard(Item: TBoard); |
276 | + procedure UpdateSambaStatus; | |
277 | 277 | property BBSID: string read FBBSID write FBBSID; |
278 | 278 | end; |
279 | 279 |
@@ -281,7 +281,7 @@ implementation | ||
281 | 281 | |
282 | 282 | uses |
283 | 283 | Giko, ItemDownload, MojuUtils, IdGlobal, GikoMessage, Imm, |
284 | - InputAssistDataModule, InputAssist; | |
284 | + InputAssistDataModule, InputAssist, HTMLCreate; | |
285 | 285 | const |
286 | 286 | CAPTION_NAME_NEW: string = 'MRir X§ÄGfB^'; |
287 | 287 | CAPTION_NAME_RES: string = 'MRir XGfB^'; |
@@ -336,50 +336,17 @@ begin | ||
336 | 336 | end;} |
337 | 337 | |
338 | 338 | procedure TEditorForm.FormCreate(Sender: TObject); |
339 | -var | |
340 | - wp: TWindowPlacement; | |
341 | - hUser32 : HINST; | |
342 | - ini: TIniFile; | |
343 | 339 | begin |
344 | 340 | FWork := False; |
341 | + FSambaTimer := TSambaTimer.Create(Self); | |
342 | + FSambaTimer.Interval := 0; | |
345 | 343 | Browser.Navigate('about:blank'); |
346 | 344 | TitlePictureBrowser.Navigate('about:blank'); |
347 | 345 | FBoard := nil; |
348 | 346 | FThreadItem := nil; |
349 | 347 | |
350 | 348 | //EBhEÌÊuÝè |
351 | - wp.length := sizeof(wp); | |
352 | - wp.rcNormalPosition.Top := GikoSys.Setting.EditWindowTop; | |
353 | - wp.rcNormalPosition.Left := GikoSys.Setting.EditWindowLeft; | |
354 | - | |
355 | - wp.rcNormalPosition.Bottom := GikoSys.Setting.EditWindowTop + GikoSys.Setting.EditWindowHeight; | |
356 | - wp.rcNormalPosition.Right := GikoSys.Setting.EditWindowLeft + GikoSys.Setting.EditWindowWidth; | |
357 | - wp.showCmd := SW_HIDE; | |
358 | - SetWindowPlacement(Handle, @wp); | |
359 | - | |
360 | - if GikoSys.Setting.EditWindowMax then | |
361 | - WindowState := wsMaximized; | |
362 | - | |
363 | - //EBhEªæÊOÈçæÊàÉÚ®·é | |
364 | - if (Left + Width) > Screen.Width then | |
365 | -// Left := Screen.Width - Width; | |
366 | - Left := 0; | |
367 | - if (Top + Height) > Screen.Height then | |
368 | -// Top := Screen.Height - Height; | |
369 | - Top := 0; | |
370 | - if Left < 0 then | |
371 | - Left := 0; | |
372 | - if Top < 0 then | |
373 | - Top := 0; | |
374 | - | |
375 | - //»ÝÌEBhEÌÊuðÛ¶ | |
376 | - GikoSys.Setting.EditWindowTop := Top + WINDOWMOVE_V; // ÉJEBhEÍ | |
377 | - GikoSys.Setting.EditWindowLeft := Left + WINDOWMOVE_H; // @@@EÎßºÉ¸ç· | |
378 | - //EBhEÌƳª¬³·¬¢êγÉß· | |
379 | - if GikoSys.Setting.EditWindowHeight < 144 then | |
380 | - Height := 400; | |
381 | - if GikoSys.Setting.EditWindowWidth < 144 then | |
382 | - Width := 640; | |
349 | + SetWindowRect; | |
383 | 350 | |
384 | 351 | EditorPage.ActivePage := EditorTab; |
385 | 352 | FNameComboEdit := GetWindow(NameComboBox.Handle, GW_CHILD); |
@@ -387,20 +354,8 @@ begin | ||
387 | 354 | NameComboBox.Items.Assign(GikoSys.Setting.NameList); |
388 | 355 | MailComboBox.Items.Assign(GikoSys.Setting.MailList); |
389 | 356 | SetFont; |
390 | - hUser32 := 0; | |
391 | - try | |
392 | - try | |
393 | - hUser32 := LoadLibrary('User32.dll'); | |
394 | - if hUser32 <> 0 then | |
395 | - TransAction.Enabled := true | |
396 | - else | |
397 | - TransAction.Enabled := false; | |
398 | - except | |
399 | - TransAction.Enabled := false; | |
400 | - end; | |
401 | - finally | |
402 | - FreeLibrary(hUser32); | |
403 | - end; | |
357 | + // ¼§¾pÂ\Ýè | |
358 | + TransAction.Enabled := GikoSys.CanUser32DLL; | |
404 | 359 | |
405 | 360 | // EBhEÌXeCóÔ |
406 | 361 | if GikoSys.Setting.EditWindowStay then begin // XeCóÔ |
@@ -428,17 +383,9 @@ begin | ||
428 | 383 | |
429 | 384 | SpaceToNBSPAction.Checked := GikoSys.Setting.SpaceToNBSP; |
430 | 385 | AmpToCharRefAction.Checked := GikoSys.Setting.AmpToCharRef; |
386 | + // [J[{ÂgbvæÌ^uÌÝè | |
387 | + SetExtraTab; | |
431 | 388 | |
432 | - ini := TIniFile.Create(GikoSys.Setting.GetFileName); | |
433 | - | |
434 | - try | |
435 | - BoardtopTab.TabVisible := ini.Readbool('EditorForm', 'BoardTopTab', False); | |
436 | - BoardTop.Checked := BoardtopTab.TabVisible; | |
437 | - RocalRuleTab.TabVisible := ini.ReadBool('EditorForm', 'LocalRuleTab', False); | |
438 | - LocalRule.Checked := RocalRuleTab.TabVisible; | |
439 | - finally | |
440 | - ini.Free; | |
441 | - end; | |
442 | 389 | // L[ÝèÌÇÝÝ |
443 | 390 | GikoSys.LoadKeySetting(ActionList, GikoSys.GetEditorKeyFileName); |
444 | 391 | // }EXWFX`[ÌCXg[ |
@@ -456,7 +403,6 @@ begin | ||
456 | 403 | end; |
457 | 404 | SaveNameMailAction.Checked := True; |
458 | 405 | end; |
459 | - | |
460 | 406 | procedure TEditorForm.SetBoard(Item: TBoard); |
461 | 407 | begin |
462 | 408 | FBoard := Item; |
@@ -465,7 +411,13 @@ begin | ||
465 | 411 | MailComboBox.Text := FBoard.KotehanMail; |
466 | 412 | SageCheckBox.Checked := AnsiPos('sage', MailComboBox.Text) <> 0; |
467 | 413 | TitlePanel.Visible := True; |
468 | - SetSamba24(FBoard.URL); | |
414 | + | |
415 | + if (FSambaTimer.SetBoard(FBoard) >= 0) then begin | |
416 | + UpdateSambaStatus; | |
417 | + FNow := Now(); | |
418 | + FSambaTimer.OnTimer := SambaTimer; | |
419 | + end; | |
420 | + | |
469 | 421 | ShowBoardInformation(FBoard, BoardInformationMemo); |
470 | 422 | ShowTitlePicture(); |
471 | 423 | end; |
@@ -478,7 +430,13 @@ begin | ||
478 | 430 | MailComboBox.Text := FThreadItem.ParentBoard.KotehanMail; |
479 | 431 | SageCheckBox.Checked := AnsiPos('sage', MailComboBox.Text) <> 0; |
480 | 432 | TitlePanel.Visible := False; |
481 | - SetSamba24(FThreadItem.ParentBoard.URL); | |
433 | + | |
434 | + if (FSambaTimer.SetBoard(FThreadItem.ParentBoard) >= 0) then begin | |
435 | + UpdateSambaStatus; | |
436 | + FNow := Now(); | |
437 | + FSambaTimer.OnTimer := SambaTimer; | |
438 | + end; | |
439 | + | |
482 | 440 | ShowBoardInformation(FThreadItem.ParentBoard, BoardInformationMemo); |
483 | 441 | ShowTitlePicture(); |
484 | 442 | end; |
@@ -576,73 +534,38 @@ var | ||
576 | 534 | No: string; |
577 | 535 | Mail: string; |
578 | 536 | Namae: string; |
579 | - DateTime: string; | |
580 | 537 | Body: string; |
581 | 538 | s: string; |
582 | - | |
583 | - posTrip : Integer; | |
584 | - tripOrigin : string; | |
585 | 539 | begin |
586 | 540 | if FThreadItem = nil then begin |
587 | 541 | No := '1'; |
588 | - Title := RepHtml(TitleEdit.Text); | |
542 | + Title := THTMLCreate.RepHtml(TitleEdit.Text); | |
589 | 543 | end else begin |
590 | 544 | No := IntToStr(FThreadItem.Count + 1); |
591 | - Title := RepHtml(FThreadItem.Title); | |
545 | + Title := THTMLCreate.RepHtml(FThreadItem.Title); | |
592 | 546 | end; |
593 | 547 | |
594 | - body := GetBody; | |
595 | - Namae := RepHtml(NameComboBox.Text); | |
596 | - Mail := RepHtml(MailComboBox.Text); | |
597 | - Body := RepHtml(body); | |
598 | - Body := StringReplace(Body, #13#10, '<br>', [rfReplaceAll]); | |
599 | - DateTime := FormatDateTime('yyyy/mm/dd(aaa) hh:nn', now); | |
548 | + Body := GetBody; | |
549 | + Namae := THTMLCreate.RepHtml(NameComboBox.Text); | |
550 | + Mail := THTMLCreate.RepHtml(MailComboBox.Text); | |
551 | + Body := THTMLCreate.RepHtml(Body); | |
552 | + Body := CustomStringReplace(Body, #13#10, '<br>', False); | |
553 | + | |
600 | 554 | |
601 | 555 | if Trim(Namae) = '' then |
602 | 556 | Namae := '¼³µ³ñ'; |
603 | 557 | |
604 | - s := '<HTML><HEAD>' + #13#10 | |
605 | - + '<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">' + #13#10 | |
606 | - + '<TITLE>' + title + '</TITLE>' + #13#10 | |
607 | -// + '<STYLE><!--BODY{font-size : 9pt;font-family : "lr oSVbN";}--></STYLE>' + #13#10 | |
608 | - + '</HEAD>' + #13#10 | |
609 | - + '<BODY text="#000000" bgcolor="#EFEFEF" link="#0000FF" alink="#FF0000" vlink="#660099">' + #13#10 | |
610 | - + '<FONT COLOR="#FF0000">' + title + '</FONT>' + #13#10 | |
611 | - + '<DL>' + #13#10; | |
612 | - posTrip := AnsiPos( '#', Namae ); | |
613 | - if posTrip > 0 then | |
614 | - begin | |
615 | - tripOrigin := Copy( Namae, posTrip + 1, Length( Namae ) ); | |
616 | - Namae := | |
617 | - Copy( Namae, 1, posTrip - 1 ) + '</B> ' + | |
618 | - get_2ch_trip( PChar( tripOrigin ) ) + '<B>'; | |
619 | - end; | |
620 | - if Mail = '' then | |
621 | - s := s + '<DT>' + No + ' F <FONT color="forestgreen"><B>' + Namae + '</B></FONT> F ' + DateTime+ '<BR><DD>' + Body + '<BR><BR><BR>' + #13#10 | |
622 | - else | |
623 | - s := s + '<DT>' + No + ' F <A href="mailto:' + Mail + '"><B>' + Namae + '</B></A> [' + Mail + ']F ' + DateTime+ '<BR><DD>' + Body + '<BR><BR><BR>' + #13#10; | |
624 | - s := s + '</BODY></HTML>'; | |
558 | + s := THTMLCreate.CreatePreviewHTML(Title, No, Mail, Namae, Body); | |
559 | + | |
625 | 560 | SetContent(s, Browser); |
626 | 561 | end; |
627 | 562 | |
628 | -function TEditorForm.RepHtml(s: string): string; | |
629 | -begin | |
630 | -// s := StringReplace(s, '&', '&', [rfReplaceAll]); | |
631 | - s := CustomStringReplace(s, '<', '<'); | |
632 | - s := CustomStringReplace(s, '>', '>'); | |
633 | -// s := StringReplace(s, ' ', ' ', [rfReplaceAll]); //dlÏXÉæè gps | |
634 | - s := CustomStringReplace(s, '"', '"'); | |
635 | - Result := s; | |
636 | -end; | |
637 | - | |
638 | 563 | procedure TEditorForm.EditorPageChange(Sender: TObject); |
639 | 564 | var |
640 | 565 | tmpBoard: TBoard; |
641 | 566 | begin |
642 | - if FThreadItem = nil then | |
643 | - tmpBoard := FBoard | |
644 | - else | |
645 | - tmpBoard := FThreadItem.ParentBoard; | |
567 | + | |
568 | + tmpBoard := GetBoard; | |
646 | 569 | |
647 | 570 | if tmpBoard = nil then Exit; |
648 | 571 |
@@ -679,10 +602,8 @@ var | ||
679 | 602 | Board: TBoard; |
680 | 603 | begin |
681 | 604 | Result := True; |
682 | - if FThreadItem = nil then | |
683 | - Board := FBoard | |
684 | - else | |
685 | - Board := FThreadItem.ParentBoard; | |
605 | + | |
606 | + Board := GetBoard; | |
686 | 607 | |
687 | 608 | if (not GikoSys.Setting.UseMachineTime) and |
688 | 609 | ((Board.LastGetTime = 0) or |
@@ -712,6 +633,7 @@ end; | ||
712 | 633 | procedure TEditorForm.FormClose(Sender: TObject; var Action: TCloseAction); |
713 | 634 | begin |
714 | 635 | Action := caFree; |
636 | + FSambaTimer.Free; | |
715 | 637 | end; |
716 | 638 | |
717 | 639 | procedure TEditorForm.FormDestroy(Sender: TObject); |
@@ -818,77 +740,33 @@ begin | ||
818 | 740 | DrawMenuBar(Handle); |
819 | 741 | end; |
820 | 742 | |
821 | -procedure TEditorForm.Send(ACOOKIE: string; SPID: string; PON: string; FirstWriting: Boolean); | |
822 | -const | |
823 | - MSG_FUSIANA : string = '[gzXgð\¦·é@\ªgíêĢܷ'#13#10 + | |
824 | - 'àµàÔáÁıÌû@ÅzXgª\¦³ê½ÆµÄàA©ÈÓCÈÌÅíËÉͶܹñB' + | |
825 | - #13#10#13#10'ÓCð¤±Æð³øµÄ«ÝÜ·©H'; | |
743 | +procedure TEditorForm.Send( const ACOOKIE: string; const SPID: string; | |
744 | + const PON: string; FirstWriting: Boolean); | |
826 | 745 | var |
827 | 746 | TextStream: TStringStream; |
828 | 747 | Source: TStringStream; |
829 | 748 | ResponseText: string; |
830 | 749 | URL: string; |
831 | - RefURL: string; | |
832 | 750 | State: TGikoDownloadState; |
833 | 751 | ResultType: TGikoResultType; |
834 | 752 | MsgResult: Integer; |
835 | - Cookie: string; | |
836 | 753 | Board: TBoard; |
837 | 754 | sysMenu : HMENU; |
838 | - //fusianasangbv byèúÖ | |
839 | - Namae : String; | |
840 | - body : TStringList; | |
841 | - Remote : String; | |
842 | - ABoard : TBoard; | |
843 | 755 | {Protocol,Host, Path, Document, Port, Bookmark : String;} |
844 | 756 | begin |
845 | 757 | FAbort := False; |
846 | 758 | State := gdsError; |
847 | - Namae := RepHtml(NameComboBox.Text); | |
848 | - if FThreadItem = nil then | |
849 | - Board := FBoard | |
850 | - else | |
851 | - Board := FThreadItem.ParentBoard; | |
759 | + Board := GetBoard; | |
852 | 760 | |
853 | 761 | |
854 | -// tmpRawheader := ''; | |
855 | 762 | InitIdHTTP(Indy); |
856 | 763 | if FThreadItem = nil then begin |
857 | 764 | URL := FBoard.GetSendURL; |
858 | - RefURL := GikoSys.UrlToServer(FBoard.URL) + 'test/bbs.cgi'; | |
765 | + Indy.Request.Referer := GikoSys.UrlToServer(FBoard.URL) + 'test/bbs.cgi'; | |
859 | 766 | end else begin |
860 | 767 | URL := FThreadItem.GetSendURL; |
861 | - RefURL := FThreadItem.URL; | |
768 | + Indy.Request.Referer := FThreadItem.URL; | |
862 | 769 | end; |
863 | -// Indy.Request.UserAgent := GikoSys.GetUserAgent; | |
864 | - Indy.Request.Referer := RefURL; | |
865 | -// Indy.Request.AcceptEncoding := ''; | |
866 | - | |
867 | - Cookie := ''; | |
868 | - if ACOOKIE <> '' then | |
869 | - Cookie := ACOOKIE; | |
870 | - if SPID <> '' then | |
871 | - Cookie := Cookie + 'SPID=' + SPID + '; '; | |
872 | - if PON <> '' then | |
873 | - Cookie := Cookie + 'PON=' + PON + '; '; | |
874 | - | |
875 | - //zXgª2chÅABeÉLoginµÄ¢êÎBEÌf[^ðé | |
876 | - //GikoSys.ParseURI( URL, Protocol,Host, Path, Document, Port, Bookmark ); | |
877 | - //if GikoSys.Is2chHost(Host) and GikoSys.Setting.BeLogin then | |
878 | - if (Board.Is2ch) then begin | |
879 | - // ÅèÌNbL[ª êÎHí¹é | |
880 | - if Length(GikoSys.Setting.FixedCookie) > 0 then begin | |
881 | - // zXgª2chÌêCÅèÌNbL[ðHí¹é | |
882 | - Cookie := Cookie + GikoSys.Setting.FixedCookie + '; '; | |
883 | - end; | |
884 | - if (GikoSys.Setting.BeLogin) then begin | |
885 | - Cookie := Cookie + 'MDMD=' + GikoSys.Setting.BeCode + '; ' | |
886 | - + 'DMDM=' + GikoSys.Setting.BeUserID + '; '; | |
887 | - end; | |
888 | - | |
889 | - end; | |
890 | - | |
891 | - Cookie := 'Cookie: ' + Cookie + 'NAME=' + NameComboBox.Text + '; MAIL=' + MailComboBox.Text; | |
892 | 770 | |
893 | 771 | sysMenu := GetSystemMenu( Handle, false ); |
894 | 772 | EnableMenuItem( sysMenu, SC_CLOSE, MF_GRAYED ); |
@@ -902,7 +780,7 @@ begin | ||
902 | 780 | Indy.Request.AcceptLanguage := 'ja'; |
903 | 781 | Indy.Request.Accept := 'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*'; |
904 | 782 | Indy.Request.ContentType := 'application/x-www-form-urlencoded'; |
905 | - Indy.Request.CustomHeaders.Add(Cookie); | |
783 | + Indy.Request.CustomHeaders.Add(getHeaderStr(ACOOKIE, SPID, PON, Board)); | |
906 | 784 | TextStream := TStringStream.Create(''); |
907 | 785 | Source := TStringStream.Create(''); |
908 | 786 | try |
@@ -912,67 +790,15 @@ begin | ||
912 | 790 | |
913 | 791 | if (FirstWriting) then begin |
914 | 792 | //tVAigbvx(LocalMode) by èúÖ |
915 | - if GikoSys.Setting.LocalTrapAtt then begin | |
916 | - if LFusianaGet(Namae) then begin | |
917 | - MsgResult := MsgBox( Handle, MSG_FUSIANA, 'îñ', | |
918 | - MB_YESNO or MB_ICONQUESTION); | |
919 | - if MsgResult = IDNO then begin | |
920 | - CancelSend( Board, SysMenu ); | |
921 | - Exit; | |
922 | - end; | |
923 | - end; | |
924 | - if ((Namae = 'RèÂ') or (Namae = 'fusianasan')) then begin | |
925 | - MsgResult := MsgBox(Handle, MSG_FUSIANA, 'îñ', | |
926 | - MB_YESNO or MB_ICONQUESTION); | |
927 | - if MsgResult = IDNO then begin | |
928 | - CancelSend( Board, SysMenu ); | |
929 | - Exit; | |
930 | - end; | |
931 | - end; | |
932 | - end; | |
933 | - | |
934 | - if GikoSys.Setting.RemoteTrapAtt then begin | |
935 | - if FThreadItem = nil then | |
936 | - ABoard := FBoard | |
937 | - else | |
938 | - ABoard := FThreadItem.ParentBoard; | |
939 | - | |
940 | - if ABoard = nil then Exit; | |
941 | - | |
942 | - if FileExists(ABoard.GetSETTINGTXTFileName) then begin | |
943 | - body := TStringList.Create; | |
944 | - try | |
945 | - body.LoadFromFile(ABoard.GetSETTINGTXTFileName); | |
946 | - Remote := GetFusianaName(body, ABoard); | |
947 | - finally | |
948 | - body.Free; | |
949 | - end; | |
950 | - end else begin | |
951 | - //Setting.txtªÈ©Á½çæ¾ | |
952 | - //IÉת©©è»¤... | |
953 | - //if not FileExists(ABoard.GetSETTINGTXTFileName) then begin | |
954 | - GetSETTINGTXTAction.Execute; | |
955 | - body := TStringList.Create; | |
956 | - try | |
957 | - if FileExists(ABoard.GetSETTINGTXTFileName) then begin | |
958 | - body.LoadFromFile(ABoard.GetSETTINGTXTFileName); | |
959 | - Remote := GetFusianaName(body, ABoard); | |
960 | - end; | |
961 | - finally | |
962 | - body.Free; | |
963 | - end; | |
964 | - end; | |
965 | - | |
966 | - if Remote = 'fusianasan' then begin | |
967 | - MsgResult := MsgBox( | |
968 | - Handle, MSG_FUSIANA, 'îñ', | |
969 | - MB_YESNO or MB_ICONQUESTION); | |
970 | - if MsgResult = IDNO then begin | |
971 | - CancelSend( Board, SysMenu ); | |
972 | - Exit; | |
973 | - end; | |
974 | - end; | |
975 | - end; | |
793 | + if (isLocalFusianaTrap) then begin | |
794 | + CancelSend( Board, SysMenu ); | |
795 | + Exit; | |
796 | + end; | |
797 | + //tVAigbvx(Remote) | |
798 | + if (isRemoteFusianaTrap) then begin | |
799 | + CancelSend( Board, SysMenu ); | |
800 | + Exit; | |
801 | + end; | |
976 | 802 | end; |
977 | 803 | |
978 | 804 | GetSendData(Source); |
@@ -988,9 +814,10 @@ begin | ||
988 | 814 | |
989 | 815 | |
990 | 816 | if ResultType = grtOK then begin |
991 | - if (GikoSys.Setting.UseSamba) and (Timer1.Enabled) then | |
992 | - WriteSambaTime(FHost, Now()); | |
993 | - | |
817 | + if (GikoSys.Setting.UseSamba) and (FSambaTimer.Enabled) then | |
818 | + begin | |
819 | + FSambaTimer.WriteSambaTime(Now()); | |
820 | + end; | |
994 | 821 | State := gdsComplete; |
995 | 822 | end else if ResultType = grtCookie then begin |
996 | 823 | //[vh~ |
@@ -1045,8 +872,10 @@ begin | ||
1045 | 872 | Exit; |
1046 | 873 | end; |
1047 | 874 | end else begin |
1048 | - if (GikoSys.Setting.UseSamba) and (Timer1.Enabled) then | |
1049 | - WriteSambaTime(FHost, Now()); | |
875 | + if (GikoSys.Setting.UseSamba) and (FSambaTimer.Enabled) then | |
876 | + begin | |
877 | + FSambaTimer.WriteSambaTime(Now()); | |
878 | + end; | |
1050 | 879 | |
1051 | 880 | State := gdsError; |
1052 | 881 | raise Exception.Create(''); |
@@ -1097,34 +926,23 @@ begin | ||
1097 | 926 | if FStatusCode = 302 then begin |
1098 | 927 | GikoForm.PlaySound('ResEnd'); |
1099 | 928 | SaveSendFile; |
1100 | - if FThreadItem = nil then | |
1101 | - GikoForm.AddMessageList(FBoard.Title + ' ' + GikoSys.GetGikoMessage(gmNewSure), nil, gmiOK) | |
1102 | - else | |
1103 | - GikoForm.AddMessageList(FThreadItem.Title + ' ' + GikoSys.GetGikoMessage(gmNewRes), nil, gmiOK); | |
929 | + AddFormMessageNew( gmiOK ); | |
1104 | 930 | Close; |
1105 | 931 | Exit; |
1106 | 932 | end; |
1107 | 933 | if State = gdsComplete then begin |
1108 | 934 | GikoForm.PlaySound('ResEnd'); |
1109 | 935 | SaveSendFile; |
1110 | - if FThreadItem = nil then | |
1111 | - GikoForm.AddMessageList(FBoard.Title + ' ' + GikoSys.GetGikoMessage(gmNewSure), nil, gmiOK) | |
1112 | - else | |
1113 | - GikoForm.AddMessageList(FThreadItem.Title + ' ' + GikoSys.GetGikoMessage(gmNewRes), nil, gmiOK); | |
936 | + AddFormMessageNew( gmiOK ); | |
1114 | 937 | Close; |
1115 | 938 | end else if State = gdsError then begin |
1116 | - if FThreadItem = nil then | |
1117 | - GikoForm.AddMessageList(FBoard.Title + ' ' + GikoSys.GetGikoMessage(gmNewSure), nil, gmiOK) | |
1118 | - else | |
1119 | - GikoForm.AddMessageList(FThreadItem.Title + ' ' + GikoSys.GetGikoMessage(gmNewRes), nil, gmiOK); | |
1120 | - | |
939 | + AddFormMessageNew( gmiOK ); | |
1121 | 940 | EditorPage.ActivePage := PreviewTab; |
1122 | 941 | SetContent(ResponseText, Browser); |
1123 | 942 | end else if State = gdsAbort then begin |
1124 | 943 | GikoForm.AddMessageList(FThreadItem.Title + ' ' + GikoSys.GetGikoMessage(gmAbort), nil, gmiSAD); |
1125 | 944 | end; |
1126 | 945 | end; |
1127 | - | |
1128 | 946 | function TEditorForm.GetResultType(ResponseText: string): TGikoResultType; |
1129 | 947 | begin |
1130 | 948 | if AnsiPos('«±ÝªIíèܵ½', ResponseText) <> 0 then |
@@ -1159,10 +977,7 @@ var | ||
1159 | 977 | Board: TBoard; |
1160 | 978 | body : string; |
1161 | 979 | begin |
1162 | - if FThreadItem = nil then | |
1163 | - Board := FBoard | |
1164 | - else | |
1165 | - Board := FThreadItem.ParentBoard; | |
980 | + Board := GetBoard; | |
1166 | 981 | |
1167 | 982 | if GikoSys.Setting.UseMachineTime then begin |
1168 | 983 | if GikoSys.Setting.TimeAdjust then |
@@ -1217,11 +1032,13 @@ begin | ||
1217 | 1032 | ini.WriteDateTime(sDate, 'Date', Now); |
1218 | 1033 | if FThreadItem = nil then begin |
1219 | 1034 | ini.WriteString(sDate, 'Title', MojuUtils.Sanitize(TitleEdit.Text)); |
1220 | - ini.WriteString(sDate, 'BBS', FBoard.BBSID); | |
1035 | + //ini.WriteString(sDate, 'BBS', FBoard.BBSID); | |
1036 | + ini.WriteString(sDate, 'URL', FBoard.URL); | |
1221 | 1037 | ini.WriteInteger(sDate, 'NewThread', 1); |
1222 | 1038 | end else begin |
1223 | 1039 | ini.WriteString(sDate, 'Title', FThreadItem.Title); |
1224 | - ini.WriteString(sDate, 'BBS', FThreadItem.ParentBoard.BBSID); | |
1040 | + //ini.WriteString(sDate, 'BBS', FThreadItem.ParentBoard.BBSID); | |
1041 | + ini.WriteString(sDate, 'URL', FThreadItem.URL); | |
1225 | 1042 | ini.WriteString(sDate, 'Key', ChangeFileExt(FThreadItem.FileName, '')); |
1226 | 1043 | end; |
1227 | 1044 |
@@ -1249,10 +1066,7 @@ begin | ||
1249 | 1066 | Application.ProcessMessages; |
1250 | 1067 | if not Check then Exit; |
1251 | 1068 | |
1252 | - if FThreadItem = nil then | |
1253 | - Board := FBoard | |
1254 | - else | |
1255 | - Board := FThreadItem.ParentBoard; | |
1069 | + Board := GetBoard; | |
1256 | 1070 | |
1257 | 1071 | if FThreadItem = nil then begin |
1258 | 1072 | rc := GikoUtil.MsgBox(Handle, |
@@ -1309,7 +1123,7 @@ begin | ||
1309 | 1123 | end; |
1310 | 1124 | end; |
1311 | 1125 | end else begin |
1312 | - if not Timer1.Enabled then begin | |
1126 | + if not FSambaTimer.Enabled then begin | |
1313 | 1127 | if CompareDateTime(Board.Expires ,Now) <= 0 then begin |
1314 | 1128 | Board.Cookie := ''; |
1315 | 1129 | Board.SPID := ''; |
@@ -1317,7 +1131,7 @@ begin | ||
1317 | 1131 | end; |
1318 | 1132 | Send(Board.Cookie, Board.SPID, Board.PON, True); |
1319 | 1133 | end else begin |
1320 | - if not CheckSambaTime(FHost, Now()) then begin | |
1134 | + if not FSambaTimer.CheckSambaTime(Now()) then begin | |
1321 | 1135 | rc := GikoUtil.MsgBox(Handle, |
1322 | 1136 | 'Samba24ÌKèl¢Ìbµ©oߵĢܹñB'#13#10 |
1323 | 1137 | + 'Mð~µÜ·©H' + #13#10 |
@@ -1348,8 +1162,9 @@ begin | ||
1348 | 1162 | end; |
1349 | 1163 | finally |
1350 | 1164 | FWork := False; |
1351 | - if Timer1.Enabled then | |
1352 | - ReadSambaTime(FHost); | |
1165 | + if FSambaTimer.Enabled then begin | |
1166 | + FNow := FSambaTimer.Update; | |
1167 | + end; | |
1353 | 1168 | end; |
1354 | 1169 | end; |
1355 | 1170 |
@@ -1532,85 +1347,13 @@ begin | ||
1532 | 1347 | |
1533 | 1348 | end; |
1534 | 1349 | |
1535 | -procedure TEditorForm.Timer1Timer(Sender: TObject); | |
1536 | -begin | |
1537 | - if FSambaTime = ZERO_DATE then | |
1538 | - StatusBar.Panels[1].Text := '' | |
1539 | - else begin | |
1540 | - FNow := IncMilliSecond(FNow, 500); | |
1541 | - StatusBar.Panels[1].Text := Format('%8.0fboß', [SecondSpan(FNow, FSambaTime)]); | |
1542 | - end; | |
1543 | - | |
1544 | -end; | |
1545 | -//Samba.iniÌ«ÝÔðÇÝÞ | |
1546 | -procedure TEditorForm.ReadSambaTime(const AHost: string); | |
1547 | -var | |
1548 | - ini :TMemIniFile; | |
1549 | - tmp: string; | |
1550 | -begin | |
1551 | - Timer1.Enabled := false; //oßb\¦TimerðOffÉ·éi±êªONÌÆ«Samba24ÎôOnj | |
1552 | - ini := TMemIniFile.Create(GikoSys.GetSambaFileName); | |
1553 | - try | |
1554 | - //¶ñÅÇÝæÁÄAÏ·ÖÅTDateTimeÖ | |
1555 | - tmp := ini.ReadString('Send', AHost, DateTimeToStr(ZERO_DATE)); | |
1556 | - FSambaTime := ConvertDateTimeString(tmp); | |
1557 | - finally | |
1558 | - ini.Free; | |
1559 | - end; | |
1560 | - FNow := Now(); //»ÝÔðæ¾iTimer\¦pÅACheck·éÆ«ÍÄÑNow()ðÄÔj | |
1561 | - Timer1.Enabled := true; //oßb\¦TimerðOnÉ·éi±êªONÌÆ«Samba24ÎôOnj | |
1562 | -end; | |
1563 | -//Samba.iniÉÅI«ÝÔð«Þ | |
1564 | -procedure TEditorForm.WriteSambaTime(const AHost: string; ATime: TDateTime); | |
1565 | -var | |
1566 | - ini :TMemIniFile; | |
1567 | -begin | |
1568 | - ini := TMemIniFile.Create(GikoSys.GetSambaFileName); | |
1569 | - try | |
1570 | - ini.WriteDateTime('Send', AHost, ATime); | |
1571 | - ini.UpdateFile; | |
1572 | - finally | |
1573 | - ini.Free; | |
1574 | - end; | |
1575 | -end; | |
1576 | -//ÅI«ÝÔÆ»Ýðär·éi^FKèlÈã@UFKèl¢j | |
1577 | -function TEditorForm.CheckSambaTime(const AHost: string; ATime: TDateTime): Boolean; | |
1578 | -var | |
1579 | - pastsec: double; | |
1580 | - SettingTime: Integer; | |
1581 | -begin | |
1582 | - SettingTime := ReadSettingTime(AHost); | |
1583 | - ReadSambaTime(AHost); | |
1584 | - pastsec := SecondSpan(ATime, FSambaTime); | |
1585 | - if pastsec > SettingTime then | |
1586 | - Result := true | |
1587 | - else | |
1588 | - Result := false; | |
1589 | -end; | |
1590 | -//AHostiI¼jÌSambaÌKèlðÇÝÞ | |
1591 | -function TEditorForm.ReadSettingTime(const AHost: string): Integer; | |
1592 | -var | |
1593 | - ini :TMemIniFile; | |
1594 | -begin | |
1595 | - ini := TMemIniFile.Create(GikoSys.GetSambaFileName); | |
1596 | - try | |
1597 | - Result := ini.ReadInteger('Setting', AHost, 0); | |
1598 | - //KèlªOÌÆ«AàµÍÝè³êĢȢƫÍAt@CÉ«½·B | |
1599 | - if Result = 0 then begin | |
1600 | - ini.WriteInteger('Setting', AHost, 0); | |
1601 | - ini.UpdateFile; | |
1602 | - end; | |
1603 | - //StatusBarɱÌIÌKèlð\¦·é | |
1604 | - StatusBar.Panels[2].Text := 'Samba24Kèl' + IntToStr(Result); | |
1605 | - finally | |
1606 | - ini.Free; | |
1607 | - end; | |
1608 | -end; | |
1609 | 1350 | //FormªActiveÉÈÁ½çÅI«ÝÔðÇÝÞ |
1610 | 1351 | procedure TEditorForm.FormActivate(Sender: TObject); |
1611 | 1352 | begin |
1612 | - if ( Timer1.Enabled ) and ( FThreadItem <> nil )then | |
1613 | - ReadSambaTime(FHost); | |
1353 | + if ( FSambaTimer.Enabled ) and ( FThreadItem <> nil ) then | |
1354 | + begin | |
1355 | + FNow := FSambaTimer.Update; | |
1356 | + end; | |
1614 | 1357 | if GikoSys.Setting.GestureEnabled then begin |
1615 | 1358 | GikoSys.Setting.Gestures.ClearGesture; |
1616 | 1359 | GikoSys.Setting.Gestures.LoadGesture( |
@@ -1622,63 +1365,12 @@ begin | ||
1622 | 1365 | MouseGesture.SetHook( Handle ); |
1623 | 1366 | end; |
1624 | 1367 | end; |
1625 | -//Samba24Îôðg¤©Ç¤©ßéÖ | |
1626 | -//ReadSambaTime ðÄÑo·ÆTimerªOnÉÈé | |
1627 | -procedure TEditorForm.SetSamba24(AURL: string); | |
1628 | -var | |
1629 | - Protocol, Host, Path, Document, Port, Bookmark : string; | |
1630 | -begin | |
1631 | - //Samba24ÎôðµÈ¢ÈçI¹ | |
1632 | - if not GikoSys.Setting.UseSamba then | |
1633 | - Exit; | |
1634 | - //HostÌURLÉ'.2ch.'©'.bbspink.'ªÜÜêÄ¢½çSamba24Îôð·é | |
1635 | - GikoSys.ParseURI( AURL, Protocol,Host, Path, Document, Port, Bookmark ); | |
1636 | - if GikoSys.Is2chHost(Host) then begin | |
1637 | - Host := Copy(Host, 1, AnsiPos('.', Host) - 1); | |
1638 | - FHost := Host; //FHost=I¼ | |
1639 | - ReadSambaTime(FHost); //ÈOÌ«ÝÔðÇÝÞ | |
1640 | - ReadSettingTime(FHost); //SambaÌÝèðÇÝÞ | |
1641 | - end; | |
1642 | -end; | |
1643 | 1368 | procedure TEditorForm.FormCloseQuery(Sender: TObject; |
1644 | 1369 | var CanClose: Boolean); |
1645 | 1370 | begin |
1646 | 1371 | CanClose := not FWork; |
1647 | 1372 | end; |
1648 | 1373 | |
1649 | -function TEditorForm.GetOEIndentChar : string; | |
1650 | -var | |
1651 | - regKey : TRegistry; | |
1652 | - Identities : string; | |
1653 | - IndentChar : DWORD; | |
1654 | -const | |
1655 | - DEFAULT_CHAR = '> '; | |
1656 | - OE_MAIL_PATH = '\Software\Microsoft\Outlook Express\5.0\Mail'; | |
1657 | - INDENT_CHAR = 'Indent Char'; | |
1658 | -begin | |
1659 | - | |
1660 | - Result := DEFAULT_CHAR; | |
1661 | - regKey := TRegistry.Create; | |
1662 | - try | |
1663 | - try | |
1664 | - regKey.RootKey := HKEY_CURRENT_USER; | |
1665 | - if not regKey.OpenKey( 'Identities', False ) then | |
1666 | - Exit; | |
1667 | - Identities := regKey.ReadString( 'Default User ID' ); | |
1668 | - if Identities = '' then | |
1669 | - Exit; | |
1670 | - if not regKey.OpenKey( Identities + OE_MAIL_PATH, False ) then | |
1671 | - Exit; | |
1672 | - IndentChar := regKey.ReadInteger( INDENT_CHAR ); | |
1673 | - Result := Char( IndentChar ) + ' '; | |
1674 | - except | |
1675 | - end; | |
1676 | - finally | |
1677 | - regKey.Free; | |
1678 | - end; | |
1679 | - | |
1680 | -end; | |
1681 | - | |
1682 | 1374 | procedure TEditorForm.QuotePasteActionExecute(Sender: TObject); |
1683 | 1375 | var |
1684 | 1376 | s : TStringList; |
@@ -1686,7 +1378,7 @@ var | ||
1686 | 1378 | quote : string; |
1687 | 1379 | begin |
1688 | 1380 | |
1689 | - quote := GetOEIndentChar; | |
1381 | + quote := GikoSys.GetOEIndentChar; | |
1690 | 1382 | s := TStringList.Create; |
1691 | 1383 | try |
1692 | 1384 | s.Text := Clipboard.AsText; |
@@ -1731,68 +1423,59 @@ end; | ||
1731 | 1423 | |
1732 | 1424 | procedure TEditorForm.GetSETTINGTXTActionExecute(Sender: TObject); |
1733 | 1425 | var |
1426 | + memStream: TMemoryStream; | |
1734 | 1427 | URL, RefURL: string; |
1735 | 1428 | settingBody: TStringList; |
1736 | 1429 | tmpBoard: TBoard; |
1737 | 1430 | begin |
1738 | - | |
1739 | - if FWork then begin | |
1740 | - Exit; | |
1741 | - end; | |
1742 | - | |
1743 | - FWork := True; | |
1744 | - | |
1745 | - InitIdHTTP(Indy); | |
1746 | - if FThreadItem = nil then | |
1747 | - tmpBoard := FBoard | |
1748 | - else | |
1749 | - tmpBoard := FThreadItem.ParentBoard; | |
1750 | - | |
1751 | - if tmpBoard = nil then Exit; | |
1752 | - | |
1753 | - RefURL := tmpBoard.URL; | |
1754 | - if RefURL[Length(RefURL)] <> '/' then | |
1755 | - URL := RefURL + '/' + 'SETTING.TXT' | |
1756 | - else | |
1757 | - URL := RefURL + 'SETTING.TXT'; | |
1758 | - | |
1759 | - Indy.Request.LastModified := tmpBoard.SETTINGTXTTime; | |
1760 | - Indy.Request.Referer := RefURL; | |
1761 | - Screen.Cursor := crHourGlass; | |
1762 | - settingBody := TStringList.Create; | |
1763 | - try | |
1764 | - StatusBar.Panels[0].Text := 'SETTING.TXT_E[h'; | |
1765 | - try | |
1766 | - IdAntiFreeze.Active := True; | |
1767 | - try | |
1768 | - settingBody.Text := Indy.Get(URL); | |
1769 | - finally | |
1770 | - IdAntiFreeze.Active := False; | |
1771 | - end; | |
1772 | - if( Indy.ResponseCode = 200 ) then begin | |
1773 | - settingBody.SaveToFile(tmpBoard.GetSETTINGTXTFileName); | |
1774 | - tmpBoard.SETTINGTXTTime := Indy.Response.LastModified; | |
1775 | - tmpBoard.IsSETTINGTXT := true; | |
1776 | - tmpBoard.TitlePictureURL := GetTitlePictureURL(settingBody, tmpBoard); | |
1777 | - tmpBoard.Modified := true; | |
1778 | - StatusBar.Panels[0].Text := 'SETTING.TXTæ¾®¹(' + IntToStr(Indy.ResponseCode) + ')'; | |
1779 | - end; | |
1780 | - except | |
1781 | - on E: EIdException do begin | |
1782 | - if( AnsiPos('304', E.Message) > 0 ) then | |
1783 | - StatusBar.Panels[0].Text := 'SETTING.TXTXV³µ(' + IntToStr(Indy.ResponseCode) + ')' | |
1784 | - else | |
1785 | - StatusBar.Panels[0].Text := 'SETTING.TXTæ¾G[(' + IntToStr(Indy.ResponseCode) + ')'; | |
1786 | - end; | |
1787 | - end; | |
1788 | - finally | |
1789 | - settingBody.Free; | |
1790 | - Screen.Cursor := crDefault; | |
1791 | - FWork := False; | |
1792 | - end; | |
1793 | - ShowBoardInformation(tmpBoard, BoardInformationMemo); | |
1794 | - | |
1795 | - | |
1431 | + if not FWork then begin | |
1432 | + FWork := True; | |
1433 | + | |
1434 | + tmpBoard := GetBoard; | |
1435 | + if tmpBoard <> nil then begin | |
1436 | + | |
1437 | + RefURL := tmpBoard.URL; | |
1438 | + if RefURL[Length(RefURL)] <> '/' then | |
1439 | + URL := RefURL + '/' + 'SETTING.TXT' | |
1440 | + else | |
1441 | + URL := RefURL + 'SETTING.TXT'; | |
1442 | + Screen.Cursor := crHourGlass; | |
1443 | + memStream := TMemoryStream.Create; | |
1444 | + try | |
1445 | + try | |
1446 | + StatusBar.Panels[0].Text := 'SETTING.TXT_E[h'; | |
1447 | + GetWebData(URL, RefURL, tmpBoard.SETTINGTXTTime, memStream); | |
1448 | + if( Indy.ResponseCode = 200 ) then begin | |
1449 | + settingBody := TStringList.Create; | |
1450 | + try | |
1451 | + memStream.Seek(0, soFromBeginning); | |
1452 | + settingBody.LoadFromStream(memStream); | |
1453 | + settingBody.SaveToFile(tmpBoard.GetSETTINGTXTFileName); | |
1454 | + tmpBoard.SETTINGTXTTime := Indy.Response.LastModified; | |
1455 | + tmpBoard.IsSETTINGTXT := true; | |
1456 | + tmpBoard.TitlePictureURL := GetTitlePictureURL(settingBody, tmpBoard); | |
1457 | + tmpBoard.Modified := true; | |
1458 | + finally | |
1459 | + settingBody.Free; | |
1460 | + end; | |
1461 | + StatusBar.Panels[0].Text := 'SETTING.TXTæ¾®¹(' + IntToStr(Indy.ResponseCode) + ')'; | |
1462 | + end; | |
1463 | + except | |
1464 | + on E: EIdException do begin | |
1465 | + if( AnsiPos('304', E.Message) > 0 ) then | |
1466 | + StatusBar.Panels[0].Text := 'SETTING.TXTXV³µ(' + IntToStr(Indy.ResponseCode) + ')' | |
1467 | + else | |
1468 | + StatusBar.Panels[0].Text := 'SETTING.TXTæ¾G[(' + IntToStr(Indy.ResponseCode) + ')'; | |
1469 | + end; | |
1470 | + end; | |
1471 | + finally | |
1472 | + memStream.Free; | |
1473 | + Screen.Cursor := crDefault; | |
1474 | + end; | |
1475 | + ShowBoardInformation(tmpBoard, BoardInformationMemo); | |
1476 | + end; | |
1477 | + FWork := False; | |
1478 | + end; | |
1796 | 1479 | end; |
1797 | 1480 | |
1798 | 1481 | procedure TEditorForm.ShowBoardInformation(ABoard: TBoard; AMemo: TMemo); |
@@ -1866,51 +1549,60 @@ begin | ||
1866 | 1549 | Exit; |
1867 | 1550 | |
1868 | 1551 | FWork := True; |
1869 | - | |
1870 | - InitIdHTTP(Indy); | |
1871 | 1552 | memStream := TMemoryStream.Create; |
1872 | 1553 | try |
1873 | - if FThreadItem = nil then | |
1874 | - tmpBoard := FBoard | |
1875 | - else | |
1876 | - tmpBoard := FThreadItem.ParentBoard; | |
1554 | + tmpBoard := GetBoard; | |
1877 | 1555 | |
1878 | - Indy.Request.Referer := tmpBoard.URL; | |
1879 | - if tmpBoard.TitlePictureURL <> '' then begin | |
1556 | + if (tmpBoard <> nil) and (tmpBoard.TitlePictureURL <> '') then begin | |
1880 | 1557 | StatusBar.Panels[0].Text := 'Âgbvæ_E[h'; |
1881 | 1558 | Screen.Cursor := crHourGlass; |
1882 | 1559 | try |
1883 | - IdAntiFreeze.Active := True; | |
1884 | - try | |
1885 | - Indy.Get(tmpBoard.TitlePictureURL, memStream); | |
1886 | - finally | |
1887 | - IdAntiFreeze.Active := False; | |
1888 | - end; | |
1560 | + // URLðwèµÄÉÇÝÞ | |
1561 | + GetWebData(tmpBoard.TitlePictureURL, tmpBoard.URL, | |
1562 | + ZERO_DATE, memStream); | |
1889 | 1563 | if Indy.ResponseCode = 200 then begin |
1890 | 1564 | memStream.SaveToFile(tmpBoard.GetTitlePictureFileName); |
1891 | 1565 | ShowTitlePicture(); |
1892 | 1566 | tmpBoard.Modified := true; |
1893 | 1567 | end; |
1568 | + StatusBar.Panels[0].Text := 'Âgbvæ (' + IntToStr(Indy.ResponseCode) + ')'; | |
1894 | 1569 | except |
1895 | 1570 | end; |
1896 | 1571 | end; |
1897 | 1572 | finally |
1898 | - Screen.Cursor := crDefault; | |
1899 | - StatusBar.Panels[0].Text := 'Âgbvæ (' + IntToStr(Indy.ResponseCode) + ')'; | |
1900 | 1573 | memStream.Free; |
1574 | + FWork := False; | |
1575 | + Screen.Cursor := crDefault; | |
1901 | 1576 | end; |
1577 | +end; | |
1578 | +{ | |
1579 | +\brief URLÌf[^ðstreamÉÇÝÞ | |
1580 | +\param URL ÇÝÞæ | |
1581 | +\param RefURL refererÉÝè·é | |
1582 | +\param Modified ModifiedÉÝè·é | |
1583 | +\param stream ÇÝñ¾f[^ÌÛ¶æ | |
1584 | +} | |
1585 | +procedure TEditorForm.GetWebData(const URL: string; const RefURL: string; | |
1586 | + Modified: TDateTime; stream: TStream); | |
1587 | +begin | |
1588 | + InitIdHTTP(Indy); | |
1589 | + Indy.Request.Referer := RefURL; | |
1590 | + Indy.Request.LastModified := Modified; | |
1591 | + | |
1592 | + IdAntiFreeze.Active := True; | |
1593 | + try | |
1594 | + Indy.Get(URL, stream); | |
1595 | + finally | |
1596 | + IdAntiFreeze.Active := False; | |
1597 | + end; | |
1902 | 1598 | |
1903 | - FWork := False; | |
1904 | 1599 | end; |
1905 | 1600 | procedure TEditorForm.ShowTitlePicture(); |
1906 | 1601 | var |
1907 | 1602 | tmpBoard: TBoard; |
1908 | 1603 | s: String; |
1909 | 1604 | begin |
1910 | - if FThreadItem = nil then | |
1911 | - tmpBoard := FBoard | |
1912 | - else | |
1913 | - tmpBoard := FThreadItem.ParentBoard; | |
1605 | + tmpBoard := GetBoard; | |
1914 | 1606 | |
1915 | 1607 | if FileExists(tmpBoard.GetTitlePictureFileName) then begin |
1916 | 1608 | TitlePictureBrowser.Navigate(tmpBoard.GetTitlePictureFileName); |
@@ -1940,71 +1632,63 @@ var | ||
1940 | 1632 | URL, RefURL: string; |
1941 | 1633 | settingBody: TStringList; |
1942 | 1634 | tmpBoard: TBoard; |
1635 | + memStream: TMemoryStream; | |
1943 | 1636 | begin |
1944 | - if FWork then | |
1945 | - Exit; | |
1637 | + if not FWork then begin | |
1946 | 1638 | FWork := True; |
1947 | 1639 | |
1948 | - InitIdHTTP(Indy); | |
1949 | - if FThreadItem = nil then | |
1950 | - tmpBoard := FBoard | |
1951 | - else | |
1952 | - tmpBoard := FThreadItem.ParentBoard; | |
1953 | - | |
1954 | - if tmpBoard = nil then Exit; | |
1955 | - | |
1956 | - RefURL := tmpBoard.URL; | |
1957 | - if RefURL[Length(RefURL)] <> '/' then | |
1958 | - URL := RefURL + '/' + 'head.txt' | |
1959 | - else | |
1960 | - URL := RefURL + 'head.txt'; | |
1961 | - | |
1962 | - if FileExists(tmpBoard.GETHEADTXTFileName) then | |
1963 | - Indy.Request.LastModified := tmpBoard.HEADTXTTime | |
1964 | - else | |
1965 | - Indy.Request.LastModified := ZERO_DATE; | |
1966 | - | |
1967 | - Indy.Request.Referer := RefURL; | |
1968 | - Screen.Cursor := crHourGlass; | |
1969 | - settingBody := TStringList.Create; | |
1970 | - try | |
1971 | - StatusBar.Panels[0].Text := '[J[(head.txt)_E[h'; | |
1972 | - try | |
1973 | - IdAntiFreeze.Active := True; | |
1974 | - try | |
1975 | - settingBody.Text := Indy.Get(URL); | |
1976 | - finally | |
1977 | - IdAntiFreeze.Active := False; | |
1978 | - end; | |
1979 | - if( Indy.ResponseCode = 200 ) then begin | |
1980 | - settingBody.Insert(0, '<HTML lang="ja"><HEAD>'); | |
1981 | - settingBody.Insert(1, '<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">'); | |
1982 | - settingBody.Insert(2, '<TITLE>' + tmpBoard.Title + '</TITLE>'); | |
1983 | - settingBody.Insert(3, '<base href="' + RefURL + '"></HEAD><BODY>'); | |
1984 | - settingBody.Add('</BODY></HTML>'); | |
1985 | - settingBody.SaveToFile(tmpBoard.GETHEADTXTFileName); | |
1986 | - tmpBoard.HEADTXTTime := Indy.Response.LastModified; | |
1987 | - tmpBoard.IsHEADTXT := true; | |
1988 | - tmpBoard.Modified := true; | |
1989 | - StatusBar.Panels[0].Text := '[J[æ¾®¹(' + IntToStr(Indy.ResponseCode) + ')'; | |
1990 | - end; | |
1991 | - except | |
1992 | - on E: EIdException do begin | |
1993 | - if( AnsiPos('304', E.Message) > 0 ) then | |
1994 | - StatusBar.Panels[0].Text := '[J[XV³µ(' + IntToStr(Indy.ResponseCode) + ')' | |
1995 | - else | |
1996 | - StatusBar.Panels[0].Text := '[J[æ¾G[(' + IntToStr(Indy.ResponseCode) + ')'; | |
1997 | - end; | |
1998 | - end; | |
1999 | - finally | |
2000 | - settingBody.Free; | |
2001 | - Screen.Cursor := crDefault; | |
1640 | + tmpBoard := GetBoard; | |
1641 | + if (tmpBoard <> nil) then begin | |
1642 | + | |
1643 | + RefURL := tmpBoard.URL; | |
1644 | + if RefURL[Length(RefURL)] <> '/' then | |
1645 | + URL := RefURL + '/' + 'head.txt' | |
1646 | + else | |
1647 | + URL := RefURL + 'head.txt'; | |
1648 | + | |
1649 | + Screen.Cursor := crHourGlass; | |
1650 | + memStream := TMemoryStream.Create; | |
1651 | + try | |
1652 | + StatusBar.Panels[0].Text := '[J[(head.txt)_E[h'; | |
1653 | + try | |
1654 | + GetWebData(URL, RefURL, tmpBoard.HEADTXTTime, memStream); | |
1655 | + if( Indy.ResponseCode = 200 ) then begin | |
1656 | + settingBody := TStringList.Create; | |
1657 | + try | |
1658 | + memStream.Seek(0, soFromBeginning); | |
1659 | + settingBody.LoadFromStream(memStream); | |
1660 | + settingBody.Insert(0, '<HTML lang="ja"><HEAD>'); | |
1661 | + settingBody.Insert(1, '<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">'); | |
1662 | + settingBody.Insert(2, '<TITLE>' + tmpBoard.Title + '</TITLE>'); | |
1663 | + settingBody.Insert(3, '<base href="' + RefURL + '"></HEAD><BODY>'); | |
1664 | + settingBody.Add('</BODY></HTML>'); | |
1665 | + settingBody.SaveToFile(tmpBoard.GETHEADTXTFileName); | |
1666 | + tmpBoard.HEADTXTTime := Indy.Response.LastModified; | |
1667 | + tmpBoard.IsHEADTXT := true; | |
1668 | + tmpBoard.Modified := true; | |
1669 | + finally | |
1670 | + settingBody.Free; | |
1671 | + end; | |
1672 | + StatusBar.Panels[0].Text := '[J[æ¾®¹(' + IntToStr(Indy.ResponseCode) + ')'; | |
1673 | + end; | |
1674 | + except | |
1675 | + on E: EIdException do begin | |
1676 | + if( AnsiPos('304', E.Message) > 0 ) then | |
1677 | + StatusBar.Panels[0].Text := '[J[XV³µ(' + IntToStr(Indy.ResponseCode) + ')' | |
1678 | + else | |
1679 | + StatusBar.Panels[0].Text := '[J[æ¾G[(' + IntToStr(Indy.ResponseCode) + ')'; | |
1680 | + end; | |
1681 | + end; | |
1682 | + finally | |
1683 | + memStream.Free; | |
1684 | + Screen.Cursor := crDefault; | |
1685 | + end; | |
1686 | + if tmpBoard.IsHEADTXT then begin | |
1687 | + ShowBoardHead(tmpboard, LocalEdit); | |
1688 | + end; | |
1689 | + end; | |
2002 | 1690 | FWork := False; |
2003 | - end; | |
2004 | - if tmpBoard.IsHEADTXT then begin | |
2005 | - ShowBoardHead(tmpboard, LocalEdit); | |
2006 | - end; | |
2007 | - | |
1691 | + end; | |
2008 | 1692 | |
2009 | 1693 | end; |
2010 | 1694 |
@@ -2015,10 +1699,7 @@ var | ||
2015 | 1699 | begin |
2016 | 1700 | body := GetBody; |
2017 | 1701 | //ǤàAüsª¸êĽÁÛ¢¯ÇA{©æª©çÈ¢B |
2018 | - if FThreadItem = nil then | |
2019 | - Board := FBoard | |
2020 | - else | |
2021 | - Board := FThreadItem.ParentBoard; | |
1702 | + Board := GetBoard; | |
2022 | 1703 | |
2023 | 1704 | if Board.BoardPlugIn <> nil then |
2024 | 1705 | body := CustomStringReplace(body, #13#10, '<br>') |
@@ -2029,12 +1710,13 @@ end; | ||
2029 | 1710 | |
2030 | 1711 | procedure TEditorForm.LocalRuleClick(Sender: TObject); |
2031 | 1712 | var |
2032 | - ini: TIniFile; | |
1713 | + ini: TMemIniFile; | |
2033 | 1714 | begin |
2034 | - ini := TIniFile.Create(GikoSys.Setting.GetFileName); | |
1715 | + ini := TMemIniFile.Create(GikoSys.Setting.GetFileName); | |
2035 | 1716 | try |
2036 | 1717 | RocalRuleTab.TabVisible := LocalRule.Checked; |
2037 | 1718 | ini.WriteBool('EditorForm', 'LocalRuleTab', RocalRuleTab.TabVisible); |
1719 | + ini.UpdateFile; | |
2038 | 1720 | finally |
2039 | 1721 | ini.Free; |
2040 | 1722 | end; |
@@ -2075,6 +1757,7 @@ var | ||
2075 | 1757 | Action: TAction; |
2076 | 1758 | begin |
2077 | 1759 | s := MouseGesture.GetGestureStr; |
1760 | + MouseGesture.Clear; | |
2078 | 1761 | Action := GikoSys.Setting.Gestures.GetGestureAction(s); |
2079 | 1762 | if Action <> nil then |
2080 | 1763 | Action.Execute; |
@@ -2105,10 +1788,7 @@ var | ||
2105 | 1788 | URL: String; |
2106 | 1789 | ABoard: TBoard; |
2107 | 1790 | begin |
2108 | - if FThreadItem = nil then | |
2109 | - ABoard := FBoard | |
2110 | - else | |
2111 | - ABoard := FThreadItem.ParentBoard; | |
1791 | + ABoard := GetBoard; | |
2112 | 1792 | |
2113 | 1793 | if ABoard = nil then Exit; |
2114 | 1794 |
@@ -2122,12 +1802,14 @@ begin | ||
2122 | 1802 | KotehanCheckBox.Enabled := SaveNameMailAction.Checked; |
2123 | 1803 | end; |
2124 | 1804 | |
2125 | -function TEditorForm.LFusianaGet(s: String): Boolean; | |
1805 | +function TEditorForm.LFusianaGet(const s: String): Boolean; | |
1806 | +const | |
1807 | + FUSIANA = 'fusianasan'; | |
2126 | 1808 | var |
2127 | 1809 | i: Integer; |
2128 | 1810 | begin |
2129 | - i := AnsiPos('fusianasan', s); | |
2130 | - if (i > 0) then Result := True else Result := False; | |
1811 | + i := AnsiPos(FUSIANA, s); | |
1812 | + Result := (i > 0); | |
2131 | 1813 | end; |
2132 | 1814 | |
2133 | 1815 | procedure TEditorForm.BeLogInOutEActionExecute(Sender: TObject); |
@@ -2180,24 +1862,11 @@ begin | ||
2180 | 1862 | end; |
2181 | 1863 | end; |
2182 | 1864 | |
2183 | -//! SambaÌÝèlðXV·é | |
2184 | -procedure TEditorForm.UpdateSamba(const AHost: String; value: Integer); | |
2185 | -var | |
2186 | - ini :TMemIniFile; | |
2187 | -begin | |
2188 | - ini := TMemIniFile.Create(GikoSys.GetSambaFileName); | |
2189 | - try | |
2190 | - ini.WriteInteger('Setting', AHost, value); | |
2191 | - ini.UpdateFile; | |
2192 | - finally | |
2193 | - ini.Free; | |
2194 | - end; | |
2195 | -end; | |
2196 | 1865 | |
2197 | 1866 | //! ToXVÌANVÌUpdateCxg@ÈP̽ß^C}[Ư¶ÉµÄ¨ |
2198 | 1867 | procedure TEditorForm.UpdateSambaActionUpdate(Sender: TObject); |
2199 | 1868 | begin |
2200 | - UpdateSambaAction.Enabled := Timer1.Enabled; | |
1869 | + UpdateSambaAction.Enabled := FSambaTimer.Enabled; | |
2201 | 1870 | end; |
2202 | 1871 | |
2203 | 1872 | //! ToXVANV |
@@ -2209,14 +1878,14 @@ begin | ||
2209 | 1878 | if InputQuery('Samba24ÝèlXV', 'Vµ¢Ýèlðü͵ľ³¢', input) then begin |
2210 | 1879 | input := ZenToHan(input); |
2211 | 1880 | if GikoSys.IsNumeric(input) then begin |
2212 | - UpdateSamba(FHost, StrToInt(input)); | |
2213 | - //SÄÌtH[©çA¯¶zXgÌGfB^ÉÇÝÝw¦ | |
1881 | + FSambaTimer.UpdateSambaSetting(StrToInt(input)); | |
1882 | + UpdateSambaStatus; | |
1883 | + //SÄÌtH[©çASamba^C}[ðXV·é | |
2214 | 1884 | for i := 0 to Screen.FormCount - 1 do begin |
2215 | 1885 | if Screen.Forms[i] is TEditorForm then begin |
2216 | - if FHost = TEditorForm(Screen.Forms[i]).FHost then begin | |
2217 | - TEditorForm(Screen.Forms[i]).ReadSettingTime(FHost); | |
2218 | - end; | |
2219 | - end; | |
1886 | + TEditorForm(Screen.Forms[i]).FSambaTimer.Update; | |
1887 | + TEditorForm(Screen.Forms[i]).UpdateSambaStatus; | |
1888 | + end; | |
2220 | 1889 | end; |
2221 | 1890 | end else begin |
2222 | 1891 | ShowMessage('lðü͵ľ³¢'); |
@@ -2225,6 +1894,14 @@ begin | ||
2225 | 1894 | end; |
2226 | 1895 | end; |
2227 | 1896 | |
1897 | +procedure TEditorForm.UpdateSambaStatus; | |
1898 | +begin | |
1899 | + if (FSambaTimer.Enabled) then begin | |
1900 | + StatusBar.Panels[2].Text | |
1901 | + := 'Samba24Kèl' + IntToStr(FSambaTimer.SambaInterval); | |
1902 | + end; | |
1903 | +end; | |
1904 | + | |
2228 | 1905 | procedure TEditorForm.InputAssistActionExecute(Sender: TObject); |
2229 | 1906 | var |
2230 | 1907 | count, i : Integer; |
@@ -2409,11 +2086,7 @@ var | ||
2409 | 2086 | Board : TBoard; |
2410 | 2087 | begin |
2411 | 2088 | // Xbhª³¢@X§ÄÌÆ«ÍFBoardð¼Úg¤ |
2412 | - if FThreadItem = nil then begin | |
2413 | - Board := FBoard | |
2414 | - end else begin | |
2415 | - Board := FThreadItem.ParentBoard; | |
2416 | - end; | |
2089 | + Board := GetBoard; | |
2417 | 2090 | |
2418 | 2091 | // NbL[ÌîñðÌÄé |
2419 | 2092 | Board.Cookie := ''; |
@@ -2435,4 +2108,220 @@ begin | ||
2435 | 2108 | GetSETTINGTXTAction.Enabled := not FWork; |
2436 | 2109 | end; |
2437 | 2110 | |
2111 | +//! Samba^C}[Cxg | |
2112 | +procedure TEditorForm.SambaTimer(Sender: TObject); | |
2113 | +begin | |
2114 | + | |
2115 | + if FSambaTimer.WriteDeta = ZERO_DATE then | |
2116 | + StatusBar.Panels[1].Text := '' | |
2117 | + else begin | |
2118 | + FNow := IncMilliSecond(FNow, 500); | |
2119 | + StatusBar.Panels[1].Text := | |
2120 | + Format('%8.0fboß', [SecondSpan(FNow, FSambaTimer.WriteDeta)]); | |
2121 | + end; | |
2122 | +end; | |
2123 | +{ | |
2124 | +\brief EBhEÌÊuÆTCYÌÝè | |
2125 | +} | |
2126 | +procedure TEditorForm.SetWindowRect; | |
2127 | +var | |
2128 | + wp: TWindowPlacement; | |
2129 | +begin | |
2130 | + //EBhEÌÊuÝè | |
2131 | + wp.length := sizeof(wp); | |
2132 | + wp.rcNormalPosition.Top := GikoSys.Setting.EditWindowTop; | |
2133 | + wp.rcNormalPosition.Left := GikoSys.Setting.EditWindowLeft; | |
2134 | + | |
2135 | + wp.rcNormalPosition.Bottom := GikoSys.Setting.EditWindowTop + GikoSys.Setting.EditWindowHeight; | |
2136 | + wp.rcNormalPosition.Right := GikoSys.Setting.EditWindowLeft + GikoSys.Setting.EditWindowWidth; | |
2137 | + wp.showCmd := SW_HIDE; | |
2138 | + SetWindowPlacement(Handle, @wp); | |
2139 | + | |
2140 | + if GikoSys.Setting.EditWindowMax then begin | |
2141 | + WindowState := wsMaximized; | |
2142 | + end; | |
2143 | + | |
2144 | + //EBhEªæÊOÈçæÊàÉÚ®·é | |
2145 | + if (Left + Width) > Screen.Width then begin | |
2146 | + Left := 0; | |
2147 | + end; | |
2148 | + if (Top + Height) > Screen.Height then begin | |
2149 | + Top := 0; | |
2150 | + end; | |
2151 | + if Left < 0 then begin | |
2152 | + Left := 0; | |
2153 | + end; | |
2154 | + if Top < 0 then begin | |
2155 | + Top := 0; | |
2156 | + end; | |
2157 | + | |
2158 | + //»ÝÌEBhEÌÊuðÛ¶ | |
2159 | + GikoSys.Setting.EditWindowTop := Top + WINDOWMOVE_V; // ÉJEBhEÍ | |
2160 | + GikoSys.Setting.EditWindowLeft := Left + WINDOWMOVE_H; // @@@EÎßºÉ¸ç· | |
2161 | + //EBhEÌƳª¬³·¬¢êγÉß· | |
2162 | + if GikoSys.Setting.EditWindowHeight < 144 then begin | |
2163 | + Height := 400; | |
2164 | + end; | |
2165 | + if GikoSys.Setting.EditWindowWidth < 144 then begin | |
2166 | + Width := 640; | |
2167 | + end; | |
2168 | +end; | |
2169 | +{ | |
2170 | +\brief g£^uÝè | |
2171 | +} | |
2172 | +procedure TEditorForm.SetExtraTab; | |
2173 | +const | |
2174 | + SECTION = 'EditorForm'; | |
2175 | +var | |
2176 | + ini: TMemIniFile; | |
2177 | +begin | |
2178 | + ini := TMemIniFile.Create(GikoSys.Setting.GetFileName); | |
2179 | + try | |
2180 | + BoardtopTab.TabVisible := ini.Readbool(SECTION, 'BoardTopTab', False); | |
2181 | + BoardTop.Checked := BoardtopTab.TabVisible; | |
2182 | + RocalRuleTab.TabVisible := ini.ReadBool(SECTION, 'LocalRuleTab', False); | |
2183 | + LocalRule.Checked := RocalRuleTab.TabVisible; | |
2184 | + finally | |
2185 | + ini.Free; | |
2186 | + end; | |
2187 | +end; | |
2188 | +{ | |
2189 | +\brief Âæ¾ | |
2190 | +\return XGfB^ªeµæ¤ÆµÄ¢é | |
2191 | +} | |
2192 | +function TEditorForm.GetBoard : TBoard; | |
2193 | +begin | |
2194 | + // XbhACeªnullÌÍFBoard | |
2195 | + if FThreadItem = nil then begin | |
2196 | + Result := FBoard; | |
2197 | + end else begin | |
2198 | + Result := FThreadItem.ParentBoard; | |
2199 | + end; | |
2200 | +end; | |
2201 | +{ | |
2202 | +\brief GikoFormÉbZ[WðÇÁ·é | |
2203 | +\param icon bZ[WÉÂACR | |
2204 | +} | |
2205 | +procedure TEditorForm.AddFormMessageNew(icon: TGikoMessageIcon); | |
2206 | +begin | |
2207 | + if FThreadItem = nil then begin | |
2208 | + GikoForm.AddMessageList(FBoard.Title + ' ' + GikoSys.GetGikoMessage(gmNewSure), nil, icon) | |
2209 | + end else begin | |
2210 | + GikoForm.AddMessageList(FThreadItem.Title + ' ' + GikoSys.GetGikoMessage(gmNewRes), nil, icon); | |
2211 | + end; | |
2212 | + | |
2213 | +end; | |
2214 | +{ | |
2215 | +\brief [Jfusianagbv | |
2216 | +\return true:M~ false:M | |
2217 | +} | |
2218 | +function TEditorForm.isLocalFusianaTrap: Boolean; | |
2219 | +var | |
2220 | + Namae : string; | |
2221 | +begin | |
2222 | + Result := False; | |
2223 | + if GikoSys.Setting.LocalTrapAtt then begin | |
2224 | + Namae := THTMLCreate.RepHtml(NameComboBox.Text); | |
2225 | + if (LFusianaGet(Namae)) or (Namae = 'RèÂ') then begin | |
2226 | + if FusianaMsgBox = IDNO then begin | |
2227 | + Result := True; | |
2228 | + end; | |
2229 | + end; | |
2230 | + end; | |
2231 | +end; | |
2232 | +{ | |
2233 | +\brief [gfusianagbv | |
2234 | +\return true:M~ false:M | |
2235 | +} | |
2236 | +function TEditorForm.isRemoteFusianaTrap: Boolean; | |
2237 | +var | |
2238 | + Namae : string; | |
2239 | + Board : TBoard; | |
2240 | + Remote: string; | |
2241 | + body : TStringList; | |
2242 | +begin | |
2243 | + Result := False; | |
2244 | + Namae := THTMLCreate.RepHtml(NameComboBox.Text); | |
2245 | + if (GikoSys.Setting.RemoteTrapAtt) and (Length(Namae) = 0) then begin | |
2246 | + Board := GetBoard; | |
2247 | + | |
2248 | + if Board = nil then Exit; | |
2249 | + | |
2250 | + if not FileExists(Board.GetSETTINGTXTFileName) then begin | |
2251 | + //Setting.txtªÈ©Á½çæ¾ | |
2252 | + //IÉת©©è»¤... | |
2253 | + try | |
2254 | + GetSETTINGTXTAction.Execute; | |
2255 | + except | |
2256 | + end; | |
2257 | + end; | |
2258 | + | |
2259 | + Remote := ''; | |
2260 | + if FileExists(Board.GetSETTINGTXTFileName) then begin | |
2261 | + body := TStringList.Create; | |
2262 | + try | |
2263 | + body.LoadFromFile(Board.GetSETTINGTXTFileName); | |
2264 | + Remote := GetFusianaName(body, Board); | |
2265 | + finally | |
2266 | + body.Free; | |
2267 | + end; | |
2268 | + end; | |
2269 | + | |
2270 | + if LFusianaGet(Remote) then begin | |
2271 | + if FusianaMsgBox = IDNO then begin | |
2272 | + Result := True; | |
2273 | + end; | |
2274 | + end; | |
2275 | + end; | |
2276 | +end; | |
2277 | +{ | |
2278 | +\brief Header¶ñæ¾ | |
2279 | +\param ACOOKIE Cookie | |
2280 | +\param SPID SPID | |
2281 | +\param PON PON | |
2282 | +\param Board  | |
2283 | +\return Header¶ñ | |
2284 | +} | |
2285 | +function TEditorForm.getHeaderStr(const ACOOKIE: string; const SPID : string; | |
2286 | + const PON : string; Board : TBoard) : string; | |
2287 | +begin | |
2288 | + Result := ACOOKIE; | |
2289 | + if SPID <> '' then | |
2290 | + Result := Result + 'SPID=' + SPID + '; '; | |
2291 | + if PON <> '' then | |
2292 | + Result := Result + 'PON=' + PON + '; '; | |
2293 | + | |
2294 | + //zXgª2chÅABeÉLoginµÄ¢êÎBEÌf[^ðé | |
2295 | + //GikoSys.ParseURI( URL, Protocol,Host, Path, Document, Port, Bookmark ); | |
2296 | + //if GikoSys.Is2chHost(Host) and GikoSys.Setting.BeLogin then | |
2297 | + if (Board.Is2ch) then begin | |
2298 | + // ÅèÌNbL[ª êÎHí¹é | |
2299 | + if Length(GikoSys.Setting.FixedCookie) > 0 then begin | |
2300 | + // zXgª2chÌêCÅèÌNbL[ðHí¹é | |
2301 | + Result := Result + GikoSys.Setting.FixedCookie + '; '; | |
2302 | + end; | |
2303 | + if (GikoSys.Setting.BeLogin) then begin | |
2304 | + Result := Result + 'MDMD=' + GikoSys.Setting.BeCode + '; ' | |
2305 | + + 'DMDM=' + GikoSys.Setting.BeUserID + '; '; | |
2306 | + end; | |
2307 | + | |
2308 | + end; | |
2309 | + | |
2310 | + Result := 'Cookie: ' + Result + 'NAME=' + NameComboBox.Text + '; MAIL=' + MailComboBox.Text; | |
2311 | + | |
2312 | +end; | |
2313 | +{ | |
2314 | +\brief fusianax_CAO | |
2315 | +\return IDYES «Þ IDNO ~ | |
2316 | +} | |
2317 | +function TEditorForm.FusianaMsgBox: Integer; | |
2318 | +const | |
2319 | + MSG_FUSIANA : string = '[gzXgð\¦·é@\ªgíêĢܷ'#13#10 + | |
2320 | + 'àµàÔáÁıÌû@ÅzXgª\¦³ê½ÆµÄàA©ÈÓCÈÌÅíËÉͶܹñB' + | |
2321 | + #13#10#13#10'ÓCð¤±Æð³øµÄ«ÝÜ·©H'; | |
2322 | +begin | |
2323 | + Result := MsgBox(Handle, MSG_FUSIANA, 'îñ', | |
2324 | + MB_YESNO or MB_ICONQUESTION); | |
2325 | +end; | |
2326 | + | |
2438 | 2327 | end. |
@@ -87,6 +87,7 @@ object FavoriteArrangeDialog: TFavoriteArrangeDialog | ||
87 | 87 | HideSelection = False |
88 | 88 | Images = GikoForm.ItemIcon16 |
89 | 89 | Indent = 19 |
90 | + PopupMenu = SortPopupMenu | |
90 | 91 | ReadOnly = True |
91 | 92 | ShowRoot = False |
92 | 93 | TabOrder = 0 |
@@ -123,4 +124,41 @@ object FavoriteArrangeDialog: TFavoriteArrangeDialog | ||
123 | 124 | end |
124 | 125 | end |
125 | 126 | end |
127 | + object SortPopupMenu: TPopupMenu | |
128 | + Left = 16 | |
129 | + Top = 160 | |
130 | + object N1: TMenuItem | |
131 | + Caption = #21517#21069#38918#25972#21015 | |
132 | + object SortAscName: TMenuItem | |
133 | + Caption = #26119#38918 | |
134 | + OnClick = SortAscNameClick | |
135 | + end | |
136 | + object SortDscName: TMenuItem | |
137 | + Caption = #38477#38918 | |
138 | + OnClick = SortDscNameClick | |
139 | + end | |
140 | + end | |
141 | + object SortURL: TMenuItem | |
142 | + Caption = 'URL'#38918#25972#21015 | |
143 | + object SortAscURL: TMenuItem | |
144 | + Caption = #26119#38918 | |
145 | + OnClick = SortAscURLClick | |
146 | + end | |
147 | + object SortDscURL: TMenuItem | |
148 | + Caption = #38477#38918 | |
149 | + OnClick = SortDscURLClick | |
150 | + end | |
151 | + end | |
152 | + object SortTitle: TMenuItem | |
153 | + Caption = #12479#12452#12488#12523#38918#12477#12540#12488 | |
154 | + object SortAscTitle: TMenuItem | |
155 | + Caption = #26119#38918 | |
156 | + OnClick = SortAscTitleClick | |
157 | + end | |
158 | + object SortDscTitle: TMenuItem | |
159 | + Caption = #38477#38918 | |
160 | + OnClick = SortDscTitleClick | |
161 | + end | |
162 | + end | |
163 | + end | |
126 | 164 | end |
@@ -5,7 +5,7 @@ interface | ||
5 | 5 | uses |
6 | 6 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, |
7 | 7 | Dialogs, ComCtrls, StdCtrls, ExtCtrls, Favorite, ImgList, NewFavoriteFolder, |
8 | - GikoSystem, GikoUtil; | |
8 | + GikoSystem, GikoUtil, Menus; | |
9 | 9 | |
10 | 10 | type |
11 | 11 | TFavoriteArrangeDialog = class(TForm) |
@@ -19,6 +19,16 @@ type | ||
19 | 19 | FolderTreeView: TTreeView; |
20 | 20 | Panel4: TPanel; |
21 | 21 | CloseButton: TButton; |
22 | + SortPopupMenu: TPopupMenu; | |
23 | + SortAscName: TMenuItem; | |
24 | + SortDscName: TMenuItem; | |
25 | + N1: TMenuItem; | |
26 | + SortURL: TMenuItem; | |
27 | + SortAscURL: TMenuItem; | |
28 | + SortDscURL: TMenuItem; | |
29 | + SortTitle: TMenuItem; | |
30 | + SortAscTitle: TMenuItem; | |
31 | + SortDscTitle: TMenuItem; | |
22 | 32 | procedure CloseButtonClick(Sender: TObject); |
23 | 33 | procedure FormCreate(Sender: TObject); |
24 | 34 | procedure NewFolderButtonClick(Sender: TObject); |
@@ -31,11 +41,15 @@ type | ||
31 | 41 | procedure FolderTreeViewDragDrop(Sender, Source: TObject; X, |
32 | 42 | Y: Integer); |
33 | 43 | procedure FormDestroy(Sender: TObject); |
44 | + procedure SortDscNameClick(Sender: TObject); | |
45 | + procedure SortAscNameClick(Sender: TObject); | |
46 | + procedure SortDscURLClick(Sender: TObject); | |
47 | + procedure SortAscURLClick(Sender: TObject); | |
48 | + procedure SortDscTitleClick(Sender: TObject); | |
49 | + procedure SortAscTitleClick(Sender: TObject); | |
34 | 50 | private |
35 | 51 | { Private é¾ } |
36 | -// FDragNode: TTreeNode; | |
37 | 52 | FDeleteList: TList; |
38 | -// procedure PrepareFavoriteTree(Favo: TFavoriteItem; Node: TTreeNode); | |
39 | 53 | procedure SetDeleteItemList(Node: TTreeNode); |
40 | 54 | public |
41 | 55 | { Public é¾ } |
@@ -44,10 +58,19 @@ type | ||
44 | 58 | var |
45 | 59 | FavoriteArrangeDialog: TFavoriteArrangeDialog; |
46 | 60 | |
61 | +function SortProc(Node1, Node2: TTreeNode; Data: Longint): Integer; stdcall; | |
62 | + | |
47 | 63 | implementation |
48 | 64 | |
49 | 65 | uses Giko; |
50 | 66 | |
67 | +const | |
68 | + SORT_ASC = 0; | |
69 | + SORT_DSC = 1; | |
70 | + SORT_NAME = 8; | |
71 | + SORT_URL = 16; | |
72 | + SORT_TITLE = 32; | |
73 | + | |
51 | 74 | {$R *.dfm} |
52 | 75 | |
53 | 76 | procedure TFavoriteArrangeDialog.CloseButtonClick(Sender: TObject); |
@@ -64,45 +87,8 @@ begin | ||
64 | 87 | FolderTreeView.Items.GetFirstNode.Expanded := True; |
65 | 88 | FolderTreeView.Items.GetFirstNode.Selected := True; |
66 | 89 | end; |
67 | - | |
68 | - | |
69 | -{ Node := FolderTreeView.Items.AddChild(nil, GikoForm.Favorite.Root.Title); | |
70 | - Node.ImageIndex := 0; | |
71 | - Node.Data := GikoForm.Favorite.Root; | |
72 | - PrepareFavoriteTree(GikoForm.Favorite.Root, Node); | |
73 | - Node.Expanded := True; | |
74 | - Node.Selected := True;} | |
75 | 90 | end; |
76 | 91 | |
77 | -{procedure TFavoriteArrangeDialog.PrepareFavoriteTree(Favo: TFavoriteItem; Node: TTreeNode); | |
78 | -var | |
79 | - i: Integer; | |
80 | - ChildFavo: TFavoriteItem; | |
81 | - ChildNode: TTreeNode; | |
82 | -begin | |
83 | -{ for i := 0 to TFavoriteFolder(Favo).Count - 1 do begin | |
84 | - | |
85 | - ChildFavo := TFavoriteFolder(Favo).Items[i]; | |
86 | - if ChildFavo is TFavoriteFolder then begin | |
87 | - ChildNode := FolderTreeView.Items.AddChild(Node, ChildFavo.Title); | |
88 | - ChildNode.ImageIndex := 0; | |
89 | - ChildNode.SelectedIndex := 0; | |
90 | - ChildNode.Data := ChildFavo; | |
91 | - PrepareFavoriteTree(ChildFavo, ChildNode); | |
92 | - end else if ChildFavo is TFavoriteBoardItem then begin | |
93 | - ChildNode := FolderTreeView.Items.AddChild(Node, ChildFavo.Title); | |
94 | - ChildNode.ImageIndex := 1; | |
95 | - ChildNode.SelectedIndex := 1; | |
96 | - ChildNode.Data := ChildFavo; | |
97 | - end else if ChildFavo is TFavoriteThreadItem then begin | |
98 | - ChildNode := FolderTreeView.Items.AddChild(Node, ChildFavo.Title); | |
99 | - ChildNode.ImageIndex := 2; | |
100 | - ChildNode.SelectedIndex := 2; | |
101 | - ChildNode.Data := ChildFavo; | |
102 | - end; | |
103 | - end; | |
104 | -end; } | |
105 | - | |
106 | 92 | procedure TFavoriteArrangeDialog.NewFolderButtonClick(Sender: TObject); |
107 | 93 | var |
108 | 94 | Dlg: TNewFavoriteFolderDialog; |
@@ -229,5 +215,128 @@ begin | ||
229 | 215 | SetDeleteItemList(Node.item[i]); |
230 | 216 | end; |
231 | 217 | end; |
218 | +{ | |
219 | +\brief c[Ì\[g | |
220 | +\pram Node1 m[h | |
221 | +\param Node2 m[h | |
222 | +\param Data \[gIvV | |
223 | +\return Node1(>0) Node1=Node2(=0) Node2(<0) | |
224 | +} | |
225 | +function SortProc(Node1, Node2: TTreeNode; Data: Longint): Integer; | |
226 | +stdcall; | |
227 | +var | |
228 | + folder1, folder2 : TFavoriteFolder; | |
229 | + item1, item2 : TFavoriteItem; | |
230 | +begin | |
231 | + if (TObject(Node1.Data) is TFavoriteItem) then begin | |
232 | + item1 := TFavoriteItem(Node1.Data); | |
233 | + folder1 := nil; | |
234 | + end else begin | |
235 | + item1 := nil; | |
236 | + folder1 := TFavoriteFolder(Node1.Data); | |
237 | + end; | |
238 | + if (TObject(Node2.Data) is TFavoriteItem) then begin | |
239 | + item2 := TFavoriteItem(Node2.Data); | |
240 | + folder2 := nil; | |
241 | + end else begin | |
242 | + item2 := nil; | |
243 | + folder2 := TFavoriteFolder(Node2.Data); | |
244 | + end; | |
245 | + | |
246 | + if (folder1 <> nil) and (folder2 = nil) then begin | |
247 | + Result := 1; | |
248 | + end else | |
249 | + if (folder1 = nil) and (folder2 <> nil) then begin | |
250 | + Result := -1; | |
251 | + end else begin | |
252 | + Result := 0; | |
253 | + if (folder1 <> nil) and (folder2 <> nil) then begin | |
254 | + Result := CompareStr(Node1.Text, Node2.Text); | |
255 | + end else | |
256 | + if (folder1 = nil) and (folder2 = nil) then begin | |
257 | + if ((Data and SORT_NAME) > 0) then begin | |
258 | + Result := CompareStr(Node1.Text, Node2.Text); | |
259 | + end else | |
260 | + if ((Data and SORT_URL) > 0) then begin | |
261 | + Result := CompareStr(item1.URL, item2.URL); | |
262 | + end else | |
263 | + if ((Data and SORT_TITLE) > 0) then begin | |
264 | + Result := CompareStr(item1.Title, item2.Title); | |
265 | + end; | |
266 | + end; | |
267 | + if ((Data and SORT_DSC) > 0) then begin | |
268 | + Result := -1 * Result; | |
269 | + end; | |
270 | + end; | |
271 | +end; | |
272 | + | |
273 | +{ | |
274 | +\brief ¼OÌ~\[g | |
275 | +} | |
276 | +procedure TFavoriteArrangeDialog.SortDscNameClick(Sender: TObject); | |
277 | +begin | |
278 | + if (FolderTreeView.Selected <> nil) and | |
279 | + (TObject(FolderTreeView.Selected.Data) is TFavoriteFolder) then begin | |
280 | + FolderTreeView.Selected | |
281 | + .CustomSort(@SortProc, SORT_NAME or SORT_DSC, False); | |
282 | + end; | |
283 | +end; | |
284 | + | |
285 | +{ | |
286 | +\brief ¼O̸\[g | |
287 | +} | |
288 | +procedure TFavoriteArrangeDialog.SortAscNameClick(Sender: TObject); | |
289 | +begin | |
290 | + if (FolderTreeView.Selected <> nil) and | |
291 | + (TObject(FolderTreeView.Selected.Data) is TFavoriteFolder) then begin | |
292 | + FolderTreeView.Selected | |
293 | + .CustomSort(@SortProc, SORT_NAME or SORT_ASC, False); | |
294 | + end; | |
295 | +end; | |
296 | +{ | |
297 | +\brief URLÌ~\[g | |
298 | +} | |
299 | +procedure TFavoriteArrangeDialog.SortDscURLClick(Sender: TObject); | |
300 | +begin | |
301 | + if (FolderTreeView.Selected <> nil) and | |
302 | + (TObject(FolderTreeView.Selected.Data) is TFavoriteFolder) then begin | |
303 | + FolderTreeView.Selected | |
304 | + .CustomSort(@SortProc, SORT_URL or SORT_DSC, False); | |
305 | + end; | |
306 | +end; | |
307 | +{ | |
308 | +\brief URL̸\[g | |
309 | +} | |
310 | +procedure TFavoriteArrangeDialog.SortAscURLClick(Sender: TObject); | |
311 | +begin | |
312 | + if (FolderTreeView.Selected <> nil) and | |
313 | + (TObject(FolderTreeView.Selected.Data) is TFavoriteFolder) then begin | |
314 | + FolderTreeView.Selected | |
315 | + .CustomSort(@SortProc, SORT_URL or SORT_ASC, False); | |
316 | + end; | |
317 | +end; | |
318 | +{ | |
319 | +\brief ^CgÌ~\[g | |
320 | +} | |
321 | +procedure TFavoriteArrangeDialog.SortDscTitleClick(Sender: TObject); | |
322 | +begin | |
323 | + if (FolderTreeView.Selected <> nil) and | |
324 | + (TObject(FolderTreeView.Selected.Data) is TFavoriteFolder) then begin | |
325 | + FolderTreeView.Selected | |
326 | + .CustomSort(@SortProc, SORT_TITLE or SORT_DSC, False); | |
327 | + end; | |
328 | +end; | |
329 | +{ | |
330 | +\brief ^Cg̸\[g | |
331 | +} | |
332 | +procedure TFavoriteArrangeDialog.SortAscTitleClick(Sender: TObject); | |
333 | +begin | |
334 | + if (FolderTreeView.Selected <> nil) and | |
335 | + (TObject(FolderTreeView.Selected.Data) is TFavoriteFolder) then begin | |
336 | + FolderTreeView.Selected | |
337 | + .CustomSort(@SortProc, SORT_TITLE or SORT_ASC, False); | |
338 | + end; | |
339 | +end; | |
232 | 340 | |
233 | 341 | end. |
342 | + |
@@ -25,7 +25,6 @@ type | ||
25 | 25 | function CheckAction(Message: Integer; x, y: Integer): Boolean; |
26 | 26 | procedure AddAction(sx, sy: Integer); |
27 | 27 | function AddGesture(Item: string): Integer; |
28 | - procedure ClearGesture; | |
29 | 28 | function Get(Index: integer): string; |
30 | 29 | procedure Put(Index: integer; Item: string); |
31 | 30 | public |
@@ -37,6 +36,7 @@ type | ||
37 | 36 | property GestureCount: Integer read GetGestureCount; |
38 | 37 | property Margin: Integer read FMargin write FMargin; |
39 | 38 | function GetGestureStr: string; |
39 | + procedure Clear; | |
40 | 40 | property OnGestureStart: TNotifyEvent read FOnGestureStart write FOnGestureStart; |
41 | 41 | property OnGestureMove: TNotifyEvent read FOnGestureMove write FOnGestureMove; |
42 | 42 | property OnGestureEnd: TNotifyEvent read FOnGestureEnd write FOnGestureEnd; |
@@ -49,6 +49,9 @@ var | ||
49 | 49 | |
50 | 50 | implementation |
51 | 51 | |
52 | +uses | |
53 | + GikoSystem; | |
54 | + | |
52 | 55 | constructor TMouseGesture.Create; |
53 | 56 | begin |
54 | 57 | inherited; |
@@ -62,7 +65,7 @@ end; | ||
62 | 65 | destructor TMouseGesture.Destroy; |
63 | 66 | begin |
64 | 67 | UnHook; |
65 | - ClearGesture; | |
68 | + Clear; | |
66 | 69 | FGestureItemList.Free; |
67 | 70 | inherited; |
68 | 71 | end; |
@@ -116,8 +119,8 @@ begin | ||
116 | 119 | //}EXWFX`[ÌÎÛÆá¤Æ«ÍAJú·é |
117 | 120 | if (hwnd <> 0) and (hwnd <> FHandle) then begin |
118 | 121 | ReleaseCapture; |
122 | + SetCapture(FHandle); | |
119 | 123 | end; |
120 | - SetCapture(FHandle); | |
121 | 124 | dp := Point(x - FLastPoint.X, y - FLastPoint.Y); |
122 | 125 | sp := Point(Sign(dp.X), Sign(dp.Y)); |
123 | 126 | if (dp.X * dp.X + dp.Y * dp.Y) > (FMargin * FMargin) then begin |
@@ -130,11 +133,19 @@ begin | ||
130 | 133 | FLastTime := GetTickCount; |
131 | 134 | FLastPoint := Point(x, y); |
132 | 135 | end; |
133 | - Result := True; | |
134 | - end; | |
136 | + Result := True; | |
137 | + end; | |
135 | 138 | end; |
136 | 139 | WM_RBUTTONDOWN: begin |
137 | - if not FCancelMode then begin | |
140 | + if (not FCancelMode) then begin | |
141 | + if ( GikoSys.Setting.GestureIgnoreContext ) then begin | |
142 | + //¡}EXðLv`[µÄ¢éÌð¾é | |
143 | + hwnd := GetCapture; | |
144 | + //}EXWFX`[ÌÎÛÆá¤Æ«ÍAJú·é | |
145 | + if (hwnd <> 0) and (hwnd <> FHandle) then begin | |
146 | + Exit; | |
147 | + end; | |
148 | + end; | |
138 | 149 | FBeginGesture := True; |
139 | 150 | FLastTime := 0; |
140 | 151 | FLastPoint := Point(x, y); |
@@ -150,9 +161,11 @@ begin | ||
150 | 161 | FBeginGesture := False; |
151 | 162 | ReleaseCapture; |
152 | 163 | if FGestureItemList.Count <> 0 then begin |
153 | - if Assigned(FOnGestureEnd) then | |
164 | + if Assigned(FOnGestureEnd) then begin | |
154 | 165 | FOnGestureEnd(Self); |
155 | - ClearGesture; | |
166 | + end else begin | |
167 | + Clear; | |
168 | + end; | |
156 | 169 | end else begin |
157 | 170 | FCancelMode := True; |
158 | 171 | //WFX`[¶áÈ©Á½êA}EXDOWN,UPðG~ [g |
@@ -228,7 +241,7 @@ begin | ||
228 | 241 | end; |
229 | 242 | |
230 | 243 | //WFX`[ðNA·é |
231 | -procedure TMouseGesture.ClearGesture; | |
244 | +procedure TMouseGesture.Clear; | |
232 | 245 | begin |
233 | 246 | FGestureItemList.Clear; |
234 | 247 | end; |
@@ -159,7 +159,7 @@ object GikoForm: TGikoForm | ||
159 | 159 | object ToolBar1: TToolBar |
160 | 160 | Left = 2 |
161 | 161 | Top = 4 |
162 | - Width = 15 | |
162 | + Width = 16 | |
163 | 163 | Height = 18 |
164 | 164 | Align = alNone |
165 | 165 | AutoSize = True |
@@ -971,7 +971,7 @@ object GikoForm: TGikoForm | ||
971 | 971 | OnResize = AddressToolBarResize |
972 | 972 | object AddressComboBox: TComboBox |
973 | 973 | Left = 0 |
974 | - Top = 0 | |
974 | + Top = 1 | |
975 | 975 | Width = 177 |
976 | 976 | Height = 20 |
977 | 977 | DropDownCount = 20 |
@@ -4478,6 +4478,9 @@ object GikoForm: TGikoForm | ||
4478 | 4478 | object B4: TMenuItem |
4479 | 4479 | Action = GikoDM.NewBoardAction |
4480 | 4480 | end |
4481 | + object N80: TMenuItem | |
4482 | + Action = GikoDM.NewBoardSearchAction | |
4483 | + end | |
4481 | 4484 | object N7: TMenuItem |
4482 | 4485 | Caption = '-' |
4483 | 4486 | end |
@@ -4520,6 +4523,12 @@ object GikoForm: TGikoForm | ||
4520 | 4523 | object N61: TMenuItem |
4521 | 4524 | Caption = '-' |
4522 | 4525 | end |
4526 | + object N77: TMenuItem | |
4527 | + Action = GikoDM.StoredTaskTrayAction | |
4528 | + end | |
4529 | + object N78: TMenuItem | |
4530 | + Caption = '-' | |
4531 | + end | |
4523 | 4532 | object ExitMenu: TMenuItem |
4524 | 4533 | Action = GikoDM.ExitAction |
4525 | 4534 | end |
@@ -5156,6 +5165,18 @@ object GikoForm: TGikoForm | ||
5156 | 5165 | object LPMSep06: TMenuItem |
5157 | 5166 | Caption = '-' |
5158 | 5167 | end |
5168 | + object SaveThreadFile: TMenuItem | |
5169 | + Caption = #36984#25246#12473#12524#12483#12489#12434#20445#23384#12377#12427 | |
5170 | + object HTML1: TMenuItem | |
5171 | + Action = GikoDM.SelectItemSaveForHTML | |
5172 | + end | |
5173 | + object DAT4: TMenuItem | |
5174 | + Action = GikoDM.SelectItemSaveForDat | |
5175 | + end | |
5176 | + end | |
5177 | + object N79: TMenuItem | |
5178 | + Caption = '-' | |
5179 | + end | |
5159 | 5180 | object ViewPMenu: TMenuItem |
5160 | 5181 | Caption = #34920#31034'(&V)' |
5161 | 5182 | object LargeIconLPMenu: TMenuItem |
@@ -18,14 +18,15 @@ uses | ||
18 | 18 | Editor, RoundData, GikoPanel, Favorite, HTMLDocumentEvent, |
19 | 19 | HintWindow, GikoCoolBar, GikoListView, Search, ExternalBoardManager, |
20 | 20 | ExternalBoardPlugInMain, StdActns, Variants, ExtActns,IdTCPConnection, |
21 | - IdBaseComponent, IdTCPClient, AppEvnts, BrowserRecord; | |
21 | + IdBaseComponent, IdTCPClient, AppEvnts, BrowserRecord, MoveHistoryItem, | |
22 | + ShellAPI,Preview, HistoryList; | |
22 | 23 | |
23 | 24 | const |
24 | 25 | NGWORDNAME_PANEL = 3; |
25 | 26 | THREADSIZE_PANEL = 2; |
26 | 27 | |
27 | 28 | type |
28 | - TGikoTreeType = (gttNone, gtt2ch, gttHistory, gttFavorite); | |
29 | + | |
29 | 30 | TToolBarSettingSenderType = (tssNone, tssMain, tssList, tssBrowser); |
30 | 31 | TMinimizeType = (mtNone, mtMinimizing, mtMinimized); |
31 | 32 | TResizeType = (rtNone, rtResizing); |
@@ -409,6 +410,13 @@ type | ||
409 | 410 | DAT3: TMenuItem; |
410 | 411 | N76: TMenuItem; |
411 | 412 | FavoriteTreeItemNameCopyPopupMenu: TMenuItem; |
413 | + N77: TMenuItem; | |
414 | + N78: TMenuItem; | |
415 | + SaveThreadFile: TMenuItem; | |
416 | + N79: TMenuItem; | |
417 | + HTML1: TMenuItem; | |
418 | + DAT4: TMenuItem; | |
419 | + N80: TMenuItem; | |
412 | 420 | procedure FormCreate(Sender: TObject); |
413 | 421 | procedure FormDestroy(Sender: TObject); |
414 | 422 | procedure BrowserStatusTextChange(Sender: TObject; |
@@ -551,7 +559,7 @@ type | ||
551 | 559 | FClickNode: TTreeNode; |
552 | 560 | FHttpState: Boolean; |
553 | 561 | FHint: TResPopup; |
554 | - FPreviewBrowser: TWebBrowser; | |
562 | + FPreviewBrowser: TPreviewBrowser; | |
555 | 563 | FPreviewURL: string; |
556 | 564 | FBrowserSizeHeight: Integer; |
557 | 565 | FBrowserSizeWidth: Integer; |
@@ -562,7 +570,7 @@ type | ||
562 | 570 | FActiveList: TObject; |
563 | 571 | FActiveContent: TBrowserRecord; // |
564 | 572 | FActiveBBS : TBBS; |
565 | - FHistoryList: TList; //qXgXg | |
573 | + FHistoryList: THistoryList; //qXgXg | |
566 | 574 | FTreeType: TGikoTreeType; |
567 | 575 | FWorkCount: Integer; |
568 | 576 | FNameCookie: string; |
@@ -594,6 +602,7 @@ type | ||
594 | 602 | FOrigenCaption: String; //¨CÉüèc[ÌACeÒWÌÒWO̶ñ |
595 | 603 | FPreviewBrowserRect: TRect; ///< vr [Ì\¦ÊuðL¯·é |
596 | 604 | FActionListGroupIndexes: array of Integer; ///<GikoDMãÌANVXgÌeANVÉÝè³ê½GroupIndexðÛ¶·ézñ |
605 | + | |
597 | 606 | procedure DownloadEnd(Sender: TObject; Item: TDownloadItem); |
598 | 607 | procedure DownloadMsg(Sender: TObject; Item: TDownloadItem; Msg: string; Icon: TGikoMessageIcon); |
599 | 608 | procedure WorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer; Number: Integer; const AWorkTitle: string); |
@@ -665,6 +674,10 @@ type | ||
665 | 674 | procedure RefreshListView(Thread: TThreadItem); |
666 | 675 | //! XbhêÌ\¦ÍÍÝè`FbNNA |
667 | 676 | procedure ClearThreadRengeAction; |
677 | + //! ^XNgCÌACRítH[\¦ | |
678 | + procedure UnStoredTaskTray; | |
679 | + //! XGfB^Ì\¦ñ\¦ | |
680 | + procedure ShowEditors(nCmdShow: Integer); | |
668 | 681 | protected |
669 | 682 | procedure CreateParams(var Params: TCreateParams); override; |
670 | 683 | procedure WndProc(var Message: TMessage); override; |
@@ -677,6 +690,7 @@ type | ||
677 | 690 | LastRoundTime: TDateTime; |
678 | 691 | BrowserNullTab: TBrowserRecord; |
679 | 692 | FControlThread: TThreadControl; |
693 | + FIconData : TNotifyIconData; | |
680 | 694 | procedure MoveToURL(const inURL: string); |
681 | 695 | function InsertBrowserTab(ThreadItem: TThreadItem; ActiveTab: Boolean = True) : TBrowserRecord; |
682 | 696 | procedure ReloadBBS; |
@@ -709,14 +723,9 @@ type | ||
709 | 723 | procedure SetListViewType(AViewType: TGikoViewType); overload; |
710 | 724 | procedure SetListViewType(AViewType: TGikoViewType; SelectText: string; KubetsuChk: Boolean); overload; |
711 | 725 | procedure PlaySound(SoundEventName: string); |
712 | - function AddHistory( FavItem: TFavoriteThreadItem ): Boolean; | |
713 | - procedure ClearHistory; | |
714 | - procedure SaveHistory; | |
715 | - procedure LoadHistory; | |
716 | 726 | procedure ShowBBSTree( inBBS : TBBS ); |
717 | 727 | procedure ShowBBSTreeOld( inBBS : TBBS ); |
718 | 728 | procedure ShowHistoryTree; |
719 | - procedure SetHistoryTreeNode; | |
720 | 729 | procedure AddMessageList(ACaption: string; AObject: TObject; Icon: TGikoMessageIcon); |
721 | 730 | procedure SetBrowserTabState; |
722 | 731 | procedure SetToolBarPopup; |
@@ -788,6 +797,10 @@ type | ||
788 | 797 | //! c[o[ÉXiÝR{{bNXðÝè·é |
789 | 798 | procedure SetSelectComboBox(); |
790 | 799 | |
800 | + //! ^XNgCÉi[µ½ACRðNbNµ½Æ«Ì | |
801 | + procedure TaskTrayIconMessage(var Msg : TMsg); message WM_USER + 2010; | |
802 | + //! ^XNgCÉACRo^tH[Bµ | |
803 | + procedure StoredTaskTray; | |
791 | 804 | published |
792 | 805 | property EnabledCloseButton: Boolean read FEnabledCloseButton write SetEnabledCloseButton; |
793 | 806 | end; |
@@ -820,13 +833,13 @@ implementation | ||
820 | 833 | |
821 | 834 | uses |
822 | 835 | GikoUtil, IndividualAbon, Math, Kotehan, KeySetting, |
823 | - YofUtils, ShellAPI, ToolBarUtil, ToolBarSetting, | |
836 | + YofUtils, ToolBarUtil, ToolBarSetting, | |
824 | 837 | GikoXMLDoc, RoundName, IniFiles, FavoriteAdd, |
825 | - FavoriteArrange, AddressHistory, Preview, Gesture, | |
838 | + FavoriteArrange, AddressHistory, Gesture, | |
826 | 839 | About, Option, Round, Splash, Sort, ListSelect, Imm, |
827 | 840 | NewBoard, MojuUtils, Clipbrd, GikoBayesian,Y_TextConverter, |
828 | 841 | HTMLCreate, ListViewUtils, GikoDataModule, GikoMessage, |
829 | - InputAssistDataModule; | |
842 | + InputAssistDataModule, Types; | |
830 | 843 | |
831 | 844 | const |
832 | 845 | BLANK_HTML: string = 'about:blank'; |
@@ -835,14 +848,13 @@ const | ||
835 | 848 | DandD_THRESHOLD = 5; //D&DÌèlipixcel) |
836 | 849 | //vr [t@C¼ |
837 | 850 | HTML_FILE_NAME = 'temp_preview.html'; |
838 | - ITEM_ICON_THREADLOG1 = 6; //XACRiO èj | |
839 | - ITEM_ICON_THREADLOG2 = 7; //XACRiO èj | |
840 | 851 | //bZ[WID |
841 | 852 | USER_TREECLICK = WM_USER + 2000; |
842 | 853 | USER_RESIZED = WM_USER + 2001; |
843 | 854 | USER_MINIMIZED = WM_USER + 2002; |
844 | 855 | USER_SETLINKBAR = WM_USER + 2003; |
845 | 856 | USER_DOCUMENTCOMPLETE = WM_USER + 2004; ///< wParam : TWebBrowser |
857 | + USER_TASKTRAY = WM_USER + 2010; | |
846 | 858 | {$R *.DFM} |
847 | 859 | |
848 | 860 | procedure TGikoForm.CreateParams(var Params: TCreateParams); |
@@ -889,7 +901,8 @@ begin | ||
889 | 901 | GetGroupIndex(GikoDM.GikoFormActionList); |
890 | 902 | FSearchDialog := nil; |
891 | 903 | CreateBrowsers(BROWSER_COUNT); |
892 | - | |
904 | + FIconData.uID := 0; | |
905 | + | |
893 | 906 | //j [tHg |
894 | 907 | SetMenuFont; |
895 | 908 |
@@ -1119,10 +1132,11 @@ begin | ||
1119 | 1132 | |
1120 | 1133 | |
1121 | 1134 | // qXgXg(LoadHistory æèàæÉs¤±Æ) |
1122 | - FHistoryList := TList.Create; | |
1135 | + FHistoryList := THistoryList.Create; | |
1123 | 1136 | |
1124 | 1137 | // ðÇÝÝ |
1125 | - LoadHistory; | |
1138 | + FHistoryList.LoadFromFile(GikoSys.GetConfigDir + 'History.xml', | |
1139 | + TreeView, FTreeType); | |
1126 | 1140 | |
1127 | 1141 | //¨CÉüèÇÝÝ |
1128 | 1142 | FavoriteDM.SetFavTreeView(FavoriteTreeView); |
@@ -1287,6 +1301,7 @@ begin | ||
1287 | 1301 | |
1288 | 1302 | //üÍAVXg@\Ìú» |
1289 | 1303 | InputAssistDM.Init(GikoSys.GetInputAssistFileName); |
1304 | + | |
1290 | 1305 | end; |
1291 | 1306 | |
1292 | 1307 | // CoolBar ÌÝèðÏÉÛ¶ |
@@ -1596,12 +1611,12 @@ begin | ||
1596 | 1611 | |
1597 | 1612 | //qXgXgÛ¶ |
1598 | 1613 | try |
1599 | - SaveHistory; | |
1614 | + FHistoryList.SaveToFile(GikoSys.GetConfigDir + 'History.xml'); | |
1600 | 1615 | except |
1601 | 1616 | end; |
1602 | 1617 | try |
1603 | 1618 | try |
1604 | - ClearHistory; | |
1619 | + FHistoryList.Clear; | |
1605 | 1620 | except |
1606 | 1621 | end; |
1607 | 1622 | finally |
@@ -1747,8 +1762,8 @@ begin | ||
1747 | 1762 | |
1748 | 1763 | //ðÌÛ¶Æjü |
1749 | 1764 | try |
1750 | - SaveHistory; | |
1751 | - ClearHistory; | |
1765 | + FHistoryList.SaveToFile(GikoSys.GetConfigDir + 'History.xml'); | |
1766 | + FHistoryList.Clear; | |
1752 | 1767 | except |
1753 | 1768 | end; |
1754 | 1769 |
@@ -1799,7 +1814,8 @@ begin | ||
1799 | 1814 | ShowBBSTree( BBSs[ 0 ] ); |
1800 | 1815 | |
1801 | 1816 | // ðÇÝÝ |
1802 | - LoadHistory; | |
1817 | + FHistoryList.LoadFromFile(GikoSys.GetConfigDir + 'History.xml', | |
1818 | + TreeView, FTreeType); | |
1803 | 1819 | |
1804 | 1820 | //¨CÉüèÇÝÝ |
1805 | 1821 | FavoriteDM.ReadFavorite; |
@@ -1870,7 +1886,13 @@ begin | ||
1870 | 1886 | FActiveContent := nil; |
1871 | 1887 | Exit; |
1872 | 1888 | end; |
1873 | - | |
1889 | + // OñƯ¶êI¹ | |
1890 | + if (StatusBar.Panels[1].Text = Text2) then begin | |
1891 | + {$IFDEF DEBUG} | |
1892 | + Writeln('Status Text is not changed!'); | |
1893 | + {$ENDIF} | |
1894 | + Exit; | |
1895 | + end; | |
1874 | 1896 | StatusBar.Panels[1].Text := Text2; |
1875 | 1897 | |
1876 | 1898 | if FHint <> nil then begin |
@@ -1884,6 +1906,8 @@ begin | ||
1884 | 1906 | if not GikoForm.Active then |
1885 | 1907 | Exit; |
1886 | 1908 | |
1909 | + | |
1910 | + | |
1887 | 1911 | //file:///C:/Borland/Projects/gikoNavi/test/read.cgi/qa/990576336/10 |
1888 | 1912 | //file:///C:/Borland/Projects/gikoNavi/test/read.cgi/qa/990576336/10-15 |
1889 | 1913 |
@@ -2519,7 +2543,7 @@ begin | ||
2519 | 2543 | FBrowsers.Move(BROWSER_COUNT - 1, 0); |
2520 | 2544 | end; |
2521 | 2545 | favItem := TFavoriteThreadItem.Create(ThreadItem.URL, ThreadItem.Title ); |
2522 | - if not AddHistory( favItem ) then | |
2546 | + if not FHistoryList.AddHistory( favItem, TreeView, FTreeType ) then | |
2523 | 2547 | favItem.Free; |
2524 | 2548 | |
2525 | 2549 | for i := 0 to BrowserTab.Tabs.Count - 1 do begin |
@@ -2999,209 +3023,10 @@ begin | ||
2999 | 3023 | end; |
3000 | 3024 | end; |
3001 | 3025 | |
3002 | -function TGikoForm.AddHistory( favItem : TFavoriteThreadItem ): Boolean; | |
3003 | -var | |
3004 | - i: Integer; | |
3005 | - Item: TFavoriteThreadItem; | |
3006 | - Node: TTreeNode; | |
3007 | -begin | |
3008 | -// Result := False; | |
3009 | -// if (GetActiveContent = ThreadItem) and | |
3010 | -// (ThreadItem.Count <= ThreadItem.Kokomade) then | |
3011 | -// Exit; | |
3012 | -// if GetActiveContent = ThreadItem then | |
3013 | -// Exit; | |
3014 | - | |
3015 | - Result := True; | |
3016 | - if FTreeType = gttHistory then | |
3017 | - TreeView.Selected := nil; | |
3018 | - | |
3019 | - for i := 0 to FHistoryList.Count - 1 do begin | |
3020 | - if TObject(FHistoryList[i]) is TFavoriteThreadItem then begin | |
3021 | - Item := TFavoriteThreadItem(FHistoryList[i]); | |
3022 | - if Item.URL = favItem.URL then begin | |
3023 | -// SetContent(ThreadItem); | |
3024 | - FHistoryList.Move(i, 0); | |
3025 | - if FTreeType = gttHistory then | |
3026 | - if TreeView.Items.GetFirstNode <> TreeView.Items[ i ] then | |
3027 | - TreeView.Items[ i ].MoveTo( TreeView.Items.GetFirstNode, naInsert ); | |
3028 | - Result := false; | |
3029 | - Exit; | |
3030 | - end; | |
3031 | - end; | |
3032 | - end; | |
3033 | - | |
3034 | - if FHistoryList.Count > 0 then | |
3035 | - FHistoryList.Insert( 0, favItem ) | |
3036 | - else | |
3037 | - FHistoryList.Add( favItem ); | |
3038 | -// SetContent(ThreadItem); | |
3039 | -// while GikoSys.Setting.AddressHistoryCount < FHistoryList.Count do begin | |
3040 | - while GikoSys.Setting.MaxRecordCount < FHistoryList.Count do begin | |
3041 | - i := FHistoryList.Count - 1; | |
3042 | - TObject( FHistoryList.Items[ i ] ).Free; | |
3043 | - FHistoryList.Delete( i ); | |
3044 | - end; | |
3045 | - | |
3046 | - if FTreeType = gttHistory then begin | |
3047 | - Node := TreeView.Items.Add( nil, favItem.Title ); | |
3048 | - Node.MoveTo( TreeView.Items.GetFirstNode, naInsert ); | |
3049 | - { | |
3050 | - if favItem.NewArrival then begin | |
3051 | - Node.ImageIndex := ITEM_ICON_THREADNEW1; | |
3052 | - Node.SelectedIndex := ITEM_ICON_THREADNEW2; | |
3053 | - end else begin | |
3054 | - Node.ImageIndex := ITEM_ICON_THREADLOG1; | |
3055 | - Node.SelectedIndex := ITEM_ICON_THREADLOG2; | |
3056 | - end; | |
3057 | - } | |
3058 | - // ×𩯽ȢÌÅ NewArrival Ì`FbNðsíÈ¢ | |
3059 | - // ¦favItem.Item vpeBÍ dat ÌÇÝÝðKvÆ·é | |
3060 | - Node.ImageIndex := ITEM_ICON_THREADLOG1; | |
3061 | - Node.SelectedIndex := ITEM_ICON_THREADLOG2; | |
3062 | - Node.Data := favItem; | |
3063 | - //while GikoSys.Setting.AddressHistoryCount < TreeView.Items.Count do begin | |
3064 | - while GikoSys.Setting.MaxRecordCount < TreeView.Items.Count do begin | |
3065 | - i := TreeView.Items.Count - 1; | |
3066 | - TreeView.Items.Item[ i ].Delete; | |
3067 | - end; | |
3068 | - end; | |
3069 | -end; | |
3070 | - | |
3026 | +//ð©çí | |
3071 | 3027 | procedure TGikoForm.DeleteHistory( threadItem: TThreadItem ); |
3072 | -var | |
3073 | - i: Integer; | |
3074 | - node: TTreeNode; | |
3075 | -begin | |
3076 | - // LrlbgÉðª\¦³êÄ¢½çA | |
3077 | - // LrlbgàÌACeàí·éB | |
3078 | - if (FTreeType = gttHistory) then begin | |
3079 | - node := TreeView.Items.GetFirstNode; | |
3080 | - while (node <> nil) do begin | |
3081 | - if ( TFavoriteThreadItem(node.Data).Item = threadItem ) then begin | |
3082 | - TreeView.Items.Delete(node); | |
3083 | - TreeView.Refresh; | |
3084 | - node := nil; | |
3085 | - end else begin | |
3086 | - node := node.GetNext; | |
3087 | - end; | |
3088 | - end; | |
3089 | - end; | |
3090 | - for i := 0 to FHistoryList.Count - 1 do begin | |
3091 | - if threadItem = TFavoriteThreadItem( FHistoryList.Items[i] ).Item then begin | |
3092 | - TFavoriteThreadItem( FHistoryList.Items[ i ] ).Free; | |
3093 | - FHistoryList.Delete(i); | |
3094 | - FHistoryList.Capacity := FHistoryList.Count; | |
3095 | - Break; | |
3096 | - end; | |
3097 | - end; | |
3098 | -end; | |
3099 | - | |
3100 | -procedure TGikoForm.ClearHistory; | |
3101 | -var | |
3102 | - i : Integer; | |
3103 | -begin | |
3104 | - //FHistoryList.Clear; | |
3105 | - | |
3106 | - try | |
3107 | - for i := FHistoryList.Count - 1 downto 0 do begin | |
3108 | - if TObject(FHistoryList[ i ]) is TFavoriteThreadItem then | |
3109 | - TFavoriteThreadItem(FHistoryList[ i ]).Free | |
3110 | - else if TObject(FHistoryList[ i ]) is TFavoriteBoardItem then | |
3111 | - TFavoriteBoardItem(FHistoryList[ i ]).Free; | |
3112 | - | |
3113 | - //FHistoryList.Delete(i); | |
3114 | - end; | |
3115 | - except | |
3116 | - end; | |
3117 | - | |
3118 | - FHistoryList.Clear; | |
3119 | - FHistoryList.Capacity := FHistoryList.Count; | |
3120 | - | |
3121 | -end; | |
3122 | - | |
3123 | -procedure TGikoForm.SaveHistory; | |
3124 | -var | |
3125 | - i, bound : Integer; | |
3126 | - saveList : TstringList; | |
3127 | -begin | |
3128 | - | |
3129 | - saveList := TStringList.Create; | |
3130 | - try | |
3131 | - FHistoryList.Pack; | |
3132 | - FHistoryList.Capacity := FHistoryList.Count; | |
3133 | - saveList.Add('<?xml version="1.0" encoding="Shift_JIS" standalone="yes"?>'); | |
3134 | - saveList.Add('<address>'); | |
3135 | - bound := FHistoryList.Count - 1; | |
3136 | - for i := bound downto 0 do begin | |
3137 | - // title Í¡ÌƱëgÁĢȢ | |
3138 | - saveList.Add( | |
3139 | - '<history url="' + HtmlEncode( TFavoriteThreadItem( FHistoryList[ i ] ).URL ) + '"' + | |
3140 | - ' title="' + HtmlEncode( MojuUtils.Sanitize(TFavoriteThreadItem( FHistoryList[ i ] ).Title )) + '"/>'); | |
3141 | - end; | |
3142 | - saveList.Add('</address>'); | |
3143 | - saveList.SaveToFile( GikoSys.GetConfigDir + 'History.xml' ); | |
3144 | - finally | |
3145 | - saveList.Free; | |
3146 | - end; | |
3147 | - | |
3148 | -end; | |
3149 | - | |
3150 | -procedure TGikoForm.LoadHistory; | |
3151 | -var | |
3152 | - i, bound : Integer; | |
3153 | - fileName : string; | |
3154 | - XMLDoc : IXMLDocument; | |
3155 | - XMLNode : IXMLNode; | |
3156 | - HistoryNode : IXMLNode; | |
3157 | - s : string; | |
3158 | - favItem : TFavoriteThreadItem; | |
3159 | -{$IFDEF DEBUG} | |
3160 | - st, rt : Cardinal; | |
3161 | -{$ENDIF} | |
3162 | 3028 | begin |
3163 | -{$IFDEF DEBUG} | |
3164 | - st := GetTickCount; | |
3165 | -{$ENDIF} | |
3166 | - | |
3167 | - fileName := GikoSys.GetConfigDir + 'History.xml'; | |
3168 | - | |
3169 | - if FileExists( fileName ) then begin | |
3170 | - try | |
3171 | - XMLDoc := IXMLDocument.Create; | |
3172 | - //XMLDoc := LoadXMLDocument(FileName); | |
3173 | - LoadXMLDocument(FileName, XMLDoc); | |
3174 | - try | |
3175 | - XMLNode := XMLDoc.DocumentElement; | |
3176 | - | |
3177 | - if XMLNode.NodeName = 'address' then begin | |
3178 | - bound := XMLNode.ChildNodes.Count - 1; | |
3179 | - for i := 0 to bound do begin | |
3180 | - HistoryNode := XMLNode.ChildNodes[i]; | |
3181 | - if HistoryNode.NodeName = 'history' then begin | |
3182 | - //if FReadCount >= sl.Count then begin | |
3183 | - s := Trim(HistoryNode.Attributes['url']); | |
3184 | - if s <> '' then begin | |
3185 | - favItem := TFavoriteThreadItem.Create( | |
3186 | - s, MojuUtils.UnSanitize(HistoryNode.Attributes[ 'title' ]) ); | |
3187 | - if not AddHistory( favItem ) then | |
3188 | - favItem.Free; | |
3189 | - end; | |
3190 | - //end; | |
3191 | - end; | |
3192 | - end; | |
3193 | - end; | |
3194 | - finally | |
3195 | - XMLDoc.Free; | |
3196 | - end; | |
3197 | - except | |
3198 | - end; | |
3199 | - end; | |
3200 | -{$IFDEF DEBUG} | |
3201 | - rt := GetTickCount - st; | |
3202 | - Writeln('Runtime(Load Histroy) : ' + IntToStr(rt) + ' ms'); | |
3203 | -{$ENDIF} | |
3204 | - | |
3029 | + FHistoryList.DeleteHistory( threadItem, TreeView, TreeType ); | |
3205 | 3030 | end; |
3206 | 3031 | |
3207 | 3032 | procedure TGikoForm.ShowBBSTreeOld( |
@@ -3363,43 +3188,11 @@ begin | ||
3363 | 3188 | FTreeType := gttHistory; |
3364 | 3189 | HistoryToolBar.Show; |
3365 | 3190 | FavoriteToolBar.Hide; |
3366 | - SetHistoryTreeNode; | |
3191 | + FHistoryList.SetTreeNode( TreeView ); | |
3367 | 3192 | CabinetSelectToolButton.Caption := 'ðXg'; |
3368 | 3193 | end; |
3369 | 3194 | end; |
3370 | 3195 | |
3371 | -procedure TGikoForm.SetHistoryTreeNode; | |
3372 | -var | |
3373 | - i: Integer; | |
3374 | - Node: TTreeNode; | |
3375 | - Item: TFavoriteThreadItem; | |
3376 | -begin | |
3377 | - TreeView.Items.BeginUpdate; | |
3378 | - try | |
3379 | - TreeView.Items.Clear; | |
3380 | - for i := 0 to FHistoryList.Count - 1 do begin | |
3381 | - Item := TFavoriteThreadItem(FHistoryList[i]); | |
3382 | - Node := TreeView.Items.Add(nil, Item.Title); | |
3383 | - { | |
3384 | - if Item.Item.NewArrival then begin | |
3385 | - Node.ImageIndex := ITEM_ICON_THREADNEW1; | |
3386 | - Node.SelectedIndex := ITEM_ICON_THREADNEW2; | |
3387 | - end else begin | |
3388 | - Node.ImageIndex := ITEM_ICON_THREADLOG1; | |
3389 | - Node.SelectedIndex := ITEM_ICON_THREADLOG2; | |
3390 | - end; | |
3391 | - } | |
3392 | - // ×𩯽ȢÌÅ NewArrival Ì`FbNðsíÈ¢ | |
3393 | - // ¦Item.Item vpeBÍ dat ÌÇÝÝðKvÆ·é | |
3394 | - Node.ImageIndex := ITEM_ICON_THREADLOG1; | |
3395 | - Node.SelectedIndex := ITEM_ICON_THREADLOG2; | |
3396 | - Node.Data := Item; | |
3397 | - end; | |
3398 | - finally | |
3399 | - TreeView.Items.EndUpdate; | |
3400 | - end; | |
3401 | -end; | |
3402 | - | |
3403 | 3196 | procedure TGikoForm.SelectTreeNode(Item: TObject; CallEvent: Boolean); |
3404 | 3197 | var |
3405 | 3198 | ChangeEvent: TTVChangedEvent; |
@@ -3782,7 +3575,7 @@ begin | ||
3782 | 3575 | LPMSep06.Visible := bCategory or bBoard; |
3783 | 3576 | BoardFavoriteAddMenu.Visible := bCategory; |
3784 | 3577 | ThreadFavoriteAddMenu.Visible := bBoard; |
3785 | - | |
3578 | + SaveThreadFile.Visible := bBoard; | |
3786 | 3579 | AddRoundNameMenu(ItemReservPMenu); |
3787 | 3580 | AddRoundNameMenu(ListReservPMenu); |
3788 | 3581 | end; |
@@ -3884,15 +3677,17 @@ var | ||
3884 | 3677 | wkIntTo: Integer; |
3885 | 3678 | BNum, BRes: string; |
3886 | 3679 | threadItem: TThreadItem; |
3680 | + aElement : IHTMLElement; | |
3887 | 3681 | begin |
3888 | - | |
3889 | 3682 | Cancel := True; |
3890 | - if (IHTMLDocument2(TWebBrowser(Sender).Document).activeElement <> nil) then begin | |
3891 | - Text := IHTMLDocument2(TWebBrowser(Sender).Document).activeElement.Get_outerText; | |
3892 | - Html := IHTMLDocument2(TWebBrowser(Sender).Document).activeElement.Get_outerHTML; | |
3683 | + aElement := IHTMLDocument2(TWebBrowser(Sender).Document).activeElement; | |
3684 | + if ( aElement <> nil) then begin | |
3685 | + Text := aElement.Get_outerText; | |
3686 | + Html := aElement.Get_outerHTML; | |
3893 | 3687 | if(AnsiPos('>>', Text) = 1) or (AnsiPos('>', Text) = 1) |
3894 | 3688 | or (AnsiPos('', Text) = 1) or (AnsiPos('', Text) = 1) then begin |
3895 | 3689 | if GikoSys.Setting.ResAnchorJamp then begin |
3690 | + | |
3896 | 3691 | Text := ZenToHan(Trim(Text)); |
3897 | 3692 | |
3898 | 3693 | if(AnsiPos('>>', Text) = 1) then begin |
@@ -3915,6 +3710,7 @@ begin | ||
3915 | 3710 | |
3916 | 3711 | if wkIntSt <> 0 then begin |
3917 | 3712 | FActiveContent.IDAnchorPopup(''); |
3713 | + MoveHisotryManager.pushItem(FActiveContent); | |
3918 | 3714 | BrowserMovement(IntToStr(wkIntSt)); |
3919 | 3715 | end; |
3920 | 3716 |
@@ -3948,6 +3744,7 @@ begin | ||
3948 | 3744 | AddressComboBox.Items.Insert(0, URL); |
3949 | 3745 | end; |
3950 | 3746 | end; |
3747 | + MoveHisotryManager.pushItem(FActiveContent); | |
3951 | 3748 | MoveToURL( URL ); |
3952 | 3749 | end; |
3953 | 3750 | end; |
@@ -4146,6 +3943,7 @@ procedure TGikoForm.BrowserTabDragDrop(Sender, Source: TObject; X, | ||
4146 | 3943 | var |
4147 | 3944 | idx: Integer; |
4148 | 3945 | begin |
3946 | + FDragWFirst := False; | |
4149 | 3947 | idx := BrowserTab.IndexOfTabAt(X, Y); |
4150 | 3948 | if idx <> -1 then |
4151 | 3949 | BrowserTab.Tabs.Move(BrowserTab.TabIndex, idx); |
@@ -4160,14 +3958,11 @@ begin | ||
4160 | 3958 | |
4161 | 3959 | TabIdx := BrowserTab.IndexOfTabAt(x, y); |
4162 | 3960 | |
4163 | - if ( ssLeft in Shift ) and ( BrowserTab.Style = tsTabs ) then begin | |
4164 | - if FDragWFirst = false then begin | |
4165 | - FDragWFirst := true; | |
4166 | - end else begin | |
3961 | + if ( ssLeft in Shift ) then begin | |
3962 | + if (FDragWFirst) then begin | |
4167 | 3963 | BrowserTab.EndDrag(false); |
4168 | 3964 | BrowserTab.BeginDrag(false, DandD_THRESHOLD); |
4169 | - FDragWFirst := false; | |
4170 | - end; | |
3965 | + end; | |
4171 | 3966 | end else begin |
4172 | 3967 | BrowserTab.EndDrag(false); |
4173 | 3968 | FDragWFirst := false; |
@@ -4823,14 +4618,21 @@ begin | ||
4823 | 4618 | if not (ssAlt in KeyDataToShiftState(TWMChar(Message).KeyData)) then |
4824 | 4619 | Exit; |
4825 | 4620 | WM_SYSCOMMAND: |
4826 | - if Message.WParam = SC_MINIMIZE then | |
4621 | + if Message.WParam = SC_MINIMIZE then begin | |
4827 | 4622 | OnMinimize; |
4623 | + PostMessage(Handle, USER_MINIMIZED, 0, 0); | |
4624 | + end; | |
4828 | 4625 | USER_TREECLICK: |
4829 | 4626 | TreeClick( TreeView.Selected ); |
4830 | 4627 | USER_RESIZED: |
4831 | 4628 | OnResized; |
4832 | 4629 | USER_MINIMIZED: |
4833 | - OnMinimized; | |
4630 | + begin | |
4631 | + if (GikoSys.Setting.StoredTaskTray) then begin | |
4632 | + StoredTaskTray; | |
4633 | + end; | |
4634 | + OnMinimized; | |
4635 | + end; | |
4834 | 4636 | USER_SETLINKBAR: |
4835 | 4637 | SetLinkBar; |
4836 | 4638 | USER_DOCUMENTCOMPLETE: |
@@ -4894,128 +4696,35 @@ procedure TGikoForm.PreviewTimerTimer(Sender: TObject); | ||
4894 | 4696 | var |
4895 | 4697 | p: TPoint; |
4896 | 4698 | ARect: TRect; |
4897 | - sl: TStringList; | |
4898 | - html: string; | |
4899 | - HtmlFileName: string; | |
4900 | - | |
4901 | - NavURL: OleVariant; | |
4902 | - Flags: OleVariant; | |
4903 | - TargetFrameName: OleVariant; | |
4904 | - PostData: OleVariant; | |
4905 | - Headers: OleVariant; | |
4906 | - WindowHeight: Integer; | |
4907 | - WindowWidth: Integer; | |
4908 | - | |
4909 | -// Style: Longint; | |
4910 | - Referer: string; | |
4911 | - Protocol, Host, Path, Document, Port, Bookmark: string; | |
4912 | 4699 | begin |
4913 | 4700 | PreviewTimer.Enabled := False; |
4914 | 4701 | |
4915 | 4702 | GetCursorpos(p); |
4916 | 4703 | |
4917 | - case GikoSys.Setting.PreviewSize of | |
4918 | - gpsXSmall: begin | |
4919 | - WindowWidth := 128; | |
4920 | - WindowHeight := 96; | |
4921 | - end; | |
4922 | - gpsSmall: begin | |
4923 | - WindowWidth := 256; | |
4924 | - WindowHeight := 192; | |
4925 | - end; | |
4926 | - gpsLarge: begin | |
4927 | - WindowWidth := 512; | |
4928 | - WindowHeight := 384; | |
4929 | - end; | |
4930 | - gpsXLarge: begin | |
4931 | - WindowWidth := 640; | |
4932 | - WindowHeight := 480; | |
4933 | - end; | |
4934 | - else begin //gpsMedium | |
4935 | - WindowWidth := 384; | |
4936 | - WindowHeight := 288; | |
4937 | - end; | |
4938 | - end; | |
4939 | - | |
4940 | - ARect := Rect(0, 0, WindowWidth, WindowHeight); | |
4941 | - | |
4942 | - case GikoSys.Setting.PopupPosition of | |
4943 | - gppRightTop: OffsetRect(ARect, p.x - (ARect.Right - ARect.Left) - 15, p.y - (ARect.Bottom - ARect.Top) - 15); | |
4944 | - gppRight: OffsetRect(ARect, p.x - (ARect.Right - ARect.Left) - 15, p.y - ((ARect.Bottom - ARect.Top) div 2)); | |
4945 | - gppRightBottom: OffsetRect(ARect, p.x - (ARect.Right - ARect.Left) - 15, p.y + 15); | |
4946 | - gppTop: OffsetRect(ARect, p.x - ((ARect.Right - ARect.Left) div 2), p.y - (ARect.Bottom - ARect.Top) - 15); | |
4947 | - gppCenter: OffsetRect(ARect, p.x - ((ARect.Right - ARect.Left) div 2), p.y - ((ARect.Bottom - ARect.Top) div 2)); | |
4948 | - gppBottom: OffsetRect(ARect, p.x - ((ARect.Right - ARect.Left) div 2), p.y + 15); | |
4949 | - gppLeftTop: OffsetRect(ARect, p.x + 15, p.y - (ARect.Bottom - ARect.Top) - 15); | |
4950 | - gppLeft: OffsetRect(ARect, p.x + 15, p.y - ((ARect.Bottom - ARect.Top) div 2)); | |
4951 | - gppLeftBottom: OffsetRect(ARect, p.x + 15, p.y + 15); //MRirX p[gPÌ453É´Ó | |
4952 | - end; | |
4953 | - | |
4954 | - html := '<html><head>'#13#10 | |
4955 | - + '<SCRIPT>'#13#10 | |
4956 | - + 'function init() {'#13#10 | |
4957 | - + ' if ((document.body.clientHeight >= Image1.height) && (document.body.clientWidth >= Image1.width)) {'#13#10 | |
4958 | - + ' } else {'#13#10 | |
4959 | - + ' var dh, ih;'#13#10 | |
4960 | - + ' dh = document.body.clientWidth / document.body.clientHeight;'#13#10 | |
4961 | - + ' ih = Image1.width / Image1.height;'#13#10 | |
4962 | - + ' if (document.body.clientWidth < document.body.clientHeight) {'#13#10 | |
4963 | - + ' if (ih > dh)'#13#10 | |
4964 | - + ' Image1.width = document.body.clientWidth;'#13#10 | |
4965 | - + ' else'#13#10 | |
4966 | - + ' Image1.height = document.body.clientHeight;'#13#10 | |
4967 | - + ' } else {'#13#10 | |
4968 | - + ' if (ih < dh)'#13#10 | |
4969 | - + ' Image1.height = document.body.clientHeight;'#13#10 | |
4970 | - + ' else'#13#10 | |
4971 | - + ' Image1.width = document.body.clientWidth;'#13#10 | |
4972 | - + ' }'#13#10 | |
4973 | - + ' }'#13#10 | |
4974 | - + ' Message.style.display = "none";'#13#10 | |
4975 | - + '}'#13#10 | |
4976 | - + '</SCRIPT>'#13#10 | |
4977 | - + '</head>'#13#10 | |
4978 | - + '<body topmargin="0" leftmargin="0" style="border-width: 1px; overflow:hidden; border-style: solid;" onLoad="init()">'#13#10 | |
4979 | - + '<div align="center" id="Message">vr [ì¬</div>'#13#10 | |
4980 | - + '<div align="center"><img name="Image1" border="0" src="%ImageURL%"></div>'#13#10 | |
4981 | - + '</body></html>'; | |
4982 | - sl := TStringList.Create; | |
4983 | - try | |
4984 | - try | |
4985 | - HtmlFileName := GikoSys.GetAppDir + HTML_FILE_NAME; | |
4986 | - sl.Text := AnsiReplaceStr(html, '%ImageURL%', FPreviewURL); | |
4987 | - sl.SaveToFile(HtmlFileName); | |
4988 | - finally | |
4989 | - sl.Free; | |
4990 | - end; | |
4991 | - except | |
4992 | - end; | |
4704 | + ARect := FPreviewBrowser.GetWindowRect(p); | |
4705 | + | |
4706 | + FPreviewBrowser.PreviewImage(FPreviewURL); | |
4707 | + | |
4708 | + if ARect.Bottom > Screen.DesktopHeight then begin | |
4709 | + OffsetRect(ARect, 0, -(ARect.Bottom - Screen.DesktopHeight)); | |
4710 | + end; | |
4711 | + if (ARect.Right > Screen.DesktopWidth) then begin | |
4712 | + OffsetRect(ARect, -(ARect.Right - Screen.DesktopWidth), 0); | |
4713 | + end; | |
4714 | + if (ARect.Left < Screen.DesktopLeft) then begin | |
4715 | + OffsetRect(ARect, +(Screen.DesktopLeft - ARect.Left), 0); | |
4716 | + end; | |
4717 | + if (ARect.Top < Screen.DesktopTop) then begin | |
4718 | + OffsetRect(ARect, 0, (Screen.DesktopTop - ARect.Top)); | |
4719 | + end; | |
4720 | + | |
4721 | + SetWindowPos(FPreviewBrowser.Handle, HWND_TOPMOST, | |
4722 | + ARect.Left, ARect.Top, | |
4723 | + (ARect.Right - ARect.Left), (ARect.Bottom - ARect.Top), | |
4724 | + SWP_NOACTIVATE or SWP_HIDEWINDOW); | |
4993 | 4725 | |
4994 | - NavURL := HtmlFileName; | |
4995 | - Flags := 0; | |
4996 | - TargetFrameName := ''; | |
4997 | - PostData := ''; | |
4998 | - | |
4999 | - GikoSys.ParseURI(FPreviewURL, Protocol, Host, Path, Document, Port, Bookmark); | |
5000 | - Referer := Protocol + '://' + Host; | |
5001 | - if Port <> '' then | |
5002 | - Referer := Referer + ':' + Port; | |
5003 | - Referer := Referer + Path; | |
5004 | - Headers := 'Referer: ' + Referer; | |
5005 | - FPreviewBrowser.Navigate(NavURL, Flags, TargetFrameName, PostData, Headers); | |
5006 | - if ARect.Top + WindowHeight > Screen.DesktopHeight then | |
5007 | - ARect.Top := Screen.DesktopHeight - WindowHeight; | |
5008 | - if ARect.Left + WindowWidth > Screen.DesktopWidth then | |
5009 | - ARect.Left := Screen.DesktopWidth - WindowWidth; | |
5010 | - if ARect.Left < Screen.DesktopLeft then ARect.Left := Screen.DesktopLeft; | |
5011 | - if ARect.Bottom < Screen.DesktopTop then ARect.Bottom := Screen.DesktopTop; | |
5012 | - | |
5013 | - SetWindowPos(FPreviewBrowser.Handle, HWND_TOPMOST, ARect.Left, ARect.Top, WindowWidth, WindowHeight, SWP_NOACTIVATE or SWP_HIDEWINDOW); | |
5014 | 4726 | ShowWindow(FPreviewBrowser.Handle, SW_SHOWNOACTIVATE); |
5015 | 4727 | FPreviewBrowserRect := ARect; |
5016 | -// Style := GetWindowLong(FPreviewBrowser.Handle, GWL_EXSTYLE); | |
5017 | -// SetWindowLong(FPreviewBrowser.Handle, GWL_EXSTYLE, Style xor WS_EX_APPWINDOW); | |
5018 | - | |
5019 | 4728 | end; |
5020 | 4729 | |
5021 | 4730 | procedure TGikoForm.WMSetCursor(var Message: TWMSetCursor); |
@@ -5135,7 +4844,6 @@ begin | ||
5135 | 4844 | if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then |
5136 | 4845 | if MsgBox(Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then |
5137 | 4846 | Exit; |
5138 | - ClearHistory; | |
5139 | 4847 | FHistoryList.Clear; |
5140 | 4848 | TreeView.Items.Clear; |
5141 | 4849 | end; |
@@ -6346,24 +6054,18 @@ end; | ||
6346 | 6054 | procedure TGikoForm.BrowserTabMouseUp(Sender: TObject; |
6347 | 6055 | Button: TMouseButton; Shift: TShiftState; X, Y: Integer); |
6348 | 6056 | begin |
6349 | - if FDragWFirst <> true then begin | |
6057 | + if FDragWFirst = true then | |
6350 | 6058 | FDragWFirst := false; |
6351 | -{ | |
6352 | - end else if (abs( X - FMouseDownPos.X ) < Mouse.DragThreshold) | |
6353 | - and (abs( Y - FMouseDownPos.Y ) < Mouse.DragThreshold) then begin | |
6354 | -(*} | |
6355 | - end else begin | |
6356 | -//*) | |
6357 | - if GikoSys.Setting.ListOrientation = gloHorizontal then begin | |
6358 | - if GikoSys.Setting.ListWidthState = glsMin then begin | |
6359 | - GikoDM.BrowserMaxAndFocusAction.Execute; | |
6360 | - end; | |
6361 | - end else begin | |
6362 | - if GikoSys.Setting.ListHeightState = glsMin then begin | |
6363 | - GikoDM.BrowserMaxAndFocusAction.Execute; | |
6364 | - end; | |
6365 | - end; | |
6366 | - end; | |
6059 | + | |
6060 | + if GikoSys.Setting.ListOrientation = gloHorizontal then begin | |
6061 | + if GikoSys.Setting.ListWidthState = glsMin then begin | |
6062 | + GikoDM.BrowserMaxAndFocusAction.Execute; | |
6063 | + end; | |
6064 | + end else begin | |
6065 | + if GikoSys.Setting.ListHeightState = glsMin then begin | |
6066 | + GikoDM.BrowserMaxAndFocusAction.Execute; | |
6067 | + end; | |
6068 | + end; | |
6367 | 6069 | end; |
6368 | 6070 | |
6369 | 6071 | procedure TGikoForm.LinkToolBarDragOver(Sender, Source: TObject; X, |
@@ -7088,6 +6790,7 @@ var | ||
7088 | 6790 | Action: TAction; |
7089 | 6791 | begin |
7090 | 6792 | s := MouseGesture.GetGestureStr; |
6793 | + MouseGesture.Clear; | |
7091 | 6794 | Action := GikoSys.Setting.Gestures.GetGestureAction(s); |
7092 | 6795 | if Action <> nil then |
7093 | 6796 | Action.Execute; |
@@ -7436,7 +7139,9 @@ begin | ||
7436 | 7139 | WM_KEYFIRST..WM_KEYLAST : |
7437 | 7140 | begin |
7438 | 7141 | //L[Abvͳ·é@KeyDownÆí¹ÄQñÄÎêé©ç |
7439 | - if (Msg.message <> WM_KEYUP) and (Msg.message <> WM_CHAR) then begin | |
7142 | + if (Msg.message <> WM_KEYUP) | |
7143 | + and (Msg.message <> WM_CHAR) | |
7144 | + and (Msg.message <> WM_SYSKEYUP) then begin | |
7440 | 7145 | wmMsg.Msg := Msg.message; |
7441 | 7146 | wmMsg.CharCode := Word(Msg.wParam); |
7442 | 7147 | wmMsg.KeyData := Msg.lParam; |
@@ -7696,6 +7401,69 @@ begin | ||
7696 | 7401 | end; |
7697 | 7402 | end; |
7698 | 7403 | |
7404 | +procedure TGikoForm.TaskTrayIconMessage(var Msg: TMsg); | |
7405 | +begin | |
7406 | + // ¶NbNÈç³·é | |
7407 | + if (Msg.wParam = WM_LBUTTONUP) then begin | |
7408 | + UnStoredTaskTray; | |
7409 | + end; | |
7410 | +end; | |
7411 | +//! ^XNgCÉACRo^tH[Bµ | |
7412 | +procedure TGikoForm.StoredTaskTray; | |
7413 | +begin | |
7414 | + try | |
7415 | + if (FIconData.uID = 0) then begin | |
7416 | + FIconData.cbSize := SizeOf(TNotifyIconData); | |
7417 | + FIconData.uID := Self.Handle; | |
7418 | + FIconData.Wnd := Handle; | |
7419 | + FIconData.uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP; | |
7420 | + FIconData.uCallbackMessage := USER_TASKTRAY; | |
7421 | + FIconData.hIcon := Application.Icon.Handle; {ACRwè} | |
7422 | + FIconData.szTip := 'MRir'; {qg¶ñ} | |
7423 | + Shell_NotifyIcon(NIM_ADD, @FIconData); | |
7424 | + ShowEditors(SW_HIDE); | |
7425 | + ShowWindow(Self.Handle, SW_HIDE); | |
7426 | + end; | |
7427 | + except | |
7428 | + end; | |
7429 | +end; | |
7430 | +//! ^XNgCÌACRítH[\¦ | |
7431 | +procedure TGikoForm.UnStoredTaskTray; | |
7432 | +begin | |
7433 | + try | |
7434 | + try | |
7435 | + Shell_NotifyIcon(NIM_DELETE, @FIconData); | |
7436 | + SetForegroundWindow(Application.Handle); | |
7437 | + except | |
7438 | + end; | |
7439 | + finally | |
7440 | + FIconData.uID := 0; | |
7441 | + // Action©çi[µ½Æ«ÍTagÌlÍ0ÈO | |
7442 | + if (GikoDM.StoredTaskTrayAction.Tag = 0) then begin | |
7443 | + ShowWindow(Self.Handle, SW_RESTORE); | |
7444 | + end else begin | |
7445 | + ShowWindow(Self.Handle, SW_SHOW); | |
7446 | + end; | |
7447 | + ShowEditors(SW_SHOW); | |
7448 | + GikoDM.StoredTaskTrayAction.Tag := 0; | |
7449 | + end; | |
7450 | +end; | |
7451 | +{ | |
7452 | +\brief XGfB^Ì\¦ñ\¦ | |
7453 | +\param nCmdShow Windows.ShowWindowÉép[^Ư¶ | |
7454 | +} | |
7455 | +procedure TGikoForm.ShowEditors(nCmdShow: Integer); | |
7456 | +var | |
7457 | + i : Integer; | |
7458 | +begin | |
7459 | + // XGfB^ðT· | |
7460 | + for i := 0 to Screen.CustomFormCount - 1 do begin | |
7461 | + if TObject(Screen.CustomForms[i]) is TEditorForm then | |
7462 | + ShowWindow(Screen.CustomForms[i].Handle, nCmdShow); | |
7463 | + | |
7464 | + end; | |
7465 | +end; | |
7466 | + | |
7699 | 7467 | initialization |
7700 | 7468 | OleInitialize(nil); |
7701 | 7469 | finalization |
@@ -1,7 +1,7 @@ | ||
1 | 1 | object GikoDM: TGikoDM |
2 | 2 | OldCreateOrder = False |
3 | 3 | OnCreate = DataModuleCreate |
4 | - Left = 660 | |
4 | + Left = 514 | |
5 | 5 | Top = 170 |
6 | 6 | Height = 336 |
7 | 7 | Width = 286 |
@@ -696,7 +696,7 @@ object GikoDM: TGikoDM | ||
696 | 696 | Hint = #24038#12398#12479#12502#12434#36984#25246#12377#12427 |
697 | 697 | ImageIndex = 48 |
698 | 698 | OnExecute = LeftTabSelectActionExecute |
699 | - OnUpdate = LeftmostTabSelectActionUpdate | |
699 | + OnUpdate = LeftTabSelectActionUpdate | |
700 | 700 | end |
701 | 701 | object RightTabSelectAction: TAction |
702 | 702 | Category = #12473#12524#12483#12489 |
@@ -712,7 +712,7 @@ object GikoDM: TGikoDM | ||
712 | 712 | Hint = #19968#30058#21491#12398#12479#12502#12434#36984#25246#12377#12427 |
713 | 713 | ImageIndex = 49 |
714 | 714 | OnExecute = RightmostTabSelectActionExecute |
715 | - OnUpdate = RightTabSelectActionUpdate | |
715 | + OnUpdate = RightmostTabSelectActionUpdate | |
716 | 716 | end |
717 | 717 | object FavoriteAddAction: TAction |
718 | 718 | Category = #12362#27671#12395#20837#12426 |
@@ -1235,6 +1235,82 @@ object GikoDM: TGikoDM | ||
1235 | 1235 | OnExecute = CloseAllEditorActionExecute |
1236 | 1236 | OnUpdate = CloseAllEditorActionUpdate |
1237 | 1237 | end |
1238 | + object PrevMoveHistory: TAction | |
1239 | + Category = #25805#20316 | |
1240 | + Caption = #12522#12531#12463#23653#27508#12434#25147#12427 | |
1241 | + Hint = #12522#12531#12463#23653#27508#12434#25147#12427 | |
1242 | + OnExecute = PrevMoveHistoryExecute | |
1243 | + OnUpdate = PrevMoveHistoryUpdate | |
1244 | + end | |
1245 | + object NextMoveHistory: TAction | |
1246 | + Category = #25805#20316 | |
1247 | + Caption = #12522#12531#12463#23653#27508#12434#36914#12416 | |
1248 | + Hint = #12522#12531#12463#23653#27508#12434#36914#12416 | |
1249 | + OnExecute = NextMoveHistoryExecute | |
1250 | + OnUpdate = NextMoveHistoryUpdate | |
1251 | + end | |
1252 | + object ClickActiveElementAction: TAction | |
1253 | + Category = #12473#12524#12483#12489 | |
1254 | + Caption = #12450#12463#12486#12451#12502#12394#35201#32032#12434#12463#12522#12483#12463#12377#12427 | |
1255 | + Hint = #12450#12463#12486#12451#12502#12394#35201#32032#12434#12463#12522#12483#12463#12377#12427 | |
1256 | + OnExecute = ClickActiveElementActionExecute | |
1257 | + end | |
1258 | + object VKDownAction: TAction | |
1259 | + Category = #25805#20316 | |
1260 | + Caption = #19979#30690#21360#12461#12540#25276#19979 | |
1261 | + Hint = #19979#30690#21360#12461#12540#25276#19979 | |
1262 | + OnExecute = VKDownActionExecute | |
1263 | + end | |
1264 | + object VKUpAction: TAction | |
1265 | + Category = #25805#20316 | |
1266 | + Caption = #19978#30690#21360#12461#12540#25276#19979 | |
1267 | + Hint = #19978#30690#21360#12461#12540#25276#19979 | |
1268 | + OnExecute = VKUpActionExecute | |
1269 | + end | |
1270 | + object VKRightAction: TAction | |
1271 | + Category = #25805#20316 | |
1272 | + Caption = #21491#30690#21360#12461#12540#25276#19979 | |
1273 | + Hint = #21491#30690#21360#12461#12540#25276#19979 | |
1274 | + OnExecute = VKRightActionExecute | |
1275 | + end | |
1276 | + object VKLeftAction: TAction | |
1277 | + Category = #25805#20316 | |
1278 | + Caption = #24038#30690#21360#12461#12540#25276#19979 | |
1279 | + Hint = #24038#30690#21360#12461#12540#25276#19979 | |
1280 | + OnExecute = VKLeftActionExecute | |
1281 | + end | |
1282 | + object StoredTaskTrayAction: TAction | |
1283 | + Category = #25805#20316 | |
1284 | + Caption = #12479#12473#12463#12488#12524#12452#12395#26684#32013#12377#12427 | |
1285 | + Hint = #12479#12473#12463#12488#12524#12452#12395#26684#32013#12377#12427 | |
1286 | + OnExecute = StoredTaskTrayActionExecute | |
1287 | + end | |
1288 | + object AllImageLinkToClipbordAction: TAction | |
1289 | + Category = #12473#12524#12483#12489 | |
1290 | + Caption = #12452#12513#12540#12472#12522#12531#12463'URL'#21462#24471 | |
1291 | + Hint = #34920#31034#12373#12428#12390#12356#12427#12377#12409#12390#12398#12524#12473#12363#12425#12452#12513#12540#12472#12408#12398#12522#12531#12463'URL'#12434#12463#12522#12483#12503#12508#12540#12489#12395#12467#12500#12540#12377#12427 | |
1292 | + OnExecute = AllImageLinkToClipbordActionExecute | |
1293 | + OnUpdate = DependActiveCntentLogActionUpdate | |
1294 | + end | |
1295 | + object NewImageLinkToClipBoardAction: TAction | |
1296 | + Category = #12473#12524#12483#12489 | |
1297 | + Caption = #26032#30528#12524#12473#12452#12513#12540#12472#12522#12531#12463'URL'#21462#24471 | |
1298 | + Hint = #34920#31034#12373#12428#12390#12356#12427#26032#30528#12524#12473#12363#12425#12452#12513#12540#12472#12408#12398#12522#12531#12463'URL'#12434#12463#12522#12483#12503#12508#12540#12489#12395#12467#12500#12540#12377#12427 | |
1299 | + OnExecute = NewImageLinkToClipBoardActionExecute | |
1300 | + OnUpdate = DependActiveCntentLogActionUpdate | |
1301 | + end | |
1302 | + object SetForcusForAddresBarAction: TAction | |
1303 | + Category = #12450#12489#12524#12473#12496#12540 | |
1304 | + Caption = #12450#12489#12524#12473#12496#12540#12395#12501#12457#12540#12459#12473#12434#24403#12390#12427 | |
1305 | + Hint = #12450#12489#12524#12473#12496#12540#12395#12501#12457#12540#12459#12473#12434#24403#12390#12427 | |
1306 | + OnExecute = SetForcusForAddresBarActionExecute | |
1307 | + end | |
1308 | + object NewBoardSearchAction: TAction | |
1309 | + Category = #12501#12449#12452#12523 | |
1310 | + Caption = #31227#36578#26495#26908#32034 | |
1311 | + Hint = #31227#36578#12375#12390#12356#12427#26495#12398'URL'#12434#26908#32034#12377#12427 | |
1312 | + OnExecute = NewBoardSearchActionExecute | |
1313 | + end | |
1238 | 1314 | end |
1239 | 1315 | object ToobarImageList: TImageList |
1240 | 1316 | Left = 44 |
@@ -12,7 +12,7 @@ uses | ||
12 | 12 | MSHTML_TLB, |
13 | 13 | {$IFEND} |
14 | 14 | ComCtrls, BrowserRecord, Graphics, Messages, Setting, Dialogs, |
15 | - ActiveX; | |
15 | + ActiveX, MoveHistoryItem, HistoryList; | |
16 | 16 | |
17 | 17 | const |
18 | 18 | CAPTION_NAME: string = 'MRir'; |
@@ -219,6 +219,18 @@ type | ||
219 | 219 | LiveItemAction: TAction; |
220 | 220 | FavoriteTreeViewItemNameCopyAction: TAction; |
221 | 221 | CloseAllEditorAction: TAction; |
222 | + PrevMoveHistory: TAction; | |
223 | + NextMoveHistory: TAction; | |
224 | + ClickActiveElementAction: TAction; | |
225 | + VKDownAction: TAction; | |
226 | + VKUpAction: TAction; | |
227 | + VKRightAction: TAction; | |
228 | + VKLeftAction: TAction; | |
229 | + StoredTaskTrayAction: TAction; | |
230 | + AllImageLinkToClipbordAction: TAction; | |
231 | + NewImageLinkToClipBoardAction: TAction; | |
232 | + SetForcusForAddresBarAction: TAction; | |
233 | + NewBoardSearchAction: TAction; | |
222 | 234 | procedure EditNGActionExecute(Sender: TObject); |
223 | 235 | procedure ReloadActionExecute(Sender: TObject); |
224 | 236 | procedure GoFowardActionExecute(Sender: TObject); |
@@ -406,6 +418,22 @@ type | ||
406 | 418 | procedure FavoriteTreeViewItemNameCopyActionExecute(Sender: TObject); |
407 | 419 | procedure CloseAllEditorActionExecute(Sender: TObject); |
408 | 420 | procedure CloseAllEditorActionUpdate(Sender: TObject); |
421 | + procedure PrevMoveHistoryUpdate(Sender: TObject); | |
422 | + procedure PrevMoveHistoryExecute(Sender: TObject); | |
423 | + procedure NextMoveHistoryUpdate(Sender: TObject); | |
424 | + procedure NextMoveHistoryExecute(Sender: TObject); | |
425 | + procedure ClickActiveElementActionExecute(Sender: TObject); | |
426 | + procedure VKDownActionExecute(Sender: TObject); | |
427 | + procedure VKUpActionExecute(Sender: TObject); | |
428 | + procedure VKRightActionExecute(Sender: TObject); | |
429 | + procedure VKLeftActionExecute(Sender: TObject); | |
430 | + procedure StoredTaskTrayActionExecute(Sender: TObject); | |
431 | + procedure LeftTabSelectActionUpdate(Sender: TObject); | |
432 | + procedure RightmostTabSelectActionUpdate(Sender: TObject); | |
433 | + procedure NewImageLinkToClipBoardActionExecute(Sender: TObject); | |
434 | + procedure AllImageLinkToClipbordActionExecute(Sender: TObject); | |
435 | + procedure SetForcusForAddresBarActionExecute(Sender: TObject); | |
436 | + procedure NewBoardSearchActionExecute(Sender: TObject); | |
409 | 437 | private |
410 | 438 | { Private é¾ } |
411 | 439 | procedure ClearResFilter; |
@@ -421,6 +449,11 @@ type | ||
421 | 449 | procedure ClearSelectComboBox; |
422 | 450 | procedure ClearMailAllEditor(); |
423 | 451 | procedure ClearNameTextAllEditor(); |
452 | + procedure MoveURLWithHistory(URL : String); | |
453 | + procedure BackToHistory(item: TMoveHistoryItem); | |
454 | + function GetActiveThreadLinks : IHTMLElementCollection; | |
455 | + procedure GetImageLinkURLs(links : IHTMLElementCollection; | |
456 | + URLs : TStringList; const Start: Integer); | |
424 | 457 | public |
425 | 458 | { Public é¾ } |
426 | 459 | procedure RepaintStatusBar; |
@@ -453,7 +486,7 @@ uses | ||
453 | 486 | GikoBayesian, About, ShellAPI, |
454 | 487 | RoundName, RoundData, Menus, ListViewUtils, |
455 | 488 | ThreadControl, GikoMessage, InputAssist, |
456 | - DefaultFileManager, Forms; | |
489 | + DefaultFileManager, Forms, NewBoardURL; | |
457 | 490 | |
458 | 491 | const |
459 | 492 | MSG_ERROR : string = 'G['; |
@@ -554,24 +587,10 @@ end; | ||
554 | 587 | //! AhXo[É\¦µÄ¢éAhXÖÚ®·é |
555 | 588 | // ************************************************************************* |
556 | 589 | procedure TGikoDM.MoveToActionExecute(Sender: TObject); |
557 | -var | |
558 | - URL: string; | |
559 | - idx: Integer; | |
560 | 590 | begin |
561 | 591 | //AhXR{{bNX©çURLðæ¾ |
562 | - URL := Trim(GikoForm.AddressComboBox.Text); | |
563 | 592 | //URLÉÚ® |
564 | - GikoForm.MoveToURL(URL); | |
565 | - //ȺAðÌ | |
566 | - idx := GikoForm.AddressComboBox.Items.IndexOf(URL); | |
567 | - if idx = -1 then begin | |
568 | - GikoForm.AddressComboBox.Items.Insert(0, URL); | |
569 | - if GikoForm.AddressComboBox.Items.Count > GikoSys.Setting.AddressHistoryCount then | |
570 | - GikoForm.AddressComboBox.Items.Delete(GikoForm.AddressComboBox.Items.Count - 1); | |
571 | - end else begin | |
572 | - GikoForm.AddressComboBox.Items.Delete(idx); | |
573 | - GikoForm.AddressComboBox.Items.Insert(0, URL); | |
574 | - end; | |
593 | + MoveURLWithHistory( Trim(GikoForm.AddressComboBox.Text) ); | |
575 | 594 | end; |
576 | 595 | // ************************************************************************* |
577 | 596 | //! ¨CÉüèÌÇÁ_CAOðJ |
@@ -1277,6 +1296,18 @@ begin | ||
1277 | 1296 | end; |
1278 | 1297 | end; |
1279 | 1298 | // ************************************************************************* |
1299 | +//! ¶Ì^uðIð·éÌUpdateCxg | |
1300 | +// ************************************************************************* | |
1301 | +procedure TGikoDM.LeftTabSelectActionUpdate(Sender: TObject); | |
1302 | +begin | |
1303 | + if ( not GikoSys.Setting.LoopBrowserTabs ) then begin | |
1304 | + LeftmostTabSelectActionUpdate(Sender); | |
1305 | + end else begin | |
1306 | + TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 1); | |
1307 | + end; | |
1308 | +end; | |
1309 | + | |
1310 | +// ************************************************************************* | |
1280 | 1311 | //! ^u̪PÈãÅA^uÌCfbNXªOÈOÅLøÉÈéUpdateCxg |
1281 | 1312 | // ************************************************************************* |
1282 | 1313 | procedure TGikoDM.LeftmostTabSelectActionUpdate(Sender: TObject); |
@@ -1296,7 +1327,13 @@ begin | ||
1296 | 1327 | end else if GikoForm.BrowserTab.TabIndex > 0 then begin |
1297 | 1328 | GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.TabIndex - 1; |
1298 | 1329 | GikoForm.BrowserTab.OnChange(nil); |
1299 | - end; | |
1330 | + end else begin | |
1331 | + if (GikoSys.Setting.LoopBrowserTabs) and | |
1332 | + (GikoForm.BrowserTab.TabIndex = 0) then begin | |
1333 | + GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.Tabs.Count - 1; | |
1334 | + GikoForm.BrowserTab.OnChange(nil); | |
1335 | + end; | |
1336 | + end; | |
1300 | 1337 | end; |
1301 | 1338 | end; |
1302 | 1339 | // ************************************************************************* |
@@ -1311,17 +1348,27 @@ begin | ||
1311 | 1348 | end else if GikoForm.BrowserTab.TabIndex < (GikoForm.BrowserTab.Tabs.Count - 1) then begin |
1312 | 1349 | GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.TabIndex + 1; |
1313 | 1350 | GikoForm.BrowserTab.OnChange(nil); |
1314 | - end; | |
1351 | + end else begin | |
1352 | + if (GikoSys.Setting.LoopBrowserTabs) and | |
1353 | + (GikoForm.BrowserTab.TabIndex = (GikoForm.BrowserTab.Tabs.Count - 1)) then begin | |
1354 | + GikoForm.BrowserTab.TabIndex := 0; | |
1355 | + GikoForm.BrowserTab.OnChange(nil); | |
1356 | + end; | |
1357 | + end; | |
1315 | 1358 | end; |
1316 | 1359 | end; |
1317 | 1360 | // ************************************************************************* |
1318 | -//! ^u̪PÈãÅA^uªE[ÈOÅLøÉÈéUpdateCxg | |
1361 | +//! EÌ^uðIð·éUpdateCxg | |
1319 | 1362 | // ************************************************************************* |
1320 | 1363 | procedure TGikoDM.RightTabSelectActionUpdate(Sender: TObject); |
1321 | 1364 | begin |
1322 | - TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0) | |
1323 | - and (GikoForm.BrowserTab.TabIndex <> GikoForm.BrowserTab.Tabs.Count - 1); | |
1365 | + if ( not GikoSys.Setting.LoopBrowserTabs ) then begin | |
1366 | + RightmostTabSelectActionUpdate(Sender); | |
1367 | + end else begin | |
1368 | + TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 1); | |
1369 | + end; | |
1324 | 1370 | end; |
1371 | + | |
1325 | 1372 | // ************************************************************************* |
1326 | 1373 | //! êÔEÌ^uðIð·é |
1327 | 1374 | // ************************************************************************* |
@@ -1333,6 +1380,15 @@ begin | ||
1333 | 1380 | end; |
1334 | 1381 | end; |
1335 | 1382 | // ************************************************************************* |
1383 | +//! êÔEÌ^uðIð·éÌUpdateCxg | |
1384 | +// ************************************************************************* | |
1385 | +procedure TGikoDM.RightmostTabSelectActionUpdate(Sender: TObject); | |
1386 | +begin | |
1387 | + TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0) | |
1388 | + and (GikoForm.BrowserTab.TabIndex <> GikoForm.BrowserTab.Tabs.Count - 1); | |
1389 | + | |
1390 | +end; | |
1391 | +// ************************************************************************* | |
1336 | 1392 | //! Ið³êÄ¢éXbhð¨CÉüèÉÇÁ |
1337 | 1393 | // ************************************************************************* |
1338 | 1394 | procedure TGikoDM.ThreadFavoriteAddActionExecute(Sender: TObject); |
@@ -2235,7 +2291,8 @@ begin | ||
2235 | 2291 | URLs.Free; |
2236 | 2292 | end; |
2237 | 2293 | |
2238 | - if (GikoForm.BrowserTab.Tabs.Count = 0) then begin | |
2294 | + if (GikoForm.BrowserTab.Tabs.Count = 0) and | |
2295 | + (TabsOpenAction.Tag <> 1) then begin | |
2239 | 2296 | ShowMessage('\¦·é^uª èܹñB'); |
2240 | 2297 | end; |
2241 | 2298 | end; |
@@ -3685,7 +3742,7 @@ end; | ||
3685 | 3742 | // ************************************************************************* |
3686 | 3743 | procedure TGikoDM.SetFocusForBrowserActionExecute(Sender: TObject); |
3687 | 3744 | begin |
3688 | - GikoForm.ActiveContent.Browser.SetFocus; | |
3745 | + GikoForm.ActiveContent.Browser.SetFocus; | |
3689 | 3746 | end; |
3690 | 3747 | // ************************************************************************* |
3691 | 3748 | //! uEUÉtH[JXðÄéUpdateCxg |
@@ -3919,42 +3976,12 @@ begin | ||
3919 | 3976 | end; |
3920 | 3977 | end; |
3921 | 3978 | // ************************************************************************* |
3922 | -//! WebBrowserÌõ_CAOðÄÑo· | |
3923 | -// ************************************************************************* | |
3924 | -procedure OpenFindDialog(Browser: TWebbrowser); | |
3925 | -const | |
3926 | - CGID_WebBrowser: TGUID = '{ED016940-BD5B-11cf-BA4E-00C04FD70816}'; | |
3927 | - HTMLID_FIND = 1; | |
3928 | -var | |
3929 | - CmdTarget : IOleCommandTarget; | |
3930 | - vaIn, vaOut: OleVariant; | |
3931 | - PtrGUID: PGUID; | |
3932 | -begin | |
3933 | - if Browser.Document <> nil then begin | |
3934 | - New(PtrGUID); | |
3935 | - PtrGUID^ := CGID_WebBrowser; | |
3936 | - try | |
3937 | - Browser.Document.QueryInterface(IOleCommandTarget, CmdTarget); | |
3938 | - if CmdTarget <> nil then begin | |
3939 | - try | |
3940 | - CmdTarget.Exec(PtrGUID, HTMLID_FIND, 0, vaIn, vaOut); | |
3941 | - finally | |
3942 | - CmdTarget._Release; | |
3943 | - end; | |
3944 | - end; | |
3945 | - except | |
3946 | - end; | |
3947 | - Dispose(PtrGUID); | |
3948 | - end; | |
3949 | -end; | |
3950 | - | |
3951 | -// ************************************************************************* | |
3952 | 3979 | //! »Ý\¦µÄ¢éXbhÌõ_CAOð\¦·é |
3953 | 3980 | // ************************************************************************* |
3954 | 3981 | procedure TGikoDM.OpenFindDialogActionExecute(Sender: TObject); |
3955 | 3982 | begin |
3956 | 3983 | if( GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil) then begin |
3957 | - OpenFindDialog(GikoForm.ActiveContent.Browser); | |
3984 | + GikoForm.ActiveContent.OpenFindDialog; | |
3958 | 3985 | end; |
3959 | 3986 | end; |
3960 | 3987 |
@@ -4038,5 +4065,276 @@ begin | ||
4038 | 4065 | end; |
4039 | 4066 | end; |
4040 | 4067 | |
4068 | +// ************************************************************************* | |
4069 | +//! NððßéÌXV | |
4070 | +// ************************************************************************* | |
4071 | +procedure TGikoDM.PrevMoveHistoryUpdate(Sender: TObject); | |
4072 | +begin | |
4073 | + PrevMoveHistory.Enabled := | |
4074 | + (MoveHisotryManager.HisotryIndex > 0) | |
4075 | +end; | |
4076 | +// ************************************************************************* | |
4077 | +//! Nððßé | |
4078 | +// ************************************************************************* | |
4079 | +procedure TGikoDM.PrevMoveHistoryExecute(Sender: TObject); | |
4080 | +begin | |
4081 | + if ( GikoForm.BrowserTab.TabIndex >= 0 ) then begin | |
4082 | + BackToHistory(MoveHisotryManager.getPrevItem | |
4083 | + (TBrowserRecord(GikoForm.BrowserTab.Tabs | |
4084 | + .Objects[GikoForm.BrowserTab.TabIndex]))); | |
4085 | + end else begin | |
4086 | + BackToHistory(MoveHisotryManager.getPrevItem( nil ) ); | |
4087 | + end; | |
4088 | +end; | |
4089 | +//! Nð | |
4090 | +procedure TGikoDM.BackToHistory(item: TMoveHistoryItem); | |
4091 | +var | |
4092 | + browser : TWebBrowser; | |
4093 | + doc : OleVariant; | |
4094 | +begin | |
4095 | + if ( item <> nil ) then begin | |
4096 | + if ( GikoForm.GetActiveContent = item.ThreadItem ) then begin | |
4097 | + browser := TBrowserRecord(GikoForm.BrowserTab.Tabs | |
4098 | + .Objects[GikoForm.BrowserTab.TabIndex]).Browser; | |
4099 | + if (browser <> nil) then begin | |
4100 | + try | |
4101 | + doc := Idispatch( olevariant(browser.ControlInterface).Document) as IHTMLDocument2; | |
4102 | + doc.Body.ScrollTop := item.ScrollTop; | |
4103 | + except | |
4104 | + end; | |
4105 | + end; | |
4106 | + end else begin | |
4107 | + //URLÉÚ® | |
4108 | + MoveURLWithHistory(item.ThreadItem.URL); | |
4109 | + end; | |
4110 | + end; | |
4111 | +end; | |
4112 | +//! ð«URLÚ® | |
4113 | +procedure TGikoDM.MoveURLWithHistory(URL : String); | |
4114 | +var | |
4115 | + idx : Integer; | |
4116 | +begin | |
4117 | + //URLÉÚ® | |
4118 | + GikoForm.MoveToURL(URL); | |
4119 | + //ȺAðÌ | |
4120 | + idx := GikoForm.AddressComboBox.Items.IndexOf(URL); | |
4121 | + if idx = -1 then begin | |
4122 | + GikoForm.AddressComboBox.Items.Insert(0, URL); | |
4123 | + if GikoForm.AddressComboBox.Items.Count > GikoSys.Setting.AddressHistoryCount then | |
4124 | + GikoForm.AddressComboBox.Items.Delete(GikoForm.AddressComboBox.Items.Count - 1); | |
4125 | + end else begin | |
4126 | + GikoForm.AddressComboBox.Items.Delete(idx); | |
4127 | + GikoForm.AddressComboBox.Items.Insert(0, URL); | |
4128 | + end; | |
4129 | +end; | |
4130 | +// ************************************************************************* | |
4131 | +//! NððiÞÌXV | |
4132 | +// ************************************************************************* | |
4133 | +procedure TGikoDM.NextMoveHistoryUpdate(Sender: TObject); | |
4134 | +begin | |
4135 | + NextMoveHistory.Enabled := | |
4136 | + (MoveHisotryManager.HisotryIndex < MoveHisotryManager.Count - 1); | |
4137 | +end; | |
4138 | +// ************************************************************************* | |
4139 | +//! NððiÞ | |
4140 | +// ************************************************************************* | |
4141 | +procedure TGikoDM.NextMoveHistoryExecute(Sender: TObject); | |
4142 | +begin | |
4143 | + BackToHistory(MoveHisotryManager.getNextItem); | |
4144 | +end; | |
4145 | +// ************************************************************************* | |
4146 | +//! ANeBuvfÌNbN | |
4147 | +// ************************************************************************* | |
4148 | +procedure TGikoDM.ClickActiveElementActionExecute(Sender: TObject); | |
4149 | +var | |
4150 | + browser : TWebBrowser; | |
4151 | + elem : IHTMLElement; | |
4152 | +begin | |
4153 | + if (GikoForm.GetActiveContent <> nil) then begin | |
4154 | + if (GikoForm.BrowserTab.Tabs.Count > 0) and | |
4155 | + (GikoForm.BrowserTab.TabIndex >= 0) then begin | |
4156 | + browser := TBrowserRecord(GikoForm.BrowserTab.Tabs | |
4157 | + .Objects[GikoForm.BrowserTab.TabIndex]).Browser; | |
4158 | + if (browser <> nil) then begin | |
4159 | + try | |
4160 | + elem := IHTMLDocument2(browser.Document).activeElement; | |
4161 | + elem.click; | |
4162 | + except | |
4163 | + end; | |
4164 | + end; | |
4165 | + | |
4166 | + end; | |
4167 | + end; | |
4168 | +end; | |
4169 | +//! «L[ÌG~ [gANV | |
4170 | +procedure TGikoDM.VKDownActionExecute(Sender: TObject); | |
4171 | +begin | |
4172 | + keybd_event(VK_DOWN, 0, KEYEVENTF_EXTENDEDKEY, 0); | |
4173 | + keybd_event(VK_DOWN, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0); | |
4174 | +end; | |
4175 | +//! ªL[ÌG~ [gANV | |
4176 | +procedure TGikoDM.VKUpActionExecute(Sender: TObject); | |
4177 | +begin | |
4178 | + keybd_event(VK_UP, 0, KEYEVENTF_EXTENDEDKEY, 0); | |
4179 | + keybd_event(VK_UP, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0); | |
4180 | +end; | |
4181 | +//! ¨L[ÌG~ [gANV | |
4182 | +procedure TGikoDM.VKRightActionExecute(Sender: TObject); | |
4183 | +begin | |
4184 | + keybd_event(VK_RIGHT, 0, KEYEVENTF_EXTENDEDKEY, 0); | |
4185 | + keybd_event(VK_RIGHT, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0); | |
4186 | +end; | |
4187 | +//! ©L[ÌG~ [gANV | |
4188 | +procedure TGikoDM.VKLeftActionExecute(Sender: TObject); | |
4189 | +begin | |
4190 | + keybd_event(VK_LEFT, 0, KEYEVENTF_EXTENDEDKEY, 0); | |
4191 | + keybd_event(VK_LEFT, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0); | |
4192 | +end; | |
4193 | +//! ^XNgCÉi[·é | |
4194 | +procedure TGikoDM.StoredTaskTrayActionExecute(Sender: TObject); | |
4195 | +begin | |
4196 | + GikoForm.StoredTaskTray; | |
4197 | + StoredTaskTrayAction.Tag := -1; | |
4198 | +end; | |
4199 | + | |
4200 | +{ | |
4201 | +\breif NC[Wæ¾ | |
4202 | +C[WÍC*.jpg, *.jpeg, *.gif, *.png | |
4203 | +} | |
4204 | +procedure TGikoDM.AllImageLinkToClipbordActionExecute(Sender: TObject); | |
4205 | +var | |
4206 | + links : IHTMLElementCollection; | |
4207 | + urls : TStringList; | |
4208 | +begin | |
4209 | + links := GetActiveThreadLinks; | |
4210 | + if (links <> nil) then begin | |
4211 | + urls := TStringList.Create; | |
4212 | + try | |
4213 | + GetImageLinkURLs(links, urls, 0); | |
4214 | + Clipboard.SetTextBuf(urls.GetText); | |
4215 | + finally | |
4216 | + urls.Free; | |
4217 | + end; | |
4218 | + end; | |
4219 | +end; | |
4220 | + | |
4221 | +{ | |
4222 | +\breif V XÌNC[Wæ¾ | |
4223 | +C[WÍC*.jpg, *.jpeg, *.gif, *.png | |
4224 | +} | |
4225 | +procedure TGikoDM.NewImageLinkToClipBoardActionExecute(Sender: TObject); | |
4226 | +var | |
4227 | + links : IHTMLElementCollection; | |
4228 | + urls : TStringList; | |
4229 | + ThreadItem : TThreadItem; | |
4230 | +begin | |
4231 | + ThreadItem := GikoForm.GetActiveContent; | |
4232 | + links := GetActiveThreadLinks; | |
4233 | + if (ThreadItem <> nil) and (links <> nil) then begin | |
4234 | + urls := TStringList.Create; | |
4235 | + try | |
4236 | + GetImageLinkURLs(links, urls, | |
4237 | + (ThreadItem.Count - ThreadItem.NewResCount + 1) ); | |
4238 | + Clipboard.SetTextBuf(urls.GetText); | |
4239 | + finally | |
4240 | + urls.Free; | |
4241 | + end; | |
4242 | + end; | |
4243 | +end; | |
4244 | +{ | |
4245 | +\brief »Ý\¦µÄ¢éXbhÌ·×ÄÌNðæ¾·éB | |
4246 | +\return IHTMLElementCollection NÌRNV | |
4247 | +} | |
4248 | +function TGikoDM.GetActiveThreadLinks : IHTMLElementCollection; | |
4249 | +var | |
4250 | + browser : TWebBrowser; | |
4251 | +begin | |
4252 | + Result := nil; | |
4253 | + if (GikoForm.GetActiveContent <> nil) then begin | |
4254 | + if (GikoForm.BrowserTab.Tabs.Count > 0) and | |
4255 | + (GikoForm.BrowserTab.TabIndex >= 0) then begin | |
4256 | + browser := TBrowserRecord(GikoForm.BrowserTab.Tabs | |
4257 | + .Objects[GikoForm.BrowserTab.TabIndex]).Browser; | |
4258 | + if (browser <> nil) then begin | |
4259 | + try | |
4260 | + Result := IHTMLDocument2(browser.Document).links; | |
4261 | + except | |
4262 | + Result := nil; | |
4263 | + end; | |
4264 | + end; | |
4265 | + | |
4266 | + end; | |
4267 | + end; | |
4268 | +end; | |
4269 | +{ | |
4270 | +\brief C[WÖÌNÌURLðæ¾·é | |
4271 | +\param links æ¾·éNÌSÌÌRNV | |
4272 | +\param URLs æ¾µ½URLÌÛ¶æ | |
4273 | +\param Start Ýèµ½XÔÈ~ðæ¾( > 0) | |
4274 | +} | |
4275 | +procedure TGikoDM.GetImageLinkURLs(links : IHTMLElementCollection; | |
4276 | + URLs : TStringList; const Start: Integer); | |
4277 | +var | |
4278 | + index ,i : Integer; | |
4279 | + item : IHTMLElement; | |
4280 | + url, ext : string; | |
4281 | +begin | |
4282 | + if (links <> nil) then begin | |
4283 | + index := 0; | |
4284 | + for i := 0 to links.length - 1 do begin | |
4285 | + item := links.item(i, 0) as IHTMLElement; | |
4286 | + if (item <> nil) then begin | |
4287 | + url := item.getAttribute('href', 0); | |
4288 | + // XÌÔðXV | |
4289 | + if (Pos('menu:', url) > 0) then begin | |
4290 | + index := StrToInt64Def( | |
4291 | + Copy(url, 5, Length(url)), index + 1 | |
4292 | + ); | |
4293 | + end else begin | |
4294 | + // JnXÔÈ~©`FbN | |
4295 | + if (index >= Start) then begin | |
4296 | + ext := ExtractFileExt( AnsiLowerCase(url) ); | |
4297 | + // jpg,jpeg,gif,pngð`FbN | |
4298 | + if (ext = '.jpg') or (ext = '.jpeg') or | |
4299 | + (ext = '.gif') or (ext = '.png') then begin | |
4300 | + urls.Add(url) | |
4301 | + end; | |
4302 | + end; | |
4303 | + end; | |
4304 | + end; | |
4305 | + end; | |
4306 | + end; | |
4307 | +end; | |
4308 | +{ | |
4309 | +\brief AhXo[ÉtH[JXðÄé | |
4310 | +\param Sender Cxg̶³ | |
4311 | +} | |
4312 | +procedure TGikoDM.SetForcusForAddresBarActionExecute(Sender: TObject); | |
4313 | +begin | |
4314 | + if ( GikoForm.AddressToolBar.Visible ) then begin | |
4315 | + GikoForm.AddressComboBox.SetFocus; | |
4316 | + end | |
4317 | +end; | |
4318 | +{ | |
4319 | +\brief Ú]µ½ÂÌURLðæ¾·é_CAOð\¦·é | |
4320 | +} | |
4321 | +procedure TGikoDM.NewBoardSearchActionExecute(Sender: TObject); | |
4322 | +var | |
4323 | + form : TNewBoardURLForm; | |
4324 | + Msg: string; | |
4325 | +begin | |
4326 | + if (EditorFormExists) then begin | |
4327 | + Msg := 'XGfB^ðSĶľ³¢'; | |
4328 | + MsgBox(GikoForm.Handle, Msg, MSG_ERROR, MB_OK or MB_ICONSTOP); | |
4329 | + Exit; | |
4330 | + end; | |
4331 | + form := TNewBoardURLForm.Create(Self); | |
4332 | + try | |
4333 | + form.ShowModal; | |
4334 | + finally | |
4335 | + form.Release; | |
4336 | + end; | |
4337 | +end; | |
4338 | + | |
4041 | 4339 | end. |
4042 | 4340 |
@@ -114,6 +114,8 @@ type | ||
114 | 114 | FGikoMessage: TGikoMessage; |
115 | 115 | //! éZp[^ÅæØç꽶ñ©çÔÚ̶ñðæèo· |
116 | 116 | function ChooseString(const Text, Separator: string; Index: integer): string; |
117 | + //! êt@C©çÌ | |
118 | + procedure RestoreThreadData(Board: TBoard); | |
117 | 119 | public |
118 | 120 | { Public é¾ } |
119 | 121 | FAbon : TAbon; |
@@ -247,6 +249,10 @@ type | ||
247 | 249 | function GetGikoMessage(MesType: TGikoMessageListType): String; |
248 | 250 | //! GMTÌðTDateTimeÉÏ··é |
249 | 251 | function DateStrToDateTime(const DateStr: string): TDateTime; |
252 | + //! User32.dllªpÅ«é© | |
253 | + function CanUser32DLL: Boolean; | |
254 | + //! OEøpæ¾ | |
255 | + function GetOEIndentChar : string; | |
250 | 256 | end; |
251 | 257 | |
252 | 258 | var |
@@ -256,7 +262,7 @@ const | ||
256 | 262 | ZERO_DATE: Integer = 25569; |
257 | 263 | BETA_VERSION_NAME_E = 'beta'; |
258 | 264 | BETA_VERSION_NAME_J = 'ÊÞÀ'; |
259 | - BETA_VERSION = 53; | |
265 | + BETA_VERSION = 54; | |
260 | 266 | BETA_VERSION_BUILD = ''; //!< debugÅÈÇ |
261 | 267 | APP_NAME = 'gikoNavi'; |
262 | 268 | BE_PHP_URL = 'http://be.2ch.net/test/p.php?i='; |
@@ -554,24 +560,17 @@ var | ||
554 | 560 | ThreadItem: TThreadItem; |
555 | 561 | FileName: string; |
556 | 562 | FileList: TStringList; |
557 | - TmpFileList: TStringList; | |
558 | 563 | Index: Integer; |
559 | 564 | sl: TStringList; |
560 | 565 | i: Integer; |
561 | 566 | Rec: TIndexRec; |
562 | 567 | UnRead: Integer; |
563 | - ini: TMemIniFile; | |
564 | 568 | ResRec: TResRec; |
565 | -// RoundItem: TRoundItem; | |
566 | -// idx: Integer; | |
567 | 569 | usePlugIn : Boolean; |
568 | - tmpStr: string; | |
569 | 570 | BoardPath : String; |
570 | 571 | server : String; |
571 | 572 | islog : Boolean; |
572 | 573 | urlHead: String; |
573 | - //protocol, host, path, document, port, bookmark : string; | |
574 | - //is2ch : Boolean; | |
575 | 574 | {* |
576 | 575 | FavoThreadItem : TFavoriteThreadItem; |
577 | 576 | Node: TTreeNode; |
@@ -581,25 +580,17 @@ begin | ||
581 | 580 | Exit; |
582 | 581 | Board.Clear; |
583 | 582 | UnRead := 0; |
584 | - //is2ch := false; | |
585 | 583 | usePlugIn := Board.IsBoardPlugInAvailable; |
586 | 584 | server := UrlToServer( Board.URL ); |
587 | - //is2ch := Is2chHost(server); | |
588 | 585 | |
589 | 586 | FileName := Board.GetFolderIndexFileName; |
590 | 587 | |
591 | 588 | FileList := TStringList.Create; |
592 | 589 | FileList.Sorted := True; |
593 | 590 | FileList.BeginUpdate; |
594 | - TmpFileList := TStringList.Create; | |
595 | - TmpFileList.Sorted := True; | |
596 | - TmpFileList.BeginUpdate; | |
597 | 591 | //IsLogFilepDATt@CXg |
598 | 592 | GetFileList(ExtractFileDir(Board.GetFolderIndexFileName), '*.dat', FileList, False); |
599 | 593 | FileList.EndUpdate; |
600 | - //OñÙíI¹pTmpt@CXg | |
601 | - GetFileList(ExtractFileDir(Board.GetFolderIndexFileName), '*.tmp', TmpFileList, False); | |
602 | - TmpFileList.EndUpdate; | |
603 | 594 | |
604 | 595 | // d¡ðh® |
605 | 596 | Board.BeginUpdate; |
@@ -650,8 +641,7 @@ begin | ||
650 | 641 | |
651 | 642 | ThreadItem.No := Rec.FNo; |
652 | 643 | ThreadItem.FileName := Rec.FFileName; |
653 | - ThreadItem.Title := Rec.FTitle; | |
654 | - //ThreadItem.ShortTitle := CustomStringReplace(ZenToHan(ThreadItem.Title), ' ', ''); | |
644 | + ThreadItem.Title := MojuUtils.UnSanitize(Rec.FTitle); | |
655 | 645 | ThreadItem.Count := Rec.FCount; |
656 | 646 | ThreadItem.Size := Rec.FSize; |
657 | 647 | ThreadItem.RoundDate := Rec.FRoundDate; |
@@ -724,50 +714,12 @@ begin | ||
724 | 714 | Board.Add(ThreadItem); |
725 | 715 | end; |
726 | 716 | Board.EndUpdate; |
727 | - | |
728 | - //OñÙíI¹`FbN | |
729 | - for i := TmpFileList.Count - 1 downto 0 do begin | |
730 | - //if TmpFileList.Count <> 0 then begin | |
731 | - ThreadItem := Board.FindThreadFromFileName(ChangeFileExt(TmpFileList[i], '.dat')); | |
732 | - if ThreadItem <> nil then begin | |
733 | - //if TmpFileList.Find(ChangeFileExt(ThreadItem.FileName, '.tmp'), Index) then begin | |
734 | - ini := TMemIniFile.Create(Boardpath + TmpFileList[i]); | |
735 | - try | |
736 | - tmpStr := ini.ReadString('Setting', 'RoundDate', DateTimeToStr(ZERO_DATE)); | |
737 | - ThreadItem.RoundDate := ConvertDateTimeString(tmpStr); | |
738 | - | |
739 | - tmpStr := ini.ReadString('Setting', 'LastModified', DateTimeToStr(ZERO_DATE)); | |
740 | - ThreadItem.LastModified := ConvertDateTimeString(tmpStr); | |
741 | - ThreadItem.Count := ini.ReadInteger('Setting', 'Count', 0); | |
742 | - ThreadItem.NewReceive := ini.ReadInteger('Setting', 'NewReceive', 0); | |
743 | - | |
744 | - ThreadItem.Size := ini.ReadInteger('Setting', 'Size', 0); | |
745 | - if(ThreadItem.Size = 0) and (FileExists(ThreadItem.GetThreadFileName)) then begin | |
746 | - try | |
747 | - ThreadItem.Size := GetFileSize(ThreadItem.GetThreadFileName) - ThreadItem.Count; | |
748 | - except | |
749 | - end; | |
750 | - end; | |
751 | - | |
752 | - //ñÌÝèÍRoundDataÌûªâé©çèÉÝèµÄÍ_I@by à¶ã | |
753 | - //ThreadItem.Round := ini.ReadBool('Setting', 'Round', False); | |
754 | - //ThreadItem.RoundName := ini.ReadString('Setting', 'RoundName', ThreadItem.RoundName); | |
755 | - ThreadItem.UnRead := False;//ini.ReadBool('Setting', 'UnRead', False); | |
756 | - ThreadItem.ScrollTop := ini.ReadInteger('Setting', 'ScrollTop', 0); | |
757 | - ThreadItem.AllResCount := ini.ReadInteger('Setting', 'AllResCount', ThreadItem.Count); | |
758 | - ThreadItem.NewResCount := ini.ReadInteger('Setting', 'NewResCount', 0); | |
759 | - ThreadItem.AgeSage := TGikoAgeSage(ini.ReadInteger('Setting', 'AgeSage', Ord(gasNone))); | |
760 | - finally | |
761 | - ini.Free; | |
762 | - end; | |
763 | - DeleteFile(Boardpath + TmpFileList[i]); | |
764 | - end; | |
765 | - end; | |
766 | - | |
717 | + | |
718 | + //OñÙíI¹`FbN | |
719 | + RestoreThreadData( Board ); | |
767 | 720 | finally |
768 | 721 | sl.Free; |
769 | 722 | FileList.Free; |
770 | - TmpFileList.Free; | |
771 | 723 | Board.Sorted := False; |
772 | 724 | end; |
773 | 725 | Board.IsThreadDatRead := True; |
@@ -824,7 +776,7 @@ begin | ||
824 | 776 | '%s'#1'%x'#1'%x'#1'%x'#1'%x'#1'%x', |
825 | 777 | [cnt, //Ô |
826 | 778 | Rec.FFileName, //t@C¼ |
827 | - Rec.FTitle, //^Cg | |
779 | + MojuUtils.Sanitize(Rec.FTitle), //^Cg | |
828 | 780 | Rec.FCount, //JEg |
829 | 781 | 0, //size |
830 | 782 | 0, //RoundDate |
@@ -894,7 +846,7 @@ begin | ||
894 | 846 | '%s'#1'%x'#1'%x'#1'%x'#1'%x'#1'%x', |
895 | 847 | [Board.Items[i].No, //Ô |
896 | 848 | Board.Items[i].FileName, //t@C¼ |
897 | - Board.Items[i].Title, //^Cg | |
849 | + MojuUtils.Sanitize(Board.Items[i].Title), //^Cg | |
898 | 850 | Board.Items[i].Count, //JEg |
899 | 851 | Board.Items[i].Size, //size |
900 | 852 | DateTimeToInt(Board.Items[i].RoundDate), //RoundDate |
@@ -933,7 +885,7 @@ function TGikoSys.ParseIndexLine(Line: string): TIndexRec; | ||
933 | 885 | begin |
934 | 886 | Result.FNo := StrToIntDef('$' + RemoveToken(Line, #1), 0); |
935 | 887 | Result.FFileName := RemoveToken(Line, #1); |
936 | - Result.FTitle := RemoveToken(Line, #1); | |
888 | + Result.FTitle := MojuUtils.UnSanitize(RemoveToken(Line, #1)); | |
937 | 889 | Result.FCount := StrToIntDef('$' + RemoveToken(Line, #1), 0); |
938 | 890 | Result.FSize := StrToIntDef('$' + RemoveToken(Line, #1), 0); |
939 | 891 | Result.FRoundDate := IntToDateTime(StrToIntDef('$' + RemoveToken(Line, #1), ZERO_DATE)); |
@@ -3306,6 +3258,126 @@ begin | ||
3306 | 3258 | p := AnsiPos(Separator, S); |
3307 | 3259 | if (p > 0) then Result := Copy(S, 1, p - 1) else Result := S; |
3308 | 3260 | end; |
3261 | +//! êt@C©çÌ | |
3262 | +procedure TGikoSys.RestoreThreadData(Board : TBoard); | |
3263 | +const | |
3264 | + SECTION = 'Setting'; | |
3265 | +var | |
3266 | + TmpFileList : TStringList; | |
3267 | + i : Integer; | |
3268 | + ini : TMemIniFile; | |
3269 | + ThreadItem : TThreadItem; | |
3270 | + Boardpath, tmpStr : string; | |
3271 | +begin | |
3272 | + Boardpath := ExtractFilePath(Board.GetFolderIndexFileName); | |
3273 | + | |
3274 | + TmpFileList := TStringList.Create; | |
3275 | + TmpFileList.Sorted := True; | |
3276 | + TmpFileList.BeginUpdate; | |
3277 | + try | |
3278 | + //OñÙíI¹pTmpt@CXg | |
3279 | + GetFileList(Boardpath, '*.tmp', TmpFileList, False); | |
3280 | + TmpFileList.EndUpdate; | |
3281 | + //OñÙíI¹`FbN | |
3282 | + for i := TmpFileList.Count - 1 downto 0 do begin | |
3283 | + ThreadItem := Board.FindThreadFromFileName(ChangeFileExt(TmpFileList[i], '.dat')); | |
3284 | + if ThreadItem <> nil then begin | |
3285 | + ini := TMemIniFile.Create(Boardpath + TmpFileList[i]); | |
3286 | + try | |
3287 | + tmpStr := ini.ReadString(SECTION, 'RoundDate', DateTimeToStr(ZERO_DATE)); | |
3288 | + ThreadItem.RoundDate := ConvertDateTimeString(tmpStr); | |
3289 | + | |
3290 | + tmpStr := ini.ReadString(SECTION, 'LastModified', DateTimeToStr(ZERO_DATE)); | |
3291 | + ThreadItem.LastModified := ConvertDateTimeString(tmpStr); | |
3292 | + ThreadItem.Count := ini.ReadInteger(SECTION, 'Count', 0); | |
3293 | + ThreadItem.NewReceive := ini.ReadInteger(SECTION, 'NewReceive', 0); | |
3294 | + | |
3295 | + ThreadItem.Size := ini.ReadInteger(SECTION, 'Size', 0); | |
3296 | + if(ThreadItem.Size = 0) and (FileExists(ThreadItem.GetThreadFileName)) then begin | |
3297 | + try | |
3298 | + ThreadItem.Size := GetFileSize(ThreadItem.GetThreadFileName) - ThreadItem.Count; | |
3299 | + except | |
3300 | + end; | |
3301 | + end; | |
3302 | + | |
3303 | + //ñÌÝèÍRoundDataÌûªâé©çèÉÝèµÄÍ_I@by à¶ã | |
3304 | + //ThreadItem.Round := ini.ReadBool('Setting', 'Round', False); | |
3305 | + //ThreadItem.RoundName := ini.ReadString('Setting', 'RoundName', ThreadItem.RoundName); | |
3306 | + ThreadItem.UnRead := False;//ini.ReadBool('Setting', 'UnRead', False); | |
3307 | + ThreadItem.ScrollTop := ini.ReadInteger(SECTION, 'ScrollTop', 0); | |
3308 | + ThreadItem.AllResCount := ini.ReadInteger(SECTION, 'AllResCount', ThreadItem.Count); | |
3309 | + ThreadItem.NewResCount := ini.ReadInteger(SECTION, 'NewResCount', 0); | |
3310 | + ThreadItem.AgeSage := TGikoAgeSage(ini.ReadInteger(SECTION, 'AgeSage', Ord(gasNone))); | |
3311 | + finally | |
3312 | + ini.Free; | |
3313 | + end; | |
3314 | + DeleteFile(Boardpath + TmpFileList[i]); | |
3315 | + end; | |
3316 | + end; | |
3317 | + finally | |
3318 | + TmpFileList.Clear; | |
3319 | + TmpFileList.Free; | |
3320 | + end; | |
3321 | +end; | |
3322 | +{ | |
3323 | +\brief User32.dllªpÅ«é© | |
3324 | +\return Boolean pÅ«éêÍTrue | |
3325 | +} | |
3326 | +function TGikoSys.CanUser32DLL: Boolean; | |
3327 | +var | |
3328 | + hUser32 : HINST; | |
3329 | +begin | |
3330 | + Result := False; | |
3331 | + hUser32 := 0; | |
3332 | + try | |
3333 | + try | |
3334 | + hUser32 := LoadLibrary('User32.dll'); | |
3335 | + if hUser32 <> 0 then begin | |
3336 | + Result := True; | |
3337 | + end; | |
3338 | + except | |
3339 | + Result := false; | |
3340 | + end; | |
3341 | + finally | |
3342 | + FreeLibrary(hUser32); | |
3343 | + end; | |
3344 | +end; | |
3345 | +{ | |
3346 | +\brief OEøpæ¾ | |
3347 | +\return OEÌøpiÝè³êĢȢêÍ'>') | |
3348 | +} | |
3349 | +function TGikoSys.GetOEIndentChar : string; | |
3350 | +var | |
3351 | + regKey : TRegistry; | |
3352 | + Identities : string; | |
3353 | + IndentChar : DWORD; | |
3354 | +const | |
3355 | + DEFAULT_CHAR = '> '; | |
3356 | + OE_MAIL_PATH = '\Software\Microsoft\Outlook Express\5.0\Mail'; | |
3357 | + INDENT_CHAR = 'Indent Char'; | |
3358 | +begin | |
3359 | + | |
3360 | + Result := DEFAULT_CHAR; | |
3361 | + regKey := TRegistry.Create; | |
3362 | + try | |
3363 | + try | |
3364 | + regKey.RootKey := HKEY_CURRENT_USER; | |
3365 | + if not regKey.OpenKey( 'Identities', False ) then | |
3366 | + Exit; | |
3367 | + Identities := regKey.ReadString( 'Default User ID' ); | |
3368 | + if Identities = '' then | |
3369 | + Exit; | |
3370 | + if not regKey.OpenKey( Identities + OE_MAIL_PATH, False ) then | |
3371 | + Exit; | |
3372 | + IndentChar := regKey.ReadInteger( INDENT_CHAR ); | |
3373 | + Result := Char( IndentChar ) + ' '; | |
3374 | + except | |
3375 | + end; | |
3376 | + finally | |
3377 | + regKey.Free; | |
3378 | + end; | |
3379 | + | |
3380 | +end; | |
3309 | 3381 | |
3310 | 3382 | initialization |
3311 | 3383 | GikoSys := TGikoSys.Create; |
@@ -67,7 +67,7 @@ type | ||
67 | 67 | dat : boolean; var s : String) : string; |
68 | 68 | function getNumberString(const str: String;var index :Integer; var dbCharlen: Boolean; |
69 | 69 | sLen :Integer): String; |
70 | - | |
70 | + function isOutsideRange(item: TThreadItem; index: Integer ): Boolean; | |
71 | 71 | public |
72 | 72 | { Public é¾ } |
73 | 73 | procedure AddAnchorTag(PRes: PResRec); |
@@ -86,6 +86,11 @@ type | ||
86 | 86 | class procedure DivideStrLine(Line: string; PRes: PResRec); |
87 | 87 | //HTML©çN^Oðí·é |
88 | 88 | class function DeleteLink(const s: string): string; |
89 | + //HTMLÌ{fBɳêé¶ñÉu··é | |
90 | + class function RepHtml(const s: string): string; | |
91 | + //XGfB^Ìvr [pHTMLð쬷é | |
92 | + class function CreatePreviewHTML(const Title: string; const No: string; | |
93 | + const Mail: string; const Namae: string; const Body: string ) : string; | |
89 | 94 | end; |
90 | 95 | |
91 | 96 | var |
@@ -93,6 +98,9 @@ var | ||
93 | 98 | |
94 | 99 | implementation |
95 | 100 | |
101 | +uses | |
102 | + Trip; | |
103 | + | |
96 | 104 | const |
97 | 105 | URL_CHAR: string = '0123456789' |
98 | 106 | + 'abcdefghijklmnopqrstuvwxyz' |
@@ -629,7 +637,6 @@ begin | ||
629 | 637 | PRes.FBody := PRes.FBody + res; |
630 | 638 | |
631 | 639 | end; |
632 | - | |
633 | 640 | //Pluginðp·éBoardÌXbhÌHTMLð쬵ÄdocÉ«Þ |
634 | 641 | procedure THTMLCreate.CreateUsePluginHTML(html:TBufferedWebBrowser; ThreadItem: TThreadItem; var sTitle: string); |
635 | 642 | var |
@@ -652,17 +659,9 @@ begin | ||
652 | 659 | // 1 ÍK¸\¦ |
653 | 660 | if i <> 0 then begin |
654 | 661 | // \¦ÍÍðÀè |
655 | - case GikoSys.ResRange of | |
656 | - Ord( grrKoko ): | |
657 | - if ThreadItem.Kokomade > (i + 1) then | |
658 | - Continue; | |
659 | - Ord( grrNew ): | |
660 | - if NewReceiveNo > (i + 1) then | |
661 | - Continue; | |
662 | - 10..65535: | |
663 | - if (threadItem.Count - i) > GikoSys.ResRange then | |
664 | - Continue; | |
665 | - end; | |
662 | + if (isOutsideRange(ThreadItem, i)) then begin | |
663 | + Continue; | |
664 | + end; | |
666 | 665 | end; |
667 | 666 | |
668 | 667 | // V }[N |
@@ -757,17 +756,9 @@ begin | ||
757 | 756 | // 1 ÍK¸\¦ |
758 | 757 | if i <> 0 then begin |
759 | 758 | // \¦ÍÍðÀè |
760 | - case GikoSys.ResRange of | |
761 | - Ord( grrKoko ): | |
762 | - if ThreadItem.Kokomade > (i + 1) then | |
763 | - Continue; | |
764 | - Ord( grrNew ): | |
765 | - if NewReceiveNo > (i + 1) then | |
766 | - Continue; | |
767 | - 10..65535: | |
768 | - if (threadItem.Count - i) > GikoSys.ResRange then | |
769 | - Continue; | |
770 | - end; | |
759 | + if (isOutsideRange(ThreadItem, i)) then begin | |
760 | + Continue; | |
761 | + end; | |
771 | 762 | end; |
772 | 763 | |
773 | 764 | // V }[N |
@@ -854,18 +845,10 @@ begin | ||
854 | 845 | for i := 0 to ReadList.Count - 1 do begin |
855 | 846 | // 1 ÍK¸\¦ |
856 | 847 | if i <> 0 then begin |
857 | - // \¦ÍÍðÀè | |
858 | - case GikoSys.ResRange of | |
859 | - Ord( grrKoko ): | |
860 | - if ThreadItem.Kokomade > (i + 1) then | |
861 | - Continue; | |
862 | - Ord( grrNew ): | |
863 | - if NewReceiveNo > (i + 1) then | |
864 | - Continue; | |
865 | - 10..65535: | |
866 | - if (threadItem.Count - i) > GikoSys.ResRange then | |
867 | - Continue; | |
868 | - end; | |
848 | + // \¦ÍÍðÀè | |
849 | + if (isOutsideRange(ThreadItem, i)) then begin | |
850 | + Continue; | |
851 | + end; | |
869 | 852 | end; |
870 | 853 | |
871 | 854 | if (NewReceiveNo = (i + 1)) or ((NewReceiveNo = 0) and (i = 0)) then begin |
@@ -924,17 +907,9 @@ begin | ||
924 | 907 | // 1 ÍK¸\¦ |
925 | 908 | if i <> 0 then begin |
926 | 909 | // \¦ÍÍðÀè |
927 | - case GikoSys.ResRange of | |
928 | - Ord( grrKoko ): | |
929 | - if ThreadItem.Kokomade > (i + 1) then | |
930 | - Continue; | |
931 | - Ord( grrNew ): | |
932 | - if NewReceiveNo > (i + 1) then | |
933 | - Continue; | |
934 | - 10..65535: | |
935 | - if (threadItem.Count - i) > GikoSys.ResRange then | |
936 | - Continue; | |
937 | - end; | |
910 | + if (isOutsideRange(ThreadItem, i)) then begin | |
911 | + Continue; | |
912 | + end; | |
938 | 913 | end; |
939 | 914 | |
940 | 915 | if (NewReceiveNo = (i + 1)) or ((NewReceiveNo = 0) and (i = 0)) then begin |
@@ -1426,7 +1401,9 @@ begin | ||
1426 | 1401 | end else if GikoSys.Setting.UseCSS then begin |
1427 | 1402 | current := ExtractFilePath(GikoSys.GetStyleSheetDir); |
1428 | 1403 | tmp := ExtractFilePath(GikoSys.GetStyleSheetDir + GikoSys.Setting.CSSFileName); |
1429 | - end; | |
1404 | + end else begin | |
1405 | + Exit; | |
1406 | + end; | |
1430 | 1407 | dirs := TStringList.Create; |
1431 | 1408 | try |
1432 | 1409 | dirs.Add(tmp); |
@@ -1544,7 +1521,94 @@ begin | ||
1544 | 1521 | inc(i, 2); |
1545 | 1522 | end; |
1546 | 1523 | end; |
1524 | +{ | |
1525 | +\brief HTML»Ì½ßÌu· | |
1526 | +\param s ³ÉÈé¶ñ | |
1527 | +\return HTMLÌinnerTextƵÄäé³êé¶ñ | |
1528 | +} | |
1529 | +class function THTMLCreate.RepHtml(const s: string): string; | |
1530 | +begin | |
1531 | +// s := StringReplace(s, '&', '&', [rfReplaceAll]); | |
1532 | + Result := s; | |
1533 | + Result := CustomStringReplace(Result, '<', '<'); | |
1534 | + Result := CustomStringReplace(Result, '>', '>'); | |
1535 | +// s := StringReplace(s, ' ', ' ', [rfReplaceAll]); //dlÏXÉæè gps | |
1536 | + Result := CustomStringReplace(Result, '"', '"'); | |
1537 | +end; | |
1538 | +{ | |
1539 | +\brief XGfB^ÅÌvr [pHTMLì¬ | |
1540 | +\param Title Xbh^Cg | |
1541 | +\param No XÔ | |
1542 | +\param Mail [ | |
1543 | +\param Name ¼O | |
1544 | +\param Body {¶ | |
1545 | +\return vr [pHTML | |
1546 | +} | |
1547 | +class function THTMLCreate.CreatePreviewHTML( | |
1548 | + const Title: string; | |
1549 | + const No: string; | |
1550 | + const Mail: string; | |
1551 | + const Namae: string; | |
1552 | + const Body: string | |
1553 | +) : string; | |
1554 | +var | |
1555 | + posTrip : Integer; | |
1556 | + tripOrigin : string; | |
1557 | + NameWithTrip: string; | |
1558 | + DateTime: string; | |
1559 | +begin | |
1560 | + Result := '<HTML><HEAD>'#13#10 | |
1561 | + + '<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">'#13#10 | |
1562 | + + '<TITLE>' + title + '</TITLE>'#13#10 | |
1563 | + + '</HEAD>'#13#10 | |
1564 | + + '<BODY text="#000000" bgcolor="#EFEFEF" link="#0000FF" alink="#FF0000" vlink="#660099">'#13#10 | |
1565 | + + '<FONT COLOR="#FF0000">' + title + '</FONT>'#13#10 | |
1566 | + + '<DL>'#13#10; | |
1567 | + | |
1568 | + DateTime := FormatDateTime('yyyy/mm/dd(aaa) hh:nn', Now()); | |
1569 | + | |
1570 | + NameWithTrip := Namae; | |
1571 | + posTrip := AnsiPos( '#', Namae ); | |
1572 | + if posTrip > 0 then begin | |
1573 | + tripOrigin := Copy( Namae, posTrip + 1, Length( Namae ) ); | |
1574 | + NameWithTrip := Copy( Namae, 1, posTrip - 1 ) + '</B> ' + | |
1575 | + get_2ch_trip( PChar( tripOrigin ) ) + '<B>'; | |
1576 | + end; | |
1577 | + if Mail = '' then begin | |
1578 | + Result := Result + '<DT>' + No + ' F <FONT color="forestgreen"><B>' + NameWithTrip | |
1579 | + + '</B></FONT> F ' + DateTime+ '<BR><DD>' + Body + '<BR><BR><BR>' + #13#10 | |
1580 | + end else begin | |
1581 | + Result := Result + '<DT>' + No + ' F <A href="mailto:' + Mail + '"><B>' + NameWithTrip | |
1582 | + + '</B></A> [' + Mail + ']F ' + DateTime+ '<BR><DD>' + Body + '<BR><BR><BR>' + #13#10; | |
1583 | + end; | |
1584 | + Result := Result + '</BODY></HTML>'; | |
1547 | 1585 | |
1586 | +end; | |
1587 | +{ | |
1588 | +\brief \¦ÍÍOXÔ»è | |
1589 | +\param item \¦Xbh | |
1590 | +\param index XÔ | |
1591 | +\return ture:\¦ÍÍO false:\¦ÍÍà | |
1592 | +} | |
1593 | +function THTMLCreate.isOutsideRange( item: TThreadItem; index: Integer ): Boolean; | |
1594 | +begin | |
1595 | + Result := False; | |
1596 | + // \¦ÍÍðÀè | |
1597 | + case GikoSys.ResRange of | |
1598 | + Ord( grrKoko ): | |
1599 | + if item.Kokomade > (index + 1) then | |
1600 | + Result := True; | |
1601 | + Ord( grrNew ): | |
1602 | + if item.NewReceive > (index + 1) then | |
1603 | + Result := True; | |
1604 | + 10..65535: | |
1605 | + if (GikoSys.Setting.HeadResCount) < (index + 1) then begin | |
1606 | + if (item.Count - index) > GikoSys.ResRange then begin | |
1607 | + Result := True; | |
1608 | + end; | |
1609 | + end; | |
1610 | + end; | |
1611 | +end; | |
1548 | 1612 | constructor TBufferedWebBrowser.Create(Browser: TWebBrowser; BuffSize: Integer); |
1549 | 1613 | begin |
1550 | 1614 | inherited Create; |
@@ -0,0 +1,261 @@ | ||
1 | +unit HistoryList; | |
2 | + | |
3 | +interface | |
4 | + | |
5 | +uses | |
6 | + Windows, Messages, SysUtils, Classes, Graphics, Controls, | |
7 | + BoardGroup, Favorite, ComCtrls, GikoXMLDoc; | |
8 | + | |
9 | +type | |
10 | + TGikoTreeType = (gttNone, gtt2ch, gttHistory, gttFavorite); | |
11 | + | |
12 | + THistoryList = class(TList) | |
13 | + public | |
14 | + function AddHistory( favItem : TFavoriteThreadItem; TreeView : TTreeView; | |
15 | + TreeType: TGikoTreeType): Boolean; | |
16 | + procedure DeleteHistory( threadItem: TThreadItem; TreeView : TTreeView; | |
17 | + TreeType: TGikoTreeType ); | |
18 | + procedure Clear; override; | |
19 | + procedure SaveToFile(const FileName: String); | |
20 | + procedure LoadFromFile(const FileName: String; | |
21 | + TreeView : TTreeView; TreeType: TGikoTreeType); | |
22 | + procedure SetTreeNode( TreeView : TTreeView ); | |
23 | + | |
24 | + end; | |
25 | + | |
26 | + | |
27 | +implementation | |
28 | + | |
29 | +uses | |
30 | + Giko, GikoSystem, Setting, YofUtils, MojuUtils; | |
31 | + | |
32 | +const | |
33 | + ITEM_ICON_THREADLOG1 = 6; //XACRiO èj | |
34 | + ITEM_ICON_THREADLOG2 = 7; //XACRiO èj | |
35 | + | |
36 | + | |
37 | +function THistoryList.AddHistory( | |
38 | + favItem : TFavoriteThreadItem; TreeView : TTreeView; | |
39 | + TreeType: TGikoTreeType ): Boolean; | |
40 | +var | |
41 | + i: Integer; | |
42 | + Item: TFavoriteThreadItem; | |
43 | + Node: TTreeNode; | |
44 | +begin | |
45 | + Result := True; | |
46 | + if TreeType = gttHistory then | |
47 | + TreeView.Selected := nil; | |
48 | + | |
49 | + for i := 0 to Self.Count - 1 do begin | |
50 | + if TObject(Self[i]) is TFavoriteThreadItem then begin | |
51 | + Item := TFavoriteThreadItem(Self[i]); | |
52 | + if Item.URL = favItem.URL then begin | |
53 | + Self.Move(i, 0); | |
54 | + if TreeType = gttHistory then | |
55 | + if TreeView.Items.GetFirstNode <> TreeView.Items[ i ] then | |
56 | + TreeView.Items[ i ].MoveTo( TreeView.Items.GetFirstNode, naInsert ); | |
57 | + Result := false; | |
58 | + Exit; | |
59 | + end; | |
60 | + end; | |
61 | + end; | |
62 | + | |
63 | + if Self.Count > 0 then | |
64 | + Self.Insert( 0, favItem ) | |
65 | + else | |
66 | + Self.Add( favItem ); | |
67 | + | |
68 | + while GikoSys.Setting.MaxRecordCount < Self.Count do begin | |
69 | + i := Self.Count - 1; | |
70 | + TObject( Self.Items[ i ] ).Free; | |
71 | + Self.Delete( i ); | |
72 | + end; | |
73 | + | |
74 | + if TreeType = gttHistory then begin | |
75 | + Node := TreeView.Items.Add( nil, favItem.Title ); | |
76 | + Node.MoveTo( TreeView.Items.GetFirstNode, naInsert ); | |
77 | + { | |
78 | + if favItem.NewArrival then begin | |
79 | + Node.ImageIndex := ITEM_ICON_THREADNEW1; | |
80 | + Node.SelectedIndex := ITEM_ICON_THREADNEW2; | |
81 | + end else begin | |
82 | + Node.ImageIndex := ITEM_ICON_THREADLOG1; | |
83 | + Node.SelectedIndex := ITEM_ICON_THREADLOG2; | |
84 | + end; | |
85 | + } | |
86 | + // ×𩯽ȢÌÅ NewArrival Ì`FbNðsíÈ¢ | |
87 | + // ¦favItem.Item vpeBÍ dat ÌÇÝÝðKvÆ·é | |
88 | + Node.ImageIndex := ITEM_ICON_THREADLOG1; | |
89 | + Node.SelectedIndex := ITEM_ICON_THREADLOG2; | |
90 | + Node.Data := favItem; | |
91 | + //while GikoSys.Setting.AddressHistoryCount < TreeView.Items.Count do begin | |
92 | + while GikoSys.Setting.MaxRecordCount < TreeView.Items.Count do begin | |
93 | + i := TreeView.Items.Count - 1; | |
94 | + TreeView.Items.Item[ i ].Delete; | |
95 | + end; | |
96 | + end; | |
97 | +end; | |
98 | + | |
99 | +procedure THistoryList.DeleteHistory( threadItem: TThreadItem; | |
100 | + TreeView : TTreeView; TreeType: TGikoTreeType ); | |
101 | +var | |
102 | + i: Integer; | |
103 | + node: TTreeNode; | |
104 | +begin | |
105 | + // LrlbgÉðª\¦³êÄ¢½çA | |
106 | + // LrlbgàÌACeàí·éB | |
107 | + if (TreeType = gttHistory) then begin | |
108 | + node := TreeView.Items.GetFirstNode; | |
109 | + while (node <> nil) do begin | |
110 | + if ( TFavoriteThreadItem(node.Data).Item = threadItem ) then begin | |
111 | + TreeView.Items.Delete(node); | |
112 | + TreeView.Refresh; | |
113 | + node := nil; | |
114 | + end else begin | |
115 | + node := node.GetNext; | |
116 | + end; | |
117 | + end; | |
118 | + end; | |
119 | + for i := 0 to Self.Count - 1 do begin | |
120 | + if threadItem = TFavoriteThreadItem( Self.Items[i] ).Item then begin | |
121 | + TFavoriteThreadItem( Self.Items[ i ] ).Free; | |
122 | + Self.Delete(i); | |
123 | + Self.Capacity := Self.Count; | |
124 | + Break; | |
125 | + end; | |
126 | + end; | |
127 | +end; | |
128 | + | |
129 | +procedure THistoryList.Clear; | |
130 | +var | |
131 | + i : Integer; | |
132 | +begin | |
133 | + try | |
134 | + for i := Self.Count - 1 downto 0 do begin | |
135 | + if TObject(Self[ i ]) is TFavoriteThreadItem then | |
136 | + TFavoriteThreadItem(Self[ i ]).Free | |
137 | + else if TObject(Self[ i ]) is TFavoriteBoardItem then | |
138 | + TFavoriteBoardItem(Self[ i ]).Free; | |
139 | + end; | |
140 | + except | |
141 | + end; | |
142 | + | |
143 | + inherited Clear; | |
144 | + Self.Capacity := Self.Count; | |
145 | + | |
146 | +end; | |
147 | + | |
148 | +procedure THistoryList.SaveToFile(const FileName: String); | |
149 | +var | |
150 | + i, bound : Integer; | |
151 | + saveList : TstringList; | |
152 | +begin | |
153 | + | |
154 | + saveList := TStringList.Create; | |
155 | + try | |
156 | + Self.Pack; | |
157 | + Self.Capacity := Self.Count; | |
158 | + saveList.Add('<?xml version="1.0" encoding="Shift_JIS" standalone="yes"?>'); | |
159 | + saveList.Add('<address>'); | |
160 | + bound := Self.Count - 1; | |
161 | + for i := bound downto 0 do begin | |
162 | + // title Í¡ÌƱëgÁĢȢ | |
163 | + saveList.Add( | |
164 | + '<history url="' + HtmlEncode( TFavoriteThreadItem( Self[ i ] ).URL ) + '"' + | |
165 | + ' title="' + HtmlEncode( MojuUtils.Sanitize(TFavoriteThreadItem( Self[ i ] ).Title )) + '"/>'); | |
166 | + end; | |
167 | + saveList.Add('</address>'); | |
168 | + saveList.SaveToFile( FileName ); | |
169 | + finally | |
170 | + saveList.Free; | |
171 | + end; | |
172 | + | |
173 | +end; | |
174 | + | |
175 | +procedure THistoryList.LoadFromFile(const FileName: String; | |
176 | + TreeView : TTreeView; TreeType: TGikoTreeType); | |
177 | +var | |
178 | + i, bound : Integer; | |
179 | + XMLDoc : IXMLDocument; | |
180 | + XMLNode : IXMLNode; | |
181 | + HistoryNode : IXMLNode; | |
182 | + s : string; | |
183 | + favItem : TFavoriteThreadItem; | |
184 | +{$IFDEF DEBUG} | |
185 | + st, rt : Cardinal; | |
186 | +{$ENDIF} | |
187 | +begin | |
188 | +{$IFDEF DEBUG} | |
189 | + st := GetTickCount; | |
190 | +{$ENDIF} | |
191 | + if FileExists( FileName ) then begin | |
192 | + try | |
193 | + XMLDoc := IXMLDocument.Create; | |
194 | + //XMLDoc := LoadXMLDocument(FileName); | |
195 | + LoadXMLDocument(FileName, XMLDoc); | |
196 | + try | |
197 | + XMLNode := XMLDoc.DocumentElement; | |
198 | + | |
199 | + if XMLNode.NodeName = 'address' then begin | |
200 | + bound := XMLNode.ChildNodes.Count - 1; | |
201 | + for i := 0 to bound do begin | |
202 | + HistoryNode := XMLNode.ChildNodes[i]; | |
203 | + if HistoryNode.NodeName = 'history' then begin | |
204 | + //if FReadCount >= sl.Count then begin | |
205 | + s := Trim(HistoryNode.Attributes['url']); | |
206 | + if s <> '' then begin | |
207 | + favItem := TFavoriteThreadItem.Create( | |
208 | + s, MojuUtils.UnSanitize(HistoryNode.Attributes[ 'title' ]) ); | |
209 | + if not AddHistory( favItem, TreeView, TreeType ) then | |
210 | + favItem.Free; | |
211 | + end; | |
212 | + //end; | |
213 | + end; | |
214 | + end; | |
215 | + end; | |
216 | + finally | |
217 | + XMLDoc.Free; | |
218 | + end; | |
219 | + except | |
220 | + end; | |
221 | + end; | |
222 | +{$IFDEF DEBUG} | |
223 | + rt := GetTickCount - st; | |
224 | + Writeln('Runtime(Load Histroy) : ' + IntToStr(rt) + ' ms'); | |
225 | +{$ENDIF} | |
226 | + | |
227 | +end; | |
228 | +procedure THistoryList.SetTreeNode( | |
229 | + TreeView : TTreeView ); | |
230 | +var | |
231 | + i: Integer; | |
232 | + Node: TTreeNode; | |
233 | + Item: TFavoriteThreadItem; | |
234 | +begin | |
235 | + TreeView.Items.BeginUpdate; | |
236 | + try | |
237 | + TreeView.Items.Clear; | |
238 | + for i := 0 to Self.Count - 1 do begin | |
239 | + Item := TFavoriteThreadItem(Self[i]); | |
240 | + Node := TreeView.Items.Add(nil, Item.Title); | |
241 | + { | |
242 | + if Item.Item.NewArrival then begin | |
243 | + Node.ImageIndex := ITEM_ICON_THREADNEW1; | |
244 | + Node.SelectedIndex := ITEM_ICON_THREADNEW2; | |
245 | + end else begin | |
246 | + Node.ImageIndex := ITEM_ICON_THREADLOG1; | |
247 | + Node.SelectedIndex := ITEM_ICON_THREADLOG2; | |
248 | + end; | |
249 | + } | |
250 | + // ×𩯽ȢÌÅ NewArrival Ì`FbNðsíÈ¢ | |
251 | + // ¦Item.Item vpeBÍ dat ÌÇÝÝðKvÆ·é | |
252 | + Node.ImageIndex := ITEM_ICON_THREADLOG1; | |
253 | + Node.SelectedIndex := ITEM_ICON_THREADLOG2; | |
254 | + Node.Data := Item; | |
255 | + end; | |
256 | + finally | |
257 | + TreeView.Items.EndUpdate; | |
258 | + end; | |
259 | +end; | |
260 | + | |
261 | +end. |
@@ -1,7 +1,7 @@ | ||
1 | 1 | object InputAssistForm: TInputAssistForm |
2 | - Left = 589 | |
3 | - Top = 279 | |
4 | - Width = 397 | |
2 | + Left = 353 | |
3 | + Top = 196 | |
4 | + Width = 390 | |
5 | 5 | Height = 460 |
6 | 6 | Caption = #20837#21147#12450#12471#12473#12488#35373#23450 |
7 | 7 | Color = clBtnFace |
@@ -18,14 +18,14 @@ object InputAssistForm: TInputAssistForm | ||
18 | 18 | object Panel1: TPanel |
19 | 19 | Left = 0 |
20 | 20 | Top = 0 |
21 | - Width = 389 | |
21 | + Width = 382 | |
22 | 22 | Height = 200 |
23 | 23 | Align = alTop |
24 | 24 | BevelOuter = bvLowered |
25 | 25 | Caption = 'Panel1' |
26 | 26 | TabOrder = 0 |
27 | 27 | object Panel5: TPanel |
28 | - Left = 295 | |
28 | + Left = 288 | |
29 | 29 | Top = 33 |
30 | 30 | Width = 93 |
31 | 31 | Height = 166 |
@@ -71,16 +71,15 @@ object InputAssistForm: TInputAssistForm | ||
71 | 71 | object Panel6: TPanel |
72 | 72 | Left = 1 |
73 | 73 | Top = 33 |
74 | - Width = 294 | |
74 | + Width = 287 | |
75 | 75 | Height = 166 |
76 | 76 | Align = alClient |
77 | 77 | BevelOuter = bvNone |
78 | - Caption = 'Panel6' | |
79 | 78 | TabOrder = 1 |
80 | 79 | object GikoListView1: TGikoListView |
81 | 80 | Left = 0 |
82 | 81 | Top = 0 |
83 | - Width = 294 | |
82 | + Width = 287 | |
84 | 83 | Height = 166 |
85 | 84 | Align = alClient |
86 | 85 | Columns = <> |
@@ -97,10 +96,9 @@ object InputAssistForm: TInputAssistForm | ||
97 | 96 | object Panel7: TPanel |
98 | 97 | Left = 1 |
99 | 98 | Top = 1 |
100 | - Width = 387 | |
99 | + Width = 380 | |
101 | 100 | Height = 32 |
102 | 101 | Align = alTop |
103 | - Caption = 'Panel7' | |
104 | 102 | TabOrder = 2 |
105 | 103 | object CategoryComboLabel: TLabel |
106 | 104 | Left = 12 |
@@ -134,7 +132,7 @@ object InputAssistForm: TInputAssistForm | ||
134 | 132 | object Panel2: TPanel |
135 | 133 | Left = 0 |
136 | 134 | Top = 200 |
137 | - Width = 389 | |
135 | + Width = 382 | |
138 | 136 | Height = 233 |
139 | 137 | Align = alClient |
140 | 138 | BevelOuter = bvNone |
@@ -143,42 +141,76 @@ object InputAssistForm: TInputAssistForm | ||
143 | 141 | object Panel3: TPanel |
144 | 142 | Left = 0 |
145 | 143 | Top = 0 |
146 | - Width = 389 | |
144 | + Width = 382 | |
147 | 145 | Height = 48 |
148 | 146 | Align = alTop |
149 | 147 | BevelOuter = bvNone |
150 | 148 | TabOrder = 0 |
151 | - object KeyNameEdit: TLabeledEdit | |
152 | - Left = 8 | |
153 | - Top = 21 | |
154 | - Width = 161 | |
155 | - Height = 20 | |
156 | - Hint = #20837#21147#12395#20351#12358#12461#12540#21517 | |
157 | - EditLabel.Width = 36 | |
158 | - EditLabel.Height = 12 | |
159 | - EditLabel.Caption = #12461#12540#21517 | |
160 | - LabelPosition = lpAbove | |
161 | - LabelSpacing = 3 | |
149 | + object Splitter: TSplitter | |
150 | + Left = 185 | |
151 | + Top = 0 | |
152 | + Width = 8 | |
153 | + Height = 48 | |
154 | + Cursor = crHSplit | |
155 | + Beveled = True | |
156 | + end | |
157 | + object KeyPanel: TPanel | |
158 | + Left = 0 | |
159 | + Top = 0 | |
160 | + Width = 185 | |
161 | + Height = 48 | |
162 | + Align = alLeft | |
163 | + BevelOuter = bvNone | |
162 | 164 | TabOrder = 0 |
165 | + DesignSize = ( | |
166 | + 185 | |
167 | + 48) | |
168 | + object KeyNameEdit: TLabeledEdit | |
169 | + Left = 8 | |
170 | + Top = 21 | |
171 | + Width = 169 | |
172 | + Height = 20 | |
173 | + Hint = #20837#21147#12395#20351#12358#12461#12540#21517 | |
174 | + Anchors = [akLeft, akTop, akRight] | |
175 | + EditLabel.Width = 36 | |
176 | + EditLabel.Height = 12 | |
177 | + EditLabel.Caption = #12461#12540#21517 | |
178 | + LabelPosition = lpAbove | |
179 | + LabelSpacing = 3 | |
180 | + TabOrder = 0 | |
181 | + end | |
163 | 182 | end |
164 | - object CategoryNameEdit: TLabeledEdit | |
165 | - Left = 176 | |
166 | - Top = 21 | |
167 | - Width = 121 | |
168 | - Height = 20 | |
169 | - Hint = #20837#21147#12395#20351#12358#12459#12486#12468#12522#21517 | |
170 | - EditLabel.Width = 53 | |
171 | - EditLabel.Height = 12 | |
172 | - EditLabel.Caption = #12459#12486#12468#12522#21517 | |
173 | - LabelPosition = lpAbove | |
174 | - LabelSpacing = 3 | |
183 | + object CategoryPanel: TPanel | |
184 | + Left = 193 | |
185 | + Top = 0 | |
186 | + Width = 189 | |
187 | + Height = 48 | |
188 | + Align = alClient | |
189 | + BevelOuter = bvNone | |
175 | 190 | TabOrder = 1 |
191 | + DesignSize = ( | |
192 | + 189 | |
193 | + 48) | |
194 | + object CategoryNameEdit: TLabeledEdit | |
195 | + Left = 8 | |
196 | + Top = 21 | |
197 | + Width = 169 | |
198 | + Height = 20 | |
199 | + Hint = #20837#21147#12395#20351#12358#12459#12486#12468#12522#21517 | |
200 | + Anchors = [akLeft, akTop, akRight] | |
201 | + EditLabel.Width = 53 | |
202 | + EditLabel.Height = 12 | |
203 | + EditLabel.Caption = #12459#12486#12468#12522#21517 | |
204 | + LabelPosition = lpAbove | |
205 | + LabelSpacing = 3 | |
206 | + TabOrder = 0 | |
207 | + end | |
176 | 208 | end |
177 | 209 | end |
178 | 210 | object Panel4: TPanel |
179 | 211 | Left = 0 |
180 | 212 | Top = 48 |
181 | - Width = 389 | |
213 | + Width = 382 | |
182 | 214 | Height = 185 |
183 | 215 | Align = alClient |
184 | 216 | BevelOuter = bvNone |
@@ -186,7 +218,7 @@ object InputAssistForm: TInputAssistForm | ||
186 | 218 | object GroupBox1: TGroupBox |
187 | 219 | Left = 0 |
188 | 220 | Top = 0 |
189 | - Width = 389 | |
221 | + Width = 382 | |
190 | 222 | Height = 185 |
191 | 223 | Align = alClient |
192 | 224 | Caption = #25407#20837#25991#23383#21015 |
@@ -194,7 +226,7 @@ object InputAssistForm: TInputAssistForm | ||
194 | 226 | object TextMemo: TMemo |
195 | 227 | Left = 2 |
196 | 228 | Top = 14 |
197 | - Width = 385 | |
229 | + Width = 378 | |
198 | 230 | Height = 169 |
199 | 231 | Hint = #25407#20837#12377#12427#25991#23383#21015 |
200 | 232 | Align = alClient |
@@ -209,92 +241,7 @@ object InputAssistForm: TInputAssistForm | ||
209 | 241 | Top = 192 |
210 | 242 | Bitmap = { |
211 | 243 | 494C010102000400040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 |
212 | - 0000000000003600000028000000400000001000000001002000000000000010 | |
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 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
245 | - 000000000000000000000000000000000000000000000000000000000000FFFF | |
246 | - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 | |
247 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
248 | - 0000000000000000000080808000FFFFFF000000000000000000000000000000 | |
249 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
250 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
251 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
252 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
253 | - 0000000000000000000000000000000000000000000000000000000000008080 | |
254 | - 80008080800000000000000000000000000000000000FFFFFF00FFFFFF000000 | |
255 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
256 | - 0000000000008080800080808000FFFFFF00FFFFFF0000000000000000000000 | |
257 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
258 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
259 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
260 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
261 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
262 | - 00008080800000000000000000000000000000000000FFFFFF00000000000000 | |
263 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
264 | - 000000000000808080000000000000000000FFFFFF0000000000000000000000 | |
265 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
266 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
267 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
268 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
269 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
270 | - 000080808000808080000000000000000000FFFFFF00FFFFFF00000000000000 | |
271 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
272 | - 000080808000808080000000000000000000FFFFFF00FFFFFF00000000000000 | |
273 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
274 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
275 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
276 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
277 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
278 | - 000000000000808080000000000000000000FFFFFF0000000000000000000000 | |
279 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
280 | - 00008080800000000000000000000000000000000000FFFFFF00000000000000 | |
281 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
282 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
283 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
284 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
285 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
286 | - 0000000000008080800080808000FFFFFF00FFFFFF0000000000000000000000 | |
287 | - 0000000000000000000000000000000000000000000000000000000000008080 | |
288 | - 80008080800000000000000000000000000000000000FFFFFF00FFFFFF000000 | |
289 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
290 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
291 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
292 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
293 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
294 | - 0000000000000000000080808000FFFFFF000000000000000000000000000000 | |
295 | - 0000000000000000000000000000000000000000000000000000000000008080 | |
296 | - 8000808080008080800080808000808080008080800080808000808080000000 | |
297 | - 0000000000000000000000000000000000000000000000000000000000000000 | |
244 | + 0000000000003600000028000000400000001000000001001000000000000008 | |
298 | 245 | 0000000000000000000000000000000000000000000000000000000000000000 |
299 | 246 | 0000000000000000000000000000000000000000000000000000000000000000 |
300 | 247 | 0000000000000000000000000000000000000000000000000000000000000000 |
@@ -311,12 +258,33 @@ object InputAssistForm: TInputAssistForm | ||
311 | 258 | 0000000000000000000000000000000000000000000000000000000000000000 |
312 | 259 | 0000000000000000000000000000000000000000000000000000000000000000 |
313 | 260 | 0000000000000000000000000000000000000000000000000000000000000000 |
261 | + 000000000000000000000000000000000000000000000000FF7FFF7FFF7FFF7F | |
262 | + FF7FFF7FFF7FFF7F000000000000000000000000000000000000000000001042 | |
263 | + FF7F000000000000000000000000000000000000000000000000000000000000 | |
314 | 264 | 0000000000000000000000000000000000000000000000000000000000000000 |
265 | + 0000000000000000000000000000000000000000000000001042104200000000 | |
266 | + 00000000FF7FFF7F000000000000000000000000000000000000000010421042 | |
267 | + FF7FFF7F00000000000000000000000000000000000000000000000000000000 | |
315 | 268 | 0000000000000000000000000000000000000000000000000000000000000000 |
269 | + 0000000000000000000000000000000000000000000000000000104200000000 | |
270 | + 00000000FF7F0000000000000000000000000000000000000000000010420000 | |
271 | + 0000FF7F00000000000000000000000000000000000000000000000000000000 | |
316 | 272 | 0000000000000000000000000000000000000000000000000000000000000000 |
273 | + 0000000000000000000000000000000000000000000000000000104210420000 | |
274 | + 0000FF7FFF7F0000000000000000000000000000000000000000104210420000 | |
275 | + 0000FF7FFF7F0000000000000000000000000000000000000000000000000000 | |
317 | 276 | 0000000000000000000000000000000000000000000000000000000000000000 |
277 | + 0000000000000000000000000000000000000000000000000000000010420000 | |
278 | + 0000FF7F00000000000000000000000000000000000000000000104200000000 | |
279 | + 00000000FF7F0000000000000000000000000000000000000000000000000000 | |
318 | 280 | 0000000000000000000000000000000000000000000000000000000000000000 |
281 | + 0000000000000000000000000000000000000000000000000000000010421042 | |
282 | + FF7FFF7F00000000000000000000000000000000000000001042104200000000 | |
283 | + 00000000FF7FFF7F000000000000000000000000000000000000000000000000 | |
319 | 284 | 0000000000000000000000000000000000000000000000000000000000000000 |
285 | + 0000000000000000000000000000000000000000000000000000000000001042 | |
286 | + FF7F000000000000000000000000000000000000000000001042104210421042 | |
287 | + 1042104210421042000000000000000000000000000000000000000000000000 | |
320 | 288 | 0000000000000000000000000000000000000000000000000000000000000000 |
321 | 289 | 0000000000000000000000000000000000000000000000000000000000000000 |
322 | 290 | 0000000000000000000000000000000000000000000000000000000000000000 |
@@ -13,8 +13,6 @@ type | ||
13 | 13 | Panel2: TPanel; |
14 | 14 | GikoListView1: TGikoListView; |
15 | 15 | Panel3: TPanel; |
16 | - KeyNameEdit: TLabeledEdit; | |
17 | - CategoryNameEdit: TLabeledEdit; | |
18 | 16 | Panel4: TPanel; |
19 | 17 | TextMemo: TMemo; |
20 | 18 | ColumnImageList: TImageList; |
@@ -38,6 +36,11 @@ type | ||
38 | 36 | InsertButton: TButton; |
39 | 37 | InsertButtonAction: TAction; |
40 | 38 | CloseAction: TAction; |
39 | + KeyPanel: TPanel; | |
40 | + KeyNameEdit: TLabeledEdit; | |
41 | + Splitter: TSplitter; | |
42 | + CategoryPanel: TPanel; | |
43 | + CategoryNameEdit: TLabeledEdit; | |
41 | 44 | procedure FormCreate(Sender: TObject); |
42 | 45 | procedure GikoListView1SelectItem(Sender: TObject; Item: TListItem; |
43 | 46 | Selected: Boolean); |
@@ -1089,6 +1089,7 @@ begin | ||
1089 | 1089 | end; |
1090 | 1090 | //Xg(subject.txt)ðÛ¶ |
1091 | 1091 | GikoSys.ForceDirectoriesEx(ExtractFilePath(Board.GetSubjectFileName)); |
1092 | + Body.Text := MojuUtils.Sanitize(Body.Text); | |
1092 | 1093 | Body.SaveToFile(Board.GetSubjectFileName); |
1093 | 1094 | end; |
1094 | 1095 | finally |
@@ -358,6 +358,7 @@ end; | ||
358 | 358 | procedure TKeySettingForm.OnGestureEnd(Sender: TObject); |
359 | 359 | begin |
360 | 360 | GestureEdit.Text := MouseGesture.GetGestureStr; |
361 | + MouseGesture.Clear; | |
361 | 362 | end; |
362 | 363 | |
363 | 364 | procedure TKeySettingForm.GestureCheckBoxClick(Sender: TObject); |
@@ -1,6 +1,6 @@ | ||
1 | 1 | object KuroutOption: TKuroutOption |
2 | - Left = 285 | |
3 | - Top = 132 | |
2 | + Left = 319 | |
3 | + Top = 169 | |
4 | 4 | Width = 525 |
5 | 5 | Height = 457 |
6 | 6 | Caption = #35443#32048#35373#23450 |
@@ -21,8 +21,8 @@ object KuroutOption: TKuroutOption | ||
21 | 21 | Top = 0 |
22 | 22 | Width = 517 |
23 | 23 | Height = 393 |
24 | - ActivePage = TabSheet1 | |
25 | - TabIndex = 0 | |
24 | + ActivePage = KakikomiTabSheet | |
25 | + TabIndex = 2 | |
26 | 26 | TabOrder = 0 |
27 | 27 | object TabSheet1: TTabSheet |
28 | 28 | Caption = #35443#32048#35373#23450#65297 |
@@ -395,6 +395,69 @@ object KuroutOption: TKuroutOption | ||
395 | 395 | TabOrder = 0 |
396 | 396 | end |
397 | 397 | end |
398 | + object GroupBox3: TGroupBox | |
399 | + Left = 16 | |
400 | + Top = 126 | |
401 | + Width = 473 | |
402 | + Height = 51 | |
403 | + Caption = #12522#12531#12463#31227#21205#23653#27508 | |
404 | + TabOrder = 1 | |
405 | + object Label10: TLabel | |
406 | + Left = 8 | |
407 | + Top = 20 | |
408 | + Width = 84 | |
409 | + Height = 12 | |
410 | + Caption = #23653#27508#26368#22823#20445#25345#25968 | |
411 | + end | |
412 | + object Label11: TLabel | |
413 | + Left = 227 | |
414 | + Top = 20 | |
415 | + Width = 158 | |
416 | + Height = 12 | |
417 | + Caption = #65288#12487#12501#12457#12523#12488'=20 '#20877#36215#21205#24460#26377#21177#65289 | |
418 | + end | |
419 | + object MoveHistoryMaxEdit: TEdit | |
420 | + Left = 112 | |
421 | + Top = 16 | |
422 | + Width = 105 | |
423 | + Height = 20 | |
424 | + TabOrder = 0 | |
425 | + OnExit = MoveHistoryMaxEditExit | |
426 | + end | |
427 | + end | |
428 | + object AHandredGroupBox: TGroupBox | |
429 | + Left = 16 | |
430 | + Top = 192 | |
431 | + Width = 465 | |
432 | + Height = 65 | |
433 | + Caption = '100'#12524#12473#34920#31034#35373#23450 | |
434 | + TabOrder = 2 | |
435 | + object AHandredLabeledEdit: TLabeledEdit | |
436 | + Left = 96 | |
437 | + Top = 24 | |
438 | + Width = 73 | |
439 | + Height = 20 | |
440 | + EditLabel.Width = 81 | |
441 | + EditLabel.Height = 12 | |
442 | + EditLabel.Caption = #20808#38957#34920#31034#12524#12473#25968 | |
443 | + LabelPosition = lpLeft | |
444 | + LabelSpacing = 3 | |
445 | + TabOrder = 0 | |
446 | + Text = '1' | |
447 | + OnExit = AHandredLabeledEditExit | |
448 | + end | |
449 | + object UpDown1: TUpDown | |
450 | + Left = 169 | |
451 | + Top = 24 | |
452 | + Width = 15 | |
453 | + Height = 20 | |
454 | + Associate = AHandredLabeledEdit | |
455 | + Min = 1 | |
456 | + Position = 1 | |
457 | + TabOrder = 1 | |
458 | + Wrap = False | |
459 | + end | |
460 | + end | |
398 | 461 | end |
399 | 462 | end |
400 | 463 | object OkBotton: TButton |
@@ -4,7 +4,7 @@ interface | ||
4 | 4 | |
5 | 5 | uses |
6 | 6 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, |
7 | - Dialogs, StdCtrls, ComCtrls, GikoSystem, GikoUtil; | |
7 | + Dialogs, StdCtrls, ComCtrls, GikoSystem, GikoUtil, ExtCtrls; | |
8 | 8 | |
9 | 9 | type |
10 | 10 | TKuroutOption = class(TForm) |
@@ -61,6 +61,13 @@ type | ||
61 | 61 | Label8: TLabel; |
62 | 62 | FixedCookieEdit: TEdit; |
63 | 63 | Label9: TLabel; |
64 | + GroupBox3: TGroupBox; | |
65 | + Label10: TLabel; | |
66 | + MoveHistoryMaxEdit: TEdit; | |
67 | + Label11: TLabel; | |
68 | + AHandredGroupBox: TGroupBox; | |
69 | + AHandredLabeledEdit: TLabeledEdit; | |
70 | + UpDown1: TUpDown; | |
64 | 71 | procedure OkBottonClick(Sender: TObject); |
65 | 72 | procedure FormCreate(Sender: TObject); |
66 | 73 | procedure CDeleteButtonClick(Sender: TObject); |
@@ -71,6 +78,8 @@ type | ||
71 | 78 | procedure CDownButtonClick(Sender: TObject); |
72 | 79 | procedure BUpButtonClick(Sender: TObject); |
73 | 80 | procedure BDownButtonClick(Sender: TObject); |
81 | + procedure MoveHistoryMaxEditExit(Sender: TObject); | |
82 | + procedure AHandredLabeledEditExit(Sender: TObject); | |
74 | 83 | private |
75 | 84 | { Private é¾ } |
76 | 85 | procedure SetValue; |
@@ -123,6 +132,10 @@ begin | ||
123 | 132 | RemoteTrapAtt.Checked := GikoSys.Setting.RemoteTrapAtt; |
124 | 133 | // Cookie |
125 | 134 | FixedCookieEdit.Text := GikoSys.Setting.FixedCookie; |
135 | + // NÚ®ð | |
136 | + MoveHistoryMaxEdit.Text := IntToStr( GikoSys.Setting.MoveHistorySize ); | |
137 | + //@æª\¦X | |
138 | + AHandredLabeledEdit.Text := IntToStr( GikoSys.Setting.HeadResCount ); | |
126 | 139 | end; |
127 | 140 | |
128 | 141 | procedure TKuroutOption.SaveSetting; |
@@ -150,6 +163,13 @@ begin | ||
150 | 163 | // Cookie |
151 | 164 | GikoSys.Setting.FixedCookie := FixedCookieEdit.Text; |
152 | 165 | |
166 | + // NÚ®ð | |
167 | + GikoSys.Setting.MoveHistorySize := | |
168 | + StrToIntDef( MoveHistoryMaxEdit.Text, 20 ); | |
169 | + | |
170 | + //@æª\¦X | |
171 | + GikoSys.Setting.HeadResCount := | |
172 | + StrToIntDef( AHandredLabeledEdit.Text , 1); | |
153 | 173 | |
154 | 174 | GikoSys.Setting.KuroutSettingTabIndex := PageControl1.ActivePageIndex; |
155 | 175 | end; |
@@ -180,7 +200,9 @@ procedure TKuroutOption.OkBottonClick(Sender: TObject); | ||
180 | 200 | begin |
181 | 201 | RecvBufferSizeExit(Sender); |
182 | 202 | PostTimeEditExit(Sender); |
183 | - PostColumnData(); | |
203 | + MoveHistoryMaxEditExit(Sender); | |
204 | + AHandredLabeledEditExit(Sender); | |
205 | + PostColumnData(); | |
184 | 206 | SaveSetting; |
185 | 207 | end; |
186 | 208 |
@@ -376,5 +398,22 @@ begin | ||
376 | 398 | //XêÌ`æÌXV |
377 | 399 | GikoForm.SetActiveList(GikoForm.ActiveList); |
378 | 400 | end; |
401 | +// NÚ®ðÌÒWãÌÝè¶ñ`FbN | |
402 | +procedure TKuroutOption.MoveHistoryMaxEditExit(Sender: TObject); | |
403 | +begin | |
404 | + if not GikoSys.IsNumeric(MoveHistoryMaxEdit.Text) then | |
405 | + MoveHistoryMaxEdit.Text := '20'; | |
406 | + if StrToInt(MoveHistoryMaxEdit.Text) < 1 then | |
407 | + MoveHistoryMaxEdit.Text := '1'; | |
408 | +end; | |
409 | +// æª\¦XÌÒWãÌÝè¶ñ`FbN | |
410 | +procedure TKuroutOption.AHandredLabeledEditExit(Sender: TObject); | |
411 | +begin | |
412 | + if not GikoSys.IsNumeric(AHandredLabeledEdit.Text) then | |
413 | + AHandredLabeledEdit.Text := '1'; | |
414 | + if StrToInt(AHandredLabeledEdit.Text) < 1 then | |
415 | + AHandredLabeledEdit.Text := '1'; | |
416 | + | |
417 | +end; | |
379 | 418 | |
380 | 419 | end. |
@@ -0,0 +1,182 @@ | ||
1 | +unit MoveHistoryItem; | |
2 | + | |
3 | +interface | |
4 | + | |
5 | +uses | |
6 | + SysUtils, Classes, BoardGroup, BrowserRecord, | |
7 | +{$IF Defined(DELPRO) } | |
8 | + SHDocVw, | |
9 | + MSHTML, | |
10 | +{$ELSE} | |
11 | + SHDocVw_TLB, | |
12 | + MSHTML_TLB, | |
13 | +{$IFEND} | |
14 | + OleCtrls, ActiveX; | |
15 | +type | |
16 | + | |
17 | + TMoveHistoryItem = class(TObject) | |
18 | + private | |
19 | + FThreadItem : TThreadItem; | |
20 | + FScrollTop : Integer; | |
21 | + public | |
22 | + property ThreadItem : TThreadItem read FThreadItem write FThreadItem; | |
23 | + property ScrollTop : Integer read FScrollTop write FScrollTop; | |
24 | + end; | |
25 | + | |
26 | + TMoveHistory = class(TList) | |
27 | + private | |
28 | + FHistoryMax : Integer; | |
29 | + FIndex : Integer; | |
30 | + { | |
31 | + \brief NÚ®ðÅåÛðÝè·éB | |
32 | + \param AVal Û | |
33 | + } | |
34 | + procedure SetHistoryMax(AVal: Integer); | |
35 | + { | |
36 | + \brief NÚ®ðÅåÛðæ¾·éB | |
37 | + \return Û( > 0 ) | |
38 | + } | |
39 | + function GetHistoryMax: Integer; | |
40 | + public | |
41 | + constructor Create( max : Integer ); overload; | |
42 | + function pushItem( item: TMoveHistoryItem): Integer; overload; | |
43 | + function pushItem( item: TBrowserRecord): Integer; overload; | |
44 | + function getPrevItem( item: TBrowserRecord): TMoveHistoryItem; | |
45 | + function getNextItem: TMoveHistoryItem; | |
46 | + procedure clear; override; | |
47 | + property HistoryMax : Integer read GetHistoryMax write SetHistoryMax; | |
48 | + property HisotryIndex: Integer read FIndex; | |
49 | + end; | |
50 | + | |
51 | +var | |
52 | + MoveHisotryManager : TMoveHistory; | |
53 | + | |
54 | +implementation | |
55 | + | |
56 | +uses | |
57 | + GikoSystem; | |
58 | + | |
59 | + | |
60 | +//! RXgN^ | |
61 | +constructor TMoveHistory.Create( max : Integer ); | |
62 | +begin | |
63 | + inherited Create; | |
64 | + | |
65 | + FIndex := 0; | |
66 | + | |
67 | + SetHistoryMax( GikoSys.Setting.MoveHistorySize ); | |
68 | +end; | |
69 | +//! Ú®ðÌACeÇÁ | |
70 | +function TMoveHistory.pushItem( item: TMoveHistoryItem): Integer; | |
71 | +var | |
72 | + i : Integer; | |
73 | + top: TMoveHistoryItem; | |
74 | +begin | |
75 | + Result := -1; | |
76 | + if (Self.Count > 0) then begin | |
77 | + top := TMoveHistoryItem( Self.Items[Self.Count - 1] ); | |
78 | + if (top.FThreadItem = item.FThreadItem) and | |
79 | + (top.FScrollTop = item.FScrollTop) then begin | |
80 | + Exit; | |
81 | + end; | |
82 | + end; | |
83 | + // ÛÌÅålð´¦éêæªðí | |
84 | + if (FIndex + 1 > FHistoryMax) then begin | |
85 | + if ( Self.Items[0] <> nil ) then begin | |
86 | + TMoveHistoryItem( Self.Items[0] ).Free; | |
87 | + end; | |
88 | + Self.Delete(0); | |
89 | + Dec(Findex); | |
90 | + end; | |
91 | + // FIndexæèãëÌACeðí·é | |
92 | + for i := Self.Count - 1 downto Findex do begin | |
93 | + if (Self.Items [i] <> nil) then begin | |
94 | + TMoveHistoryItem( Self.Items[i] ).Free; | |
95 | + end; | |
96 | + Self.Delete(i); | |
97 | + end; | |
98 | + Inc(FIndex); | |
99 | + Result := Self.Add( item ); | |
100 | +end; | |
101 | +//! Ú®ðÌACeÇÁ | |
102 | +function TMoveHistory.pushItem( item: TBrowserRecord): Integer; | |
103 | +var | |
104 | + history : TMoveHistoryItem; | |
105 | + doc : OleVariant; | |
106 | +begin | |
107 | + Result := -1; | |
108 | + if ( item <> nil ) and ( item.Thread <> nil ) | |
109 | + and ( item.Browser <> nil) then begin | |
110 | + history := TMoveHistoryItem.Create; | |
111 | + history.FThreadItem := item.Thread; | |
112 | + doc := Idispatch( olevariant(item.Browser.ControlInterface).Document) as IHTMLDocument2; | |
113 | + history.ScrollTop := doc.Body.ScrollTop; | |
114 | + | |
115 | + Result := pushItem( history ); | |
116 | + end; | |
117 | +end; | |
118 | +//! êÂOÌðACeæ¾ | |
119 | +function TMoveHistory.getPrevItem(item: TBrowserRecord): TMoveHistoryItem; | |
120 | +begin | |
121 | + Result := nil; | |
122 | + if (FIndex = Self.Count) and (item <> nil) then begin | |
123 | + pushItem( item ); | |
124 | + Dec(FIndex); | |
125 | + end; | |
126 | + if ( FIndex > 0 ) then begin | |
127 | + Dec( FIndex ); | |
128 | + Result := TMoveHistoryItem( Self.items[ FIndex ] ); | |
129 | + end; | |
130 | +end; | |
131 | +//! êÂãëÌðACeæ¾ | |
132 | +function TMoveHistory.getNextItem: TMoveHistoryItem; | |
133 | +begin | |
134 | + Result := nil; | |
135 | + if ( FIndex < Self.Count - 1 ) then begin | |
136 | + Inc( FIndex ); | |
137 | + Result := TMoveHistoryItem( Self.items[ FIndex ] ); | |
138 | + end; | |
139 | +end; | |
140 | +//! ðÌSÁ | |
141 | +procedure TMoveHistory.clear; | |
142 | +var | |
143 | + i : Integer; | |
144 | +begin | |
145 | + // ACeðí·é | |
146 | + for i := Self.Count - 1 downto 0 do begin | |
147 | + if (Self.Items [i] <> nil) then begin | |
148 | + TMoveHistoryItem( Self.Items[i] ).Free; | |
149 | + end; | |
150 | + Self.Delete(i); | |
151 | + end; | |
152 | + Self.Capacity := 0; | |
153 | + FIndex := 0; | |
154 | + inherited; | |
155 | +end; | |
156 | + | |
157 | +procedure TMoveHistory.SetHistoryMax(AVal: Integer); | |
158 | +begin | |
159 | + // ðÌTCYÍ0æèå«È¢Æ¢¯È¢ | |
160 | + if ( AVal > 0 ) then begin | |
161 | + if ((AVal + 1) <> FHistoryMax) then begin | |
162 | + Self.clear; | |
163 | + // Ú®µ½ÛÉAßéNð1«·ÌÅ | |
164 | + FHistoryMax := AVal + 1; | |
165 | + end; | |
166 | + end; | |
167 | +end; | |
168 | +function TMoveHistory.GetHistoryMax: Integer; | |
169 | +begin | |
170 | + // Ú®µ½ÛÉAßéNð1«·ÌÅ | |
171 | + Result := FHistoryMax - 1; | |
172 | +end; | |
173 | +initialization | |
174 | + MoveHisotryManager := TMoveHistory.Create( 20 ); | |
175 | + | |
176 | +finalization | |
177 | + if MoveHisotryManager <> nil then begin | |
178 | + MoveHisotryManager.clear; | |
179 | + MoveHisotryManager.Free; | |
180 | + MoveHisotryManager := nil; | |
181 | + end; | |
182 | +end. |
@@ -1,6 +1,6 @@ | ||
1 | 1 | object NewBoardDialog: TNewBoardDialog |
2 | - Left = 276 | |
3 | - Top = 325 | |
2 | + Left = 337 | |
3 | + Top = 197 | |
4 | 4 | BorderStyle = bsDialog |
5 | 5 | Caption = #26495#19968#35239#26356#26032 |
6 | 6 | ClientHeight = 329 |
@@ -44,6 +44,7 @@ type | ||
44 | 44 | procedure UpdateIgnoreList(Sender: TObject); |
45 | 45 | public |
46 | 46 | { Public é¾ } |
47 | + class procedure InitHTTPClient(client : TIdHTTP); | |
47 | 48 | end; |
48 | 49 | |
49 | 50 | var |
@@ -119,32 +120,8 @@ var | ||
119 | 120 | s: string; |
120 | 121 | i: Integer; |
121 | 122 | begin |
122 | - Indy.Request.Clear; | |
123 | - Indy.RecvBufferSize := Gikosys.Setting.RecvBufferSize; | |
124 | - Indy.ProxyParams.BasicAuthentication := False; | |
125 | - if GikoSys.Setting.ReadProxy then begin | |
126 | - if GikoSys.Setting.ProxyProtocol then | |
127 | - Indy.ProtocolVersion := pv1_1 | |
128 | - else | |
129 | - Indy.ProtocolVersion := pv1_0; | |
130 | - Indy.ProxyParams.ProxyServer := GikoSys.Setting.ReadProxyAddress; | |
131 | - Indy.ProxyParams.ProxyPort := GikoSys.Setting.ReadProxyPort; | |
132 | - Indy.ProxyParams.ProxyUsername := GikoSys.Setting.ReadProxyUserID; | |
133 | - Indy.ProxyParams.ProxyPassword := GikoSys.Setting.ReadProxyPassword; | |
134 | - if GikoSys.Setting.ReadProxyUserID <> '' then | |
135 | - Indy.ProxyParams.BasicAuthentication := True; | |
136 | - end else begin | |
137 | - if GikoSys.Setting.Protocol then | |
138 | - Indy.ProtocolVersion := pv1_1 | |
139 | - else | |
140 | - Indy.ProtocolVersion := pv1_0; | |
141 | - Indy.ProxyParams.ProxyServer := ''; | |
142 | - Indy.ProxyParams.ProxyPort := 80; | |
143 | - Indy.ProxyParams.ProxyUsername := ''; | |
144 | - Indy.ProxyParams.ProxyPassword := ''; | |
145 | - end; | |
146 | - //URL := GikoSys.Setting.BoardURL2ch; | |
147 | - //URL := BoardURLComboBox.Text; | |
123 | + InitHTTPClient( Indy ); | |
124 | + | |
148 | 125 | Indy.Request.UserAgent := GikoSys.GetUserAgent; |
149 | 126 | Indy.Request.Referer := ''; |
150 | 127 | Indy.Request.AcceptEncoding := 'gzip'; |
@@ -433,4 +410,33 @@ begin | ||
433 | 410 | end; |
434 | 411 | end; |
435 | 412 | end; |
413 | + | |
414 | +class procedure TNewBoardDialog.InitHTTPClient(client : TIdHTTP); | |
415 | +begin | |
416 | + client.Request.Clear; | |
417 | + client.Request.CustomHeaders.Clear; | |
418 | + client.RecvBufferSize := Gikosys.Setting.RecvBufferSize; | |
419 | + client.ProxyParams.BasicAuthentication := False; | |
420 | + if GikoSys.Setting.ReadProxy then begin | |
421 | + if GikoSys.Setting.ProxyProtocol then | |
422 | + client.ProtocolVersion := pv1_1 | |
423 | + else | |
424 | + client.ProtocolVersion := pv1_0; | |
425 | + client.ProxyParams.ProxyServer := GikoSys.Setting.ReadProxyAddress; | |
426 | + client.ProxyParams.ProxyPort := GikoSys.Setting.ReadProxyPort; | |
427 | + client.ProxyParams.ProxyUsername := GikoSys.Setting.ReadProxyUserID; | |
428 | + client.ProxyParams.ProxyPassword := GikoSys.Setting.ReadProxyPassword; | |
429 | + if GikoSys.Setting.ReadProxyUserID <> '' then | |
430 | + client.ProxyParams.BasicAuthentication := True; | |
431 | + end else begin | |
432 | + if GikoSys.Setting.Protocol then | |
433 | + client.ProtocolVersion := pv1_1 | |
434 | + else | |
435 | + client.ProtocolVersion := pv1_0; | |
436 | + client.ProxyParams.ProxyServer := ''; | |
437 | + client.ProxyParams.ProxyPort := 80; | |
438 | + client.ProxyParams.ProxyUsername := ''; | |
439 | + client.ProxyParams.ProxyPassword := ''; | |
440 | + end; | |
441 | +end; | |
436 | 442 | end. |
@@ -0,0 +1,84 @@ | ||
1 | +object NewBoardURLForm: TNewBoardURLForm | |
2 | + Left = 380 | |
3 | + Top = 187 | |
4 | + Width = 495 | |
5 | + Height = 313 | |
6 | + Caption = #26495#31227#36578#20808#26908#32034 | |
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 | + FormStyle = fsStayOnTop | |
14 | + OldCreateOrder = False | |
15 | + OnCreate = FormCreate | |
16 | + PixelsPerInch = 96 | |
17 | + TextHeight = 12 | |
18 | + object CategoryLabel: TLabel | |
19 | + Left = 24 | |
20 | + Top = 16 | |
21 | + Width = 53 | |
22 | + Height = 12 | |
23 | + Caption = #12459#12486#12468#12522#21517 | |
24 | + end | |
25 | + object CategoryComboBox: TComboBox | |
26 | + Left = 88 | |
27 | + Top = 13 | |
28 | + Width = 145 | |
29 | + Height = 20 | |
30 | + ItemHeight = 12 | |
31 | + TabOrder = 0 | |
32 | + Text = 'CategoryComboBox' | |
33 | + end | |
34 | + object SearchButton: TButton | |
35 | + Left = 256 | |
36 | + Top = 8 | |
37 | + Width = 75 | |
38 | + Height = 25 | |
39 | + Caption = #26908#32034'(&s)' | |
40 | + TabOrder = 1 | |
41 | + OnClick = SearchButtonClick | |
42 | + end | |
43 | + object ResultMemo: TMemo | |
44 | + Left = 24 | |
45 | + Top = 48 | |
46 | + Width = 457 | |
47 | + Height = 225 | |
48 | + Lines.Strings = ( | |
49 | + 'ResultMemo') | |
50 | + ScrollBars = ssVertical | |
51 | + TabOrder = 2 | |
52 | + end | |
53 | + object CloseButton: TButton | |
54 | + Left = 352 | |
55 | + Top = 8 | |
56 | + Width = 75 | |
57 | + Height = 25 | |
58 | + Caption = #38281#12376#12427 | |
59 | + ModalResult = 1 | |
60 | + TabOrder = 3 | |
61 | + end | |
62 | + object IdHTTP: TIdHTTP | |
63 | + MaxLineAction = maException | |
64 | + AllowCookies = True | |
65 | + HandleRedirects = True | |
66 | + ProxyParams.BasicAuthentication = False | |
67 | + ProxyParams.ProxyPort = 0 | |
68 | + Request.ContentLength = -1 | |
69 | + Request.ContentRangeEnd = 0 | |
70 | + Request.ContentRangeStart = 0 | |
71 | + Request.Accept = 'text/html, */*' | |
72 | + Request.BasicAuthentication = False | |
73 | + Request.UserAgent = 'Mozilla/3.0 (compatible; Indy Library)' | |
74 | + HTTPOptions = [hoForceEncodeParams] | |
75 | + OnRedirect = IdHTTPRedirect | |
76 | + Left = 408 | |
77 | + Top = 16 | |
78 | + end | |
79 | + object IdAntiFreeze: TIdAntiFreeze | |
80 | + Active = False | |
81 | + Left = 448 | |
82 | + Top = 16 | |
83 | + end | |
84 | +end |
@@ -0,0 +1,226 @@ | ||
1 | +unit NewBoardURL; | |
2 | + | |
3 | +interface | |
4 | + | |
5 | +uses | |
6 | + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, | |
7 | + Dialogs, IdAntiFreezeBase, IdAntiFreeze, IdBaseComponent, IdComponent, | |
8 | + IdTCPConnection, IdTCPClient, IdHTTP, StdCtrls, | |
9 | + BoardGroup; | |
10 | + | |
11 | +type | |
12 | + TNewBoardURLForm = class(TForm) | |
13 | + CategoryComboBox: TComboBox; | |
14 | + CategoryLabel: TLabel; | |
15 | + IdHTTP: TIdHTTP; | |
16 | + IdAntiFreeze: TIdAntiFreeze; | |
17 | + SearchButton: TButton; | |
18 | + ResultMemo: TMemo; | |
19 | + CloseButton: TButton; | |
20 | + procedure FormCreate(Sender: TObject); | |
21 | + procedure SearchButtonClick(Sender: TObject); | |
22 | + procedure IdHTTPRedirect(Sender: TObject; var dest: String; | |
23 | + var NumRedirect: Integer; var Handled: Boolean; | |
24 | + var VMethod: TIdHTTPMethod); | |
25 | + private | |
26 | + { Private é¾ } | |
27 | + function GetRedirectURL(const html: string): string; | |
28 | + procedure GetBoardURLs(urls : TStringList); | |
29 | + procedure ReplaceURLs(oldurls, newurls: TStringList); | |
30 | + public | |
31 | + { Public é¾ } | |
32 | + end; | |
33 | + | |
34 | +var | |
35 | + NewBoardURLForm: TNewBoardURLForm; | |
36 | + | |
37 | +implementation | |
38 | + | |
39 | +uses | |
40 | + GikoSystem, NewBoard, Giko, IniFiles, MojuUtils, GikoDataModule; | |
41 | +{$R *.dfm} | |
42 | +//! RXgN^ | |
43 | +procedure TNewBoardURLForm.FormCreate(Sender: TObject); | |
44 | +var | |
45 | + i : Integer; | |
46 | + ini : TMemIniFile; | |
47 | + sec : TStringList; | |
48 | +begin | |
49 | + sec := TStringList.Create; | |
50 | + ini := TMemIniFile.Create(GikoSys.GetBoardFileName); | |
51 | + ini.ReadSections(sec); | |
52 | + | |
53 | + CategoryComboBox.Clear; | |
54 | + CategoryComboBox.Items.BeginUpdate; | |
55 | + for i := 0 to sec.Count - 1 do begin | |
56 | + CategoryComboBox.Items.Add(sec[i]); | |
57 | + end; | |
58 | + CategoryComboBox.Items.EndUpdate; | |
59 | + CategoryComboBox.ItemIndex := 0; | |
60 | + | |
61 | + ResultMemo.Lines.Clear; | |
62 | +end; | |
63 | + | |
64 | +procedure TNewBoardURLForm.SearchButtonClick(Sender: TObject); | |
65 | +var | |
66 | + i : Integer; | |
67 | + value : string; | |
68 | + ResStream: TMemoryStream; | |
69 | + URLs : TStringList; | |
70 | + oldURLs : TStringList; | |
71 | + newURLs : TStringList; | |
72 | + oldURL, newURL : string; | |
73 | + TabURLs : TStringList; | |
74 | +begin | |
75 | + ResultMemo.Lines.Clear; | |
76 | + URLs := TStringList.Create; | |
77 | + Screen.Cursor := crHourGlass; | |
78 | + SearchButton.Enabled := False; | |
79 | + try | |
80 | + GetBoardURLs( URLs ); | |
81 | + if URLs.Count > 0 then begin | |
82 | + ResStream := TMemoryStream.Create; | |
83 | + oldURLs := TStringList.Create; | |
84 | + newURLs := TStringList.Create; | |
85 | + | |
86 | + try | |
87 | + TNewBoardDialog.InitHTTPClient(IdHTTP); | |
88 | + IdHTTP.Request.Referer := ''; | |
89 | + IdHTTP.Request.AcceptEncoding := 'gzip'; | |
90 | + | |
91 | + IdHTTP.Request.CacheControl := 'no-cache'; | |
92 | + IdHTTP.Request.CustomHeaders.Add('Pragma: no-cache'); | |
93 | + IdHTTP.HandleRedirects := false; | |
94 | + for i := 0 to URLs.Count - 1 do begin | |
95 | + IdAntiFreeze.Active := true; | |
96 | + try | |
97 | + ResStream.Clear; | |
98 | + IdHTTP.Get(URLs[i], ResStream); | |
99 | + value := GikoSys.GzipDecompress(ResStream, | |
100 | + IdHTTP.Response.ContentEncoding); | |
101 | + newURL := GetRedirectURL(value); | |
102 | + if (newURL = '') then begin | |
103 | + newURL := IdHTTP.Response.Location; | |
104 | + end; | |
105 | + if (newURL <> '') then begin | |
106 | + oldURL := URLs[i]; | |
107 | + ResultMemo.Lines.Add('URL:' + oldURL + ' -> ' + newURL); | |
108 | + if (newURL <> '') then begin | |
109 | + oldURLs.Add( oldURL ); | |
110 | + newURLs.Add( newURL ); | |
111 | + end; | |
112 | + end; | |
113 | + except | |
114 | + on E: Exception do begin | |
115 | + {$IFDEF DEBUG} | |
116 | + Writeln(IdHTTP.ResponseText); | |
117 | + {$ENDIF} | |
118 | + end; | |
119 | + end; | |
120 | + IdAntiFreeze.Active := false; | |
121 | + end; | |
122 | + | |
123 | + if (newURLs.Count > 0) and (oldURLs.Count > 0) then begin | |
124 | + ReplaceURLs(oldURLs, newURLs); | |
125 | + GikoForm.FavoritesURLReplace(oldURLs, newURLs); | |
126 | + GikoForm.RoundListURLReplace(oldURLs, newURLs); | |
127 | + GikoForm.TabFileURLReplace(oldURLs, newURLs); | |
128 | + ResultMemo.Lines.Add('ÂÚ]æõª®¹µÜµ½'); | |
129 | + | |
130 | + TabURLs := TStringList.Create; | |
131 | + try | |
132 | + GikoDM.GetTabURLs(TabURLs); | |
133 | + GikoForm.ReloadBBS; | |
134 | + GikoDM.OpenURLs(TabURLs); | |
135 | + finally | |
136 | + TabURLs.Free; | |
137 | + end; | |
138 | + | |
139 | + end else begin | |
140 | + ResultMemo.Lines.Add('Ú]µÄ¢éÂÍ èܹñŵ½'); | |
141 | + end; | |
142 | + finally | |
143 | + ResStream.Clear; | |
144 | + ResStream.Free; | |
145 | + newURLs.Free; | |
146 | + oldURLs.Free; | |
147 | + end; | |
148 | + end; | |
149 | + finally | |
150 | + URLs.Free; | |
151 | + SearchButton.Enabled := True; | |
152 | + Screen.Cursor := crDefault; | |
153 | + end; | |
154 | +end; | |
155 | +function TNewBoardURLForm.GetRedirectURL(const html: string): string; | |
156 | +const | |
157 | + HEADS = '<head>'; | |
158 | + HEADE = '</head>'; | |
159 | + SCRIPT = 'window.location.href="'; | |
160 | +begin | |
161 | + Result := Copy(html, 1, | |
162 | + AnsiPos(HEADE, AnsiLowerCase(html))); | |
163 | + Result := Copy(Result, | |
164 | + AnsiPos(HEADS, AnsiLowerCase(Result)), | |
165 | + Length(Result)); | |
166 | + if AnsiPos(SCRIPT, Result) > 0 then begin | |
167 | + Result := Copy(Result, AnsiPos(SCRIPT, Result) + Length(SCRIPT), | |
168 | + Length(Result)); | |
169 | + Result := Copy(Result, 1, AnsiPos('"', Result) - 1); | |
170 | + end else begin | |
171 | + Result := ''; | |
172 | + end; | |
173 | + | |
174 | +end; | |
175 | +procedure TNewBoardURLForm.GetBoardURLs(urls : TStringList); | |
176 | +var | |
177 | + ini : TMemIniFile; | |
178 | + sec : string; | |
179 | + keys : TStringList; | |
180 | + i : Integer; | |
181 | +begin | |
182 | + urls.Clear; | |
183 | + urls.BeginUpdate; | |
184 | + if CategoryComboBox.ItemIndex <> -1 then begin | |
185 | + sec := CategoryComboBox.Items[CategoryComboBox.itemIndex]; | |
186 | + keys := TStringList.Create; | |
187 | + try | |
188 | + ini := TMemIniFile.Create(GikoSys.GetBoardFileName); | |
189 | + ini.ReadSection(sec, keys); | |
190 | + for i := 0 to keys.Count - 1 do begin | |
191 | + urls.Add(ini.ReadString(sec, keys[i], '')); | |
192 | + end; | |
193 | + finally | |
194 | + keys.Free; | |
195 | + end; | |
196 | + end; | |
197 | +end; | |
198 | +procedure TNewBoardURLForm.ReplaceURLs(oldurls, newurls: TStringList); | |
199 | +var | |
200 | + txt : TStringList; | |
201 | + i : Integer; | |
202 | +begin | |
203 | + if oldurls.Count > 0 then begin | |
204 | + txt := TStringList.Create; | |
205 | + txt.LoadFromFile( GikoSys.GetBoardFileName ); | |
206 | + try | |
207 | + for i := 0 to oldurls.Count - 1 do begin | |
208 | + MojuUtils.CustomStringReplace(txt, oldurls[i], newurls[i]); | |
209 | + end; | |
210 | + txt.SaveToFile( GikoSys.GetBoardFileName ); | |
211 | + finally | |
212 | + txt.Free; | |
213 | + end; | |
214 | + end; | |
215 | +end; | |
216 | + | |
217 | +procedure TNewBoardURLForm.IdHTTPRedirect(Sender: TObject; | |
218 | + var dest: String; var NumRedirect: Integer; var Handled: Boolean; | |
219 | + var VMethod: TIdHTTPMethod); | |
220 | +begin | |
221 | + {$IFDEF DEBUG} | |
222 | + ShowMessage(dest); | |
223 | + {$ENDIF} | |
224 | +end; | |
225 | + | |
226 | +end. |
@@ -61,9 +61,9 @@ object OptionDialog: TOptionDialog | ||
61 | 61 | Top = 4 |
62 | 62 | Width = 509 |
63 | 63 | Height = 389 |
64 | - ActivePage = TabSheet3 | |
64 | + ActivePage = TabSheet4 | |
65 | 65 | MultiLine = True |
66 | - TabIndex = 3 | |
66 | + TabIndex = 7 | |
67 | 67 | TabOrder = 3 |
68 | 68 | OnChange = OptionTabChange |
69 | 69 | object ConnectSheet: TTabSheet |
@@ -253,7 +253,7 @@ object OptionDialog: TOptionDialog | ||
253 | 253 | Top = 43 |
254 | 254 | Width = 417 |
255 | 255 | Height = 20 |
256 | - ItemHeight = 12 | |
256 | + ItemHeight = 0 | |
257 | 257 | TabOrder = 0 |
258 | 258 | Text = 'BoardURLComboBox' |
259 | 259 | end |
@@ -1207,9 +1207,9 @@ object OptionDialog: TOptionDialog | ||
1207 | 1207 | end |
1208 | 1208 | end |
1209 | 1209 | object GroupBox19: TGroupBox |
1210 | - Left = 11 | |
1211 | - Top = 74 | |
1212 | - Width = 465 | |
1210 | + Left = 12 | |
1211 | + Top = 66 | |
1212 | + Width = 473 | |
1213 | 1213 | Height = 49 |
1214 | 1214 | Caption = #23653#27508 |
1215 | 1215 | TabOrder = 1 |
@@ -1238,6 +1238,54 @@ object OptionDialog: TOptionDialog | ||
1238 | 1238 | OnExit = MaxRecordCountEditExit |
1239 | 1239 | end |
1240 | 1240 | end |
1241 | + object GroupBox21: TGroupBox | |
1242 | + Left = 12 | |
1243 | + Top = 125 | |
1244 | + Width = 473 | |
1245 | + Height = 52 | |
1246 | + Caption = #26368#23567#21270#26178#12479#12473#12463#12488#12524#12452 | |
1247 | + TabOrder = 2 | |
1248 | + object StoredTaskTrayCB: TCheckBox | |
1249 | + Left = 11 | |
1250 | + Top = 24 | |
1251 | + Width = 118 | |
1252 | + Height = 17 | |
1253 | + Caption = #26377#21177#12395#12377#12427 | |
1254 | + TabOrder = 0 | |
1255 | + end | |
1256 | + end | |
1257 | + object GroupBox22: TGroupBox | |
1258 | + Left = 12 | |
1259 | + Top = 184 | |
1260 | + Width = 473 | |
1261 | + Height = 52 | |
1262 | + Caption = #12502#12521#12454#12470#12479#12502 | |
1263 | + TabOrder = 3 | |
1264 | + object LoopBrowserTabsCB: TCheckBox | |
1265 | + Left = 11 | |
1266 | + Top = 24 | |
1267 | + Width = 134 | |
1268 | + Height = 17 | |
1269 | + Caption = #12523#12540#12503#12375#12390#31227#21205#12377#12427 | |
1270 | + TabOrder = 0 | |
1271 | + end | |
1272 | + end | |
1273 | + object GroupBox23: TGroupBox | |
1274 | + Left = 12 | |
1275 | + Top = 246 | |
1276 | + Width = 473 | |
1277 | + Height = 52 | |
1278 | + Caption = #12510#12454#12473#12472#12455#12473#12481#12515#12540 | |
1279 | + TabOrder = 4 | |
1280 | + object IgnoreContextCheckBox: TCheckBox | |
1281 | + Left = 11 | |
1282 | + Top = 24 | |
1283 | + Width = 294 | |
1284 | + Height = 17 | |
1285 | + Caption = #12467#12531#12486#12461#12473#12488#19978#12391#12510#12454#12473#12472#12455#12473#12481#12515#12540#12434#28961#21177#12395#12377#12427 | |
1286 | + TabOrder = 0 | |
1287 | + end | |
1288 | + end | |
1241 | 1289 | end |
1242 | 1290 | object SoundSheet: TTabSheet |
1243 | 1291 | Caption = #12469#12454#12531#12489 |
@@ -205,6 +205,12 @@ type | ||
205 | 205 | GroupBox20: TGroupBox; |
206 | 206 | AutoSortCheckBox: TCheckBox; |
207 | 207 | Label24: TLabel; |
208 | + GroupBox21: TGroupBox; | |
209 | + StoredTaskTrayCB: TCheckBox; | |
210 | + GroupBox22: TGroupBox; | |
211 | + LoopBrowserTabsCB: TCheckBox; | |
212 | + GroupBox23: TGroupBox; | |
213 | + IgnoreContextCheckBox: TCheckBox; | |
208 | 214 | procedure FormCreate(Sender: TObject); |
209 | 215 | procedure FormDestroy(Sender: TObject); |
210 | 216 | procedure ApplyButtonClick(Sender: TObject); |
@@ -864,6 +870,12 @@ begin | ||
864 | 870 | BeAutoLoginCheckBox.Checked := GikoSys.Setting.BeAutoLogin; |
865 | 871 | //ðÌÅåÛ¶ |
866 | 872 | MaxRecordCountEdit.Text := IntToStr(GikoSys.Setting.MaxRecordCount); |
873 | + // Ŭ»É^XNgCÉi[·é© | |
874 | + StoredTaskTrayCB.Checked := GikoSys.Setting.StoredTaskTray; | |
875 | + // uEU^uÌÚ®Å[vðÂ·é© | |
876 | + LoopBrowserTabsCB.Checked := GikoSys.Setting.LoopBrowserTabs; | |
877 | + // | |
878 | + IgnoreContextCheckBox.Checked := GikoSys.Setting.GestureIgnoreContext; | |
867 | 879 | end; |
868 | 880 | |
869 | 881 | procedure TOptionDialog.SaveSetting; |
@@ -1151,6 +1163,10 @@ begin | ||
1151 | 1163 | GikoSys.Setting.BeAutoLogin := BeAutoLoginCheckBox.Checked; |
1152 | 1164 | //ðÌÅåÛ¶ |
1153 | 1165 | GikoSys.Setting.MaxRecordCount := Max(StrToInt64Def(MaxRecordCountEdit.Text,100),1); |
1166 | + GikoSys.Setting.StoredTaskTray := StoredTaskTrayCB.Checked; | |
1167 | + GikoSys.Setting.LoopBrowserTabs := LoopBrowserTabsCB.Checked; | |
1168 | + | |
1169 | + GikoSys.Setting.GestureIgnoreContext := IgnoreContextCheckBox.Checked; | |
1154 | 1170 | end; |
1155 | 1171 | |
1156 | 1172 | procedure TOptionDialog.SettingApply; |
@@ -19,19 +19,20 @@ type | ||
19 | 19 | public |
20 | 20 | constructor Create(AOwner: TComponent); override; |
21 | 21 | destructor Destroy; override; |
22 | + procedure PreviewImage(URL : String); | |
23 | + function GetWindowRect(Point: TPoint) : TRect; | |
22 | 24 | end; |
23 | 25 | |
24 | 26 | implementation |
27 | +uses MojuUtils, GikoSystem, Setting; | |
28 | + | |
29 | +const | |
30 | + //vr [t@C¼ | |
31 | + HTML_FILE_NAME = 'temp_preview.html'; | |
25 | 32 | |
26 | 33 | constructor TPreviewBrowser.Create(AOwner: TComponent); |
27 | -{ | |
28 | -var | |
29 | -// Style: Longint; | |
30 | -} | |
31 | 34 | begin |
32 | 35 | inherited Create(AOwner); |
33 | -// Style := GetWindowLong(Self.Handle, GWL_EXSTYLE); | |
34 | -// SetWindowLong(Self.Handle, GWL_EXSTYLE, Style or WS_EX_APPWINDOW); | |
35 | 36 | end; |
36 | 37 | |
37 | 38 | destructor TPreviewBrowser.Destroy; |
@@ -42,10 +43,132 @@ end; | ||
42 | 43 | procedure TPreviewBrowser.CreateParams(var Params: TCreateParams); |
43 | 44 | begin |
44 | 45 | inherited; |
45 | -// Params.Style := WS_POPUP or {or WS_BORDER}; | |
46 | -// Params.WindowClass.Style := Params.WindowClass.Style or CS_SAVEBITS; | |
47 | -// Params.ExStyle := WS_EX_TOOLWINDOW; | |
48 | -// AddBiDiModeExStyle(Params.ExStyle); | |
49 | 46 | end; |
47 | +{ | |
48 | +\brief wè³ê½URLÌvr [ | |
49 | +\param URL vr [·éC[WÌURL | |
50 | +} | |
51 | +procedure TPreviewBrowser.PreviewImage(URL : String); | |
52 | +var | |
53 | + html : string; | |
54 | + HtmlFileName : string; | |
55 | + sl : TStringList; | |
56 | + Protocol, Host, Path, Document, Port, Bookmark : string; | |
57 | + Referer : string; | |
58 | + Flags: OleVariant; | |
59 | + TargetFrameName: OleVariant; | |
60 | + PostData: OleVariant; | |
61 | + Headers: OleVariant; | |
62 | +begin | |
63 | + html := '<html><head>'#13#10 | |
64 | + + '<SCRIPT>'#13#10 | |
65 | + + 'function init() {'#13#10 | |
66 | + + ' if ((document.body.clientHeight >= Image1.height) && (document.body.clientWidth >= Image1.width)) {'#13#10 | |
67 | + + ' } else {'#13#10 | |
68 | + + ' var dh, ih;'#13#10 | |
69 | + + ' dh = document.body.clientWidth / document.body.clientHeight;'#13#10 | |
70 | + + ' ih = Image1.width / Image1.height;'#13#10 | |
71 | + + ' if (document.body.clientWidth < document.body.clientHeight) {'#13#10 | |
72 | + + ' if (ih > dh)'#13#10 | |
73 | + + ' Image1.width = document.body.clientWidth;'#13#10 | |
74 | + + ' else'#13#10 | |
75 | + + ' Image1.height = document.body.clientHeight;'#13#10 | |
76 | + + ' } else {'#13#10 | |
77 | + + ' if (ih < dh)'#13#10 | |
78 | + + ' Image1.height = document.body.clientHeight;'#13#10 | |
79 | + + ' else'#13#10 | |
80 | + + ' Image1.width = document.body.clientWidth;'#13#10 | |
81 | + + ' }'#13#10 | |
82 | + + ' }'#13#10 | |
83 | + + ' Message.style.display = "none";'#13#10 | |
84 | + + '}'#13#10 | |
85 | + + '</SCRIPT>'#13#10 | |
86 | + + '</head>'#13#10 | |
87 | + + '<body topmargin="0" leftmargin="0" style="border-width: 1px; overflow:hidden; border-style: solid;" onLoad="init()">'#13#10 | |
88 | + + '<div align="center" id="Message">vr [ì¬</div>'#13#10 | |
89 | + + '<div align="center"><img name="Image1" border="0" src="%ImageURL%"></div>'#13#10 | |
90 | + + '</body></html>'; | |
91 | + | |
92 | + HtmlFileName := GikoSys.GetAppDir + HTML_FILE_NAME; | |
93 | + sl := TStringList.Create; | |
94 | + try | |
95 | + try | |
96 | + sl.Text := MojuUtils. | |
97 | + CustomStringReplace(html, '%ImageURL%', URL, False); | |
98 | + sl.SaveToFile(HtmlFileName); | |
99 | + finally | |
100 | + sl.Free; | |
101 | + end; | |
102 | + except | |
103 | + end; | |
104 | + | |
105 | + GikoSys.ParseURI(URL, Protocol, Host, Path, Document, Port, Bookmark); | |
106 | + Referer := Protocol + '://' + Host; | |
107 | + if Port <> '' then | |
108 | + Referer := Referer + ':' + Port; | |
109 | + Referer := Referer + Path; | |
110 | + Headers := 'Referer: ' + Referer; | |
111 | + Flags := 0; | |
112 | + TargetFrameName := ''; | |
113 | + PostData := ''; | |
114 | + | |
115 | + Navigate(HtmlFileName,Flags, TargetFrameName, PostData, Headers); | |
116 | + | |
117 | +end; | |
118 | +{ | |
119 | +\breif \¦·éEBhETCYðæ¾·é | |
120 | +\param Point }EXJ[\ÌÀW | |
121 | +} | |
122 | +function TPreviewBrowser.GetWindowRect(Point: TPoint) : TRect; | |
123 | +var | |
124 | + WindowWidth, WindowHeight : Integer; | |
125 | +begin | |
126 | + // ÝèÉæéêí¯ | |
127 | + case GikoSys.Setting.PreviewSize of | |
128 | + gpsXSmall: begin | |
129 | + WindowWidth := 128; | |
130 | + WindowHeight := 96; | |
131 | + end; | |
132 | + gpsSmall: begin | |
133 | + WindowWidth := 256; | |
134 | + WindowHeight := 192; | |
135 | + end; | |
136 | + gpsLarge: begin | |
137 | + WindowWidth := 512; | |
138 | + WindowHeight := 384; | |
139 | + end; | |
140 | + gpsXLarge: begin | |
141 | + WindowWidth := 640; | |
142 | + WindowHeight := 480; | |
143 | + end; | |
144 | + else begin //gpsMedium | |
145 | + WindowWidth := 384; | |
146 | + WindowHeight := 288; | |
147 | + end; | |
148 | + end; | |
149 | + | |
150 | + Result := Rect(0, 0, WindowWidth, WindowHeight); | |
50 | 151 | |
152 | + // oµÊuÉæéâ³ | |
153 | + case GikoSys.Setting.PopupPosition of | |
154 | + gppRightTop: OffsetRect(Result, | |
155 | + Point.x - WindowWidth - 15, Point.y - WindowHeight - 15); | |
156 | + gppRight: OffsetRect(Result, | |
157 | + Point.x - WindowWidth - 15, Point.y - (WindowHeight div 2)); | |
158 | + gppRightBottom: OffsetRect(Result, | |
159 | + Point.x - WindowWidth - 15, Point.y + 15); | |
160 | + gppTop: OffsetRect(Result, | |
161 | + Point.x - (WindowWidth div 2), Point.y - WindowHeight - 15); | |
162 | + gppCenter: OffsetRect(Result, | |
163 | + Point.x - (WindowWidth div 2), Point.y - (WindowHeight div 2)); | |
164 | + gppBottom: OffsetRect(Result, | |
165 | + Point.x - (WindowWidth div 2), Point.y + 15); | |
166 | + gppLeftTop: OffsetRect(Result, | |
167 | + Point.x + 15, Point.y - WindowHeight - 15); | |
168 | + gppLeft: OffsetRect(Result, | |
169 | + Point.x + 15, Point.y - (WindowHeight div 2)); | |
170 | + gppLeftBottom: OffsetRect(Result, Point.x + 15, Point.y + 15); //MRirX p[gPÌ453É´Ó | |
171 | + end; | |
172 | + | |
173 | +end; | |
51 | 174 | end. |
@@ -0,0 +1,163 @@ | ||
1 | +unit SambaTimer; | |
2 | + | |
3 | +interface | |
4 | + | |
5 | +uses | |
6 | + Windows, SysUtils, Classes, ExtCtrls, | |
7 | + BoardGroup, GikoSystem; | |
8 | + | |
9 | +type | |
10 | + { | |
11 | + \brief Samba24Îô^C}[NX | |
12 | + } | |
13 | + TSambaTimer = class(TTimer) | |
14 | + private | |
15 | + FKey : string; | |
16 | + FWriteDeta : TDateTime; | |
17 | + FSambaInterval : Integer; | |
18 | + procedure ReadSambaTime; | |
19 | + procedure ReadSettingTime(Board: TBoard); | |
20 | + public | |
21 | + function SetBoard(Board : TBoard): integer; | |
22 | + function CheckSambaTime(ATime: TDateTime): Boolean; | |
23 | + procedure WriteSambaTime(ATime: TDateTime); | |
24 | + procedure UpdateSambaSetting(Interval : Integer); | |
25 | + function Update : TDateTime; | |
26 | + property WriteDeta : TDateTime read FWriteDeta; | |
27 | + property SambaInterval : Integer read FSambaInterval; | |
28 | + end; | |
29 | + | |
30 | +implementation | |
31 | + | |
32 | +uses | |
33 | + IniFiles, DateUtils; | |
34 | +{ | |
35 | +\brief To^C}[ÂîñÝè | |
36 | +\param Board XGfB^ÌÂ | |
37 | +\return SambaÌÝèl | |
38 | +} | |
39 | +function TSambaTimer.SetBoard(Board : TBoard): Integer; | |
40 | +begin | |
41 | + Result := -1; | |
42 | + Enabled := False; | |
43 | + if (GikoSys.Setting.UseSamba) and (Board <> nil) then begin | |
44 | + // ª2chÉ®µÄ¢éêC^C}[ðLøÉ·é | |
45 | + if (Board.Is2ch) then begin | |
46 | + ReadSettingTime(Board); | |
47 | + ReadSambaTime; | |
48 | + Interval := 500; | |
49 | + Result := FSambaInterval; | |
50 | + end; | |
51 | + end; | |
52 | +end; | |
53 | +{ | |
54 | +\brief SambaÌKèlðÇÝÞ | |
55 | +} | |
56 | +procedure TSambaTimer.ReadSettingTime(Board: TBoard); | |
57 | +var | |
58 | + ini :TMemIniFile; | |
59 | + Protocol, Host, Path, Document, Port, Bookmark : string; | |
60 | +begin | |
61 | + Enabled := false; //oßb\¦TimerðOffÉ·é | |
62 | + ini := TMemIniFile.Create(GikoSys.GetSambaFileName); | |
63 | + try | |
64 | + if (Board <> nil) then begin | |
65 | + // ܸBBSIDÅÂÊÉÝè³êĢȢ©mF·é | |
66 | + FKey := '@' + Board.BBSID; | |
67 | + FSambaInterval := ini.ReadInteger('Setting', FKey, -1); | |
68 | + if (FSambaInterval = -1) then begin | |
69 | + // Ýè³êĢȢÌÅzXg¼ÌÝèðæÁÄé | |
70 | + GikoSys.ParseURI( Board.URL, Protocol, Host, Path, Document, Port, Bookmark ); | |
71 | + FKey := Copy(Host, 1, AnsiPos('.', Host) - 1); | |
72 | + FSambaInterval := ini.ReadInteger('Setting', FKey, -1); | |
73 | + //Ýè³êĢȢƫÍAt@CÉ«½·B | |
74 | + if FSambaInterval = -1 then begin | |
75 | + FSambaInterval := 0; | |
76 | + ini.WriteInteger('Setting', FKey, 0); | |
77 | + ini.UpdateFile; | |
78 | + end; | |
79 | + end; | |
80 | + end else begin | |
81 | + FSambaInterval := ini.ReadInteger('Setting', FKey, -1); | |
82 | + end; | |
83 | + finally | |
84 | + ini.Free; | |
85 | + end; | |
86 | + Enabled := true; //oßb\¦TimerðOnÉ·é | |
87 | +end; | |
88 | + | |
89 | +{ | |
90 | +\brief Samba.iniÌ«ÝÔðÇÝÞ | |
91 | +} | |
92 | +procedure TSambaTimer.ReadSambaTime; | |
93 | +var | |
94 | + ini :TMemIniFile; | |
95 | +begin | |
96 | + Enabled := false; //oßb\¦TimerðOffÉ·é | |
97 | + ini := TMemIniFile.Create(GikoSys.GetSambaFileName); | |
98 | + try | |
99 | + //¶ñÅÇÝæÁÄAÏ·ÖÅTDateTimeÖ | |
100 | + FWriteDeta := ConvertDateTimeString( | |
101 | + ini.ReadString('Send', FKey, '')); | |
102 | + finally | |
103 | + ini.Free; | |
104 | + end; | |
105 | + Enabled := true; //oßb\¦TimerðOnÉ·é | |
106 | +end; | |
107 | +{ | |
108 | +\brief Samba.iniÉÅI«ÝÔð«Þ | |
109 | +} | |
110 | +procedure TSambaTimer.WriteSambaTime(ATime: TDateTime); | |
111 | +var | |
112 | + ini :TMemIniFile; | |
113 | +begin | |
114 | + ini := TMemIniFile.Create(GikoSys.GetSambaFileName); | |
115 | + try | |
116 | + ini.WriteDateTime('Send', FKey, ATime); | |
117 | + ini.UpdateFile; | |
118 | + finally | |
119 | + ini.Free; | |
120 | + end; | |
121 | +end; | |
122 | + | |
123 | +{ | |
124 | +\brief ÅI«ÝÔÆ»Ýðär·é | |
125 | +\return ^FKèlÈã@UFKèl¢ | |
126 | +} | |
127 | +function TSambaTimer.CheckSambaTime(ATime: TDateTime): Boolean; | |
128 | +var | |
129 | + pastsec: double; | |
130 | +begin | |
131 | + pastsec := SecondSpan(ATime, FWriteDeta); | |
132 | + Result := (pastsec > FSambaInterval); | |
133 | +end; | |
134 | +{ | |
135 | +\breif ^C}[îñXV | |
136 | +} | |
137 | +function TSambaTimer.Update : TDateTime; | |
138 | +begin | |
139 | + ReadSettingTime( nil ); | |
140 | + ReadSambaTime; | |
141 | + Result := Now(); | |
142 | +end; | |
143 | +{ | |
144 | +\biref SambaÝèlXV | |
145 | +\param Interval Ýèl | |
146 | +} | |
147 | +procedure TSambaTimer.UpdateSambaSetting(Interval : Integer); | |
148 | +var | |
149 | + ini :TMemIniFile; | |
150 | +begin | |
151 | + Enabled := false; //oßb\¦TimerðOffÉ·é | |
152 | + ini := TMemIniFile.Create(GikoSys.GetSambaFileName); | |
153 | + try | |
154 | + FSambaInterval := Interval; | |
155 | + ini.WriteInteger('Setting', FKey, FSambaInterval); | |
156 | + ini.UpdateFile; | |
157 | + finally | |
158 | + ini.Free; | |
159 | + end; | |
160 | + Enabled := true; //oßb\¦TimerðOnÉ·é | |
161 | +end; | |
162 | + | |
163 | +end. |
@@ -5,7 +5,7 @@ interface | ||
5 | 5 | |
6 | 6 | uses |
7 | 7 | SysUtils, Classes, Graphics, Forms, {Math, IniFiles, UCryptAuto, UBase64,} |
8 | - ComCtrls, GestureModel; | |
8 | + ComCtrls, GestureModel, IniFiles; | |
9 | 9 | |
10 | 10 | const |
11 | 11 | MAIN_COOLBAND_COUNT = 4; //CCoolBandÌ |
@@ -398,7 +398,8 @@ type | ||
398 | 398 | FGestures : TGestureModel; |
399 | 399 | //! }EXWFX`[ðgp·é©Ç¤© |
400 | 400 | FGestureEnabled : Boolean; |
401 | - | |
401 | + //! }EXWFX`[ðReLXgÌãųø | |
402 | + FGestureIgnoreContext : Boolean; | |
402 | 403 | //tVAigbvÝè |
403 | 404 | FLocalTrapAtt : Boolean; |
404 | 405 | FRemoteTrapAtt : Boolean; |
@@ -430,9 +431,16 @@ type | ||
430 | 431 | FInputAssistFormWidth: Integer; |
431 | 432 | FInputAssistFormHeight: Integer; |
432 | 433 | |
433 | - // CookieÉtÁ·éÅèR[h | |
434 | + //! CookieÉtÁ·éÅèR[h | |
434 | 435 | FFixedCookie: String; |
435 | - | |
436 | + //! NÚ®ðÌÛ | |
437 | + FMoveHistorySize : Integer; | |
438 | + //! Ŭ»µ½Æ«É^XNgCÉi[·é© | |
439 | + FStoredTaskTray : Boolean; | |
440 | + //! ^uÌÚ®Å[vð·é | |
441 | + FLoopBrowserTabs : Boolean; | |
442 | + //! 100X\¦Ìæª\¦X | |
443 | + FHeadResCount : Integer; | |
436 | 444 | function GetMainCoolSet(Index: Integer): TCoolSet; |
437 | 445 | function GetBoardCoolSet(Index: Integer): TCoolSet; |
438 | 446 | function GetBrowserCoolSet(Index: Integer): TCoolSet; |
@@ -458,6 +466,16 @@ type | ||
458 | 466 | |
459 | 467 | procedure SetUseCSS( value: Boolean ); |
460 | 468 | procedure SetCSSFileName( fileName: string ); |
469 | + //! vLVÝèÇÝÝ | |
470 | + procedure ReadProxySettings(memIni: TMemIniFile); | |
471 | + //! eíEBhEÝèÇÝÝ | |
472 | + procedure ReadWindowSettings(memIni: TMemIniFile); | |
473 | + //! üÍðÇÝÝiõ{[{¼Oj | |
474 | + procedure ReadInputHisotrys(memIni: TMemIniFile); | |
475 | + //! XgJÇÝÝ | |
476 | + procedure ReadListColumnWidth(memIni: TMemIniFile); | |
477 | + //! JeSXgJÇÝÝ | |
478 | + procedure ReadOrdColumn(memIni: TMemIniFile); | |
461 | 479 | protected |
462 | 480 | |
463 | 481 | public |
@@ -503,6 +521,11 @@ type | ||
503 | 521 | function GetEditorKeyFileName: String; |
504 | 522 | procedure WriteLogFolder(AVal : String); |
505 | 523 | function GetInputAssistFileName : String; |
524 | + { | |
525 | + \brief NðÌÛTCYÌsetter | |
526 | + \param AVal Ýè·éTCY( >0) | |
527 | + } | |
528 | + procedure SetMoveHistorySize(AVal : Integer); | |
506 | 529 | //óMobt@TCY |
507 | 530 | property RecvBufferSize: Integer read FRecvBufferSize write FRecvBufferSize; |
508 | 531 | //HTTP1.1gp |
@@ -733,6 +756,7 @@ type | ||
733 | 756 | property Gestures : TGestureModel read FGestures write FGestures; |
734 | 757 | //! }EXWFX`[ðgp·é©Ç¤© |
735 | 758 | property GestureEnabled : Boolean read FGestureEnabled write FGestureEnabled; |
759 | + property GestureIgnoreContext : Boolean read FGestureIgnoreContext write FGestureIgnoreContext; | |
736 | 760 | //tVAigbvÝè |
737 | 761 | property LocalTrapAtt : Boolean read FLocalTrapAtt write FLocalTrapAtt; |
738 | 762 | property RemoteTrapAtt : Boolean read FRemoteTrapAtt write FRemoteTrapAtt; |
@@ -758,7 +782,14 @@ type | ||
758 | 782 | property InputAssistFormHeight: Integer read FInputAssistFormHeight write FInputAssistFormHeight; |
759 | 783 | //! CookieÉtÁ·éÅèR[h |
760 | 784 | property FixedCookie: String read FFixedCookie write FFixedCookie; |
761 | - | |
785 | + //! NÚ®ðÌÛ | |
786 | + property MoveHistorySize : Integer read FMoveHistorySize write SetMoveHistorySize; | |
787 | + //! Ŭ»É^XNgCÉi[·é© | |
788 | + property StoredTaskTray : Boolean read FStoredTaskTray write FStoredTaskTray; | |
789 | + //! uEU^uÌ[vð·é | |
790 | + property LoopBrowserTabs : Boolean read FLoopBrowserTabs write FLoopBrowserTabs; | |
791 | + //! 100X\¦Ìæª\¦X | |
792 | + property HeadResCount : Integer read FHeadResCount write FHeadResCount; | |
762 | 793 | end; |
763 | 794 | |
764 | 795 |
@@ -800,7 +831,7 @@ const | ||
800 | 831 | implementation |
801 | 832 | |
802 | 833 | uses |
803 | - Math, IniFiles, UCryptAuto, UBase64; | |
834 | + Math, UCryptAuto, UBase64; | |
804 | 835 | |
805 | 836 | type |
806 | 837 | TSoundName = record |
@@ -953,20 +984,11 @@ end; | ||
953 | 984 | |
954 | 985 | //Ýèt@CÇ |
955 | 986 | procedure TSetting.ReadSettingFile(); |
956 | -const | |
957 | - DEFAULT_BBS_WIDTH: array[0..0] of Integer = (140); | |
958 | - DEFAULT_CATEGORY_WIDTH: array[0..2] of Integer = (150, 80, 130); | |
959 | - DEFAULT_BOARD_WIDTH: array[0..10] of Integer = (350, 60, 60, 60, 60, 60, 80, 130, 130, 130, 60); | |
960 | - MAX_WIDTH: Integer = 2000; | |
961 | 987 | var |
962 | 988 | ini: TMemIniFile; |
963 | 989 | i: Integer; |
964 | - id, code : Integer; | |
965 | - wkList: TStringList; | |
966 | - wkStr: string; | |
967 | 990 | Exists: Boolean; |
968 | 991 | s: string; |
969 | -// id: Integer; | |
970 | 992 | CoolSet: TCoolSet; |
971 | 993 | begin |
972 | 994 | Exists := FileExists(GetFileName); |
@@ -979,60 +1001,11 @@ begin | ||
979 | 1001 | //vLVÚ±HTTP1.1gp |
980 | 1002 | FProxyProtocol := ini.ReadBool('HTTP', 'ProxyProtocol', False); |
981 | 1003 | |
982 | - FReadProxy := ini.ReadBool('ReadProxy', 'Proxy', false); | |
983 | - FReadProxyAddress := ini.ReadString('ReadProxy', 'Address', ''); | |
984 | - FReadProxyPort := ini.ReadInteger('ReadProxy', 'Port', 0); | |
985 | - FReadProxyUserID := ini.ReadString('ReadProxy', 'UserID', ''); | |
986 | - FReadProxyPassword := ini.ReadString('ReadProxy', 'Password', ''); | |
987 | - | |
988 | - FWriteProxy := ini.ReadBool('WriteProxy', 'Proxy', false); | |
989 | - FWriteProxyAddress := ini.ReadString('WriteProxy', 'Address', ''); | |
990 | - FWriteProxyPort := ini.ReadInteger('WriteProxy', 'Port', 0); | |
991 | - FWriteProxyUserID := ini.ReadString('WriteProxy', 'UserID', ''); | |
992 | - FWriteProxyPassword := ini.ReadString('WriteProxy', 'Password', ''); | |
993 | - | |
994 | - FBrowserFontName := ini.ReadString('Window', 'BrowserFontName', ''); | |
995 | - FBrowserFontSize := ini.ReadInteger('Window', 'BrowserFontSize', 0); | |
996 | - FBrowserFontBold := ini.ReadInteger('Window', 'BrowserFontBold', 0); | |
997 | - FBrowserFontItalic := ini.ReadInteger('Window', 'BrowserFontItalic', 0); | |
998 | - FBrowserFontColor := ini.ReadInteger('Window', 'BrowserFontColor', -1); | |
999 | - FBrowserBackColor := ini.ReadInteger('Window', 'BrowserBackColor', -1); | |
1000 | - | |
1001 | - FCabinetFontName := ini.ReadString('Window', 'CabinetFontName', DEFAULT_FONT_NAME); | |
1002 | - FCabinetFontSize := ini.ReadInteger('Window', 'CabinetFontSize', DEFAULT_FONT_SIZE); | |
1003 | - FCabinetFontBold := ini.ReadBool('Window', 'CabinetFontBold', False); | |
1004 | - FCabinetFontItalic := ini.ReadBool('Window', 'CabinetFontItalic', False); | |
1005 | - FCabinetFontColor := StringToColor(ini.ReadString('Window', 'CabinetFontColor', DEFAULT_FONT_COLOR)); | |
1006 | - FCabinetBackColor := StringToColor(ini.ReadString('Window', 'CabinetBackColor', DEFAULT_WINDOW_COLOR)); | |
1007 | - | |
1008 | - FListFontName := ini.ReadString('Window', 'ListFontName', DEFAULT_FONT_NAME); | |
1009 | - FListFontSize := ini.ReadInteger('Window', 'ListFontSize', DEFAULT_FONT_SIZE); | |
1010 | - FListFontBold := ini.ReadBool('Window', 'ListFontBold', False); | |
1011 | - FListFontItalic := ini.ReadBool('Window', 'ListFontItalic', False); | |
1012 | - FListFontColor := StringToColor(ini.ReadString('Window', 'ListFontColor', DEFAULT_FONT_COLOR)); | |
1013 | - FListBackColor := StringToColor(ini.ReadString('Window', 'ListBackColor', DEFAULT_WINDOW_COLOR)); | |
1014 | - FUseOddColorOddResNum := ini.ReadBool('Window','UseOddColor', False); | |
1015 | - FOddColor := StringToColor(ini.ReadString('Window', 'OddColor', DEFAULT_WINDOW_COLOR)); | |
1016 | - FUnFocusedBold := ini.ReadBool('Window','UnFocusedBold', False); | |
1017 | - | |
1018 | - FEditorFontName := ini.ReadString('Window', 'EditorFontName', DEFAULT_FONT_NAME); | |
1019 | - FEditorFontSize := ini.ReadInteger('Window', 'EditorFontSize', DEFAULT_FONT_SIZE); | |
1020 | - FEditorFontBold := ini.ReadBool('Window', 'EditorFontBold', False); | |
1021 | - FEditorFontItalic := ini.ReadBool('Window', 'EditorFontItalic', False); | |
1022 | - FEditorFontColor := StringToColor(ini.ReadString('Window', 'EditorFontColor', DEFAULT_FONT_COLOR)); | |
1023 | - FEditorBackColor := StringToColor(ini.ReadString('Window', 'EditorBackColor', DEFAULT_WINDOW_COLOR)); | |
1024 | - | |
1025 | - FBrowserTabFontName := ini.ReadString('Window', 'BrowserTabFontName', DEFAULT_TAB_FONT_NAME); | |
1026 | - FBrowserTabFontSize := ini.ReadInteger('Window', 'BrowserTabFontSize', DEFAULT_TAB_FONT_SIZE); | |
1027 | - FBrowserTabFontBold := ini.ReadBool('Window', 'BrowserTabFontBold', False); | |
1028 | - FBrowserTabFontItalic := ini.ReadBool('Window', 'BrowserTabFontItalic', False); | |
1029 | - | |
1030 | - FHintFontName := ini.ReadString('Window', 'HintFontName', Screen.HintFont.Name); | |
1031 | - FHintFontSize := ini.ReadInteger('Window', 'HintFontSize', Screen.HintFont.Size); | |
1032 | - //FHintFontBold := ini.ReadBool('Window', 'HintFontBold', False); | |
1033 | - //FHintFontItalic := ini.ReadBool('Window', 'HintFontItalic', False); | |
1034 | - FHintFontColor := StringToColor(ini.ReadString('Window', 'HintFontColor', DEFAULT_FONT_COLOR)); | |
1035 | - FHintBackColor := StringToColor(ini.ReadString('Window', 'HintBackColor', 'clInfoBk')); | |
1004 | + // vLVÝèÇÝÝ | |
1005 | + ReadProxySettings( ini ); | |
1006 | + | |
1007 | + // eíEBhEÌÝèÇÝÝ | |
1008 | + ReadWindowSettings( ini ); | |
1036 | 1009 | |
1037 | 1010 | FWindowTop := ini.ReadInteger('WindowSize', 'Top', -1); |
1038 | 1011 | FWindowLeft := ini.ReadInteger('WindowSize', 'Left', -1); |
@@ -1089,112 +1062,14 @@ begin | ||
1089 | 1062 | // FListHeightMax := ini.ReadBool('List', 'HeightMax', False); |
1090 | 1063 | // FListWidthMax := ini.ReadBool('List', 'WidthMax', False); |
1091 | 1064 | |
1092 | - wkList := TStringList.Create; | |
1093 | - try | |
1094 | - ini.ReadSection('Name', wkList); | |
1095 | - for i := 0 to wkList.Count - 1 do begin | |
1096 | - wkStr := ini.ReadString('Name', wkList[i], ''); | |
1097 | - if (wkStr <> '') and (FNameList.IndexOf(wkStr) = -1) then | |
1098 | - FNameList.Add(wkStr); | |
1099 | - end; | |
1100 | - ini.ReadSection('Mail', wkList); | |
1101 | - for i := 0 to wkList.Count - 1 do begin | |
1102 | - wkStr := ini.ReadString('Mail', wkList[i], ''); | |
1103 | - if (wkStr <> '') and (FMailList.IndexOf(wkStr) = -1) then | |
1104 | - FMailList.Add(wkStr); | |
1105 | - end; | |
1106 | - ini.ReadSection('SelectText', wkList); | |
1107 | - for i := 0 to wkList.Count - 1 do begin | |
1108 | - wkStr := ini.ReadString('SelectText', wkList[i], ''); | |
1109 | - if (wkStr <> '') and (FSelectTextList.IndexOf(wkStr) = -1) then | |
1110 | - FSelectTextList.Add(wkStr); | |
1111 | - end; | |
1112 | - finally | |
1113 | - wkList.Free; | |
1114 | - end; | |
1065 | + // üÍÚÌððÇÝÞ | |
1066 | + ReadInputHisotrys( ini ); | |
1115 | 1067 | |
1116 | 1068 | // XgJ |
1117 | - wkList := TStringList.Create; | |
1118 | - try | |
1119 | - ini.ReadSection('BBSColumnWidth', wkList); | |
1120 | - if Length(FBBSColumnWidth) <> wkList.Count then begin | |
1121 | - ini.EraseSection('BBSColumnWidth'); | |
1122 | - end; | |
1123 | - for i := 0 to Length(FBBSColumnWidth) - 1 do begin | |
1124 | - BBSColumnWidth[i] := ini.ReadInteger('BBSColumnWidth', 'ID' + IntToStr(i), DEFAULT_BBS_WIDTH[i]); | |
1125 | - if BBSColumnWidth[i] > MAX_WIDTH then | |
1126 | - BBSColumnWidth[i] := DEFAULT_BBS_WIDTH[i]; | |
1127 | - end; | |
1128 | - ini.ReadSection('CategoryColumnWidth', wkList); | |
1129 | - if Length(FCategoryColumnWidth) <> wkList.Count then begin | |
1130 | - ini.EraseSection('CategoryColumnWidth'); | |
1131 | - end; | |
1132 | - for i := 0 to Length(FCategoryColumnWidth) - 1 do begin | |
1133 | - CategoryColumnWidth[i] := ini.ReadInteger('CategoryColumnWidth', 'ID' + IntToStr(i), DEFAULT_CATEGORY_WIDTH[i]); | |
1134 | - if CategoryColumnWidth[i] > MAX_WIDTH then | |
1135 | - CategoryColumnWidth[i] := DEFAULT_CATEGORY_WIDTH[i]; | |
1136 | - end; | |
1137 | - ini.ReadSection('BoardColumnWidth', wkList); | |
1138 | - if Length(FBoardColumnWidth) <> wkList.Count then begin | |
1139 | - ini.EraseSection('BoardColumnWidth'); | |
1140 | - end; | |
1141 | - for i := 0 to Length(FBoardColumnWidth) - 1 do begin | |
1142 | - BoardColumnWidth[i] := ini.ReadInteger('BoardColumnWidth', 'ID' + IntToStr(i), DEFAULT_BOARD_WIDTH[i]); | |
1143 | - if BoardColumnWidth[i] > MAX_WIDTH then | |
1144 | - BoardColumnWidth[i] := DEFAULT_BOARD_WIDTH[i]; | |
1145 | - end; | |
1146 | - finally | |
1147 | - wkList.Free; | |
1148 | - end; | |
1069 | + ReadListColumnWidth( ini ); | |
1149 | 1070 | |
1150 | 1071 | // JeSXgJ |
1151 | - wkList := TStringList.Create; | |
1152 | - try | |
1153 | - ini.ReadSection( 'BBSColumnOrder', wkList ); | |
1154 | - for i := 0 to wkList.Count - 1 do begin | |
1155 | - wkStr := ini.ReadString( 'BBSColumnOrder', 'ID' + IntToStr( i ), '' ); | |
1156 | - Val( wkStr, id, code ); | |
1157 | - if code = 0 then | |
1158 | - FBBSColumnOrder.Add( TGikoBBSColumnID( id ) ); | |
1159 | - end; | |
1160 | - if FBBSColumnOrder.Count = 0 then begin | |
1161 | - // Ý誳¢ÌÅì¬ | |
1162 | - for i := 0 to Integer( High( TGikoBBSColumnID ) ) do | |
1163 | - FBBSColumnOrder.Add( TGikoBBSColumnID( i ) ); | |
1164 | - end; | |
1165 | - | |
1166 | - ini.ReadSection( 'CategoryColumnOrder', wkList ); | |
1167 | - for i := 0 to wkList.Count - 1 do begin | |
1168 | - wkStr := ini.ReadString( 'CategoryColumnOrder', 'ID' + IntToStr( i ), '' ); | |
1169 | - Val( wkStr, id, code ); | |
1170 | - if code = 0 then | |
1171 | - FCategoryColumnOrder.Add( TGikoCategoryColumnID( id ) ); | |
1172 | - end; | |
1173 | - if FCategoryColumnOrder.Count = 0 then begin | |
1174 | - // Ý誳¢ÌÅì¬ | |
1175 | - for i := 0 to Integer( High( TGikoCategoryColumnID ) ) do | |
1176 | - FCategoryColumnOrder.Add( TGikoCategoryColumnID( i ) ); | |
1177 | - end; | |
1178 | - | |
1179 | - ini.ReadSection( 'BoardColumnOrder', wkList ); | |
1180 | - for i := 0 to wkList.Count - 1 do begin | |
1181 | - wkStr := ini.ReadString( 'BoardColumnOrder', 'ID' + IntToStr( i ), '' ); | |
1182 | - Val( wkStr, id, code ); | |
1183 | - if code = 0 then | |
1184 | - FBoardColumnOrder.Add( TGikoBoardColumnID( id ) ); | |
1185 | - end; | |
1186 | - if FBoardColumnOrder.Count = 0 then begin | |
1187 | - // Ý誳¢ÌÅì¬ | |
1188 | - for i := 0 to Integer( High( TGikoBoardColumnID ) ) do begin | |
1189 | - // ¨¢ÌJÍftHgÅñ\¦É·é | |
1190 | - if ( i <> Ord(gbcVigor) ) then begin | |
1191 | - FBoardColumnOrder.Add( TGikoBoardColumnID( i ) ); | |
1192 | - end; | |
1193 | - end; | |
1194 | - end; | |
1195 | - finally | |
1196 | - wkList.Free; | |
1197 | - end; | |
1072 | + ReadOrdColumn( ini ); | |
1198 | 1073 | |
1199 | 1074 | //XgÔ |
1200 | 1075 | FListViewNo := ini.ReadBool('Function', 'ListViewNo', True); |
@@ -1213,6 +1088,7 @@ begin | ||
1213 | 1088 | else |
1214 | 1089 | FResRange := ini.ReadInteger( 'Thread', 'ResRange', Ord( grrAll ) ); |
1215 | 1090 | FResRangeHold := ini.ReadBool( 'Thread', 'ResRangeHold', False ); |
1091 | + FHeadResCount := ini.ReadInteger('Thread', 'HeadResCount', 1); | |
1216 | 1092 | // Xbhê\¦ÍÍ |
1217 | 1093 | FThreadRange := TGikoThreadRange( ini.ReadInteger('ThreadList', 'ThreadRange', Ord( gtrAll )) ); |
1218 | 1094 | //ñANeBuX|bvAbv\¦ |
@@ -1349,7 +1225,7 @@ begin | ||
1349 | 1225 | |
1350 | 1226 | // }EXWFX`[ |
1351 | 1227 | FGestureEnabled := ini.ReadBool( 'Guesture', 'Enabled', False ); |
1352 | - | |
1228 | + FGestureIgnoreContext := ini.ReadBool( 'Guesture', 'IgnoreContext', False ); | |
1353 | 1229 | //2ch¾êT| |
1354 | 1230 | F2chSupport := ini.ReadBool('2chSupport', 'Support', False); |
1355 | 1231 |
@@ -1381,6 +1257,12 @@ begin | ||
1381 | 1257 | // CookieÉtÁ·éÅèR[h |
1382 | 1258 | FFixedCookie := ini.ReadString('Cookie', 'fixedString', FIXED_COOKIE); |
1383 | 1259 | |
1260 | + // NÚ®ðÌÅåÛ | |
1261 | + FMoveHistorySize := ini.ReadInteger('MoveHisotry', 'Max', 20); | |
1262 | + | |
1263 | + FStoredTaskTray := ini.ReadBool('Function', 'StroedTaskTray', false); | |
1264 | + FLoopBrowserTabs := ini.ReadBool('Function', 'LoopBrowserTabs', false); | |
1265 | + | |
1384 | 1266 | ini.UpdateFile; |
1385 | 1267 | finally |
1386 | 1268 | ini.Free; |
@@ -1569,6 +1451,7 @@ begin | ||
1569 | 1451 | ini.DeleteKey( 'Thread', 'OnlyAHundredRes' ); // âÝèÌí |
1570 | 1452 | ini.WriteInteger('Thread', 'ResRange', FResRange); |
1571 | 1453 | ini.WriteBool('Thread', 'ResRangeHold', FResRangeHold); |
1454 | + ini.WriteInteger('Thread', 'HeadResCount', FHeadResCount); | |
1572 | 1455 | // Xbhê\¦ÍÍ |
1573 | 1456 | ini.WriteInteger('ThreadList', 'ThreadRange', Ord( FThreadRange )); |
1574 | 1457 | //OímF |
@@ -1731,7 +1614,7 @@ begin | ||
1731 | 1614 | |
1732 | 1615 | // }EXWFX`[ðgp·é©Ç¤© |
1733 | 1616 | ini.WriteBool( 'Guesture', 'Enabled', FGestureEnabled ); |
1734 | - | |
1617 | + ini.WriteBool( 'Guesture', 'IgnoreContext', FGestureIgnoreContext ); | |
1735 | 1618 | //FusianaTrap |
1736 | 1619 | ini.WriteBool('Trap', 'LocalTrap', FLocalTrapAtt); |
1737 | 1620 | ini.WriteBool('Trap', 'RemoteTrap', FRemoteTrapAtt); |
@@ -1752,6 +1635,11 @@ begin | ||
1752 | 1635 | // ÅèÌCookie¶ñ |
1753 | 1636 | ini.WriteString('Cookie', 'fixedString', FFixedCookie); |
1754 | 1637 | |
1638 | + // NÚ®ðÌÅåÛ | |
1639 | + ini.WriteInteger('MoveHisotry', 'Max', FMoveHistorySize); | |
1640 | + | |
1641 | + ini.WriteBool('Function', 'StroedTaskTray', FStoredTaskTray); | |
1642 | + ini.WriteBool('Function', 'LoopBrowserTabs', FLoopBrowserTabs); | |
1755 | 1643 | ini.UpdateFile; |
1756 | 1644 | finally |
1757 | 1645 | ini.Free; |
@@ -2225,7 +2113,238 @@ function TSetting.GetInputAssistFileName : String; | ||
2225 | 2113 | begin |
2226 | 2114 | Result := GetConfigDir + INPUTASSIST_FILE_NAME; |
2227 | 2115 | end; |
2116 | +procedure TSetting.SetMoveHistorySize(AVal : Integer); | |
2117 | +begin | |
2118 | + if (AVal > 0) then begin | |
2119 | + FMoveHistorySize := AVal; | |
2120 | + end; | |
2121 | +end; | |
2122 | +{ | |
2123 | +\brief vLVÝèÇÝÝ | |
2124 | +\param memIni init@C | |
2125 | +} | |
2126 | +procedure TSetting.ReadProxySettings(memIni: TMemIniFile); | |
2127 | +const | |
2128 | + READ_SECTION = 'ReadProxy'; | |
2129 | + WRITE_SECTION= 'WriteProxy'; | |
2130 | + PROXY_KEY = 'Proxy'; | |
2131 | + ADDRE_KEY = 'Address'; | |
2132 | + PORT_KEY = 'Port'; | |
2133 | + UID_KEY = 'UserID'; | |
2134 | + PASS_KEY = 'Password'; | |
2135 | +begin | |
2136 | + if (memIni <> nil) then begin | |
2137 | + FReadProxy := memIni.ReadBool(READ_SECTION, PROXY_KEY, false); | |
2138 | + FReadProxyAddress := memIni.ReadString(READ_SECTION, ADDRE_KEY, ''); | |
2139 | + FReadProxyPort := memIni.ReadInteger(READ_SECTION, PORT_KEY, 0); | |
2140 | + FReadProxyUserID := memIni.ReadString(READ_SECTION, UID_KEY, ''); | |
2141 | + FReadProxyPassword := memIni.ReadString(READ_SECTION, PASS_KEY, ''); | |
2142 | + | |
2143 | + FWriteProxy := memIni.ReadBool(WRITE_SECTION, PROXY_KEY, false); | |
2144 | + FWriteProxyAddress := memIni.ReadString(WRITE_SECTION, ADDRE_KEY, ''); | |
2145 | + FWriteProxyPort := memIni.ReadInteger(WRITE_SECTION, PORT_KEY, 0); | |
2146 | + FWriteProxyUserID := memIni.ReadString(WRITE_SECTION, UID_KEY, ''); | |
2147 | + FWriteProxyPassword := memIni.ReadString(WRITE_SECTION, PASS_KEY, ''); | |
2148 | + end; | |
2149 | +end; | |
2150 | +{ | |
2151 | +\brief eíEBhEÝèÇÝÝ | |
2152 | +\param menIni init@C | |
2153 | +} | |
2154 | +procedure TSetting.ReadWindowSettings(memIni: TMemIniFile); | |
2155 | +const | |
2156 | + WINDOW_SECTION = 'Window'; | |
2157 | +begin | |
2158 | + if (memIni <> nil) then begin | |
2159 | + FBrowserFontName := memIni.ReadString(WINDOW_SECTION, 'BrowserFontName', ''); | |
2160 | + FBrowserFontSize := memIni.ReadInteger(WINDOW_SECTION, 'BrowserFontSize', 0); | |
2161 | + FBrowserFontBold := memIni.ReadInteger(WINDOW_SECTION, 'BrowserFontBold', 0); | |
2162 | + FBrowserFontItalic := memIni.ReadInteger(WINDOW_SECTION, 'BrowserFontItalic', 0); | |
2163 | + FBrowserFontColor := memIni.ReadInteger(WINDOW_SECTION, 'BrowserFontColor', -1); | |
2164 | + FBrowserBackColor := memIni.ReadInteger(WINDOW_SECTION, 'BrowserBackColor', -1); | |
2165 | + | |
2166 | + FCabinetFontName := memIni.ReadString(WINDOW_SECTION, 'CabinetFontName', DEFAULT_FONT_NAME); | |
2167 | + FCabinetFontSize := memIni.ReadInteger(WINDOW_SECTION, 'CabinetFontSize', DEFAULT_FONT_SIZE); | |
2168 | + FCabinetFontBold := memIni.ReadBool(WINDOW_SECTION, 'CabinetFontBold', False); | |
2169 | + FCabinetFontItalic := memIni.ReadBool(WINDOW_SECTION, 'CabinetFontItalic', False); | |
2170 | + FCabinetFontColor := StringToColor(memIni.ReadString(WINDOW_SECTION, 'CabinetFontColor', DEFAULT_FONT_COLOR)); | |
2171 | + FCabinetBackColor := StringToColor(memIni.ReadString(WINDOW_SECTION, 'CabinetBackColor', DEFAULT_WINDOW_COLOR)); | |
2172 | + | |
2173 | + FListFontName := memIni.ReadString(WINDOW_SECTION, 'ListFontName', DEFAULT_FONT_NAME); | |
2174 | + FListFontSize := memIni.ReadInteger(WINDOW_SECTION, 'ListFontSize', DEFAULT_FONT_SIZE); | |
2175 | + FListFontBold := memIni.ReadBool(WINDOW_SECTION, 'ListFontBold', False); | |
2176 | + FListFontItalic := memIni.ReadBool(WINDOW_SECTION, 'ListFontItalic', False); | |
2177 | + FListFontColor := StringToColor(memIni.ReadString(WINDOW_SECTION, 'ListFontColor', DEFAULT_FONT_COLOR)); | |
2178 | + FListBackColor := StringToColor(memIni.ReadString(WINDOW_SECTION, 'ListBackColor', DEFAULT_WINDOW_COLOR)); | |
2179 | + FUseOddColorOddResNum := memIni.ReadBool(WINDOW_SECTION,'UseOddColor', False); | |
2180 | + FOddColor := StringToColor(memIni.ReadString(WINDOW_SECTION, 'OddColor', DEFAULT_WINDOW_COLOR)); | |
2181 | + FUnFocusedBold := memIni.ReadBool(WINDOW_SECTION,'UnFocusedBold', False); | |
2182 | + | |
2183 | + FEditorFontName := memIni.ReadString(WINDOW_SECTION, 'EditorFontName', DEFAULT_FONT_NAME); | |
2184 | + FEditorFontSize := memIni.ReadInteger(WINDOW_SECTION, 'EditorFontSize', DEFAULT_FONT_SIZE); | |
2185 | + FEditorFontBold := memIni.ReadBool(WINDOW_SECTION, 'EditorFontBold', False); | |
2186 | + FEditorFontItalic := memIni.ReadBool(WINDOW_SECTION, 'EditorFontItalic', False); | |
2187 | + FEditorFontColor := StringToColor(memIni.ReadString(WINDOW_SECTION, 'EditorFontColor', DEFAULT_FONT_COLOR)); | |
2188 | + FEditorBackColor := StringToColor(memIni.ReadString(WINDOW_SECTION, 'EditorBackColor', DEFAULT_WINDOW_COLOR)); | |
2189 | + | |
2190 | + FBrowserTabFontName := memIni.ReadString(WINDOW_SECTION, 'BrowserTabFontName', DEFAULT_TAB_FONT_NAME); | |
2191 | + FBrowserTabFontSize := memIni.ReadInteger(WINDOW_SECTION, 'BrowserTabFontSize', DEFAULT_TAB_FONT_SIZE); | |
2192 | + FBrowserTabFontBold := memIni.ReadBool(WINDOW_SECTION, 'BrowserTabFontBold', False); | |
2193 | + FBrowserTabFontItalic := memIni.ReadBool(WINDOW_SECTION, 'BrowserTabFontItalic', False); | |
2194 | + | |
2195 | + FHintFontName := memIni.ReadString(WINDOW_SECTION, 'HintFontName', Screen.HintFont.Name); | |
2196 | + FHintFontSize := memIni.ReadInteger(WINDOW_SECTION, 'HintFontSize', Screen.HintFont.Size); | |
2197 | + //FHintFontBold := memIni.ReadBool(WINDOW_SECTION, 'HintFontBold', False); | |
2198 | + //FHintFontItalic := memIni.ReadBool(WINDOW_SECTION, 'HintFontItalic', False); | |
2199 | + FHintFontColor := StringToColor(memIni.ReadString(WINDOW_SECTION, 'HintFontColor', DEFAULT_FONT_COLOR)); | |
2200 | + FHintBackColor := StringToColor(memIni.ReadString(WINDOW_SECTION, 'HintBackColor', 'clInfoBk')); | |
2201 | + end; | |
2202 | +end; | |
2203 | +{ | |
2204 | +\brief üÍðÇÝÝiõ{[{¼Oj | |
2205 | +\param memIni init@C | |
2206 | +} | |
2207 | +procedure TSetting.ReadInputHisotrys(memIni: TMemIniFile); | |
2208 | +const | |
2209 | + SECTIONS : array[0..2] of string = ('Name', 'Mail', 'SelectText'); | |
2210 | +var | |
2211 | + wkList : TStringList; | |
2212 | + wkStr : string; | |
2213 | + i, j : Integer; | |
2214 | + listArray : array[0..2] of TStringList; | |
2215 | +begin | |
2216 | + if (memIni <> nil) then begin | |
2217 | + listArray[0] := FNameList; | |
2218 | + listArray[1] := FMailList; | |
2219 | + listArray[2] := FSelectTextList; | |
2220 | + wkList := TStringList.Create; | |
2221 | + try | |
2222 | + for i := 0 to High(listArray) do begin | |
2223 | + memIni.ReadSection(SECTIONS[i], wkList); | |
2224 | + for j := 0 to wkList.Count -1 do begin | |
2225 | + wkStr := memIni.ReadString(SECTIONS[i], wkList[j], ''); | |
2226 | + if (wkStr <> '') and | |
2227 | + (listArray[i].IndexOf(wkStr) = -1) then begin | |
2228 | + listArray[i].Add(wkStr); | |
2229 | + end; | |
2230 | + end; | |
2231 | + end; | |
2232 | + finally | |
2233 | + wkList.Free; | |
2234 | + end; | |
2235 | + end; | |
2236 | +end; | |
2237 | +{ | |
2238 | +\breif XgJÇÝÝ | |
2239 | +\param memIni init@C | |
2240 | +} | |
2241 | +procedure TSetting.ReadListColumnWidth(memIni: TMemIniFile); | |
2242 | +const | |
2243 | + SECTIONS : array[0..2] of string = | |
2244 | + ('BBSColumnWidth', 'CategoryColumnWidth', 'BoardColumnWidth'); | |
2245 | + DEFAULT_BBS_WIDTH: array[0..0] of Integer = (140); | |
2246 | + DEFAULT_CATEGORY_WIDTH: array[0..2] of Integer = (150, 80, 130); | |
2247 | + DEFAULT_BOARD_WIDTH: array[0..10] of Integer = (350, 60, 60, 60, 60, 60, 80, 130, 130, 130, 60); | |
2248 | + MAX_WIDTH: Integer = 2000; | |
2249 | +var | |
2250 | + wkList : TStringList; | |
2251 | + i : Integer; | |
2252 | +begin | |
2253 | + if (memIni <> nil) then begin | |
2254 | + // XgJ | |
2255 | + wkList := TStringList.Create; | |
2256 | + try | |
2257 | + memIni.ReadSection(SECTIONS[0], wkList); | |
2258 | + if Length(FBBSColumnWidth) <> wkList.Count then begin | |
2259 | + memIni.EraseSection(SECTIONS[0]); | |
2260 | + end; | |
2261 | + for i := 0 to High(FBBSColumnWidth) do begin | |
2262 | + BBSColumnWidth[i] := memIni.ReadInteger(SECTIONS[0], | |
2263 | + 'ID' + IntToStr(i), DEFAULT_BBS_WIDTH[i]); | |
2264 | + if BBSColumnWidth[i] > MAX_WIDTH then | |
2265 | + BBSColumnWidth[i] := DEFAULT_BBS_WIDTH[i]; | |
2266 | + end; | |
2267 | + memIni.ReadSection(SECTIONS[1], wkList); | |
2268 | + if Length(FCategoryColumnWidth) <> wkList.Count then begin | |
2269 | + memIni.EraseSection(SECTIONS[1]); | |
2270 | + end; | |
2271 | + for i := 0 to High(FCategoryColumnWidth) do begin | |
2272 | + CategoryColumnWidth[i] := memIni.ReadInteger(SECTIONS[1], | |
2273 | + 'ID' + IntToStr(i), DEFAULT_CATEGORY_WIDTH[i]); | |
2274 | + if CategoryColumnWidth[i] > MAX_WIDTH then | |
2275 | + CategoryColumnWidth[i] := DEFAULT_CATEGORY_WIDTH[i]; | |
2276 | + end; | |
2277 | + memIni.ReadSection(SECTIONS[2], wkList); | |
2278 | + if Length(FBoardColumnWidth) <> wkList.Count then begin | |
2279 | + memIni.EraseSection(SECTIONS[2]); | |
2280 | + end; | |
2281 | + for i := 0 to High(FBoardColumnWidth) do begin | |
2282 | + BoardColumnWidth[i] := memIni.ReadInteger(SECTIONS[2], | |
2283 | + 'ID' + IntToStr(i), DEFAULT_BOARD_WIDTH[i]); | |
2284 | + if BoardColumnWidth[i] > MAX_WIDTH then | |
2285 | + BoardColumnWidth[i] := DEFAULT_BOARD_WIDTH[i]; | |
2286 | + end; | |
2287 | + finally | |
2288 | + wkList.Free; | |
2289 | + end; | |
2290 | + end; | |
2291 | +end; | |
2292 | +//! JeSXgJÇÝÝ | |
2293 | +procedure TSetting.ReadOrdColumn(memIni: TMemIniFile); | |
2294 | +var | |
2295 | + wkList : TStringList; | |
2296 | + wkStr : string; | |
2297 | + i, id, code : Integer; | |
2298 | +begin | |
2299 | + if (memIni <> nil) then begin | |
2300 | + wkList := TStringList.Create; | |
2301 | + try | |
2302 | + memIni.ReadSection( 'BBSColumnOrder', wkList ); | |
2303 | + for i := 0 to wkList.Count - 1 do begin | |
2304 | + wkStr := memIni.ReadString( 'BBSColumnOrder', 'ID' + IntToStr( i ), '' ); | |
2305 | + Val( wkStr, id, code ); | |
2306 | + if code = 0 then | |
2307 | + FBBSColumnOrder.Add( TGikoBBSColumnID( id ) ); | |
2308 | + end; | |
2309 | + if FBBSColumnOrder.Count = 0 then begin | |
2310 | + // Ý誳¢ÌÅì¬ | |
2311 | + for i := 0 to Integer( High( TGikoBBSColumnID ) ) do | |
2312 | + FBBSColumnOrder.Add( TGikoBBSColumnID( i ) ); | |
2313 | + end; | |
2228 | 2314 | |
2229 | -end. | |
2315 | + memIni.ReadSection( 'CategoryColumnOrder', wkList ); | |
2316 | + for i := 0 to wkList.Count - 1 do begin | |
2317 | + wkStr := memIni.ReadString( 'CategoryColumnOrder', 'ID' + IntToStr( i ), '' ); | |
2318 | + Val( wkStr, id, code ); | |
2319 | + if code = 0 then | |
2320 | + FCategoryColumnOrder.Add( TGikoCategoryColumnID( id ) ); | |
2321 | + end; | |
2322 | + if FCategoryColumnOrder.Count = 0 then begin | |
2323 | + // Ý誳¢ÌÅì¬ | |
2324 | + for i := 0 to Integer( High( TGikoCategoryColumnID ) ) do | |
2325 | + FCategoryColumnOrder.Add( TGikoCategoryColumnID( i ) ); | |
2326 | + end; | |
2230 | 2327 | |
2328 | + memIni.ReadSection( 'BoardColumnOrder', wkList ); | |
2329 | + for i := 0 to wkList.Count - 1 do begin | |
2330 | + wkStr := memIni.ReadString( 'BoardColumnOrder', 'ID' + IntToStr( i ), '' ); | |
2331 | + Val( wkStr, id, code ); | |
2332 | + if code = 0 then | |
2333 | + FBoardColumnOrder.Add( TGikoBoardColumnID( id ) ); | |
2334 | + end; | |
2335 | + if FBoardColumnOrder.Count = 0 then begin | |
2336 | + // Ý誳¢ÌÅì¬ | |
2337 | + for i := 0 to Integer( High( TGikoBoardColumnID ) ) do begin | |
2338 | + // ¨¢ÌJÍftHgÅñ\¦É·é | |
2339 | + if ( i <> Ord(gbcVigor) ) then begin | |
2340 | + FBoardColumnOrder.Add( TGikoBoardColumnID( i ) ); | |
2341 | + end; | |
2342 | + end; | |
2343 | + end; | |
2344 | + finally | |
2345 | + wkList.Free; | |
2346 | + end; | |
2347 | + end; | |
2348 | +end; | |
2349 | +end. | |
2231 | 2350 |
@@ -33,6 +33,16 @@ function get_2ch_trip( | ||
33 | 33 | const pw : PChar |
34 | 34 | ) : string; |
35 | 35 | |
36 | +{! | |
37 | +\brief gbv̶¬ÉKvÈsalt̶¬ | |
38 | +\parm pw salt̳ÉÈépX[h | |
39 | +\param salt ¶¬µ½saltªi[³êé (array[0..2] of char) | |
40 | +} | |
41 | +procedure get_salt( | |
42 | + const pw : PChar; | |
43 | + salt : PChar | |
44 | +); | |
45 | + | |
36 | 46 | const |
37 | 47 | kCryptInitialTr : CryptOrdering = ( o_data: ( |
38 | 48 | #58,#50,#42,#34,#26,#18,#10, #2,#60,#52,#44,#36,#28,#20,#12, #4, |
@@ -413,18 +423,30 @@ function get_2ch_trip( | ||
413 | 423 | var |
414 | 424 | s : CryptData; |
415 | 425 | salt : array [0..2] of char; |
416 | - | |
417 | - i : Integer; | |
418 | - len : Integer; | |
419 | 426 | begin |
420 | 427 | |
421 | - salt[ 0 ] := #0; | |
422 | 428 | if pw[ 0 ] = #0 then |
423 | 429 | begin |
424 | 430 | Result := ''; |
425 | 431 | Exit; |
426 | 432 | end; |
427 | 433 | |
434 | + get_salt( pw, salt ); | |
435 | + | |
436 | + | |
437 | + Result := Copy( crypt_r( pw, salt, s ), 4, 100 ); | |
438 | + | |
439 | +end; | |
440 | + | |
441 | +procedure get_salt( | |
442 | + const pw : PChar; | |
443 | + salt : PChar | |
444 | +); | |
445 | +var | |
446 | + i, len : Integer; | |
447 | +begin | |
448 | + salt[ 0 ] := #0; | |
449 | + | |
428 | 450 | if pw[ 1 ] <> #0 then |
429 | 451 | begin |
430 | 452 | if pw[ 2 ] <> #0 then |
@@ -438,8 +460,11 @@ begin | ||
438 | 460 | else |
439 | 461 | salt[ i ] := '.'; |
440 | 462 | |
441 | - if Pos( salt[ i ], ':;<=>?@[\\]^_`' ) > 0 then | |
442 | - salt[ i ] := Char( Integer( salt[ i ] ) + 7 ); | |
463 | + if Pos ( salt[ i ], ':;<=>?@' ) > 0 then begin | |
464 | + salt[ i ] := Char( Integer( salt[ i ] ) + 7 ); | |
465 | + end else if Pos( salt[ i ], '[\\]^_`' ) > 0 then begin | |
466 | + salt[ i ] := Char( Integer( salt[ i ] ) + 6 ); | |
467 | + end; | |
443 | 468 | end; |
444 | 469 | if len = 1 then |
445 | 470 | salt[ 1 ] := 'H'; |
@@ -448,9 +473,6 @@ begin | ||
448 | 473 | salt[ 0 ] := 'H'; |
449 | 474 | salt[ 1 ] := '.'; |
450 | 475 | end; |
451 | - | |
452 | - Result := Copy( crypt_r( pw, salt, s ), 4, 100 ); | |
453 | - | |
454 | 476 | end; |
455 | 477 | |
456 | 478 | end. |
@@ -72,7 +72,11 @@ uses | ||
72 | 72 | GikoMessage in 'GikoMessage.pas', |
73 | 73 | InputAssist in 'InputAssist.pas' {InputAssistForm}, |
74 | 74 | InputAssistDataModule in 'InputAssistDataModule.pas' {InputAssistDM: TDataModule}, |
75 | - DefaultFileManager in 'DefaultFileManager.pas'; | |
75 | + DefaultFileManager in 'DefaultFileManager.pas', | |
76 | + MoveHistoryItem in 'MoveHistoryItem.pas', | |
77 | + SambaTimer in 'SambaTimer.pas', | |
78 | + HistoryList in 'HistoryList.pas', | |
79 | + NewBoardURL in 'NewBoardURL.pas' {NewBoardURLForm}; | |
76 | 80 | |
77 | 81 | {$R *.RES} |
78 | 82 | {$R gikoResource.res} |
@@ -1,4 +1,4 @@ | ||
1 | -¡MRir Version1.00 ÊÞÀ53 Readme.txt | |
1 | +¡MRir Version1.00 ÊÞÀ54 Readme.txt | |
2 | 2 | |
3 | 3 | |
4 | 4 | ------------------------------ |
@@ -50,7 +50,7 @@ | ||
50 | 50 | ------------------------------ |
51 | 51 | oOâv]ÍAMRirXbhÅó¯t¯Ä¨èÜ·B |
52 | 52 | MRirTCgFhttp://gikonavi.sourceforge.jp/ |
53 | -MRirXFhttp://pc7.2ch.net/test/read.cgi/software/1149268313/l50 | |
53 | +MRirXFhttp://pc7.2ch.net/test/read.cgi/software/1151728347/l50 | |
54 | 54 | |
55 | 55 | ------------------------------ |
56 | 56 | ]ÚÉ墀 |
@@ -107,7 +107,15 @@ LICENSE | ||
107 | 107 | ------------------------------ |
108 | 108 | ð |
109 | 109 | ------------------------------ |
110 | -2006/XX/XX | |
110 | +2007/01/28 | |
111 | + Version ÊÞÀ54 | |
112 | +@XbhàÅÌNÅÚ®µ½Æ«ÌððHêé@\ðÇÁ | |
113 | +@^XNgCÉi[·é@\ðÇÁiIvVÅŬ»àj | |
114 | +@Samba24ÎôŲÆÉÝèÂ\Ég£ | |
115 | +@ENbNÌReLXgj [ÅÌ}EXWFX`[ÅnO·ésïÌñðIvVðÇÁ | |
116 | +@iWin9xnpj | |
117 | + | |
118 | +2006/08/07 | |
111 | 119 | Version ÊÞÀ53 |
112 | 120 | @IE7(beta)ðCXg[·éÆXAJ[Ì|bvAbvÅ\¦³êÈ¢sïÌC³ |
113 | 121 | @µ½çÎJBBSÂXVªA®ìµÈ¢sïÌC³ |
@@ -116,8 +124,8 @@ LICENSE | ||
116 | 124 | @ñ\ñ¼ÌÏXª½f³êÈ¢sïÌC³ |
117 | 125 | @ðíɺ¤sïÌC³ |
118 | 126 | @J}ÅA±·éXAJ[ÉNªÝè³êÈ¢sïÌC³ |
119 | -@ | |
120 | - | |
127 | +@ftHgÌÝèt@C̵¢ðê | |
128 | +@XGfB^Ìvr [Å\¦³êégbvL[ÆÀÛÌgbvL[ªÙÈésïÌC³ | |
121 | 129 | |
122 | 130 | 2006/06/18 |
123 | 131 | Version ÊÞÀ52 |
@@ -1,20 +1,25 @@ | ||
1 | 1 | [Setting] |
2 | +@ascii2d=120 | |
3 | +@chiri=120 | |
4 | +@gline=120 | |
5 | +@newsplus=120 | |
6 | +@operate=120 | |
7 | +@tv=120 | |
2 | 8 | aa5=30 |
3 | 9 | academy4=30 |
4 | 10 | anime=45 |
5 | 11 | book3=30 |
6 | -bubble4=120 | |
12 | +bubble4=30 | |
7 | 13 | comic6=30 |
8 | 14 | etc3=30 |
9 | 15 | etc4=30 |
10 | -ex9=15 | |
11 | 16 | ex11=15 |
12 | -ex12=15 | |
13 | 17 | ex13=15 |
14 | -ex14=15 | |
18 | +ex16=15 | |
19 | +ex9=15 | |
15 | 20 | food6=30 |
16 | -game9=30 | |
17 | 21 | game10=30 |
22 | +game9=30 | |
18 | 23 | hobby7=30 |
19 | 24 | hobby8=30 |
20 | 25 | human5=30 |
@@ -22,12 +27,14 @@ life7=30 | ||
22 | 27 | live14=10 |
23 | 28 | live19=10 |
24 | 29 | live22x=10 |
30 | +live23=10 | |
25 | 31 | love3=30 |
26 | 32 | money4=30 |
27 | -music4=30 | |
28 | 33 | music5=30 |
34 | +music6=30 | |
29 | 35 | news18=30 |
30 | -news19=120 | |
36 | +news19=30 | |
37 | +news20=120 | |
31 | 38 | off3=30 |
32 | 39 | pc7=30 |
33 | 40 | pc8=30 |
@@ -39,12 +46,13 @@ science4=30 | ||
39 | 46 | society3=30 |
40 | 47 | sports9=60 |
41 | 48 | that4=30 |
42 | -tmp5=45 | |
49 | +tmp6=45 | |
43 | 50 | travel2=30 |
44 | 51 | tv7=30 |
45 | 52 | tv8=60 |
46 | -pie=30 | |
53 | + | |
47 | 54 | idol=30 |
55 | +pie=30 | |
48 | 56 | sakura01=30 |
49 | 57 | sakura02=30 |
50 | 58 | sakura03=30 |