Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Thomas •->
![•-> •->](/phpBB2/images/ranks/ranki0.gif)
Anmeldedatum: 08.02.2002 Beiträge: 14
|
Verfasst am: 28.06.2002 - 10:11 Titel: Ergebnis auswerten |
|
|
Hallo
So schwer kann das ja eigentlich nicht sein, aber ich stehe im Moment auf dem Schlauch.
Evtl. kann mir jemand von euch weiterhelfen.
Ich habe einen Dialog mit einer Werteliste.
Als Ergebnis bekomme ich die Zahl des Listenwertes.
Ich möchte aber nicht die Zahl, sondern den wirklichen Namen aus der Liste auslesen, (Es können auch mehrere markiert werden) da ich diese Ergebnis wieder in ein anderes Programm einfügen möchte.
Hier mein Beispiel:
set aList to [¨
"Fleisch (Schwein)", "Fleisch (Rind)", "Fleisch (Lamm)", ¨
"Fleisch (Kalb)", "Fleisch (Geflügel)", "Fleisch (Wild)", ¨
"Platten", "Wurst (Bauerngut/Gutfleisch)", "Wurst (Fremdhersteller)", ¨
"Fisch", "Konserven", "Drogerie (Baby)", "Drogerie (Reinigungs/Waschmittel)", ¨
"Drogerie (Körperpflege)", "Drogerie (Tier)", "Feinkost (Öle/Fette)", "Feinkost (Molkereiprodukte)", ¨
"Feinkost (Salate)", "Backwaren", "Sortiment", "Süsswaren", "Tiefkühl", "Getränke (Wein/Sekt)", "Getränke (Spirituosen)", "Getränke (alkoholfreie Getränke)", "Getränke (Bier)", "Eigenmarken"]
set listDialog to {size:[400, 166], name:"Check List", style:movable dialog, contents:[¨
{class:push button, name:"OK", bounds:[310, 136, 370, 156], enabled:false}, ¨
{class:push button, name:"Cancel", bounds:[310, 104, 370, 124]}, ¨
{class:list box, contents:aList, bounds:[10, 26, 290, 156], column widths:[15, 200], action:99}, ¨
{class:static text, contents:"Double click some items:", bounds:[8, 4, 270, 20]} ¨
]}
dd install with grayscale
set d to dd make dialog listDialog
set checkCount to 0
repeat
set i to dd interact with user
if i = 99 then -- Double clicked list
set x to dd get value of item 3 of d
set s to item x of aList
if character 1 of s = tab then
set item x of aList to "" & s
set checkCount to checkCount + 1
else
set item x of aList to text 2 thru -1 of s
set checkCount to checkCount - 1
end if
dd set contents of item 3 of d to aList
dd set value of item 3 of d to x
dd set enabled of item 1 of d to (checkCount != 0)
else if i = 1 or i = 2 then
exit repeat
end if
end repeat
dd uninstall
if i = 1 then
set checkList to []
repeat with i from 1 to aList's length
if aList's item i's character 1 != tab then set checkList to checkList & i
end repeat
return checkList
end if
Bin für jeden Tip dankbar |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Folker •---->
![•----> •---->](/phpBB2/images/ranks/ranki3.gif)
![](images/avatars/209501979845951673e6dd5.jpg)
Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 28.06.2002 - 10:20 Titel: Ergebnis auswerten |
|
|
Moin,
ja, da ich hier mit X unterwegs bin und der DialogDirector ja (noch?) nicht für X vorhanden ist wirklich nur ein Tipp anhand des 1. Absatzes Deines Postings - vielleicht hilft der ja auf die Sprünge!
set theL to {"eins", "zwei", "drei", "vier", "fünf"}
set theresult to {2, 4}
if class of theresult != list then set theresult to {theresult}
repeat with i in theresult
set contents of i to item (contents of i) of theL
end repeat
theresult
Gruß,
Folker _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Thomas •->
![•-> •->](/phpBB2/images/ranks/ranki0.gif)
Anmeldedatum: 08.02.2002 Beiträge: 14
|
Verfasst am: 28.06.2002 - 10:30 Titel: Ergebnis auswerten |
|
|
Hallo Folker
Erst mal Danke für die schnelle Antwort.
Was bedeutet !=
Das kenne ich nicht. (Das meckert er bei mir auch an)
Danke |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Folker •---->
![•----> •---->](/phpBB2/images/ranks/ranki3.gif)
![](images/avatars/209501979845951673e6dd5.jpg)
Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 28.06.2002 - 10:36 Titel: Ergebnis auswerten |
|
|
Sorry, das ist "Ungleich" - wird im Forum nicht dargestellt. _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Jens Hoffmann •--->
![•---> •--->](/phpBB2/images/ranks/ranki2.gif)
Anmeldedatum: 07.05.2001 Beiträge: 175
|
Verfasst am: 28.06.2002 - 11:45 Titel: Ergebnis auswerten |
|
|
Hallo Thomas
Ich weis ja nicht genau, was Du mit Deinem Script machen willst, aber hier mal ein paar Hinweise:
Ich würde Dir empfehlen, nicht mit einem "moveable dialog" zu arbeiten (zumindestens bei der Erstellung des Scripts), sondern mit "style:standard window, closeable:true". Denn wenn Dein Script einen Fehler liefert oder Du Dir mit "return" einen Wert zurückgeben lässt, sind die normalen Fenster-Elemente nicht mehr benutzbar - bis auf die Closebox. Und ohne die kannst Du das Fenster dann nicht mehr schliessen und musst den Skripteditor gewaltsam beenden (Apfel+alt+esc). Wenn Du dann nicht vorher gespeichert hast, ist Deine Arbeit futsch. So klickst Du einfach in die Closebox, die mit "if i = -1" abgefragt wird.
Du willst in der Liste mehrere Einträge auswählen. Dann musst Du die "flags" setzten, da default-mässig die einfache Auswahl gesetzt ist. (s.u.)
Hier nochmal der Hinweis auf das DD-Manual (das Original, von Snow als HTML-Version umgesetzt), das für die Programmierung unerlässlich ist und in der Du die Werte von "flags" nachschauen kannst:
http://www.Fischer-Bayern.de/dd/DD_Anleitung.sit
Die "action" der List-Box gibt an welches Element des Fensters bei einem Doppelklick auf einen Eintrag aufgerufen werden soll. Ich nehme mal an, das dies mit dem "OK"-button identisch sein soll. "action" sollte also auf den Index von "OK" gesetzt werden. Die Listbox wird nun so definiert:
{class:list box, contents:aList, bounds:[10, 26, 290, 156], column widths:[15, 200], action:1, flags:0}
Wenn Du jetzt ein Eintrag doppelklickst, hat das den selben Effekt, wie wenn Du den Eintrag markierst und dann "OK" klickst. Wenn Du mehrere Einträge übernehmen willst, musst Du sowieso "OK" nehmen, da ein Doppelklick nur diesen einen Eintrag zurückliefert.
Deine eigentliche Frage hat Folker ja schon beantwortet. Es wird eine Liste geliefert, deren Elemente mit "item Platzierung of dieListe" angesprochen werden.
Ein Problem hierbei ist, dass, wenn nichts ausgewählt und "OK" geklickt wird, 0Ýzurückgegeben wird. Kommt vor, wenn Leerraum in der Liste zu sehen ist, in den man reinklicken kann (s.u.). Das kannst Du umgehen, wenn der "OK"-button erst mal inaktiv ist und erst bei Auswahl eines Listeneintrags aktiviert wird.
Als Script zusammengefasst :
-----
set aList to ["Eins", "Zwei", "Drei"]
set listDialog to {size:[400, 166], name:"Check List", style:standard window, closeable:true, contents:[¨
{class:push button, name:"OK", bounds:[310, 136, 370, 156], enabled:false}, ¨
{class:push button, name:"Cancel", bounds:[310, 104, 370, 124]}, ¨
{class:list box, contents:aList, bounds:[10, 26, 290, 156], column widths:[15, 200], action:1, flags:0}, ¨
{class:static text, contents:"Double click some items:", bounds:[8, 4, 270, 20]} ¨
]}
dd install with grayscale
set d to dd make dialog listDialog
set checkCount to 0
repeat
set i to dd interact with user
if i = -1 or i = 2 then --Closebox oder Cancel
exit repeat
else if i = 1 then -- OK oder Doppelklick in Listbox
set x to dd get value of item 3 of d -- Entweder eine Liste oder 0
return x
-- statt return x hier die weitere Verarbeitung...
else if i = 3 then -- Liste, einfacher Klick (markieren)
set res to dd get value of item 3 of d
if res is 0 then -- nichts ausgewählt
dd set enabled of item 1 of d without to -- OK-button deaktivieren
else
dd set enabled of item 1 of d with to -- OK-button aktivieren
end if
end if
end repeat
dd delete d
dd uninstall
-----
Grüße Jens
(Geändert von Jens Hoffmann um 11:48 Uhr am 28 Juni 2002)
(Geändert von Jens Hoffmann um 11:54 Uhr am 28 Juni 2002)
(Geändert von Jens Hoffmann um 12:00 Uhr am 28 Juni 2002) |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
DanB •-->
![•--> •-->](/phpBB2/images/ranks/ranki1.gif)
![](images/avatars/gallery/ikonboard/BIRNE.gif)
Anmeldedatum: 22.11.2000 Beiträge: 38 Wohnort: Weertzen, Niedersachsen
|
Verfasst am: 12.07.2002 - 14:30 Titel: Ergebnis auswerten |
|
|
Folker schrieb:
> ja, da ich hier mit X unterwegs bin und der DialogDirector ja (noch?)
> nicht für X vorhanden ist
Dazu sei gesagt: Mit Dialog Director für X sieht's schlecht aus. Als das Thema damals aktuell wurde, haben wir vom MacScripter.Net mehrfach versucht, den Autoren der OSAX zu erreichen und zu fragen, ob was in der Richtung zu erwarten ist. War leider nix, der Mensch scheint von der Bildfläche verschwunden zu sein.
Auch FaceSpan 4 lässt nach wie vor auf sich warten, sieht also so aus, als wenn das AppleScript Studio auf absehbare Zeit das einzige entsprechende Tool unter OS X sein wird.
Gruss@all
Daniel Blanken _________________ danB
[url]mailto:danB@advancedscripting.de[/url]
http://www.advancedscripting.de |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Folker •---->
![•----> •---->](/phpBB2/images/ranks/ranki3.gif)
![](images/avatars/209501979845951673e6dd5.jpg)
Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 12.07.2002 - 15:11 Titel: Ergebnis auswerten |
|
|
Hallo Daniel,
habe zugegebenermaßen erst ein wenig sporadisch in den x100 Seiten Dokumentation zum AS-Studio (+Projekt&Interface Builder) rumgeschmökert - aber wenn das denn alles so funktioniert, dann weine ich dem FaceSpan keine Träne hinterher. Mit dem DD sieht es da schon anders aus - war praktisch für mal so eben ein Fensterchen mit "advanced" Userinteraktion. Aber gut - dafür hat es auch noch Smile's Dialoge.
Gruß,
Folker _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Jens Hoffmann •--->
![•---> •--->](/phpBB2/images/ranks/ranki2.gif)
Anmeldedatum: 07.05.2001 Beiträge: 175
|
Verfasst am: 12.07.2002 - 15:33 Titel: Ergebnis auswerten |
|
|
Es gibt da eine Shareware-Addition "24U Appearance OSAX 2.0" auch für OS X. Allerdings scheint das ein DD für Arme mit einem Preis für Reiche zu sein ( US$ 29, 35 EUR). Ausserdem muss man auch noch Lizensen kaufen, wenn man seine Scripte vertreiben will ("Unlimit-Bundling" ca. $1500 !!! ). Kommentare auf VersionTracker lesen.
Wer's trotzdem wissen will:
http://www.24u.cz/scriptin.htm
Jens |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
|
|
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
|
|
|