Sign in Join
Wiki copytemporary

TMainMenu/de

Deutsch · English · Français · Suomi · Русский · 日本語

Diese Seite erklärt, wie man die TMainMenu Komponente verwendet. Auf etwas klicken bedeutet immer ein Linksklick, ein Rechtsklick wird explizit erwähnt.

Beschreibung

TMainMenu - das Hauptmenü, welches am oberen Rand der meisten Fenster von Anwendungen erscheint.

Das MainMenu ist eine nicht-sichtbare Komponente: das heißt, wenn aus der Komponentenpalette das Symbol ausgewählt und auf dem Formular platziert ist, wird es nicht zur Laufzeit angezeigt. Stattdessen wird eine Menüleiste mit einem von der Menü-Editor definierten Struktur angezeigt.

Um den Menü-Editor zu sehen, rechtsklicken Sie auf das Mainmenü-Symbol auf Ihrem Formular.

Gepflogenheiten

Es ist üblich, den vor den Namen von Menüs mit mnu oder menu voranzustellen. In den Untermenüs wird diese Vorgehen fortgeführt, indem vorangestellt wird, in welchem Menü sie sich befinden, z.B. das Untermenü "Ausschneiden" (engl. Cut) im HauptMenü "Bearbeiten" (engl. Edit) wird in der Regel den Namen mnuEditCut oder menuEditCut erhalten. Dies ist eine Gedächtnisstütze und macht es bei später notwendigen Änderungen leichter, noch zu wissen, um welches Menü es sich handelt. Bitte beachten Sie, dass dies nur ein Hinweis und nicht zwingend erforderlich ist, aber wenn Sie es auf diese Weise tun, wird es wahrscheinlich für Sie einfacher, später Änderungen zu machen, zu verstehen, was der Code macht, wenn Sie eine Weile nicht hineingesehen haben oder jemand anderes Ihr Programm warten muss.

Erstellen von Menüs

  1. Wählen Sie das TMainMenu und legen Sie dieses auf dem Formular ab (zuerst auf der Komponentenpalette "Standard" die Komponente "TMainMenu" anklicken, dann auf das Formular klicken). Die Komponente wird auf dem Formular angezeigt (ein Quadrat mit einer Darstellung eines Dropdown-Menüs und dem Namen der Komponente, Standard ist MainMenu1).
  2. Wenn Sie MainMenu1 nicht mögen und diesem einen anderen Namen geben wollen, gehen Sie im Objektinspektor auf die Eigenschaft "Name" und ändern Sie diesen auf etwas, was Ihnen besser gefällt. Lassen Sie uns sagen, dass wir ihn ändern zu XMenu. Geben Sie XMenu in das Editfeld rechts von der Name-Eigenschaft ein und drücken Sie Enter. Der Name auf der Komponente ändert sich.
  3. Rechtsklicken Sie nun auf XMenu, ein Pop-up-Menü erscheint. Klicken Sie auf den ersten Eintrag Menü-Editor.
  4. Der Menü-Editor wird geöffnet und erstellt schon einen Menüpunkt, mit der Beschriftung "New Item1". Dies wird das Menü der obersten Ebene (Top-Level-Menü), ähnlich dem "Datei Bearbeiten Ansicht Hilfe"-Menüs, wie Sie es schon bei anderen Anwendungen gesehen haben. Wahrscheinlich wollen Sie es ändern, so klicken Sie darauf und gehen zum Objektinspektor.
  5. Im Objektinspektor, ändern Sie die Name-Eigenschaft von MenuItem1 zu etwas besser geeignetem. Sagen wir, dies ist das Menü Datei (engl. File), also ändern Sie den Namen, indem Sie mnuFile eingeben und mit Enter bestätigen.
  6. Wir wollen eine bessere Beschriftung als "New Item1". Gehen Sie auf die Caption-Eigenschaft, und geben Sie &Datei ein und drücken Sie Enter. Das Und-Zeichen & vor dem Namen ist ein Beschleuniger, der mit dem Drücken der Taste [Alt] und dem unterstrichenem Symbol das Öffnen eines Menüs ermöglicht (siehe HotKey oder ShortCut). Die Beschriftung für das Menü ändert sich zu Datei. Der ShortCut-Buchstabe wird zur Laufzeit allerdings erst unterstrichen dargestellt, wenn der Nutzer die Taste [Alt] drückt.
  7. Jetzt wollen wir noch weitere Top-Level-Menüeinträge erstellen. Gehen Sie zurück zu dem Menü-Editor-Fenster. Klicken Sie mit der rechten Maustaste auf Datei. Ein Popup-Menü erscheint. Klicken Sie auf Neuen Eintrag einfügen (dahinter). Ein neues Menü, genannt New Item2 erscheint. Wie in den letzten beiden Positionen erläutert, ändern Sie im Objektinspektor den Namen zu mnuHelp und die Bezeichnung (Caption) zu &Hilfe.
  8. Jetzt wollen wir noch ein Untermenü (engl. Submenu) erstellen. Dazu rechtsklicken Sie auf Datei und wählen Erzeuge Untermenü. Das Menü Datei hat jetzt ein Untermenü (an dem Pfeil zu erkennen) bezeichnet als New Item3.
  9. Ändern Sie die Bezeichnung zu etwas Sinnvollem, z.B. "Öffnen". Gehen Sie in den Objektinspektor und ändern Sie diesem Menüeintrag die Eigenschaft Name zu mnuFileOpen und Caption zu Ö&ffnen.
  10. Nun benötigen wir noch ein Top-Level-Menü zwischen Datei und Hilfe. Sie können entweder auf Datei rechtsklicken und Neuen Eintrag einfügen (dahinter) wählen oder auf Hilfe rechtsklicken und Neuen Eintrag einfügen (davor) wählen.
  11. Ändern Sie dessen Bezeichnung (Caption) zu B&earbeiten (engl. Edit) und Name zu mnuEdit.
  12. Verfahren Sie so weiter mit jedem Menü oder Untermenü, welche Sie benötigen.

Ihr nun so erstelltes Menü wird zur Laufzeit angezeigt und ermöglicht dem Nutzer auf die einzelnen Menüs zu klicken. Allerdings wird bei einem Klick noch nicht wirklich was geschehen. Damit Sie Menüpunkte haben, die etwas tun, müssen Sie jedem Menü bzw. Untermenü ein Ereignis (engl. Event) zuweisen, welches dann auf dessen Klicken reagiert. Im Normalfall benötigen Top-Level-Menüs keine Ereignisbehandlungsroutinen (engl. listener, observer, event handler), sie dienen zumeist nur der besseren Übersicht und Sortierung, reagieren werden die Untermenüs.
Sie haben zwei Möglichkeiten, in den Menüs zu reagieren:

Der Hauptgrund für den Einsatz einer TActionList ist, wenn Sie planen, eine Symbolleiste mit Symbolen, die den Menüeinträgen entsprechen, in Ihrer Anwendung zu erstellen. Als Beispiel, Sie haben in dem Menü "Datei", die Untermenüs "Neu", "Öffnen", "Speichern", "Speichern unter" , "Beenden" , etc. und fügen eine Symbolleiste mit den Schaltflächensymbolen (engl. Icons) Neu, Öffnen, Speichern und Speichern hinzu, können Sie mittels der TActionList die verschiedenen Events den jeweiligen Menüeinträgen und Symbolen zuordnen und sparen sich somit das Schreiben von zwei Routinen. Das Untermenü "Neu" verwendet dann die gleiche Procedur wie das Symbol "Neu". Wie eine TActionList verwendet wird, wird in TActionList näher (z.Zt. dieser Übersetzung (13 May 2014) noch nicht erstellt) erklärt.
Nachfolgend wird erklärt, wie Sie die Ereignisse von Menüklicks mit Hilfe des Objektinspektors bearbeiten.

Machen, dass das Menü tatsächlich etwas tut

pascal
procedure TfrmMain.mnuFileOpenClick(Sender: TObject);
begin

end;

In Ihrem Fall könnten Sie ein TOpenDialog-Steuerelement auf die Form einfügen und den Standard-Dialog für Ihre Zwecke nutzen:

pascal
procedure TfrmMain.mnuFileOpenClick(Sender: TObject);
begin
  if OpenDialog1.Execute then           //nur wenn eine Datei gewählt wurde
    ShowMessage(OpenDialog1.Filename);  //den Namen (incl. Pfad) der gewählten Datei anzeigen
end;

Checkbox Menü

Wollen Sie ein Menüeintrag, der wie bei einer Checkbox eine Markierung an- oder abschaltet, wenn ein Nutzer darauf klickt, dann können Sie wie folgt verfahren:

pascal
procedure TfrmMain.mnuEditBackupClick(Sender: TObject);
begin
  mnuEditBackup.Checked := not mnuEditBackup.Checked;
end;

Trennlinien

Manchmal wollen Sie vielleicht ein Menü erstellen, dass Trennlinien enthält. Zum Beispiel, ein Bearbeiten Menü soll die Untermenüs Ausschneiden, Kopieren und Einfügen enthalten, dann soll eine Trennlinie vor dem nächsten Untermenü sein:

Tastenkombination

Wollen Sie einem Menü eine bestimmte Tastenkombination zuweisen können Sie wie folgt verfahren:

Bild vor einem Menü

Wollen Sie Ihr Menü optisch ansprechender gestalten oder eine optische Zuordnung, von Menüeinträgen zu einer möglichen Symbolleiste, herstellen, können Sie Bilder vor die Menüs stellen. Folgende Schritte sind dafür notwendig:


From the Free Pascal wiki, page "TMainMenu/de", as it stood on 2020-03-01 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Revision 2, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.