BEHAVIOR "Diese Funktion prⁿft jedes Zeichen, um zu gewΣhrleisten, da▀ es im Bereich (A-Z) bzw. (a-z) liegt."
CATEGORIES Data
{
to get isStringAlpha TestZeichenfolge
alphabet = "aΣbcdefghijklmno÷pqrs▀tuⁿvwxyz"
step i from 1 to charcount(TestZeichenfolge)
if char i of TestZeichenfolge is not in alphabet
return FALSE
end if
end step
return TRUE
end isStringAlpha
}
SCRIPT "Finden des Offset eines Elements"
BEHAVIOR "Eine schnelle Methode, den Offset eines Elements in einer Liste zu finden."
CATEGORIES Utilities
{
to get ElementOffset elmt,lst
step i from 1 to itemcount(lst)
pop lst
if elmt = it
return i
end if
end step
return 0
end ElementOffset
}
SCRIPT "Durchsuchen einer Liste nach einem Element"
BEHAVIOR "Diese Funktion prⁿft, ob ein Element in einer Liste vorhanden ist."
CATEGORIES Werkzeuge
{
to get ElmntInListe xelmt,xliste
while itemcount(xliste) > 0 and item 1 of xliste <> xelmt
pop xliste
end while
if item 1 of xliste = xelmt
return true
else
return false
end if
end ElmntInListe
}
ACTION "AuswΣhlen einer Textzeile von Text"
BEHAVIOR "Eine Textzeile in einem Listenfeld mit Einfach- oder Mehrfachauswahl auswΣhlen."
CATEGORIES Text
ARG Feldname is "textField" help "Namen des Felds hier angeben."
ARG Feldzeile is "3" help "Nummer der auszuwΣhlenden Textzeile hier angeben."
{
set focus to field "$$Feldname"
set selectedTextLines of field "$$Feldname" to $$Feldzeile
}
ACTION "Abbrechen der Auswahl einer Textzeile"
BEHAVIOR "Bricht die Textauswahl in einem Listenfeld mit Einfach- oder Mehrfachauswahl ab."
CATEGORIES Text
ARG Feldname is "textField" help "Namen des Felds hier angeben."
{
if selectedTextLines of field "$$Feldname" <> null
set selectedTextLines of field "$$Feldname" to null
end if
}
ACTION "▄bertragen von markierten Text in das Befehlsfenster"
BEHAVIOR "▄bertrΣgt den momentan markierten Text in das Befehlsfenster"
CATEGORIES Text
{
-- Ein guter Ort fⁿr dieses Skript ist in einer buttonDoubleClick-
-- Routine im Feld selbst
get selectedText
put it
}
ACTION "Anzeigen von markierten Text im request-Dialogfeld"
BEHAVIOR "Zeigt den Text der markierten Textzeilen eines Listenfelds in einem request-Dialogfeld an"
CATEGORIES Text
ARG Feldname is "textField" help "Namen des Felds hier angeben."
{
local temp1,temp2
set temp2 to null
get selectedTextLines of field $$Feldname
put it into temp1
step i from 1 to itemCount (temp1)
put textLine (item i of temp1) of text of field $$Feldname & CRLF\
after temp2
end step
request temp2
}
ACTION "L÷schen von markierten Text"
BEHAVIOR "L÷scht den markierten Text im Listenfeld. Legen Sie diese Behandlungsroutine im Skript des Listenfelds ab"
CATEGORIES Text
{
if selectedTextState <> NULL
set startChar to item 1 of selectedTextState
set endChar to item 2 of selectedTextSTate
clear chars startChar to endChar + 2 of text of self
end if
}
SCRIPT "Einrichten von normalem Tabulatorverhalten"
BEHAVIOR "Erm÷glicht dem Benutzer, Tabulatoren wie normal zu setzen, statt den Fokus zu einem anderen Objekt zu verschieben."
CATEGORIES Text
{
--Legen Sie diese Behandlungsroutine in einer Seite oder einem Hintergrund ab
to handle keyDown Taste,istUmschalt,istCtrl
if Taste is TabTaste and istUmschalt is FALSE and istCtrl is FALSE
send keydown TabTaste, FALSE, TRUE
else
forward
end if
end keyDown
}
SCRIPT "Entfernen eines Zeichens aus einer Zeichenfolge"
BEHAVIOR "Diese Funktion entfernt alle Instanzen des angegebenen Zeichens aus der angegebenen Zeichenfolge."
CATEGORIES Daten
{
-- Entfernt alle Vorkommen von Zeich aus ZFolge
to get L÷schZeich Zeich,ZFolge
set chrLoc to offset(Zeich,ZFolge)
while chrLoc > 0
clear char chrLoc of ZFolge
set chrLoc to offset(Zeich,ZFolge)
end while
return ZFolge
end L÷schZeich
}
SCRIPT "Entfernen nachfolgendener Leerzeichen aus einer Zeichenfolge"
BEHAVIOR "Diese Funktion entfernt alle nachfolgenden Leerzeichen sowie andere unerwⁿnschten Zeichen."
CATEGORIES Daten
{
-- Entfernt nachfolgende Leerzeichen, Tabulatoren und CRLFs
to get LZEntf ZFolge
local ZFEntfernen
set ZFEntfernen to space & crlf & tab
while charcount(ZFolge) > 0 and last char of ZFolge is in ZFEntfernen
clear last char of ZFolge
end while
return ZFolge
end LZEntf
}
SCRIPT "Ermitteln den Wochentags anhand des Datums"
BEHAVIOR "Liefert den Wochentag eines beliebigen Tags nach 1.1.1700. Erfordert die Funktion isLeapYear() ('Ermittelt, ob das Jahr ein Schaltjahr ist')"
CATEGORIES Datumsfunktionen
{
-- Liefert den Wochentag eines beliebigen Tages nach dem 1.1.1700:
-- Hinweis: erfordert eine vollstΣndige Jahresangabe. Beispiel: get weekDay("1.1.1993")
-- Erfordert au▀erdem die nachstehende isLeapYear()-Funktion
to get Wochentag pDatum
-- Wandelt das Datum in eine Liste um
format date pDatum as "m,d,y" from "d.m.y"
set m to item 1 of pDatum
set d to item 2 of pDatum
set y to item 3 of pDatum
-- Die folgende Liste (1 Element pro Monat) enthΣlt die Tagesanzahl,
-- die seit dem ersten Tage des Monats vergangen sind.
set days to "0,31,59,90,120,151,181,212,243,273,304,334"
-- Setzt AnzahlTage auf die Tagesanzahl, die seit dem 1.1.1700 verstrichen sind
set AnzahlTage to (y-1700) div 4-(y-1700) div 100 +(y-1600) \
div 400 + 365 * (y - 1700) + item m of days + d -1
-- Liefert ein Datum, das n Tage von einem angegebenen Datum ist.
-- ▄bergeben Sie als ersten Parameter eine Datumsangabe, gefolgt von
-- ganzen Zahl (positiv oder negativ), die die Tagesanzahl darstellt, die
-- zum Originaldatum hinzuaddiert bzw. davon abgezogen werden soll
--
-- Beispiel: Ermittelt das Datum, das 10 Tage vor dem aktuellen Datum war
-- x auf neuesDatum(sysdate,-10) setzen
--
to get neuesDatum StartDatum, days
format date StartDatum as "seconds"
increment StartDatum by (days*24*60*60)
format date StartDatum as sysdateformat from "seconds"
return StartDatum
end neuesDatum
}
ACTION "Abtrennen der Hilfsmittelpalette"
BEHAVIOR "Dieses Skript wechselt nach dem Zeichnen eines Objekts Direkt zum Auswahl-Hilfsmittel zurⁿck, statt beim ausgewΣhlten Zeichenhilfsmittel zu bleiben."
HANDLER Make
CATEGORIES Werkzeuge
{
-- Dieses Skript sollte auf Buchebene oder in einem Systembuch plaziert werden
forward
set sysTool to "Select"
}
ACTION "Anzeigen des Eigenschaften-Dialogfelds beim Erstellen eines Objekts"
BEHAVIOR "Dieses Skript veranla▀t ToolBook, das Eigenschaften-Dialogfeld eines Objekts anzuzeigen, unmittelbar nachdem das Objekt erstellt wurde."
HANDLER Make
CATEGORIES Werkzeuge
{
-- Dieses Skript sollte auf Buchebene oder in einem Systembuch implementiert werden
forward
send properties to target
}
SCRIPT "Ermitteln des aktuellen Pfads"
BEHAVIOR "Dieses Skript ermitteln die aktuellen DOS-Pfadeinstellung."
CATEGORIES DOS
{
to get PfadErmitteln
--Verknⁿpft die TB30dos dll
linkDLL sysToolBookDirectory & "tb30DOS.DLL"
STRING getDOSEnvironmentString (STRING)
end linkDLL
--Ruft die Pfadliste ab
set aktuellerPfad to getDOSEnvironmentString ("PATH")
return aktuellerPfad
unlinkDLL sysToolBookDirectory & "tb30DOS.DLL"
end PfadErmitteln
}
SCRIPT "Extrahieren des Buchnamens ohne Pfad"
BEHAVIOR "Findet den Namen des Buchs ohne den zugeh÷rigen Pfadnamen"
CATEGORY DOS
{
to get Buchname
nm = name of this book
while "\" is in nm
clear first char of nm
end while
return nm
end Buchname
}
SCRIPT "Ermitteln des aktuellen Laufwerksbuchstabens"
BEHAVIOR "Diese Funktion prⁿft die Gⁿltigkeit des Pfadnamens und liefert den Laufwerksbuchstaben aus einem vollstΣndigen Pfadnamen."
CATEGORIES DOS
{
to get LaufwerkErmitteln Pfad
if char 2 of Pfad is ":"
--Mit TB30dos dll verknⁿpfen und die aktuelle Laufwerksliste abfragen
linkDLL sysToolBookDirectory & "tb30dos.dll"
STRING getDriveList(STRING)
end linkDLL
get getDriveList("")
unlinkdll sysToolBookDirectory & "tb30dos.dll"
--Prⁿft, ob das Laufwerk in der Liste enthalten ist
if char 1 of Pfad is in it
return upperCase(char 1 of Pfad)
end if
end if
return NULL
end LaufwerkErmitteln
}
SCRIPT "Ermitteln des freien Plattenspeichers auf einem Laufwerk"
BEHAVIOR "Liefert den verfⁿgbaren Plattenspeicher auf dem DatentrΣger in einem bestimmten Laufwerk."
CATEGORIES DOS
{
to get PlattenspeicherFrei Laufwerk
local LONG verfⁿgbarerPS
--Verknⁿpft TB30dos dll
linkDLL sysToolBookDirectory & "tb30dos.dll"
LONG getFreeDiskSpace(STRING)
end linkDLL
set verfⁿgbarerPS to getFreeDiskSpace(Laufwerk)
unlinkDLL sysToolBookDirectory & "tb30dos.dll"
return verfⁿgbarerPS
end PlattenspeicherFrei
}
SCRIPT "Durchsuchen des Pfads nach einer Datei"
BEHAVIOR "Dieses Skript ermittelt, ob sich eine Datei im Pfad befindet."
CATEGORIES DOS
{
to get DateiInPfad Dateiname
--Verknⁿpft TB30dos dll
linkDLL sysToolBookDirectory & "tb30dos.dll"
INT fileExists (STRING)
STRING getDOSEnvironmentString (STRING)
end linkDLL
--Holt die Pfadliste
set aktPfadListe to getDOSEnvironmentString ("PATH")
--L÷scht 'Path=' am Anfang der Pfadliste
get offset("=",aktPfadListe)
if it > 0 then
clear chars 1 to it of aktPfadListe
end if
--Wandelt die Pfadliste in eine Elementliste um
get offset(";",aktPfadListe)
while it > 0
set char it of aktPfadListe to ","
get offset(";",aktPfadListe)
end while
--Durchsucht die Liste Pfad fⁿr Pfad
while aktPfadListe is not NULL
pop aktPfadListe into PfadPrⁿfen
if last char of PfadPrⁿfen is not "\"
put "\" after PfadPrⁿfen
end if
-- Liefert die erste Position im Pfad, an der die Datei gefunden wurde.
if fileExists(PfadPrⁿfen & Dateiname) = 1
unlinkDLL sysToolBookDirectory & "tb30dos.dll"
return PfadPrⁿfen
end if
end while
--Die Datei wurde im Pfad nicht gefunden
unlinkDLL sysToolBookDirectory & "tb30dos.dll"
return null
end DateiInPfad
}
SCRIPT "Durchsuchen eines Verzeichnisses"
BEHAVIOR "Liefert eine Liste der Dateien im angegebenen Verzeichnis, die mit dem angegebenen Dateinamen ⁿbereinstimmen."
CATEGORY DOS
{
--
-- Diese Funktion liefert eine Liste aller Dateien im angegebenen
--Verzeichniszweig, die mit dem angegebenen Dateinamen
--ⁿbereinstimmen. Diese Funktion erfordert die nachfolgende
--Behandlungsroutine VerzDurchsuchen.
--
-- Parameter:
--
-- StartVerz: ein Pfad, den die Funktion nach einer angegebenen Datei
--durchsucht. Die Funktion durchsucht auch alle untergeordneten
--Verzeichnisse von StartVerz.
--
-- Dateiname: eine Zeichenfolge, die den Dateinamen angibt; kann auch
-- Platzhalterzeichen enthalten
--
-- Liefert eine durch CRLF getrennte Dateienliste oder eine negative Zahl, falls das angegebene Startverzeichnis ungⁿltig war.
--
-- Beispiel:
--
-- Zum Abrufen einer Liste aller .WAV-Dateien auf Laufwerk C: geben Sie folgendes ein:
-- get LWDurchsuchen("c:\","*.wav")
--
to get LWDurchsuchen StartVerz,Dateiname
system DateienGefunden,VerzZΣhlen
clear DateienGefunden
VerzZΣhlen = 0
linkdll "tb30dos.dll"
INT fileExists (STRING)
STRING getDirectoryOnlyList (STRING,STRING)
STRING getFileOnlyList (STRING,STRING,STRING)
STRING getFileAttributes (STRING)
end
-- Wenn der Pfad nicht das Stammverzeichnis ist, wird der SchrΣgstrich
--am Ende entfernt:
if last char of StartVerz is "\" and \
char (charcount(StartVerz)-1) of StartVerz is not ":"
BEHAVIOR "Ermittelt die Position des Mittelpunkts eines Objekts."
CATEGORIES Werkzeuge
{
to get ObjektMitte obj
if obj is null
set obj to target
end
get bounds of obj
set r to round(average (item 2 of it, item 4 of it))
push round(average (item 1 of it, item 3 of it)) onto r
return r
end ObjektMitte
}
SCRIPT "Zentrieren eines Objekts an einer bestimmten Position"
BEHAVIOR "Legt den Mittelpunkt eines Objekts auf eine bestimmte Position fest."
CATEGORIES Werkzeuge
{
to set ObjektMitte to Pos
get bounds of target
move target to (item 1 of Pos - (item 3 of it - item 1 of it) div 2),\
(item 2 of Pos - (item 4 of it - item 2 of it) div 2)
end ObjektMitte
}
SCRIPT "Vollbild-Anwendung"
BEHAVIOR "Pa▀t die Anwendung dem Fenster gr÷▀enmΣ▀ig an (gerΣteunabhΣngig), ohne das Fenster zu maximieren"
CATEGORIES Werkzeuge
ARG Fenst oneOf "0,4" is "0" help "Mit 4 k÷nnen Sie den Rahmen ⁿber den Fenst hinaus verschieben. Mit der Standardeinstellung bleiben sie unverΣndert."