Wie zur Laufzeit neuen Menüeintrag erstellen mit Methode??
-
und gibt es dafür auch eine erklärung, wieso 2x Items??
-
achso, der fehler kommt im kopf der for-schleife, liegt wohl an dem Count irgendwie??
-
ist Sprache1 das MainMenu oder ein Menupunkt?
wenn es ein Menüpunkt ist: BCB-Hilfe zu TMenuItem -> Items -> Beispiel
wenn es Das MainMenu ist: BCB-Hilfe zu TMainMenu -> Items -> Beispiel
-
hm...? schrieb:
und gibt es dafür auch eine erklärung, wieso 2x Items??
Ist durch die Objekthierarchie so notwendig. Die kannst du in der BCB-Hilfe nachlesen.
Ums kurz zu fassen : Das erste Items ist der Container der untergeordneten Menüeinträge. Das zweite ist die Zugriffseigenschaft auf die einzelnen Einträge im Container. Das zweimal der gleiche Name verwendet wird ist unglücklich, aber dahinter leigen zwei verschiedene Klassen.
bis bald
akari
-
aha, soweit verstanden

hab das also so abgeändert
TMenuItem* myItem = new TMenuItem(MainMenu1); bool ok =true; for(int i = 0; i < Sprache1->Count;++i) { if(Sprache1->Items[i]->Name == "Testitem") ok = false; } if(ok) { myItem->Caption = "Test"; myItem->Checked = false; myItem->Name = "Testitem"; Sprache1->Items->Add(myItem); } else ShowMessage("Eintrag bereits vorhanden"); }nun bekomm ich beim Add denselben fehler!
Woran liegt das denn nun schonwieder?
-
Hier sollte es
Sprache1->Add(myItem);heißen. Von welchem Typ ist denn Sprache1? Von TMenuItem? Linneas Beispiel stimmt nur wenn Sprache1 vom Typ TMainMenu ist.
-
nee ist TMenuItem!
-
Dann so wie ich es geschrieben habe.
-
auch zur Methode Add von TMenuItem gibt es ein Beispiel in der BCB-Hilfe

-
Linnea schrieb:
auch zur Methode Add von TMenuItem gibt es ein Beispiel in der BCB-Hilfe

ja und da ich eben fälschlicherweise bei TMainMenu war habe ich die falsche Add Metode genommen, wie du eigentlich gesehen haben musst!
