[gelöst]Dialog mit 5 CommandButtons in LibreOffice Calc erstellen

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

Moderator: Moderatoren

pcdirk91
***
Beiträge: 54
Registriert: Fr, 15.11.2013 18:02
Wohnort: Fürth/bay

[gelöst]Dialog mit 5 CommandButtons in LibreOffice Calc erstellen

Beitrag von pcdirk91 »

Hallo zusammen,
Ich versuche mich in der Makroprogrammierung
Ich möchte einen Dialog mit 4 Schaltflächen aufbauen
1. Dialog 2.Dialog
Button1---> menü1---------------------------------> Button1---> menü1
Button2---> menü2 Button2---> menü2
Button3---> menü3
Button4---> menü4

wenn ich den entsprechenden Button auswählen soll dder dialog geschossen werden und abgefragt werden welcher Button gedrückt wurde
Ich habe jetzt schon mehere stunden in google und Co gelesen aber leider keine Lösung gefunden
Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt.
Leider weiss ich nicht wie ich Beispiel Dialoge einfügen kann
Vielleicht geht meine idee auch gar nicht
Danke im Voraus
Zuletzt geändert von pcdirk91 am Do, 07.02.2019 19:01, insgesamt 1-mal geändert.
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Dialog mit 5 CommandButtons in LibreOffice Calc erstellen

Beitrag von Stephan »

Ich möchte einen Dialog mit 4 Schaltflächen aufbauen
z.B.:

Code: Alles auswählen

Dim dia As Object
Dim frm As Object

Sub Starte_Dialog()
	BasicLibraries.LoadLibrary("Standard")
	DialogLibraries.LoadLibrary("Standard")
	frm = DialogLibraries.Standard.Dialog1
	dia = CreateUnoDialog(frm)
	dia.Execute()
End Sub

Sub Klick(rueck)
	Msgbox "Gedrückt wurde " & rueck.Source.Model.Label & ". Dialog wird geschlossen." 
	dia.EndExecute()
End Sub
1. Dialog 2.Dialog
Button1---> menü1---------------------------------> Button1---> menü1
Button2---> menü2 Button2---> menü2
Button3---> menü3
Button4---> menü4
keine Ahnung was das meint
Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt.
Leider garnicht, denn außer das Du Buttons erstellen willst, die einen Dialog schliessen, habe ich nichts verstanden.


Gruß
Stephan
Dateianhänge
Buttons.ods
(11.1 KiB) 202-mal heruntergeladen
pcdirk91
***
Beiträge: 54
Registriert: Fr, 15.11.2013 18:02
Wohnort: Fürth/bay

Re: Dialog mit 5 CommandButtons in LibreOffice Calc erstellen

Beitrag von pcdirk91 »

Hi Stefan,
erstmal Danke für Deine antwort und Dein Beispiel. was ich aus Deiner Beispieldatei gesehen habe, ist das schon sehr nahe dem was ich machen will.
Muss leider jetzt weg (Termin ). wollte der Höflichkeit wegen wenigstens kurz antworten
Aber wenn ich wieder Daheim bin werde ich dein Beispiel testen und mich Bei Dir melden.
Sorry aber ich will versuxhen Dir das in Ruhe zu Verdeutlichen aber leider erst gegen Nachmittag
Sorry aber nachher sicher mehr
Gruß Dirk
pcdirk91
***
Beiträge: 54
Registriert: Fr, 15.11.2013 18:02
Wohnort: Fürth/bay

Re: Dialog mit 5 CommandButtons in LibreOffice Calc erstellen

Beitrag von pcdirk91 »

Hi Stefan,
sorry nochmal für meine Antwort heute Morgen. Hatte aber eine Besprechung die erst vor ner halben Stunde vorbei war. jetzt mit ner Tasse Kaffe und ner Zigarette nochmals zu meiner Frage.

wie dein Beispiel gezeigt hat war mein Gedankengang im Grunde Richtig. Im anhang dazu siehst du mein ergebnis.
Bei mir wird das Hauptmenü geschlossen und dann stürzt Libre office ab ("Unerwarteter fehler")
ich denke das liegt daran, das ich die Makros für die Aktionen im Dialog (ausDialogfeld) in einem anderen Modul habe als den Aufruf des Hauptmenüs (Modul Menue). Grund hierfür war meine Überlegung für einzelne Bereiche extra Module anzulegen. Auch weil ich diese dann exportieren (sprich sichern kann). Vielleicht ist das aber gar nicht gut denn dadurch müssen die Varaiblebn ja als Public definiert werden (wenn mein Kleinhirn das richtig verstanden hat)
Ich bin kein Programierer sondern nur schreinermeister. Aber dafür seid Ihr im Forumm halt die Experten.
Grundsätzliche Frage laufen die Makros langsamer wenn alles in einem Modul steht ?? Vielleicht kannst du mir da nen tipp geben.
so jetzt werde ich mal dein Beispiel umstzen und das in ein Modul packen. Ich denke dann wird das funzen :)
danke für deine geduld und vielleicht schaust mal in meine Datei rein.
Gruss Dirk
Menüaufbau.ods
(26.21 KiB) 156-mal heruntergeladen
pcdirk91
***
Beiträge: 54
Registriert: Fr, 15.11.2013 18:02
Wohnort: Fürth/bay

Re: Dialog mit 5 CommandButtons in LibreOffice Calc erstellen

Beitrag von pcdirk91 »

Hi Stefan leider ich nochmal,
habe meinen Fehler gefunden. im Aktion ausführen makro des Dialoges mus die Zeile ".Dispose() raus. in der Beschreibung von Jörg dannenhöfer
Zitat:
Rueckwert=Dialog.execute()

Aber Achtung um den Dialog bei Bedarf wirklich aus dem Speicher zu löschen muß noch Dialog.dispose() ausgeführt werden.
Leider führt der Befehl bei einigen Installationen zu Abstürzen. Daher muß man unter Umständen darauf verzichten.

Da war mein denkfehler. Jetzt funzt es .Sicher für euch ist das ganze eim´mal Hand schütteln und der Code steht. Leider habe ich beim hochladen meiner datei noch 2 Rem Befehle bei der Deklaration der Public variablen vergessen. war meiner Ungeduld geschldet ("Mich mal in die Ecke stell und schäm")

Also Danke für deine Tipps
Gruß dirk
Benutzeravatar
balu
********
Beiträge: 3810
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Dialog mit 5 CommandButtons in LibreOffice Calc erstellen

Beitrag von balu »

Hallo Dirk,

schön das Du Dannenhöfer kennst. *daumen-hoch*
Bei mir wird das Hauptmenü geschlossen und dann stürzt Libre office ab ("Unerwarteter fehler")
Bei mir in OO.o 3.2.1 (ist schon eine Oma unter den Officen 8) ) funktionierte der Dialogaufruf erstmal gar nicht. Ich bakam eine Fehlermelung, Sinngemäß: "BASIC Syntax-fehler".
Okay, der Grund dafür war im Modul *Menue* folgende Zeile.

Code: Alles auswählen

Public oDlg_Haupt (as Object)
Das 'as Object' darf NIE-NICHT in Klammern gesetzt werden. Richtig ist nämlich.

Code: Alles auswählen

Public oDlg_Haupt as Object
Okay, so viel zu den kleineren Kinderkrankheiten.
Kommen wir zu einem generellen Punkt.

Du willst vom HauptMenü-Dialog zu einem anderen Dialog. Und ab hier gibt es mehrere Wege die man beschreiten kann. Entweder so wie Du ihn dir im groben vorstellst, oder einen Mehrseitigen Dialog.

Dein Weg hat einen riesiges Hauptdialog (Hauptmenü), aber unterschiedlich große Unterdialoge. Das würde mich persönlich sehr stören. Habe die Erfahrung gemacht, wenn alles aus einem "Guß" ist, sieht das nicht nur schöner aus, sondern es erleichtert auch die Arbeit mit den Dialogen.

Und deshalb würde ich persönlich dir empfehlen: Arbeite mit Mehrseitigen Dialogen.
Das ist wohl zu Anfangs etwas gewöhnungsbedürftig, aber es macht sich im laufe der Zeit durchaus "bezahlt".
Hier mal der grundsätzliche Aufbau, und die Programmierung.
http://www.dannenhoefer.de/faqstarbasic ... hrseitiger
Oder andere Version
http://www.ooowiki.de/MehrseitigeDialoge.html

Solche Dialoge haben auch den Vorteil, das sie in der Programmierung leichter zu handhaben sind.
Im Anhang ein aller simpelster Dialog der mehrere Seiten (3an der Zahl) umfasst. Er basiert auf den eben genannten Links.



Gruß
balu
Dateianhänge
Simpel_Beispiel_mehrseitiger_DIALOG_1.ods
(11.1 KiB) 188-mal heruntergeladen
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Dialog mit 5 CommandButtons in LibreOffice Calc erstellen

Beitrag von Stephan »

Aus Erfahrung sage ich mal: .dispose() musst Du nicht verwenden. Ich weiß das es das gibt benutze das aber fast nie.
Ich bin kein Programierer sondern nur schreinermeister.
Ich bin auch kein ausgebildeter Programmierer. Mit Holz etwas bauen kann ich ganz gut, aber in den letzten Jahren arbeite ich mehr mit der Kettensäge, um mein eigenes Kaminholz zu sägen, als Ausgleich neben dem Beruf.
Grundsätzliche Frage laufen die Makros langsamer wenn alles in einem Modul steht ??
Nein, die laufen nicht langsamer. Ich würde aber, wenn Dein ganzes Programm etwas umfangreicher wird mehrere Module benutzen, rein der Übersicht wegen.


Ach so, mein Unverständnis beim ersten Post kam davon das Du von "Menü" sprachst. Ein "Menü" ist das Ding oben am Programmfenster oder im Kontextmenü, jedenfalls keine Buttons. Deinen Dialog kann man als "Übersichtsdialog" bezeichnen oder als Hauptdialog.



Gruß
Stephan
pcdirk91
***
Beiträge: 54
Registriert: Fr, 15.11.2013 18:02
Wohnort: Fürth/bay

Re: Dialog mit 5 CommandButtons in LibreOffice Calc erstellen

Beitrag von pcdirk91 »

Hi Balu
erstmal Danke für deine Hinweise. wegen dem riesigen Dialog Hauptmenü möchte ich noch anmerken das der in der endgültigen Fassung sicherlich kleiner wird. Da ich aber noch nocht weiß was ich alles abdecken will habe ich den Dialog so Groß gemacht un noch mehre Punkt dazu zumenhem. Aber; alle Dialoge für die Menüs sollen die gleiche Größe bekommen. Eben aus dem von dir aufgeführten Grund.
Die Idee mit dem Mehrseitigen dialogen werde ich mir auch mal zu Gemüte führen. Wie gesagt ich muss erstmal mich in die Programmierung reinarbeiten. Das heißt vieles erstmal ausprobieren; Testen und dann vielleicht wieder verwerfen. Naja das ist halt so

also erstmal Vielen Dank

Gru0 Dirk
hier wollte ich mal versuchen wie das mit den Gänsefüsschen geht also nur zum Test
pcdirk91
***
Beiträge: 54
Registriert: Fr, 15.11.2013 18:02
Wohnort: Fürth/bay

Re: Dialog mit 5 CommandButtons in LibreOffice Calc erstellen

Beitrag von pcdirk91 »

Hi Steffan,

mit den Dispose Befehl habe ich jetzt verstanden. In Zukunft exustert der nicht mehrr bei mir
Das mit den Modulen leuchtet mir ein und war auch meine Überlegung

Sorry wenn ich das so schreibe komme noch nicht mit den Gänsefüßchen (weiss nicht wie ich das nennen soll ) zurecht.
bin gerade sabei meine Grundidee zu verrfeinern. Mal sehen wie weit ich komme

ps: Kettensäge ist nicht mein Fall "Angst davor habe" , aber ich brauch auch kein Kaminholz da ich keinen Kamin habe.

Also Danke und noch einen schönen abend

Gruß Dirk
Antworten