В БД есть данные в формате RFT необходимо их считать и вставить в определенное место рисунок для работы с RFT текстом юзаю RichViewEdit который размещен на главной форме, редактирование данных происходит так:
| Код | bool __fastcall TForm1::EditData(){ AnsiString data,sql="SELECT * FROM TEMPLATE_DOGOVOR WHERE ID_TEMPLATE_DOGOVOR=1"; IBQuery_all->Close(); IBQuery_all->SQL->Clear(); IBQuery_all->SQL->Add(sql); IBQuery_all->Open(); TStream * Stream = Form1->IBQuery_all->CreateBlobStream(Form1->IBQuery_all->FieldByName("CONTENT"),bmReadWrite); data=Form1->editBlob(Stream); Memo1->Text=data; return true;
}
//--------------------------------------------------------------------------- AnsiString __fastcall TForm1::editBlob(TStream * Stream ){
TRVESearchOptions Options; Options << rvseoDown; Graphics::TBitmap * bmp = new Graphics::TBitmap; TMemoryStream *stm= new TMemoryStream; bmp->LoadFromFile(ExtractFilePath(Application->ExeName)+"bars.bmp"); Form1->RichViewEdit1->LoadRTFFromStream(Stream); Form1->RichViewEdit1->Format(); while(Form1->RichViewEdit1->SearchText("[stamp]",Options)) Form1->RichViewEdit1->InsertPicture("", bmp, rvvaBaseline); Form1->RichViewEdit1->SaveRTFToStream(stm,false); stm->Position=0; stm->Seek(0, soFromBeginning); int size = stm->Size; char * buf = new char[size]; stm->ReadBuffer(buf,size); AnsiString data=buf; delete buf; delete stm; delete bmp; return data; }
|
После того как данные были успешно отредактированы и функция завершила свою работу получаю сообщение об ошибке следующего содержания : «Access violation at address 00000000» из-за что не так ? P/S может, кто знает, как можно вставить в нужное место рисунок в RichView?
|