Produkt: | Elvis |
Version: | ab 2.7 |
Stand: | 2009-02-17 |
Zusammenfassung
Anhand eines Beispielprojekts (Layer_Container.zip) soll ein Pull-Down-Menü dargestellt werden, das über Schichten mit State Buttons realisiert ist.
Einzelheiten
Manchmal möchte man mehrere Objekte, z. B. Kontrollelemente, in einer Art von „Sammelbehälter“ oder „Container“ zusammenfassen, um sie alle durch eine einzige, zentrale Operation am Container-Objekt dynamisch zu verändern. Es soll also so etwas Ähnliches wie ein (aus anderen Systemen bekanntes) „Panel“ simuliert werden, das man beispielsweise auf „sichtbar“ oder „unsichtbar“ schalten kann und somit – auf einen Schlag – auch die darin enthaltenen Elemente (Buttons, Schieberegler, TextOutputs, etc.).
Zwar gibt es in Elvis kein Panel im engeren Sinne, aber es gibt auf jeder Elvis-Bedienseite eine oder mehrere Schichten, die durchaus auch als Container für Kontrollelemente dienen können.
Anhand eines Beispielprojekts (Layer_Container.zip) soll ein Pull-Down-Menü dargestellt werden, das über Schichten mit State Buttons realisiert ist:
Es besteht aus nur einer Seite, die neben den Schichten „Bedienelemente“ und „Hintergrund“ noch die Schichten „Keller“, „Parterre“ und „Stock1“ enthält. Nach dem Öffnen werden zunächst nur die Buttons „Keller“, „Erdgeschoß“ und „1. Stock“ angezeigt, die in der Schicht „Bedienelemente“ enthalten sind. Nach Klick auf den Button „Keller“ erscheinen dann zusätzlich die blauen Buttons „Flur“ und „Gästezimmer“ der zugehörigen Schicht „Keller“, weil diese dadurch auf „sichtbar“ geschaltet wird.
Klickt man jetzt z. B. auf „Erdgeschoß“, wird die Schicht „Keller“ (mit den beiden blauen Buttons) wieder unsichtbar und stattdessen wird die Schicht „Parterre“ mit drei roten Buttons eingeblendet. Analog wird bei Klick auf „1. Stock“ nur der Button „Schlafzimmer“ der Schicht „Stock1“ eingeblendet.
Über die zusätzliche Schaltfläche „Submenue AUS“ schließlich lassen sich alle drei Schichten wieder ausblenden, so dass der Ausgangzustand beim Öffnen der Seite dargestellt wird.
Die Logik zum Ein- und Ausblenden der drei Schichten ist hierbei in der globalen Subroutine „Layer_Init“ der Seitenereignisverarbeitung hinterlegt (unter „Form/(global)“). Bei bestimmten Ereignisse, wie Öffnen der Seite („Form_Load“) oder Button-Clicks, wird dann dieses Unterprogramm nur mit unterschiedlichen Argumenten für die Schicht-Sichtbarkeit aufgerufen.