Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Sir Loom •->
![•-> •->](/phpBB2/images/ranks/ranki0.gif)
Anmeldedatum: 16.03.2001 Beiträge: 14
|
Verfasst am: 15.10.2001 - 17:23 Titel: Allgemein: Display Dialog (mit Default Answer "") - M–chte F |
|
|
...wenn der Benutzer keinen Text eingegeben hat, ist das Resultat weder "" noch 0 oder sonst irgendetwas abfragbares, weshalb die Fehlermeldung via ´if the result = "" thenª usw. nicht klappt. Bitte um Hilfe!
Grüsse
Sir Loom |
|
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: 15.10.2001 - 17:34 Titel: Allgemein: Display Dialog (mit Default Answer "") |
|
|
display dialog "Geben Sie einen Text ein:" default answer ""
Wenn ich dieses Skript starte und den Dialog bestätige, ohne einen Text einzugeben, dann bekomme ich als Ergebnis einen leeren String ""
Zumindest unter MacOS 9.2.1 und AppleScript 1.6. Welches System benutzt Du? _________________ danB
[url]mailto:danB@advancedscripting.de[/url]
http://www.advancedscripting.de |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Snow Administrator
![Administrator Administrator](/phpBB2/images/ranks/ranki5.gif)
![](images/avatars/14843438503e582f0f04e8a.gif)
Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 15.10.2001 - 18:12 Titel: Allgemein: Display Dialog (mit Default Answer |
|
|
Hi Sir Loom,
ich bin mir nicht ganz sicher, was du genau brauchst. Wenn nichts eingegeben wird, ist das Ergebnis "". Wie DanB ja schon geschrieben hat. Das kann man doch abfragen.
Falls du zum Beispiel Zahlen ausschließen willst, hilft dir vielleicht folgende Lösung (mehr ist mir auf die Schnelle nicht eingefallen):
set myText to text returned of ¨
(display dialog "Bitte Text eingeben" default answer "" )
set theFlag to true
set NumberList to { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
repeat with theNumber in NumberList
if myText contains theNumber then
set theFlag to false
exit repeat
end if
end repeat
if theFlag = false then
display dialog "Bitte nur reinen Text eingeben" with icon stop
end if
Die Schleife wird verlassen, sobald eine Ziffer aus der Liste im eingegebenen Text gefunden wird. Dadurch muss nach einem Treffer nicht der Rest der ganzen Liste abgearbeitet werden. _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Zuletzt bearbeitet von Snow am 01.03.2003 - 13:59, insgesamt einmal bearbeitet |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Snow Administrator
![Administrator Administrator](/phpBB2/images/ranks/ranki5.gif)
![](images/avatars/14843438503e582f0f04e8a.gif)
Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 15.10.2001 - 19:11 Titel: Allgemein: Display Dialog (mit Default Answer |
|
|
Du kannst im Skript natürlich die Liste der Zeichen, die nicht erlaubt sind, beliebig erweitern. Hier noch ein Beispiel, bei dem ich auch den Fall berücksichtigt habe, dass nichts eingegeben wird.
on run
theDialog()
end run
on theDialog()
set myText to text returned of ¨
(display dialog "Bitte Text eingeben" default answer "" )
set theFlag to true
set theList to { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, "@", "&", "/" }
if myText = "" then
display dialog ¨
"Es muss eine Eingabe gemacht werden" buttons { "OK" } ¨
default button 1 with icon stop
theDialog()
else
repeat with theNumber in theList
if myText contains theNumber then
set theFlag to false
exit repeat
end if
end repeat
end if
if theFlag = false then
display dialog "Bitte nur reinen Text eingeben" with icon stop
theDialog()
end if
end theDialog _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Zuletzt bearbeitet von Snow am 01.03.2003 - 14:00, insgesamt einmal bearbeitet |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Sir Loom •->
![•-> •->](/phpBB2/images/ranks/ranki0.gif)
Anmeldedatum: 16.03.2001 Beiträge: 14
|
Verfasst am: 15.10.2001 - 23:21 Titel: Allgemein: Display Dialog (mit Default Answer "") |
|
|
Abend!
Ihr dürft mich alle einmal kräftig ohrfeigen! Es tut mir wirklich echt leid, dass ich Eure Zeit mit meinem Problem, das nur durch meine Unverbesserlichkeit entstanden ist, in Anspruch genommen habe. Wenigstens werde ich aus den Beispielen etwas lernen. Meine Script-Fähigkeiten beschränken sich leider auf das, was man mit dem "Aufzeichnen"-Knopf an Code erhälten kann. Wenn Ihr ein gutes Tutorial kennt, in dem man mit den Script-Grundlagen vertraut gemacht wird, gebt mir doch bitte den Link. Ich hoffe ich kann mich trotzdem wieder einmal in dieses Forum trauen.
Ich war tatsächlich so doof, statt ´if the text returned of the result = "" thenª nur ´if the result = "" thenª zu verwenden. Das war schon der ganze Fehler.
Trotzdem noch ein paar (banale) Fragen:
- Wie kriege ich einen Zeilenschlag (was bei HTML der BR-Container ist) in einen String (z.B. für display dialog)?
- Gibt es sowas wie einen "Goto"-Befehl mit dem ich an eine bestimmte Stelle im Script springen kann (quasi einen Anker)?
- Bis jetzt kenne ich bei Dialogen Texteingabefelder und Auswahllisten. Nun möchte ich einen Dialog mir sehr langem Default Text anzeigen lassen. Dabei gibt es jedoch keine Scrollliste und der Anwender kann den Text editieren. Das Ziel wäre, dass der Benutzer ausgewählte Textstellen in die Zwischenablage kopieren, bequem scrollen aber den Text nicht editiern kann. Gibt es da eine Lösung?
Noch herzlichen Dank für Eure Hilfe!
Grüsse
Sir Loom |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Snow Administrator
![Administrator Administrator](/phpBB2/images/ranks/ranki5.gif)
![](images/avatars/14843438503e582f0f04e8a.gif)
Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 15.10.2001 - 23:45 Titel: Allgemein: Display Dialog (mit Default Answer |
|
|
Zitat: | Zitat: von Sir Loom am 23:21 Uhr am 15 Okt. 2001
Abend!
Ihr dürft mich alle einmal kräftig ohrfeigen! Es tut mir wirklich echt leid, dass ich Eure Zeit mit meinem Problem, das nur durch meine Unverbesserlichkeit entstanden ist, in Anspruch genommen habe. Wenigstens werde ich aus den Beispielen etwas lernen. Meine Script-Fähigkeiten beschränken sich leider auf das, was man mit dem "Aufzeichnen"-Knopf an Code erhälten kann. Wenn Ihr ein gutes Tutorial kennt, in dem man mit den Script-Grundlagen vertraut gemacht wird, gebt mir doch bitte den Link. Ich hoffe ich kann mich trotzdem wieder einmal in dieses Forum trauen. |
Ja, ja, trau dich nur!
In Sachen Grundlagen erlernen, solltest du zuerst mal alle Ausgaben des MacScripter's Magazine herunterladen.
http://www.fischer-bayern.de/applescript/html/mag.html
Zitat: |
Ich war tatsächlich so doof, statt 'if the text returned of the result = "" then' nur 'if the result = "" then' zu verwenden. Das war schon der ganze Fehler.
Trotzdem noch ein paar (banale) Fragen:
- Wie kriege ich einen Zeilenschlag (was bei HTML der BR-Container ist) in einen String (z.B. für display dialog)?
|
Dazu musst du den Text zerlegen - Beispiel:
set theText to ¨
"Dies ist die erste Zeile." & return & "Das ist die zweite Zeile"
display dialog theText
Zitat: |
- Gibt es sowas wie einen "Goto"-Befehl mit dem ich an eine bestimmte Stelle im Script springen kann (quasi einen Anker)?
|
Wenn du mit Routinen (Handler) arbeitest, kannst du diese von jeder beliebigen Skriptstelle aus aufrufen. Ein Beispiel dafür war bereits in meinem Skript enthalten. Es arbeitet mit zwei Handlern.
1. "on run" - Dieser wird ausgeführt, sobald das Skript gestartet wird.
2. "on theDialog" - Dieser Handler wird gleich im "on run"-Handler aufgerufen.
Es erfolgt praktisch ein Sprung vom run-Handler zum theDialog-Handler.
Wenn du das Skript genau anschaust, wirst du feststellen, dass innerhalb des theDialog-Handlers wiederum der Aufruf des selben Handlers vorkommt. Sobald im Dialogfeld eine falsche Eingabe erfolgt, wird der Handler erneut aufgerufen so dass wieder die Möglichkeit zur Texteingabe besteht.
Zitat: |
- Bis jetzt kenne ich bei Dialogen Texteingabefelder und Auswahllisten. Nun möchte ich einen Dialog mir sehr langem Default Text anzeigen lassen. Dabei gibt es jedoch keine Scrollliste und der Anwender kann den Text editieren. Das Ziel wäre, dass der Benutzer ausgewählte Textstellen in die Zwischenablage kopieren, bequem scrollen aber den Text nicht editiern kann. Gibt es da eine Lösung?
|
Dazu müsstest du mit der Scripting Addition "Dialog Director" arbeiten. Das würde ich aber an deiner Stelle noch etwas verschieben.
Zitat: |
Noch herzlichen Dank für Eure Hilfe!
Grüsse
Sir Loom
|
Nichts zu danken!
Es ist ja schließlich ein AppleScript-Forum.
Übrigens: Bitte keine spitzen Klammern im Text verwenden, sonst denkt das Forenskript, es wäre HTML-Code. Da es aber unwarscheinlich ist, dass dabei sinnvoller HTML-Code herauskommt, fehlt meistens einfach was im Text. Ich habe das bei deinen Postings mal ausgebessert. ![Cool](images/smiles/icon_cool.gif) _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Zuletzt bearbeitet von Snow am 01.03.2003 - 14:01, insgesamt einmal bearbeitet |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Snow Administrator
![Administrator Administrator](/phpBB2/images/ranks/ranki5.gif)
![](images/avatars/14843438503e582f0f04e8a.gif)
Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 16.10.2001 - 00:21 Titel: Allgemein: Display Dialog (mit Default Answer |
|
|
Zur Textauswahl gäbe es eine Lösung. Sie ist zwar etwas umständlich aber immerhin machbar:
set dieListe to ¨
{ "1. AppleScript ist total cool. ", ¨
"Man sollte es nicht ", "unterschätzen. ", ¨
"2. In dieser Liste können ", ¨
"die Zeilen einzeln ", "markiert und dann ", ¨
"kopiert werden. " }
choose from list dieListe ¨
OK button name "Kopieren" with multiple selections allowed
if the result is not false then
set the clipboard to the result as string
end if
Die einzelnen Textzeilen werden jeweils als Listeneintrag geschrieben. Drückt man die Shift-Taste, kann man mehrere Textzeilen auswählen. Den OK-Button habe ich hier in "Kopieren" umbenannt. Der markierte Text landet in der Zwischenablage.
Du kannst ja mal etwas damit herum experimentieren. Vielleicht nutzt es dir ja was. _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Zuletzt bearbeitet von Snow am 01.03.2003 - 14:02, insgesamt einmal bearbeitet |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Sir Loom •->
![•-> •->](/phpBB2/images/ranks/ranki0.gif)
Anmeldedatum: 16.03.2001 Beiträge: 14
|
Verfasst am: 16.10.2001 - 12:03 Titel: Allgemein: Display Dialog (mit Default Answer "") |
|
|
Herzlichen Dank für die Mühe! Bis auf das letzte Problem klappt jetzt alles bestens. Ich werd es einfach so machen, dass der Benutzer per Buttons auswählen kann, ob der ganze Text in die Zwischenablage kopiert oder als Textdatei gespeichert werden soll. Die Lösung mit der Liste ist in meinem Fall nicht ganz das Wahre. Die MacScripter's Magazine Ausgaben sind am downloaden...
bye, Sir Loom
PS: Das eigentliche Ziel war, das ausgewählte erhaltene Mail aus dem Outlook Express Postfach (aus dem zuvor der Text per Auswahl zur Konvertierung mit dem Script entnommen wurde) zum Bearbeiten zu öffnen und den konvertierten Text in die noch vorhandene Auswahl eizufügen. Soviel ich weiss ist diese Funktion (erhaltenes Mail zum Bearbeiten öffnen) jedoch nicht "scriptbar", deshalb begnügte ich mich mit der blossen Anzeige des Ergebnistextes. |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Sir Loom •->
![•-> •->](/phpBB2/images/ranks/ranki0.gif)
Anmeldedatum: 16.03.2001 Beiträge: 14
|
Verfasst am: 16.10.2001 - 12:12 Titel: Allgemein: Display Dialog (mit Default Answer "") |
|
|
Ist mir noch eine Frage eingefallen. :-)
Gibt es noch mehr Varianten der Eigenschaft "with icon stop" bei Dialogen (z.B. Error, Cauntion, Msg usw.)? |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Snow Administrator
![Administrator Administrator](/phpBB2/images/ranks/ranki5.gif)
![](images/avatars/14843438503e582f0f04e8a.gif)
Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 16.10.2001 - 19:09 Titel: Allgemein: Display Dialog (mit Default Answer "") |
|
|
Du kannst ganz leicht folgende Icons in Dialogboxen verwenden:
icon stop
icon note
icon caution
Wie du weitere Icons verwenden kannst, steht im MacScripter's Magazine 2. _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com |
|
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: 16.10.2001 - 20:40 Titel: Allgemein: Display Dialog (mit Default Answer "") |
|
|
Ich hätte da noch ein bisschen was zu ergänzen. Um einen Zeilenumbruch zu erzeugen muss man den Text nicht unbedingt gleich in seine Einzelteile zerlegen (Der arme Text!). Das "Text 1"&return&"Text 2" funktioniert zwar, wesentlich flotter einzugeben ist aber das Backslash-R: "Text 1\rText 2". Das wird beim Kompilieren im Skripteditor auch gleich in einen sichtbaren Zeilenumbruch verwandelt.
Den Backslash kann man auch noch anderweitig in Strings verwenden: Backslash-Anführungszeichen ( \" ) ermöglicht das Verwenden des Anführungszeichen innerhalb von Zeichenketten: "Mein Name ist \"danB\""
Und ein Backslash-T ( \t )ergibt einen Tabulator.
Den Backslash erzeugt man auf deutschen Tastaturen übrigens mit Shift-Alt-7.
Gruß,
danB _________________ danB
[url]mailto:danB@advancedscripting.de[/url]
http://www.advancedscripting.de |
|
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: 16.10.2001 - 20:44 Titel: Allgemein: Display Dialog (mit Default Answer "") |
|
|
Glatt vergessen: Sollte man des Englischen mächtig sein, ich habe auf der ScriptMyMac.de Linksite einige Links zu Hilfen&Anleitungen zum Thema AppleScript veröffentlich:
http://www.scriptmymac.de/html/links.html#anc_b _________________ danB
[url]mailto:danB@advancedscripting.de[/url]
http://www.advancedscripting.de |
|
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
|
|
|