Scriptlets

Aus AquaSoft Wiki
Version vom 12. September 2014, 08:54 Uhr von Steffen.binas (Diskussion | Beiträge) (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…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springenZur Suche springen

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? Frage Sie uns, denn entweder geht es bereits oder es lohnt sich vielleicht die API entsprechend zu erweitert.

Beispiel

Dieses Scriptlet ordnet alle Objekte innerhalb des markierten Kapitels untereinander an:

 //////////////////////////////////////////////////
 // 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;