Code für Comboboxen in Dialogen

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

Moderator: Moderatoren

EURoady-Bus

Code für Comboboxen in Dialogen

Beitrag von EURoady-Bus » Do, 05.09.2019 11:36

Hallo

als relativer Neuling in Sachen Programmierung/PC fand ich in diesem Forum unter anderen eine Datei (aus Mai 2019 z.Z. Seite 4) welche ich als Vorlage zum weiterlernen runterlud. Durch einschlägige Literatur lernte ich, man solle sauber programmieren, sprich am besten mit Option Explicit arbeiten und jede Variable sauber mit Dim . . . as . . . dimensio -ohh ähh - deklarieren, dann erst dimensionieren.

Mein Problem ist nun, habe vermutlich alle mir ersichtlichen Variablen als variant (für mich universal) deklariert und nun stoppt der Code für mich nicht nachvollziehbar bei Sub namen_eintragen.

Wie muss ich den Code vervollständigen das das ganze wieder läuft?
Ich hatte das ganze hinzugeschriebene wieder gelöscht, aber trotzdem läuft der Code nicht mehr

Wenn ich es jetzt noch hinkriege, euch die Datei irgendwie zukommen zu lassen, wär mein erster Eintrag perfekt.

Gruß Mone

EURoady
Beiträge: 2
Registriert: Do, 05.09.2019 11:19

Re: Code für Comboboxen in Dialogen

Beitrag von EURoady » Do, 05.09.2019 11:48

So, hoffe jetzt kllappts

Mone
Dateianhänge
Dialog_test3.ods
(12.77 KiB) 9-mal heruntergeladen

Toxitom
********
Beiträge: 3589
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Code für Comboboxen in Dialogen

Beitrag von Toxitom » Fr, 06.09.2019 07:59

Hei Mone,

na, so schwer ist das doch nicht. Mit "Option explizit" musst Du alle benutzten Variablen deklarieren!!

Wenn Du eine Fehlermeldung bekommst: "Variable nicht bekannt" - dann hast Du eben eine Variable nicht deklariert:)

Schau nach: die Variable "txt" ist bei nicht deklariert.

So einfach ist das manchmal.

Viele Grüße
Thomas

PS: Deklariere nur globale Variablen im Modulkopf, also z.B. "dia". Alle anderen immer innerhalb der Subs.
PPS: Variablennamen eindeutig benennen. "txt" könnte auch intern verwendet werden, daher besser "myTxt" oder so!! Interne Namen (die man nicht kennt) könne zu Problemen führen.
PPPS: Das sind noch jede menge weiterer nicht deklarierte Variablen im Code...z.B. "x" und "j"... wird also nich mehr Fehler geben.
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic

EURoady
Beiträge: 2
Registriert: Do, 05.09.2019 11:19

Re: Code für Comboboxen in Dialogen

Beitrag von EURoady » Fr, 06.09.2019 21:22

Hallo Thomas,

danke für die Hinweise, was ich aber noch nicht ganz verstehe, warum der Code immer nur bis Sub namen_eingeben läuft, meines Erachtens fängt da doch ein neues Makro an, es ist doch keine Variable.

Was meines Erachtens noch ein Problem ist, es sind doch nicht alle Variablen vom Typ variant, wie bekomme ich den richtigen Typ heraus?

Für einen Anfänger finde ich es schwierig herauszufinden was und wie Variablen deklariert werden müssen.

Danke Gruß Mone

Toxitom
********
Beiträge: 3589
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Code für Comboboxen in Dialogen

Beitrag von Toxitom » Sa, 07.09.2019 08:12

Hey Mone,
.. warum der Code immer nur bis Sub namen_eingeben läuft...
Wie stellste das denn fest? Beschreibe doch mal Dein ganzes Vorhaben und Vorgehen. Vielleicht mit Screenshots?

Der Button ruft lediglich das Makro "Start_Dialog" auf... danach ist immer Schluss (beim ersten "End sub").
Was meines Erachtens noch ein Problem ist, es sind doch nicht alle Variablen vom Typ variant, wie bekomme ich den richtigen Typ heraus?
kein Problem. Variant ist egal... Basic findet den richtigen Typ. Im Übrigen solltest Du doch wissen, welchen Typ eine Variable sein soll - das ist doch Planung bei der Programmierung. Du musst doch wissen, was das Programm tun soll - und damit, welchen Typ Du in der Variablen erwartest??

Das einzige, was immer sein muss: Ein Array muss deklariert werden - mit Klammern.

Also z.B. Deine Variable "liste" ist immer ein Array - muss also deklariert werden als Array : Dim liste() <-- mit den Klammern!!!

Aber es ist müssig, alle Codefehler aufzuführen oder alles zu verbessern. Fange lieber klein an und verstehe, was Du da programmierst.

Viele Grüße
Thom
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic

Antworten