TMS 控件单元文件乱码
TMS控件有些单元源代码乱码,很早就有这个问题,但是数量少,现在好像有扩展趋势,太多了,改的好累,大家有什么办法
几个版本都一样,7.5.3.0 7.5.2.0 7.1.3.0 几个版都一样,
这个单元D:\delphixe6VCL\TMSComponentPack 7.5.3.0\AdvSmoothTouchKeyBoard.pas
function TAdvSmoothTouchKeyBoard.GetComboKey(AKey: String): String;
begin
Result := AKey;
if FComboKeyValue = '^' then
begin
if AKey = 'a' then
Result := '?
else if AKey = 'e' then
Result := '?
else if AKey = 'o' then
Result := '?
else if AKey = 'i' then
Result := '?
else if AKey = 'u' then
Result := '?
else if AKey = 'A' then
Result := '?
else if AKey = 'E' then
Result := '?
else if AKey = 'O' then
Result := '?
else if AKey = 'I' then
Result := '?
else if AKey = 'U' then
Result := '?
end
else if FComboKeyValue = '? then
begin
if AKey = 'a' then
Result := '?
else if AKey = 'e' then
Result := '?
else if AKey = 'o' then
Result := '?
else if AKey = 'i' then
Result := '?
else if AKey = 'u' then
Result := '?
else if AKey = 'A' then
Result := '?
else if AKey = 'E' then
Result := '?
else if AKey = 'O' then
Result := '?
else if AKey = 'I' then
Result := '?
else if AKey = 'U' then
Result := '?
end
else if FComboKeyValue = '? then
begin
if AKey = 'a' then
Result := '?
else if AKey = 'e' then
Result := '?
else if AKey = 'o' then
Result := '?
else if AKey = 'i' then
Result := '?
else if AKey = 'u' then
Result := '?
else if AKey = 'A' then
Result := '?
else if AKey = 'E' then
Result := '?
else if AKey = 'O' then
Result := '?
else if AKey = 'I' then
Result := '?
else if AKey = 'U' then
Result := '?
end
else if FComboKeyValue = '`' then
begin
if AKey = 'a' then
Result := '?
else if AKey = 'e' then
Result := '?
else if AKey = 'o' then
Result := '?
else if AKey = 'i' then
Result := '?
else if AKey = 'u' then
Result := '?
else if AKey = 'A' then
Result := '?
else if AKey = 'E' then
Result := '?
else if AKey = 'O' then
Result := '?
else if AKey = 'I' then
Result := '?
else if AKey = 'U' then
Result := '?
end
else if FComboKeyValue = '~' then
begin
if AKey = 'a' then
Result := '?
else if AKey = 'n' then
Result := '?
else if AKey = 'o' then
Result := '?
else if AKey = 'A' then
Result := '?
else if AKey = 'N' then
Result := '?
else if AKey = 'O' then
Result := '?
end
end;
procedure TAdvSmoothTouchKeyBoard.BuildAZERTYKeyBoard;
var
CurrentX,
CurrentY,
Size : integer;
begin
CurrentY := 1;
CurrentX := CurrentY;
Size := 40;
DoAutoZoom := false;
if not (csLoading in ComponentState) then
begin
Height := 202;
Width := 602;
FOriginalW := 602;
FOriginalH := 202;
end;
DoAutoZoom := true;
with Keys do
begin
AddKey('?, '?,'', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('&', '1','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('?, '2','@', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('"', '3','#', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('''', '4','',-1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('(', '5','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('?, '6','^',-1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone, false, false, true);
AddKey('?, '7','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('!', '8','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('?, '9','{', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('?, '0','}', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey(')', '?,'', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('-', '_','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('Backspace', '','', VK_BACK, -1, -1, -1, Size * 2, Size, CurrentX, CurrentY, skBackSpace, False, False, False, $A0A0A0);
// End Row #1
NewRow(CurrentX, CurrentY, Size);
AddKey('->', '<-','', VK_TAB, -1, -1, -1, (Size * 6) div 4, Size, CurrentX, CurrentY, skTab, False, False, False, $A0A0A0);
AddKey('A', '','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddKey('Z', '','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('E', '','€', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddKey('R', '','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('T', '','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('Y', '','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddSubKey('');
AddSubKey('?);
AddSubKey('?);
AddKey('U', '','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddKey('I', '','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddKey('O', '','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddSubKey('?);
AddKey('P', '','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('^', '?,'[',-1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone, true, true);
AddKey('$', '*',']', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
CurrentX := CurrentX + (Size div 4);
AddKey('Enter', '','', VK_RETURN, -1, -1, -1, (Size * 5) div 4, Size * 2, CurrentX, CurrentY, skReturn, False, False, False, $A0A0A0);
// End Row #2
NewRow(CurrentX, CurrentY, Size);
AddKey('Caps Lock', '','', VK_CAPITAL, -1, -1, -1, (Size * 7) div 4, Size, CurrentX, CurrentY, skCaps, False, False, False, $A0A0A0);
AddKey('Q', '','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('S', '','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('D', '','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('F', '','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('G', '','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('H', '','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('J', '','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('K', '','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('L', '','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('M', '','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('?, '%','?, -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone, false, false, true);
AddKey('?, '?,'`', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone, false, false, true);
// End Row #3
NewRow(CurrentX, CurrentY, Size);
AddKey('Shift', '','', VK_LSHIFT, -1, -1, -1, (Size * 5) div 4, Size, CurrentX, CurrentY, skShift, False, False, False, $A0A0A0);
AddKey('<', '>','\', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('W', '','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('X', '','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('C', '','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('V', '','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('B', '','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('N', '','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddSubKey('?);
AddSubKey('?);
AddKey(';', '.','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey(';', ',','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey(':', '/','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('=', '+','', -1, -1, -1, -1, Size, Size, CurrentX, CurrentY, skNone);
AddKey('Shift', '','', VK_RSHIFT, -1, -1, -1, (Size * 11) div 4, Size, CurrentX, CurrentY, skShift, False, False, False, $A0A0A0);
// End Row #4
NewRow(CurrentX, CurrentY, Size);
AddKey('Ctrl', '','', VK_LCONTROL, -1, -1, -1, (Size * 6) div 4, Size, CurrentX, CurrentY, skCtrl, False, False, False, $A0A0A0);
AddKey('Win', '','', VK_LWIN, -1, -1, 0, Size, Size, CurrentX, CurrentY, skWin, False, False, False, $A0A0A0);
AddKey('Alt', '','', VK_MENU, -1, -1, -1, (Size * 6) div 4, Size, CurrentX, CurrentY, skAlt, False, False, False, $A0A0A0);
AddKey('', '','', VK_SPACE, -1, -1, -1, Size * 6, Size, CurrentX, CurrentY, skSpaceBar);
AddKey('Alt Gr', '','', 0, -1, -1, -1, (Size * 6) div 4, Size, CurrentX, CurrentY, skAltGr, False, False, False, $A0A0A0);
AddKey('Win', '','', VK_RWIN, -1, -1, 0, Size, Size, CurrentX, CurrentY, skWin, False, False, False, $A0A0A0);
AddKey('Menu', '','', VK_APPS, -1, -1, -1, Size, Size, CurrentX, CurrentY, skApp, False, False, False, $A0A0A0);
AddKey('Ctrl', '','', VK_RCONTROL, -1, -1, -1, (Size * 6) div 4, Size, CurrentX, CurrentY, skCtrl, False, False, False, $A0A0A0);
end;
end;
一些特殊符号和 ' 结合一起,就乱了,大家是怎么处理的?