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

Ergebnis auswerten

 
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
Thomas
•->
•->


Anmeldedatum: 08.02.2002
Beiträge: 14

BeitragVerfasst am: 28.06.2002 - 10:11    Titel: Ergebnis auswerten Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 28.06.2002 - 10:20    Titel: Ergebnis auswerten Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Thomas
•->
•->


Anmeldedatum: 08.02.2002
Beiträge: 14

BeitragVerfasst am: 28.06.2002 - 10:30    Titel: Ergebnis auswerten Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 28.06.2002 - 10:36    Titel: Ergebnis auswerten Antworten mit Zitat

Sorry, das ist "Ungleich" - wird im Forum nicht dargestellt.
_________________
Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jens Hoffmann
•--->
•--->


Anmeldedatum: 07.05.2001
Beiträge: 175

BeitragVerfasst am: 28.06.2002 - 11:45    Titel: Ergebnis auswerten Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
DanB
•-->
•-->


Anmeldedatum: 22.11.2000
Beiträge: 38
Wohnort: Weertzen, Niedersachsen

BeitragVerfasst am: 12.07.2002 - 14:30    Titel: Ergebnis auswerten Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 12.07.2002 - 15:11    Titel: Ergebnis auswerten Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jens Hoffmann
•--->
•--->


Anmeldedatum: 07.05.2001
Beiträge: 175

BeitragVerfasst am: 12.07.2002 - 15:33    Titel: Ergebnis auswerten Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
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
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