Delphi Assigned
1.¸ù¾Ý Delphi Ö¸Áî²Î¿¼ÊÖ²áÖÐ
˵Ã÷£º
Assigned º¯Ê½ÔÚ²ÎÊý²»Îªnilʱ´«»ØTrue,±íʾָÕëÒѾָµ½Ä³¸öÄÚ´æµØÖ·£¬Õâ¸öÄÚ´æµØÖ·¿ÉÄÜÊÇÒ»¸ö¶ÔÏóµØÊ×µØÖ·£¬Ò²¿ÉÄÜÔÚº¯Êý»ò¹ý³ÌÖУ¬ÉùÃ÷Ò»¸öÖ¸Õë±äÁ¿£¬Ã»Óи³ÖµÎªnil £¬ÎÞÂÒµÄÖ¸Ïòij´¦£¬ÕâÁ½¸öÖÖÇé¿ö£¬Assigned£¨Ö¸Õë±äÁ¿£©¶¼²»Îªnil , º¯Êý·Å»ØTrue£»
¶ø²ÎÊýΪnilʱÔò´«»ØFalse¡£
Assigned ²¢²»ÊÇÒ»¸öÕæÕýµÄº¯Êý¡£
¼¼ÇÉ£º
Óúô½Ð Assigned µÄ·½Ê½À´È¡´úÖ±½Ó°Ñ²ÎÊýÄÃÀ´ºÍnil±È½Ï£¬Ð§ÂÊ»á¸üºÃ¡£
2.Õâ¸öÎÊÌâÒª´ÓÄÚ´æ·½ÃæÀ´½âÊÍ
µ±Ä㽨¹¹Ò»¸öÎï¼þ SomeComponet.Create(Owner);
ϵͳ»áÓÐÒ»¸öÖ¸ÕëÖ¸ÏòÕâ¸ö¶ÔÏó
µ±Äã½â¹¹Ò»¸öÎï¼þ SomeComponet.Free;
ϵͳ»á½«Ö¸ÕëÖ¸µ½µÄ¶«Î÷ɱµô£¬µ«ÊÇÖ¸±ê»¹ÊÇÖ¸ÔÚÏàͬµÄλÖÃ
Çë×¢Òâ¼ÆËã»úµÄ×ÊÔ´ÊÇÓÐÏ޵ģ¬
ËùÒÔ¿ÉÄÜÏÂÒ»²½ÄãµÄ³ÌÐòÒª¸úϵͳҪ×ÊÔ´£¬
¸Õ²ÅµÄÖ¸ÕëλÖ㬾ͳöÏÖÁËÆäËüµÄÊý¾Ý
If Assigned(SomeComponet) then SomeComponet := nil;
Ïȼì²éÕâ¸ö¶ÔÏóÓÐûÓÐÔÚÆäËüµØ·½±»Éè³É nil£¬
È»ºóÔÙ½«ËüÉè³É nil ¡£
µ±ÎÒÃÇÎÞ·¨Ô¤²âʹÓÃÕß»áÈçºÎ²Ù±¬ËûµÄ¼ÆËã»ú£¬
³ÌÐòÔ±±ØÐëÁôÒâÄÚ´æµÄ¹ÜÀí¡£ СµÜdz¼û...
3
function Assigned(var P): Boolean;
Description
Use Assigned to determine whether the pointer or procedure referenced by P is nil. P must be a variable reference of a pointer or procedural type. Assigned(P) corresponds to the test P<> nil for a pointer variable, and @P <> nil for a procedural variable.
Assigned returns False if P is nil, True otherwise.
¼ì²éÖ¸ÕëÖ¸ÏòµÄ²Î¿¼±äÁ¿»ò¹ý³ÌÊÇ·ñΪnil
ÿ´ÎÎÒͨ³£µÄ´¦Àí·½·¨¶¼ÊÇ£º
if assigned(frm) then frm.close; µ«Êǵ±Ï´ε÷ÓÃʱ¾Í»á³ö´í¡£ÎªÊ²Ã´ÄØ£¬Ö±µ½Õ¦ÌìÎÒ²ÅÖªµÀÔÒò
frm.close;frm.free; Ö»ÊÇÖ¸¶¨Õâ¿éÄÚ´æ¿ÉÒÔÖØÐ´£¬²¢Î´ÊÍ·ÅΪNIL Òò´Ëµ±Ï´ε÷ÓÃʱ¼´Ê¹frm.freeÒѾ
Ö´Ðйýassigned(frm)ÈÔΪTRUE£¬ÔÙ´ÎÊÍ·Å frm.Close »òÕß frm.free ¿Ï¶¨»á±¨´í£»Ó¦Îªfrm.Close»òfrm.free ÊÇÊÍ·Å ¶ÔÏóÖ¸Õëfrm Ö¸ÏòµÄÄÚ´æ¿Õ¼ä£¬ÔÚÉÏ´ÎÒѾÊͷŵ÷ÁË£¬µ«ÊÇ frm ±¾Éí²¢Ã»ÓÐ ³õʼ»¯Îª nil ,Ïà·´Ëü»¹ÊÇÖ¸Ïò±»ÊͷŵÄÄÚ´æµØÖ·£»¶«Î÷ÒѾûÓÐÁË£¬Ã»Óеض«Î÷È¥ÊÍ·Å£¬²»±¨´í´í²Å¹Ö¡£
ÕýÈ·µÄ´¦Àí·½·¨£º
if assigned(frm) then
begin
frm.close;
frm:=nil;
end;
»ò:
if assigned(frm) then
begin
frm.close;
freeandnil(fr
Ïà¹ØÎĵµ£º
±¾ÊéÒÔʵÀýΪÖ÷Ïߣ¬¸¨ÒÔ±ØÒªµÄ¼¼Êõ±³¾°ÒªµãÀ´½²½âDelphi 6£®0±à³ÌµÄ¾«Ë裻±¾ÊéʵÀýÆ«ÖØÓÚ¶àýÌåºÍÍøÂç³ÌÐò¿ª·¢£¬ÆäÖÐÉæ¼°µ½OpenGL¡¢Indy×é¼þ¡¢XML¡¢Web BrokerºÍWebSnapµÈ¼¼Êõ¡£±¾Ê黹½²ÊöÁËDelphiÖеÄSQL±à³Ì£¬ÔÚÁ½¸ö¶ÌС¾«Á·µÄ³ÌÐòÖгä·ÖÔËÓÃÁËDelphiÊý¾Ý¿ª·¢¼¼Êõ£¬°üÀ¨BDE×é¼þµÄADO×é¼þµÄʹÓá£Í¨¹ý±¾Ê飬ÈöÁÕßÔÚ±à³Ì¹ ......
Êý×éÊÇ¿ÉÒÔͨ¹ýË÷ÒýÀ´ÒýÓõÄͬÀàÐÍÊý¾ÝµÄÁÐ±í¡£°´ÕÕ´æ´¢¿Õ¼äµÄ»ñÈ¡·½Ê½£¬Delphi
Ö§³ÖµÄÊý×éÀàÐÍÓÐÁ½ÖÖ£¬¼´¾²Ì¬Êý×éºÍ¶¯Ì¬Êý×é¡£Ëùν¾²Ì¬Êý×é¾ÍÊÇÔÚÉùÃ÷ʱ¾ÍÒѾȷ¶¨´óСµÄÊý×éÀàÐÍ£¬¶ø¶¯Ì¬Êý×éÊÇÖ¸Æä´óСÔÚÉùÃ÷ʱ²»ÄÜÈ·¶¨µÄÊý×飬¶¯Ì¬Êý×éµÄ´óСÔÚʹÓÃʱȷ¶¨¡£
ÉùÃ÷¾²Ì¬Êý×éµÄ·½Ê½·Ç³£¼òµ¥£¬Ö»ÒªÖ¸Ã÷Êý×鳤¶ÈºÍÊý¾ÝÀàÐÍ ......
Delphi ¹Ø¼ü×ÖÏê½â[ÕûÀíÓÚ "³È×Ó" µÄÌû×Ó]
absolute
//ËüʹµÃÄãÄܹ»´´½¨Ò»¸öбäÁ¿, ²¢ÇҸñäÁ¿µÄÆðʼµØÖ·ÓëÁíÒ»¸ö±äÁ¿Ïàͬ.
var
Str: string[32];
StrLen: Byte absolute Str;
//Õâ¸öÉùÃ÷Ö¸¶¨Á˱äÁ¿StrLenÆðʼµØÖ·ÓëStrÏàͬ.
//ÓÉÓÚ×Ö·û´®µÄµÚ0¸öλÖñ£´æÁË×Ö·û´®µÄ³¤¶È, ËùÒÔStrLenµÄÖµ¼´×Ö·û´®³¤¶È.
begin ......
ÔÚWIN32ÖеĴ®¿ÚͨѶ£¨Delphi£©
ÓÉÔÚWIN32²Ù×÷ϵͳÖнûÖ¹Ó¦ÓóÌÐòÏóDOSÖÐÄÇÑùÖ±½Ó·ÃÎʼÆËã»úÓ²¼þ£¬Òò´Ë£¬ÎÞ·¨ÏóÒÔǰÄÇÑù²ÉÓÃÖж϶Áд´®¿Ú¡£µ«ÊÇÔÚWIN32ÖÐÎÒÃǿɷ¢²ÉÓÃÁ½ÖÖ·½·¨·ÃÎÊ´®¿Ú£º1¡¢Ê¹ÓÃVBÖеÄMSCOMM´®¿Ú¿Ø¼þ£»2¡¢²ÉÓÃAPIº¯Êý£¬±¾ÎÄÖ÷Òª½éÉܲÉÓÃAPIº¯ÊýʵÏÖ´®¿ÚͨѶ¡£
ÓÉÓÚWM_COMMNOTIFYÏûÏ¢Òѱ»È¡Ïû£¬¹Ê±¾ÎÄ×Ô¶ ......
Ŀ¼
===============================================================================
¡Ñ RTTI ¼ò½é
¡Ñ Àà(class) ºÍ VMT µÄ¹ØÏµ
¡Ñ Àà(class)¡¢ÀàµÄÀà(class of class)¡¢Àà±äÁ¿(class variable) µÄ¹ØÏµ
¡Ñ TObject.ClassType ºÍ TObject.ClassInfo
¡Ñ is ºÍ as ÔËËã·ûµÄÔÀí
¡Ñ TTypeInfo – RTTI ÐÅÏ¢µÄ½ ......