Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie kein PopupMenu zuweisen? (https://www.delphipraxis.net/169958-wie-kein-popupmenu-zuweisen.html)

AlexII 22. Aug 2012 13:35

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:
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;
Nun wenn Label3 kein Text bzw. Caption hat, soll auch kein Menü erscheinen, aber ich bekomme das aber irgendwie nicht hin.

Danke!

himitsu 22. Aug 2012 13:38

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:
if Label3.Caption = '' then
  Abort;
OnPopup des Popup-Menüs wird aufgerufen, nachdem in Popup des Komponente nachgesehn wurde, ob und welches Popup angezeigt werden soll.

s.h.a.r.k 22. Aug 2012 13:41

AW: Wie kein PopupMenu zuweisen?
 
Allgemein kannst es mit folgendes Zuweisung wieder entfernen:
Delphi-Quellcode:
XYZ.PopupMenu := nil;

Steku 22. Aug 2012 13:42

AW: Wie kein PopupMenu zuweisen?
 
Hi,

oder Quick'n Dirty ein leeres PopUp Menue zuweißen...?

Gruß
Steku

ulilüding 22. Aug 2012 13:45

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

AlexII 22. Aug 2012 13:53

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;

himitsu 22. Aug 2012 15:29

AW: Wie kein PopupMenu zuweisen?
 
Wie gesagt

Delphi-Quellcode:
procedure TForm1.Label3ContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean);
begin
  Handled := Label3.Caption = '';
end;
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.


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