Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Jens Hoffmann •--->

Anmeldedatum: 07.05.2001 Beiträge: 175
|
Verfasst am: 11.05.2001 - 15:11 Titel: Fenster-Position merken - DialogDirector |
|
|
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 |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 11.05.2001 - 15:21 Titel: Fenster-Position merken |
|
|
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 |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 11.05.2001 - 15:32 Titel: Fenster-Position merken |
|
|
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 |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 11.05.2001 - 16:15 Titel: Fenster-Position merken |
|
|
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 |
|
 |
Jens Hoffmann •--->

Anmeldedatum: 07.05.2001 Beiträge: 175
|
Verfasst am: 11.05.2001 - 16:50 Titel: Fenster-Position merken |
|
|
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 |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 11.05.2001 - 17:51 Titel: Fenster-Position merken |
|
|
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 |
|
 |
Jens Hoffmann •--->

Anmeldedatum: 07.05.2001 Beiträge: 175
|
Verfasst am: 15.05.2001 - 09:55 Titel: Fenster-Position merken |
|
|
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 |
|
 |
|
|
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
|
|
|