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

Fenster-Position merken - DialogDirector

 
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Jens Hoffmann
•--->
•--->


Anmeldedatum: 07.05.2001
Beiträge: 175

BeitragVerfasst am: 11.05.2001 - 15:11    Titel: Fenster-Position merken - DialogDirector Antworten mit Zitat

Hallo Leute
Mit DialogDirector gibt es ja die Möglichkeit, die Fensterposition zu speichern, damit beim nächsten Start des Scripts das Fenster da geöffnet wird, wo man es zugemacht hat. Ich habe nun das Beispielscript in mein eigenes übernommen (angepasst), es als Applet gesichert und bekomme beim Beenden nun ein "An error of type 3 has occured". Wenn ich das Script im Editor ausführe, schliesst sich zwar das Script, nun scheint aber der Skripteditor die Angaben auf das Editorfenster zu beziehen, denn nur, wenn ich nochmal mit Apfel+Q beende, steigt er aus dem Sciprt aus (ich hoffe, das ist einigermassen zu verstehen). So sieht's im Script aus:

property posn : {20, 40, 405, 254} -- Fensterposition
global fenster

set dlog to {bounds:posn, style:standard palette, closeable:true, name:"TEst", contents:{¨
{class:pict, bounds:[0, 0, 385, 214], contents:300}, ¨
{class:poly push button, bounds:[271, 165, 380, 184]}, ¨
{class:poly push button, bounds:[17, 165, 102, 184]}, ¨
{class:poly push button, bounds:[270, 68, 378, 87]}, ¨
{class:poly push button, bounds:[270, 36, 378, 55]}, ¨
{class:poly push button, bounds:[270, 101, 378, 119]}, ¨
{class:poly push button, bounds:[140, 165, 225, 184]}, ¨
{class:list box, bounds:[10, 40, 255, 150], contents:liste, action:1, font:5, column widths:[10, 340]}, ¨
{class:text field, bounds:[10, 9, 372, 21], value:" Status:", font:5} ¨
} }

dd install with fonts {null, null, null, null, {name:"Geneva", size:9}, {name:"Geneva", size:9, style:bold}} with grayscale
set fenster to dd auto dialog dlog

repeat
-- hier kommen dann diverse Aktionen...
end repeat
set posn to last item of fenster -- Hier liegt der Fehler???
dd uninstall
quit me

Was mache ich falsch?
(Das ganze Script zu posten würde wenig Sinn machen, da die Schlatflächen über eine Grafik definiert sind, Ihr würdet also gar nichts sehen und könntet nur blind klicken)
Danke und ciao, Jens



(Geändert von Jens Hoffmann am 15:14 Uhr am 11 Mai 2001)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 11.05.2001 - 15:21    Titel: Fenster-Position merken Antworten mit Zitat

Hallo Jens,

so wie ich das sehe, hast du den Fehler schon erkannt:

set posn to last item of fenster -- Hier liegt der Fehler???

Ich würde mal sagen, das last item of fenster sieht so aus:

{class:text field, bounds:[10, 9, 372, 21], value:" Status:", font:5}

Das dürfte für eine Positionsangabe ziemlich unbrauchbar sein.

Probier's mal in der Richtung:

set posn to bounds of (last item of fenster)

Vielleicht klappt's ja dann.

Gruß
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 11.05.2001 - 15:32    Titel: Fenster-Position merken Antworten mit Zitat

Sorry, war Schwachsinn!

Die bounds geben ja nur die Position des Textfeldes an.

Da muss ich doch mal einen Blick in die DD-Anleitung werfen.
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 11.05.2001 - 16:15    Titel: Fenster-Position merken Antworten mit Zitat

So, jetzt bin ich wieder da.

Ich habe mir jetzt mal das Beispiel-Skript von DD angesehen und dann Schritt für Schritt deine Anpassungen übernommen.

Es läuft. Der Fehler dürfte also durch die Anweisungen in der Schleife entstehen.

Ich bekomme zwar auch eine Fehlermeldung, wenn ich das Skript im Skripteditior laufen lasse, aber das ist ja logisch.

Die Fehlermeldung lautet: Das Skript konnte nicht ausgeführt werden, da gerade ein Skript ausgeführt wird.

;)  Sehr aussagekräftig.

Es bezieht sich aber auf den letzten Befehl im Skript

quit me

Beenden kann man schließlich nur Programme. Wenn das Skript vom Skripteditor aus gestartet wird, ist es in diesem Fall ja nur ein Skripteditor-Dokument. Der quit-Befehl richtet sich dadurch an das ausführende Programm, welches ja der Skripteditor ist.
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Jens Hoffmann
•--->
•--->


Anmeldedatum: 07.05.2001
Beiträge: 175

BeitragVerfasst am: 11.05.2001 - 16:50    Titel: Fenster-Position merken Antworten mit Zitat

Jetzt ist mir noch was aufgefallen. Ich hatte ursprünglich "dd make dialog" statt" dd auto dialog" verwendet. Wenn ich "auto" verwende, funktioniert keine der "repeat"-Schleifen (oder liegt's am dd interact with user?) mehr richtig.
Was ist denn der genaue Unterschied von make dialog und auto dialog?
Nehme ich "make dialog" bekomme ich nach dem Beenden die Meldung "Can't make some data into the expected type." und "last item" aus der Zeile:
set posn to last item of fenster
ist markiert. Was bedeuted das?
Jens
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 11.05.2001 - 17:51    Titel: Fenster-Position merken Antworten mit Zitat

Hallo Jens,

dd auto dialog ist eigentlich nur für einfachere Dialoge gedacht. Nach dem Anklicken eines Push-Buttons wird der Dialog beendet. Als Ergebnis wird ein Datensatz geliefert, der die Werte aller Items beinhaltet.

Für komplexere Dialoge musst du "dd install" und "dd make dialog" benutzen. Dies ist auch der Fall, wenn du "dd interact with user" verwenden willst. Die Werte der einzelnen items müssen aber extra abgefragt werden.

Das steht ausführlicher erklärt in der Anleitung.

Die originale Anleitung ist ja ein Worddokument. Ich dachte mir, dass dies nicht gerade praktisch ist, um etwas nachzuschlagen. Deshalb habe ich die Anleitung mal in HTML umgesetzt.

Dort hast du dann im linken Frame die Befehle alle aufgelistet und kannst leicht dorthin springen.

Die Anleitung kannst du auf meiner Page herunterladen. Es ist auch ein Link zum Online-Lesen dort:

Download-Bereich

Auf der Seite ganz nach unten scrollen. Dort wirst du fündig.

Gruß
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com


Zuletzt bearbeitet von Snow am 01.03.2003 - 15:58, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Jens Hoffmann
•--->
•--->


Anmeldedatum: 07.05.2001
Beiträge: 175

BeitragVerfasst am: 15.05.2001 - 09:55    Titel: Fenster-Position merken Antworten mit Zitat

Hallo
Erst mal Danke an Snow für Deine Hinweise. Die haben mich auf die Lösung gebracht:
Bei "dd auto dialog variable" enthält die Variable ein Array diverser Fenstereigenschaften, bei "dd make dialog variable" enthält sie nur eine ID, mit der das Fenster referenziert wird:

set fenster to dd make dialog dlog
dd get bounds of fenster

Die Umsetzung des DD-Manuels in HTML war eine gute Idee, jetzt brauchen wir nur noch jemand, der das ganze ins Deutsche übersetzt ;-)

ciao Jens
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-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