Search and Select the Picture inside RxRichEdit

I wanted to select at runtime the image inside a TRxRichEdit
How do i do this?

example:
some data
some data

[image] <-- this will be selected and replace it with something else.

some data
some data

 Thanks
doporsAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

shaneholmesCommented:
I dont believe that functionality exists (i.e. select an image (or aby object) at runtime).

Howevern you can test for selection type

if (stObject in SelectionType) then


SHane
0
esoftbgCommented:
download a working example:                http://www.geocities.com/esoftbg/ee/Q_20957296.zip
i tested it only with this picture
emil
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
doporsAuthor Commented:
esoftbg: I can't download it. The link is broke.
Any body how to extract the images inside an RTF Stream. I am using RxRichEdit

0
Cloud Class® Course: C++ 11 Fundamentals

This course will introduce you to C++ 11 and teach you about syntax fundamentals.

esoftbgCommented:
The Q_20957296.zip is only 12 Kbytes.It downloads so fast and seems like the link is broke, but it isn't. I just verifyed it.
0
esoftbgCommented:
procedure TForm1.Replace_Rtf_Image(Rtf_Name: string);
var
  B:      Boolean;
  I:      Integer;
  P:      Integer;
  S:      string;
  StrList:TStringList;
begin
  B := False;
  StrList := TStringList.Create;
  try
    for I := 0 to Memo.Lines.Count-1 do
    begin
      S := Memo.Lines[I];
      P := Pos('\object\objemb{\*\objclass Paint.Picture}', S);
      if (B or (P>0)) then
      begin
        if not B then
        begin
          B := True;
          S := Copy(S, 1, P-1);
          StrList.Add(S);
        end
        else
        begin
          P := Pos('}}}\par', S);
          if (P>0) then
          begin
            B := False;
            Delete(S, P, 2);
            P := Pos('\par', S);
            if (P>0) then
              Delete(S, P, 4);
            S := S + 'Here can be inserted new text';
            StrList.Add(S);
            StrList.Add('\par');
          end;
        end;
      end
      else
        StrList.Add(Memo.Lines[I]);
    end;
  finally
    RichEdit.Clear;
    Memo.Lines.Assign(StrList);
    Memo.Lines.SaveToFile(Rtf_Name+'_.rtf');
    RichEdit.Lines.LoadFromFile(Rtf_Name+'_.rtf');
    StrList.Destroy;
  end;
end;
0
Daniellus83Commented:
Dopors:

I do not program Delphi... I had the same problem with VB.NET... I try to explain how you could do it in Delphi:

> Make a for-loop from n to the length of the box
> in the for-loop: check if this selection is an OBJECT (in stead of text)
> when this is the picture, you should be able to do a replacement

Look at the vb.net code below to see the full idea.


Succes! Daniël


--(here is the VB.NET code; there must be some sort in Delphi!)---------------------------------------------------------------------------------------------------

        Dim n As Integer
        Dim text As String

        For n = 0 To RichTextBox1.TextLength

            'Select piece by piece
            RichTextBox1.Select(n, 1)  

            'Check is this an Object
            If RichTextBox1.SelectionType = RichTextBoxSelectionTypes.Object Then

                    RichTextBox1.Cut  '<<Cut it out!

            End If

        Next
----------------------------------------------
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Delphi

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.