home *** CD-ROM | disk | FTP | other *** search
/ CD-ROM Magazin 1995 July/August / CDROMMAG.ISO / asym / prg / mtb30 / utils.ats < prev    next >
Encoding:
Text File  |  1994-10-03  |  17.0 KB  |  551 lines

  1. SCRIPT "Automatisches Hinzufⁿgen von Bildlaufleisten"
  2. BEHAVIOR "In einem Feld ablegen; das Feld pa▀t seine Bildlaufleisten automatisch an"
  3. CATEGORY Text
  4. {
  5. --Sie mⁿssen die benutzerdefinierte Botschaft an irgendeiner Stelle senden, z.B. beim 
  6. --enterPage-Ereignis
  7. to handle AutoBildlaufleiste
  8.     if my textOverflow > 0 or my scroll > 0
  9.         set my borderStyle to scrolling
  10.     else
  11.         set my borderStyle to rectangle
  12.     end
  13. end
  14. }
  15.  
  16. ACTION    "Anzeigen des Befehlsfensters"
  17. BEHAVIOR    "Dieses einzeilige Skript ruft das Befehlsfenster auf, ohne das Menⁿelement Befehl oder Umschalt+F3 zu verwenden."
  18. CATEGORY    Debug
  19. {
  20. --to handle buttonClick     -- empfohlene Behandlungsroutine
  21.     show commandWindow
  22. --end
  23. }
  24.  
  25. ACTION    "Warnton"
  26. BEHAVIOR    "L÷st den Warnton einmal aus."
  27. CATEGORY    Multimedia
  28. {
  29.   beep 1
  30. }
  31.  
  32. SCRIPT    "Prⁿfen nach Zeichen"
  33. BEHAVIOR "Diese Funktion prⁿft jedes Zeichen, um zu gewΣhrleisten, da▀ es im Bereich (A-Z) bzw. (a-z) liegt."
  34. CATEGORIES Data
  35. {
  36. to get isStringAlpha TestZeichenfolge
  37.     alphabet = "aΣbcdefghijklmno÷pqrs▀tuⁿvwxyz"
  38.     step i from 1 to charcount(TestZeichenfolge)
  39.         if char i of TestZeichenfolge is not in alphabet
  40.             return FALSE
  41.         end    if
  42.     end    step
  43.     return TRUE
  44. end isStringAlpha
  45. }
  46.  
  47.  
  48. SCRIPT    "Finden des Offset eines Elements"
  49. BEHAVIOR    "Eine schnelle Methode, den Offset eines Elements in einer Liste zu finden."
  50. CATEGORIES     Utilities
  51. {
  52. to get ElementOffset elmt,lst
  53.     step i from 1 to itemcount(lst)
  54.         pop lst
  55.         if elmt = it
  56.             return i
  57.         end    if
  58.     end step
  59.     return 0
  60. end ElementOffset
  61. }
  62.  
  63. SCRIPT    "Durchsuchen einer Liste nach einem Element"
  64. BEHAVIOR    "Diese Funktion prⁿft, ob ein Element in einer Liste vorhanden ist."
  65. CATEGORIES     Werkzeuge
  66. {
  67. to get ElmntInListe xelmt,xliste
  68.     while itemcount(xliste) > 0 and item 1 of xliste <> xelmt
  69.         pop xliste
  70.     end while
  71.     if item 1 of xliste = xelmt
  72.         return true
  73.     else
  74.         return false
  75.     end    if
  76. end ElmntInListe
  77. }
  78.  
  79. ACTION    "AuswΣhlen einer Textzeile von Text"
  80. BEHAVIOR    "Eine Textzeile in einem Listenfeld mit Einfach- oder Mehrfachauswahl auswΣhlen."
  81. CATEGORIES    Text
  82. ARG    Feldname     is "textField"    help    "Namen des Felds hier angeben."
  83. ARG    Feldzeile     is "3"    help    "Nummer der auszuwΣhlenden Textzeile hier angeben."
  84. {
  85.     set focus to field "$$Feldname"
  86.     set selectedTextLines of field "$$Feldname" to $$Feldzeile
  87. }
  88.  
  89. ACTION    "Abbrechen der Auswahl einer Textzeile"
  90. BEHAVIOR    "Bricht die Textauswahl in einem Listenfeld mit Einfach- oder Mehrfachauswahl ab."
  91. CATEGORIES    Text
  92. ARG    Feldname    is    "textField"    help    "Namen des Felds hier angeben."
  93. {
  94.     if selectedTextLines of field "$$Feldname" <> null
  95.         set selectedTextLines of field "$$Feldname" to null
  96.     end if
  97. }
  98.  
  99. ACTION    "▄bertragen von markierten Text in das Befehlsfenster"
  100. BEHAVIOR    "▄bertrΣgt den momentan markierten Text in das Befehlsfenster"
  101. CATEGORIES     Text
  102. {
  103. -- Ein guter Ort fⁿr dieses Skript ist in einer buttonDoubleClick-
  104. -- Routine im Feld selbst
  105.     get selectedText 
  106.     put it
  107. }
  108. ACTION    "Anzeigen von markierten Text im request-Dialogfeld"
  109. BEHAVIOR    "Zeigt den Text der markierten Textzeilen eines Listenfelds in einem request-Dialogfeld an"
  110. CATEGORIES    Text
  111. ARG    Feldname    is    "textField"    help    "Namen des Felds hier angeben."
  112. {
  113.     local temp1,temp2
  114.     set temp2 to null
  115.     get selectedTextLines of field $$Feldname
  116.     put it into temp1
  117.     step i from 1 to itemCount (temp1)
  118.         put textLine (item i of temp1) of text of field $$Feldname & CRLF\
  119.          after temp2
  120.     end step
  121.     request temp2
  122. }
  123.  
  124. ACTION    "L÷schen von markierten Text"
  125. BEHAVIOR    "L÷scht den markierten Text im Listenfeld. Legen Sie diese Behandlungsroutine im Skript des Listenfelds ab"
  126. CATEGORIES    Text
  127. {
  128.     if selectedTextState <> NULL
  129.         set startChar to item 1 of selectedTextState
  130.         set endChar to item 2 of selectedTextSTate
  131.         clear chars startChar to endChar + 2 of text of self  
  132.     end if
  133. }
  134.  
  135. SCRIPT    "Einrichten von normalem Tabulatorverhalten"
  136. BEHAVIOR    "Erm÷glicht dem Benutzer, Tabulatoren wie normal zu setzen, statt den Fokus zu einem anderen Objekt zu verschieben."
  137. CATEGORIES     Text
  138. {
  139. --Legen Sie diese Behandlungsroutine in einer Seite oder einem Hintergrund ab
  140. to handle keyDown Taste,istUmschalt,istCtrl
  141.     if Taste is TabTaste and istUmschalt is FALSE and istCtrl is FALSE
  142.         send keydown TabTaste, FALSE, TRUE
  143.     else
  144.         forward
  145.     end if
  146. end    keyDown
  147. }
  148.  
  149. SCRIPT    "Entfernen eines Zeichens aus einer Zeichenfolge"
  150. BEHAVIOR    "Diese Funktion entfernt alle Instanzen des angegebenen Zeichens aus der angegebenen Zeichenfolge."
  151. CATEGORIES    Daten
  152. {
  153. -- Entfernt alle Vorkommen von Zeich aus ZFolge
  154. to get L÷schZeich Zeich,ZFolge
  155.     set chrLoc to offset(Zeich,ZFolge)
  156.     while chrLoc > 0
  157.         clear char chrLoc of ZFolge
  158.         set chrLoc to offset(Zeich,ZFolge)
  159.     end while
  160.     return ZFolge
  161. end L÷schZeich 
  162. }
  163.  
  164. SCRIPT    "Entfernen nachfolgendener Leerzeichen aus einer Zeichenfolge"
  165. BEHAVIOR    "Diese Funktion entfernt alle nachfolgenden Leerzeichen sowie andere unerwⁿnschten Zeichen."
  166. CATEGORIES    Daten
  167. {
  168. -- Entfernt nachfolgende Leerzeichen, Tabulatoren und CRLFs
  169. to get LZEntf ZFolge
  170.     local ZFEntfernen
  171.     set ZFEntfernen to space & crlf & tab
  172.     while charcount(ZFolge) > 0 and last char of ZFolge is in ZFEntfernen
  173.         clear last char of ZFolge
  174.     end    while
  175.     return ZFolge
  176. end LZEntf 
  177. }
  178.  
  179. SCRIPT    "Ermitteln den Wochentags anhand des Datums"
  180. BEHAVIOR    "Liefert den Wochentag eines beliebigen Tags nach 1.1.1700. Erfordert die Funktion isLeapYear() ('Ermittelt, ob das Jahr ein Schaltjahr ist')"
  181. CATEGORIES    Datumsfunktionen
  182. {
  183. -- Liefert den Wochentag eines beliebigen Tages nach dem 1.1.1700: 
  184. -- Hinweis: erfordert eine vollstΣndige Jahresangabe. Beispiel: get weekDay("1.1.1993")
  185. -- Erfordert au▀erdem die nachstehende isLeapYear()-Funktion
  186. to get Wochentag pDatum
  187.     -- Wandelt das Datum in eine Liste um
  188.     format date pDatum as "m,d,y" from "d.m.y"
  189.     set m to item 1 of pDatum 
  190.     set d to item 2 of pDatum 
  191.     set y to item 3 of pDatum 
  192.     -- Die folgende Liste (1 Element pro Monat) enthΣlt die Tagesanzahl,
  193.     -- die seit dem ersten Tage des Monats vergangen sind.
  194.     set days to "0,31,59,90,120,151,181,212,243,273,304,334" 
  195.     -- Setzt AnzahlTage auf die Tagesanzahl, die seit dem 1.1.1700 verstrichen sind
  196.     set AnzahlTage to (y-1700) div 4-(y-1700) div 100 +(y-1600) \
  197.      div 400 + 365 * (y - 1700) + item m of days + d -1 
  198.     if isLeapYear(y) and m <= 2 
  199.         decrement AnzahlTage by 1 
  200.     end if 
  201.     set n to  (AnzahlTage-2) mod 7 +1
  202.     return item n of \
  203.      "Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag" 
  204. end Wochentag
  205. }
  206.  
  207. SCRIPT    "Ermitteln der Tagesanzahl im Monat"
  208. BEHAVIOR    "Liefert die Tagesanzahl in einem Monat. Erfordert die Funktion isLeapYear() ('Ermittelt, ob das Jahr ein Schaltjahr ist')."
  209. CATEGORIES Datumsfunktionen
  210. {
  211. -- Funktion: TageImMonat(<Monat>,<vierstellige Jahresangabe>)
  212. -- Liefert die Tagesanzahl in einem Monat.   
  213. --
  214. -- HINWEIS: Diese Funktion erfordert eine vierstellige Jahresangabe.  
  215. -- Diese Funktion ruft die nachfolgend definierte Funktion isLeapYear() auf. 
  216. -- Dieser Funktionsaufruf ist erforderlich 
  217. --
  218. -- Beispiel: Um zu ermitteln, wie viele Tage Februar 1992 hatte, 
  219. -- setzen Sie x auf TageImMonat(2,1992) 
  220. --
  221. to get TageImMonat m,y 
  222.     if m <> 2 
  223.         return item m of "31,28,31,30,31,30,31,31,30,31,30,31" 
  224.     else 
  225.         if isLeapYear(y) 
  226.             return 29 
  227.         else 
  228.             return 28 
  229.         end if 
  230.     end if 
  231. end TageImMonat
  232. }
  233.  
  234. SCRIPT "Ermitteln, ob das Jahr ein Schaltjahr ist"
  235. BEHAVIOR "Liefert TRUE, wenn 'y' ein Schaltjahr ist; falls nicht, liefert FALSE."
  236. CATEGORIES Datumsfunktionen
  237. {
  238. -- HINWEIS: diese Funktion erfordert eine vierstellige Jahresangabe.
  239. --
  240. -- Beispiel:  Prⁿft, ob 1992 ein Schaltjahr war.
  241. -- leapYear(1992)
  242. to get isLeapYear y
  243.     if ((y mod 4 = 0 and y mod 100 <> 0) or (y mod 400 = 0))
  244.         return TRUE
  245.     else
  246.         return FALSE
  247.     end
  248. end    isLeapYear
  249. }
  250.  
  251. SCRIPT    "Ermitteln eines Datums"
  252. BEHAVIOR    "Liefert ein Datum, das n Tage von einem angegebenen Datum ist."
  253. CATEGORIES Datumsfunktionen
  254. {
  255.   -- Funktion: neuesDatum(<Originaldatum>,<Tagesanzahl>)
  256. --
  257. -- Liefert ein Datum, das n Tage von einem angegebenen Datum ist. 
  258. -- ▄bergeben Sie als ersten Parameter eine Datumsangabe, gefolgt von 
  259. -- ganzen Zahl (positiv oder negativ), die die Tagesanzahl darstellt, die 
  260. -- zum Originaldatum hinzuaddiert bzw. davon abgezogen werden soll
  261. --
  262. -- Beispiel:  Ermittelt das Datum, das 10 Tage vor dem aktuellen Datum war
  263. -- x auf neuesDatum(sysdate,-10) setzen
  264. --
  265. to get neuesDatum StartDatum, days
  266.     format date StartDatum as "seconds"
  267.     increment StartDatum by (days*24*60*60)
  268.     format date StartDatum as sysdateformat from "seconds"
  269.     return StartDatum
  270. end    neuesDatum
  271. }
  272.  
  273. ACTION "Abtrennen der Hilfsmittelpalette"
  274. BEHAVIOR "Dieses Skript wechselt nach dem Zeichnen eines Objekts Direkt zum Auswahl-Hilfsmittel zurⁿck, statt beim ausgewΣhlten Zeichenhilfsmittel zu bleiben."
  275. HANDLER     Make
  276. CATEGORIES    Werkzeuge
  277. {
  278. -- Dieses Skript sollte auf Buchebene oder in einem Systembuch plaziert werden
  279.     forward
  280.     set sysTool to "Select"
  281. }
  282.  
  283. ACTION "Anzeigen des Eigenschaften-Dialogfelds beim Erstellen eines Objekts"
  284. BEHAVIOR "Dieses Skript veranla▀t ToolBook, das Eigenschaften-Dialogfeld eines Objekts anzuzeigen, unmittelbar nachdem das Objekt erstellt wurde."
  285. HANDLER     Make
  286. CATEGORIES    Werkzeuge
  287. {
  288. -- Dieses Skript sollte auf Buchebene oder in einem Systembuch implementiert werden
  289.     forward
  290.     send properties to target
  291. }
  292.  
  293. SCRIPT    "Ermitteln des aktuellen Pfads"
  294. BEHAVIOR    "Dieses Skript ermitteln die aktuellen DOS-Pfadeinstellung."
  295. CATEGORIES DOS
  296. {
  297. to get PfadErmitteln
  298.     --Verknⁿpft die TB30dos dll
  299.     linkDLL sysToolBookDirectory & "tb30DOS.DLL"
  300.         STRING getDOSEnvironmentString (STRING)
  301.     end linkDLL
  302.  
  303.     --Ruft die Pfadliste ab
  304.     set aktuellerPfad to  getDOSEnvironmentString ("PATH")
  305.       return aktuellerPfad
  306.     unlinkDLL sysToolBookDirectory & "tb30DOS.DLL"
  307. end PfadErmitteln   
  308. }
  309.  
  310. SCRIPT "Extrahieren des Buchnamens ohne Pfad"
  311. BEHAVIOR "Findet den Namen des Buchs ohne den zugeh÷rigen Pfadnamen"
  312. CATEGORY DOS
  313. {
  314. to get Buchname
  315.     nm = name of this book
  316.     while "\" is in nm
  317.         clear first char of nm
  318.     end while
  319.     return nm
  320. end Buchname 
  321. }
  322.  
  323. SCRIPT    "Ermitteln des aktuellen Laufwerksbuchstabens"
  324. BEHAVIOR "Diese Funktion prⁿft die Gⁿltigkeit des Pfadnamens und liefert den Laufwerksbuchstaben aus einem vollstΣndigen Pfadnamen."
  325. CATEGORIES DOS    
  326. {
  327. to get LaufwerkErmitteln Pfad
  328.  
  329.    if char 2 of Pfad is ":"
  330.    --Mit TB30dos dll verknⁿpfen und die aktuelle Laufwerksliste abfragen
  331.         linkDLL sysToolBookDirectory & "tb30dos.dll"
  332.             STRING getDriveList(STRING)
  333.         end linkDLL
  334.        
  335.         get getDriveList("")
  336.         unlinkdll sysToolBookDirectory & "tb30dos.dll"
  337.         
  338.         --Prⁿft, ob das Laufwerk in der Liste enthalten ist
  339.         if char 1 of Pfad is in it
  340.             return upperCase(char 1 of Pfad)
  341.         end if
  342.    end if     
  343.    return NULL
  344. end LaufwerkErmitteln
  345. }
  346.  
  347. SCRIPT    "Ermitteln des freien Plattenspeichers auf einem Laufwerk"
  348. BEHAVIOR "Liefert den verfⁿgbaren Plattenspeicher auf dem DatentrΣger in einem bestimmten Laufwerk."
  349. CATEGORIES DOS
  350. {
  351. to get PlattenspeicherFrei Laufwerk
  352.    local LONG verfⁿgbarerPS
  353.       --Verknⁿpft TB30dos dll
  354.     linkDLL sysToolBookDirectory & "tb30dos.dll"
  355.         LONG getFreeDiskSpace(STRING)
  356.     end linkDLL
  357.  
  358.     set verfⁿgbarerPS to getFreeDiskSpace(Laufwerk)
  359.     unlinkDLL sysToolBookDirectory & "tb30dos.dll"
  360.       return verfⁿgbarerPS
  361. end PlattenspeicherFrei  
  362. }
  363.  
  364. SCRIPT    "Durchsuchen des Pfads nach einer Datei"
  365. BEHAVIOR "Dieses Skript ermittelt, ob sich eine Datei im Pfad befindet."
  366. CATEGORIES DOS
  367. {
  368.  to get DateiInPfad Dateiname
  369.     
  370.     --Verknⁿpft TB30dos dll
  371.     linkDLL sysToolBookDirectory & "tb30dos.dll"
  372.         INT fileExists (STRING)
  373.         STRING getDOSEnvironmentString (STRING)
  374.     end linkDLL
  375.     
  376.     --Holt die Pfadliste
  377.     set aktPfadListe to getDOSEnvironmentString ("PATH")
  378.     
  379.     --L÷scht 'Path=' am Anfang der Pfadliste
  380.     get offset("=",aktPfadListe)
  381.     if it > 0 then
  382.         clear chars 1 to it of aktPfadListe
  383.     end if
  384.     
  385.     --Wandelt die Pfadliste in eine Elementliste um    
  386.     get offset(";",aktPfadListe)
  387.     while it > 0
  388.         set char it of aktPfadListe to ","
  389.         get offset(";",aktPfadListe)
  390.     end while
  391.     
  392.     --Durchsucht die Liste Pfad fⁿr Pfad
  393.     while aktPfadListe is not NULL
  394.         pop aktPfadListe into PfadPrⁿfen
  395.         
  396.         if last char of PfadPrⁿfen is not "\"
  397.             put "\" after PfadPrⁿfen
  398.         end if
  399.         -- Liefert die erste Position im Pfad, an der die Datei gefunden wurde. 
  400.         if fileExists(PfadPrⁿfen & Dateiname) = 1
  401.             unlinkDLL sysToolBookDirectory & "tb30dos.dll"
  402.             return PfadPrⁿfen
  403.         end if
  404.     end while
  405.     
  406.     --Die Datei wurde im Pfad nicht gefunden
  407.     unlinkDLL sysToolBookDirectory & "tb30dos.dll"
  408.     return null
  409. end    DateiInPfad 
  410. }
  411.  
  412. SCRIPT "Durchsuchen eines Verzeichnisses"
  413. BEHAVIOR "Liefert eine Liste der Dateien im angegebenen Verzeichnis, die mit dem angegebenen Dateinamen ⁿbereinstimmen."
  414. CATEGORY DOS
  415. {
  416.  --
  417.  -- Diese Funktion liefert eine Liste aller Dateien im angegebenen 
  418.  --Verzeichniszweig, die mit dem angegebenen Dateinamen 
  419.  --ⁿbereinstimmen. Diese Funktion erfordert die nachfolgende 
  420.  --Behandlungsroutine VerzDurchsuchen.
  421.  --
  422.  -- Parameter:
  423.  --
  424.  -- StartVerz: ein Pfad, den die Funktion nach einer angegebenen Datei 
  425.  --durchsucht. Die Funktion durchsucht auch alle untergeordneten 
  426.  --Verzeichnisse von StartVerz.
  427.  --
  428.  -- Dateiname: eine Zeichenfolge, die den Dateinamen angibt; kann auch 
  429.  -- Platzhalterzeichen enthalten
  430.  --
  431.  -- Liefert eine durch CRLF getrennte Dateienliste oder eine negative Zahl, falls das angegebene Startverzeichnis ungⁿltig war.
  432.  --
  433.  -- Beispiel:
  434.  --
  435.  -- Zum Abrufen einer Liste aller .WAV-Dateien auf Laufwerk C: geben Sie folgendes ein:
  436.  -- get LWDurchsuchen("c:\","*.wav")
  437.  --
  438. to get LWDurchsuchen StartVerz,Dateiname
  439.     system DateienGefunden,VerzZΣhlen
  440.     clear DateienGefunden
  441.     VerzZΣhlen = 0
  442.     linkdll "tb30dos.dll"
  443.         INT    fileExists        (STRING)
  444.         STRING    getDirectoryOnlyList    (STRING,STRING)
  445.         STRING    getFileOnlyList        (STRING,STRING,STRING)
  446.         STRING    getFileAttributes    (STRING)    
  447.     end
  448.     -- Wenn der Pfad nicht das Stammverzeichnis ist, wird der SchrΣgstrich 
  449.     --am Ende entfernt:
  450.     if last char of StartVerz is "\" and \
  451.      char (charcount(StartVerz)-1) of StartVerz is not ":"
  452.         clear last char of StartVerz
  453.     end
  454.     -- Prⁿft, ob StartVerz gⁿltig ist
  455.     test = getFileAttributes(StartVerz)
  456.     if not (test contains "D")
  457.         RⁿckWert = syserror
  458.     else
  459.         if last char of StartVerz is not "\"
  460.             put "\" after StartVerz
  461.         end
  462.         statusBarStatus = visible of statusbar
  463.         statusBarText = caption of statusBar
  464.         visible of statusbar = true
  465.         -- Zu suchendes Verzeichnis angeben
  466.         send VerzDurchsuchen StartVerz,Dateiname
  467.         visible of statusbar = statusBarStatus
  468.         caption of statusBar = statusBarText
  469.         RⁿckWert = DateienGefunden
  470.         clear DateienGefunden
  471.         if RⁿckWert is not null
  472.             clear last char of RⁿckWert
  473.             clear last char of RⁿckWert
  474.         end
  475.     end
  476.     clear VerzZΣhlen
  477.     unlinkdll function \
  478.      "fileExists,getDirectoryOnlyList,getFileOnlyList,getFileAttributes" \
  479.       from "tb30Dos.dll"
  480.     return RⁿckWert
  481. end
  482.  
  483.  -- Wird von LWDurchsuchen und von sich selbst aufgerufen. Sammelt die Liste aller mit Dateiname ⁿbereinstimmenden Dateien.
  484. to handle VerzDurchsuchen Verz,Dateiname
  485.     system DateienGefunden,VerzZΣhlen
  486.     increment VerzZΣhlen
  487.     put Verz into caption of statusBar
  488.     Dateien = lowerCase(getFileOnlyList(Verz&Dateiname,null,"N"))
  489.     if Dateien is not null
  490.         step i from 1 to textlinecount(Dateien)
  491.             fn = Verz&textline i of Dateien
  492.             put fn & CRLF after DateienGefunden
  493.         end
  494.     end
  495.     -- Gibt jedes Unterverzeichnis von Verz zum Durchsuchen an
  496.     Verzeichnisse = lowerCase(getDirectoryOnlyList(Verz,"N"))
  497.     step i from 1 to textlinecount(Verzeichnisse)
  498.         curDir = textline i of Verzeichnisse
  499.         if curDir is not "." and curDir is not ".."
  500.             send VerzDurchsuchen Verz & curDir &"\",Dateiname
  501.         end
  502.     end
  503. end
  504. }
  505.  
  506. SCRIPT "Ermitteln des Mittelpunkts eines Objekts"
  507. BEHAVIOR    "Ermittelt die Position des Mittelpunkts eines Objekts."
  508. CATEGORIES    Werkzeuge
  509. {
  510. to get ObjektMitte obj
  511.     if obj is null
  512.         set obj to target
  513.     end
  514.     get bounds of obj
  515.     set r to round(average (item 2 of it, item 4 of it))
  516.     push round(average (item 1 of it, item 3 of it)) onto r
  517.     return r
  518. end    ObjektMitte
  519. }
  520.  
  521. SCRIPT "Zentrieren eines Objekts an einer bestimmten Position"
  522. BEHAVIOR    "Legt den Mittelpunkt eines Objekts auf eine bestimmte Position fest."
  523. CATEGORIES    Werkzeuge
  524. to set ObjektMitte to Pos
  525.     get bounds of target
  526.     move target to (item 1 of Pos - (item 3 of it - item 1 of it) div 2),\
  527.       (item 2 of Pos - (item 4 of it - item 2 of it) div 2)
  528. end    ObjektMitte 
  529. }
  530.  
  531. SCRIPT "Vollbild-Anwendung"
  532. BEHAVIOR "Pa▀t die Anwendung dem Fenster gr÷▀enmΣ▀ig an (gerΣteunabhΣngig), ohne das Fenster zu maximieren"
  533. CATEGORIES Werkzeuge
  534. 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."
  535. {
  536. to handle enterApplication
  537.     linkDLL "tb30win.dll"
  538.         INT horizontalDisplayRes()
  539.         INT verticalDisplayRes()
  540.     end
  541.     set position of mainWindow to -$$Fenst,-$$Fenst
  542.     set maximumSize of mainWindow to\
  543.         horizontalDisplayRes() + (2 * $$Fenst),verticalDisplayRes() + (2 * $$Fenst)
  544.     set minimumSize of mainWindow to\
  545.         horizontalDisplayRes() + (2 * $$Fenst),verticalDisplayRes() + (2 * $$Fenst)
  546.     unlinkDLL "tb30Win.dll"
  547.     
  548. end
  549. }
  550.