EvtMenuInitPopup
EvtMenuInitPopup
Initialisierung eines Menüfensters
Details
- Name: Typ Beschreibung
- aEvt:
eventEreignisinformationen - aMenuItem:
handleAuslösender Menüeintrag - Resultat:
logicWird nicht ausgewertet - Siehe: Liste , Objekte , Ereignisbefehle , Beispiel
Bevor das Menüfenster angezeigt wird, wird dieses Ereignis ausgelöst, um Menüeinträge zu initialisieren. Menüeinträge können dadurch beispielsweise aktiviert oder deaktiviert werden.
Definition des Funktionskopfes:
sub EvtMenuInitPopup
(
aEvt : event; // Ereignis
aMenuItem : handle; // Auslösender Menüeintrag
)
: logic; // Wird nicht ausgewertet
{
return(true);
}
aEvt
In diesem Parameter vom Typ event wird unter anderem der Deskriptor des auslösenden Objektes übergeben. Dies ist der Deskriptor des Objekts, in dem die Ereignisfunktion eingetragen wurde.
Ausgehend von diesem Objekt kann der Deskriptor des aufgerufenen Menüs mit dem Befehl WinInfo () mit den Parametern _WinMenu oder _WinContextMenu ermittelt werden. So kann auch bestimmt werden, welches Menü aufgerufen wurde.
aMenuItem
Als Objekt wird der Menüeintrag übergeben, der angeklickt wurde, um das Menüfenster zu öffnen. Dies ist entweder ein Menüeintrag in der Menüzeile oder ein Menüeintrag, der ein weiteres Menüfenster öffnet.
Beim Aufruf eines Kontextmenüs wird sofort ein Menüfenster geöffnet. In diesem Fall wird als Objekt 0 übergeben.
Resultat
Der Rückgabewert der Funktion wird nicht ausgewertet.
Beispiele:
sub EvtMenuInitPopup
(
aEvt : event; // Ereignis
aMenuItem : handle; // auslösender Menüeintrag
) : logic; // Wird nicht ausgewertet
{
if (aMenuItem != 0)
{
switch (aMenuItem->wpName)
{
case 'miView' : ...
}
}
else
{
...
}
return(true);
}
Unterscheidung des aufgerufenen Menüs:
switch (true)
{
case (aEvt:Obj->WinInfo(_WinMenu) > 0) : // Menü oder Popup-Menü wurde aufgerufen
{
...
}
case (aEvt:Obj->WinInfo(_WinContextMenu) > 0) : // Kontext-Menü wurde aufgerufen
{
...
}
}
Wird der Deskriptor des Menüs noch im weiteren Verlauf der Funktion benötigt, kann auch folgendes Konstrukt verwendet werden:
tMenu # aEvt:Obj->WinInfo(_WinContextMenu);
if (tMenu > 0)
{
// Contextmenu
...
}
else
{
tMenu # aEvt:Obj->WinInfo(_WinMenu);
if (tMenu > 0)
{
// Popup-Menu
...
}
}