Einzelnen Beitrag anzeigen

Tinky-Winky

Registriert seit: 29. Okt 2008
3 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

TMenuItem.Caption mit '²' im String wird falsch angezeigt

  Alt 26. Jun 2012, 14:23
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.?
  Mit Zitat antworten Zitat