在program单元中定义了一个全局变量,如何在其它单元引用它?(非unit单元文件定义)

时间:2022-03-12 14:40:23
看如下代码:
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2},
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
  Dialogs, StdCtrls;
var
  strpro: string='project';
{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Application.Run;
end.
这是一个典型的program工程文件源代码。其中定义了一个公共变量strpro。但是我在其它单元文件中无法引用它。直接用strpro肯定不行,想用project1.strpro也不行,因为project1不让uses引用,引用编译会报错。也就是说program作为一个项目文件单元是特殊的源文件,不能象其它unit单元文件可以直接引用。那我该如何使用program中定义的公共变量呢。
我知道可以写一个专有的unit文件来专门定义全局变量,其它单元文件只要uses它即可。这里只是为研究,请勿拍砖,谢谢:)

8 个解决方案

#1


呵呵~这是无法实现的

#2


无法实现

#3


呵呵,那project太特殊了,不知道inprise公司(borland?)为何不能引用工程文件源代码的变量,如果可以定义全局变量就不用专门使用一个单元了,因为工程文件是一个应用程序的入口,定义全局变量来引用显得更自然一些。就象PB的application一样。
不过delphi这样的做法(或者说pascal?)使得程序结构比较严谨。大概这样理解吧。

#4


你他妈白痴,不会定义到一个公共单元里去啊,然后引用这个公共单元,N看不起用全局变量的人,这几天加班脾气不好,别怪我骂人

#5


楼上的兄弟勿急躁,我不想和你讨论全局变量的是非(我也知道java是不使用全局变量的)看清我的原稿最后一句话的说明再骂不迟。
如果你时间看帖子的话请再看看这个问题:
http://topic.csdn.net/u/20071003/17/8a33ce25-eb98-4f7b-b083-4223b98e73f3.html
谢谢!

#6


好像是无法引用的

#7


有没有研究过的?

#8


无法引用。

#1


呵呵~这是无法实现的

#2


无法实现

#3


呵呵,那project太特殊了,不知道inprise公司(borland?)为何不能引用工程文件源代码的变量,如果可以定义全局变量就不用专门使用一个单元了,因为工程文件是一个应用程序的入口,定义全局变量来引用显得更自然一些。就象PB的application一样。
不过delphi这样的做法(或者说pascal?)使得程序结构比较严谨。大概这样理解吧。

#4


你他妈白痴,不会定义到一个公共单元里去啊,然后引用这个公共单元,N看不起用全局变量的人,这几天加班脾气不好,别怪我骂人

#5


楼上的兄弟勿急躁,我不想和你讨论全局变量的是非(我也知道java是不使用全局变量的)看清我的原稿最后一句话的说明再骂不迟。
如果你时间看帖子的话请再看看这个问题:
http://topic.csdn.net/u/20071003/17/8a33ce25-eb98-4f7b-b083-4223b98e73f3.html
谢谢!

#6


好像是无法引用的

#7


有没有研究过的?

#8


无法引用。