Re: HTML WYSIWYG and images

Return to index



James Crosswell

Posted: 02/16/2005 14:04:16

James Crosswell wrote:

>          // TODO: work out the original url that was used

>         // for the image when it was imported... if I'm

>         // lucky the importers will have stored this in a

>         // tag or a filename or something and I can get at

>         // it using a GetTag(ItemNo) or something... but I'm

>         // a bit stuck here

Hm - I think I see my problem. I'm currently trying:

procedure TfrmHTMLEditor.txtEditorSaveItemToFile(Sender: TCustomRichView;

   const Path: String; RVData: TCustomRVData; ItemNo: Integer;

   SaveFormat: TRVSaveFormat; Unicode: Boolean; var OutStr: String;

   var DoDefault: Boolean);


   S: string;

   // statements

   i: Integer;

   item: TRVGraphicItemInfo;



   // Just to see what we can do with these images

   if ( RVData.GetItemStyle(ItemNo) = rvsPicture ) then

     if SaveFormat = rvsfHTML then


         item := TRVGraphicItemInfo( Sender.GetItem( ItemNo ) );

         OutStr := GetTagStr( txtEditor, item.Tag );

         DoDefault := False;



However, lines 2136 through 2155 of the rvhtmlimport.LoadHtml method

read as follows:

(**************************< snip >**************************)

TmpStyle := rvsPicture;

Link := 0;

if (CurrLink <> '') then



  if rvhtmloBasePathLinks in Options then

    CurrLink := GetFullFileName(CurrLink);

  if (rvhtmloAutoHyperlinks in Options) and (rvoTagsArePChars in

RichView.Options) then begin

    Link := integer(StrNew(PChar(CurrLink)));

    TmpStyle := rvsHotPicture;


  else begin

    RVData.ReadHyperlink(CurrLink, '', rvlfHTML, TmpStyle, Link, ts2);



GraphicItem := CreateRichViewItem(TmpStyle, RVData) as TRVGraphicItemInfo;

GraphicItem.Tag := Link;

GraphicItem.Image := gr;

GraphicItem.ParaNo := GetCurParaNo;

RVData.AddItem(ts2, GraphicItem);

(**************************< snip >**************************)

So the way I read this is that the Tag value of a GraphicItem will ONLY

have a value if the image is surrounded by a Link and in that case the

tag will contain the value of the hyperlink - not of the image location

itself... As such, the original image location is currently not being

stored and there is currently no way to retrieve this during the

SaveItemToFile event handler of the RichView component... I could

replace the Tag for the GraphicItem with the location of the image, but

that means that hyperlinks for images would be broken in HTML documents

that I opened/saved using the RichView component.

Is that a fairly accurate analysis of the situation and is there

anything that I can do about this?

I'd really appreciate your in put on this Sergey - this is sort of an


  (see for details).

Thanks in advance.

Best Regards

James Crosswell

Software Engineer Limited

Powered by ABC Amber Outlook Express Converter