TMS 控件单元文件乱码

看那山瞧那水 2015-01-18 01:52:14
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;


一些特殊符号和 ' 结合一起,就乱了,大家是怎么处理的?
...全文
323 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
源码直接下载地址: https://pan.quark.cn/s/1c143f32ee83 华为作为全球领先的通信设备供应商,其产品系列广泛涉及各类网络设备,其中包括我们接下来要探讨的上网卡产品。华为上网卡驱动程序是一种专门为华为品牌旗下多种型号上网卡开发的软件模块,其主要功能在于保障这些设备与计算机操作系统的无缝对接。涉及的型号涵盖EC8189、EC226、EC169C、EC360、EC1260、EC1261、EC189、EC122、EC150以及EC168,这些均是由华为公司推出的移动宽带调制解调器,旨在通过移动网络实现便捷的互联网接入服务。驱动程序在计算机系统中的地位举足轻重,它充当了硬件设备与操作系统之间的媒介,负责对硬件设备发出的指令进行解读和执行,并将操作系统的指令传递给硬件设备。华为上网卡驱动程序的及时更新和精准安装是保障设备稳定运作和性能达到最优的关键因素。"天翼宽带安装程序V1.3.3.exe"是由中国电信提供的一个整合性软件包,内含华为上网卡的驱动程序及配套的管理工具。用户可借助此安装程序来执行华为上网卡的相关驱动安装及更新,同步享受中国电信的3G或4G网络服务。版本标识V1.3.3代表软件经过迭代优化,通常包含了对错误的修正、性能的改善以及新功能的引入。 "SetupInfo.xml"作为安装程序的配置文档,其中收录了安装流程中的各项设定和元数据信息,例如安装流程、文件定位、依赖条件等。它是安装程序在执行时参照和遵循的纲领,旨在确保安装流程按既定方案进行。文件名"CT_HW_EVDO_Driver"或许指向华为的EVDO(Evolution-Data Optimized)驱动程序,EVDO是一种3G无线通信规范,具备高速数据传输的特性。该驱动可...
内容概要:本文围绕【博士论文复现】基于小信号扫频辨识的光伏并网逆变器正负序交互稳定性分析展开,结合Matlab代码与Simulink仿真实现,系统研究了光伏并网逆变器在弱电网环境下的正负序阻抗建模与交互稳定性问题。重点采用小信号扫频法进行系统辨识,获取逆变器的正负序阻抗特性,并通过奈奎斯特稳定判据等方法分析其在不同电网强度下的稳定性表现。文中详细阐述了扫频激励信号的设计原理、频域响应数据的提取与处理流程、阻抗模型的拟合与验证方法等关键技术环节,实现了对逆变器在复杂电网条件下动态交互行为的精确刻画。该研究不仅深入揭示了新能源并网系统中潜在的宽频振荡机理,也为提升系统稳定性、优化控制器设计提供了坚实的理论依据和有效的技术手段。; 适合人群:具备电力电子、自动控制及电力系统基础知识,从事新能源并网、电力系统稳定性研究的研究生、科研人员及工程技术人员。; 使用场景及目标:① 掌握基于小信号扫频法的电力电子装置阻抗建模方法;② 深入理解光伏并网逆变器在弱电网下的正负序交互稳定性机理;③ 学习并复现高水平博士论文中的核心仿真技术,提升科研实践能力;④ 为实际工程中新能源并网系统的稳定性分析、振荡问题诊断与控制器优化设计提供理论支持和技术参考。; 阅读建议:学习者应结合提供的Matlab代码与Simulink模型,深入理解扫频辨识的原理与实现步骤,重点关注锁相环、电流控制环等关键模块对系统阻抗特性的影响,并尝试改变系统参数以观察稳定性变化,从而加深对理论知识的掌握。

5,943

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧