Hi Bill,
Sorry to be so late getting to this thread!
If you want to add something to a page, or find an object that's on a page, you need a reference to the page. Simply displaying the page with ShowBookmark won't give you a reference to the page--InDesign scripting, for the most part, doesn't rely on the selection and current view in the way that Word scripting does (this is a good thing, but that's a topic for another day).
You had to have a reference to a page to create the HyperlinkPageDestination that you used to create the bookmark--but, if not, you can get a reference to the page using (VBScript form):
Rem Given a reference to an instance of InDesign "myInDesign"...
myInDesign.Bookmarks.Item("Description").ShowBookMark
Set myPage = myInDesign.ActiveWindow.ActivePage
In general, though, you probably don't need the bookmark and the whole "ActiveWindow" construct--just use the reference to the page itself.
Now that you have a page, you can put things on the page.
Rem Create a rectangle
Set myRectangle = myPage.Rectangles.Add
Rem Size and position the rectangle
myRectangle.GeometricBounds = Array("6p", "6p", "24p", "24p")
Rem Place a graphic in the rectangle
myRectangle.Place "c:\test.tif"
If you have a text frame on the page that has the label "myLabel", you can get a reference to the text frame and add text:
Set myTextFrames = myPage.TextFrames.Item("myLabel")
Rem myTextFrames will return an array--get the first item
Set myTextFrame = myTextFrames(0)
Rem Replace the text in the text frame:
myTextFrame.Contents = "This is some text."
Rem Or add text to the end of the text frame:
myTextFrame.InsertionPoints.Item(-1).Contents = "This is some additional text."
If you know that there is only one text frame with the label "Description" in the entire document, you can even say:
Set myTextFrames = myDocument.TextFrames.Item("myLabel")
Rem myTextFrames will return an array--get the first item
Set myTextFrame = myTextFrames(0)
...to get to it directly. If, at that point, you want to get at the page containing the text frame (and assuming that the text frame is not in a group, pasted inside text, or pasted inside another page item), you can use:
Set myPage = myTextFrame.Parent
Have you looked through the "Working with Documents" chapter of the InDesign CS3 Scripting Guide: VBScript and the associated scripts archive? I realize that you're using Delphi, but it doesn't look too difficult to convert from one to the other.
Thanks,
Ole