Zugriff auf MainMenu



  • Hi,

    ich habe in meinem MainMenu die Punkte Hilfe und als unterpunkt Suchen.
    Jetzt möchte ich die Eigneschaft Enabled des Punktes Suchen auf true setzen zur laufzeit.

    TMenuItem* MenuItem = MainMenu->Items->Find("Hilfe");
    MenuItem = MenuItem ->Items->Find("Suchen");
    

    leider bringt der mir Folgende Fehlermeldung:

    E2193 Zu wenige Parameter im Aufruf von '_fastcall TMenuItem::GetItem(int)' in der zweiten Zeile (Die erste Anweisung klappt diesen Menüpunkt kann ich enablen und disablen)

    In der Hilfe hat die Methode nur einen Parameter.

    MfG



  • Hallo

    Die Builder-Hilfe hätte alle Probleme klären können...
    - TMenuItem::Items ist ein "normales" C-Array
    - TMenuItem hat auch keine Find-Eigenschaft
    - mit TMainMenu::FindItem kannst du auch gleich die SubItems durchsuchen

    Rufen Sie FindItem auf, um in dem Menü oder einem seiner Untermenüs nach einem bestimmten Eintrag zu suchen.

    bis bald
    akari



  • Hi,

    Die Funktion Find ist folgendermaßen definiert

    enum TFindItemKind {fkID, fkHandle, fkShortCut};
    TMenuItem* __fastcall FindItem(int Value, TFindItemKind Kind);
    

    ich weiß grad nicht wie ich jetzt nach meinem Eintrag suchen soll, da ich keine ID hab.

    Übergangsweise hab ich es erst mal so gemacht:

    MenuItem = MainMenu->Items->Find("Hilfe")->Find("Suche");
    MenuItem->Enabled = true;
    

    MfG



  • Hallo,

    wie Akari schon gesagt hat, hat TMenuItem keine Eigenschaft Find.
    Du mußt die zweite Zeile in Deinem ersten Post korrigieren.

    Gruß Udo



  • Moin,

    eventuell mit dem Action Manager eine Aktion erstellen, die mit dem Menu verbinden, dann kann man auf die Nachricht OnUpdate dann die Aktion enablen oder disablen...

    VG Pixfreak


Anmelden zum Antworten