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

3 MASKEN für häufigste Dialog-patterns

 
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> Pool
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
spirigwi
•----->
•----->


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

BeitragVerfasst am: 04.06.2005 - 12:30    Titel: 3 MASKEN für häufigste Dialog-patterns Antworten mit Zitat

Weil OS9 keine Standard-Dialoge mit seinem Editor mitliefert, hier das mir kürzest mögliche Modell für 3 universal einsetzbare Dialog-Muster.

EDIT 31.7.07: AS ist voll von AS-Touristen-Fallen!
um die Button-Identifizierung zu erleichtern, hab ich records gemacht. Aber! im Dialog muss dann die "ButtList" explizit nochmals "as list" definiert werden! hat Folgendes geschrieben:
-------------------1) Ohne EINGABE-OPTION---------
set ButtList to {WEITER1:"weiter1", ZEIG1:"zeig1", STOP1:"abbruch1"}
activate current application
set ButtKlick to button returned of ¬
   (display dialog "DisplMeldung" buttons ¬
      ButtList as list ¬
      default button 1 ¬
      with icon 0 ¬
      giving up after 0) --<--Zahl in sec 0="ewig"
--Icons--0=>Warn!--1=>neutr.--2=>GelbesDreieck--grösser 2=> Fehler OSX4
{WEITER1:"weiter1", ZEIG1:"zeig1", STOP1:"abbruch1"}
if the ButtKlick is WEITER1 of ButtList then "" -- WEITER1 of ButtList !!
if the ButtKlick is ZEIG1 of ButtList then error ZEIG1 of ButtList as text
if the ButtKlick is STOP1 of ButtList then error STOP1 of ButtList as text


-----------------2) Mit EINGABE-OPTION---------------
set ButtList to {WEITER2:"weiter2", ZEIG2:"zeig2", STOP2:"abbruch2"}
set DefAnsw to "DefAnsw"
activate current application
display dialog "DisplMeldung" buttons ¬
   ButtList as list ¬
   default answer DefAnsw ¬
   default button 1 ¬
   with icon 1 ¬
   giving up after 0 --<--Zahl in sec 0="ewig"
copy the result as list to {Antwort, ButtKlick}
--Icons--0=>Warn!--1=>neutr.--2=>GelbesDreieck--grösser 2=> Fehler OSX4
{WEITER2:"weiter2", ZEIG2:"zeig2", STOP2:"abbruch2"}
if the ButtKlick is WEITER2 of ButtList then "" -- WEITER2 of ButtList !!
if the ButtKlick is ZEIG2 of ButtList then error Antwort & " " & ZEIG2 of ButtList as text
if the ButtKlick is STOP2 of ButtList then error Antwort & " " & STOP2 of ButtList as text



------------ 3) Multiple Dialoge (DMASKE1() ,DMASKE2()...) mit EINHEITS-HANDLER----------------------
--An Script-Kopf : globals weil sowohl das Skript wie auch der Handler die Variablem lesen muss
global AppDiaLeser, DisplMeldung, DefAnsw, ButtList, DefButt, IcNr, GivUp, TextAntw, ButtAntw --DiaHandler()


"Skriptverlauf.......
Skriptverlauf.......
Skriptverlauf.......
Skriptverlauf....... "
my DMASKE1() --oooo oder: DiaMASKE2()...usw
if ButtAntw = item 1 of ButtList then return item 1 of ButtList as text
TextAntw & return & ButtAntw --<--für Test
"Skriptverlauf.......
Skriptverlauf.......
Skriptverlauf.......
Skriptverlauf....... "

--################Handlers an Script-Ende####################
on DMASKE1() --oooo <------ab HIER entsprechend konfigurieren
set ButtList to {"Abbrechen", "Butt2", "Butt3"} --NICHT "ABBRUCH" !--> "user cancelet"
set DefButt to 3 --0->OHNE Default Button
set AppDiaLeser to "Finder" --"FileMaker Pro" --"Skript Editor" --"Smile"
set DisplMeldung to "DisplMeldung"
set DefAnsw to 0 --0->reiner BUTTON-Dialog, ""->BUTTON-TEXT-Dialog
set IcNr to 2 --0=>Warn!--1=>neutr.--2=>GelbesDreieck--grösser 2=> Fehler OSX4
set GivUp to 0 --0-->unendlich.Für Zeit-Limit:Sekunden-Zahl
my DiaHandler() --oooo
end DMASKE1

on DiaHandler() --oooo EINHEITS-handler
global AppDiaLeser, DisplMeldung, DefAnsw, ButtList, DefButt, IcNr, GivUp, TextAntw, ButtAntw --DiaHandler() set TextButtAntw to {}
tell application AppDiaLeser to activate
--DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
if DefAnsw is not 0 then --Text-Antwort
tell application AppDiaLeser to ¬
set DsplDia ¬
to display dialog DisplMeldung ¬
default answer DefAnsw ¬
buttons ButtList ¬
default button DefButt with icon IcNr ¬
giving up after GivUp --not! activate!->Res""
set TextButtAntw to {text returned, button returned} of DsplDia
set TextAntw to item 1 of TextButtAntw
set ButtAntw to item 2 of TextButtAntw
else --Butt-Antwort
tell application AppDiaLeser to ¬
set DsplDia ¬
to display dialog DisplMeldung ¬
buttons ButtList ¬
default button DefButt ¬
with icon IcNr ¬
giving up after GivUp --not! activate!->Res""
set TextButtAntw to {button returned} of DsplDia
set ButtAntw to item 1 of TextButtAntw
set TextAntw to "kein Text-Antwort-Dialog!"
end if
end DiaHandler

_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius


Zuletzt bearbeitet von spirigwi am 31.07.2007 - 17:43, insgesamt 34-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
spirigwi
•----->
•----->


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

BeitragVerfasst am: 19.02.2006 - 15:32    Titel: Muss dialog-patterns nochmals neu überdenken Antworten mit Zitat

Snow hat Folgendes geschrieben:
Wenn ich was universelles brauche, nehme ich nur noch meinen Dialog-Handler. Der deckt ja alle Möglichkeiten ab - muss nur entsprechend konfiguriert werden. -- Siehe Downloadseite

Diesen Link hatte ich jahrelang übersehen.
Es wurden( so meine ich zu erkennen) in Snows Version 3 Fragen noch zusehr dem Anwendertyp, wie ich einer bin, überlassen und man ist dann schnell überfordert, wenn man alleine folgende Probleme noch lösen muss:

Zitat:
1) Die den Dialog in den Vordergrund bringende Application
2) Die einfache, standardisierte Auswertung der user-BUTTON- und user-Eingabe-TEXT-Antwort
3) wie verhindert man die "Error-Meldung": "user cancelet"

oder hab ich was übersehen?

_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius


Zuletzt bearbeitet von spirigwi am 13.05.2007 - 20:13, insgesamt 20-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
spirigwi
•----->
•----->


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

BeitragVerfasst am: 20.02.2006 - 00:16    Titel: Antworten mit Zitat

Mit Snows Hilfe Rolling Eyes geht doch alles verdammt viel einfacher:
re-Edit, da offenbar schon wieder zur Verwirrung geführt hat
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius


Zuletzt bearbeitet von spirigwi am 22.02.2006 - 22:36, insgesamt 2-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Wolle-77
•--->
•--->


Anmeldedatum: 25.02.2003
Beiträge: 447
Wohnort: Geldern

BeitragVerfasst am: 21.02.2006 - 15:02    Titel: Antworten mit Zitat

Muhahaha (gequält dreinschau).


Darf ein Hautarzt eigentlich zu einem Psychologen gehen? Warum tut er es dann nicht, wo es doch schon lange sowas, aber sowas von nötig wäre.

Anders ausgedrückt: Ich dachte bisher, daß http://www.lipsum.org/ ein universeller und einfacher Blindtextgenerator wäre. Aber es gibt noch einen besseren; arbeitet sogar vollautomatisch und labert immer weiter sinnfrei vor sich hin; der ist sogar hier im Forum zu finden und liefert alle paar Tage neuen, vollkommen unverständlichen, kontextbefreiten und nichtssagenden Kauderwelsch ab; genauso wie ein Blindtext sein soll; wenn man ihn denn überhaupt bräuchte.

Mir reicht es langsam; ich kann bald nicht mehr. Mad
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
spirigwi
•----->
•----->


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

BeitragVerfasst am: 04.03.2006 - 12:50    Titel: Antworten mit Zitat

Ich glaube, nun das oben stehende Snippet soweit revidiert zu haben, dass die obige Diagnose nicht mehr zutrifft.
EDIT: Das vorgängig zitierte "maSkierte" Skript hab ich aufgegeben. Weil man das "Im Scripteditor öffnen" so oft vermisst, hab ich für Nezt-kopierte Skripte folg. gebastelt:(unter Nutzung der Maskiereigenschaft von Apples clipboard)
Idee! dieses Skript erzeugt ein Repetitions-Skript, das immer identische Skripts auf dem Heim-Rechner, ZB aus dem Skript-Menu heraus, erzeugen kann.
hat Folgendes geschrieben:
--ein einmal kopiertes A-Skript kann in "SCRIPT_Muster_Generator" repitierend erzeugt werden
my KopiertesSkript_In_neus_Editor_Fenster()
on KopiertesSkript_In_neus_Editor_Fenster()
set ScriptVomClipboardMaskiert to the clipboard
--return ScriptVomClipboardMaskiert
tell application "Script Editor"
activate
set newScript to make new document with properties ¬
{name:"SCRIPT_Muster_Generator"}
set text of newScript to "--Wenn dieser Generator mit Daten gefüllt ist, wird er benutzt werden um aus dem Skript-Menu heraus immer dasselbe Skript zu erzeugen.
--Bei unverändertem Skriptablauf legt er aus Zwischenspeicherinhalt maSKierten Text ins Ergebnisfenster
global ScriptVomClipboardMaskiert, Ergebnis_Fenster_Inhalt
set ScriptVomClipboardMaskiert to \"\"
set Ergebnis_Fenster_Inhalt to the clipboard

-----------------Skript-erzeugender Handler-------
my SkriptErzeugerInNeuemFenster()
on SkriptErzeugerInNeuemFenster()
set ScriptVomClipboardMaskiert to ¬
ScriptVomClipboardMaskiert --<-HIER! überschreiben mit:
--MaSKiertEm Skripttext (sollte im Ergebnis-Fenster sein)
--????????????????????????????????????????????????????
--Damit kann ein Skript in neuem Fenster generiert werden
if ScriptVomClipboardMaskiert = \"\" then
activate (display dialog \"• Den \\\"MaSKierten\\\" Zwischenspeicherinhalt findet man im \\\"Ergebnis\\\"-Fenster unten.\" & return & return & ¬
\"• Um ein Skript zu erzeugen, muss die unten notierte Variable am Ort <-HIER!
damit überschrieben werden.\" default answer \"ScriptVomClipboardMaskiert --<-HIER! überschreiben\")
return Ergebnis_Fenster_Inhalt
end if

tell application \"Script Editor\"
activate
set newScript to make new document with properties ¬
{name:\"SCRIPT_Muster\"}
set text of newScript to ScriptVomClipboardMaskiert
try
check syntax newScript
end try
end tell
end SkriptErzeugerInNeuemFenster"
try
check syntax newScript
end try
end tell
execute document "SCRIPT_Muster_Generator"
return ScriptVomClipboardMaskiert
end KopiertesSkript_In_neus_Editor_Fenster

Sollte die Dialog-Masken nichts taugen so wenigstens dieser Kopier-Apparat
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius


Zuletzt bearbeitet von spirigwi am 13.05.2007 - 20:16, insgesamt 2-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> Pool 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