易码技术论坛

 找回密码
 加入易码
搜索
查看: 102019|回复: 4

[求助]帮忙改一下输入函数,以适用于TC800

[复制链接]
发表于 2006-4-25 08:27:00 | 显示全部楼层
用LavaX的System.PY2GB

LavaXIde3.1版有其详细用法及范例
发表于 2006-4-25 03:05:00 | 显示全部楼层
Tc800的中文输入可以使用拼音输入法,Lava里面内建的。

你去查Lava的帮助,System.py好像是这个函数……里面有一个现成的拼音输入法。
 楼主| 发表于 2006-4-26 19:52:00 | 显示全部楼层
对不起,我应该说成"我编《极限斗地主》时改写的":

我是参考一个复制程序中的!是你的吧?
[em04]
发表于 2006-4-30 23:55:00 | 显示全部楼层
我在星软上传中上传了一个,在“给e路客的文件”里
 楼主| 发表于 2006-4-24 20:01:36 | 显示全部楼层 |阅读模式
下面的源程序是我编《极限斗地主》时写的,但这个函数在TC800中不能输入中文。有谁能帮我把它改成适合TC800输入中文的输入函数呢?我在这里先谢了!同时也为TC800的用户说声谢!

void inputname()
{
char gs[3];
int cz;
char name[7];
char mode;
mode=2;
n=0 ;
gs[2]=0 ;
memset(name,0,7);
GetBlock(0,0,160,80,0x40,data);
for(;;)
    {
    n=strlen(name);
    WriteBlock(0,0,160,80,0x81,data);
    Block(14,30,146,48,0);
    Rectangle(14,30,146,48,1);
    Block(16,49,146,50,1);
    Block(147,32,148,50,1);
    TextOut(16,32,"你的名字:",0x81);
    TextOut(96,32,name,0x81);
    if(strlen(name)<6)Block(strlen(name)*8+96,32,strlen(name)*8+104,46,1);
    else Block(strlen(name)*8+88,32,strlen(name)*8+96,46,2);
    Refresh();
    cz=GetWord(mode);//关键可能是在这里吧??
    mode=3;
    gs[0]=cz ;
    if(isprint(gs[0]) && n<6)
        {
        name[n]=gs[0];
        continue ;
        }
    else
    if(gs[0]>=160 && n<6)
        {
        gs[1]=cz>>8 ;
        memcpy(name+n,gs,2);
        continue ;
        }
    else
    if(gs[0]==23 && n)
        {
        n--;
        if(name[n]>=160)
            {
            n--;
            memset(name+n,0,2);
            }
        else name[n]=0 ;
        continue ;
        }
    else
    if(gs[0]==13 && n)
        {
        name[n]=0 ;
        sprintf(ndmz,name);
        output();
        break ;
        }
    if(gs[0]==27)
        {
        return;
        }
    if(n==0 && gs[0]==13)Beep();
    if(n==6)Beep();
    }
}
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-5-13 16:15 , Processed in 0.014067 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表