• 单据录入用户输入法个性化(修改)


    如今输入法繁多,用户在使用软件录入单据,每录入一个信息,跳到下一个输入框要不断的切换输入法,很麻烦。

    无聊时在软件系统设置加了一个输入法个性化功能,每个用户只要选择了自己常用的输入法后,录入数据时无需一直切换输入法。

    方法很简单:

    1。读入系统输入法列表,让用户选择输入法,并保存输入法到INI文件

    2。在窗体基类里动态修改Component的ImeName属性

    部分实现代码:

    1 //获取系统输入法列表
    2   edtIME.Items.Clear;
    3   for i := 0 to Screen.Imes.Count - 1 do
    4     edtIME.Items.Add(Screen.Imes.Strings[i]);
    5   IniIME := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'sys.ini');
    6   edtIME.Text := IniIME.ReadString('IME''MYIME''');
     
     1   //统一输入法
     2   for i := 0 to ComponentCount - 1 do
     3   begin
     4     if Components[i] is TdxDBEdit then
     5       TdxDBEdit(Components[i]).ImeName := SYSIME;
     6     if Components[i] is TdxEdit then
     7       TdxEdit(Components[i]).ImeName := SYSIME;
     8     if Components[i] is TdxDBMemo then
     9       TdxDBMemo(Components[i]).ImeName := SYSIME;
    10     if Components[i] is TdxMemo then
    11       TdxMemo(Components[i]).ImeName := SYSIME;  
    12     if Components[i] is TdxDBButtonEdit then
    13       TdxDBButtonEdit(Components[i]).ImeName := SYSIME;
    14     if Components[i] is TdxButtonEdit then
    15       TdxButtonEdit(Components[i]).ImeName := SYSIME;
    16     if Components[i] is TdxDBPickEdit then
    17       TdxDBPickEdit(Components[i]).ImeName := SYSIME;
    18     if Components[i] is TdxPickEdit then
    19       TdxPickEdit(Components[i]).ImeName := SYSIME;
    20     if Components[i] is TdxDBDateEdit then
    21       TdxDBDateEdit(Components[i]).ImeName := SYSIME;
    22     if Components[i] is TdxDateEdit then
    23       TdxDateEdit(Components[i]).ImeName := SYSIME;
    24   end;

     经lotsbug指点,重新写了代码

    1   //统一输入法
    2   if SYSIME <> '' then
    3   for i := 0 to ComponentCount - 1 do
    4   begin
    5     if Components[i] is TWinControl then
    6       if IsPublishedProp(Components[i], 'ImeName'then
    7         if GetPropValue(Components[i], 'ImeMode', True) = 'ImChinese' then
    8           SetPropValue(Components[i], 'ImeName', SYSIME);
    9   end;
  • 相关阅读:
    Nginx 部署多个 web 项目(虚拟主机)
    Nginx 配置文件
    Linux 安装 nginx
    Linux 安装 tomcat
    Linux 安装 Mysql 5.7.23
    Linux 安装 jdk8
    Linux 安装 lrzsz,使用 rz、sz 上传下载文件
    springMVC 拦截器
    spring 事务
    基于Aspectj 注解实现 spring AOP
  • 原文地址:https://www.cnblogs.com/qzfitsoft/p/1823726.html
Copyright © 2020-2023  润新知