Scriptlets: Unterschied zwischen den Versionen
Aus AquaSoft Wiki
Zur Navigation springenZur Suche springen (Die Seite wurde neu angelegt: „= Einführung = Scriptlets sind kleine Erweiterungen des DiaShow-Programms. Sie können selbst kleine Erweiterungen schreiben, die dann als Menüpunkt sichtbar…“) |
|||
Zeile 10: | Zeile 10: | ||
* Gestaltungsvorlagen laden und anwenden | * Gestaltungsvorlagen laden und anwenden | ||
* u.v.m. | * u.v.m. | ||
− | * Fehlt Ihnen etwas? | + | * Fehlt Ihnen etwas? [http://support.aquasoft.de Fragen Sie uns], denn entweder geht es bereits oder es lohnt sich vielleicht die API entsprechend zu erweitert. |
+ | |||
+ | = Einbinden von Scriptlets = | ||
+ | |||
+ | Damit Scriptlets als Menüeintrag sichtbar werden, können Sie in einem der folgenden Ordner liegen: | ||
+ | |||
+ | * <code>c:\Users\steffen.binas\AppData\Roaming\AquaSoft\DiaShow9\Scriptlets\</code> - Scriptlets nur für den aktuellen Nutzer | ||
+ | * <code>c:\ProgramData\AquaSoft\DiaShow9\Scriptlets\</code> - Scriptlets die hier liegen, sind für alle Nutzer des gleichen Computers sichtbar | ||
+ | * <code><DiaShowInstallationsverzeichnis>\Presets\Scriptlets</code> - Achtung: Es wird nicht empfohlen hier eigenen Scriptlets zu speichern, denn 1. haben Sie in diesem Ordner normalerweise keine Schreibrechte und 2. verschwinden die Dateien nach jedem Programm-Update | ||
+ | Legen Sie einfach eine Datei mit der Endung .sss (also z.B. MeinScript.sss) in einem der o.g. Ordner an und starten Sie das Programm neu. Nur dann erscheint der Menüeintrag. | ||
+ | |||
= Beispiel = | = Beispiel = | ||
− | Dieses Scriptlet ordnet alle Objekte innerhalb des markierten Kapitels untereinander an: | + | Dieses Scriptlet ordnet alle Objekte innerhalb des markierten Kapitels untereinander an. |
+ | Speichern Sie diesen Quelltext zum Ausprobieren hier ab: <code>c:\ProgramData\AquaSoft\DiaShow9\Scriptlets\SpurenUntereinander.sss</code> | ||
<code> | <code> |
Version vom 12. September 2014, 08:04 Uhr
Einführung
Scriptlets sind kleine Erweiterungen des DiaShow-Programms. Sie können selbst kleine Erweiterungen schreiben, die dann als Menüpunkt sichtbar werden.
Möglichkeiten
Solche Erweiterungen können z.B. folgende Dinge mit Ihrer Show anstellen:
- EXIF-Daten auslesen
- Dauer und Position verändert
- Bewegungspfad und Kameraschwenk modifizieren
- Gestaltungsvorlagen laden und anwenden
- u.v.m.
- Fehlt Ihnen etwas? Fragen Sie uns, denn entweder geht es bereits oder es lohnt sich vielleicht die API entsprechend zu erweitert.
Einbinden von Scriptlets
Damit Scriptlets als Menüeintrag sichtbar werden, können Sie in einem der folgenden Ordner liegen:
c:\Users\steffen.binas\AppData\Roaming\AquaSoft\DiaShow9\Scriptlets\
- Scriptlets nur für den aktuellen Nutzerc:\ProgramData\AquaSoft\DiaShow9\Scriptlets\
- Scriptlets die hier liegen, sind für alle Nutzer des gleichen Computers sichtbar<DiaShowInstallationsverzeichnis>\Presets\Scriptlets
- Achtung: Es wird nicht empfohlen hier eigenen Scriptlets zu speichern, denn 1. haben Sie in diesem Ordner normalerweise keine Schreibrechte und 2. verschwinden die Dateien nach jedem Programm-Update
Legen Sie einfach eine Datei mit der Endung .sss (also z.B. MeinScript.sss) in einem der o.g. Ordner an und starten Sie das Programm neu. Nur dann erscheint der Menüeintrag.
Beispiel
Dieses Scriptlet ordnet alle Objekte innerhalb des markierten Kapitels untereinander an.
Speichern Sie diesen Quelltext zum Ausprobieren hier ab: c:\ProgramData\AquaSoft\DiaShow9\Scriptlets\SpurenUntereinander.sss
//////////////////////////////////////////////////
// GUI
//////////////////////////////////////////////////
// Name und Beschreibung des Menüeintrags
function OnGetGUI: string;
begin
Result := '['
+'{"Caption":"Untereinander anordnen","Type":"Title"}'
+',{"Caption":"Platziert alle Objekte eines Containers untereinander.","Type":"Description"}'
+']';
end;
//////////////////////////////////////////////////
// Ausführung
//////////////////////////////////////////////////
procedure SetTracks(const SlideShowObject: ISlideShowObject);
begin
if SlideShowObject.Count = 0 then
Exit;
for var i := 0 to SlideShowObject.Count - 1 do
begin
var Item := SlideShowObject[i];
Item.Track := i;
Item.Offset := 0;
end;
end;
procedure OnExecute(Parameters: IParameters);
begin
if DocumentController.GetFirstSelected = nil then
Exit;
var Item := DocumentController.GetFirstSelected;
while Item <> nil do
begin
SetTracks((Item as ISlideShowObject)); // Spuren für alle Kindelemente neu setzen
Item := DocumentController.GetNextSelected(Item); // weiter zum nächsten markierten Eintrag
end;
end;