K
kindly
Unregistered / Unconfirmed
GUEST, unregistred user!
Delphi5 的菜单有个很讨厌的问题,会自动帮你的中文菜单加上(Y)之类的东西,如果失主菜单
可以设资Autohotkey=maManual,但是如果是在工具条按钮中的MenuItem中设置是无论如何也不行的
我改了一下源程序,刚刚搞出来的:)
打开menus.pas
查找下面的程序段
procedure InsertHotkeyFarEastFormat(var ACaption: string; const AHotKey: string; AColumn: Integer);
var
I: Integer;
vMBCSFlag: Boolean;
begin
vMBCSFlag := False;
for I := 1 to Length(ACaption) do
if ACaption in LeadBytes then
begin
vMBCSFlag := True;
System.Break;
end;
if vMBCSFlag then
begin
if Copy(ACaption, (Length(ACaption) - Length(cDialogSuffix)) + 1, Length(cDialogSuffix)) = cDialogSuffix then
ACaption := Copy(ACaption, 1, Length(ACaption) - Length(cDialogSuffix)) +
'(' + cHotkeyPrefix + AHotKey + ')' + cDialogSuffix
else
// ACaption := ACaption + '(' + cHotkeyPrefix + AHotKey + ')';
把这一句注释掉,删掉原有的menus.duc,重新编译menus.pas就行了
end
else if AColumn <> 0 then
System.Insert(cHotkeyPrefix, ACaption, AColumn);
end;
可以设资Autohotkey=maManual,但是如果是在工具条按钮中的MenuItem中设置是无论如何也不行的
我改了一下源程序,刚刚搞出来的:)
打开menus.pas
查找下面的程序段
procedure InsertHotkeyFarEastFormat(var ACaption: string; const AHotKey: string; AColumn: Integer);
var
I: Integer;
vMBCSFlag: Boolean;
begin
vMBCSFlag := False;
for I := 1 to Length(ACaption) do
if ACaption in LeadBytes then
begin
vMBCSFlag := True;
System.Break;
end;
if vMBCSFlag then
begin
if Copy(ACaption, (Length(ACaption) - Length(cDialogSuffix)) + 1, Length(cDialogSuffix)) = cDialogSuffix then
ACaption := Copy(ACaption, 1, Length(ACaption) - Length(cDialogSuffix)) +
'(' + cHotkeyPrefix + AHotKey + ')' + cDialogSuffix
else
// ACaption := ACaption + '(' + cHotkeyPrefix + AHotKey + ')';
把这一句注释掉,删掉原有的menus.duc,重新编译menus.pas就行了
end
else if AColumn <> 0 then
System.Insert(cHotkeyPrefix, ACaption, AColumn);
end;