TMenuItem.Caption mit '²' im String wird falsch angezeigt
Hallo,
ich arbeite seit kurzem auf einem neuen Rechner (Windows 7 / 64-Bit) mit einem neuen Delphi (XE2 / Update 4) und habe nun festgestellt, dass in meinem Programm ein Menüpunkt nicht mehr so angezeigt wird, wie früher unter Windows XP mit Delphi5. Das Problem tritt dann auf, wenn TMenuItem.Caption ein String zugewiesen wird, der eine hochgestellte Zwei ('²') enthält. Habe mal ein kurzes Beispiel gemacht:
Delphi-Quellcode:
Beim Button ist das Ergebnis der Stringzuweisung wie erwartet, beim MenuItem wird jedoch an die Beschriftung immer das erste Zeichen des zugewiesenen Strings angehängt - in Klammern und als Großbuchstabe.
unit Unit1;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Menus, Vcl.StdCtrls; type TForm1 = class(TForm) MainMenu1: TMainMenu; MenuItem1: TMenuItem; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Button1.Caption := 'a²b'; // => angezeigter Text: a²b MenuItem1.Caption := 'a²b'; // => angezeigter Text: a²b(A) end; end. Ist das ein Bug oder ein Feature? Habe ich irgendwas falsch eingestellt o.dgl.? |
AW: TMenuItem.Caption mit '²' im String wird falsch angezeigt
Kann ich mit Delphi 2010 und Windows 7 32 Bit auch nachvollziehen - allerdings kann ich mir keinen Reim drauf machen....
|
AW: TMenuItem.Caption mit '²' im String wird falsch angezeigt
Workaround
Delphi-Quellcode:
MenuItem1.Caption := 'a&²b';
|
AW: TMenuItem.Caption mit '²' im String wird falsch angezeigt
mit D2010 unter XP selbes Problem ist..??????:shock:
|
AW: TMenuItem.Caption mit '²' im String wird falsch angezeigt
?????
|
AW: TMenuItem.Caption mit '²' im String wird falsch angezeigt
Zitat:
|
AW: TMenuItem.Caption mit '²' im String wird falsch angezeigt
nein, ein anderer Weg wäre
Delphi-Quellcode:
über Autohotkeys des Menuitems funktioniert es nicht
Menu.AutoHotkeys:=maManual;
|
AW: TMenuItem.Caption mit '²' im String wird falsch angezeigt
Beide Workarounds funktionieren einwandfrei, super!
Herzlichen Dank für Eure schnelle Hilfe! |
AW: TMenuItem.Caption mit '²' im String wird falsch angezeigt
Zitat:
Zitat:
Wäre es nicht besser
Delphi-Quellcode:
Und entfernen per
MenuItem1.Caption := 'a' + cHotkeyPrefix + '²b';
// Damit kann sich das '&' ändern (Plattform / Zukunft - WhatEver)
Delphi-Quellcode:
[Klugsch...modus aus]
DerString := StripHotKey(MenuItem1.Caption);
// DerString enthält jetzt nur noch a²b Gruß, Chris |
AW: TMenuItem.Caption mit '²' im String wird falsch angezeigt
@ChrisE
ei sischer dat... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:09 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