zoukankan      html  css  js  c++  java
  • 单据录入用户输入法个性化(修改)

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

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

    方法很简单:

    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;
  • 相关阅读:
    2015年值得关注的8款跨平台开发工具(界面类)
    2015年最值得关注的8款用户界面新品
    2015年最受欢迎的8个用户界面组件
    DevExpress v15.2.4帮助文档下载(全)
    DevExpress .NET界面开发示例大全
    DevExpress免费线上公开课17日开课
    DevExpress 2015.2发布 看看有哪些更新
    图文详细解说DevExpress 2015新版亮点【附文档下载】
    myeclipse 2015 CI 16发布【附下载】
    swift 第三天 控制流
  • 原文地址:https://www.cnblogs.com/qzfitsoft/p/1823726.html
Copyright © 2011-2022 走看看