dialog ohne oo starten?

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

Moderator: Moderatoren

inqui
**
Beiträge: 26
Registriert: Di, 09.12.2008 08:16

dialog ohne oo starten?

Beitrag von inqui »

hallo,

ich habe für eine calc tabelle einen dialog geschrieben, der den nutzer durch verschiedene aktionen führt.
bisher habe ich es so gehalten, das ich den dialog einfach beim öffnen des calc dokumentes mitstarten lasse.

schöner wäre es natürlich, wenn ich nur den dialog starten könnte (oder das makro welches den dialog aufruft), bzw. das eigentliche calc fenster ausblenden könnte, so dass nur noch der dialog sichtbar wäre.


ich hoffe ich habe halbwegs verständlich rübergebracht was ich machen möchte.

ist sowas möglich?


danke schonmal


inqui
inqui
**
Beiträge: 26
Registriert: Di, 09.12.2008 08:16

Re: dialog ohne oo starten?

Beitrag von inqui »

Hallo,

ich bins nochmal.

Ich habe bei meinen Tests folgendes erreicht:

Code: Alles auswählen

thiscomponent.getCurrentController().getFrame().getContainerWindow().setVisible(false)
Wenn ich diesen Code mit dem Ereignis "Dokument öffnen" verknüpfe passiert genau das was ich will: Nur noch der Dialog ist sichtbar.

Dazu hätte ich noch zwei weitere Fragen:
1. Wenn das Calc-Dokument geöffnet wird, wird dieses zuerst noch kurz angezeigt, dann springt das Makro an und das Dokument verschwindet. Gibt es eine Möglichkeit, dass das Calc-Dokument auch nicht beim Starten angezeigt wird, sondern tatsächlich direkt der Dialog? (Habe schon versucht das Makro dem Ereignis "Programmstart" zuzuweisen, aber passiert leider gar nichts)

2. Gibt es für einen Dialog ein Ereignis "Dialog Ende", dem ich ein Makro zuweisen könnte? Hintergrund ist natürlich, dass ich beim schliessen des Dialogs ein weiteres Makro ausführen möchte. In den Ereignissen, die in den Eigenschaften des Dialogs stehen, habe ich leider nichts dergleichen gefunden.


wäre nach wie vor für jede Hilfe dankbar



inqui
John.Mops
*
Beiträge: 14
Registriert: Mi, 25.03.2009 10:31

Re: dialog ohne oo starten?

Beitrag von John.Mops »

Hallo!
...das OO beim Start gar nicht sichtbar ist - hab ich noch nicht hinbekommen - da suche ich auch noch
denn sogar wenn ich einer ods - Verknüpfung die Anweisung gebe ...Ausführen...minimiert... wird das ignoriert -

zu 2. hab ich nicht ganz verstanden - einem Abbrechen-Button für schließen kann ja ein Makro zugewiesen werden -
und wenn Du deinen Dialog über ein Makro aufrufts

sowas wie
iRet=dlgMain.execute

dann geht nach dem Schließen die Ausführung da weiter - mit der Info wie geschlossen wurde.
thx!
OO3.1/MySql-Connector/Linux 2.6.30/SuSE/(nur bis)XP John.M
inqui
**
Beiträge: 26
Registriert: Di, 09.12.2008 08:16

Re: dialog ohne oo starten?

Beitrag von inqui »

Hallo John.Mops

Ja, für mein zweites Problem war das genau das was ich gesucht habe ...
Ich mache das jetzt so

Code: Alles auswählen

result = dlgmaske.execute
if result = 0 then
	"Programmcode"
end if
funktioniert prima :)


Bei dem anderen Thema scheine ich ja dann nicht der einzige zu sein, der nach einer Lösung sucht.
Solltest du noch was finden ... sei doch so nett und poste es hier :)


danke nochmal für die schnelle Antwort



bis dann
inqui
John.Mops
*
Beiträge: 14
Registriert: Mi, 25.03.2009 10:31

Re: dialog ohne oo starten?

Beitrag von John.Mops »

kurzer Zwischenstand...
...tja, wenn ich das so richtig verstanden habe,
gehört das in die Abteilung - nächter Level - will sagen Java/NetBeans ..?
thx!
OO3.1/MySql-Connector/Linux 2.6.30/SuSE/(nur bis)XP John.M
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: dialog ohne oo starten?

Beitrag von komma4 »

Also, hier geht das Starten des Dialogs wie gewünscht
  • * Starten von OOo unter Mitgabe eines Makros (kein Logo, kein Startcenter, kein Dokument)
    * das Makro erzeugt zur Laufzeit einen Dialog
    ** ABBRECHEN schliesst den Dialog -> kein Startcenter, OOo beendet
    ** SCHALTFLÄCHE, die andersweitig reagiert -> Dokument aus Vorlage, gewählte Werte aus Dialog reinschreiben, usw.

Sollte auch mit einem per Editor erzeugten Dialog funktionieren.


Eingabe auf der Kommandozeile

Code: Alles auswählen

soffice -nologo "macro:///dynD.Module.startDialog"
Syntax: Bibliothek.Modul.Makroname


Das war doch die Ausgangsfrage, oder nicht?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
inqui
**
Beiträge: 26
Registriert: Di, 09.12.2008 08:16

Re: dialog ohne oo starten?

Beitrag von inqui »

Hallo komma4,

Erstmal danke für den HInweis, bringt mich auf jeden Fall in die richtige Richtung.

nur ist meinem Fall das Makro in der .ods gespeichert.

Wenn ich nun folgendes versuche:

Code: Alles auswählen

soffice.exe -invisible "meine_ods.ods" "makro:///Standard.Modul1.meinmakro"
wird zwar mein Calc-Sheet gestartet und das Makro auch automatisch ausgeführt, welches das Sheet auf unsichtbar schaltet, doch zu sehen ist es beim Start trotzdem kurz. Das ist auch nicht weiter tragisch - ändert ja schliesslich nichts an der Funktionalität - aber sollte der Schalter "-invisible" nicht dafür sorgen, dass das Sheet unsichtbar gestartet wird?


nochmal danke für die rasche Hilfe


inqui
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: dialog ohne oo starten?

Beitrag von komma4 »

inqui hat geschrieben:nur ist meinem Fall das Makro in der .ods gespeichert.

[...]soffice.exe -invisible "meine_ods.ods" "makro:///Standard.Modul1.meinmakro"
a) lt. Hilfe erzeugt -invisible "no GUI" - das konterkarierst Du dann wieder durch die Mitgabe des Calc-Dateinamens... IMHO ist der Schalter für reine Batch-/Hintergrundaufgaben gedacht.
b) Dein Dialog MUSS nicht in der Calc-Datei hinterlegt ein ... erstelle eine Extension (Code und Dialog) und verteile diese über einen (Web-)Server. Dann klappt auch der gepostete Aufruf ohne Dateiname.

Viel Erfolg!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Antworten