Delphi µÄRTTI»úÖÆÇ³Ì½
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2420610
Ŀ¼
===============================================================================
¡Ñ
RTTI ¼ò½é
¡Ñ Àà(class) ºÍ VMT µÄ¹ØÏµ
¡Ñ Àà(class)¡¢ÀàµÄÀà(class of class)¡¢Àà±äÁ¿(class
variable) µÄ¹ØÏµ
¡Ñ TObject.ClassType ºÍ TObject.ClassInfo
¡Ñ is ºÍ as
ÔËËã·ûµÄÔÀí
¡Ñ TTypeInfo – RTTI ÐÅÏ¢µÄ½á¹¹
¡Ñ »ñÈ¡Àà(class)µÄÊôÐÔ(property)ÐÅÏ¢
¡Ñ
»ñÈ¡·½·¨(method)µÄÀàÐÍÐÅÏ¢
¡Ñ »ñÈ¡ÓÐÐòÀàÐÍ(ordinal)¡¢¼¯ºÏ(set)ÀàÐ굀 RTTI ÐÅÏ¢
¡Ñ »ñÈ¡ÆäËüÊý¾ÝÀàÐ굀 RTTI
ÐÅÏ¢
===============================================================================
±¾ÎÄÅŰæ¸ñʽΪ£º
ÕýÎÄÓÉ´°¿Ú×Ô¶¯»»ÐУ»ËùÓдúÂëÒÔ 80
×Ö·ûΪ±ß½ç£»ÖÐÓ¢ÎÄ×Ö·ûÒÔ¿Õ¸ñ·û·Ö¸ô¡£
(×÷Õß±£Áô¶Ô±¾ÎĵÄËùÓÐȨÀû£¬Î´¾×÷ÕßͬÒâÇëÎðÔÚÔÚÈκι«¹²Ã½Ìå×ªÔØ¡£)
ÕýÎÄ
===============================================================================
¡Ñ
RTTI
¼ò½é
===============================================================================
RTTI(Run-Time
Type Information) ·Òë¹ýÀ´µÄÃû³ÆÊÇ“ÔËÐÐÆÚÀàÐÍÐÅÏ¢”£¬Ò²¾ÍÊÇ˵¿ÉÒÔÔÚÔËÐÐÆÚ»ñµÃÊý¾ÝÀàÐÍ»òÀà(class)µÄÐÅÏ¢¡£Õâ¸ö RTTI
µ½µ×ÓÐʲôÓô¦£¬ÎÒÏÖÔÚҲ˵²»Çå³þ¡£ÎÒÊÇÔÚÔĶÁ Delphi ³ÖÐø»úÖÆµÄ´úÂëÖз¢ÏÖÁ˺ܶà RTTI µÄÔËÓã¬Ö»ºÃÏ顄 RTTI
ѧϰһ±é¡£ÏÂÃæÊÇÎÒµÄѧϰ±Ê¼Ç¡£Èç¹ûÄã·¢ÏÖÁË´íÎóÇë¸æËßÎÒ¡£Ð»Ð»£¡
Delphi µÄ RTTI Ö÷Òª·ÖΪÀà(class)µÄ RTTI ºÍÒ»°ãÊý¾ÝÀàÐ͵Ä
RTTI£¬ÏÂÃæ´ÓÀà(class)¿ªÊ¼¡£
===============================================================================
¡Ñ
Àà(class) ºÍ VMT
µÄ¹ØÏµ
===============================================================================
Ò»¸öÀà(class)£¬´Ó±àÒëÆ÷µÄ½Ç¶ÈÀ´¿´¾ÍÊÇÒ»¸öÖ¸Ïò
VMT µÄÖ¸Õë(ÔÚºóÎÄÓà VMTptr ±íʾ)¡£ÔÚÀàµÄ VMTptr µÄ¸ºµØÖ··½Ïò´æ´¢ÁËһЩÀàÐÅÏ¢µÄÖ¸Õ룬ÕâЩָÕëµÄÖµºÍÖ¸ÕëËùÖ¸µÄÄÚÈÝÔÚ±àÒëºó¾ÍÈ·¶¨ÁË¡£±ÈÈç
VMTptr - 44 µÄÄÚÈÝÊÇÖ¸ÏòÀàÃû³Æ(ClassName)µÄÖ¸Õë¡£²»¹ýÒ»°ã²»Ê¹ÓÃÊýÖµÀ´·ÃÎÊÕâЩÀàÐÅÏ¢£¬¶øÊÇͨ¹ý System.pas Öж¨ÒåµÄÒÔ vmt
¿ªÍ·µÄ³£Á¿£¬Èç vtmClassName¡¢vmtParent µÈÀ´·ÃÎÊ¡£
ÀàµÄ·½·¨ÓÐÁ½ÖÖ£º¶ÔÏó¼¶±ðµÄ·½·¨ºÍÀ༶±ðµÄ·½·¨¡£Á½ÕßµÄ Self
Ö¸ÕëÒâÒåÊDz»Í¬
Ïà¹ØÎĵµ£º
Ë˵DelphiûÓйþÏ££¿££DelphiÖУ¬TStringListºÍTHashedStringListµÄÐÔÄܶԱÈ
Ôø¾¿´µ½ºÜ¶àÈËÔÚÈÂÈÂDelphiûÓйþÏ£±í£¬ÕâЩÈ˵͝ÊÖÒâʶ¹ÃÇÒ²»ÂÛ£¬È´»¹ÓкܶàÈËÒÔ´ËÀ´Ö¤Ã÷Delphi±È±ðµÄÓïÑÔÀ¬»ø£¬ÊµÔÚÊÇ...
ºÃ£¬ÀÎɧ´òס£¬×ª½ÓÕýÌâ¡£
TStringListÊÇÎÒÃdz£ÓõÄ×Ö·û´®ÁбíÀàÐÍ£¬Ó÷¨¾Í²»ÔÚÕâÀï׸Êö£¬µ«ÊÇ£¬ÔÚÊý¾ÝÆäÏîÊýÔö ......
ʹÓÃDelphiµ÷ÓÃWebServices½Ó¿ÚµÄ¼òµ¥Ó¦ÓÃʵÀý
Delphi´Ó6.0¾Í¿ªÊ¼Ö§³ÖWeb ServicesµÄ¿ª·¢ºÍÓ¦ÓÃÁË£¬±¾ÎÄͨ¹ýʹÓÃDelphi 7.0µ÷ÓÃÐÂÀË·¢ËͶÌÐŵÄWeb Service½øÐжÌÐÅÓ¦ÓóÌÐò¿ª·¢ÕâһʵÀýÏêϸµÄ½éÉÜÔÚDelphiÖÐÈçºÎ¿ª·¢»ùÓÚWeb ServicesµÄÓ¦ÓÃϵͳ¡£
µÚÒ»²½£¬×¼±¸¹¤×÷£¬Á˽âÐÂÀ˶ÌÐÅWeb Service¡£ÐÂÀË·¢ËͶÌÐŵÄWeb Serviceµ ......
½ñÌìÔÚ´óÀí½£´¨×ö¼à¿ØÁªÍø¹¤³Ì£¬Óöµ½2̨DIYµÄPC-DVR£¬ÁªÍøºÜ²»Ë³Àû¡£»úÆ÷µÄÈí¼þÊǵÁ°æÆÆ½âµÄ£¬Ö»ÆÆ½âÁË·þÎñÆ÷¶Ë£¬¿Í»§¶ËÎ´ÆÆ½â£¬»¹ÓоÍÊǰ汾Ҳ²»¶Ô¡£×îºó·¢ÏÖÈí¼þÏÂÓÐÒ»ActiveX¿Ø¼þ¿ÉÒÔ×öÁªÍøÊ¹Óã¬ÓÚÊÇÏë°ÑÕâ¸öOCXÒýÈëÏîÄ¿Èí¼þ¹¤³Ì¡£ÔÚÒýÈëµÄʱºòdelphiÌáʾcoreide70.bpl±¨´í£¬´íÎó´úÂë:00000019 ......
Ctrl+PageUp ½«¹â±êÒÆÖÁ±¾ÆÁµÄµÚÒ»ÐУ¬ÆÁÄ»²»¹ö¶¯¡£
Ctrl+PageDown ½«¹â±êÒÆÖÁ±¾ÆÁµÄ×îºóÒ»ÐУ¬ÆÁÄ»²»¹ö¶¯¡£
Ctrl+↓ ÏòϹö¶¯ÆÁÄ»£¬¹â±ê¸úËæ¹ö¶¯²»³ö±¾ÆÁ¡£
Ctrl+↑ &nb ......
unit unitMain;
interface
uses
Registry, shlobj,
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TExtForm = class(TForm)
ledExtension: TLabeledEdit;
ledAssocApp: TLabeledEdit;
GetAssocApp: TButton;
AssocTh ......