Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > RichView


Автор: ArtemXCity 14.1.2008, 15:16
Ввожу текст из Edit1 в RichViewEdit1. При этом смайл, в виде фрагмента текста ":)" должен менятся на вставку гиф-смайла   smile .
При этом ввожу такой код:

Код

uses
GifImage, RVGifAnimate,

...

procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
     s: string;
begin
  RichViewEdit1.AddText(edit1.Text,2);
  RichViewEdit1.Format;
  edit1.Clear;
  edit1.SetFocus;

  s:=RichViewEdit1.GetItemText(RichViewEdit1.ItemCount-2);

    for i:=0 to length(s) do
      if copy(s,i,2)=':)' then
         begin
          AddSmile(Sender,'Smiles/smile.gif');
          RichViewEdit1.RVData.Items.DelimitedText := StringReplace(RichViewEdit1.RVData.Items.DelimitedText,':)','',[rfReplaceAll]);
   end;

end;

procedure TForm1.AddSmile(Sender: TObject; FileName: string);
  var gif : TGifImage;
begin
  RichViewEdit1.AnimationMode := rvaniOnFormat;
  gif := TGifImage.Create;
  gif.LoadFromFile(FileName);
  RichViewEdit1.InsertPicture(':p', gif,rvvaBaseline);
  RichViewEdit1.Format;
end;


Но: 
1) Смайл вставляется в начало содержимого RichViewEdit1, а не там, где начинается фрагмент ":)".
2) Если вместо фрагмента текста ":)" вставляем смайл, то сам фрагмент надо удалить. При этом беру команду StringReplace: 
RichViewEdit1.RVData.Items.DelimitedText := StringReplace(RichViewEdit1.RVData.Items.DelimitedText,':)','',[rfReplaceAll]);
но выкидывает ошибку :(

Прошу помочь. Заранее благодарен!
 smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)