请问各位高手,在Delphi的MDI中如何定义全局变量和全局过程(50分)

  • 主题发起人 主题发起人 黑衣人
  • 开始时间 开始时间

黑衣人

Unregistered / Unconfirmed
GUEST, unregistred user!
如题。是在MDI的主窗体中定义吗?
 
对高手而言这么简单的问题都没人帮帮我吗?????
 
可以,然后在需要用到全局变量的单元的implementation段user主窗体的单元.
 
高手,请问具体怎么实现???
 
type
TForm1 = class(TForm)
private
{ Private declarations }
public
//在這里定義全局變量.比如定議一字符開變量AA,過程也類同
aa:string;
{ Public declarations }
end;
{在其它表單中調用這個變量,本表單名.aa就可以了,但記住在調用這個變量的表單中一定要
加入本表單,即在要調用的表單為當前表單時選主菜單的file=>use unit ...=>再選中有此
變量的表單就行了}
 
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
//错啦,应该在这里
 aa: String;
Procedure ...;
Function ...;
//这里才是全局的,只要其它单元引用这个单元,可以直接使用 aa ,...你定义的过程 
 
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
//错啦,应该在这里
var
//错啦,应该加上var.
 aa: String;
Procedure ...;
Function ...;
//这里才是全局的,只要其它单元引用这个单元,可以直接使用 aa ,...你定义的过程 
sydan兄种也可以,那叫对象的全局成员,要使用的话必须要有TForm1的实例!
 
同意 rainxy2002的;
 
最好的办法是放在一个无窗体的公共单元中,这样就可以在调用的时候不用加窗体名,更
加省事,你只需uses一下公共单元名就行了。具体作法是:
菜单file-new,然后在new页面中选unit,然后在unit的interface后加公共变量定义,如有
必要,前面还要加uses 相关部分,如下:
unit PublicUnit;

interface

uses Windows, Messages, SysUtils, Registry, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls,ADODb,DB, StdCtrls, Grids, Aligrid,CheckLst,Buttons, ExtCtrls,Winprocs;

var G_AppDirect,G_DcUser:string; //应用程序目录全局变量,当前用户
G_String:string; //通用字符变量.
G_Integer:integer; //通用数值变量.
G_Bool:boolean; //通用逻辑变量.
G_float:real; //通用浮点变量
 
在mdi中用全局变量是可以的就跟在form定义后面定义,然后在需要用的地方引用
这个pas文件,但遇到要引用的控件,就麻烦了!
 
公用函数(function)或者过程(procedure)或者变量(var)或者常量(const)
最好放在一个public unit中,比如PubU.
然后每个单元要使用这写东西,就uses PubU.
有些时候你需要调整功能时,只需修改这些公用函数。减少了工作量
这也是一种良好的编程习惯
 
如果是MID则可以在主表单的PUBLIC下定义
 
多人接受答案了。
 
后退
顶部