RichView的几个封装函数(插入文本和图片)

 //移动光标到最后

procedure RichViewMoveCaretToEnd(RichEdit: TRichViewEdit);
var
  ItemNo, Offs: Integer;
begin
  ItemNo := RichEdit.ItemCount-1;
  if ItemNo > 0 then
  begin
    Offs := RichEdit.GetOffsAfterItem(ItemNo);
    RichEdit.SetSelectionBounds(ItemNo, Offs, ItemNo, Offs);
  end;
end;

// 向RichView中增加文本(注意里边检查了Style是否存在)

procedure RichViewAddText(RichEdit: TRichViewEdit; const S: string;
  FontInfo: TFontInfo);
const
  RV_FIND_PROP: TRVFontInfoProperties =
    [rvfiFontName, rvfiSize, rvfiBold, rvfiItalic,
    rvfiUnderline, rvfiStrikeout, rvfiColor];
var
  LStyleNo: Integer;
  LNewFontInfo: TFontInfo;
begin
  LStyleNo := RichEdit.Style.TextStyles.FindSuchStyle(0, FontInfo, RV_FIND_PROP);
  if LStyleNo < 0 then
  begin
    LNewFontInfo := RichEdit.Style.TextStyles.Add;
    LNewFontInfo.Assign(FontInfo);
    LNewFontInfo.Unicode := True;
    LStyleNo := RichEdit.Style.TextStyles.Count - 1;
  end;
  RichEdit.ApplyTextStyle(LStyleNo);
  RichEdit.InsertTextW(S);
end;

// 向RichView中增加文本

procedure RichViewAddText(RichEdit: TRichViewEdit;
  const S: string; const FontName: string; FontSize: Integer;
  FontColor: TColor; FontStyle: TFontStyles);
var
  LFontInfo: TFontInfo;
begin
  LFontInfo := TFontInfo.Create(nil);
  try
    LFontInfo.FontName := FontName;
    LFontInfo.Size := FontSize;
    LFontInfo.Color := FontColor;
    LFontInfo.Style := FontStyle;

    RichViewAddText(RichEdit, S, LFontInfo);
  finally
    LFontInfo.Free;
  end;
end;

// 向RichView中增加图片

procedure RichViewAddPicture(RichEdit: TRichViewEdit; const TagStr: string;
  Stream: TMemoryStream; IsGif: Boolean);
var
  LGraphic: TGraphic;
begin
  if IsGif then
  begin
    LGraphic := TGIFImage.Create;
  end else
  begin
    LGraphic := TBitmap.Create;
  end;

  Stream.Position := 0;
  LGraphic.LoadFromStream(Stream);
  RichEdit.InsertPicture(TagStr, LGraphic, rvvaBaseline);
end;

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值