Date: prev next · Thread: first prev next last
2019 Archives by date, by thread · List index


Hallo Jürgen,


Am 30.03.2019 um 19:33 schrieb Jürgen Klatt:
Hallo Thomas,

habe nun meinen Code entsprechend Deines Ratschlags und diverser anderer
Ungereimtheiten überarbeitet.

Schon mal gut :)

Könntest aber noch ein paar andere "Kleinigkeiten" bereinigen:

Keine Variable als "global" definieren!!!! "Global"-Variable werden im Arbeitsspeicher aktiv gehalten, auch wen Dein (Makro-) Programm bereits beendet ist. Jedes andere Programm oder Modul kann darauf zugreifen und diese auslesen oder verändern. Ist eine Sicherheitslücke und ganz schlechter Programmierstiel (es sei denn, es ist tatsächlich notwendig). Du brauchst keine Global-Variablen! In Deinem Fall würde DIM immer ausreichen, falls Du mehrere Module betreibst und kein Windows benutzt, wäre "Privat" die korrekte Definition.

Die "Call" Aufrufe kannst Du Dir ersparen. Ist in VBA nötig, nicht aber in LO/AOO Basic. Hier reicht es völlig, den Funktionsnamen zu verwenden. "CAll" errinnert zu sehr an VBA und ist nur der Kompatibilität mit im Funktionsumfang.

Zu den Variablen-Namen hat Gerhard schon was gesagt. Es gibt einfach Namen, die werden auch vom Programm intern verwendet - wenn Du diese dann noch als "globale" Variablen festlegst, ist Chaos vorprogrammiert. Leider gibt es keine Liste interner Variablen-Namen. Hier ist einfach etwas Phantasie gefragt: je eindeutiger eigene Namen sind um so unverdächtiger. HIer gilt es: experimentieren.

Wenn das Programm bei der msgbox abschmiert (wie Du selbst scheibst und wahrscheinlich nach vielen Versuchen identifiziert hast?) würde ich mal mit einer Pause vor der msgbox arbeiten. Manchmal "überholen" sich interne Prozesse - sie sind dann einfach zu schnell. Ergebnis: Absturz. Oft hilft dann einfach eine wait() Funktion vor dem Absturzprozess - bei Dir also vor der Msgbox. Starte mit "Wait(500)" - und reduziere den später auf den kleinst möglichen Wert. Ein Wait(100) ist meist kaum zu spüren vom Anwender.

Einen "echten" Fehler konnte ich jetzt nicht entdecken im Code - hab aber auch nicht intensiv gesucht;)


Viele Grüße

Thomas



--
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.