ギコナビ
Revision | 1aec69dbc1cb1d93d23dca4fff311f910f13e091 (tree) |
---|---|
Time | 2006-07-30 10:09:55 |
Author | cvs2git <cvs2git> |
Commiter | cvs2git |
This commit was manufactured by cvs2svn to create tag 'v1_53_0_669'.
@@ -1,5 +1,5 @@ | ||
1 | 1 | object GikoForm: TGikoForm |
2 | - Left = 241 | |
2 | + Left = 422 | |
3 | 3 | Top = 68 |
4 | 4 | HorzScrollBar.Visible = False |
5 | 5 | VertScrollBar.Visible = False |
@@ -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 |
@@ -346,7 +346,7 @@ object GikoForm: TGikoForm | ||
346 | 346 | end> |
347 | 347 | EdgeBorders = [ebLeft, ebTop, ebRight] |
348 | 348 | EdgeInner = esLowered |
349 | - OnContextPopup = MainCoolBarContextPopup | |
349 | + PopupMenu = MainCoolBarPopupMenu | |
350 | 350 | OnBandInfo = ListCoolBarBandInfo |
351 | 351 | OnChevronClick = ListCoolBarChevronClick |
352 | 352 | object ListToolBar: TToolBar |
@@ -573,7 +573,7 @@ object GikoForm: TGikoForm | ||
573 | 573 | end> |
574 | 574 | EdgeBorders = [ebLeft, ebTop, ebRight] |
575 | 575 | EdgeInner = esLowered |
576 | - OnContextPopup = MainCoolBarContextPopup | |
576 | + PopupMenu = MainCoolBarPopupMenu | |
577 | 577 | OnBandInfo = BrowserCoolBarBandInfo |
578 | 578 | OnChevronClick = BrowserCoolBarChevronClick |
579 | 579 | object BrowserToolBar: TToolBar |
@@ -910,7 +910,7 @@ object GikoForm: TGikoForm | ||
910 | 910 | Text = #12522#12531#12463 |
911 | 911 | Width = 735 |
912 | 912 | end> |
913 | - OnContextPopup = MainCoolBarContextPopup | |
913 | + PopupMenu = MainCoolBarPopupMenu | |
914 | 914 | OnResize = MainCoolBarResize |
915 | 915 | OnBandInfo = MainCoolBarBandInfo |
916 | 916 | OnChevronClick = MainCoolBarChevronClick |
@@ -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 |
@@ -5376,6 +5376,7 @@ object GikoForm: TGikoForm | ||
5376 | 5376 | end |
5377 | 5377 | end |
5378 | 5378 | object MainCoolBarPopupMenu: TPopupMenu |
5379 | + OnPopup = MainCoolBarPopupMenuPopup | |
5379 | 5380 | Left = 100 |
5380 | 5381 | Top = 404 |
5381 | 5382 | object StdToolBarVisiblePMenu: TMenuItem |
@@ -543,8 +543,7 @@ type | ||
543 | 543 | procedure TreeViewMouseDown(Sender: TObject; Button: TMouseButton; |
544 | 544 | Shift: TShiftState; X, Y: Integer); |
545 | 545 | procedure GetResURLMenuClick(Sender: TObject); |
546 | - procedure MainCoolBarContextPopup(Sender: TObject; MousePos: TPoint; | |
547 | - var Handled: Boolean); | |
546 | + procedure MainCoolBarPopupMenuPopup(Sender: TObject); | |
548 | 547 | private |
549 | 548 | { Private é¾ } |
550 | 549 | FEnabledCloseButton: Boolean; |
@@ -7671,28 +7670,25 @@ begin | ||
7671 | 7670 | ListView.Refresh; |
7672 | 7671 | end; |
7673 | 7672 | end; |
7674 | - | |
7675 | -procedure TGikoForm.MainCoolBarContextPopup(Sender: TObject; | |
7676 | - MousePos: TPoint; var Handled: Boolean); | |
7673 | +//! CoolBarÌ|bvAbvO | |
7674 | +procedure TGikoForm.MainCoolBarPopupMenuPopup(Sender: TObject); | |
7677 | 7675 | var |
7678 | - pos : TPoint; | |
7679 | - coolBar: TGikoCoolBar; | |
7676 | + compPopup : TComponent; | |
7680 | 7677 | begin |
7681 | - Handled := False; | |
7682 | - if (Sender <> nil) and (Sender is TGikoCoolBar) then begin | |
7683 | - coolBar := TGikoCoolBar(Sender); | |
7684 | - if (coolBar = MainCoolBar) then begin | |
7685 | - FToolBarSettingSender := tssMain; | |
7686 | - end else if (coolBar = ListCoolBar) then begin | |
7687 | - FToolBarSettingSender := tssList; | |
7688 | - end else if (coolBar = BrowserCoolBar) then begin | |
7689 | - FToolBarSettingSender := tssBrowser; | |
7690 | - end else begin | |
7691 | - FToolBarSettingSender := tssNone; | |
7678 | + FToolBarSettingSender := tssNone; | |
7679 | + if (Sender <> nil) and (Sender is TPopupMenu) then begin | |
7680 | + // ÄÑoµ³CoolBarÉæÁÄCFToolBarSettingSender | |
7681 | + // ÌlðÏX·é | |
7682 | + compPopup := TPopupMenu(Sender).PopupComponent; | |
7683 | + if (compPopup <> nil) then begin | |
7684 | + if (compPopup = MainCoolBar) then begin | |
7685 | + FToolBarSettingSender := tssMain; | |
7686 | + end else if (compPopup = ListCoolBar) then begin | |
7687 | + FToolBarSettingSender := tssList; | |
7688 | + end else if (compPopup = BrowserCoolBar) then begin | |
7689 | + FToolBarSettingSender := tssBrowser; | |
7690 | + end; | |
7692 | 7691 | end; |
7693 | - pos := coolBar.ClientToScreen( MousePos ); | |
7694 | - MainCoolBarPopupMenu.Popup( pos.X, pos.Y ); | |
7695 | - Handled := True; | |
7696 | 7692 | end; |
7697 | 7693 | end; |
7698 | 7694 |
@@ -2753,13 +2753,7 @@ function TGikoSys.GetSameIDResAnchor(const AID : string; ThreadItem: TThreadItem | ||
2753 | 2753 | var |
2754 | 2754 | i: integer; |
2755 | 2755 | body: TStringList; |
2756 | - Res: TResRec; | |
2757 | - ResLink : TResLinkRec; | |
2758 | 2756 | begin |
2759 | - // bodyÈOÍgpµÈ¢ÌÅú»µÈ¢ | |
2760 | - Res.FBody := ''; | |
2761 | - Res.FType := glt2chNew; | |
2762 | - | |
2763 | 2757 | Result := ''; |
2764 | 2758 | if (not IsNoValidID(AID)) and |
2765 | 2759 | (ThreadItem <> nil) and (ThreadItem.IsLogFile) then begin |
@@ -2768,20 +2762,21 @@ begin | ||
2768 | 2762 | GetSameIDRes(AID, ThreadItem, body); |
2769 | 2763 | if (limited) and (body.Count > 20) then begin |
2770 | 2764 | for i := body.Count - 20 to body.Count - 1 do begin |
2771 | - Res.FBody := Res.FBody + '>' + body[i] + ' '; | |
2765 | + Result := Result + '>' + body[i] + ' '; | |
2772 | 2766 | end; |
2773 | 2767 | end else begin |
2774 | 2768 | for i := 0 to body.Count - 1 do begin |
2775 | - Res.FBody := Res.FBody + '>' + body[i] + ' '; | |
2769 | + Result := Result + '>' + body[i] + ' '; | |
2776 | 2770 | end; |
2777 | 2771 | end; |
2778 | 2772 | finally |
2779 | 2773 | body.Free; |
2780 | 2774 | end; |
2781 | - ResLink.FBbs := ThreadItem.ParentBoard.BBSID; | |
2782 | - ResLink.FKey := ChangeFileExt(ThreadItem.FileName, ''); | |
2783 | - HTMLCreater.ConvRes(@Res, @ResLink, false); | |
2784 | - Result := Res.FBody; | |
2775 | + | |
2776 | + Result := HTMLCreater.ConvRes( | |
2777 | + Result, | |
2778 | + ThreadItem.ParentBoard.BBSID, ChangeFileExt(ThreadItem.FileName, ''), | |
2779 | + 'bbs', 'key', 'st', 'to', 'nofirst', 'true', false); | |
2785 | 2780 | end; |
2786 | 2781 | end; |
2787 | 2782 |
@@ -2842,13 +2837,7 @@ function TGikoSys.GetSameIDResAnchor(AIDNum : Integer; ThreadItem: TThreadItem; | ||
2842 | 2837 | var |
2843 | 2838 | i: integer; |
2844 | 2839 | body: TStringList; |
2845 | - Res: TResRec; | |
2846 | - ResLink : TResLinkRec; | |
2847 | 2840 | begin |
2848 | - // bodyÈOÍgpµÈ¢ÌÅú»µÈ¢ | |
2849 | - Res.FBody := ''; | |
2850 | - Res.FType := glt2chNew; | |
2851 | - | |
2852 | 2841 | Result := ''; |
2853 | 2842 | if (ThreadItem <> nil) and (ThreadItem.IsLogFile) then begin |
2854 | 2843 | body := TStringList.Create; |
@@ -2856,20 +2845,21 @@ begin | ||
2856 | 2845 | GetSameIDRes(AIDNum, ThreadItem, body); |
2857 | 2846 | if (limited) and (body.Count > 20) then begin |
2858 | 2847 | for i := body.Count - 20 to body.Count - 1 do begin |
2859 | - Res.FBody := Res.FBody + '>' + body[i] + ' '; | |
2848 | + Result := Result + '>' + body[i] + ' '; | |
2860 | 2849 | end; |
2861 | 2850 | end else begin |
2862 | 2851 | for i := 0 to body.Count - 1 do begin |
2863 | - Res.FBody := Res.FBody + '>' + body[i] + ' '; | |
2852 | + Result := Result + '>' + body[i] + ' '; | |
2864 | 2853 | end; |
2865 | 2854 | end; |
2866 | 2855 | finally |
2867 | 2856 | body.Free; |
2868 | 2857 | end; |
2869 | - ResLink.FBbs := ThreadItem.ParentBoard.BBSID; | |
2870 | - ResLink.FKey := ChangeFileExt(ThreadItem.FileName, ''); | |
2871 | - HTMLCreater.ConvRes(@Res, @ResLink, false); | |
2872 | - Result := Res.FBody; | |
2858 | + Result := HTMLCreater.ConvRes( | |
2859 | + Result, ThreadItem.ParentBoard.BBSID, | |
2860 | + ChangeFileExt(ThreadItem.FileName, ''), | |
2861 | + 'bbs', 'key', 'st', 'to', 'nofirst', 'true', | |
2862 | + false); | |
2873 | 2863 | end; |
2874 | 2864 | end; |
2875 | 2865 |
@@ -60,20 +60,16 @@ type | ||
60 | 60 | procedure CreateDefaultHTML (html:TBufferedWebBrowser; ThreadItem: TThreadItem; ReadList: TStringList; sTitle: string ); |
61 | 61 | procedure ConvertResAnchor(PRes: PResRec); |
62 | 62 | procedure separateNumber(var st: String; var et: String; const Text, Separator: String); |
63 | - function checkComma(const s : String; var j : Integer) : boolean; | |
63 | + function checkComma(const s : String; var j : Integer; var No : String) : boolean; | |
64 | 64 | function addResAnchor(PAddRes: PResRec; PResLink : PResLinkRec; dat : boolean; |
65 | 65 | var s : String; j : Integer; const No: String) : string; |
66 | - function appendResAnchor(PAddRes: PResRec; PResLink : PResLinkRec; | |
67 | - dat : boolean; var s : String) : string; | |
68 | - function getNumberString(const str: String;var index :Integer; var dbCharlen: Boolean; | |
69 | - sLen :Integer): String; | |
70 | - | |
71 | 66 | public |
72 | 67 | { Public é¾ } |
73 | 68 | procedure AddAnchorTag(PRes: PResRec); |
74 | 69 | function LoadFromSkin(fileName: string; ThreadItem: TThreadItem; SizeByte: Integer): string; |
75 | 70 | function SkinedRes(const skin: string; PRes: PResRec; const No: string): string; |
76 | 71 | procedure ConvRes( PRes : PResRec; PResLink : PResLinkRec; DatToHTML: boolean = false); overload; |
72 | + function ConvRes(const Body, Bbs, Key, ParamBBS, ParamKey, ParamStart, ParamTo, ParamNoFirst, ParamTrue : string; DatToHTML: boolean = false): string; overload; | |
77 | 73 | procedure CreateHTML2(Browser: TWebBrowser; ThreadItem: TThreadItem; var sTitle: string); |
78 | 74 | procedure CreateHTML3(var html: TStringList; ThreadItem: TThreadItem; var sTitle: string); |
79 | 75 | //X|bvAbvÌì¬ |
@@ -356,9 +352,6 @@ begin | ||
356 | 352 | end else |
357 | 353 | Result := AID; |
358 | 354 | end; |
359 | -//! XAJ[ÌXÔðª·é | |
360 | -// Text = '1-9' -> st = '1'; et = '9' | |
361 | -// Text = '10' -> st = '10'; et = '10' | |
362 | 355 | procedure THTMLCreate.separateNumber(var st: String; var et: String; const Text:String; const Separator: String); |
363 | 356 | var |
364 | 357 | p : Integer; |
@@ -372,58 +365,54 @@ begin | ||
372 | 365 | et := Text; |
373 | 366 | end; |
374 | 367 | end; |
375 | -//! XAJ[ªwµÄ¢éXÔ̶ñðæ¾·é | |
376 | -function THTMLCreate.getNumberString( | |
377 | - const str: String; | |
378 | - var index :Integer; var dbCharlen: Boolean; sLen :Integer) | |
379 | -: String; | |
380 | -const | |
381 | - SN = '0123456789'; | |
382 | -var | |
383 | - ch : String; | |
384 | - sw : Boolean; | |
385 | -begin | |
386 | - Result := ''; | |
387 | - sw := False; | |
388 | - while (index <= sLen) do begin | |
389 | - if (ByteType(str, index) = mbSingleByte) then begin | |
390 | - //1byte¶ | |
391 | - ch := str[index]; | |
392 | - Inc(index); | |
393 | - dbCharlen := false; | |
394 | - end else begin | |
395 | - //2byte¶ | |
396 | - ch := ZenToHan(Copy(str, index, 2)); | |
397 | - Inc(index, 2); | |
398 | - dbCharlen := true; | |
399 | - end; | |
400 | - | |
401 | - if System.Pos(ch, SN) > 0 then begin | |
402 | - Result := Result + ch; | |
403 | - end else if (ch = '-') then begin | |
404 | - if sw then break; | |
405 | - if Result = '' then break; | |
406 | - Result := Result + ch; | |
407 | - sw := true; | |
408 | - end else begin | |
409 | - break; | |
410 | - end; | |
411 | - end; | |
412 | -end; | |
413 | - | |
414 | 368 | procedure THTMLCreate.ConvRes( PRes : PResRec; PResLink : PResLinkRec; DatToHTML: boolean = false); |
415 | 369 | const |
416 | 370 | GT = '>'; |
371 | + SN = '0123456789'; | |
417 | 372 | //õÎÛ̶ñS |
418 | 373 | TOKEN : array[0..5] of string = (GT+GT, GT, '', '', '<a ', '<A '); |
419 | 374 | var |
420 | 375 | i : integer; |
421 | 376 | s : string; |
377 | + sw: boolean; | |
378 | + cm: boolean; | |
422 | 379 | No: string; |
380 | + oc : string; | |
423 | 381 | pos, pmin : integer; |
424 | 382 | j : integer; |
383 | + ch : string; | |
425 | 384 | db : boolean; |
385 | + len : integer; | |
426 | 386 | rink : string; |
387 | + | |
388 | + procedure getNumberString; | |
389 | + begin | |
390 | + while (j <= len) do begin | |
391 | + if (ByteType(s, j) = mbSingleByte) then begin | |
392 | + //1byte¶ | |
393 | + ch := s[j]; | |
394 | + Inc(j); | |
395 | + db := false; | |
396 | + end else begin | |
397 | + //2byte¶ | |
398 | + ch := ZenToHan(Copy(s, j, 2)); | |
399 | + Inc(j, 2); | |
400 | + db := true; | |
401 | + end; | |
402 | + | |
403 | + if System.Pos(ch, SN) > 0 then begin | |
404 | + No := No + ch; | |
405 | + end else if (ch = '-') then begin | |
406 | + if sw then break; | |
407 | + if No = '' then break; | |
408 | + No := No + ch; | |
409 | + sw := true; | |
410 | + end else begin | |
411 | + break; | |
412 | + end; | |
413 | + end; | |
414 | + end; | |
415 | + | |
427 | 416 | begin |
428 | 417 | //s É{¶ðSüêé |
429 | 418 | s := PRes.FBody; |
@@ -482,22 +471,43 @@ begin | ||
482 | 471 | end; |
483 | 472 | // XAJ[ªÜÜêÄ¢½ç,ª±ÀèAJ[Ƶĵ¤ |
484 | 473 | if i <= 3 then begin |
485 | - appendResAnchor(PRes, PResLink, DatToHTML, s ); | |
474 | + No := ''; | |
475 | + j := 1; | |
476 | + len := Length(s); | |
477 | + cm := checkComma(s, j, No); | |
478 | + len := Length(s); | |
479 | + while cm do begin | |
480 | + oc := ''; | |
481 | + No := ''; | |
482 | + sw := false; | |
483 | + db := false; | |
484 | + getNumberString; | |
485 | + //I[ÜÅsÁÄÌI¹©`FbN | |
486 | + if j <= len then begin | |
487 | + if db then j := j - 2 | |
488 | + else j := j - 1; | |
489 | + end; | |
490 | + addResAnchor(PRes, PResLink, DatToHTML, s, j, No); | |
491 | + j := 1; | |
492 | + len := Length(s); | |
493 | + cm := checkComma(s, j, No); | |
494 | + end; | |
486 | 495 | end; |
487 | 496 | end else begin |
488 | 497 | //½©µç©Â©Á½p^[ |
489 | 498 | j := Length(TOKEN[i]) + 1; |
499 | + oc := ''; | |
500 | + No := ''; | |
501 | + sw := false; | |
490 | 502 | db := false; |
491 | - No := getNumberString(s, j, db, Length(s) ); | |
503 | + len := Length(s); | |
504 | + getNumberString; | |
492 | 505 | //I[ÜÅsÁÄÌI¹©`FbN |
493 | - if j <= Length(s) then begin | |
506 | + if j <= len then begin | |
494 | 507 | if db then j := j - 2 |
495 | 508 | else j := j - 1; |
496 | 509 | end; |
497 | 510 | addResAnchor(PRes, PResLink, DatToHTML, s, j, No); |
498 | - | |
499 | - // , ª±ÀèXAJ[Ƶķé | |
500 | - appendResAnchor(PRes, PResLink, DatToHTML, s ); | |
501 | 511 | end; |
502 | 512 | end; |
503 | 513 | if Length(s) > 0 then begin |
@@ -506,7 +516,8 @@ begin | ||
506 | 516 | end; |
507 | 517 | function THTMLCreate.checkComma( |
508 | 518 | const s : String; |
509 | - var j : Integer | |
519 | + var j : Integer; | |
520 | + var No : String | |
510 | 521 | ) : boolean; |
511 | 522 | var |
512 | 523 | bType : TMbcsByteType; |
@@ -521,38 +532,10 @@ begin | ||
521 | 532 | Inc(j) |
522 | 533 | else |
523 | 534 | Inc(j, 2); |
535 | + No := ''; | |
524 | 536 | end; |
525 | 537 | end; |
526 | 538 | end; |
527 | -function THTMLCreate.appendResAnchor( | |
528 | - PAddRes: PResRec; PResLink : PResLinkRec; dat : boolean; | |
529 | - var s : String) : string; | |
530 | -var | |
531 | - No{, ch, oc}: String; | |
532 | - len, j : Integer; | |
533 | - cm, {sw,} db : Boolean; | |
534 | - | |
535 | -begin | |
536 | - No := ''; | |
537 | - j := 1; | |
538 | - cm := checkComma(s, j); | |
539 | - len := Length(s); | |
540 | - while cm do begin | |
541 | - db := false; | |
542 | - No := getNumberString(s, j, db, len ); | |
543 | - | |
544 | - //I[ÜÅsÁÄÌI¹©`FbN | |
545 | - if j <= len then begin | |
546 | - if db then j := j - 2 | |
547 | - else j := j - 1; | |
548 | - end; | |
549 | - addResAnchor(PAddRes, PResLink, dat, s, j, No); | |
550 | - j := 1; | |
551 | - len := Length(s); | |
552 | - cm := checkComma(s, j); | |
553 | - end; | |
554 | -end; | |
555 | - | |
556 | 539 | function THTMLCreate.addResAnchor( |
557 | 540 | PAddRes: PResRec; PResLink : PResLinkRec; dat : boolean; |
558 | 541 | var s : String; j : Integer; const No: String) : string; |
@@ -579,6 +562,186 @@ begin | ||
579 | 562 | Delete(s, 1, j - 1); |
580 | 563 | end; |
581 | 564 | |
565 | +(************************************************************************* | |
566 | + * | |
567 | + * from HotZonu | |
568 | + *************************************************************************) | |
569 | +function THTMLCreate.ConvRes(const Body, Bbs, Key, | |
570 | + ParamBBS, ParamKey, ParamStart, ParamTo, ParamNoFirst, ParamTrue : string; | |
571 | + DatToHTML: boolean = false): string; | |
572 | +const | |
573 | + GT = '>'; | |
574 | + SN = '0123456789'; | |
575 | + FORMAT_LINK = '<a href="../test/read.cgi?%s=%s&%s=%s&%s=%s&%s=%s&%s=%s" target="_blank">'; | |
576 | + //õÎÛ̶ñS | |
577 | + TOKEN : array[0..5] of string = (GT+GT, GT, '', '', '<a ', '<A '); | |
578 | +var | |
579 | + i : integer; | |
580 | + s : string; | |
581 | + sw: boolean; | |
582 | + cm: boolean; | |
583 | + No: string; | |
584 | + oc : string; | |
585 | + pos, pmin : integer; | |
586 | + j : integer; | |
587 | + ch : string; | |
588 | + db : boolean; | |
589 | + len : integer; | |
590 | + rink : string; | |
591 | + function addResAnchor(const Left :string) : string; | |
592 | + var | |
593 | + st,et : string; | |
594 | + begin | |
595 | + //I[ÜÅsÁÄÌI¹©`FbN | |
596 | + if j <= len then begin | |
597 | + if db then j := j - 2 | |
598 | + else j := j - 1; | |
599 | + end; | |
600 | + //½àª©Â©çȢƫ | |
601 | + if No = '' then begin | |
602 | + Result := Left + Copy(s, 1, j - 1); | |
603 | + end else begin | |
604 | + separateNumber(st, et, No, '-'); | |
605 | + | |
606 | + if not DatToHTML then begin | |
607 | + Result := Left + Format(FORMAT_LINK, | |
608 | + [ParamBBS, Bbs, ParamKey, Key, ParamStart, st, ParamTo, et, ParamNoFirst, ParamTrue]); | |
609 | + end else begin | |
610 | + Result := Left + Format('<a href="#%s">', [st]); | |
611 | + end; | |
612 | + Result := Result + Copy(s, 1, j - 1) + '</a>'; | |
613 | + end; | |
614 | + Delete(s, 1, j - 1); | |
615 | + end; | |
616 | + | |
617 | + procedure getNumberString; | |
618 | + begin | |
619 | + while (j <= len) do begin | |
620 | + if (ByteType(s, j) = mbSingleByte) then begin | |
621 | + //1byte¶ | |
622 | + ch := s[j]; | |
623 | + Inc(j); | |
624 | + db := false; | |
625 | + end else begin | |
626 | + //2byte¶ | |
627 | + ch := ZenToHan(Copy(s, j, 2)); | |
628 | + Inc(j, 2); | |
629 | + db := true; | |
630 | + end; | |
631 | + | |
632 | + if System.Pos(ch, SN) > 0 then begin | |
633 | + No := No + ch; | |
634 | + end else if (ch = '-') then begin | |
635 | + if sw then break; | |
636 | + if No = '' then break; | |
637 | + No := No + ch; | |
638 | + sw := true; | |
639 | + end else begin | |
640 | + break; | |
641 | + end; | |
642 | + end; | |
643 | + end; | |
644 | + | |
645 | + function checkComma : boolean; | |
646 | + begin | |
647 | + j := 1; | |
648 | + len := Length(s); | |
649 | + if ((len > 0) and (s[j] = ',')) or ((len > 1) and (ZenToHan(Copy(s, j ,2)) = ',')) then begin | |
650 | + Result := true; | |
651 | + if (ByteType(s, j) = mbSingleByte) then | |
652 | + Inc(j) | |
653 | + else | |
654 | + Inc(j, 2); | |
655 | + No := ''; | |
656 | + end else begin | |
657 | + Result := false; | |
658 | + end; | |
659 | + end; | |
660 | +begin | |
661 | + //s É{¶ðSüêé | |
662 | + s := Body; | |
663 | + //ÊðNA | |
664 | + Result := ''; | |
665 | + | |
666 | + // | |
667 | + while Length(s) > 2 do begin | |
668 | + pmin := Length(s) + 1; | |
669 | + i := Length(token); | |
670 | + for j := 0 to 5 do begin | |
671 | + pos := AnsiPos(TOKEN[j], s); | |
672 | + if pos <> 0 then begin | |
673 | + if pos < pmin then begin | |
674 | + //ÇêÅqbgµ½©Û¶ | |
675 | + i := j; | |
676 | + //ŬlðXV | |
677 | + pmin := pos; | |
678 | + end; | |
679 | + end; | |
680 | + end; | |
681 | + | |
682 | + //qbgµ½¶ñÌêÂèOÜÅÊÉRs[ | |
683 | + Result := Result + Copy(s, 1, pmin - 1); | |
684 | + Delete(s, 1, pmin - 1); | |
685 | + | |
686 | + if i = 6 then begin | |
687 | + //qbgȵ | |
688 | + end else if (i = 4) or (i = 5) then begin | |
689 | + //'<a ' or '<A' Åqbg '</a>' or '</A>' ÜÅRs[ | |
690 | + pmin := AnsiPos('</a>' , s); | |
691 | + pos := AnsiPos('</A>' , s); | |
692 | + if (pmin <> 0) and (pos <> 0) then begin | |
693 | + if (pmin > pos) then begin | |
694 | + pmin := pos; | |
695 | + end; | |
696 | + end else if (pos <> 0) then begin | |
697 | + pmin := pos; | |
698 | + end; | |
699 | + rink := Copy(s, 1, pmin + 3); | |
700 | + Result := Result + rink; | |
701 | + Delete(s, 1, pmin + 3); | |
702 | + | |
703 | + pmin := Length(rink); | |
704 | + i := Length(TOKEN); | |
705 | + for j := 0 to 3 do begin | |
706 | + pos := AnsiPos(TOKEN[j], rink); | |
707 | + if pos <> 0 then begin | |
708 | + if pos < pmin then begin | |
709 | + //ÇêÅqbgµ½©Û¶ | |
710 | + i := j; | |
711 | + //ŬlðXV | |
712 | + pmin := pos; | |
713 | + end; | |
714 | + end; | |
715 | + end; | |
716 | + // XAJ[ªÜÜêÄ¢½ç,ª±ÀèAJ[Ƶĵ¤ | |
717 | + if i <= 3 then begin | |
718 | + No := ''; | |
719 | + cm := checkComma; | |
720 | + len := Length(s); | |
721 | + while cm do begin | |
722 | + oc := ''; | |
723 | + No := ''; | |
724 | + sw := false; | |
725 | + db := false; | |
726 | + getNumberString; | |
727 | + Result := addResAnchor(Result); | |
728 | + cm := checkComma; | |
729 | + end; | |
730 | + end; | |
731 | + end else begin | |
732 | + //½©µç©Â©Á½p^[ | |
733 | + j := Length(TOKEN[i]) + 1; | |
734 | + oc := ''; | |
735 | + No := ''; | |
736 | + sw := false; | |
737 | + db := false; | |
738 | + len := Length(s); | |
739 | + getNumberString; | |
740 | + Result := addResAnchor(Result); | |
741 | + end; | |
742 | + end; | |
743 | + Result := Result + s; | |
744 | +end; | |
582 | 745 | |
583 | 746 | procedure THTMLCreate.ConvertResAnchor(PRes: PResRec); |
584 | 747 | const |
@@ -1468,8 +1631,7 @@ begin | ||
1468 | 1631 | finally |
1469 | 1632 | dirs.Free; |
1470 | 1633 | end; |
1471 | -end; | |
1472 | -{! | |
1634 | +end;{! | |
1473 | 1635 | \brief datt@CÌêCðªð |
1474 | 1636 | \param Line datt@Cð\¬·é 1 s |
1475 | 1637 | \return Xîñ |
@@ -112,12 +112,8 @@ LICENSE | ||
112 | 112 | @IE7(beta)ðCXg[·éÆXAJ[Ì|bvAbvÅ\¦³êÈ¢sïÌC³ |
113 | 113 | @µ½çÎJBBSÂXVªA®ìµÈ¢sïÌC³ |
114 | 114 | @^uÌ©®Û¶ÅA^uªÈ¢óÔàÛ¶·éæ¤ÉdlðÏX |
115 | -@ÂêXVð·éÆA^uÌÛ¶t@CªXV³êésïÌC³ | |
116 | 115 | @ñ\ñ¼ÌÏXª½f³êÈ¢sïÌC³ |
117 | 116 | @ðíɺ¤sïÌC³ |
118 | -@J}ÅA±·éXAJ[ÉNªÝè³êÈ¢sïÌC³ | |
119 | -@ | |
120 | - | |
121 | 117 | |
122 | 118 | 2006/06/18 |
123 | 119 | Version ÊÞÀ52 |