Delphi自定义单元模块和调用_全局函数、全局过程、全局变量、全局常量定义

Delphi的基础研究记录

 

当我们熟悉了一个第一语言后去学习另一种语言,往往但会想到 第一语言的功能。Delphi这门语言基于 VB 和 VC++ 之间的一个语言,非常不错,很快上手了。

下面定义个自定义模块。不过我喜欢叫 单元模块。 因为 Delphi 的程序代码是 由N个单元构成,其实这里的单元就是 VB里面的模块差不多。下面的这个单元模块,里面没有对象实现。但是函数和过程,还有全局变量和全局变量初始化和全局常量。

这里有一个错误比较特殊,就是 当你写了关键字后,但是没有 写接下来的匹配的代码他就会提示

Identifier expected but 'PROCEDURE' found错误 

Identifier expected but 'function' found错误  

比如你写了uses但是没写 单元模块名,那就直接给你报错。

你写了  var 但是没写 变量声明,那也直接给你报错。

unit MyMode;  //本单元模块名 为  MyMode  ,如果要使用本单元模块中的全局变量 或 函数 过程 可以 将本单元模块名 写到    uses 关键字下面 即可。


 //接口部分
interface

  //引用其他单元模块
  uses
        Dialogs;

  // 声明函数或过程
        function TestA(s:string): string;
        procedure TestB(s:string);

        procedure TestC();


  //声明全局变量
  var       //  var 关键字下无 变量 声明,就不要写! 会造成Identifier expected but 'PROCEDURE' found错误     或  Identifier expected but 'function' found错误

      g_abc:string = 'g_abc=模块中全局变量测试';  //声明全局常量,同时赋值
      g_efg:string ;
 const    //全局常量的声明
    g_hij:string = 'g_abc=模块中全局常量测试';  //声明全局常量,同时赋值

//实现
implementation

             //一、实现函数   TestA
             function   TestA(s:string):string;
             var
               a: String;
             begin
              a:='提示内容为 ';
              g_efg:= 'g_efg=模块中的全局变量已被修改';    //这个只是测试,说明政府变量是全局的,不仅可以再本单元里面可以被修改,还可以被外部的程序所修改
              //  ShowMessage( a+s)  ;
              result:=g_abc;
             end;

             //二、实现函数  TestB
             procedure TestB(s:string);
             begin
                 ShowMessage('你好 '+s);
             end;


             //三、实现过程  无参数的过程
             procedure TestC();
             begin
                 ShowMessage('你好');
             end;
end.

那么以上的函数和变量 是要在 From1窗体里面被调用的,我们怎么调用了。下面的代码

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,MyMode;
    //如果你将一个 按钮 放进一个窗体,你就自动地使用了StdCtrls单元,因为TButton构件在StdCtrls中定义
type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
  var
  ret:string;
begin

     ret :=   MyMode.TestA('111');


      ShowMessage(ret);  // ShowMessage 这个函数在 Dialogs 这个单元模块里面



end;


// API函数调用
procedure TForm1.Button2Click(Sender: TObject);
var
   a:HWND;    //Delphi 也有   句柄这个数据类型
begin
   a:= 0;
   MessageBoxA(a,'今天天气不错','侠客提示',0); // MessageBoxA 函数在 Windows这个单元模块里面
end;

procedure TForm1.Button3Click(Sender: TObject);
  var
  ret:string;
begin
       MyMode.

      MyMode.g_abc := '1111111111111111111';
     ret :=   MyMode.g_abc ;    //这个据说是常量,但是我这边可以修改


      ShowMessage(ret);  // ShowMessage 这个函数在 Dialogs 这个单元模块里面
end;

end.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

侠客软件开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值