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:
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.
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.
Ist das ein Bug oder ein Feature?
Habe ich irgendwas falsch eingestellt o.dgl.?