delphiassigned函数的用法 delphi assigned

if not Assigned(Modeless) then Assigned()什么意思!

assigned 是用来判断某一指针(pointer)或过程引用是否为nil(空),如果为空则返回假(false)。

用法示例(防止窗体被实例化多次):

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants,Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Button1:TButton;

procedureButton1Click(Sender: TObject);

private

{ Privatedeclarations }

public

{ Publicdeclarations }

end;

var

Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

if (Not assigned(form2)) then

begin

form2:=Tform2.Create(Self);

end;

form2.show;

end;

end.

-----------------------

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants,Classes, Graphics, Controls, Forms,

Dialogs;

type

TForm2 = class(TForm)

procedureFormClose(Sender: TObject; var Action: TCloseAction);

private

{ Privatedeclarations }

public

{ Publicdeclarations }

end;

var

Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.FormClose(Sender: TObject; var Action:TCloseAction);

begin

Action:=caFree;

form2:=nil;//这句比较重要,窗体被释放时,窗体变量并不会自动变空

end;

end.

很详细呢,不过不是我的原创,我转的,希望对你有用啦。。。。。

另一篇网络文章

关于Delphi中的Assigned2008-04-05 10:53
关于Delphi中的Assigned
function Assigned(var P): Boolean;

Description

Use Assigned to determine whether the pointer or procedurereferenced by P is nil. P must be a variable reference of a pointeror procedural type. Assigned(P) corresponds to the testP<> nil for a pointer variable, and@P <> nil for a proceduralvariable.

Assigned returns False if P is nil, True otherwise.

检查指针指向的参考变量或过程是否为nil

每次我通常的处理方法都是:

if assigned(frm) thenfrm.close;但是当下次调用时就会出错。为什么呢,直到咋天我才知道原因

frm.close;frm.free;只是指定这块内存可以重写,并未释放为NIL 因此当下次调用时即使frm.free已经

执行过assigned(frm)仍为TRUE;

正确的处理方法:

if assigned(frm) then
begin
frm.close;
frm:=nil;
end;

或:

if assigned(frm) then
begin
frm.close;
freeandnil(frm);
end;

delphiassigned函数的用法 delphi assigned
freeandnil的说明:

procedure FreeAndNil(var Obj);

Description

Use FreeAndNil to ensure that a variable is nil after you free theobject it references. Pass any variable that represents an objectas the Obj parameter.

  

爱华网本文地址 » http://www.aihuau.com/a/25101015/269236.html

更多阅读

EXCEL表中LEFT和RIGHT函数的用法 left和right函数

在用EXCEL表中的时候,懂得一些常用的函数,会给你的工作带来很大便利。就像上次偶然的机会,听同事说道LEFT和RIGHT函数的用法,还挺有用的。像导出的财务数据,日期的格式都是2010-01-01,但是如果你只需要年月,不需要日期,你可以插入另外一列,适用

SetTimer函数的用法 c settimer用法

SetTimer函数的用法VS2008Ontimer函数在CDialogBar类中不能响应解决方案:如果是手工加的wm_timer消息,那就要检查一下BEGIN_MESSAGE_MAP(...Dlg, CDialog),END_MESSAGE_MAP()ON_WM_TIMER()宏之间有没有ON_WM_TIMER()了,没有的要添

Excel统计函数COUNTIF的用法及实例 vb随机函数用法和实例

[转自]★笨笨☆ http://blog.sina.com.cn/pengjichang一:首先介绍COUNTIF函数的用法英文通用格式是:COUNTIF(range,criteria)中文通用格式是:COUNTIF(数据区域,条件表达式)1、返加包含值12的单元格数量=COUNTIF(range,12)2、返回包含负值的

Excel IF函数用法教程原创 excel中if函数的用法

怎么用IF函数?[日期:2012-09-04]来源: 作者:兰色幻想[字体:大 中 小]如果说在excel中最常用的函数是哪个?大部分同学都会脱口而出:IF函数。IF函数在我们工作中应用非常多,因为我们要不停的进行各种各样的判断,比如是不是达标了,是男还是女,是在

声明:《delphiassigned函数的用法 delphi assigned》为网友绅士告别分享!如侵犯到您的合法权益请联系我们删除