Wiki-KopieMirror

Dies ist ein Mirror des Wikis von pascal.chat. Bearbeiten, Verlauf und Anmeldung finden dort statt.

TPopupMenu/de

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

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

Beschreibung

Das TPopupMenu ist ein Bedienfeld, was angezeigt wird, wenn mit der rechten Maustaste geklickt wurde.

Es 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.

Erstellen eines PopupMenüs

Wie Sie einer Komponente auf Ihrem Formular ein PopupMenü zuweisen, zeige ich Ihnen an folgendem Beispiel:

Ihr nun so erstelltes Menü wird zur Laufzeit, wenn sie auf das Image1 rechtsklicken, angezeigt und ermöglicht dem Nutzer auf die einzelnen Menüeinträge 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üpunkt ein Ereignis (engl. Event) zuweisen, welches dann auf dessen Klicken reagiert.
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 TForm1.popLoadClick(Sender: TObject);
begin

end;

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

pascal
procedure TForm1.popLoadClick(Sender: TObject);
begin
  if OpenDialog1.Execute then                            //nur wenn eine Datei gewählt wurde
    try                                                  //versuche
      Image1.Picture.LoadFromFile(OpenDialog1.Filename); //die gewählte Datei nach Image1 zu laden
    except
    end;
end;
pascal
procedure TForm1.popStretchClick(Sender: TObject);
begin
  popStretch.Checked := not popStretch.Checked;  //Markierung vom Menüeintrag an- oder abschalten
  Image1.Stretch := popStretch.Checked;          //Image1 Gestreckt ja / nein
end;

procedure TForm1.popCenterClick(Sender: TObject);
begin
  popCenter.Checked := not popCenter.Checked;  //Markierung vom Menüeintrag an- oder abschalten
  Image1.Center := popCenter.Checked;          //Image1 Zentriert ja / nein
end;

Selber aufpoppen

Möglicherweise wollen Sie ein PopupMenü nicht mit einem Rechtsklick auf eine bestimmte Komponente angezeigt haben, sondern bei einem anderen Ereigniss. Das können Sie mit PopupMenu.PopUp realisieren.

Folgendes Beispiel demonstriert das:

pascal
procedure TForm1.Button1Click(Sender: TObject);
begin
  PopupMenu1.PopUp;   //Zeige PopupMenu
end;

From the Free Pascal wiki, page "TPopupMenu/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.

Version 2, zuletzt geändert von WikiArchive .