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;
一些特殊符号和 ' 结合一起,就乱了,大家是怎么处理的?
相关推荐
Delphi 13.1控件之TMS Unicode Component Pack v2.4.0.1.rar
Delphi 13.1控件之TMS Unicode Component Pack v2.4.0.1.rar
Delphi 13集成TMS Scripter:脚本引擎安装与调试实战指南
脚本引擎作为提升桌面程序灵活性的关键技术,允许开发者在不重编译主程序的情况下动态调整业务规则。TMS Scripter 基于 Object Pascal 语法,与 Delphi 无缝集成,运行时通过 Compile 与 Execute 执行脚本文本,并支持函数注册与断点调试。在进销存、OA 等项目中,它能将规则修改的发布周期从几天压缩到几分钟,同时利用热更新机制让业务在不停机状态下生效。针对 RAD Studio 12/13(即 Delphi 13)环境,TMS Scripter v7.37.0.0 提供完
TMS VCL UI Pack安装指南:Delphi 12下从BPL到SQLite实战
VCL组件库的安装并非简单解压,其核心在于理解运行期包(BPL)与设计期包(BPL)的编译顺序与注册机制。以TMS VCL UI Pack在Delphi 12.3环境下的部署为例,从源码头配置、包编译到IDE注册,每一步都直接影响控件能否正常使用。掌握这套原理后,无论是处理TAdvStringGrid的Tool Palette显示问题,还是解决数据绑定时的中文乱码现象,都能按逻辑排查。实际工程中,表格控件常与SQLite等嵌入式数据库配合,通过FireDAC连接并填充数据,同时注意编码设置与界面参数调优。本
Delphi界面美化实战:StyleControls控件包在遗留系统现代化改造中的应用
在桌面应用程序开发中,界面美化是提升用户体验的关键环节,尤其对于使用传统技术栈的遗留系统。Delphi的VCL框架虽然稳定,但其原生控件样式较为陈旧,难以满足现代审美需求。界面换肤技术通过子类化和自绘机制,接管控件的绘制过程,实现外观的动态更新。这项技术的核心价值在于能以最小成本为现有系统赋予现代化视觉风格,避免大规模代码重构。在工程实践中,第三方换肤控件包成为快速实现这一目标的实用工具,它们通常提供丰富的样式属性和皮肤文件支持,适用于需要统一UI风格或支持多套主题切换的应用场景。本文聚焦于StyleCon
delphi的支持unicode的第三方控件 TMS Unicode
支持D6到D2011,普通的delphi控件这里都有相应的控件,都支持Unicode.


