赞同iBear的观点。不要使用宏,用const。

解决方案 »

  1.   

    当然没有啊,PASCAL的语法和C语言的语法都不一样啊,怎么会有宏定义呢?你看看书在对照两种语言的语法看看,你就会理解的更加深刻一些的。
      

  2.   

    用const,宏定义不安全,在C中都比较推荐使用const而不是用宏
      

  3.   

    我想请教一下:
    作一个procedure fitsysfont(form:tform);
    begin
      form.font.charset=getdeffontcharset;
    end;
    可是这样调用的时候就会出错:说形参和实参类型不符.
    firsysfont(self);我想要使用c++builder宏定义,一定能实现.
    但是我不知道delphi怎样实现呢?
      

  4.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, Buttons;type
      TForm1 = class(TForm)
        BitBtn1: TBitBtn;
        procedure BitBtn1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
    procedure fitsysfont(form:tform);
    implementation{$R *.DFM}procedure fitsysfont(form:tform);
    begin
      form.font.charset:=getdeffontcharset;
    end;
    procedure TForm1.BitBtn1Click(Sender: TObject);
    begin
      fitsysfont(self);
    end;end.我(Delphi5.0+Win98)这么写为什么不会出错?
      

  5.   

    Delphi中没有类似C++中宏的方法,不过也有一些变通的方法。如果是常量,可以使用Const语句。如果是表达式,可以使用Type语句。
      

  6.   

    to :pdsinfo(新手)
    可是我的win2000+delphi6就不行,
    我试过tcontrol...所有已经包含font属性的基类的都试验了。就是不行呀!
    我不知道你的为什么行。
      

  7.   

    [Error] Unit1.pas(97): Types of actual and formal var parameters must be identical
      

  8.   

    你的我式了,可以,但是我用的是:
    procedure fitsysfont(var form:tform);
    为什么不行呢?
      

  9.   

    {$INCLUDE FileName}
    //这有点象宏
      

  10.   

    //test.inc
    ShowMessage(//test.pasbegin
      {$I test.inc}'新年好!');
    end;
      

  11.   

    回复人: stanely(暗黑) (2002-1-1 20:39:06)  得0分 
    按说应该用var呀!