hurl2002 发表于 2015-12-23 22:09:00

代码插入图片ImageInsert(activeX14)

请问版主 用代码插入图片文件,如何能插在光标所在的位置

hurl2002 发表于 2015-12-24 09:24:00

TXTextControl.ImageInsert FileName, TextPos, Alignment, PosX, PosY, ScaleX, ScaleY, TextFlow, DistanceL, DistanceT, DistanceR, DistanceB

我如何获得当前鼠标所在位置的PosX,PosY

gw0506 发表于 2015-12-24 10:07:00

你是什么时机做的这件事?

hurl2002 发表于 2015-12-24 11:02:00

这个时机:右键调出菜单,选择插入图片

gw0506 发表于 2015-12-24 11:27:00

那你是不是有mouseclick事件,其中获取鼠标位置。
另外一个办法是去textcontrol的selection信息。

hurl2002 发表于 2015-12-24 22:13:00

我在 mousedown事件中从参数获得ocx_x,ocx_y,但把这个值放到(TXTextControl.ImageInsert FileName, TextPos, Alignment, PosX, PosY, ScaleX, ScaleY, TextFlow, DistanceL, DistanceT, DistanceR, DistanceB)的PosX, PosY,插入的位置不对,是不是单位不对的原因,如果是如何将ocx_x,ocx_y转换一下

gw0506 发表于 2015-12-25 10:42:00

肯定要转换,一方面是单位不同,TX的单位是“提”(twips,200 twips 等于10 point),另一方面,事件中的位置应该是相对整个窗口的,不是相对于控件的。所以你还要自己算一下便宜量。


procedure TForm1.Insert1Click(Sender: TObject);
begin OpenDialog1.Title := 'Insert Image';
OpenDialog1.Filename := '';
OpenDialog1.Filter := TXTextControl1.ImageFilters;
OpenDialog1.FilterIndex := 1;
OpenDialog1.Options := ;
if OpenDialog1.Execute then begin try TXTextControl1.ImageInsert(OpenDialog1.Filename,-1, 1, 0, 0, 100, 100, 3, 0, 0, 0, 0);
except MessageDlg('Cannot insert image: ' + OpenDialog1.filename + '.', mtError, , 0);
end;
end;
end;
页: [1]
查看完整版本: 代码插入图片ImageInsert(activeX14)