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

RichEdit

开发平台:

Delphi

  1. unit MainFrm;
  2. interface
  3. {$I RV_Defs.inc}
  4. uses
  5.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  6.   RVScroll, RichView, RVStyle,
  7.   {$IFDEF RICHVIEWDEF4}
  8.   ImgList,
  9.   {$ENDIF}
  10.   MMSystem;
  11. type
  12.   TfrmMain = class(TForm)
  13.     rv: TRichView;
  14.     rvs: TRVStyle;
  15.     rvTop: TRichView;
  16.     rvsForDemos: TRVStyle;
  17.     il: TImageList;
  18.     procedure FormCreate(Sender: TObject);
  19.     procedure rvJump(Sender: TObject; id: Integer);
  20.     procedure rvRVMouseMove(Sender: TObject; id: Integer);
  21.   private
  22.     { Private declarations }
  23.   public
  24.     { Public declarations }
  25.   end;
  26. var
  27.   frmMain: TfrmMain;
  28. { Constants for text styles, rvsForDemos.TextStyles }
  29. const sncomNormal = 0;
  30.       sncomHeading = 1;
  31.       sncomKeyword = 2;
  32.       sncomMarked = 3;
  33. { Constants for text styles, rvs.TextStyles }
  34. const snNormal  = 0;
  35.       snHeading = 1;
  36.       snExit    = 3;
  37.       snJump    = 4;
  38. implementation
  39. uses PopupFrm,
  40.      Demo1Frm, Demo2Frm, Demo3Frm,
  41.      Demo4Frm, Demo5Frm, Demo6Frm,
  42.      Demo7Frm;
  43. {$R *.DFM}
  44. {-----------------------------------------------------}
  45. procedure TfrmMain.FormCreate(Sender: TObject);
  46. begin
  47.   rvTop.BackgroundBitmap := rv.BackgroundBitmap;
  48.   rvTop.AddNL(' ', snNormal, 1);
  49.   rvTop.AddNL('RichView Demos', snHeading, 1);
  50.   rvTop.AddNL(' ', snNormal, 1);
  51.   rvTop.Format;
  52.   rvTop.Height := rvTop.DocumentHeight;
  53.   rv.AddNL('Click links for demos, click balls for hints', snNormal, 1);
  54.   rv.AddHotspotExTag('', 0,1,il, 1, 1);
  55.   rv.Add('1. ', snNormal);
  56.   rv.AddTag('"Checkpoints"', snJump, 1);
  57.   rv.AddHotspotExTag('', 0,1,il, 1, 2);
  58.   rv.Add('2. ', snNormal);
  59.   rv.AddTag('Customizing Styles', snJump, 2);
  60.   rv.AddHotspotExTag('', 0,1,il, 1, 3);
  61.   rv.Add('3. ', snNormal);
  62.   rv.AddTag('Query Summary', snJump, 3);
  63.   rv.AddHotspotExTag('', 0,1,il, 1, 4);
  64.   rv.Add('4. ', snNormal);
  65.   rv.AddTag('Interactive document', snJump, 4);
  66.   rv.AddHotspotExTag('', 0,1,il, 1, 5);
  67.   rv.Add('5. ', snNormal);
  68.   rv.AddTag('Chat Simulation', snJump, 5);
  69.   rv.AddHotspotExTag('', 0,1,il, 1, 6);
  70.   rv.Add('6. ', snNormal);
  71.   rv.AddTag('Credits Demo', snJump, 6);
  72.   rv.AddHotspotExTag('', 0,1,il, 1, 7);
  73.   rv.Add('7. ', snNormal);
  74.   rv.AddTag('Search and mark', snJump, 7);
  75.   rv.AddBreakEx(2, rvbsLine, clGreen);
  76.   rv.AddNL('Exit', snExit, 1);
  77.   rv.Format;
  78. end;
  79. {-----------------------------------------------------}
  80. procedure TfrmMain.rvJump(Sender: TObject; id: Integer);
  81. var ItemNo, StyleNo, ItemTag: Integer;
  82.     frm: TFrmPopup;
  83.     frmDemo: TForm;
  84. begin
  85.   ItemNo  := rv.GetJumpPointItemNo(id);
  86.   StyleNo := rv.GetItemStyle(ItemNo);
  87.   ItemTag := rv.GetItemTag(ItemNo);
  88.   if StyleNo=rvsHotspot then begin
  89.     frm := TFrmPopup.Create(Self);
  90.     frm.ShowTopic(ItemTag);
  91.     end
  92.   else begin
  93.     frmDemo := nil;
  94.     case ItemTag of
  95.       1: frmDemo := TfrmDemo1.Create(Application);
  96.       2: frmDemo := TfrmDemo2.Create(Application);
  97.       3: frmDemo := TfrmDemo3.Create(Application);
  98.       4: frmDemo := TfrmDemo4.Create(Application);
  99.       5: frmDemo := TfrmDemo5.Create(Application);
  100.       6: frmDemo := TfrmDemo6.Create(Application);
  101.       7: frmDemo := TfrmDemo7.Create(Application);      
  102.       0: Close;
  103.     end;
  104.     if frmDemo<>nil then begin
  105.       frmDemo.ShowModal;
  106.       frmDemo.Free;
  107.     end;
  108.   end;
  109. end;
  110. {-----------------------------------------------------}
  111. procedure TfrmMain.rvRVMouseMove(Sender: TObject; id: Integer);
  112. begin
  113.   if id<>-1 then
  114.     PlaySound(PChar(ExtractFilePath(Application.ExeName)+'UCS.wav'),
  115.               0,SND_ASYNC or SND_FILENAME);
  116. end;
  117. end.