Unit1.cpp
上传用户:daoqigc
上传日期:2021-04-20
资源大小:2795k
文件大小:3k
源码类别:

RichEdit

开发平台:

Delphi

  1. /*=============================================================================}
  2. { This demo shows how to use Tags of items in mode, when Tags are considered as}
  3. { pointers to dynamically allocated strings (PChar).                           }
  4. { In this demo, rvoTagsArePChars was set in Options (IMPORTANT!)               }
  5. { In this mode, you need to allocate memory for tag strings with StrNew.       }
  6. { RichView will free this memory itself when needed.                           }
  7. {------------------------------------------------------------------------------}
  8. { The key methods are the same as in the previous demo.                        }
  9. { You still can use Add***, which set Tags to 0 (i.e. NULL - empty string).    }
  10. {------------------------------------------------------------------------------}
  11. { This is the most powerfull method for organizing hypertext, because you can  }
  12. { encode any information that you need in string.                              }
  13. {------------------------------------------------------------------------------}
  14. { IMPORTANT: Do not use spaces in Tag strings (you can use them, but you       }
  15. { will not be able to save such tags in RVF files)                             }
  16. { IMPORTANT: Do not use #0 in Tag strings (except from character closing       }
  17. { the string)                                                                  }
  18. {=============================================================================*/
  19. #include <vclvcl.h>
  20. #pragma hdrstop
  21. #include "Unit1.h"
  22. //---------------------------------------------------------------------------
  23. #pragma link "RichView"
  24. #pragma link "RVScroll"
  25. #pragma link "RVStyle"
  26. #pragma resource "*.dfm"
  27. TForm1 *Form1;
  28. //---------------------------------------------------------------------------
  29. __fastcall TForm1::TForm1(TComponent* Owner)
  30.     : TForm(Owner)
  31. {
  32. }
  33. //---------------------------------------------------------------------------
  34. void __fastcall TForm1::FormCreate(TObject *Sender)
  35. {
  36.   RichView1->AddNL("Some text styles can be chosen as hypertext styles. ",0,0);
  37.   RichView1->AddNLTag("Like this one.",4,-1, (int)StrNew("First_jump"));
  38.   RichView1->AddNL(" You can have as many hypertext styles as you want.  ",0,-1);
  39.   RichView1->AddNLTag("Here is one more.",5,-1,  (int)StrNew("Second_jump"));
  40.   RichView1->AddNL("Images from Image Lists also can be hypertext: ",0,0);
  41.   RichView1->AddHotspotExTag("Pen Image", 0,1, ImageList1, -1, (int)StrNew("Third_jump"));
  42.   RichView1->AddNL(" Such images are called 'hotspots'.",0,-1);
  43.   TIcon* ico = new TIcon;
  44.   ico->Assign(Image1->Picture->Graphic);
  45.   RichView1->AddHotPictureTag("Bobo", ico, -1, rvvaBaseline, (int)StrNew("Fourth_jump"));
  46.   RichView1->Format();
  47. }
  48. //---------------------------------------------------------------------------
  49. void __fastcall TForm1::RichView1Jump(TObject *Sender, int id)
  50. {
  51.   int ItemNo = RichView1->GetJumpPointItemNo(id);
  52.   AnsiString Tag = (char*)RichView1->GetItemTag(ItemNo);
  53.   Panel1->Caption = "Clicked: Item with Tag="+Tag;
  54. }
  55. //---------------------------------------------------------------------------