Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TMenuItem und RadioItem (https://www.delphipraxis.net/69765-tmenuitem-und-radioitem.html)

Martin K 19. Mai 2006 17:49


TMenuItem und RadioItem
 
Hab mal ne Frage zu der Behandlung von MenuItems als RadioItems:

Gibt es nicht eine einfache Möglichkeit (ohne tausend IF-Anfragen) heruaszubekommen, welches Item gerade checked ist (also so etwas wie ItemIndex) ?

Noch was anderes:
Wenn ich mehrere RadioItems habe die zu einer Gruppe gehören und ich klicke auf ein Item das bereits checked ist,
so geht der Punkt weg (Checked = False).
Dann ist aber kein einziges Item in meiner Gruppe mehr checked...
Bei einer RadioGroup ist das anders!
Kann man das nicht auch bei MenuItems so machen wie in einer RadioGroup?

marabu 19. Mai 2006 18:02

Re: TMenuItem und RadioItem
 
Hallo Martin,

Zitat:

Zitat von Martin K
Gibt es nicht eine einfache Möglichkeit (ohne tausend IF-Anfragen) heruaszubekommen, welches Item gerade checked ist (also so etwas wie ItemIndex) ?

Du kannst die Eigenschaft "Tag" für deine Zwecke missbrauchen:

Delphi-Quellcode:
procedure TDemoForm.ItemClick(Sender: TObject);
begin
  with Sender as TMenuItem do
  begin
    Checked := true;
    case Tag of
      1: ;
      2: ;
      3: ;
      else ShowMessage(Caption);
    end;
  end;
end;
Zitat:

Zitat von Martin K
Wenn ich mehrere RadioItems habe die zu einer Gruppe gehören und ich klicke auf ein Item das bereits checked ist, so geht der Punkt weg (Checked = False).

Nur wenn du AutoCheck = True hast. In meinem Beispiel steht es auf False und das Problem existiert dann nicht mehr.

Grüße vom marabu

Martin K 19. Mai 2006 18:07

Re: TMenuItem und RadioItem
 
Zitat:

Zitat von marabu
Du kannst die Eigenschaft "Tag" für deine Zwecke missbrauchen:

Ja, aber dann muss ich ja immer noch mit Case of alle MenuItems durchgehen...

Zitat:

Zitat von marabu
Zitat:

Zitat von Martin K
Wenn ich mehrere RadioItems habe die zu einer Gruppe gehören und ich klicke auf ein Item das bereits checked ist, so geht der Punkt weg (Checked = False).

Nur wenn du AutoCheck = True hast. In meinem Beispiel steht es auf False und das Problem existiert dann nicht mehr.

Grüße vom marabu

Ja schön, aber wenn AutoCheck False ist dann passiert ja überhaupt nix mehr, wenn ich draufklicke...

marabu 19. Mai 2006 18:13

Re: TMenuItem und RadioItem
 
Fängst du alle deine Sätze mit Ja, aber an? Hast du dir meine Code-Zeilen überhaupt angesehen?
Sender ist das MenuItem, welches gerade angeklickt wurde - und es passiert schon etwas, wenn ich Checked auf True setze.

marabu

Martin K 19. Mai 2006 18:17

Re: TMenuItem und RadioItem
 
:oops: Uuups..., stimmt...

Okay, Problem gelöst.

Danke :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz