Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
hoschy07 •->
Anmeldedatum: 07.11.2005 Beiträge: 11
|
Verfasst am: 25.03.2006 - 20:25 Titel: Problem beim setzen der bounds eines Fenster |
|
|
Hallo Forum!
Ich habe ein verzwicktes Problem. Und zwar habe ich ein Studio X Programm, welches unter anderem beim klick auf einen Button ein Fenster entweder vergrößert oder verkleinert. Das ganze funktioniert auch gut, allerdings hat mir ein Tester gemeldet, dass bei diesem die Funktion nicht funktioniert. Das äußert sich entweder darin, dass das Fenster verschwindet, und nicht mehr auftaucht, oder das Programm ganz abstürzt.
Meiner Meinung nach ist aber alles richtig programmiert.
Ich habe nun ein Debug-Programm erstellt, was ledigliche ein Fenster und einen Button hat. Beim klick auf den Button wird entweder vergrößert oder verkleinert.
Bei dem User verschwindet wieder das ganze Fenster anstatt die Größe zu verändern.
Das ist der Programmcode:
Code: |
property clickStatus : true
on clicked theObject
if clickStatus is true then
set clickStatus to false
else
set clickStatus to true
end if
set {tx, ty, txx, tyy} to bounds of window "mainWindow"
tell window "mainWindow"
if clickStatus is true then
set bounds to {tx, (ty + 20), txx, tyy}
else
set bounds to {tx, (ty - 20), txx, tyy}
end if
end tell
end clicked
|
Ich wäre wirklich sehr glücklich, wenn jemand Hilfe hat. Notfalls kann ich auch das Crashlog posten, was aber sehr unverständlich ist.
Ach ja, der User hat Shapeshifter installiert. Evtl. kann es daran liegen. Er sagt aber, dass er es unter einen ganz jungfräulichen Account getestet hat wo Shapeshifter nicht lief.
Schöne Grüße, hoschy07. |
|
Nach oben |
|
|
till •--->
Anmeldedatum: 21.04.2005 Beiträge: 187 Wohnort: q-town (R-P)
|
Verfasst am: 25.03.2006 - 20:51 Titel: |
|
|
wenn nur gecklickt werden soll müsste das eigentlich so gehen:
variante mit 2 buttons!
nicht getestet!!!
Zitat: |
roperty clickStatus : true
on clicked theObject
set {tx, ty, txx, tyy} to bounds of window "mainWindow"
-- button 1
if the name of theObject is equa lto "vergrößern" then
tell window "mainWindow"
set bounds to {tx, (ty + 20), txx, tyy}
end tell
-button 2
else if the name of theObject is equal to "verkleinern" then
tell window "mainWindow"
set bounds to {tx, (ty - 20), txx, tyy}
end tell
end if
end clicked
|
gruß till _________________ ein berühmter Philosoph (<-Ich) sagte einmal:
" es ist nicht das Problem was uns Kopfzerbrechen macht,
es ist der Kopf selbst, der sich erdrückt" |
|
Nach oben |
|
|
ShooTerKo •--->
Anmeldedatum: 21.03.2006 Beiträge: 221 Wohnort: Hamburg
|
Verfasst am: 30.03.2006 - 13:46 Titel: |
|
|
Interessantes Problem
Vielleicht möchtest du das Fenster nicht nur um 20px vergrößern, sondern um viel mehr und aus Versehen verschiebst du es nach außerhalb des Bildschirms?
Ich habe mal ein wenig nachgelesen und bin auf folgende Tiger-Neuheit gekommen:
set coordinate system to Cocoa coordinate system
set coordinate system to AppleScript coordinate system
set coordinate system to classic coordinate system
Vielleicht ändert ShapeShifter etwas an dem verwendeten Standardkoordinatensystem?
Bei meinem Script (frei nach Till)
Code: | on clicked theObject
set oldCoordSys to coordinate system
(*
AppleScript coordinate system
classic coordinate system
Cocoa coordinate system
*)
set {l, b, r, t} to bounds of window 1
log {l, b, r, t}
--set coordinate system to Cocoa coordinate system
set coordinate system to AppleScript coordinate system
--set coordinate system to classic coordinate system
set {l, b, r, t} to bounds of window 1
log {l, b, r, t}
if the name of theObject is equal to "plus" then
tell window 1
set bounds to {l, b - 20, r, t}
end tell
else if the name of theObject is equal to "minus" then
tell window 1
set bounds to {l, b + 20, r, t}
end tell
end if
set coordinate system to oldCoordSys
end clicked |
verhält sich je nach Koordinatensystem das Fenster anders, z.B. bei Verwendung des Cocoa-Koordinatensystems verschiebt sich das Fenster komplett, weil sich die Bounds bei Cocoa sich so aufbauen: {linksobenx, linksobeny, fensterbreite, fensterhoehe}.
Bei Applescript Koordinaten sehen die Bounds so aus: {left, top, right, bottom}.
Dann gibt es noch die Classic-Koordinaten: {left, bottom, right, top}, was default ist / sein sollte.
Vielleicht solltest du die Koordinaten auf dein Wunschsystem setzen (siehe mein Script). Da mir die systemweiten Auswirkungen jedoch nicht ganz klar sind, solltest du den alten Stand sichern, dann für dich ändern und später wieder zurücksetzen.
Evtl. hilft dir das , oder es führt dich in eine ganz falsche Richtung
CU
ShooTerKo |
|
Nach oben |
|
|
hoschy07 •->
Anmeldedatum: 07.11.2005 Beiträge: 11
|
Verfasst am: 02.04.2006 - 19:51 Titel: |
|
|
Hallo und vielen Dank für die Lösungsvorschläge!
Ich habe nun den Fehler gefunden und der ist ziemlich seltsam.
Es gibt Probleme, wenn folgende Addition installiert ist: QXPScriptingAdditions.osax
Sobald die Addition entfernt ist funktioniert es wunderbar. Mit QuarkXPress wird die Addition automatisch installiert und scheint einige Fehler mit zu bringen.
Schöne Grüße, hoschy07. |
|
Nach oben |
|
|
|
|
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
|
|
|