[gelöst]Dialog mit 5 CommandButtons in LibreOffice Calc erstellen
Moderator: Moderatoren
[gelöst]Dialog mit 5 CommandButtons in LibreOffice Calc erstellen
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
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.
Re: Dialog mit 5 CommandButtons in LibreOffice Calc erstellen
z.B.:Ich möchte einen Dialog mit 4 Schaltflächen aufbauen
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
keine Ahnung was das meint1. Dialog 2.Dialog
Button1---> menü1---------------------------------> Button1---> menü1
Button2---> menü2 Button2---> menü2
Button3---> menü3
Button4---> menü4
Leider garnicht, denn außer das Du Buttons erstellen willst, die einen Dialog schliessen, habe ich nichts verstanden.Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt.
Gruß
Stephan
- Dateianhänge
-
- Buttons.ods
- (11.1 KiB) 202-mal heruntergeladen
Re: Dialog mit 5 CommandButtons in LibreOffice Calc erstellen
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
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
Re: Dialog mit 5 CommandButtons in LibreOffice Calc erstellen
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
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
Re: Dialog mit 5 CommandButtons in LibreOffice Calc erstellen
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
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
Re: Dialog mit 5 CommandButtons in LibreOffice Calc erstellen
Hallo Dirk,
schön das Du Dannenhöfer kennst. *daumen-hoch*
Okay, der Grund dafür war im Modul *Menue* folgende Zeile.
Das 'as Object' darf NIE-NICHT in Klammern gesetzt werden. Richtig ist nämlich.
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
schön das Du Dannenhöfer kennst. *daumen-hoch*
Bei mir in OO.o 3.2.1 (ist schon eine Oma unter den Officen ) funktionierte der Dialogaufruf erstmal gar nicht. Ich bakam eine Fehlermelung, Sinngemäß: "BASIC Syntax-fehler".Bei mir wird das Hauptmenü geschlossen und dann stürzt Libre office ab ("Unerwarteter fehler")
Okay, der Grund dafür war im Modul *Menue* folgende Zeile.
Code: Alles auswählen
Public oDlg_Haupt (as Object)
Code: Alles auswählen
Public oDlg_Haupt as Object
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) 189-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
wehr rächtschraipfähler findet khan si behalden
Re: Dialog mit 5 CommandButtons in LibreOffice Calc erstellen
Aus Erfahrung sage ich mal: .dispose() musst Du nicht verwenden. Ich weiß das es das gibt benutze das aber fast nie.
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
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.Ich bin kein Programierer sondern nur schreinermeister.
Nein, die laufen nicht langsamer. Ich würde aber, wenn Dein ganzes Programm etwas umfangreicher wird mehrere Module benutzen, rein der Übersicht wegen.Grundsätzliche Frage laufen die Makros langsamer wenn alles in einem Modul steht ??
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
Re: Dialog mit 5 CommandButtons in LibreOffice Calc erstellen
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
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
Re: Dialog mit 5 CommandButtons in LibreOffice Calc erstellen
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
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