Page 1 of 1

Replacement controls (InsertControl) for SaveRVFToStream

Posted: Thu Sep 09, 2010 4:43 pm
by execoma
Hi! I have some inserted controls (method InsertControl()) in TRichViewEdit. How I can replace this controls before saving in database blob with using method SaveRVFToStream(). Event SaveRVFToStream is not running when I call SaveRVFToStream(). Is there an analogue event SaveRVFToStream of for SaveRVFToStream() ? How I can solving the problem of replacement controls?

Posted: Thu Sep 09, 2010 4:47 pm
by Sergey Tkachenko
Hi,
You want to replace a control to what?

Posted: Thu Sep 09, 2010 5:14 pm
by execoma
I want to replace control to save doc in db. For example replace TComboBox control in text {ComboBox}. If i don't replace controls in text, I can't save document in stream, method SaveRVFToStream exception: "Class TComboBox not found". I can use SaveHTML() and event SaveComponentToFile to replace Controls. But I don't want to use this intermediate file. How I can walk in the loop on all objects and replace all the controls in some text markers?

Posted: Thu Sep 09, 2010 5:16 pm
by execoma
Ой, в первом посту под Event SaveRVFToStream имел ввиду event SaveComponentToFile. Тут нельзя редактировать посты?

Posted: Thu Sep 09, 2010 11:40 pm
by execoma
Может мой инглиш не супер. Скажу по русски. Я хочу сохранить документ через поток в блоб базы данных. Но я не могу это сделать так как появляется ошибка о том что ричвьюэдит не знает что такое эти вставленные контроллы. Поэтому я хочу их заменять на текстовые метки, сохранять, а при загрузке менять эти метки обратно на эти виджеты. Я могу это сделать через внешний файл обрабатывая контроллы в SaveComponentToFile, но я не хочу задействовать промежуточные файлы. Поэтому мне нужно что-то типа SaveComponentToStream или уметь как-то вручную обработать все содержимое документа.

Posted: Fri Sep 10, 2010 4:02 pm
by Sergey Tkachenko
Just register all control classes using RegisterClass method:
For example, after calling

Code: Select all

RegisterClass(TComboBox);
RVF document with TComboBox controls can be loaded.
Call RegisterClass for each control class one time, before the first loading.

Alternatively, you can exclude rvfoSaveControlsBody from rv.RVFOptions, and use OnRVFControlNeeded event.

Posted: Fri Sep 10, 2010 4:23 pm
by execoma
Thanks ;) то что надо, ваша разработка крута безгранично