DrPagel-Biografie...
.... schreibe ich, wenn ich älter bin.
Wem das zu lange dauert, kann sich inzwischen schon die Zeit mit dem Besuch meiner anderen Homepageseiten vertreiben:- Solange (seit 18.Oktober 2010) wegen des fehlenden alt-Atribut im img-Element des "speichern"-Buttons unter dem Browser Firefox für drpagel.log.ag keine
Beiträge publiziert werden können, können meine Beiträge ab dem 18.Oktober 2010 in meinem Tagebucharchiv durch Klick auf diesen Link weiterverfolgt werden. Die Abstrakts der Beiträge werden gegebenenfalls später hier nachgetragen.
- Dr.Pagel-WebseitenZentrale www.drpagel.de mit automat. Weiterleitung auf meine auch separat aufrufbare (schon etwas verstaubte) Seite:
- Dr.Pagel Webcam, Wetter und Wissen. Dort befindet sich auch das Impressum, die Kontaktadresse und ein Link zu meinem
- Foto. Weitere angefangene Projekte sind meine
-
Umweltseite mit meinem schönen Urlaubsfoto vom Oktober 2004 aus der versmogten lettischen Hauptstadt Riga an der Daugava, die ich bereits am 23.1.2005 bei Suchnase.de angemeldet hatte und der Domain-Inhaber, ohne mich zu informieren mit neuem Inhalt bespielt hat, dann meine - Seiten zum Thema Bildung, Gesundheit, Urlaub, Wellness (begonnen seit dem 10.9.2004, geplant seit Pfingsten 2004; freenet stellt diese gratis-Webseiten zum 31.3.2010 ein).
- Weblog-Archivseiten tb-archiv.drpagel.de
- meine
Vitamin-C-Forschungsseite mit der Option zum Kennenlernen von PHP (noch nicht getestet!; seit Dezember 2005) bei Lycos.de unwiderbringlich gelöscht! und ich habe jetzt weder Zeit noch Lust, diesen Datenverlust zu beheben! (Gewinn-Warnung: das wird wohl vor Winter 2011/2012 nichts mehr!) - meine Planung zur HP bei Lycos.fr (seit Dezember 2005)
- mein Multilingual-Projekt: Text in 29 Sprachen (languages)
- meine Ausspracheübung (z.Zt. in 24 Sprachen)
Jedoch hat mich der Datencrash im Juli 2005 soweit zurückgeworfen, dass ich danach keine meiner Webseiten mehr mit NOF aktualisiert und immer noch nicht alle defekten Dateien auf Wiederherstellung geprüft habe. Bei der Festplattenanalyse bei Vobis wurde in 2005 kein Virus gefunden, jedoch ein Jahr später hat mir die aktualisierte Antiviren-Software gezeigt, dass auch auf gewerbliche Virenscans leider kein Verlass ist.
Hier meine unvollständige Lieblings-Webseiten-Liste (z.B.: backlinks für PageRank):Ehemalige Weblogs sind in meiner Gesamtliste aufgeführt. Zur Kenntnisnahme: Alle mit (dp) gekennzeichneten lyrischen Ergüsse sind durch Copyright © by Dr.Detlef Pagel urheberrechtlich geschützt. Bis auf Widerruf ist die auszugsweise Wiedergabe mit Quellenangabe nur zum privaten nichtkommerziellen Gebrauch gestattet.
Hinweise zu Weblog-Code-Fehlern>>Forum zu Weblog (siehe auch rechte Leiste); Homepage(freenet-Administrator)NOTFALL-HINWEISE (siehe auch mein Eintrag vom 9.6.2005)Hinweise zu Internet-Störungen allgemein >>
Gebrauchsanleitung: es wird (zur Zeit) auf dieser Site immer nur der Weblog-Inhalt der letzten 5 Beiträge angezeigt. Zum Suchen anderer Einträge können die Inhaltsverzeichnisse (webtropia-Weiterleitung zum Loomes-Server, Loomes-Server) oder alternativ zum Freenet-Kalendariums am rechten Rand dieser Site ein eigener Kalender 2004, 2005 durch Anklicken der Wunschtage oder ein internes Suche-Formular: oder die Index-Seite für mein Tagebuch-ZentralArchiv For translation of my websites click here please (zhōng=#20013)Wetter in Wetzlar benutzt werden.
Der erste Tagebucheintrag fand am 16.Mai 2004 statt, also vor gut vier Jahren. Seitdem wurden zu verschiedenen Themen verfasst. Als kleines Dankeschön für das zunehmende Leserinteresse hier seit Mai2005 meine Bilder des Monats:
System&Browser&JavaScript-Abfrage, Browser&Player-Abfrage
Seit Mo., den 04.08.2008, 01 Uhr(MESZ; a.m.) (hierzu Statistik):
mehr...
Vorübergehend mussten zu Testzwecken fast alle Scripte im Tagebuch-Vorspann entfernt werden! Die meisten Skripte sind noch nicht reinstalliert worden. Daher dürfte jetzt fast keine eigene Javascript-Anwendung funktionieren.
Es ist noch viel zu testen. Daher werden voraussichtlich vor heute abend (16.6.2008) keine weiteren Skripte hier in den Weblog-Vorspann zurückinstalliert werden können. Ich bitte um Verständnis.
 |
 |
Verfasst am 26.02.2008 22:55:04 Uhr Funktionierende Starbasic-Makros für Staroffice7.Product Update1 Teil1 Soeben habe ich bei dannenhoefer.de gelesen, dass sich mit einer Umstellung von Version 5.2 auf Version 6.0 gravierende Änderungen in den Eigenschaften und Methoden von StarBasic ergeben haben, die nicht ausreichend dokumentiert sind.
Da habe ich mal eine Abfrage an mein Staroffice mit dem Ziel gestartet, die Version von StarBasic zu ermitteln. Leider soll dieser nichtfunktionierende Code nur die Spracheinstellung herausposaunen (Lit.), ja aber welche Sprache? Die vom Benutzer, dem Browser, gar die "StarOffice Basic language" (Lit.): Dim oParameter(0) As New com.sun.star.beans.PropertyValue
sProvider = "com.sun.star.configuration.ConfigurationProvider"
oConfigProvider = createUnoService(sProvider)
OSprachversion=oConfigProvider.Locale.Language
msgbox OSprachversion ... und funktioniert wegen unbekannter Methode nicht.
Sehr ausführlich sind dort einige nichtflüchtige Fehler dokumentiert.
Ebensowenig wollte der in dem Handbuch angegebene Code funktionieren. Bereits bei der Abfrage nach dem ersten Datenblatt Doc.Sheets(0) als auch nach dem mit "MySheet" benannten Datenblatt ergaben sich die Fehler wegen unbekannter Eigenschaften und Methoden (vergleiche hierzu Nachtrag2). Dim Doc As Object
Dim Sheet As Object
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)
... oder Dim Doc As Object
Dim Sheet As Object
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets.getByName("MySheet") Mein englischsprachiger Freund dachte, ich hätte mich vertippt ("MyShit")?
Immerhin funktionierte die StarBasic-Abfrage nach dem Betriebssystem (Lit.): Sub ShowBS
OS = GetGUIType()
if OS = 1 then Msgbox "BS ist Windows"
if OS = 3 then Msgbox "BS ist Mac"
if OS = 4 then Msgbox "BS ist Unix"
End Sub
Halali....
P.S.: Wird nicht gerade die Version 8 gratis verteilt? Oder ist da noch wieder ein Unterschied zwischen Staroffice8 und Starbasic8?
Später mehr oder weniger. (dp) (3h)
Nachtrag_1 am 27.2.2008 um 18.10Uhr: Wieder eine funktionierende Prozedur von mir (nach einer "Propierties"-tippfehlerkorrigierten Idee von Lit.): Sub ListeEigenschaften
Dim Obj As Object
Dim ObjText As String
Obj = createUnoService("com.sun.star.sheet.SpreadsheetDocument")
ObjText = Obj.DBG_Properties
MsgBox ObjText
End Sub Anm.: für "com.sun.star.sheet.SpreadsheetDocument" könne man auch andere bekannte vollständige Dienstebezeichnungen eintragen, die von der Modul-Funktion createUnoService() initialisiert werden.
Später (s.Beitrag v.03.3.2008) werde ich diese Art von Prozedur etwas modernisieren, da die MsgBox für manche Ausgaben zu klein dimensioniert ist und z.B. bei folgender Prozedur leider nur einen Teil der Information sichtbar macht (Schlüsselerlebnis!):(Lit.): Sub ListeMethoden
Dim Obj As Object
Dim ObjText As String
Obj = createUnoService("com.sun.star.sheet.SpreadsheetDocument")
ObjText = Obj.DBG_methods
MsgBox ObjText
End Sub Anm.: s.oben (dp) (0,5h)
Nachtrag_2 am 02.03.2008 um 16Uhr: Obiger Code zur Namensausgabe der Datenblätter war unvollständig. In der starbasicfaq.de-Seite steht der Code vollständig. Sub ShowDatenblattName
Dim myDoc As Object
myDoc = thisComponent
Anzahl=myDoc.Sheets.count
For i=0 to Anzahl-1
mySheet = myDoc.Sheets(i)
msgbox mysheet.name
Next i
End Sub
Es muss wohl seine Bewandnis damit haben, dass die Bezeichner nicht Doc, sondern oDoc oder myDoc oder anders heissen. Wichtig ist wohl auch thisComponent, falls es sich um das gerade geöffnete Dokument handelt. Die Bezeichnung StarDesktop.CurrentComponentlässt ähnliche Bedeutung vermuten, ist mir aber noch unklar. Vielleicht war diese Bezeichnung bei einer älteren StarBasic-Version gültig?
Anhand der Datenblatt-Namensausgabe wird ersichtlich, dass das "underline"-Zeichen am Wortanfang ungünstig steht. Hier gibt die Messagebox (msgbox) den vollständigen Namen aus, jedoch in Starofffice unter dem Menüpunkt "Extras / Makros / Makro" im Formularfenster "Makros aus" wird der einleitende Unterstrich weggelassen. In der Basic-Sprache bedeutet der Unterstrich meist ein Zeilen-Fortsetzungszeichen. Die Zeile wird nicht fortgesetzt, wenn das Underline-Zeichen nicht durch ein Leerzeichen vom Codewort getrennt ihm folgt. Wieder etwas dazugelernt.
Warum nicht gleich so? (dp) (0,5h)
Nachtrag_3 am 03.03.2008 um 23Uhr: Soeben habe ich etwas entdeckt, was gleich nach vorne in meine Basic-Lehr- und Entwicklerseite gehört: - Falls man seine Variablen (z.B. mit DIM meinevariable AS MeineEigenschaft) deklariert, darf man es bei Basic irgendwo vor dem ersten Gebrauch, nur ist es ein schlechter Programmstil. Aber eins darf man nicht vergessen: hinter jede Variable gehört bei Basic die Bezeichnung "As MeineEigenschaft" dahinter und nicht nur am Ende einer Variablenliste. In einem solchen Fall "Dim ersteVariable, zweiteVariable, dritteVariable As String" wird nur dritteVariable als String deklariert, die übrigen beiden haben oder leiden unter der Eigenschaft Variant.
- In Staroffice "Tabellendokument" kennt man, dass in den Tabellen die Realzahlen, wie im Deutschen üblich, mit Komma publiziert werden. In Wirklichkeit stehen sie im Programmspeicher als Realzahlen mit Punkt und die Kommadarstellung ist eine Stringdarstellung.
Im folgenden Beispiel greife ich auf meine Vorlage des CuTiPot-pH_calc-Datenblatt zurück. Dort steht unter "Phosphoric acid" in der 5.Zeile (Zelle D5) die Zahl 0,06. Wie ein Vergleich mit Zeile 25 (Zelle D25) zeigt, steht sie dort in Exponentialschreibweise als 6,100E-02, also wird die dritte Stelle nach dem Komma nur hier aus optischen Gründen nicht dargestellt, ist aber dem Staroffice-Tabellenkalkulationsprogramm bekannt.
Sub BeispielZellinhaltAlsKommaString
Dim oSheet as Object
rem
oSheet = ThisComponent.CurrentController.ActiveSheet
rem
If (oSheet.getCellRangeByName("D5").getCellByPosition(0,0).String = "0,06") or _
(oSheet.getCellRangeByName("D5").getCellByPosition(0,0).Value = 0.061) Then
MsgBox "Zellinhalt = 0,061"
else
MsgBox "Zellinhalt =/= 0,061"
end If
End Sub
Würde man hier nach einer Stringzahl mit Punkt oder als Realzahl mit Komma abfragen, würde es keine Übereinstimmung geben. Auch wenn in dem aktuellen Datenblatt die Zahl mit drei Nachkommastellen oder als gerundete Integerzahl dargestellt, kann man sie nicht als zweistellige Nachkommazahl finden.
(dp) (0,75h)
Linksammler:
Fortsetzung folgt
Verfasst am 26.02.2008 14:19:13 Uhr Unter Staroffice7 ein (sicheres) Makro mit einer Formulartaste verknüpfen Vor Tagen fiel ich in tiefe Depression, weil die freeware CurTiPot von Prof.Gutz in einer Excel-Version bei fehlendem Excel auch unter Works und Staroffice nicht läuft. Nun geht es mir nicht darum, der einen oder anderen Firma ihren Ertrag zu missgönnen. Wer gerne Excel benutzen will, der soll dies ruhig tun.
Mir ging es um das Simulieren der Titrationskurve einer "Testsubstanz". Nun hat der Herrgott aber vor den Erfolg die Arbeit gestellt. Was Excel kann, sollte auch Staroffice können, glaubt man.
Der Glaube versetzt Berge!
Der erste Berg war die Frage: "wieso funktionieren manche Formulartasten unter Staroffice nicht?" Die Antwort war schnell gefunden: "weil Staroffice die Ausführung fremder Makros nicht unterstützt".
Zweite Frage: "Wie kann man unter Staroffice die Ausführung von Makrofunktionen erreichen, die in einer für Excel entworfenen Datenbank-Tabellenkalkulation.xls stehen?" Antwort: "Man muss sich eine neue leere Tabellenkalkulationsdatei.sxc anlegen, dorthinein unter Beachtung der Urheberrechte gewünschte Tabellenzellen, Bilder, Texte, Funktionen (, Layouts) usw. mit Hilfe der Kopiefunktion übernehmen, und was nicht zu übernehmen sinnvoll oder möglich ist, neu anlegen. Die (partielle) Neuanlage ist erforderlich z.B. für Formularelemente (z.B. Taste (Command Button)) und für Staroffice-kompatible Makros mit der zu Excel-Makros vergleichbaren Funktion."
Formularschaltfläche anlegen oder verändernWenn kein Button vorhanden ist, dann lege man ein Command Button an, indem man etwas länger auf das Button "Formularfunktionen anzeigen" bzw. "Entwurfsmodus an/aus" klicke, worauf sich ein Auswahlmenü für diverse Formularelemente öffnet. Man wähle sich z.B. "Schaltfläche" aus, und bringe die Maus in die Wunschzelle, klicke die Maus an und ziehe mit gehaltener Maustaste das Fadenkreuz auseinander zu einem Rechteck in gewünschter Größe. Durch nochmaliges Anklicken von "Entwurfsmodus an/aus" ist das Commandbutton mit voreingestelltem Text "Schaltfläche" und voreingestellter mausgrauer Farbe angelegt. Bei bereits vorhandenen Commandbuttons wird der Titel indiziert "Schaltfläche1, Schaltfläche2, usw."
Möchte man ein vorhandenes Commandbutton bearbeiten, so kann man es mit der rechten Maustaste anklicken und dann im Auswahlmenü "Kontrollfeld" anklicken. Nachfolgend können die Eigenschaften dieser Schaltfläche im Menü "Eigenschaften: Schaltfläche" geändert werden.
Unterschiede zwischen den MakrosprachenAlle sprechen von Skriptsprachen und der eine meint Javascript, der andere JScript. Hier aber reden alle von einer Makrosprache Basic und leider sind es zwei paar unterschiedliche Schuhe, die manchmal ähnlichbezeichnete Elemente, ein anderes mal völlig andere programmsprachliche Elemente aufweisen.
Gut fand ich, dass Prof.Gutz in seinem CurTiPot ein Makro namens "pH_Copy_pKas" hat. Bereits beim ersten ausführbaren Programmelement "Range("AA3:AG10").Select" oder einem alternativen Element "Range("K3").Select" versteht man sofort, was gemeint ist. Aber für Staroffice ist es ein unbekanntes Etwas.
Mit Hilfe der Internet-Recherche findet man leicht, dass Excel die Makroprogrammsprache VisualBasic (VBA) benutzt, Staroffice jedoch folgende Programmsprachsynonyme "StarBasic", "Staroffice Basic", "Staroffice Calc", "Open Office Basic", "OO Basic" oder "Calc Basic" bevorzugt.
Man kann die VBA-Programmteile mit einem Computersprachkonvertierungsprogramm in "OO Basic"-Programmteile übersetzen. Allerdings ist hierbei die gleiche Vorsicht wie bei den Übersetzungsautomaten für "richtige Menschensprachen" angebracht (Lit. "vba2oo-Konvertierung").
Wo kann man Macros bei Staroffice lesen, abändern, schreiben, übersetzen, testweise ausführenHierzu klicke man "Extras / Makros / Makro" an und gelangt in ein Auswahlmenü "Makro". Unter dem Makroname könnte z.B. "HelloWorldHalloWelt" stehen. Dieses weiter unten beschriebene Mustermakro könnte z.B. für das Tabellenblatt ("Sheet" (engl.)) "Tabelle1" angelegt worden sein, deren Auswahl bei Staroffice über "Fußreiter" oder "Fußbutton" erfolgt. Würde man "Tabelle1" z.B. in "_pH_calc" umbenennen, so würde "HelloWorldHalloWelt" ein "Makros aus" dem Tabellenblatt "_pH_calc" sein. So aber ist "HelloWorldHalloWelt" ein Makro aus "Tabelle1", wie es auch im rechten unteren Menüfenster "Vorhandene Makros in: Tabelle1" dokumentiert ist. Falls noch nicht farblich hervorgehoben, kann man das Beispielmakro dort durch Anklicken auf "HelloWorldHalloWelt" auswählen und klicke danach auf den Button "Bearbeiten". Es öffnet sich nun ein separates Fenster zum Lesen oder zur Bearbeitung eines Makros.
Beispiel eines sicheren Staroffice-MakrosNachdem geklärt ist, in welcher Makro-Programmsprache die Staroffice-Makros laufen, möchte man ja mal ein Erfolgserlebnis haben. Hierzu bietet sich an, ein von mir für Staroffice7(Product Update1) getestetes Makro mit einer Formulartaste zu verknüpfen. Die Firma Sun hat hierzu eine online-Dokumentation publiziert (Lit.: Staroffice Basic Programmhandbuch)
Sub HelloWorldHalloWelt
rem mit linker Maustaste "Formularfunktionen anzeigen", dann "Formular-Navigator" anklicken
rem mit rechten Maustaste "CommandButton / Eigenschaften" anklicken
rem im Menü "Eigenschaften: Schaltfläche" mit der linken Maustaste den Reiter "Ereignisse" anklicken
rem dort mit der linken Maustaste in Zeile "Maustaste gedrückt" den Auswahlbutton anklicken
rem im Menü "Makro zuweisen" ins Auswahlfeld "Makros" gehen und sich gegebenenfalls durch Anklicken von "+" sein MymacroMeinmakro anzeigen lassen,
rem dann z.B. dieses MymacroMeinmakro "HelloWorldHalloWelt" anklicken
rem im Menü "Makro zuweisen" die ButtonSchalter "Zuweisen", dann "OK" anklicken
rem mit linker Maustaste "Formularfunktionen anzeigen" erneut anklicken und dadurch Anzeigefunktion ausschalten;
rem "Datei / Speichern" anklicken;
rem gegebenenfalls "Datei / Neu Laden", dann "Makros ausführen" anklicken
Rem
Rem Beispielvorlage:
Rem
Rem Sub HelloWorld
Rem Dim MyVar as String
Rem MyVar = "Hello World"
Rem MsgBox MyVar,0
Rem End Sub
Rem
Dim MyVar1, MyVar2 as String
MyVar1 = "Hello World"
MyVar2 = "Hallo Welt"
MyVar = MyVar1+"! "+MyVar2+"!"
MsgBox MyVar,0
End Sub
| Makroelement | hier im Beitrag | in Staroffice
|
|---|
| Kommentar | graue Hintergrundfarbe schwarze Textfarbe | graue Textfarbe weiße Hintergrundfarbe
| | Variable | grüne Hintergrundfarbe schwarze Textfarbe | grüne Textfarbe weiße Hintergrundfarbe
| Konstante, String | rote Hintergrundfarbe schwarze Textfarbe | rote Textfarbe weiße Hintergrundfarbe | Das sollte für's erste reichen.
Mein nächstes Anliegen wird sein, den VBA-Code (z.B. "Range(...).select") verstehen zu lernen, um sie als OO-Code in Staroffice implementieren zu können. Ausschalten! (dp) (4,35h)
Adminbereich
| Diese Seite bookmarken
| Weitersagen |
|
 |
| < | Februar 2008 | > | | So | Mo | Di | Mi | Do | Fr | Sa |
|