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?)使得程序结构比较严谨。大概这样理解吧。
不过delphi这样的做法(或者说pascal?)使得程序结构比较严谨。大概这样理解吧。
#4
你他妈白痴,不会定义到一个公共单元里去啊,然后引用这个公共单元,N看不起用全局变量的人,这几天加班脾气不好,别怪我骂人
#5
楼上的兄弟勿急躁,我不想和你讨论全局变量的是非(我也知道java是不使用全局变量的)看清我的原稿最后一句话的说明再骂不迟。
如果你时间看帖子的话请再看看这个问题:
http://topic.csdn.net/u/20071003/17/8a33ce25-eb98-4f7b-b083-4223b98e73f3.html
谢谢!
如果你时间看帖子的话请再看看这个问题:
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?)使得程序结构比较严谨。大概这样理解吧。
不过delphi这样的做法(或者说pascal?)使得程序结构比较严谨。大概这样理解吧。
#4
你他妈白痴,不会定义到一个公共单元里去啊,然后引用这个公共单元,N看不起用全局变量的人,这几天加班脾气不好,别怪我骂人
#5
楼上的兄弟勿急躁,我不想和你讨论全局变量的是非(我也知道java是不使用全局变量的)看清我的原稿最后一句话的说明再骂不迟。
如果你时间看帖子的话请再看看这个问题:
http://topic.csdn.net/u/20071003/17/8a33ce25-eb98-4f7b-b083-4223b98e73f3.html
谢谢!
如果你时间看帖子的话请再看看这个问题:
http://topic.csdn.net/u/20071003/17/8a33ce25-eb98-4f7b-b083-4223b98e73f3.html
谢谢!
#6
好像是无法引用的
#7
有没有研究过的?
#8
无法引用。