Fenster erstellen

jannk

Niederhelfenschwiler Beeriapfel
Registriert
17.06.07
Beiträge
838
Wie kann ich ein Fenster (kein Dialog) erstellen, dass
-4 BevelButtons hat
-für jeden Button ein anderes Script ausführt
-den Menüpunkt "Fenster" enthällt, damit Afloat funktioniert.

Danke schon im Vorraus, Jann
 

mewX

Wohlschmecker aus Vierlanden
Registriert
26.12.06
Beiträge
241
Jedenfalls nicht mit AS. Mithilfe von Cocoa & Objective C kannst du dir so ein Programm in XCode schreiben :)
 

jannk

Niederhelfenschwiler Beeriapfel
Registriert
17.06.07
Beiträge
838
Hab leider kein XCode:-c
Eine andere Möglichkeit gibts nicht?
 

jannk

Niederhelfenschwiler Beeriapfel
Registriert
17.06.07
Beiträge
838
Supi:cool:
Bin jetzt am downloaden...
 

jannk

Niederhelfenschwiler Beeriapfel
Registriert
17.06.07
Beiträge
838
Ok, alles Heruntergeladen, neues Projekt angelegt (Cocoa Application) und jetzt wie weiter? (Hab noch nie mit XCode gearbeitet)
 

jannk

Niederhelfenschwiler Beeriapfel
Registriert
17.06.07
Beiträge
838
Also, ich hab mal angefangen, und von der Darstellung her ist es eigentlich schon (fast) gut.
Hier die Punkte, die mir Probleme bereiten:
1. Wie füge ich ein Script zu einem Butten hin?
2. Im Menu Window werden die Afloat Funktionen nicht angezeigt.
3. Wie erxportiere ich dass ganze nachher als Programm?

Das ganze Projekt könnt ihr auf GMX herunterladen (hat 1.6 MB und kann desshalb nicht als Anhang gewählt werden)

Hier der Link: http://service.gmx.net/mc/Ej6jPyDYGUv99JZBsAXnrRp2sQQyN9
 

Daisy

Uelzener Rambour
Registriert
14.01.06
Beiträge
366
Jedenfalls nicht mit AS. Mithilfe von Cocoa & Objective C kannst du dir so ein Programm in XCode schreiben :)

Hi Jann,

weiss nicht, was mewX gegen AppleScript(Studio) hat ;). Wenn ich deine Aufgabe richtig verstehe, dann ist es sicher die einfachere Lösung bei AS zu bleiben ...

Mach ein neues Xcode-Projekt vom Typ 'AppleScript Application' auf. Dann öffne dein nib im Interface Builder und kopiere deine 4 Knöppe rein. Im Inspektorfenster (Apfel-8) gibst du jedem Button einen eigenen Namen und verbindest ihnmit dem 'on clicked handler' in deinem Script (Häkchen bei Event Handler -> Action -> Clicked und Radio Button vor deinem Script aktivieren unten bei 'Script' - siehe Screenshot)

Dann könnte dein on clicked handler ungefähr so aussehen:

Code:
on clicked theObject
	set btnName to (name of theObject)
	if (btnName is "iSuch") then
		display dialog ("iSuchscript here ...")
		
	else if (btnName is "iDruck") then
		display dialog ("iDruckscript here ...")
		
	else if (btnName is "iRechner") then
		display dialog ("iRechnerscript here ...")
		
	else if (btnName is "iNotiz") then
		display dialog ("iNotiz here ...")
		
	end if
end clicked

hier fügst du statt der display dialogs halt einfach deine Scripte ein - voilá ...

Das mit dem Fenster-Menü und afloat (verwende ich nicht) verstehe ich nicht ganz. Ein neues Projekt hat doch automatisch ein Fenster (Window)-Menü? Oder brauchst du es einfach nur in deutsch?

Ich hoffe, das hilft dir weiter ...

Grüße,

Daisy
 

Anhänge

  • ib.png
    ib.png
    46,7 KB · Aufrufe: 172
  • Like
Reaktionen: space

mac@engelthal

Rheinischer Krummstiel
Registriert
15.03.07
Beiträge
386
Irgendwie kann ich in AS-Studio in einer AS-Datei keine mehrfachen on-Clicked-Handler definieren. Woran kann das liegen? Oder ist das gar ein gewollter "_bug_"?
 

Daisy

Uelzener Rambour
Registriert
14.01.06
Beiträge
366
Irgendwie kann ich in AS-Studio in einer AS-Datei keine mehrfachen on-Clicked-Handler definieren. Woran kann das liegen? Oder ist das gar ein gewollter "_bug_"?

wie meinst du das?

so vielleicht?

Code:
on clicked theObject 

...

end clicked

on clicked theObject2

...

end clicked

Wenn ja, das ist ein gewollter 'Bug' ;) ... jeder Handler kann nur einmal in einem Script auftauchen. Du müsstest dann bei Aufruf des Handlers nach Objekteigenschaften (AppleScript-Name vorzugsweise) unterscheiden - siehe mein Beispiel weiter oben.
 
  • Like
Reaktionen: mac@engelthal

the x-master

Riesenboiken
Registriert
29.01.06
Beiträge
290
Mir gefällt das Demo-Projekt so sehr, sodass ich es jetzt nachgebaut habe (basierend auf Daisy's Code). :D
Falls also jemand noch Probleme damit hat, kann er es hier nochmal als fertiges Xcode Projekt herunterladen. Danke schön, Daisy. ;)

Grüße,
X.
 

Anhänge

  • iTools.zip
    21 KB · Aufrufe: 95

jannk

Niederhelfenschwiler Beeriapfel
Registriert
17.06.07
Beiträge
838
Merci Daisy:-D

Hab es zuert einmal selbst mit dem Script probiert, ist aber nicht gegangen (Wenn ich auf die Taste klicke kommt kein display dialog), hab dann mal meine Scripts statt die dialogs angehängt, hat aber auch nicht funktioniert.:-c

Danach wollte ich einen Entrag schreiben, leider hat Safari 3 mein Kennwort nicht mehr angenommen, also bin ich dann hald eben hinter meine zahlreichen Hausaufgaben.

Heute hab ichs dann mal mit Firefox probiert, ist gegangen:-D

Dann hab ich natürlich sofort the x-master's Xcode Projekt heruntergeladen, funktionier aber auch nicht:mad:

Was mache ich falsch? Reicht der "Test Interface"-Modus nicht, um es auszuprobieren, also muss ich es als Programm exportieren? (Wie mache ich das?)

Gruss Jann
 

the x-master

Riesenboiken
Registriert
29.01.06
Beiträge
290
Merci Daisy:-D

Hab es zuert einmal selbst mit dem Script probiert, ist aber nicht gegangen (Wenn ich auf die Taste klicke kommt kein display dialog), hab dann mal meine Scripts statt die dialogs angehängt, hat aber auch nicht funktioniert.:-c

Danach wollte ich einen Entrag schreiben, leider hat Safari 3 mein Kennwort nicht mehr angenommen, also bin ich dann hald eben hinter meine zahlreichen Hausaufgaben.

Heute hab ichs dann mal mit Firefox probiert, ist gegangen:-D

Dann hab ich natürlich sofort the x-master's Xcode Projekt heruntergeladen, funktionier aber auch nicht:mad:

Was mache ich falsch? Reicht der "Test Interface"-Modus nicht, um es auszuprobieren, also muss ich es als Programm exportieren? (Wie mache ich das?)

Gruss Jann

Hallöchen Jann :),

nein - der IB Testmode reicht in der Tat nicht aus.
Du musst in Xcode das Hammer-Symbol betätigen (Build).
Dann wird das Programm erzeugt und du findest es in dem Projektverzeichnis unter Build -> Release bzw. Debug -> iTools.app

Du kannst das Programm am schnellsten durch Xcode aufrufen, indem du den Button betätigst, unter dem die Schrift 'Build and Go' steht. (Hammer + Grüner Button).

Hoffe, das hilft. :)

Grüße,
X.
 

jannk

Niederhelfenschwiler Beeriapfel
Registriert
17.06.07
Beiträge
838
Merci, jetzt funktioniert fasto_O

Folgendes Script funktioniert nich nicht: (In AppleScript gehts, nicht so in Xcode)


set stingToBeDisplayed to "Was möchtest du suchen?"
set tempVar to display dialog stingToBeDisplayed buttons {"Text(Google)", "Text(Wikipedia)", "Bilder(Google)"}
set theButtonPressed to button returned of tempVar

--GoogleText
if theButtonPressed is "Text(Google)" then
set Suchworte to text returned of (display dialog "Bitte Suchbegriffe eingeben" default answer "")
set mySearch to " "
set myReplace to "+"

set Suchworte to textReplace(Suchworte, mySearch, myReplace)

set myURL to ¬
"http://www.google.de/search?hl=de&q=" & Suchworte & "&btnG=Suche&meta=lr%3Dlang_de"

open location myURL
end if



if theButtonPressed is "Text(Wikipedia)" then
set Suchworte to text returned of (display dialog "Bitte Suchbegriffe eingeben" default answer "")
set mySearch to " "
set myReplace to "+"

set Suchworte to textReplace(Suchworte, mySearch, myReplace)

set myURL to ¬
"http://de.wikipedia.org/wiki/" & Suchworte

open location myURL
end if


if theButtonPressed is "Bilder(Google)" then
set Suchworte to text returned of (display dialog "Bitte Suchbegriff eingeben" default answer "")
set mySearch to " "
set myReplace to "+"

set Suchworte to textReplace(Suchworte, mySearch, myReplace)

set myURL to ¬
"http://images.google.de/images?hl=de&q=" & Suchworte & "&btnG=Suche&lr=lang_ch&ie=UTF-8&oe=UTF-8&um=1&sa=N&tab=wi"

open location myURL
end if






on textReplace(theText, srchStrng, replStrng)
log theText
tell (a reference to AppleScript's text item delimiters)
set {od, contents} to {contents, {srchStrng}}
try
set {textList, contents} to {(text items of theText), {replStrng}}
set {Newtext, contents} to {(textList as text), od}
return item 1 of result
on error ErrMsg number errNbr
set contents to od
error ErrMsg number errNbr
end try
end tell
end textReplace
 

space

Neuer Berner Rosenapfel
Registriert
02.12.05
Beiträge
1.949
Code:
--GoogleText
if theButtonPressed is "Text(Google)" then
	set Suchworte to text returned of (display dialog "Bitte Suchbegriffe eingeben" default answer "")
	set mySearch to " "
	set myReplace to "+"
	
	set textReplace to {Suchworte, mySearch, myReplace}
	set Suchworte to textReplace
	set myURL to ¬
		"http://www.google.de/search?hl=de&q=" & Suchworte & "&btnG=Suche&meta=lr%3Dlang_de"
	tell application "Safari" to open location myURL
end if

Gruss