mehrere Variablen in einem Dialog setzen

maceis

maceis

Aktives Mitglied
Thread Starter
Dabei seit
24.09.2003
Beiträge
16.880
Reaktionspunkte
626
Hallo zusammen,

neuerdings versuche ich mich etwas mit AppleScript und bin auf folgendes Problem gestoßen.
Ich möchte gerne in einem Dialo mehrer Variablen setzen.
Bisher habe ich das so gelöst:
PHP:
set datei to text returned of (display dialog "Datei mit Pfad eingeben:" 
  default answer "/Users/maceis/as/text" buttons {"OK", "Abrechen"} 
  default button 1)
set Suchtext to text returned of (display dialog "Suchtext eingeben:" 
  default answer "" buttons {"OK", "Abrechen"} 
  default button 1)
set Ersatztext to text returned of (display dialog "Ersatztext eingeben:" 
  default answer "" buttons {"OK", "Abrechen"} 
  default button 1)
Damit werden aber hintereinander drei Dialogfenster geöffnet.
Gibt es eine Möglichkeit alle drei Variablen in einem Dialog setzen zu lassen?
 
maceis schrieb:
Damit werden aber hintereinander drei Dialogfenster geöffnet.
Gibt es eine Möglichkeit alle drei Variablen in einem Dialog setzen zu lassen?

Nein, außer du arbeitest mit AppleScript-Studio. Dann kannst du dir das Dialogfenster entsprechend erstellen und auch auswerten.
 
Danke für die Antwort.

Bin grade dabei mir das anzusehen.
Sieht gut aus :D.
 
Hi maceis,

wie ich sehe, lässt dir die Suchen & Ersetzen Geschichte noch keine Ruhe... ;)

Auch wenn ich dir nicht wirklich helfen kann, so habe ich doch zwei kleine Anmerkungen – rein interessehalber:

1. Seit wann bist du so fleißig? :D Den String buttons {"OK", "Abrechen"} default button 1) könntest du dir doch jeweils sparen oder spricht etwas dagegen, die Standardausgabe von Dialogen bei AS zu erhalten?

2. Ließe sich so etwas – neben AS Studio – nicht auch mit XCode bewerkstelligen? Das Ergebnis deines Ansatzes habe ich so mal eben schnell rein optisch und ohne Funktionalität mit dem InterfaceBuilder nachgebaut – siehe Anhang. Oder täusche ich mich?

Viel Spaß noch beim Weiterbasteln – ich bin schon auf das Ergebnis gespannt.

Schönen Gruß,

:)

Dylan
 

Anhänge

  • Bild 1.pdf
    10,2 KB · Aufrufe: 103
Zuletzt bearbeitet:
hallo dylan,

die "Suchen & Ersetzen Geschichte" ist eigentlich nur ein Vorwand, um mich mit AS zu befassen

zu 1.: Tatsache; wie gesagt, in Sachen AS bin ich ein echter Noob (obwohl ich schon immer was dagegen tun wollte :D); das Zeug kann natürlich raus.
zu 2.: Im Interface Builder bin ich grade drin. Ich dachte AppleScript-Studie ist in XCode integriert. Oder ist das doch was eigenes?

Der eigentlich Code zum ersetzen sieht übrigens zurzeit so aus:
PHP:
do shell script "perl -pi -e \"s/\\b" & Suchtext & "\\b/" & Ersatztext & "/g\" " & datei
Damit kann man allerdings bisher nur einzelne ganze Wörter suchen und ersetzen lassen.
Kann man sicher ausbauen, aber darum gehts mir im Augenblick nicht.

Gruß in die Berge ;)
 
maceis schrieb:
wie gesagt, in Sachen AS bin ich ein echter Noob

Hey – ich noch viel mehr, deshalb habe ich es wohl selbst nicht geblickt, dass...

maceis schrieb:
AppleScript-Studie ... in XCode integriert

ist. :D Habe für ein paar vereinzelte Projekte nur eben XCode direkt geöffnet und dort im InterfaceBuilder Menüs zusammengeschustert und mit einzelnen AScripten zusammengefrickelt. Leider komme ich viel zu selten dazu, mich wirklich damit zu beschäftigen... :(

maceis schrieb:
Gruß in die Berge ;)

Gruß zurück – darüber (über "die Berge") müssen wir uns eh noch einmal gesondert unterhalten, wenn ich mir deine Domain so ansehe... ;)

Dylan
 
Snow schrieb:
Nein, außer du arbeitest mit AppleScript-Studio. Dann kannst du dir das Dialogfenster entsprechend erstellen und auch auswerten.

Das habe ich inzwischen hinbekommen, allerdings ist zwischenzeitlich folgendes neues Problem aufgetaucht.

Erstmal der Code:
PHP:
on clicked theButton
	if the name of the theButton is "OKButton" then
		-- tu was
	else if name of the theButton is "Abbrechen" then
		set Abbrechen to "Programm beenden?"
		display dialog Abbrechen with icon caution giving up after 5 
		   buttons {"Nicht beenden", "Beenden"} attached to window "MainWindow"
		set DlogResult to result
		if button returned of result is "Beenden" then
			quit
		else if button returned of result is "Nicht beenden" then
			beep 2
		end if
	end if
end clicked

In XCode kann ich das kompilieren und es läuft erwartungsgemäß.
Beim Klick auf "Beenden" wird das Programm beendet, beim Klick auf "Nicht beenden" ertönen zwei Warntöne.

Wenn ich aber die kompilierte Anwendung außerhalb XCode starte erhalte ich beim Klick auf "Abbrechen im "MainWindow" sofort den AppleScript Error "The variable result is not defined. (-2753)".
Das "angehängte" Fenster geht trotzdem auf, reagiert aber nicht richtig.

Kann mir jemand sagen, wo das Problem liegt und warum es in XCode läuft und außerhalb nicht?
 
Zuletzt bearbeitet:
Zurück
Oben Unten