Hallo Herr Seidel,

mit dieser Mail schiebe ich das mal auf users@de.openoffice.org - die
Argumentation, warum öffentlich besser ist als privat, muß ich
vermutlich nicht wiederholen :)

so, bin mal dazu gekommen, es auszuprobieren ...

> Also, mit derm unten eingefügten Code beende ich meine Anwendung und
> schließe die Datenbank. In der Version 2.3 waren dann alle Änderungen
> der Datenbank gesichert, in 2.4 sind alle Änderungen, z.B. eingefügte
> Datensätze, gelöscht. Was hat sich den hier geändert?

Kann ich nicht nachvollziehen - was an der Unterspezifizierung des
Szenarios liegen mag.
Was ich getan habe:
- ein DB-Dokument öffnen
- eine Tabelle per Doppelklick öffnen
- einen neuen Datensatz eintragen
- Das Makro "programmEnde" ausführen
  (den Test aufknowhowOffice im Titel hab' ich rausgenommen)
=> alle Fenster wurden geschlossen
   (wobei das "Start-Modul" offen blieb - das ist vermutlich nicht so
   gewollt?
- Start-Modul geschlossen, also OOo beendet
- OOo neu gestartet
- Datenbank geöffnet
=> der neue Datensatz war da

Wie also genau ist Ihr Szenario, und worin unterscheidet es sich von
meinem obigen?

> In der Linuxversion ist mir zudem aufgefallen, dass Dialoge teilweise
> in Phantasiegrößen angezeigt werden, nach Ändern des Codes war die
> Anzeige einmal normal und dann wieder in der Phantasiegröße ...

Ich habe irgendwo schon was über Probleme mit der Größe programmatisch
angelegten Dialoge gelesen, kennen aber keine Details.

Das Makro unten zitiere ich der Vollständigkeit halber für Neu-Leser.

> Sub programmEnde
>       REM Anwendung nach Sicherheitsabfrage beenden
>       REM Autor:              Helmut Seidel
>       
>       Dim oFrames As Object, oFrame As Object
>       Dim oDispatcher As Object
>       Dim i As Integer
>       
>       ' Sicherheitsabfrage ausgeben
>       If MsgBox("Möchten Sie die Arbeit KnowHow-Office beenden?", 292, _
>       "KnowHow-Office") = 6 Then
>               ' Fehler abfangen - Datenbankdatei könnte schon geschlossen sein
>               on Error resume next
> 
>               ' Zugriff auf alle Frames
>               oFrames = StarDesktop.getFrames()
>               ' Frames durchlaufen
>               For i = 0 To oFrames.getCount - 1
>                       ' Zugriff auf aktuellen Frame
>                       oFrame = oFrames.getByIndex(i)
>                       ' Testen, ob aktueller Frame der gesuchte ist
>                       If Ucase(Left(oFrame.Title, Len("knowhowOFFICE"))) = 
> "KNOWHOWOFFICE" Then
>                               ' Dispatcher erstellen
>                               oDispatcher = 
> createUnoService("com.sun.star.frame.DispatchHelper")
>                               ' Datenbank sichern
>                               oDispatcher.executeDispatch(oFrame, 
> ".uno:Save", "", 0, Array())
>                               ' Frame schließen
>                               oDispatcher.executeDispatch(oFrame, 
> ".uno:CloseDoc", "", 0, Array())
>                       End If
>               Next i
> 
>               ' Startformular schließen
>               oStart.endExecute()
>               ' Fehlerbehandlung ausschalten
>               on Error goto 0
>               ' Basic-Routine beenden
>               End
>       End If
> End Sub

Ciao
Frank


-- 
- Frank Schönheit, Software Engineer         [EMAIL PROTECTED] -
- Sun Microsystems                      http://www.sun.com/staroffice -
- OpenOffice.org Base                       http://dba.openoffice.org -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

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

Antwort per Email an