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 03.03.2008 13:34:32 Uhr Funktionierende Starbasic-Makros Teil2 Fortsetzung vom 26.2.2008
Im ersten Teil habe ich mich geärgert, dass die Basic-Messagebox (analog zu Javascripts Alert-InfoBox) bei der Ausgabe von Methoden und Eigenschaften so mit Information überquilt, dass nicht alle Methoden auf dem PC-Monitor wiedergegeben werden können.
Der Grund ist, dass, um die Box zu verschieben, nur die oberste Zeile und nicht der komplette Bereich der Messagebox mit dem Mauszeiger angeklickt werden kann.
Im Dokument von Andrew Pitonayak) fand ich eine Idee, die ich modifiziert habe, damit sie auf meinem PC läuft. Dabei finde ich es wertvoll zu erfahren, wie oft ich noch auf den OK-Button klicken muss, d.h. wieviele Messageboxen mich noch von der übrigen Tagesarbeit aufhalten.
Erstmals probieren wollte ich, ob mir der Aufruf von Prozeduren oder Funktionen gelingt: Sub ZeigeAlleEigenschaften
DIM oObj As Object
DIM sObjDbgList As string
oObj = createUnoService("com.sun.star.sheet.SpreadsheetDocument")
sObjDbgList = oObj.DBG_Properties
jlast = BoxenMaxanzahlErmitteln(sObjDbgList)
AlleMsgBoxenAusgeben(sObjDbgList,jlast)
End Sub
Anm.: Die hellgrün markierte Dienste-Bezeichnung kann man sich bei Bedarf manuell abändern. Die in dieser Prozedur aufgerufene Funktion und Prozedur stehen hinter der nachfolgenden Prozedur:
Sub ZeigeAlleMethoden
DIM oObj As Object
DIM sObjDbgList As string
DIM jlast As Integer
oObj = createUnoService("com.sun.star.sheet.SpreadsheetDocument")
sObjDbgList = oObj.DBG_methods
jlast = BoxenMaxanzahlErmitteln(sObjDbgList)
AlleMsgBoxenAusgeben(sObjDbgList,jlast)
End Sub
Anm.: Die hellgrün markierte Dienste-Bezeichnung kann man sich bei Bedarf manuell abändern.
Hier im Anschluss folgt die in beiden obenstehenden Prozeduren aufgerufene Funktion BoxenMaxanzahlErmitteln und danach die soeben benutzte Prozedur AlleMsgBoxenAusgeben. Solange beide (Funktion und Prozedur) unabhängig voneinander sind, ist die Reihenfolge ihrer Auflistung egal: Function BoxenMaxanzahlErmitteln(sObjDbgList As String) As Integer
DIM sMsgBox As string
DIM i, j, jlast As Integer
DIM fs, ep As Integer
fs = 1
rem EOL = FALSE
j=0
While fs <= Len(sObjDbgList)
j=j+1
rem sMsgBox = "Blatt " & j & " von " & jlast & ":"& Chr$(13)
sMsgBox = ""
For i = 0 to 15
ep = InStr(fs, sObjDbgList, ";")
if ep = 0 then
ep = Len(sObjDbgList)
endif
sMsgBox = sMsgBox & Mid$(sObjDbgList, fs, ep - fs) & Chr$(13)
fs = ep + 1
Next i
rem MsgBox sMsgBox
Wend
BoxenMaxanzahlErmitteln=j
end function
Anm.: Wenn sich jemand den Namen der Funktion abändert, darf er nicht vergessen, auch den gleichnamigen Übergabewert am unteren Ende der Funktion umzubenennen.
Sub AlleMsgBoxenAusgeben(sObjDbgList As String,jlast As Integer)
fs = 1
j=0
While fs <= Len(sObjDbgList)
j=j+1
sMsgBox = "MsgBox " & j & " von " & jlast & ":"& Chr$(13)
rem sMsgBox = ""
For i = 0 to 15
ep = InStr(fs, sObjDbgList, ";")
if ep = 0 then
ep = Len(sObjDbgList)
endif
sMsgBox = sMsgBox & Mid$(sObjDbgList, fs, ep - fs) & Chr$(13)
fs = ep + 1
Next i
MsgBox sMsgBox
Wend
rem MaxBlattanzahlErmitteln=j
end Sub
Anm.: Diese Prozedur ähnelt der vorangehenden Funktion. Deswegen habe ich die unnötigen Codepassagen jeweils mit Rem blockiert.
Gut finde ich, dass diese beiden Zeige-Prozeduren in Starbasic ohne Parameter-Übergabe auskommen, weil sonst die Prozedur nicht läuft, wenn man besonders als Programmier-Anfänger nicht weiss, welche Eigenschaften und Methoden diese Parameter gehorchen müssen. Z.B. kenne ich zur Zeit noch garnicht alle Dienste-Bezeichnungen.
Und das Wichtigste zum Schluss: Bei der Anordnung von Basic-Prozeduren und Funktionen ist darauf zu achten, dass die aufgerufenen Funktion oder Prozedur hinter der aufrufenden Funktion oder Prozedur stehe. Die Pascal-Programmierer wissen, dass es dort genau umgekehrt ist.
Nun ist aller "Ärger von gestern" verflogen. (dp) (1,85h)
Nachtrag_1 am 3.3.2008 um 23.45Uhr: Hier hatte ich wieder eine gute Idee, um von den ellenlangen verschachtelten Programmcodizes
If (oSheet.getCellRangeByName("myCell").getCellByPosition(0,0).String = "myString") then
Rem MyBasic-MacroCode-Sniplett
End If
...wegzukommen. Hierzu habe ich eine logische Funktion wie folgt kreiert:
Function existStringAtSheetnameCellname (Suchstring As String,Sheetname As String,Zellname As String) As Boolean
Dim oSheet as Object
existStringAtSheetnameCellname=false
rem MsgBox "Suchstring =: " &Suchstring,0
rem MsgBox "Sheetname =: " &Sheetname,0
rem MsgBox "Zellname =: " &Zellname,0
rem
if Sheetname="" then
oSheet = ThisComponent.CurrentController.ActiveSheet
else
oSheet = ThisComponent.Sheets().getByName(Sheetname)
end if
rem
If (oSheet.getCellRangeByName(Zellname).getCellByPosition(0,0).String = Suchstring) Then
existStringAtSheetnameCellname=True
end If
End Function
Ein möglicher - VBA-Code:
IF Range("myCellname").Value <> "myString" THEN REM ...my VBA-Codesniplett ... ENDIF lässt so leichter umschreiben in einen ...
- StarBasic-Code:
IF NOT existStringAtSheetnameCellname("myString","","myCellname") Then REM ... my Starbasic-Codesniplett ... END IF Ob mir ähnliche Idee auch bei Value (für INTEGER, DOUBLE, SINGLE ?, REAL ?, COMPLEX ?) gelingt, muss noch getestet werden. (dp) (0,25h)
Nachtrag_2 am 4.3.2008 um 20.45Uhr: Bei meiner Vorlage (Excel-Programm CurTiFit) kann ich nicht überprüfen, ob der analoge Code so funktionieren soll: - VBA-Code:
sub testefeld
dim testfeld(3) as double
testfeld(1)=1
testfeld(2)=-10
testfeld(3)=33000
msgbox "Testfeld(1; 2; 3) = ("+testfeld(1)+" ; "+testfeld(2)+" ; "+testfeld(3)+")"
call test1
end sub
sub test1()
msgbox "Test1: Testfeld(1; 2; 3) = ("+testfeld(1)+" ; "+testfeld(2)+" ; "+testfeld(3)+")"
end sub Unter meinem Staroffice funktioniert es aber wie folgt:- StarBasic-Code:
sub testefeld
dim testfeld(3) as double
testfeld(1)=1
testfeld(2)=-10
testfeld(3)=33000
msgbox "Testfeld(1; 2; 3) = ("+testfeld(1)+" ; "+testfeld(2)+" ; "+testfeld(3)+")"
call test1(testfeld())
end sub
sub test1(testfeld as double)
REM dim testfeld(3) as double
msgbox "Test1: Testfeld(1; 2; 3) = ("+testfeld(1)+" ; "+testfeld(2)+" ; "+testfeld(3)+")"
end sub Würde ich den VBA-Code einfach übernehmen oder aber zusätzlich die REM-Sequenz entfernen, dann zeigt die Messagebox in der aufgerufenen Prozedur nur Nullen als Werte. (dp) (0,25h)
Adminbereich
| Diese Seite bookmarken
| Weitersagen |
|
 |
| < | März 2008 | > | | So | Mo | Di | Mi | Do | Fr | Sa |
|