回 帖 发 新 帖 刷新版面

主题:怎么建立单元???

UNIT源程序写好了,怎样搞成单元??高手帮忙!!!!!!

回复列表 (共5个回复)

沙发

unit 单元名;
interface
{函数名称}
implementation
{过程}

begin
end.

板凳

unit 单元名;
interface
{常量、类型、变量、函数、过程声明}
这里声明的可以被调用,函数、过程只需要写第一行,剩下的写在下面
implementation
在这里写的常量、类型、变量、函数、过程不能被外部程序调用。
并把上面声明的代码写清楚。
begin
这里写出初始化内容,如果没有上面的那个begin可以省略。
end.

举一例:
[quote]unit bmp;
interface
    uses graph;
    const
      maxx=19;maxy=9;
    var
      x,y:byte;
    procedure BMP16(path:string;x,y:integer;vscolor:byte);
    procedure inigraph;
implementation
  procedure inigraph;
    var
      grDriver: Integer;
      grMode: Integer;
      ErrCode: Integer;
  begin
    grDriver := Detect;
{$IFDEF Use8514}                          { check for Use8514 $DEFINE }
    GrDriver := IBM8514;
    GrMode := IBM8514Hi;
{$ELSE}
    GrDriver := Detect;                { use autodetection }
{$ENDIF}
    InitGraph(GrDriver, GrMode, '');
    ErrCode := GraphResult;
    if ErrCode <> grOk then begin
      Writeln('Graphics error:', GraphErrorMsg(ErrCode));
      halt(1);
    end;
  end;
procedure BMP16(path:string;x,y:integer;vscolor:byte);
  const
    color16:array [0..15] of byte
      =(0,4,2,6,1,5,3,8,7,12,10,14,9,13,11,15);
  var
    fin:text;
    width,height,f:word;
    a:array [1..2] of byte;
    n,k,r:byte;
    i,j,l:longint;
    c:char;
begin
  assign(fin,path);
  reset(fin);
  for i:=1 to 10 do read(fin,c);
  f:=0;
  for j:=1 to 4 do begin
    read(fin,c);f:=ord(c)*round(exp(ln(256)*(j-1)))+f;
  end;
  for i:=1 to 4 do read(fin,c);
  width:=0;
  for j:=1 to 4 do begin
    read(fin,c);width:=ord(c)*round(exp(ln(256)*(j-1)))+width;
  end;
  height:=0;
  for j:=1 to 4 do begin
    read(fin,c);height:=ord(c)*round(exp(ln(256)*(j-1)))+height;
  end;
  reset(fin);r:=0;
  for i:=1 to f do read(fin,c);
  i:=1;j:=1;
  while (i<=height) do begin
    read(fin,c);r:=(r+1) mod 4;
    n:=ord(c);
    a[1]:=n div 16;
    a[2]:=n mod 16;
    for k:=1 to 2 do begin
      if (x+j-1>=0) and (x+j-1<=getmaxx) and (y+height-i>=0) and (y+height-i<=getmaxy) then
      if color16[a[k]]<>vscolor then putpixel(x+j-1,y+height-i,color16[a[k]]);
      j:=j+1;if j>width then break;
    end;
    if j>width then begin
      j:=1;
      i:=i+1;
      if r<>0 then for l:=3 downto r do read(fin,c);
      r:=0;
    end;
  end;
  close(fin);
end;
end.
[/quote]
这个是我纸牌上的一个过程。

3 楼

我记得好像直接Alt+F9编译过后就可以生成单元文件了

4 楼

是不是还要先保存为****.tpu????
可还是没用?????????????

5 楼


应该要用MAKE

我来回复

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