Michael,

This is a very interesting question and I spent an hour or so and was not able to solve the problem.

I am copying the dev mailing list to see if there are any clues there:

The problem:

Assume a draw document with a single shape selected.
I want to delete the single shape.
The code shown below obtains a reference to the selected shape from the current controller (because it is selected).

So, if I have a reference to a shape that is inserted into a draw page, how can I delete it?
I tried oShape.Dispose(), which crashed OOo.
I tried oShape.getParent().Remove(oShape), which crashed OOo.


Original code:

Sub Main

   Dim oShapeName as String
   Dim oDoc As Object

   oDoc = ThisComponent

   oDocCtrl = oDoc.getCurrentController()

   ' See what is currently selected.
   oSelection = oDocCtrl.getSelection()
   If IsEmpty( oSelection ) Then
       MsgBox( "Zum Löschen muss eine Grafik makiert sein" )
       Exit Sub
   EndIf
   If oSelection.getCount() > 1 Then
       MsgBox( "Bitte nur eine Grafik zum löschen auswählen" )
       Exit Sub
   EndIf

   oOrigShape = oSelection.getByIndex( 0 )
   oShapeName = oOrigShape.getName()

   print oShapeName

  REM The Delete Function doesn't work
  'oDoc.Remove(oOrigShape)

End Sub



Nice to hear from you again....

I am overly busy (nothing new there), but I will take a quick look.

Michael Simader wrote:
Hi Andrew!

How are you? Hope you are find.
I think you know me, because you helped me with my macro for inserting a costum shape. It is working great and i updated the macro with a database and i am so proud of it. But now to the problem: If i insert a graphic in the draw document i make a entry in my database, but the problem is, if i delete a shape, i cant remove the database row. So i wrote a macro, where i can select a single shape and get the name of the shape (for deleting the database row), but the problem is, i can't remove the shape from the document. Do you know the methode for removing graphics?
Remove a graphic from a Draw document. Did you know that I cover this in my published book? Did you know that the Draw and Impress chapter are available as a free download from the publisher?
here is the macro which i want to use for deleting:

Sub Main

    Dim oShapeName as String
    Dim oDoc As Object

    oDoc = ThisComponent

    oDocCtrl = oDoc.getCurrentController()

    ' See what is currently selected.
    oSelection = oDocCtrl.getSelection()
    If IsEmpty( oSelection ) Then
        MsgBox( "Zum Löschen muss eine Grafik makiert sein" )
        Exit Sub
    EndIf
    If oSelection.getCount() > 1 Then
        MsgBox( "Bitte nur eine Grafik zum löschen auswählen" )
        Exit Sub
    EndIf

    oOrigShape = oSelection.getByIndex( 0 )
    oShapeName = oOrigShape.getName()

    print oShapeName

   REM The Delete Function doesn't work
   oDoc.Remove(oOrigShape)

End Sub
Yeah, I do not expect you to be able to remove a shape this way.

best regards!
Your Michael

_________________________________________________________________
Sie möchten Teil der Evolution der Kommunikation werden? http://www.communicationevolved.com/de-at/


--
Andrew Pitonyak
My Macro Document: http://www.pitonyak.org/AndrewMacro.odt
My Book: http://www.hentzenwerke.com/catalog/oome.htm
Info:  http://www.pitonyak.org/oo.php
See Also: http://documentation.openoffice.org/HOW_TO/index.html

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to