开发者

How to erase or reload strokes to an InkPicture in VBA for Ms Access?

开发者 https://www.devze.com 2023-01-20 19:46 出处:网络
I would like to display strokes that I have saved pr开发者_运维知识库eviously on an inkPicture Object in Ms Access (it is on a form via ActiveX).

I would like to display strokes that I have saved pr开发者_运维知识库eviously on an inkPicture Object in Ms Access (it is on a form via ActiveX).

The strokes are saved in a table as an ole-object in the field 'Strokes'.

Now, doing it once is easy enough (one line of code), I can use this snippet without any problem :

Public Sub loadInkImage(MyInkPic As MSINKAUTLib.InkPicture)       

    MyInkPic.Object.Ink.Load (Me.Strokes)       

End Sub

The problem comes in when I want to do it a second time : the inkpicture is not 'clean' any more and cannot load the strokes.

Just deleting the existing strokes doesn't work, so how can I fill the same inkpicture again ?

Thanks!


Are you trying to load two sets of strokes into the same object, or just reload a new set of strokes into the InkPicture? If you want to reload strokes you need to create a new InkDisp Object then assign it to the InkPicture.

Public Sub loadInkImage(MyInkPic As MSINKAUTLib.InkPicture)

    Dim newInk As New MSINKAUTLib.InkDisp 'need new object to load new ink

    newInk.Load Me.Strokes 'load in the ink

    Set MyInkPic.Ink = newInk 'set the InkPictures Ink to the new Ink
End Sub

Note: I currently do not have the ability to test this, so it might need tweaking.

0

精彩评论

暂无评论...
验证码 换一张
取 消