Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - MenuItem Aufschrift wechseln
Mia9 - Mi 22.12.10 13:54
Titel: MenuItem Aufschrift wechseln
Hallo!
In meinem Programm möchte ich eine Pause-Funktion einbauen, dazu verwende ich ein MainMenu. Das Problem ist, dass ich die Menüaufschrift wechseln lassen möchte, d.h. wenn ich Pause drücke soll da fortfahren stehen und umgekehrt. Habe gedacht ich mache das mit MainMenu.Item[].Caption, das funktioniert aber nicht.
Gibt es dazu i-eine Möglichkeit wie ich das hinbekommen kann?
Danke!
Moderiert von
Narses: Topic aus Sonstiges (Delphi) verschoben am Mi 22.12.2010 um 12:55
Narses - Mi 22.12.10 13:57
Moin und :welcome: im Forum!
Du hast die compilierte EXE-Datei hochgeladen, leider hilft uns das nicht, dir zu helfen. Wir bräuchten den entscheidenden Abschnitt aus dem Quelltext, am besten direkt hier mit den Delphi-Tags in den Beitrag geschrieben. Wenn du den richtigen Abschnitt nicht finden kann, dann packe bitte alle *.pas, *.dfm und die *.dpr-Datei in ein ZIP-File hier in den Anhang. :idea: (btw: es würde mich nicht wundern, wenn überhaupt nur sehr wenige Leute eine EXE-Datei aus einer unbekannten Quelle runterladen und starten... :nixweiss:)
cu
Narses
//EDIT: Ah, du hast es schon gemerkt. ;)
Mia9 - Mi 22.12.10 14:01
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.Pause1Click(Sender: TObject); begin if MainMenu1.Items[0].Caption='Pause' then begin Timer1.Enabled:= False; MainMenu1.Items[0].Caption:='Fortfahren'; exit; end; if MainMenu1.Items[0].Caption='Fortfahren' then begin Timer1.Enabled:= True; MainMenu1.Items[0].Caption:='Pause' end; |
bummi - Mi 22.12.10 14:14
da ist ein Ampersand drin
Delphi-Quelltext
1:
| if StripHotkey(MainMenu1.Items[0].Caption)='Pause' then |
etc...
Du kannst statt über Items[x] auch über die Instanz des Items zugreifen.
Ich würde Dir gerne Actions ans Herz legen...
Gerd Kayser - Mi 22.12.10 14:27
Mia9 hat folgendes geschrieben : |
| Habe gedacht ich mache das mit MainMenu.Item[].Caption, das funktioniert aber nicht. |
Beispiel:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| procedure TForm1.Pause1Click(Sender: TObject); begin if Pause1.Caption = '&Pause' then Pause1.Caption := '&Fortsetzen' else Pause1.Caption := '&Pause'; end; |
Wenn die Eigenschaft MainMenu.AutoHotKeys auf maManual steht, die "&"-Zeichen weglassen.
Mia9 - Mi 22.12.10 14:53
Danke, funktioniert jetzt. Denn das mit Pause1.Caption war auch meine erste und einfachere Idee, die hatte aber auch nicht funktioniert. Da ich jetzt aber auf maManual, wie Gerd Kayser gesagt hat, umgestellt habe, funktioniert es.
jaenicke - Mi 22.12.10 16:33
Speichere den Zustand besser außerhalb der visuellen Komponenten. Die Daten und Zustände in die GUI mit reinzubringen ist keine gute Idee.
Wenn es denn aber wirklich sein muss, dann benutze am besten Tag:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.Pause1Click(Sender: TObject); begin if Pause1.Tag = 0 then begin Pause1.Caption := 'Fortsetzen'; Pause1.Tag := 1; end else begin Pause1.Caption := 'Pause'; Pause1.Tag := 0; end; end; |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!