Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Seppel •-->
Anmeldedatum: 22.09.2005 Beiträge: 59 Wohnort: Wiesbaden
|
Verfasst am: 22.09.2005 - 18:55 Titel: on error |
|
|
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 |
|
Nach oben |
|
|
Snow Administrator
Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 22.09.2005 - 19:23 Titel: |
|
|
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 |
|
|
Seppel •-->
Anmeldedatum: 22.09.2005 Beiträge: 59 Wohnort: Wiesbaden
|
Verfasst am: 22.09.2005 - 19:54 Titel: |
|
|
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 !
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
Liebe Grüße aus Wiesbaden
Seppel |
|
Nach oben |
|
|
Snow Administrator
Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 22.09.2005 - 22:33 Titel: |
|
|
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 |
|
|
Seppel •-->
Anmeldedatum: 22.09.2005 Beiträge: 59 Wohnort: Wiesbaden
|
Verfasst am: 23.09.2005 - 01:48 Titel: |
|
|
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 |
|
|
Snow Administrator
Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 23.09.2005 - 14:39 Titel: |
|
|
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 |
|
|
Seppel •-->
Anmeldedatum: 22.09.2005 Beiträge: 59 Wohnort: Wiesbaden
|
Verfasst am: 23.09.2005 - 18:23 Titel: Was ich gestern noch fertig gemacht habe |
|
|
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
-- 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 |
|
Nach oben |
|
|
spirigwi •----->
Anmeldedatum: 10.07.2003 Beiträge: 1517 Wohnort: Olten-CH
|
Verfasst am: 23.09.2005 - 22:01 Titel: |
|
|
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 |
|
|
Seppel •-->
Anmeldedatum: 22.09.2005 Beiträge: 59 Wohnort: Wiesbaden
|
Verfasst am: 24.09.2005 - 11:48 Titel: |
|
|
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 |
|
Nach oben |
|
|
spirigwi •----->
Anmeldedatum: 10.07.2003 Beiträge: 1517 Wohnort: Olten-CH
|
Verfasst am: 24.09.2005 - 14:14 Titel: |
|
|
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 |
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?
(@Snow) _________________ Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius |
|
Nach oben |
|
|
Snow Administrator
Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 24.09.2005 - 16:12 Titel: |
|
|
@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 |
|
|
spirigwi •----->
Anmeldedatum: 10.07.2003 Beiträge: 1517 Wohnort: Olten-CH
|
Verfasst am: 24.09.2005 - 17:07 Titel: |
|
|
Snow hat Folgendes geschrieben: | per Doppelklick selektieren. | danke für das neue Vokabel
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 _________________ Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius |
|
Nach oben |
|
|
Seppel •-->
Anmeldedatum: 22.09.2005 Beiträge: 59 Wohnort: Wiesbaden
|
Verfasst am: 24.09.2005 - 18:26 Titel: |
|
|
Ihr seid ja rischdisch knuffig hier So sollten Foren immer sein.
Also das mit dem Doppelklick habe ich ja nun verstanden .
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 . Wie kriege ich also die Scriptelemente direkt gefärbt ins Forum?
Liebe Grüße aus Wiesbaden
Seppel |
|
Nach oben |
|
|
Seppel •-->
Anmeldedatum: 22.09.2005 Beiträge: 59 Wohnort: Wiesbaden
|
Verfasst am: 24.09.2005 - 18:35 Titel: Falsches Forum |
|
|
Manches muss ich dann doch zweimal lesen
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
Muss ich mein zweites Thema jetzt im OSX posten?
Liebe Grüße aus Wiesbaden
Seppel |
|
Nach oben |
|
|
Snow Administrator
Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 24.09.2005 - 19:05 Titel: Re: Falsches Forum |
|
|
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 |
|
|
|
|
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
|
|
|