Problem beim Aufruf eines Dialogs

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Mihilist
****
Beiträge: 120
Registriert: Di, 25.04.2006 15:27
Wohnort: Nürnberg
Kontaktdaten:

Problem beim Aufruf eines Dialogs

Beitrag von Mihilist »

Moin

Ich hab da irgendwie ein Problemchen mit dem Aufrufen von Dialogen. Folgenden Code hab ich mir irgendwo geklaut :D

Code: Alles auswählen

Sub zeige_dia
	dlg = CreateUnoDialog(DialogLibraries.Standard.diaNeuerEintrag)
	dlg.Execute
End Sub
Allerdings kommt beim ersten Aufruf des Makros eine Fehlermeldung "Aktion nicht unterstützt. Ungültiger Prozedur-Aufruf" (bei der CreateUnoDialog-Zeile). Klicke ich OK und rufe das Makro erneut auf funktioniert es...

Nicht grade Anwenderfreundlich, wenn ich sage "ignoriert den Fehler, klickt den Basic-Code weg und arbeitet weiter" :D
Mihilist
****
Beiträge: 120
Registriert: Di, 25.04.2006 15:27
Wohnort: Nürnberg
Kontaktdaten:

Beitrag von Mihilist »

Hab noch ein bissl weitergearbeitet... Inzwischen geht garnix mehr. Der Dialog wird mir bei den anderen Makros nichtmehr angezeigt, "Dialoge Verwalten" führt zum Programmabsturz, ebenso obiges Makro zum Dia starten... O_o
Charly
*****
Beiträge: 450
Registriert: Di, 20.01.2004 13:14
Wohnort: München

Beitrag von Charly »

Hallo Mihilist!

Mit dem Aufrufen von Dialogen hatte ich bisher keine Probleme. Dass beim ersten Aufruf eine Fehlermeldung kommt, könnte möglicherweise damit zu tun haben, dass deine Bibliothek noch nicht aktiv ist, obwohl die Standardbibliothek immer geladen sein sollte - aber man weiß nie.

Ich habe meine Aufrufe zur Sicherheit immer in Teilschritten vorgenommen und das hat bisher auch geklappt:

Code: Alles auswählen

DialogLibraries.loadLibrary("Standard") 
oLib = DialogLibraries.getByName("Standard") 
oLibDlg = oLib.getByName("Dialog1") 
oDialog = CreateUnoDialog(oLibDlg)

oDialog.execute()
gruß
Charly
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Mihilit,

Charly hat dir eine Lösung genannt.

Du kannst aber auch deinen Code verwenden - musst aber sicherstellen, dass die Dialogbibliothek auch "geladen" ist.
Das kann durch eine erste Zeile geschehen:

Code: Alles auswählen

Sub zeige_dia
   DialogLibraries.loadLibrary("Standard") 
   dlg = CreateUnoDialog(DialogLibraries.Standard.diaNeuerEintrag)
   dlg.Execute
End Sub
Dies kann aber auch in einem anderen Makro passieren, das vorher läuft. Die Standard-Dialogbibliothek wird nicht automatisch geladen!

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Mihilist
****
Beiträge: 120
Registriert: Di, 25.04.2006 15:27
Wohnort: Nürnberg
Kontaktdaten:

Beitrag von Mihilist »

Mal so eine grundsätzliche Frage zu Dialogen: Kann es sein, dass man am besten die Finger davon lässt?

Letztens hab ich einen Dia bearbeitet, gespeichert, und am nächsten Tag war er weg... Heute lade ich einen Dia, und es kommt beim Laden der Fehler irgendeine Fehlermeldung, danach ist der Dia weg. Inzwischen ist der zweite meiner drei Dialoge weg.
Makros verwalten -> Dialoge anzeigen führt zum Absturz von OOo.

Irgendwie hab ich nur Ärger mit den Dingern... Leider kann ich sie nicht komplett ignorieren, weil ich an einigen Stellen einfach Informationen brauch bevor ich eine Aktion durchführen kann... Jemand irgendwelche brauchbaren Alternativen zu diesen Sch....dialogen? :evil:
Mihilist
****
Beiträge: 120
Registriert: Di, 25.04.2006 15:27
Wohnort: Nürnberg
Kontaktdaten:

Nachtrag

Beitrag von Mihilist »

Die Fehlermeldung, die ich bekomme lautet

BASIC Laufzeitfehler.
Es ist eine Exception aufgetreten
Type: com.sun.star.xml.sax.SAXParseException
Message: [Name.xml line 35] invalid tokenerror.

Danach ist der Dialog verschwunden...
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Mihilist,
Kann es sein, dass man am besten die Finger davon lässt?
Nein. Ich arbeite sehr viel mit Dialogen - auch in kompletten Anwendungen, die dann teilweise drei oder vier gleichzeitig offen halten - keine Probleme.

Keine Ahnung, was bei dir schief läuft. Die Fehlermeldung deutet auf ein Benennungsproblem von Objekten hin - evt. Schlüsselwörter benutzt, oder doppelt benannt?
Um mehr sagen zu können, müsste ich den completten Code sehn und deine Umgebungsbedingungen kennen.

Aber: Dialoge selbst funktionieren einwandfrei. Da gibt es keine Probleme :-)

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Mihilist
****
Beiträge: 120
Registriert: Di, 25.04.2006 15:27
Wohnort: Nürnberg
Kontaktdaten:

Beitrag von Mihilist »

Ich bin mal Schritt für Schritt vorgegangen (zum Glück hab ich genügend Sicherheitskopien *g*), und hab festgestellt, dass das Problem auftritt, direkt nachdem ich Controls aus dem Dialog gelöscht hab.
Hattest du schonmal irtgendwelche Probleme beim Löschen von Controls? Sind eine Textbox und das dazu gehörende Labelfield, kann mir nicht vorstellen, wo es dabei Probleme geben könnte...
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

hey Mihilist,
Hattest du schonmal irtgendwelche Probleme beim Löschen von Controls?
Hmm, eigentlich nicht. Aber ausschliessen möchte ich das natürlich auch nicht. Manchmal in den Entwicklungszyklen gibt es doch schon sher "merkwürdeige" Phänomene - Keine aktualisierungen, keine Reaktionen auf Ereignisse (Buttons etc) , nicht reproduzierbar aber eben da. Da hilft dann oft nur ein kompletter Restart (obwohl die Applikationen noch laufen) - entweder nur von OOo oder sogar manchmal vom kompletten Rechner. Danach ist immer wieder alles OK.
Schätze, das hat damit zu tun, dass Reste von Objekten, auftrufen oder ähnlichem im Hauptspeicher verbleiben und dort dann stören???
Jedenfalls: Da ich täglich mit Makros arbeite, es tritt nicht soooo oft auf, dass ich mir Sorgen machen würde - nichts bemerkenswertes - und nicht reproduzierbar.
Also - nein, keine Probleme beim Löschen von Controls :-)

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Mihilist
****
Beiträge: 120
Registriert: Di, 25.04.2006 15:27
Wohnort: Nürnberg
Kontaktdaten:

Beitrag von Mihilist »

Bei mir ist es durchaus reproduzierbar...

Und das beschriebene Wunder von Microsoft ("einfach ma neustarten..." ^^) bringt auch nichts, dadurch wird's erst ausgelöst: Ich lösche das Control, alles funktioniert. Ich speichere, beende, starte neu, und dann kommt oben genannter Fehler, und zwar bei allen Dialog-Aufrufen (wobei alle in Standard sind)
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Mihilist,

langsam machst du mich neugierig. Sind Geheimnisse in der Datei? Wenn nicht, so schick Sie mir doch mal mit PM. Das würde ich mir doch gerne mal ansehen - inklusiv einer exakten Schrittfolge, wie du den Fehler aktivierst.

Mal sehn, ob ich den auch reproduuieren kann ;-)

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Mihilist
****
Beiträge: 120
Registriert: Di, 25.04.2006 15:27
Wohnort: Nürnberg
Kontaktdaten:

Beitrag von Mihilist »

Kann man hier Dateien an PMs anhängen...? :shock:

Naja, der Code enthält an sich keine Geheimnisse, aber Informationen zum DB-Aufbau, und die DB gehört nicht mir, sondern der Firma *g* Wobei der Aufbau nicht so spektakulär ist, eigentlich. Personen-DB halt...

Wenn du ohne die DB was mit dem Code und den Dias anfangen kannst kann ich's dir schicken.
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Mihilist,
Wenn du ohne die DB was mit dem Code und den Dias anfangen kannst kann ich's dir schicken.
Nur dann, wen ich den Fehler reproduzieren kann ohen auf dei Datenbank zugreifen zu müssen ;-)

Wenn also die Datenbank-funktionen nur über Makros und Knöpfe verknüpft sind und nicht über den Code zum Aufruf der Dialoge direkt, schick es. Zur not kann ich die entsprechenden Zeilen auskommentieren.
Kann man hier Dateien an PMs anhängen...?
Gute Frage :?:
Aber OK, nut die Adresse:
tk (at) mic-consulting.de

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Beitrag von turtle47 »

Hallo Mihilist,

kann mich Deinen Erfahrungen nur anschließen.

Habe heute auch wieder mit Dialog und Makros gearbeitet,
anschließend gespeichert und die Anwendung geschlossen.

Nach öffnen der Datei war ein Teil der Makros verschwunden. :twisted:
Hatte auch Controls drin, die ich definitiv gelöscht habe und jetzt sind die wieder da.

Ist mir letzte Woche auch schon mal passiert.
Dachte ich hätte nicht gespeichert. Diesmal weis ich aber ganz genau, dass ich es gemacht habe.

Ausserdem fragt ja die Anwendung ja auch bei schließen ob man Speichern, Verwerfen oder Abbrechen möchte.


Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Mihilist
****
Beiträge: 120
Registriert: Di, 25.04.2006 15:27
Wohnort: Nürnberg
Kontaktdaten:

Beitrag von Mihilist »

Na da bin ich ja froh, dass ich nicht der einzige bin...

@Thomas: Hast du mal bei dir versucht wie beschrieben Controls zu löschen, speichern, neustarten? Anscheinend liegt es ja doch nicht an meiner Datei...

Hab übrigens OOo 2.0.2 und WinXP Prof mit SP2
Antworten