亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? unit1.cpp

?? TRichView/RichView 是一套地道的Delphi/C++Builder控件
?? CPP
字號:
//---------------------------------------------------------------------------
#include <vcl\vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma link "RVEdit"
#pragma link "RichView"
#pragma link "RVScroll"
#pragma link "RVStyle"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  rve1->Clear();
  rve1->AddNL("John: ", 3, 0);
  rve1->AddNL("Funny, very funny :)", 0, -1);
  rve1->AddNL("Rob: ", 3, 0);
  rve1->AddNL("I do not think so :(...", 0, -1);
  rve1->Format();

  rve4->Clear();
  rve4->AddNL("La la la:):):):)", 1, 0);
  rve4->AddNL("La la la:):):):)", 2, -1);
  rve4->AddNL("La la la:):):):)", 0, -1);
  rve4->Format();
}
//---------------------------------------------------------------------------
// Using Search feature of RichViewEdit to insert emotion icons
void SearchAndInsertIcon(const AnsiString Code, int ImageIndex,
  TCustomRichViewEdit* rve1, TCustomImageList* ImageList1)
{
  rve1->SetSelectionBounds(0, rve1->GetOffsBeforeItem(0), 0, rve1->GetOffsBeforeItem(0));
  TRVESearchOptions Options;
  Options << rvseoDown;
  while (rve1->SearchText(Code, Options))
    rve1->InsertBullet(ImageIndex, ImageList1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  LockWindowUpdate(rve1->Handle);
  try
  {
    SearchAndInsertIcon(":)", 0, rve1, ImageList1);
    SearchAndInsertIcon(":|", 1, rve1, ImageList1);
    SearchAndInsertIcon(":(", 2, rve1, ImageList1);
  }
  catch(...)
  {
  }
  LockWindowUpdate(0);
}
//---------------------------------------------------------------------------
int GetImageIndex(char mouth)
{
  switch (mouth)
  {
    case ')': return 0;
    case '|': return 1;
    default:  return 2;
  }
}
AnsiString GetSmile(int ImageIndex)
{
  switch(ImageIndex)
  {
    case 0: return ":)";
    case 1: return ":|";
    default: return ":(";
  }
}
//---------------------------------------------------------------------------
void TForm1::AddWithIcons(TCustomRichView* rv, AnsiString s, int StyleNo,
  int &ParaNo)
{
  AnsiString s2 = "";
  while (s!="")
  {
    int p = s.Pos(":"); // searching for "eyes"
    if (!p)
    {
      // not found
      rv->AddNL(s2+s, StyleNo, ParaNo);
      ParaNo = -1;
      return;
    }
    // is it really "eyes"?
    if (s.Length()>p && (s[p+1]==')' || s[p+1]=='|' || s[p+1]=='('))
    {
      // a smile is found
      s2 += s.SubString(1, p-1);
      if (s2!="")
      {
        rv->AddNL(s2, StyleNo, ParaNo);
        s2 = "";
        ParaNo = -1;
      }
      rv->AddBulletEx("", GetImageIndex(s[p+1]), ImageList1, ParaNo);
      ParaNo = -1;
      s = s.SubString(p+2, s.Length());
    }
    else
    {
      // this is not a smile
      s2 = s.SubString(1, p);
      s = s.SubString(p+1, s.Length());
    }
  }

  if (s2!="")
  {
    rv->AddNL(s2, StyleNo, ParaNo);
    s2 = "";
    ParaNo = -1;
  }
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  if (Edit1->Text!="")
  {
    rv2->AddNL("Me: ",3,0);
    int ParaNo = -1; // adding to the same line
    AddWithIcons(rv2, Edit1->Text, 0, ParaNo);
    rv2->FormatTail();
    Edit1->Text = "";
  }
  else
    MessageBeep(0);
}
//---------------------------------------------------------------------------
// From TRichViewEdit with emoticons detection
void __fastcall TForm1::Button3Click(TObject *Sender)
{
  // this example has the following limitations:
  // - non-text will be ignored
  // - assumes that styles of rv3 and rve4 are the same
  int ParaNo = 0;
  for (int i=0; i<rve4->ItemCount; i++)
  {
    if (rve4->IsFromNewLine(i))
      ParaNo = rve4->GetItemPara(i);
    if (rve4->GetItemStyle(i)>=0)
      AddWithIcons(rv3, rve4->GetItemText(i), rve4->GetItemStyle(i), ParaNo);
  }
  rv3->FormatTail();
  rve4->SetFocus();
}
//---------------------------------------------------------------------------
// From TRichViewEdit as is
void __fastcall TForm1::Button4Click(TObject *Sender)
{
  TMemoryStream*Stream = new TMemoryStream;
  rve6->SaveRVFToStream(Stream, false);
  Stream->Position = 0;
  rv5->InsertRVFFromStream(Stream, rv5->ItemCount);
  delete Stream;
  rv5->FormatTail();
  rve6->SetFocus();
}
//---------------------------------------------------------------------------
// Emoticons autodetection on typing
void __fastcall TForm1::rve6KeyPress(TObject *Sender, char &Key)
{
  if (Key!=')' && Key!='(' && Key!='|')
    return;
  TCustomRichViewEdit* rve = ((TCustomRichViewEdit*)Sender)->TopLevelEditor;
  int ItemNo = rve->CurItemNo;
  if (rve->GetItemStyle(ItemNo)<0)
    return;
  int Offs = rve->OffsetInCurItem;
  AnsiString s = rve->GetItemTextA(ItemNo);
  if (s=="" || Offs==1)
    return;
  if (s[Offs-1]==':')
  {
    rve->SetSelectionBounds(ItemNo, Offs-1, ItemNo, Offs);
    rve->InsertBullet(GetImageIndex(Key), ImageList1);
    Key = 0;
  }
}
//---------------------------------------------------------------------------
int GetBulletImageIndex(TCustomRichView* rv, int ItemNo)
{
  int tag, r;
  AnsiString s;
  TCustomImageList* il;
  rv->GetBulletInfo(ItemNo, s, r, il, tag);
  return r;
}
//---------------------------------------------------------------------------
// BACKSPACE disassembles emoticon
void __fastcall TForm1::rve6KeyDown(TObject *Sender, WORD &Key,
	TShiftState Shift)
{
  if (Key!=VK_BACK)
    return;
  TCustomRichViewEdit* rve = ((TCustomRichViewEdit*)Sender)->TopLevelEditor;
  if (rve->SelectionExists())
    return;
  int ItemNo = rve->CurItemNo;
  int Offs = rve->OffsetInCurItem;
  if (rve->GetItemStyle(ItemNo)==rvsBullet && Offs==1)
  {
    Key = 0;
    rve->SetSelectionBounds(ItemNo, 0, ItemNo, 1);
    rve->InsertText(GetSmile(GetBulletImageIndex(rve, ItemNo)), false);
  }
}
void __fastcall TForm1::rv5RVFImageListNeeded(TCustomRichView *Sender,
	int ImageListTag, TCustomImageList *&il)
{
  il = ImageList1;	
}
//---------------------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲已满18点击进入久久| 欧美日韩三级在线| 日韩欧美亚洲另类制服综合在线| 亚洲成a天堂v人片| 日韩天堂在线观看| 久久国产成人午夜av影院| 久久欧美一区二区| 成人av在线影院| 亚洲国产精品久久久男人的天堂| 777a∨成人精品桃花网| 韩国女主播成人在线| 亚洲国产激情av| 欧美体内she精高潮| 蜜臀av性久久久久蜜臀aⅴ流畅| 精品久久久久久久久久久久包黑料 | 欧美三级电影网| 日韩精彩视频在线观看| 久久亚洲春色中文字幕久久久| 国产精品一级二级三级| 成人欧美一区二区三区1314| 欧美特级限制片免费在线观看| 久久成人麻豆午夜电影| 国产精品色噜噜| 91福利在线免费观看| 久久超碰97中文字幕| 国产精品传媒视频| 亚洲黄色av一区| 91麻豆精品国产91久久久久久| 韩国理伦片一区二区三区在线播放| 国产精品国产自产拍在线| 欧美日本乱大交xxxxx| 国产91精品精华液一区二区三区| 午夜精品国产更新| 国产女同性恋一区二区| 色综合久久综合网97色综合| 午夜影院久久久| 欧美国产日韩精品免费观看| 在线播放欧美女士性生活| 成人动漫视频在线| 免费的成人av| 亚洲午夜在线观看视频在线| 中文字幕欧美三区| 欧美一级高清片在线观看| 99精品国产99久久久久久白柏| 久久精品国产在热久久| 亚洲成人第一页| 亚洲三级理论片| 国产日产欧美一区| 日韩美女天天操| 欧美日韩二区三区| 欧美无人高清视频在线观看| 成人黄色电影在线| 国产精品资源在线| 美女视频一区在线观看| 日韩黄色免费网站| 亚洲高清在线精品| 伊人夜夜躁av伊人久久| 国产欧美日韩在线视频| 久久综合九色综合欧美98| 制服丝袜成人动漫| 亚洲视频网在线直播| 欧美极品美女视频| 国产欧美日韩精品a在线观看| 日韩欧美国产系列| 日韩视频免费直播| 日韩欧美视频一区| 欧美一区二区三区在线看| 欧美网站一区二区| 欧美精品乱码久久久久久按摩 | 一区二区三区免费观看| 国产精品久久久久一区二区三区共| 久久久亚洲午夜电影| 欧美sm极限捆绑bd| 日韩欧美一区二区久久婷婷| 日韩欧美一级精品久久| 精品国产一区二区精华 | 久久久www成人免费无遮挡大片| 日韩一区二区三区观看| 91精品国产综合久久久久久漫画 | av在线播放不卡| 岛国精品一区二区| 成人av动漫在线| av在线这里只有精品| 97aⅴ精品视频一二三区| 93久久精品日日躁夜夜躁欧美| 91视视频在线直接观看在线看网页在线看 | 免费高清视频精品| 国产麻豆成人传媒免费观看| 国产精选一区二区三区| 成人综合日日夜夜| 色综合久久88色综合天天免费| 欧美午夜影院一区| 亚洲综合色区另类av| 日韩精品成人一区二区在线| 麻豆国产欧美一区二区三区| 国产一区二区调教| 成人午夜电影网站| 91精品91久久久中77777| 欧美精品1区2区3区| 久久久久久久久伊人| 中文字幕色av一区二区三区| 亚洲一区二区三区四区的| 麻豆成人久久精品二区三区小说| 韩国精品免费视频| 色哟哟一区二区| 欧美一级高清片| 国产精品国产三级国产a| 亚洲国产综合91精品麻豆| 蜜桃久久久久久久| 成人一区二区三区| 欧美日韩综合在线| 久久综合久久综合九色| 亚洲综合免费观看高清完整版在线| 日韩高清欧美激情| 成人免费电影视频| 欧美老肥妇做.爰bbww视频| 亚洲精品一区在线观看| 亚洲免费观看高清完整版在线观看熊| 午夜成人免费视频| 成人黄动漫网站免费app| 欧美日韩综合在线| 国产精品日产欧美久久久久| 视频一区国产视频| 成人国产精品免费观看动漫| 宅男在线国产精品| 亚洲欧洲av另类| 国产在线播放一区三区四| 亚洲免费av观看| 另类欧美日韩国产在线| 91色.com| 日本一区二区在线不卡| 蜜桃视频第一区免费观看| 欧美亚日韩国产aⅴ精品中极品| xfplay精品久久| 午夜日韩在线电影| 色综合天天综合网国产成人综合天 | aaa亚洲精品一二三区| 日韩精品中文字幕在线不卡尤物| 亚洲欧美日韩综合aⅴ视频| 国产真实乱对白精彩久久| 欧美三区在线观看| 自拍偷在线精品自拍偷无码专区 | 中文字幕国产精品一区二区| 日韩av在线免费观看不卡| 91网址在线看| 日韩一区有码在线| 国产东北露脸精品视频| 欧美成人精品1314www| 日韩制服丝袜av| 欧美日韩一区不卡| 亚洲人成电影网站色mp4| 国产精品一品视频| 精品国产91亚洲一区二区三区婷婷| 肉色丝袜一区二区| 欧美三级午夜理伦三级中视频| 综合久久久久久久| 波多野结衣在线一区| 国产欧美日韩视频一区二区| 精品亚洲免费视频| 欧美成人精品高清在线播放 | 国产日韩精品一区二区浪潮av| 麻豆精品在线播放| 精品少妇一区二区| 国产综合成人久久大片91| 久久综合久久综合九色| 国产精品一区二区久久不卡| ww久久中文字幕| 国产91精品精华液一区二区三区| 久久久亚洲午夜电影| 国产精品99久久不卡二区| 国产视频一区二区在线| 国产69精品久久久久毛片| 久久久久久久久久久99999| 一区二区三区在线免费视频| 国产91精品一区二区麻豆网站| 激情综合网av| 亚洲一区在线观看视频| 国产精品久久久久久久久搜平片 | 久久成人av少妇免费| 不卡免费追剧大全电视剧网站| 欧美激情一区二区三区不卡| 国产成人在线视频网站| 欧美国产1区2区| 91免费版在线| 亚洲高清在线视频| 欧美一级二级在线观看| 看电影不卡的网站| 国产日韩成人精品| 色先锋资源久久综合| 亚洲午夜在线观看视频在线| 欧美高清你懂得| 精品亚洲免费视频| 国产精品久久久久一区二区三区| 在线观看不卡一区| 首页国产欧美日韩丝袜| 国产性色一区二区| 欧美性大战久久久久久久蜜臀| 免费在线观看一区| 国产精品区一区二区三区| 欧美高清在线一区|