Menüs

Sie können mit Delphi for PHP Menüs für ihre Anwendungen erstellen sowie sogenannte Popup-Menüs für einzelnen Elemente der Anwendung. Anwendungs-Menüs werden in der Titelleiste platziert, Popup-Menüs werden per rechten Mausklick auf das zugehörige Element geöffnet. Die Menüs werden intern als Array aufgebaut.

Menü erstellen

Um ein Menü zu erstellen gehen Sie folgendermaßen vor:

  1. Platzieren Sie das Menü-Object (Mainmenu oder PopupMenu) auf ihrem Formular
  2. Klicken Sie im Object-Inspector auf den Button der Eigenschaft "Items". Ein Dialogfenster zur Eingabe der Menüpunkte erscheint.
  3. Geben Sie unter "Text" den Namen des Menüpunktes und unter "Tag" einen eindeutigen Zahlenwert für den ersten Menüpunkt ein und klicken Sie auf "New Item" um diesen hinzuzufügen.
  4. Auf die gleiche Weise können Sie weitere Menüpunkte hinzufügen. Mit "New SubItem" fügen Sie einen neuen Untermenüpunkt hinzu. Mit "Delete" löschen Sie den aktuell ausgewählten Menüpunkt.
  5. Um ein Trennzeichen (Linie) einzubauen geben Sie einen Bindestrich im Feld "Text" ein.
  6. Klicken Sie den OK-Button wenn um die Menüstruktur zu erstellen.

Leider ist es mit dem Menü-Editor nicht möglich, Menüpunkte später einfach zu vertauschen oder Menüpunkte an beliebiger Position einzufügen. Für die Umstrukturierung der Menüstruktur muss diese deshalb - zumindestens teilweise - neu aufgebaut werden.

Icons für Menüpunkte hinzufügen

Sie können kleine Bilder (Icons) neben den Menüpunkten anzeigen lassen. Unterstützt werden JPEG-, GIF-, PNG- und BMP-Dateien. Die Bildgröße sollte dem Menüeinträgen entsprechend sein - standardmäßig 16x16 Pixel. Gehes Sie folgendermassen vor:

  1. Laden Sie die Bilder in Ihr Projektverzeichnis. Um die Übersicht zu behalten sollten Sie die Bilder in einem Unterordner ("Images") kopieren.
  2. Platzieren Sie eine ImageList-Komponente auf Ihr Formular. Diese befindet sich in de Rubrik "Advanced" der Toolpalette.
  3. Klicken Sie im Object-Inspector auf den Button der Eigenschaft "Images" der ImageList-Komponente. Es öffnet sich ein Dialog-Editor.
  4. Vergeben sie für jedes Bild eine eindeutige Nummer im Feld "Key/ID" und einen Bildnamen im Feld "Filename". Sie können mit "Load" auch das Bild auswählen. Auf der rechten Seite wird das aktuelle Bild - soweit vorhanden -angezeigt.
  5. Mit "Add" fügen Sie neue Einträge in die Liste ein, mit Delete löschen Sie den aktuell ausgewählten Eintrag.
  6. Klicken Sie auf "OK" um die Liste zu erstellen.
  7. Klicken Sie im Object-Inspector auf den Button der Eigenschaft "Items" um die Einträge der ImageList den jeweiligen Menüpunkten zuzuordnen.
  8. Geben Sie für jeden Menüpunkt der ein Bild enthalten soll unter "Image Index" die ID aus der ImageList ein.
  9. Klicken Sie auf "OK" um die Änderungen zu übernehmen.

Ereignis-Behandlungsroutinen (event-handler) erstellen

Um eine Ereignis-Behandlungsroutine - kurz event-handler - zu erstellen sind folgende Schritte notwendig:

  1. Markieren Sie das Menü-Objekt und wählen im Objektinspektor im Register "Events" das zugehörige Ereignis aus. Sie können auch im Register "Javascript" eine clientseitige Behandlungs-Routine erstellen.
  2. Führen Sie einen Doppelklick rechts neben den Ereignis-Namen aus um einen neuen event-handler zu erstellen. Daraufhin wird das Grundgerüst automatisch erstellt und der Cursor im Quelltext platziert.
  3. Schreiben Sie den Quelltext zur Auswertung des Ereignisses.

Beispiel1: Verschiedene Websites aufrufen durch clientseitige Menüsteuerung (javascript)

  1. Erstellen Sie ein Menüobjekt mit dem Menüpunkt "Suchmaschinen" und 3 Untermenüpunkten mit den Text-Werten "Google", "Metager" und "Yahoo" sowie den Tag-Werten 10, 20, 30 (s.o.).
  2. Markieren Sie das Menü-Objekt
  3. Führen Sie einen Doppelklick im Register "Javascript" auf das "OnClick"-Ereignis durch. Dadurch wird automatisch das Grundgerüst für den event-handler erstellt:

    function MainMenu1JSClick($sender, $params)
    {

    ?>
    //Add your javascript code here

    <?php

    }

  4. Fügen Sie den blau markierten Quelltext an der Position des Kommentars ein - leider wird der Cursor nicht immer an die richtige Stelle positioniert::

    function MainMenu1JSClick($sender, $params)
    {

    ?>
    tag=event.getTarget().tag;
    if (tag==10) { location.href = 'http://www.google.de'; }
    if (tag==20) { location.href = 'http://www.metager.de'; }
    if (tag==30) { location.href = 'http://www.yahoo.de'; }

    <?php

    }

  5. Speichern Sie das Projekt und starten Sie die Anwendung. Es erscheint das entsprechende Menü mit den 3 Einträgen. Bei der entsprechenden Auswahl wird die gewählte Suchmaschine geöffnet.

Beispiel2: Verschiedene Websites aufrufen durch serverseitige Menüsteuerung (PHP)

  1. Erstellen Sie ein Menüobjekt mit dem Menüpunkt "Suchmaschinen" und 3 Untermenüpunkten mit den Text-Werten "Google", "Metager" und "Yahoo" sowie den Tag-Werten 10, 20, 30 (s.o.).
  2. Markieren Sie das Menü-Objekt
  3. Führen Sie einen Doppelklick im Register "events" auf das "OnClick"-Ereignis durch. Dadurch wird automatisch das Grundgerüst für den event-handler erstellt:

    function MainMenu1Click($sender, $params)
    {

    }

  4. Fügen Sie den blau markierten Quelltext ein:

    function MainMenu1Click($sender, $params)
    {
    if ($params['tag']==10) { header("Location: http://www.google.de"); }
    if ($params['tag']==20) { header("Location: http://www.metager.de"); }
    if ($params['tag']==30) { header("Location: http://www.yahoo.de"); }

    }
  5. Speichern Sie das Projekt und starten Sie die Anwendung. Es erscheint das entsprechende Menü mit den 3 Einträgen. Bei der entsprechenden Auswahl wird die gewählte Suchmaschine geöffnet.

 

Impressum: Jörg Siebrands, Lüneburger Schanze 1, 21614 Buxtehude
Tipp: Besuchen Sie auch meine Website zur Fußballweltmeisterschaft 2010