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

RichEdit

开发平台:

Delphi

  1. //---------------------------------------------------------------------------
  2. #include <vclvcl.h>
  3. #pragma hdrstop
  4. #include "Demo4Frm.h"
  5. //---------------------------------------------------------------------------
  6. #pragma link "RichView"
  7. #pragma link "RVScroll"
  8. #pragma link "RVStyle"
  9. #pragma resource "*.dfm"
  10. TfrmDemo4 *frmDemo4;
  11. //---------------------------------------------------------------------------
  12. __fastcall TfrmDemo4::TfrmDemo4(TComponent* Owner)
  13.     : TForm(Owner)
  14. {
  15. }
  16. //---------------------------------------------------------------------------
  17. const AnsiString Descriptions[8] =
  18. {
  19.    "Exact time twice a day!",
  20.    "Unique 9-button model",
  21.    "Additional keys available on request",
  22.    "Must have for any airline!",
  23.    "Second hand",
  24.    "Universal thing",
  25.    "2 kg",
  26.    "Brooklyn Bridge, available only today, 10% discount for first 10 buyers!"
  27. };
  28. //---------------------------------------------------------------------------
  29. void TfrmDemo4::BuildDoc()
  30. {
  31.   int VPos = rv->VScrollPos;
  32.   rv->Clear();
  33.   rv->AddNL("Welcome to our shop!",1,1);
  34.   rv->AddNL("Today we have:",2,1);
  35.   for (int i=0; i<GoodsCount; i++)
  36.   {
  37.     rv->AddBulletEx("", Goods[i], ilGoods, 0);
  38.     rv->Add(pm->Items->Items[Goods[i]]->Caption,3);
  39.     rv->Add(" ("+Descriptions[Goods[i]]+") ",0);
  40.     rv->AddHotspotEx("", 2,3, il, -1);
  41.     rv->AddBreak();
  42.   }
  43.   if (GoodsCount!=10)
  44.     rv->AddHotspotEx("", 0,1, il, 0);
  45.   rv->Format();
  46.   rv->VScrollPos = VPos;
  47. }
  48. void __fastcall TfrmDemo4::FormCreate(TObject *Sender)
  49. {
  50. #if __BORLANDC__>=0x0550
  51.   pm->AutoHotkeys = maManual;
  52. #endif
  53.   BuildDoc();
  54. }
  55. //---------------------------------------------------------------------------
  56. void __fastcall TfrmDemo4::rvJump(TObject *Sender, int id)
  57. {
  58.   if (id==GoodsCount)
  59.   {
  60.     // adding
  61.     TPoint p;
  62.     GetCursorPos(&p);
  63.     pm->Popup(p.x, p.y);
  64.   }
  65.   else
  66.   {
  67.     // deleting
  68.     for (int i=id; i<GoodsCount-1; i++)
  69.       Goods[i] = Goods[i+1];
  70.     GoodsCount--;
  71.     BuildDoc();
  72.   }
  73. }
  74. //---------------------------------------------------------------------------
  75. void __fastcall TfrmDemo4::pmItemClick(TObject *Sender)
  76. {
  77.   Goods[GoodsCount++] = ((TMenuItem*)(Sender))->MenuIndex;
  78.   BuildDoc();
  79.   rv->VScrollPos = rv->VScrollMax;
  80. }
  81. //---------------------------------------------------------------------------
  82. void __fastcall TfrmDemo4::FormKeyDown(TObject *Sender, WORD &Key,
  83.     TShiftState Shift)
  84. {
  85.   if (Key==VK_ESCAPE)
  86.     Close();    
  87. }
  88. //---------------------------------------------------------------------------