Dynamic_cast / mainmenu problem


werrator

Grünschnabel
Hallo
Ich möchte ein mainmenu erstellen, die Items lade ich aus einer txt, das klappt auch wunderbar, doch nun möchte ich wissen auf welches Item der Benutzer geklickt hat.
Das habe ich mit nem dynamic cast probiert...

void __fastcall TForm1::OnUserMenuClick(TObject *Sender)
{
s1= dynamic_cast <TMenuItem*> (Sender)->Caption;
Ltest->Caption=s1;
}
s1 ist als String deklariert und Ltest ist ein Label.
ausgeben tut der mir auch das ganze nur eben ist der 1. oder der 2. Buchstabe unterstrichen und das is doof, habs schon ma in eine Datei gespeichert und gesehn der liefert ein & mit, entweder an 1. oder eben 2. Stelle.
Ich brauch den Namen ohne das &-Zeichen.....wie bekomme ich das hin?

schon mal vielen Dank
mfg
 

Supa

Erfahrenes Mitglied
Hy,

das &-Zeichen ist einfach ein Teil des Strings. Es Kennzeichnet den Buchstaben, mit dem Man per Hotkey den Menüpunkt auslösen könnte.

D.h. du kannst es mit einfachen Stringoperationen aus dem String entfernen. Z.. so:
Code:
while(s1.Pos("&") != 0) //Die Schleife bracuhst du nur, wenn mehrere &-Zeichen enthalten sind
   {
      s1.Delete(s1.Pos("&"),1);
   }
mfg
 

werrator

Grünschnabel
danke dir so klappts, hab mir schon gedacht, dass es da sowas geben muss... bin aber ni so der pro ;)
dachte aber das es evtl noch ne andere variante gibt eine "elegantere" das der mir glei das richtige gibt.
aber so passts vielen dank
ciao
 

Neue Beiträge