- Registriert
- 23.07.12
- Beiträge
- 1
Hallo zusammen,
ich hab' letztens begonnen in Xcode 4 mit Cocoa Applescript zu programmieren. Dabei bin ich auf folgendes Problem gestoßen, für das ich leider keine Lösung habe:
Das folgende Script funktioniert in dem Sinne, dass man den Start-Button (linked mit clickedStart_(...)) drückt, ein Prozess startet und der Progress-Balken "myProgressBar" läuft.
Was nicht klappt ist, dass sich während der Repeat-Schleife der Cancel-Button (linked mit clickedStop_(...)) drücken ließe um den Process vorzeitig abzubrechen. Beide Buttons ("Start" und "Cancel") sind nach einmaligem Drücken von "Start" eingefroren. Erst wenn der Prozess zu Ende ist, kann man wieder einen Button drücken
Was mache ich falsch? Wie kann ich einen Prozess im Hintergrund laufen lassen, dessen Fortschritt über den Progress-Balken angezeigt wird, und der sich nahezu jederzeit über den Cancel-Button abbrechen lässt?
Danke im Voraus für Eure Hilfe, Sese
ich hab' letztens begonnen in Xcode 4 mit Cocoa Applescript zu programmieren. Dabei bin ich auf folgendes Problem gestoßen, für das ich leider keine Lösung habe:
Das folgende Script funktioniert in dem Sinne, dass man den Start-Button (linked mit clickedStart_(...)) drückt, ein Prozess startet und der Progress-Balken "myProgressBar" läuft.
Was nicht klappt ist, dass sich während der Repeat-Schleife der Cancel-Button (linked mit clickedStop_(...)) drücken ließe um den Process vorzeitig abzubrechen. Beide Buttons ("Start" und "Cancel") sind nach einmaligem Drücken von "Start" eingefroren. Erst wenn der Prozess zu Ende ist, kann man wieder einen Button drücken

Was mache ich falsch? Wie kann ich einen Prozess im Hintergrund laufen lassen, dessen Fortschritt über den Progress-Balken angezeigt wird, und der sich nahezu jederzeit über den Cancel-Button abbrechen lässt?
Danke im Voraus für Eure Hilfe, Sese

Code:
-- Cocoa Applescript Application
--
-- AppDelegate.applescript
-- SimpleProgressBar
--
script AppDelegate
property parent : class "NSObject"
property myProgressBar : missing value
property myPleaseStop : false
on myRun_()
-- init
set myProgressBar's isIndeterminate to false
myProgressBar's setMinValue_(0)
myProgressBar's setMaxValue_(100)
end myRun_
on clickedStop_(aNotification)
-- set stop flag
set myPleaseStop to true
end clickedStop_
on clickedStart_(aNotification)
-- start progress
set myPleaseStop to false
repeat with myCounter from 1 to 5
myProgressBar's incrementBy_(20.0)
delay 2
if myPleaseStop is true then exit repeat
end repeat
end clickedStart_
on applicationWillFinishLaunching_(aNotification)
-- Insert code here to initialize your application before any files are opened
myRun_()
end applicationWillFinishLaunching_
on applicationShouldTerminate_(sender)
-- Insert code here to do any housekeeping before your application quits
return current application's NSTerminateNow
end applicationShouldTerminate_
end script