回 帖 发 新 帖 刷新版面

主题:输出汉字  有加分~~~

在阿Ben:[原创]贪食蛇+扫雷 2 in 1 游戏,中文界面!!
我看到了汉字,由于程序太长,我没看懂汉字如何输出,谁能教教我.
我加30~~~~~分

回复列表 (共31个回复)

11 楼

请问什么是Unit,怎样写?

12 楼

Unit就是象Dos,Crt等可以应用的单元,他把一些函数过程
封装起来方便使用和修改

用的方法:uses 单元名;

制作的方法:

unit 单元名;{记住文件名要和这个一样}
interface
var
.....
函数声明{就是没有bein和end和var的函数}

implementation

函数实现;{就是在函数声明;里那些函数的完整板}
end.

13 楼

哈哈,我这人较笨,这UNIT又是第一次用,林记你能把你九楼的程序用unit做后的程序给我写出来一下,好让我有个例子可看~~

14 楼

unit Chinese;
interface

uses Graph,crt;

procedure putone(x,y:integer;s:string;color:integer);

procedure outchinese(x,y:integer;s:string;blank:integer; color:integer);

implementation

procedure putone(x,y:integer;s:string;color:integer);
type
    chinesep=array[1..32] of byte;
var
    a:chinesep;
    f:file of chinesep;
    i,j,x0,y0:integer;
    k:byte;
    q,w:longint;

begin
    q:=ord(s[1])-160;
    w:=ord(s[2])-160;
    q:=(q-1)*94+(w-1);
    assign(f,'HZK16') ;
    reset(f);
    if (q<0) or (q>=filesize(f)) then
      begin
         close(f);
         exit;
      end;
    seek(f,q);
    read(f,a);
    close(f);
    y0:=y;
    for i:=1 to 32 do
     begin
       k:=a[i];
       if i mod 2=1 then
         begin
           x0:=7+x;
           y0:=y0+1;
         end
        else
              x0:=15+x;
       for j:=1 to 8 do
        begin
           if k and 1 =1 then putpixel(x0,y0,color);
            x0:=x0-1;
            k:=k shr 1;
        end;
     end;
end;

procedure outchinese(x,y:integer;s:string;blank:integer; color:integer);
var
   temps:string;
   k:integer;
begin
   k:=1;
   while k<length(s) do
    begin
       temps:=s[k]; k:=k+1;
       temps:=temps+s[k]; k:=k+1;
       putone(x+(k div 2-1)*(16+blank),y,temps,color);
    end;
end;
end.

15 楼

光标停在putpixel(x0,y0,color);上,显示标识副未定义。

16 楼

改好了,请看

17 楼

显示cannot run a unit
但在一旁出现了一个TPU文件

18 楼

对呀,把它编译,不要运行,然后在别的程序里就可以用
uses Chinese;来应用这个单元
然后就可以在程序中用outchinese这个函数来输出中文了

19 楼

谢谢,我终于成功了.....[em1]

20 楼

你们可以通过ccdos来输入汉字

我来回复

您尚未登录,请登录后再回复。点此登录或注册