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

on error
Gehe zu Seite 1, 2  Weiter
 
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
Seppel
•-->
•-->


Anmeldedatum: 22.09.2005
Beiträge: 59
Wohnort: Wiesbaden

BeitragVerfasst am: 22.09.2005 - 18:55    Titel: on error Antworten mit Zitat

Hallo Ihr Lieben,

ich bin sowas wie ein Absolute Beginner und raffe einfach nicht, warum AS mal so und mal reagiert.

Hier ein kleines Script, was ich auf die zur Fehlerbeschreibung notwendigen Elemente reduziert habe:

set errMsg to "0"

if procId = "Ordner wählen" then
try
set filepath to choose folder with prompt dialogTxt
on error errMsg number errNum
end try
end if

if not errMsg = "0" then
tell me to display dialog errMsg as string
end if

Klicke ich beim Ordnerdialog auf "Cancle", erhalte ich wie gewünscht die Meldung. Wähle ich dagegen tatsächlich einen Ordner aus, erhalte ich die Meldung, dass die Variable errMsg nicht definiert sei.

Zu Testzwecken habe ich nach dem 'end try' nochmals die Variable errMsg auf 0 gesetzt und das Script lief fehlerfrei.

Irgendwie scheint also die Variable beim Durchlauf des Try-Blocks ohne Error ihre Definition zu verlieren. Aber warum?

Natürlich will ich nur mit der Fehlernummer arbeiten und diese an FileMaker zwecks Weiterverarbeitung übergeben. Auch kann ich das Script nach Error abbrechen und zuvor Filemaker die errNum mitteilen. Ich würde es aber gerne verstehen.

Hat jemand eine Idee, warum das so ist und wie dem Beizukommen ist?

Vorab besten Dank für Euer Bemühen.

Liebe Grüße
Seppel Question
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 22.09.2005 - 19:23    Titel: Antworten mit Zitat

Hallo Seppel,

eine Variable existiert erst, wenn ihr ein Wert zugewiesen wird.

Das geschieht jedoch in deinem Skript in der Zeile:

set errMsg to "0"

Das Problem dürfte dann eigentlich gar nicht bestehen.

Nun verwendest du diese Variable aber im 'on error'-Teil.
Ich kann dir jetzt nur meine Vermutung liefern.

'on error' ist ja eine ganz spezielle Funktion. Die Variable, die dabei zur Speicherung des Fehlertextes verwendet wird unterliegt ebenfalls einer speziellen Verwendung. Das sieht man daran, dass allein durch

on error errMsg

dieser Variablen ein Wert zugewiesen werden kann. Die normale Wertezuweisung würde aber durch 'set' oder 'copy' erfolgen.

Deshalb vermute ich, dass die Variable errMsg an dieser Stelle initialisiert wird. Tritt kein Fehler auf wird praktisch ihr vorher zugewiesener Inhalt gelöscht. Eine Variable, der kein Inhalt zugewiesen ist, existiert aber nicht.

Du schreibst, du möchtest die Fehlernummer an FileMaker übergeben, verwendest aber die Variable mit dem Fehlertext. Das ist etwas verwirrend.

Aber lassen wir uns davon nicht abschrecken.
Alles, was du im Fehlerfall machen möchtest, gehört in den 'on error'-Teil.

Die Werte des Fehlers, also Fehlermeldung und -nummer hast du ja bereits richtig abgefangen und in den Variablen untergebracht.

Die Übergabe an FileMaker muss nun im 'on error'-Teil erfolgen, dann kannst du dir die ganze Überprüfung von wegen error number = 0 ersparen, da dieser Teil ja nur aktiv wird, wenn ein Fehler auftritt.

Wenn alle Anweisungen erledigt sind, die im Fehlerfall ausgeführt werden sollen, beendest du das Skript mit 'return'. Nachfolgende Befehle, auch außerhalb des try-Blocks werden dann nicht mehr ausgeführt.

Hier das entsprechende Beispiel:

try
    set filepath to choose folder with prompt dialogTxt
on error errMsg number errNum
    tell application "FileMaker Pro"
        tell current record
            set cell "Fehlermeldung" to errMsg
            
set cell "Fehlernummer" to errNum
        end tell
    end tell
    
return
end try


Die Anweisungen an FileMaker sind hier nur stilisiert. Kann sein, dass du je nach Version noch extra eine 'database' oder ab v7 'table' ansprechen musst.
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Seppel
•-->
•-->


Anmeldedatum: 22.09.2005
Beiträge: 59
Wohnort: Wiesbaden

BeitragVerfasst am: 22.09.2005 - 19:54    Titel: Antworten mit Zitat

Hallo Snow,

erstmal herzlichen Dank für die rasche Antwort.

Ich habe so was in der Art auch vermutet, weil selbst ein Neustart des Rechners nichts gebracht hatte. Soll ja manchmal funktionieren Wink!

Ich versuche jetzt sämtliche Fehler über einen Abbruch-Handler abzubrechen und den Fehlercode an FM zu übergeben. Diesen Handler kann ich dann in jedem Try-Block aufrufen - die Scripte sind ja doch ein bischen länger - und hoffentlich ohne Fehlermeldung zu FM zurückkehren. Ich wusste bis heute nur nicht, mit welchem Befehl ein Script beendet wird. Dafür vielen Dank, da tun sich ganz neue Welten auf Smile

Liebe Grüße aus Wiesbaden

Seppel Very Happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 22.09.2005 - 22:33    Titel: Antworten mit Zitat

Du kannst übrigens innerhalb des 'on error'-Teils auch auf verschiedene Fehler reagieren.

Die Fehlernummer hast du ja in der Variablen errNum erfasst.

Beim prüfen der Fehlernummer bitte daran denken, dass dies ein Zahlenwert ist und kein Textwert. Also nicht in Anführungszeichen schreiben!

try
    set filepath to choose folder with prompt "Ordner wählen"
    
on error errMsg number errNum
    
    
if errNum is -128 then
        -- Aktion falls "Abbrechen" angeklickt wurde
    else
        tell application "FileMaker Pro"
            tell current record
                set cell "Fehlermeldung" to errMsg
                
set cell "Fehlernummer" to errNum
            end tell
        end tell
    end if
    
    
return
    
end try

_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Seppel
•-->
•-->


Anmeldedatum: 22.09.2005
Beiträge: 59
Wohnort: Wiesbaden

BeitragVerfasst am: 23.09.2005 - 01:48    Titel: Antworten mit Zitat

Hallo Snow,

vielen Dank für diesen Hinweis und vor allem vielen Dank für Deine Mühe.

Ich habe das Script vorhin fertig gemacht und es liefert mir alle Fehler direkt nach FM, wo ich drauf reagieren kann. Mir ist aber zweierlei aufgefallen:

1. Die zwei Variablen errNum und errMsg können nicht direkt an einen Handler übergeben werden. Ich wollte ja so ein Abbruch-Handler schreiben! Im Anschluss an on error errMsg number errNum müssen sie zunächst an zwei Globale Vars übergeben werden, bevor Sie vom Handler verarbeitet werden können.

2. Der Script-Beenden-Befehl return scheint nicht in Handler zu funktionieren. Aber warum, ich muss doch an beliebiger Stelle das Script abbrechen können/dürfen.

Für heute aber erst mal genug und viele Grüße aus Wiesbaden

Seppel
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 23.09.2005 - 14:39    Titel: Antworten mit Zitat

1. Variablen müssen immer an Handler übergeben werden, außer sie werden als 'global' deklariert. Vgl. http://www.fischer-bayern.de/phpBB2/viewtopic.php?t=1713

2. 'return' hat in AppleScript viele Bedeutungen bzw. Funktionen.

Beispiel:

set myText to "Erste Zeile des Textes." & return & "Zweite Zeile."

In Handlern dient return dazu, ein bestimmtes Ergebnis an die Stelle des Handleraufrufs zurück zu senden. Normalerweise wird das letzte Ergebnis innerhalb des Handlers zurück gegeben. Mit 'return' kannst du gezielt sicherstellen, dass das zurück gelieferte Ergebnis auch das ist, was du beabsichtigt hast.

Wenn dein Skript als Programm gespeichert ist, könntest du innerhalb des Handlers 'quit' benutzen, um das Skript abzubrechen.

Anders sieht es aus, wenn es ein kompiliertes Skript ist. Dann wird das Programm beendet, welches das Skript ausführt.

In dem Fall könntest du aber den Fehler (-128) im Handler abfangen, nach außen weitergeben, dort überprüfen und dann ggf. mit 'return' das Skript abbrechen.

Beispiel:

global SkriptCancel
set SkriptCancel to false

myHandler()

log SkriptCancel -- Wert im Eventprotokoll anzeigen
if SkriptCancel = true then
    return
end if

display dialog "Dieser Dialog dürfte nicht erscheinen, wenn das Skript abgebrochen wird."


on myHandler()
    try
        error number -128
    on error number errNum
        if errNum = -128 then
            set SkriptCancel to true
        end if
    end try
end myHandler

display dialog "Das Skript wurde abgebrochen. Deshalb kommt dieser Dialog auch nicht."


Das sieht ziemlich abenteuerlich aus.
Eleganter ist die nächste Variante. Du setzt bereits den Handleraufruf in einen try-Block und prüfst in dessen 'on error'-Teil, ob der Fehler -128 aufgetreten ist. Falls ja: 'return'

Im Handler selbst brauchst du nur den entsprechenden Fehler zu erzeugen.

try
    myHandler()
on error number errNum
    if errNum = -128 then
        return
    end if
end try

display dialog "Dieser Dialog dürfte nicht erscheinen, wenn das Skript abgebrochen wird."

on myHandler()
    -- im Handler tritt der Fehler -128 auf (Vom Benutzer abgebrochen).
    
error number -128
    
end myHandler

display dialog "Das Skript wurde abgebrochen. Deshalb kommt dieser Dialog auch nicht."


In beiden Beispielen dürfte beim Testen kein Dialog erscheinen.
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Seppel
•-->
•-->


Anmeldedatum: 22.09.2005
Beiträge: 59
Wohnort: Wiesbaden

BeitragVerfasst am: 23.09.2005 - 18:23    Titel: Was ich gestern noch fertig gemacht habe Antworten mit Zitat

Hallo Snow,

hier mal mein fertiges Script, welches ich über AppleScript senden aus FM6 heraus starte. Es dient, abgelegt in der globalen Steuerungsdatei als "universal"-Script zum Einlesen von Pfaden und Dateinamen. Die eingelesenen Werte werden dann von der jeweiligen Datei übernommen und verarbeitet.

Falls es jemand gebrauchen kann Smile

-- Beliebiger Pfad an FM übergeben:
-- ============================================================
-- Erstellt von KM am 25.05.2005
-- Überarbeitet von km am 22.09.2005 zu Version 1.1
-- Überarbeitet von ... am ... zu Version ...
-- ============================================================

--Globale Variablen deklarieren:
global errNo1, errMsg1, filepath, procId, fileInfo

-- Processdaten übernehmen:
tell application "FileMaker Developer"
tell database "1MENU.fp6"
set procId to cell "vMenAsPID_t" of first record --was tun
set dialogTxt to cell "vMenAsPIDMsg_t" of first record --Wunschtext für MsgBoxen
end tell
end tell

if not procId = "Ordner wählen" and not procId = "Datei wählen" and not procId = "1000" and not procId = "2000" then
set errNo1 to "-10"
set errMsg1 to "no practicable process declared"
OnErrHandler()
return
end if

-- Was soll gemacht werden:
if procId = "Ordner wählen" or procId = "1000" then
try
set filepath to choose folder with prompt dialogTxt
on error errMsg number errNo
set errMsg1 to errMsg
set errNo1 to errNo
OnErrHandler()
return
end try
SuccessHandler()
end if
if procId = "Datei wählen" or procId = "2000" then
try
set filepath to choose file with prompt dialogTxt
on error errMsg number errNo
set errMsg1 to errMsg
set errNo1 to errNo
OnErrHandler()
return
end try
SuccessHandler()
end if

--Abbruch-Handler bei Fehler:
on OnErrHandler()
tell application "FileMaker Developer"
tell database "1MENU.fp6"
set cell "vMenAsPIDErrNo_t" of first record to errNo1
set cell "vMenAsPIDErrMsg_t" of first record to errMsg1
end tell
end tell
--return
end OnErrHandler

-- Erfolgs-Handler mit übergabe der Daten an die DB:
on SuccessHandler()
tell application "FileMaker Developer"
set fileInfo to info for filepath
set cell "vMenAsPath_t" of record 1 of database "1MENU.fp6" to (filepath as string)
if procId = "Datei wŠhlen" then
set cell "vMenAsFile_t" of record 1 of database "1MENU.fp6" to displayed name of fileInfo
set cell "vMenAsFileExtention_t" of record 1 of database "1MENU.fp6" to name extension of fileInfo
end if
set cell "vMenAsPIDErrNo_t" of record 1 of database "1MENU.fp6" to "0"
set cell "vMenAsPIDErrMsg_t" of record 1 of database "1MENU.fp6" to "successful"
end tell
--return
end SuccessHandler


Das Script tuts einwandfrei, es reagiert sogar auf timeouts, ohne dass das laufende FM-Script nicht sauber abgefangen werden kann.

Viele Grüße aus Wiesbaden
Seppel Smile
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1517
Wohnort: Olten-CH

BeitragVerfasst am: 23.09.2005 - 22:01    Titel: Antworten mit Zitat

vielen Dank!
-- Beliebiger Pfad an FM übergeben:
-- ============================================================
-- Erstellt von KM am 25.05.2005
-- Überarbeitet von km am 22.09.2005 zu Version 1.1
-- Überarbeitet von ... am ... zu Version ...
-- ============================================================

--Globale Variablen deklarieren:
global errNo1, errMsg1, filepath, procID, fileInfo

-- Processdaten übernehmen:
tell application "FileMaker Pro"
   tell database "1MENU.fp6"
      set procID to cell "vMenAsPID_t" of first record --was tun
      set dialogTxt to cell "vMenAsPIDMsg_t" of first record --Wunschtext für MsgBoxen
   end tell
end tell

if not procID = "Ordner wählen" and not procID = "Datei wählen" and not procID = "1000" and not procID = "2000" then
   set errNo1 to "-10"
   set errMsg1 to "no practicable process declared"
   OnErrHandler()
   return
end if

-- Was soll gemacht werden:
if procID = "Ordner wählen" or procID = "1000" then
   try
      set filepath to choose folder with prompt dialogTxt
   on error errMsg number errNo
      set errMsg1 to errMsg
      set errNo1 to errNo
      OnErrHandler()
      return
   end try
   SuccessHandler()
end if
if procID = "Datei wählen" or procID = "2000" then
   try
      set filepath to choose file with prompt dialogTxt
   on error errMsg number errNo
      set errMsg1 to errMsg
      set errNo1 to errNo
      OnErrHandler()
      return
   end try
   SuccessHandler()
end if

--Abbruch-Handler bei Fehler:
on OnErrHandler()
   tell application "FileMaker Pro"
      tell database "1MENU.fp6"
         set cell "vMenAsPIDErrNo_t" of first record to errNo1
         set cell "vMenAsPIDErrMsg_t" of first record to errMsg1
      end tell
   end tell
   --return
end OnErrHandler

-- Erfolgs-Handler mit übergabe der Daten an die DB:
on SuccessHandler()
   tell application "FileMaker Pro"
      set fileInfo to info for filepath
      set cell "vMenAsPath_t" of record 1 of database "1MENU.fp6" to (filepath as string)
      if procID = "Datei wS<caron>hlen" then
         --set cell "vMenAsFile_t" of record 1 of database "1MENU.fp6" to displayed name of fileInfo
         --set cell "vMenAsFileExtention_t" of record 1 of database "1MENU.fp6" to name extension of fileInfo
      end if
      set cell "vMenAsPIDErrNo_t" of record 1 of database "1MENU.fp6" to "0"
      set cell "vMenAsPIDErrMsg_t" of record 1 of database "1MENU.fp6" to "successful"
   end tell
   --return
end SuccessHandler
(*
Hallo
1)
Du könntest doch die Feldnamen wesentlich höher, nämlich ganz oben, bekannt geben mit propertys
dann wären sie doch ganz einfach umschreibbar und für einen anderen user brauchbar,
was hälst du vom Vorschlag ZB so :
*)
property cellvMenAsPathT : "vMenAsPath_t"

--PS:
cellvMenAsPath_t --dies Variable kannst du nicht doppelklicken, stimmts?

(*2) ist das to "displayed name of fileInfo" ein Developper-Gag? im FM bei mir gehts nicht

*)

_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Seppel
•-->
•-->


Anmeldedatum: 22.09.2005
Beiträge: 59
Wohnort: Wiesbaden

BeitragVerfasst am: 24.09.2005 - 11:48    Titel: Antworten mit Zitat

Hallo Spirigwi,

wenn ich es richtig verstanden habe:

Zitat:
1)
Du könntest doch die Feldnamen wesentlich höher, nämlich ganz oben, bekannt geben mit propertys
dann wären sie doch ganz einfach umschreibbar und für einen anderen user brauchbar,
was hälst du vom Vorschlag ZB so :
*)
property cellvMenAsPathT : "vMenAsPath_t"


Meinst Du damit, dass jeder User des AS seine eigenen Feldnamen in die Variablen (properties) schreibt, zB wenn er mit anderen Feldern arbeitet?

Klar könnte man das machen. Nur wir brauchen das in diesem Fall nicht, da das AS in einer Art "zentralen Steuerungsdatei" liegt. Da kann und sollte jeder mit der gleichen Art und Weise auf die "Schnittstelle" zugreifen. Damit werden im gesamten Projekt Zugriffe vereinheitlicht und jeder weiss genau, wie er mit der Steuerungsdatei zu sprechen hat. An dem Projekt arbeiten mehrer Entwickler! Das hilft u. a., schnell Fehler zu lokalisieren usw.

Oder habe ich da was missverstanden?

-
Zitat:
-PS:
cellvMenAsPath_t --dies Variable kannst du nicht doppelklicken, stimmts?


Was meinst Du damit? Verstehe ich nicht.


Zitat:
(*2) ist das to "displayed name of fileInfo" ein Developper-Gag? im FM bei mir gehts nicht

*)


Nö, der liefert mir den Dateinamen, so wie er vom Mac gesehen wird. So lese ich alle Files, insbesondere Bilddateien ein. Was ich allerdings noch nicht hinbekommen habe, ausser natürlich mit Photoshop, ist das Auslesen der Bildgröße (Höhe und Breite) sowie der Auflösung. Die liefert der Finder mir nicht direkt, wie beispielsweise bei Windows. Aber da ich meistens eh alle Bilddateien noch bearbeiten muss, hole ich mir bei dieser Aktion auch gleich diese Daten von Photoshop.

Liebe Grüße aus Wiesbaden
Seppel Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1517
Wohnort: Olten-CH

BeitragVerfasst am: 24.09.2005 - 14:14    Titel: Antworten mit Zitat

Seppel hat Folgendes geschrieben:
Meinst Du damit, dass jeder User des AS seine eigenen Feldnamen in die Variablen (properties) schreibt, zB wenn er mit anderen Feldern arbeitet?
ja genau, aber nicht nur!
zum ersten:
Seppel hat Folgendes geschrieben:
Falls es jemand gebrauchen kann Smile

zum zweiten:
Seppli hat Folgendes geschrieben:
An dem Projekt arbeiten mehrer Entwickler! Das hilft u. a., schnell Fehler zu lokalisieren usw.
genau da hilft Property für Feldnamen der FileMaker gewaltig, da es zuerst quasi übersicht-mässig mal alle Namen deklariert an die man sich zu halten hat im Projekt, die sind nämlich nicht vom AS sondern vom FileMaker-file vorgegeben.

zum dritten:
spirigli hat Folgendes geschrieben:
cellvMenAsPath_t --dies Variable kannst du nicht doppelklicken, stimmts?

will heissen: hättest du einen Automaten gebaut der dir automatisch alle Feld-namen des FM-Files in Propertys-Zeilen aufreit und du bei File_Feld_Namen nicht so sondern so benamen würdest:
FileFeldNamen ja dann, das Paradies steht offen:
wenn du nun die Verwertung eines Feldes im AppleSkript suchen muss machst du auf den FileFeldNamen einen doppelklick, dann æ_C= kopiert, dann in Smile æ_F= suchen, dann æ_V, dann den so deponierten suchgegenstand mit ENTER und æ_G sooft absuchen bis du ihn gefunden hast, was sich ja schon bei deinem relativ kurzen Skript bestens befähren würde bei der Fehlersuche

Ach ja: was passiert denn dann wenn du auf File_Feld_Namen oder cellvMenAsPath_t einen Doppeklick machst?

Das passiert:
File_Feld_Namen
cellvMenAsPath_t
begriffen?
Für weitere Erläuterungen, lauter Leute und lauter Leute, gerne zu haben, da ich gerade härtestens an mir arbeite eine klarere Formulierungsweise einzuüben ich habe nämlich noch paar Fragen für Forum offen

PS!!!!!!! uitsch fast vergessen:
Die überkommene Tradition des "DOPPELKLICKS" stammt natürlich aus einer ZwischenAera der Komputer, zugegeben und wirkt schon etwas antiquiert, zugegeben:

Als ich noch 4 h morgens Geburtscheine ausfüllen musste konnte man auf den Schreibmaschinen der Schwesternstation noch keinen Text kopieren.

Dann kam dieser Schwachsinn mit den Word-haltigen-Komputern, und dort wars halt Tradition dass man gleiches Wort im Text (ZB: foeto-maternaler Exitus) doppel-geklickt hat,da das Zeichen - auch doppelklickbar ist aber nicht in FileMaker passen würde andererseits das kleinere Problem, wenn Mutter und Kind gleichzeitig starben, mit einem Doppelklick alles gesagt war mit: æ_C und dann weiter unten abladen mit æ_V. Wenigstens ein paar Stunden Schlaf hats einem schon gerettet.

Jetzt ist ja das auch nicht mehr nötig, da wir ja AppleSkript haben, und falls eine Geburt abverrecken würde, könnte man ein Tastatur-kürzel drücken , das eine ganze Textseite auf ein Blatt wuchtet und mit schwarzem Rahmen aus dem Drucker befördert, Schlaf gerettet! wie beneide ich nun meinen Sohn den jungen Assistenzarzt so sehr: AppleSkript machts möglich)

ich vermute aber auch, dass ScriptEditor in OSXs-Version über die Markierung springt beim _ und beim -, und nun hab ich glaube ich meine Frage richtig ausformuliert zu haben? spende mir Trost , Seppi!

--> dh ich wollte wissen warum du im AppleScript-Forum und nicht im parallelen OSX-Snow-Forum schreibst, war halt nur so ne Fallfrage, die du auch gerade mit dem doppelklick beantwortet hättest ohne dich explizit danach fragen zu müssen, falls du den Tipp mit den Variable_Sollte_Man_NICHT_mit_DIesen_Unterstrichen_Bennen_vor ALLEM_Aber_NICHT_FileMakers_FEld_Namen für einen schlechten Rat gehalten hättest.

Hirnakrobatik?
Musik hören (@Snow)
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 24.09.2005 - 16:12    Titel: Antworten mit Zitat

@Willy

Dass Seppel 'displayed name' verwendet, lässt darauf schließen, dass er unter OS X scriptet.
Im Skripteditor 2 gibt es kein Problem mit dem Doppelklicken von Variablennamen. Sowas "File_Feld_Namen" kann man also problemlos per Doppelklick selektieren.

Im ursprünglichen Beitrag ging es um's Fehlerabfangen. Das gilt unter OS 9 genauso wie unter OS X - also ist das Forum eigentlich egal.
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1517
Wohnort: Olten-CH

BeitragVerfasst am: 24.09.2005 - 17:07    Titel: Antworten mit Zitat

Snow hat Folgendes geschrieben:
per Doppelklick selektieren.
danke für das neue Vokabel Idea

Snow hat Folgendes geschrieben:
Im ursprünglichen Beitrag ging es um's Fehlerabfangen.

Genau und deshalb versuchte ich als erstes sein angebotenes Skript zu färben (Übersicht)
Dabei fällt als erster(ich meine) einziger Vorteil auf, dass sich text-formatierte Feldnamen blau gefärbt zwar besser abheben als eine in Propertys vordefinierte Variable(rot) für den Namen der cell, hat aber auch Nachteile, vor allem je länger das Skript wird.

Nun sieht man ja durch die Farben besser die Handler von Seppel:
Da es leider meiner Ansicht nach viel zu wenig im AS-Forum vorkommt, dass über FileMaker Befehle, cells usw berichtet wird, dachte ich wärs auch nicht
ganz daneben diese seltenen Momente zu nutzen und etwas zu erweitern anhand eines konkreten Beispiels, das ja nun vorliegt? Und man sieht auch dass dem AS keine error Meldung rückgemeldet wird, was in dieser Handlerfunktion zwa irrelevant ist, in multifunktionelleren Skripts aber immer wieder die Frage der höchsten Kompetenz(FileMaker oder AS) auftritt, was an Seppels Beispiel auch nicht schlecht dirkutiert werden könnte...

--Abbruch-Handler bei Fehler:
on OnErrHandler()
   tell application "FileMaker Pro"
      tell database "1MENU.fp6"
         set cell "vMenAsPIDErrNo_t" of first record to errNo1
         set cell "vMenAsPIDErrMsg_t" of first record to errMsg1
      end tell
   end tell
   --return
end OnErrHandler


OK ich gebs freiwillig auf hallo winke
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Seppel
•-->
•-->


Anmeldedatum: 22.09.2005
Beiträge: 59
Wohnort: Wiesbaden

BeitragVerfasst am: 24.09.2005 - 18:26    Titel: Antworten mit Zitat

Ihr seid ja rischdisch knuffig hier Laughing So sollten Foren immer sein.

Also das mit dem Doppelklick habe ich ja nun verstanden Shocked .

Wie Snow richtig bemerkt, arbeite ich auf OSX, mittlerweile sogar auf OSX Discher. Als ich mit FM3 angefangen habe, arbeitete ich noch auf einem 8.? System. Dann einige Jahre auf PC's und jetzt auf beiden, weil wir sowohl auf PC als auch auf Mac entwickeln. Daheim herrscht mittlerweile die gleiche Situation, wobei ich doch lieber auf dem mac arbeite, auch wenn ich die ShortCuts vermisse. Ich habe mir vor ein paar Monaten so einen knuffigen MiniMac und ein tolles AppleDisplay geleistet, sieht einfach geil aus, das Teil!

Was das mit dem Färben angeht; ihr färbt doch nicht wirklich jedes Scriptelement einzeln. Mein Script habe ich über nen PC ins Forum reingebracht. Da war mir das ein wenig aufwendig Confused . Wie kriege ich also die Scriptelemente direkt gefärbt ins Forum?

Liebe Grüße aus Wiesbaden

Seppel Winke winke
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Seppel
•-->
•-->


Anmeldedatum: 22.09.2005
Beiträge: 59
Wohnort: Wiesbaden

BeitragVerfasst am: 24.09.2005 - 18:35    Titel: Falsches Forum Antworten mit Zitat

Manches muss ich dann doch zweimal lesen Rolling Eyes

Zitat:
dh ich wollte wissen warum du im AppleScript-Forum und nicht im parallelen OSX-Snow-Forum schreibst, war halt nur so ne Fallfrage, die du auch gerade mit dem doppelklick beantwortet hättest ohne dich explizit danach fragen zu müssen, falls du den Tipp mit den Variable_Sollte_Man_NICHT_mit_DIesen_Unterstrichen_Bennen_vor ALLEM_Aber_NICHT_FileMakers_FEld_Namen für einen schlechten Rat gehalten hättest.


Ehrlich gesagt, habe ich darüber garnicht nachgedacht. Aber Snow hat mir ja schon einen Haltepunkt geliefert hallo winke

Muss ich mein zweites Thema jetzt im OSX posten?

Liebe Grüße aus Wiesbaden

Seppel
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 24.09.2005 - 19:05    Titel: Re: Falsches Forum Antworten mit Zitat

Seppel hat Folgendes geschrieben:
Muss ich mein zweites Thema jetzt im OSX posten?


Wenn du unter OS X scriptest und dir nicht sicher bist, ob das Skript genauso unter OS 9 läuft, ist es im OS X Forum besser aufgehoben.

Wer sich dort ein Skriptbeispiel heraus kopiert, weiß zumindest, dass es unter OS X verfasst wurde. Wenn es also unter OS 9 nicht funktioniert, braucht man sich nicht weiter zu wundern.

Nun der andere Fall. Bleiben wir gleich beim bisherigen Skript. 'displayed name' gibt's unter OS 9 nicht. Dort hat 'name' genügt. Seit OS X sind eben Dateiendungen wichtiger geworden. Man kann sie allerdings auch ausblenden.

Es gibt also 'name' und 'displayed name' unter OS X. 'name' würde immer den vollen Namen liefern - inkl. Dateiendung. 'displayed name' liefert das was man, je nach Einstellung, auch am Bildschirm sieht.

Zurück zum Thema der Beitragsunterbringung: Jemand kopiert sich also dein Skriptbeispiel aus dem OS 9 Forum und wundert sich, dass er es auf seinem OS 9 nicht kompilieren kann. - Dann stellt sich dieser Jemand bestimmt eine Menge Fragen. "Liegt es an seinem Rechner? An seiner AppleScript-Version? usw. - Bei anderen scheint es ja zu funktionieren."

Ich verschiebe nur Themen, die eindeutig in ein anderes Forum gehören. Wenn also im OS 9 irgendwas mit 'do shell script' auftaucht, verschiebe ich das nach OS X. Wenn ich was entdecke, das eindeutig nur bis OS 9 funktioniert wird's dorthin verschoben.

Ich musste bisher noch nicht oft regulierend eingreifen.
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
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
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
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