When this code is executed, the src and alt are set correctly, but border, align, hspace and vspace produce EOleException – bad varialble type.
Is it possible to set border, align, hspace and vspace with webbrowser and if so, how?
Is there anyway to find out what the correct variable types are?
iDoc := ( WebBrowser1.Document as IHTMLDocument2 );
iDoc.execCommand( 'InsertImage', False, 0 );
iImageIndex := WebBrowser1.OleObject.Document.Images.Length - 1;
iImageFileName := ExtractFileName( iImageFilePath );
// Change the src path to a relative path
iSrc := ChangeFilePath( iImageFilePath, '..\Images\' );
iImageTextAlternative := FormInsertImage.AlternateText1.Text;
// Set Src
WebBrowser1.OleObject.Document.Images.Item( iImageIndex ).src := iSrc;
// Set a text alternative to the graphic
WebBrowser1.OleObject.Document.Images.Item( iImageIndex ).Alt := iImageTextAlternative;
// Set border
WebBrowser1.OleObject.Document.Images.Item( iImageIndex ).border := FormInsertImage.Border1.EditValue;
// Set align
WebBrowser1.OleObject.Document.Images.Item( iImageIndex ).align := FormInsertImage.Alignment1.EditValue;
// Set hSpace
WebBrowser1.OleObject.Document.Images.Item( iImageIndex ).hSpace := FormInsertImage.hSpace1.EditValue;
// Set vSpace
WebBrowser1.OleObject.Document.Images.Item( iImageIndex ).vSpace := FormInsertImage.vSpace1.EditValue;
Edit – This works now…
iDocument := ( TopicWebBrowser1.Document as IHTMLDocument2 );
if Assigned( iDocument ) then
begin
// Insert the image
iDocument.execCommand( 'InsertImage', False, 0 );
while TopicWebBrowser1.ReadyState < READYSTATE_COMPLETE do
Application.ProcessMessages;
HTMLElementCollection := ( TopicWebBrowser1.Document as IHTMLDocument2 ).images;
iImageIndex := TopicWebBrowser1.OleObject.Document.images.Length - 1;
HTMLImgElement := ( HTMLElementCollection.Item( iImageIndex, 0 ) as IHTMLImgElement );
// Set the src, alt, border, align, hspace and vspace HTMLImgElement.src := ChangeFilePath( FormInsertImage.PictureName1.Text, '..\Images\' );
// Change the src path to a relative path
HTMLImgElement.alt := FormInsertImage.AlternateText1.Text;
HTMLImgElement.border := FormInsertImage.Border1.EditValue;
HTMLImgElement.align := FormInsertImage.Alignment1.EditValue;
HTMLImgElement.hspace := FormInsertImage.hspace1.EditValue;
HTMLImgElement.vspace := FormInsertImage.vspace1.EditValue;
end;
Try something like this