trichview.com

trichview.support




Re: Delete control by code


Return to index


Author

Message

Sergey Tkachenko

Posted: 01/11/2003 21:09:34


> Hello,

>

> The only way I could think of to delete a control inserted in a

TRichViewEdit

> seems to be the DeleteItems procedure, but I receive an exception if I try

> to do that.

> Is DeleteItems not allowed for controls?


It's allowed. But you need to call Format method before displaying document.

But there is another problem - DeleteItems is a "viewer-style" method. It

does not update undo buffer, and it will be damaged after its call.


>

> I would need that first of all in order to let the user delete a control

> by choosing a command in a popup menu (and not only by moving the caret to

> the right of the control and pressing BACKSPACE).

> Second, I would like to implement my own Drag&Drop of controls inside the

> RichViewEditor. While dragging the control, I move the caret to the actual

> mosue position inside the RichViewEditor. In the OnDragDrop event I have

> the dragged control as the parameter "Source". I don't think it is

possible

> to move controls or other items directly from on position to another, so

> what I would do is create a new control of the same type, assign the

"Source"

> to it in order to make a copy, delete the original control out of the

RichViewEditor

> and insert the new control at the current position of the caret.

> But if deleting controls with code does not work there seems to be nothing

> I could do.

> Does anyone have an idea?


I suggest deleting control by selecting it (SetSelectionBounds) and calling

DeleteSelection.

So you need:

1) when starting dragging, store the control position

2) when finishing dragging, store the destination position

3) select the original control (using information of step 1) and delete it

4) move the caret to the location stored on step 2 and insert a new control


Some ideas:

- control can be copied by selecting it and calling SaveRVFToStream, then

inserting by InsertRVFFromStreamEd

- positions can be stored by functions RVGetSelection and RVSetSelection

from http://www.trichview.com/support/files/rvlinear.zip




>

> Regards,

>

> Christian Kirchhoff





Powered by ABC Amber Outlook Express Converter