Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Scriptobjekte - Voreinstellungen sichern

 
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
reinhold
•->
•->


Anmeldedatum: 29.06.2001
Beiträge: 9

BeitragVerfasst am: 04.07.2001 - 17:19    Titel: Scriptobjekte - Voreinstellungen sichern Antworten mit Zitat

Hallo,

zunächst schönen Dank für die anregende Antwort auf meine Fragen zu Word. In den nächsten Tagen werde ich mit einer weiteren Lösung darauf reagieren.

Jetzt aber zu meiner Frage heute:

Ich möchte mittels ieines Scriptobjekts benutzerspezifische Voreinstellungen (z. B. Pfadangaben) speichern. In einem ersten Test bin ich wie folgt vorgegangen:

Definition des Scriptobjekts "Voreinstellungen":

script Voreinstellungen
property thePath : 0
set thePath to thePath + 1
end script

Definition meines Hauptscripts "Voreinstellungen aufrufen":

set myVoreinstellung to (load script file "Festplatte:Voreinstellungen")
tell myVoreinstellung
set thePath to 11
end tell
store script myVoreinstellung in file "Festplatte:VoreinstellungenNeu2"

Script zum Auslesen von VoreinstellungenNeu2

set myVoreinstellung to (load script file "Engine:VoreinstellungenNeu2")
tell myVoreinstellung
get thePath
end tell

Hier kommt jetzt die Fehlermeldung "Die Variable thePath sei nicht definiert"

Wer kann mir helfen?

Grüsse
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 04.07.2001 - 18:27    Titel: Scriptobjekte Antworten mit Zitat

Sorry, nö das wars noch nicht - bekomme jetzt auch den Fehler - nochmal in Ruhe Ö

Also so funktionierts jetzt bei mir - aber es war zu heiß, ich muß da in die Katakomben meines Hirns steigen um zu erklären warum - nich mehr heut Ö

--1. Script:

property the_Path : 0


--2. Script:

copy (load script file "Macintosh HD:Voreinstellungen") to myVoreinstellung
set myVoreinstellung's the_Path to 10
store script myVoreinstellung in file "Macintosh HD:VoreinstellungenNeu2"


--3. Script:

copy (load script file "Macintosh HD:VoreinstellungenNeu2") to myVoreinstellungB
get myVoreinstellungB's the_Path

Gruß,
Folker
_________________
Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
reinhold
•->
•->


Anmeldedatum: 29.06.2001
Beiträge: 9

BeitragVerfasst am: 04.07.2001 - 21:49    Titel: Scriptobjekte Antworten mit Zitat

Danke,
es klappt. Ich hoffe der Kopf wird jetzt im Biergarten gekühlt ;-)

Zwei kleine Fragen noch: Was bedeutet der Genitiv von "myVoreinstellung's" und welchen Vorteil bietet es mit copy statt mit set zu arbeiten?

Grüsse
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 04.07.2001 - 23:31    Titel: Scriptobjekte Antworten mit Zitat

Jo, jetzt ist kühler und ein paar Bierchen haben den vergossenen Schweiß des Tages aufgefüllt :biggrin:

Fällt mir gerade auf - das "nö das wars noch nichtÖ" bezog sich auf ein blödsinniges (zu heiß!), von mir ersatzlos gelöschtes Posting - kann falsch interpretiert werden - nochmal :biggrin:

> der Genitiv von "myVoreinstellung's"

Keine besondere Bedeutung! Ich finde diese Syntax oftmals kürzer und lesbarer - dies ist aber ein subjektiver Eindruck und jedem selbst überlassen.

> Vorteil bietet es mit copy statt mit set

Oh ja - das ist eine tiefgehende Frage. Das wird im Hinblick auf Vererbung wichtig! Ein "set" setzt im Falle von Scriptobjekten eine Variable auf das Elternobjekt an - ein "copy" bildet ein Kindobjekt und erschafft sozusagen ein neues Scriptobjekt - die Properties dieses Kindobjekts können eigene Werte annehmen ohne die Properties des Elternobjekts zu beeinflussen.
Das mag in Deinem Fall ohne Belang sein - trotzdem ist es wichtig, dies beim Umgang mit Scriptobjekten im Mind zu behalten.

Fehlt jetzt noch die Erklärung:
Die Syntax
Script x
properties
Statements
end Script
ist wichtig wenn Du innerhalb einer Scriptdatei ein Scriptobjekt definierst
(tell my x Ö)
Wenn Du ein kompiliertes Script via load Script in eine Variable lädtst stellt die Variable ja schon ein Scriptobjekt dar. Ein enthaltenes Script ist dann ein Script eines Scriptobjektes. Der Zugriff auf die Properties des Scriptobjekts des Scriptobjekts via "get Ö" wird mir dann allerdings in allen Kombinationen (die mir einfallen!) verweigert (Access not allowed).
Thomas alias macgix - wenn ich Unsinn schreibe - bitte korrigiere mich - ich bin halt Autodidakt :)

Nichts desto trotz bietet die Technik der Scriptobjekte viele interessante Einsatzmöglichkeiten!

Beispiel:

-- Datei "Irgendwas"
propertiesÖ

on make_Script(Var)
script x
property test: x
end script
end make_Script

Ö load script file "Ö:Irgendwas" to my_Script

set temp to my my_Script's make_Script("Var")
log temp's test
--> "Var"

Viele Grüße,
Folker
_________________
Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 08.07.2001 - 19:56    Titel: Scriptobjekte Antworten mit Zitat

Hallo,

mag sein, dass mein vorhergehendes Posting nicht in allen Punkten präzise und vom akademischen Standpunkt ganz richtig ist - man möge mir ob der bei nahezu allen Scriptern verherrschenden Verwirrung bezüglich "script object, parent, child, intances, inheritance, library Ö" verzeihen Wink.
Ich habe mir die Sache heute nochmals angesehen und Ö:
(Die Scriptschritte sollten herauskopiert werden - um die Eigenheiten zu ergründen sollte jedes Script mehrfach ausgeführt werden!! - deshalb gebe ich hier jetzt keine Ergebnisse an, diese könnten nur die Form 1. Lauf, 2. Lauf usw. haben - die Konfusion würde zunehmen Wink )

Eine elegante Möglichkeit ist die Form des property parent! Beispiel:

property parent : load script file "Macintosh HD:TestSc1"
(*Wobei die Datei "Macintosh HD:TestSc1" folgendes Script enthält:
script test
property testVar : 11
end script*)

log testVar of test of me --log: ScriptEditor : Eventprotokoll öffnen!
--log test's testVar (*= andere Schreibweise, von Objektorientierten Puristen allerdings nicht favorisiert!*)
set testVar of test of me to (testVar of test of me) + 1
log testVar of test of me

store script parent in file "Macintosh HD:TestSc2"

Interessant ist hierbei, dass der property parent eine neue Instanz beim kompilieren des Scripts erzeugt - d.h. der Befehl 'store script parent Ö' ist eigentlich nicht notwendig (zumindest solange das Script nicht neu kompiliert wird!) - der Property parent enthält ja nun das Objekt mit allen Properties und Handlern. Notwendig ist der Schritt 'store script Ö' nur dann, wenn ein weiteres Script auf die geänderten Properties zugreifen soll, das vorliegende greift immer auf die geänderten Properties zu bis es neu kompiliert wird - dann verliert es allerdings die "gespeicherten" Änderungen und startet wieder mit den ursprünglichen Werten!
Achtung: Eine Ausnahme scheint hier nur für den ScriptEditor "Smile" bis Vers. 1.75 zu gelten - dieser hat KEINE neue Instanz erzeugt! Das wurde in meines Wissens erst mit Version 1.8 geändert (da funktionierts)!

Richtig handlich (verwirrend?) wird es wenn man als property parent ein Script-Library nimmt, also ein Scriptfile ohne definiertes Scriptobjekt:

property parent : load script file "Macintosh HD:TestSc3"
(*Wobei die Datei "Macintosh HD:TestSc3" folgenden Property enthält:
property testVar : 11
*)

log testVar
set testVar to (testVar + 1)
log testVar

Bei dieser Schreibweise kann man leicht den Überblick verlieren wohin "testVar" nun eigentlich gehört! Aber es kommt noch besser :)

Im folgenden Beispiel erscheint alles wie erwartet:

property parent : load script file "Macintosh HD:TestSc1"
(*Wobei die Datei "Macintosh HD:TestSc1" folgendes Script enthält:
script test
property testVar : 11
end script*)

log testVar of test of me
log parent's test's testVar
set testVar of test of me to (testVar of test of me) + 1
log testVar of test of me
log parent's test's testVar

Aber nun!:

property parent : load script file "Macintosh HD:TestSc3"
(*Wobei die Datei "Macintosh HD:TestSc3" folgenden Property enthält:
property testVar : 11
*)

log testVar
log parent's testVar
set testVar to (testVar + 1)
log testVar
log parent's testVar

Bliebe noch zu erwähnen, dass ich aus Bequemlichkeit auf den '(path to scripts folder as string & "FileName")' verzichtet habe, dass ist aber unverzichtbar wenn wir auf unterschiedlich benannte HD's treffen!

Gruß,
Folker
_________________
Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum Alle Zeiten sind GMT + 2 Stunden
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2002 phpBB Group
Deutsche Übersetzung von phpBB.de


AppleScript für absolute Starter