Replacement controls (InsertControl) for SaveRVFToStream

General TRichView support forum. Please post your questions here
Post Reply
execoma
Posts: 14
Joined: Thu Sep 09, 2010 4:31 pm

Replacement controls (InsertControl) for SaveRVFToStream

Post 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?
Sergey Tkachenko
Site Admin
Posts: 17557
Joined: Sat Aug 27, 2005 10:28 am
Contact:

Post by Sergey Tkachenko »

Hi,
You want to replace a control to what?
execoma
Posts: 14
Joined: Thu Sep 09, 2010 4:31 pm

Post 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?
execoma
Posts: 14
Joined: Thu Sep 09, 2010 4:31 pm

Post by execoma »

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

Post by execoma »

Может мой инглиш не супер. Скажу по русски. Я хочу сохранить документ через поток в блоб базы данных. Но я не могу это сделать так как появляется ошибка о том что ричвьюэдит не знает что такое эти вставленные контроллы. Поэтому я хочу их заменять на текстовые метки, сохранять, а при загрузке менять эти метки обратно на эти виджеты. Я могу это сделать через внешний файл обрабатывая контроллы в SaveComponentToFile, но я не хочу задействовать промежуточные файлы. Поэтому мне нужно что-то типа SaveComponentToStream или уметь как-то вручную обработать все содержимое документа.
Sergey Tkachenko
Site Admin
Posts: 17557
Joined: Sat Aug 27, 2005 10:28 am
Contact:

Post 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.
execoma
Posts: 14
Joined: Thu Sep 09, 2010 4:31 pm

Post by execoma »

Thanks ;) то что надо, ваша разработка крута безгранично
Post Reply