Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Problem beim setzen der bounds eines Fenster

 
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Studio Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
hoschy07
•->
•->


Anmeldedatum: 07.11.2005
Beiträge: 11

BeitragVerfasst am: 25.03.2006 - 20:25    Titel: Problem beim setzen der bounds eines Fenster Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
till
•--->
•--->


Anmeldedatum: 21.04.2005
Beiträge: 187
Wohnort: q-town (R-P)

BeitragVerfasst am: 25.03.2006 - 20:51    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
ShooTerKo
•--->
•--->


Anmeldedatum: 21.03.2006
Beiträge: 221
Wohnort: Hamburg

BeitragVerfasst am: 30.03.2006 - 13:46    Titel: Antworten mit Zitat

Interessantes Problem Smile
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? Shocked

Ich habe mal ein wenig nachgelesen und bin auf folgende Tiger-Neuheit gekommen: Shocked
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 Very Happy , oder es führt dich in eine ganz falsche Richtung Embarassed

CU
ShooTerKo
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
hoschy07
•->
•->


Anmeldedatum: 07.11.2005
Beiträge: 11

BeitragVerfasst am: 02.04.2006 - 19:51    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Studio Forum Alle Zeiten sind GMT + 2 Stunden
Seite 1 von 1

 
Gehe zu:  
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


AppleScript für absolute Starter