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

choose_index from list

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


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 01.03.2007 - 15:41    Titel: choose_index from list Antworten mit Zitat

Update: kleiner Bugfix für den Fall, daß cancel geklickt wurde, der Cancel Button aber nicht diesen Namen trägt.

spirigwi suchte ja nach einer Möglichkeit, festzustellen, welcher Eintrag aus einer liste bei choose from list gewählt wurde.

Die Lösung, die ich geliefert hatte, war mir zu speziell. Heute brauchteich aber selbst so eine Funktion und hier stelle ich nun meine Lösung vor:
Zitat:
to choose_index from a_list given start_numbering_at:frst, title:headline, prompt:question, default:selected, ok_button_name:ok_btn, cancel_button_name:cancel_btn, multiple_selections:multi, empty_allowed:mt
   if class of frst is not integer then set frst to 1
   if class of headline is boolean then set headline to ""
   if class of ok_btn is boolean then set ok_btn to "OK"
   if class of cancel_btn is boolean then set cancel_btn to "Cancel"
   set display_list to {}
   set selected_list to {}
   set idx to frst
   repeat with element in a_list
      set displayable to (idx as string) & ")" & tab & element
      if selected contains element then copy displayable to the end of selected_list
      copy displayable to the end of display_list
      set idx to idx + 1
   end repeat
   if question is false then
      set auswahl to choose from list display_list with title headline default items selected_list OK button name ok_btn cancel button name cancel_btn multiple selections allowed multi empty selection allowed mt
   else
      set auswahl to choose from list display_list with title headline with prompt question default items selected_list OK button name ok_btn cancel button name cancel_btn multiple selections allowed multi empty selection allowed mt
   end if
   if auswahl is not false then
      repeat with i from 1 to count of auswahl
         set the_text to item i of auswahl
         set item i of auswahl to (text 1 thru (-1 + (offset of ")" in the_text)) of the_text) as integer
      end repeat
   end if
   return auswahl
end choose_index


Ein Beispielaufruf ist bereits angegeben.

Das unschöne an eigenen Handlern mit benamten Parametern ist, daß keine als Optional angegeben werden können. Deswegen entsteht dieser Wust an Parametern beim Aufruf.

Die benamten Parameter werden entweder bei with oder without angegeben und erhalten dadurch den Wert true[/] bzw. [i]false. Oder sie werden bei given angegeben und erhalten dann einen Wert, den man angeben muß. Also z.B. ... given start_numbering_at:4 with multiple_selections without empty_allowed ...

Hier eine kurze Erklärung zu jedem Parameter:
choose_index from

  • eine Liste (direkter parameter)
    Dies ist, wie beim choose from list die Liste aus der ausgewählt wird

  • start_numbering_at: integer
    wenn etwas anderes als ein Integer angegeben, beginnt der Index bei 1. Ansonsten bei der angegebenen Zahl.
  • prompt: string
    Wenn false, wird die Standard Frage angezeigt, ansonsten der übergebene Wert.
  • title: string
    Wenn false, wird "" verwendet, ansonsten der übergebene Wert.
  • ok_button_name: string
    Wenn false, wird "OK" verwendet, ansonsten der übergebene Wert.
  • cancel_button_name: string
    Wenn false, wird "Cancel" verwendet, ansonsten der übergebene Wert.
  • default: liste
    Wenn false wird kein Eintrag vorgewählt, ansonsten die angegebenen.
  • multiple_selections
    Ist eine Mehrfachauswahl erlaubt?
  • empty_allowed
    Ist eine leere Eingabe zulässig?

Das Ergebnis ist eine Liste mitden Indizes der gewählten Einträge oder false bei Abbruch.
_________________
"All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies")
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 09.06.2007 - 21:26    Titel: Antworten mit Zitat

Da ist wohl in irgendeiner Korrektur tatsächlich der Beispielaufruf hopps gegangen.

Aber in spiris Textwust habe ich das irgendwie nicht richtig wahrgenommen (wahrnehmen wollen) daß er mich drauf hingewiesen hat.

Hier als Entschädigung 2 Beispiele:
Zitat:
choose_index from {"zwei", "Zwei", "ZWEI"} without title, default, ok_button_name, cancel_button_name, multiple_selections and empty_allowed given start_numbering_at:1, prompt:"Welche Zwei bitte?"

choose_index from {"MCMXCIIX", "MCMXCIX", "MM", "MMI"} without multiple_selections and empty_allowed given start_numbering_at:1998, prompt:"Welches Jahr?", default:"MM", title:"Römische Jahre", ok_button_name:"Das", cancel_button_name:"Nix"

_________________
"All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies")
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> OS X-Snippets 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