Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TMenuItem bringt in Caption immer "&" Zeichen (https://www.delphipraxis.net/160462-tmenuitem-bringt-caption-immer-zeichen.html)

zeras 14. Mai 2011 11:56

Delphi-Version: 2009

TMenuItem bringt in Caption immer "&" Zeichen
 
Ich erzeuge dynamisch ein Untermenu und bekomme dann beim Auslesen von Caption immer das "&" Zeichen mit im String. Habe schon einiges versucht, aber es bleibt drin.

Erzeugt werden die Einträge wie folgt:

Delphi-Quellcode:
     for i := 0 to Cnt - 1 do begin

        NewItem:=TMenuItem.Create(self);
        NewItem.Caption := SL[i];
        NewItem.OnClick := SelMachine;
        NewItem.ShortCut := 0;
        NewItem.AutoHotkeys := maManual;
        NewItem.Name := 'MaIdx' + IntToStr(i);
        NC5AnalyseMaschine1.Add(NewItem);
        end;
      end;
Auswertung dann wie folgt:

Delphi-Quellcode:
 if Sender is TMenuItem then begin

    IP := TMenuItem(Sender).Caption;
Hier kommen dann Einträge wie
&M01
M&02
M0&3

Das muss doch irgendeine Eigenschaft sein, die das macht oder? Die habe ich jedenfalls noch nicht gefunden.

DeddyH 14. Mai 2011 12:03

AW: TMenuItem bringt in Caption immer "&" Zeichen
 
Wird vielleicht irgendwo (und sei es durch einen Seiteneffekt) RethinkHotkeys aufgerufen?

himitsu 14. Mai 2011 12:08

AW: TMenuItem bringt in Caption immer "&" Zeichen
 
Wobei man auch fragen könnte, warum das so störend ist?
(ich hoffe ja nicht, daß da jemand später die Idems über ihre Captions programmseitig ansprechen will :roll:)

In Vista/7 werden diese Markierungen ja meist ausgeblendet
und den Benutzer stört's auch nicht ... wobei er sich vielleicht sogar freut, weil er so diese Tastaturkürzel benutzen kann.

zeras 14. Mai 2011 12:24

AW: TMenuItem bringt in Caption immer "&" Zeichen
 
Zitat:

Zitat von himitsu (Beitrag 1100761)
(ich hoffe ja nicht, daß da jemand später die Items über ihre Captions programmseitig ansprechen will :roll:)

Ja, das hatte ich eigentlich vor. Eine bessere Idee, um dann gezielt an die Daten zu kommen?

DeddyH 14. Mai 2011 12:25

AW: TMenuItem bringt in Caption immer "&" Zeichen
 
Wenn Du schon einen Namen für die Items vergibst, kannst Du sie auch darüber ansprechen (oder eben über ihren Index im Menü).

zeras 14. Mai 2011 12:32

AW: TMenuItem bringt in Caption immer "&" Zeichen
 
Ja, aber ich brauche eigentlich den Text für weitere Recherchen, den ich unter Caption eingetragen habe. Deshalb wollte ich gleich Caption eintragen und dann bei der Auswahl des Menueintrages damit weiterarbeiten.

TMenuItem(Sender).RethinkHotkeys vom gewählten Eintrag bringt false

Im angezeigten Menu wird aber nichts unterstrichen, nur wenn ich dann Sender.Caption lese. Ich nutze noch XP, wenn das was entscheidendes ist.

himitsu 14. Mai 2011 12:39

AW: TMenuItem bringt in Caption immer "&" Zeichen
 
Man kann sich die Objektinstanz merken, gleich da, wo man das erstellt hat.
Man kann einen Namen ( .Name ) vergeben und FindComponent nutzen, denn dafür ist der Name da und der DFM-Loader nutzt dieses auch schon erfolgreich und sehr ausgiebig.

Vorallem Erstes wäre der beste Weg, da schnell, sicher und vorallem direkt.

Anzeige Namen nimmt man niemals für eine Identifizierung, da sowas leicht von außen verändert/manipuliert werden kann und man vorallem Probleme bekommt, wenn man mal an eine Lokalisierung weiterdenkt und alles was in diese Richtung verläuft.

zeras 14. Mai 2011 12:46

AW: TMenuItem bringt in Caption immer "&" Zeichen
 
Danke für die Tipps. Mal sehen, wie ich das umsetzen kann.

himitsu 14. Mai 2011 12:52

AW: TMenuItem bringt in Caption immer "&" Zeichen
 
Du kannst den Text ja nochmal in den Hint kopieren und diesen dann auslesen oder man holt den Text dann nochmal von da, wo er auch beim Befüllen hergekommen ist.

Aber wie du siehst ist .Caption nicht sonderlich geeignet, um es für eine Identifizierung zu nutzen. :zwinker:

zeras 14. Mai 2011 13:00

AW: TMenuItem bringt in Caption immer "&" Zeichen
 
Zitat:

Zitat von himitsu (Beitrag 1100772)
Du kannst den Text ja nochmal in den Hint kopieren und diesen dann auslesen oder man holt den Text dann nochmal von da, wo er auch beim Befüllen hergekommen ist.

Ich habe das nochmal mit hint probiert und da geht es ohne Probleme. Irgendwer (oder Windows) muss wieder mal intelligenter sein, als ich eigentlich will.:)


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:12 Uhr.
Seite 1 von 2  1 2      

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