![]() |
Wie kein PopupMenu zuweisen?
Hallo,
hab da ein Problemchen wo ich nicht weiter kommen. Und zwar ich weise während der Laufzeit einer Komponente wie folgt ein PopupMenu zu:
Delphi-Quellcode:
Nun wenn Label3 kein Text bzw. Caption hat, soll auch kein Menü erscheinen, aber ich bekomme das aber irgendwie nicht hin.
procedure TForm1.Label3ContextPopup(Sender: TObject; MousePos: TPoint;
var Handled: Boolean); begin if Label3.Caption <> '' then Label3.PopupMenu := PopupMenu1 else Label3.PopupMenu := ??? (hier also kein Menü zuweisen) end; Danke! |
AW: Wie kein PopupMenu zuweisen?
Nichts = nil :zwinker:
Du solltest aber eher Handled auf False setzen, wenn du kein Popup sehn willst. Oder du setzt Handled immer auf False, und zeigst das Popup "manuell" an, wenn du es sehn willst. (
Delphi-Quellcode:
)
PopupMenu.Popup(X, Y);
Oder ins OnPopup des Menüs
Delphi-Quellcode:
OnPopup des Popup-Menüs wird aufgerufen, nachdem in Popup des Komponente nachgesehn wurde, ob und welches Popup angezeigt werden soll.
if Label3.Caption = '' then
Abort; |
AW: Wie kein PopupMenu zuweisen?
Allgemein kannst es mit folgendes Zuweisung wieder entfernen:
Delphi-Quellcode:
XYZ.PopupMenu := nil;
|
AW: Wie kein PopupMenu zuweisen?
Hi,
oder Quick'n Dirty ein leeres PopUp Menue zuweißen...? Gruß Steku |
AW: Wie kein PopupMenu zuweisen?
Wie ist's denn mit Label3 beim Programmstart? Hat das ein PopupMenu, oder erstmal nicht? Im letzeren Falle erübrigt sich einfach der Teil ab dem "else" (oder die Variante von himitsu). Wenn ein PopupMenu existiert und das im Falle von Label3.Caption='' wieder gelöscht werden soll, so hilft möglicherweise: Label3PopupMenu:=nil;
LGU |
AW: Wie kein PopupMenu zuweisen?
Thx, hab das jetzt! :thumb:
Delphi-Quellcode:
procedure TForm1.Label3ContextPopup(Sender: TObject; MousePos: TPoint;
var Handled: Boolean); begin if Label3.Caption <> '' then Label3.PopupMenu := PopupMenu1 else Label3.PopupMenu := nil; end; |
AW: Wie kein PopupMenu zuweisen?
Wie gesagt
Delphi-Quellcode:
Handled = ICH (der Programmierer in dieser Methode) hab das Event verarbeitet (oder auch nicht, aer egal) und Delphi soll das jetzt nicht weiter verfolgen, also kein Popup aufmachen.
procedure TForm1.Label3ContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean);
begin Handled := Label3.Caption = ''; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz