AW: Skripting - Grundlagen und Allgemeines
Hallo Walter,
Ansonsten gibt es eben nur die Zugriffsmöglichkeiten PushImage / PopImage nach der LIFO-Methode (LastIn-FirstOut) zum Durchschieben des Images von Position 0 in den Stackspeicher (Position 1 .. n) bzw. wieder zurück, SwapImage für den direkten Austausch der Images auf den den Positionen 0 und 1, Load Image für den Transfer eines Images von einem Speichermedium in die Position 0, NewImage zum Erzeugen eines leeren Bildes (gewissermaßen Löschen) auf der Position 0, SaveImage zum Transfer eines Images von Position 0 zum Speichermedium, ImportImage("") zur Darstellung eines auf Position 0 befindlichen Images im FF-Arbeitsfenster und ShowImage zur Darstellung eines auf Position 0 befindlichen Images in einem eigenen Fenster.
Dies scheinen (zumindest nach meinen Erkenntnissen) alle diesbezüglichen Skript-Operationen zu sein. Ein Nachteil für das zuletzt genannte Kommando FF_ShowImage, das zwar eine einfachere Möglichkeit bietet, ein Image ohne das Arbeiten über das Dialog-Handling anzuzeigen, liegt in der Tatsache, dass jedes in Folge innerhalb eines Skriptes ausgeführte FF_ShowImage stets eine neue "Fenster-Instanz" erzeugt. Ich habe noch keine Möglichkeit gefunden, ein so mit ShowImage erzeugtes Fenster vor dem nächsten ShowImage erst mal wieder zu schließen.
Vielleicht lässt sich Joachim hierzu mal was einfallen.
Ansonsten halte ich die von Werner angegebene Begrenzung des Stacks auf 10 Plätze für nicht (mehr) zutreffend. Es können soviel Stackpositionen belegt werden, wie Speicherplatz zur Verfügung steht. Dies ist lediglich dvon abhängig, wie groß die auf den Stack gepushten Images sind und wieviel Arbeitsspeicher im Rechner zur Verfügung steht und von FF nicht anderweitig benutzt wird.
Gruß
Heinrich
Nachtrag: Die Anmerkung, dass die mit FF_ShowImage separat geöffneten Fenster zur Darstellung von Images nicht geschlossen werden können, gilt so nur für die Steuerung aus einem Skript heraus (mangels eines entsprechenden FF_Befehles). Interaktiv lässt sich ein solches mit FF_ShowImage geöffnetes Fenster sehr wohl schließen, denn das Fenster verfügt - wie bei Windows üblich - in der oberen Leiste über einen Exit-Button (X), mit dem per Mausklick das Fenster geschlossen wird.
In der Aufzählung der vorstehenden FF_Image-Transferbefehle fehlt noch die Erwähnung von FF_Reload. Zu diesem Befehl heißt es in der Bedienungsanleitung:
Das Bild im Speicher wird in die FF-Arbeitsfläche übernommen.
Beim Test dieses Befehles ist mir aufgefallen, dass damit erst nach Abschluss des Skriptes - egal zu welchem Zeitpunkt der Befehl im Skript ausgeführt wird - das zuletzt im Speicher befindliche Image auf die FF-Arbeitsfläche geladen wird. Damit kann sichergestellt werden, dass das im Skript zuletzt bearbeitete Image in der FF-Arbeitsfläche zum Abschluss dargestellt wird.
Hallo Walter,
Jein, möglicherweise gehen wir von unterschiedlichen Situationen aus. Der auch von Werner in seinem vorhergehenden Beitrag erwähnte Direktzugriff über die Ordnungnummer der Stackposition bietet (nur) die Möglichkeit, ein dort vorher mit FF_PushImage hintransferiertes Image in ein Dialog(Steuer)element vom Typ IMAGE zu laden und innerhalb eines Dialoges anzuzeigen. Man sollte diese Anzeige aber nicht mit der "normalen" in der FF-Arbeitsfläche verwechseln; das sind zwei völlig verschiedene Schuhe.Hallo Heinrich,
fast liest es sich so an, als hättest Du eine Lösung für den Direktzugriff auf eine Stack-Position gefunden. Ist aber wohl so, dass Du den Stack der Reihe nach wieder abbauen würdest - oder? ...
Ansonsten gibt es eben nur die Zugriffsmöglichkeiten PushImage / PopImage nach der LIFO-Methode (LastIn-FirstOut) zum Durchschieben des Images von Position 0 in den Stackspeicher (Position 1 .. n) bzw. wieder zurück, SwapImage für den direkten Austausch der Images auf den den Positionen 0 und 1, Load Image für den Transfer eines Images von einem Speichermedium in die Position 0, NewImage zum Erzeugen eines leeren Bildes (gewissermaßen Löschen) auf der Position 0, SaveImage zum Transfer eines Images von Position 0 zum Speichermedium, ImportImage("") zur Darstellung eines auf Position 0 befindlichen Images im FF-Arbeitsfenster und ShowImage zur Darstellung eines auf Position 0 befindlichen Images in einem eigenen Fenster.
Dies scheinen (zumindest nach meinen Erkenntnissen) alle diesbezüglichen Skript-Operationen zu sein. Ein Nachteil für das zuletzt genannte Kommando FF_ShowImage, das zwar eine einfachere Möglichkeit bietet, ein Image ohne das Arbeiten über das Dialog-Handling anzuzeigen, liegt in der Tatsache, dass jedes in Folge innerhalb eines Skriptes ausgeführte FF_ShowImage stets eine neue "Fenster-Instanz" erzeugt. Ich habe noch keine Möglichkeit gefunden, ein so mit ShowImage erzeugtes Fenster vor dem nächsten ShowImage erst mal wieder zu schließen.
Vielleicht lässt sich Joachim hierzu mal was einfallen.
Ansonsten halte ich die von Werner angegebene Begrenzung des Stacks auf 10 Plätze für nicht (mehr) zutreffend. Es können soviel Stackpositionen belegt werden, wie Speicherplatz zur Verfügung steht. Dies ist lediglich dvon abhängig, wie groß die auf den Stack gepushten Images sind und wieviel Arbeitsspeicher im Rechner zur Verfügung steht und von FF nicht anderweitig benutzt wird.
Gruß
Heinrich
Nachtrag: Die Anmerkung, dass die mit FF_ShowImage separat geöffneten Fenster zur Darstellung von Images nicht geschlossen werden können, gilt so nur für die Steuerung aus einem Skript heraus (mangels eines entsprechenden FF_Befehles). Interaktiv lässt sich ein solches mit FF_ShowImage geöffnetes Fenster sehr wohl schließen, denn das Fenster verfügt - wie bei Windows üblich - in der oberen Leiste über einen Exit-Button (X), mit dem per Mausklick das Fenster geschlossen wird.
In der Aufzählung der vorstehenden FF_Image-Transferbefehle fehlt noch die Erwähnung von FF_Reload. Zu diesem Befehl heißt es in der Bedienungsanleitung:
Das Bild im Speicher wird in die FF-Arbeitsfläche übernommen.
Beim Test dieses Befehles ist mir aufgefallen, dass damit erst nach Abschluss des Skriptes - egal zu welchem Zeitpunkt der Befehl im Skript ausgeführt wird - das zuletzt im Speicher befindliche Image auf die FF-Arbeitsfläche geladen wird. Damit kann sichergestellt werden, dass das im Skript zuletzt bearbeitete Image in der FF-Arbeitsfläche zum Abschluss dargestellt wird.
Zuletzt bearbeitet: