| 2 Delphi
6 ÐÂÌØÐÔ
±¾ÕÂÖ÷Òª½²½â Delphi 6 µÄÐÂÔöÌØÐÔ£¬¼°ÆäÓëÒÔǰ°æ±¾µÄ±ä»¯¡£
2.1 IDE ÐÂÌØÐÔ
2.1.1 Object TreeView£¨¶ÔÏó¹ØÏµÊ÷£©
µÚÒ»´ÎÔËÐÐ Delphi 6£¬Äú¾Í»á·¢ÏÖÔÚ Delphi 6 Óë Delphi 5 ÓÐÁËÒ»¸ö×îÃ÷ÏԵı仯¡£ÔÚ IDE Öжà³öÁËÒ»¸ö"Object
TreeView"´°¿Ú£¬Õâ¸ö"Object TreeView"ÄúÔÚ Delphi 5 µÄÊý¾ÝÄ£¿é£¨Data
Module£©ÖпÉÄÜÒѾ¼ûµ½¹ý¡£ÏÖÔÚ£¬Delphi 6 µÄ"Object TreeView"ÒѾ¿ÉÒÔä¯ÀÀForm¡¢Data
Module ¼° Frame ÖÐËùÓÐ×é¼þ£¨°üÀ¨¿ÉÊÓ×é¼þºÍ²»¿ÉÊÓ×é¼þ£©µÄÁÐ±í¼°ÆäÂß¼¹ØÏµ£¨¼ûͼ2-1£©¡£
ͼ2-1
"Object TreeView"ÖеÄÄÚÈݽ«Óë"Object Inspector"ºÍ"´°ÌåÉè¼ÆÆ÷"ͬ²½£¬Èç¹ûÄúÔÚÕâÈý¸ö¹¤¾ßÖÐÈκÎÒ»¸ö¸Ä±äÁ˽¹µã¶ÔÏ󣬯äËüÁ½¸ö¹¤¾ßÒ²»áÓÐÏàÓ¦±ä»¯¡£
2.1.2 Object Inspector£¨¶ÔÏóÊôÐÔ±à¼Æ÷£©
ÔÚ Delphi6 µÄ Object Inspector ÖУ¬Äú¿ÉÒÔ·¢ÏÖ£¬ÓÐһЩÊôÐÔÏî±ä³ÉÁËÉîºìÉ«¡£Õâ±íʾ´ËÏîÊôÐÔµÄÀàÐÍÊÇÒ»¸ö×é¼þ£¬µ±ÕâÏîÊôÐÔ±»Á¬½Óµ½Ò»Ð©×é¼þÉÏʱ¡£ÕâÏîÊôÐÔ½«¿ÉÕ¹¿ª£¬³öÏÖÁ¬½Ó×é¼þµÄÊôÐÔ£¨¼ûͼ2-2£©¡£
ͼ2-2
ÁíÍ⣬ÔÚ Object Inspector ´°¿ÚµÄÓÒ¼ü²Ëµ¥ÖÐÔö¼ÓÁË Properties£¨ÊôÐÔ£©Ï¿ÉÒÔ¶Ô Object Inspector
½øÐÐÏÔʾѡÏîÉ趨¡£
2.1.3 ´úÂë±à¼Æ÷µÄ"ͼ½âÒ"£¨Diagram page£©£¨½öרҵ°æºÍÆóÒµ°æÓÐЧ£©
ÔÚ Delphi6 µÄ´úÂë±à¼Æ÷ÖгöÏÖÁË"ͼ½âÒ³"£¬Çë¿´´úÂë±à¼Æ÷Ï·½£¨¼ûͼ2-3£©¡£
ͼ2-3
µ¥»÷ Diagram£¬½øÈëͼ½âÒ³£¨¼ûͼ2-4£©¡£
ͼ2-4
ͼ½âÒ³ÓÉ Delphi 5 Êý¾ÝÄ£¿éÖеÄͼ½âÒ³ÑÝ»¯¶øÀ´¡£Í¼½âÒ³ÔÚ´úÂë±à¼Æ÷ÖгöÏÖ£¬Òâζ×ÅÄú¿ÉÒÔ¶Ôÿ¸öµ¥Ôª±à¼ºÍ±£´æÍ¼½âÐÅÏ¢£¬¶ø²»ÊÇÖ»ÄܸøÊý¾ÝÄ£¿é×öͼ½â¡£
Äú¿ÉÒÔ½«¶ÔÏóʵÀý´Ó"Object TreeView"ÖÐÖ±½ÓÍÐ×§ÖÁ"´úÂë±à¼Æ÷"µÄ"ͼ½âÒ³"ÖС£
2.1.4 Êý¾ÝÄ£¿é£¨Data module£©
Êý¾ÝÄ£¿éÉè¼Æ´°¿ÚÔÚ Delphi 6 ÖÐÓֻص½ÁË Delphi 4 ʱÑù×Ó£¬ÔÚ Delphi 5 ÖÐÔö¼Óµ"¶ÔÏó¹ØÏµÊ÷"ºÍ"ͼ½âÒ³"ÔÚ
Delphi 6 Öж¼ÒÑÑÝ»¯ÎªÍ¨ÓÃÄ£¿é£¬Ç°ÃæÒÑÓÐËù½éÉÜ¡£
2.1.5 ×é¼þ³Ø£¨Component Palette£©
×é¼þ³ØÖпɹ©Ñ¡ÔñµÄ×é¼þ½«¸ù¾Ýµ±Ç°Éè¼ÆµÄ´°ÌåÀàÐͶø±ä»¯£º
ÀýÈ磬ÔÚÉè¼Æ Form¡¢Data Module ºÍ CLXApplication µÄ Form ʱ×é¼þ³ØÖеÄÄÚÈÝÊDz»Í¬µÄ£ºÔÚÉè¼Æ
Data Module ʱ£¬×é¼þ³ØÖÐÖ»Áгö²»¿É¼û×é¼þ£»ÔÚÉè¼Æ CLXApplication µÄ Form ʱ£¬×é¼þ³ØÖÐÖ»Áгö CLX
×é¼þ£¨Óë VCL Ïà±È£¬CLX ÊÇ¿çÆ½Ì¨µÄ£¬¶ø VCL ÔòÖ»¿ÉÓÃÓÚ Windows ƽ̨£©¡£
2.2 ¿çƽ̨¿ª·¢£¨Cross-platform development£©£¨×¨Òµ°æ¡¢ÆóÒµ°æ£©
2.2.1 CLX
Delphi 6 ͨ¹ý¼¯³É¿çƽ̨×é¼þ¿â CLX£¨Borland Component Library for Cross-platform£©¼¼ÊõʵÏÖÁË¿çÆ½Ì¨¿ª·¢¡£CLX
ÓÉ VCL ÑÝ»¯¶øÀ´£¬Óë VCL ²»Í¬µÄÊÇ£¬VCL Ö»ÄÜÔÚ Windows ƽ̨ÏÂʹÓ㬶ø CLX ¿ÉÒÔʹÓÃÓÚ Windows
ºÍ Linux ƽ̨£¨ÔÚ Linux ƽ̨ÏÂÐèÒª Kylix ±àÒ룩¡£Î´À´£¬CLX ¼¼Êõ¿ÉÄÜ»áÔÚ¸ü¶àµÄϵͳƽ̨ÏÂÓ¦Óá£
ͼ2-5
CLX ×é¼þĿǰ°üÀ¨ BaseCLX¡¢VisualCLX¡¢DataCLX¡¢NetCLX
2.2.2 CLXApplication
ÏÖÔÚ£¬ÎÒÃÇ¿ÉÒÔ¿ª·¢Ò»Ì× CLX Ó¦ÓóÌÐò£¬È»ºó·Ö±ðÓÃDelphi 6ºÍKylix±àÒ룬¾Í¿ÉÒԵõ½Ó¦ÓóÌÐòÔÚ Windows ºÍ
Linux ÉÏÔËÐеÄÁ½¸ö°æ±¾¡£
Ñ¡Ôñ Delphi 6 ²Ëµ¥"File | New | CLXApplication"£¬Äú¿ÉÒÔ´´½¨Ò»¸ö CLXApplication¡£Õâʱ£¬ÔÚ×é¼þ³ØÖн«³öÏÖ
CLX ×é¼þ¹©Ñ¡Ôñ£¬Ó¦Óà CLX ×é¼þµÄ CLXApplication ½«¿ÉÒÔ²»×÷Ð޸ĵÄÔÚ Linux Ï嵀 Kylix ÖбàÒë¡£ÔÚ±àд
CLXApplication ³ÌÐòʱҪעÒ⣬²»ÒªÊ¹ÓÃÈκΠWindows רÓú¯Êý£¬ÕâЩº¯ÊýÔÚ Linux Öн«²»ÄÜʹÓá£
2.3 ÐÂÒ»´úÊý¾ÝÓ¦Óÿª·¢¿ò¼Ü
2.3.1 WebServices¡¢SOAP Ö§³Ö
Delphi 6 ÊÇĿǰΨһ֧³ÖËùÓÐÕýÔÚÁ÷ÐеĹ¤Òµ±ê×¼£ºXML¡¢SOAP¡¢WSDL ¼° XSL µÄ RAD »·¾³¡£Ò²¾ÍÊÇ˵£¬Delphi
6 Ö§³Ö»ùÓÚ¹©·½Æ½Ì¨£¨Vendor Platforms£©µÄ WebServices£¬Èç Microsoft.Net¡¢BizTalk¡¢Sun
One£¬Í¬Ê±ÌṩÆóÒµºÍ Web ¿ª·¢ÕßÐèÒªµÄÉìËõÐԺͿɿ¿ÐÔ¡£
Delphi 6 ͨ¹ýÒ»Ì×ȫеĿò¼Ü¶Ô WebServices ½øÐÐÁËÕûÌåʵÏÖ£¬½«°ïÖúÓû§´´½¨Ö§³Ö WebServices ¹æ·¶µÄ·þÎñÆ÷¶ËºÍ¿Í»§¶ËÓ¦ÓÃÈí¼þ¡£Õâ¸ö¿ò¼ÜÖаüÀ¨BizSnap¡¢DataSnap
ºÍ WebSnap¡£
Delphi 6 ʵÏÖ WebServices µÄÔÀíÏ൱ÓÚ Delphi 5 µÄ InternetExpress ¼ÓÉÏ¶Ô WSDL
±àÂë½âÂëµÄÖ§³Ö£¬²¢´¦Àí½Ó¿ÚµÄÓ³ÉäµÈ¡£
2.3.2 BizSnap£ºµç×ÓÉÌÎñ¿ª·¢Æ½Ì¨£¨ÆóÒµ°æ£©
BizSnap--ͨ¹ý±ã½ÝµÄ²Ù×÷£¬¿ÉÒÔÇáËɵĴ´½¨¼°Ê¹ÓûùÓÚ XML/SOAP µÄ WebServices£¬¼ò»¯ÁË B2B¡¢B2C
µÈµç×ÓÉÌÎñ¼¯³É¡£
2.3.3 WebSnap£ºWeb Ó¦Óÿª·¢Æ½Ì¨
WebSnap--»ùÓÚ×é¼þµÄÓ¦Óÿª·¢¿ò¼Ü£¬Ö§³ÖÖ÷Á÷µÄ Web Óû§·þÎñÆ÷£¬°üÀ¨ Apache¡¢Netscape¡¢IIS¡£
Delphi 6 ÖÐµÄ WebSnap ÓÉ Delphi 5 ÖÐµÄ WebBroker ÑÝ»¯¶øÀ´£¬¶¼ÊÇ ISAPI »ò CGI
Ö®ÀàµÄÓ¦Óá£WebSnap ÓÐÐí¶àÖ÷ÒªÌØµã£º
- еÄÏòµ¼·½Ê½
- ·þÎñÆ÷¶Ë½Å±¾ÒýÇæµÄÖ§³Ö£¨JavaScript¡¢VBScript£©
- Ð嵀 WebSnap Ó¦ÓÃ×é¼þ£¨ºÜ¶à£©
- Óë½çÃæÉè¼Æ¹¤¾ßÎÞ·êÁ¬½Ó£¨Dreamweaver¡¢Frontpage µÈ£©
2.3.3.1 WebSnap Ó¦ÓóÌÐòµÄ½á¹¹
WebSnap Ó¦ÓóÌÐò¿ÉÄÜÓÐËÄÀàÄ£¿é£ºTWebAppPageModule¡¢TWebAppDataModule¡¢TWebPageModule¡¢TWebDataModule¡£ÆäÖÐÆäÖÐ
TWebAppPageModule Óë TWebAppDataModule ÔÚÒ»¸öÓ¦ÓóÌÐòÖÐÖ»Äܰüº¬Ò»¸ö£¬ÊÇÔÚ WebSnap
Ó¦ÓóÌÐò´´½¨Ê±Éú³ÉµÄ£¬×öΪ WebSnap Ó¦ÓóÌÐòµÄÖ÷³ÌÐò£»TWebAppPageModule Óë TWebPageModule
ÓÃÓÚÉú³ÉÒ³ÃæÄÚÈÝ£»TWebAppDataModule¡¢TWebDataModule£¬ÊÇÓ¦ÓóÌÐò¹²ÏíʹÓõĹ¹¼þµÄÈÝÆ÷¡£
WebSnap Ó¦ÓóÌÐòͨ¹ý WebAppDataModule »ò WebAppPageModule »á¸ú¾ÝÇëÇóÐÅÏ¢£¬×Ô¶¯´ÓÓ¦ÓóÌÐòÖеÄ
WebPageModule ÖлñÈ¡Ò³ÃæÄÚÈÝ¡£ÆäÒ³ÃæÄÚÈÝÉú³É¹ý³ÌºÍÇëÇóÏìÓ¦¹ý³ÌÈçÏ£º
ͼ2-6
2.3.3.2 Web App Debugger
ÄúµÄ Web Ó¦ÓÿÉÄÜÒÔ ISAPI¡¢CGI¡¢WinCGI¡¢Apache Share Module ¸÷ÖÖÐÎʽ³öÏÖ¡£ÎªÁË·½±ãµÄµ÷ÊÔÄúµÄ
Web Ó¦Óã¬Delphi 6 ÌṩÁË WebAppDebugger ÐÍ·½Ê½£¬Äú¿ÉÒÔÔÚ´´½¨Ò»¸ö WebAppDebugger ÐÍÓ¦ÓóÌÐò£¬²¢ÎªÄúÒªµ÷ʽµÄÕâ¸öÓ¦ÓÃÆðÒ»¸ö
CoClass Ãû£¬È»ºó¼ÓÈëÒªÕýʽÔËÐеÄÓ¦ÓóÌÐòÖеÄËùÓе¥Ôª£¬±àÒëÖ´ÐС¡£¬ÕâʱÕâ¸öµ÷ÊÔ³ÌÐòÒѾע²áµ½Á˿ɵ÷Ê﵀ Web Ó¦ÓóÌÐòÁбíÖС£
Ñ¡Ôñ Delphi 6 ²Ëµ¥"Tools | Web App Debugger"½«´ò¿ª Web Ó¦ÓóÌÐòµ÷ÊÔÆ÷´°¿Ú£¬µ¥»÷
Default URL ºóÃæµÄÁ´½Ó¡£µ¯³öµÄÕâ¸öÒ³Ãæ¼´ÎªÄúµÄ¿ª·¢ÏµÍ³ÖÐËùÓеÄÒÑ×¢²áµÄ WebAppDebugger ÐÍ WebÓ¦ÓóÌÐò¡£Ñ¡ÔñÄú¸Õ¸Õ½¨ºÃ²¢Ö´ÐеÄ
WebAppDebugger ³ÌÐò CoClassÃû²¢µ¥»÷"Go"£¬¼´½øÈë³ÌÐòµÄÖ´ÐÐÖС£
2.3.4 DataSnap£ºÊý¾Ý·ÃÎÊ·þÎñÖмä¼þ
DataSnap--ÔÊÐí¿Í»§´´½¨¸ßÐÔÄܵġ¢¿ÉÒÔ½øÐÐ Web ·þÎñµÄÖмä¼þ£¬Õâ¸öÖмä¼þ¿ÉÒÔʹÈκοͻ§¶Ë»ò·þÎñÆ÷¶Ëͨ¹ý WebServices
ºÍ XML¡¢DCOM »ò CORBAµÈºÜÈÝÒ×µØÁ¬½Óµ½ÈκÎÖ÷Á÷Êý¾Ý¿â£¬Èç Oracle¡¢MS-SQL Server¡¢Informix¡¢IBM
DB2¡¢SyBase¡¢InterBase¡£
Delphi 6 µÄ DataSnap Óɾɰ汾 Delphi ÖÐµÄ Midas ÑÝ»¯¶øÀ´¡£
DataSnap µÄ¼Ü¹¹ÈçͼËùʾ£º
ͼ2-7
ʹÓà DataSnap ¿ÉÒÔʹ WebServices ʹÓÃÈκιØÏµÐÍÊý¾Ý¿â
ͼ2-8
2.4 VCL ÐÂÔöÄÚÈÝ
ÐÂÔö TLabeledEdit¡¢TValueListEditor¡¢TCombBoxEx¡¢TColorBox ×é¼þ¡£
ºÜ¶à¿ÉÊӿؼþ¼ÓÈëÁËһϵÁб߿ò·ç¸ñÊôÐÔ£ºBevelEdges¡¢BevelInner¡¢BevenOuter¡¢BevelKind¡¢BevelWidth¡£ÀýÈ磬±È½Ï³£ÓõÄ
TTreeView¡¢TListView¡£
CheckLst.pas
TCheckListBox£¬¼ÓÈë AutoComplete¡¢HeaderColor ¼° HeaderBackgroundColor
ÊôÐÔ¡£
Classes.pas
TList£¬¼ÓÈë Assign ·½·¨£¬²»½ö¿ÉÒÔ½øÐе¥´¿¸´ÖÆ£¬¶øÇÒ¿ÉÒÔ½øÐмòµ¥µÄ¼¯ºÏÔËËã¡£
TCollection£¬¼ÓÈë Added ºÍ Deleting Á½¸ö protected ·½·¨£¬ÓÃÓÚÀ©Õ¹´¦ÀíÕýÔÚÌí¼ÓºÍÕýÔÚɾ³ýµÄÏȱʡÇé¿öÏ£¬ÕâÁ½¸ö·½·¨¶¼Ã»Óб»ÊµÏÖ£¬Óû§ÐèÒªÔÚ×Ô¼ºµÄÅÉÉúÀàÖи²¸ÇÕâÁ½¸ö·½·¨¡£
TStringList£¬¼ÓÈë CaseSensitive ÊôÐÔ£¬Ê¹ÄúÔÚʹÓà TStringList ½øÐÐÖîÈçÅÅÐò¡¢±È½ÏµÈ²Ù×÷ʱ¿ÉÒÔÇø·Ö´óСд¡£
TDataModule£¬´Ó Forms.pas µ¥ÔªÒƵ½ÁËÕâÀ´Ó¶øÊ¹Æä²»ÔÙÒÀ¿¿¿ÉÊÓ×é¼þ£¬Ê¹Óû§¿ÉÒÔ±àдÌå»ý¸üСµÄûÓÐÓû§½çÃæµÄ·þÎñ³ÌÐò¡£
TThread£¬¼ÓÈë FatalException ÊôÐÔ£¬µ±Ï̺߳¯Êý·¢ÉúÒ쳣ʱ£¬Ó¦ÓóÌÐò»á×Ô¶¯ÖÕÖ¹Ïß³ÌÔËÐУ¬²¢°ÑÒì³£¶ÔÏóʵÀý¼Ç¼ÔÚ
FatalException ÖУ¬Óû§¿ÉÒÔÔÚÏß³ÌµÄ OnTerminate ʼþÖвⶨ²¢´¦ÀíÕâ¸öÒì³££¨FatalException
Ϊ¿Õ±íʾÕý³£½áÊø£©¡£
TStream£¬ÖØÔØ Seek º¯ÊýʹÆä¿ÉÒÔ°´ÕÕ Int64 Öµ¶¨Î»¡£
TInterfacedPersistent£¬ÎªÊµÏÖ½Ó¿ÚÖÐµÄ Persistent ¶ÔÏóµÄеĻùÀ࣬
ComCtrls.pas
TTreeView£¬¼ÓÈë CreateTreeNodes ·½·¨£»¼ÓÈë AddNode ·½·¨Ê¹Óû§¿ÉÒÔ¼ÓÈë×Ô¼º½¨Á¢µÄ½áµã£¬½áµã¿ÉÓÉ
TTreeNode µÄÅÉÉúÀཨÁ¢£»¼ÓÈëÁË OnAddition ʼþ£¬µ±Ìí¼Ó½áµãʱÏìÓ¦£»ÅÅÐò¹¦Äܱ»À©³äºÍ¼ò»¯£ºÄú¿ÉÒԵݹéÅÅÐò×ÓÊ÷»ò˳ÐòÅÅÐò¶¥¼¶½áµã£¬TCustomTreeView
ºÍ TTreeNode£»¼ÓÈë¹ØÓÚ MultiSelect µÄËĸöÊôÐԺͰ˸ö·½·¨¡£
TListView£¬¼ÓÈë CreateListItems º¯Êý¡£
TStatusBar£¬¼´Ê¹µ± StatusBar ²»Ö±½ÓÒÔ´°ÌåΪ¸¸¶ÔÏóʱ SizeGrip Ò²»á³öÏÖ£¨SizeGrip£º´øÓÐ״̬À¸µÄ¿É±ä´óСµÄ
Windows ´°¿ÚÓÒϽÇÍùÍù»á³öÏÖµÄÈý½ÇÐ±ÎÆÍ¼°¸¡££©£¬Ö»ÒªÕâ¸öStatusBar µÄÓÒϽÇÓë´°ÌåµÄÓÒϽDz¢ÔÚÒ»Æð¼´¿É¡£
TDateTimePicker£¬¼ÓÈë Format ÊôÐÔ£¬¿ÉÒÔÓùý±ê×¼µÄÈÕÆÚ/ʱ¼ä¸ñʽ´®¿ØÖÆÈÕÆÚ/ʱ¼äÖµµÄÏÔʾ¹æÔò¡£
THeaderControl£¬¼ÓÈëһЩ֧³ÖÀ¸Ä¿ÍÏ×§µÄÊôÐÔºÍʼþ£»¼ÓÈëÁË HotTrack ÊôÐÔ¡£
TToolBar£¬¼ÓÈëÁË Menu ÊôÐÔ£¬¿ÉÒÔÓà Menu ÖеÄÏîÀ´Ìî³ä¹¤¾ßÀ¸¡£
Contnrs.pas
TObjectList¡¢TComponentList¡¢TClassList£¬¼ÓÈë Last ºÍ First ·½·¨¡£
TStack¡¢TQueue¡¢TObjectStack¡¢TObjectQueue£¬Push·½·¨±äΪÁËÒ»¸öÓзµ»ØÖµµÄ·½·¨£¬µ± Push
Ò»¸öÖ¸Õëºó£¬½«ÔÙ°ÑÕâ¸öÖ¸Õë·µ»Ø£¬¿ÉÒÔÈÏΪÊÇ Push ºóÔÙ½øÐÐ Peek ²Ù×÷¡£ÕâÔÚÐèÒªÔÚ Push ²Ù×÷ʱ´´½¨¶ÔÏóÊ®·ÖÓÐÓã¬È磺
myobj := aObjectStack.Push( TMyObject.Create );
¼ÓÈëÁË TBucketList Óë TObjectBucketList£¬¼òµ¥µÄ¹þÏ£±íÀà¡£
Controls.pas
TDragObjectEx¡¢TDragControlObjectEx Óë TDragDockObjectEx£¬ÕâÈý¸öеÄÍÏ×§¶ÔÏñÒÔ×Ô¶¯×ÔÓɵÄÔÚÍÏ×§²Ù×÷¡£
TControl£¬¼ÓÈë ClientToParent Óë ParentToClient Á½¸öз½·¨£¬¿ÉÒÔʹÄúÔÚ¸¸¶ÔÏóºÍ×Ó¶ÔÏó¼äÓ³ÉäÏñËØÎ»Öá£ËüÃǵÄʹÓ÷½·¨½üËÆÓÚ
ClientToScreen Óë ScreenToClient¡£
TWinControl£¬ÖØÔØ PaintTo ·½·¨£¬Óà Canvas ´úÌæÁË HDC¡£
TModalResult ´Ó Forms.pas µ¥ÔªÒÆÖÁ´Ë¡£ÁíÍ⣬»¹ÔöÁËÏÂÃæÕâЩº¯Êý£º
function IsPositiveResult(const AModalResult: TModalResult): Boolean;
function IsNegativeResult(const AModalResult: TModalResult): Boolean;
function IsAbortResult(const AModalResult: TModalResult): Boolean;
function IsAnAllResult(const AModalResult: TModalResult): Boolean;
function StripAllFromResult(const AModalResult: TModalResult): TModalResult;
DBCtrls.pas
TDBLookupListBox Óë TDBLookupComboBox£¬¼ÓÈë NullValueKey ÊôÐÔ£¬Ê¹Óû§¿ÉÒÔ¸³Óè¿ÕÖµ£¨NULL£©¡£
TDBComboBox ¼ÓÈë AutoComplete ºÍ AutoDropDown ÊôÐÔ¡£
TDBListBox ¼ÓÈë AutoComplete ÊôÐÔ¡£
Dialogs.pas
TOpenDialog£¬¼ÓÈë OptionsEx ÊôÐÔ¡£
ExtCtrls.pas
TImage£¬¼ÓÈë Proportional ÊôÐÔ£¬¿ÉÒÔ°´³¤¿í³É¹Ì¶¨±ÈÀýµÄËõ·ÅͼÏñ¡£
Forms.pas
TApplication£¨Óë TApplicationEvents£©£¬¼ÓÈë OnSettingChange ʼþ£¬Ê¹Äú¿ÉÒÔÏìӦϵͳÉèÖõĸı䡣
TForm£¬¼ÓÈë¶Ô·Ö²ã´°¿Ú£¨Layered form£©Ö§³ÖµÄËĸöÊôÐÔ£ºAlphaBlend¡¢AlphaBlendValue¡¢TransparentColor
¼° TransparentColorValue£¬¿ÉÒÔÇáËÉʵÏÖ´°¿ÚµÄ°ë͸Ã÷ºÍ¾Ö²¿Í¸Ã÷¡£
TScreen£¬¼ÓÈë¹ØÓÚ×ÀÃæ¹¤×÷ÇøµÄÊôÐÔ¼¯£ºWorkAreaRect¡¢WorkAreaTop¡¢WorkAreaLeft¡¢WorkAreaHeight
¼° WorkAreaWidth£»¼ÓÈëͨ¹ýµã¡¢¾ØÐÍ¿ò¡¢´°¿ÚÀ´È·¶¨ Monitor µÄһϵÁз½·¨¡£
TMonitor£¬Îª¶àÏÔʾÆ÷±à³ÌÀ©Õ¹ Primary ÊôÐÔ£¬ÅжÏÊÇ·ñΪÖ÷ÏÔʾÆ÷£»¼ÓÈë WorkareaRect ºÍ BoundRect
ÊôÐÔ¡£
TModalResult ÒÆµ½ÁË Controls.pas ÖС£
Graphics.pas
¼ÓÈëÓÃÓÚ¿ìËÙ´æÈ¡ Font¡¢Pen¡¢Brush µÄ TFontRecall¡¢TPenRecall¡¢TBrushRecall¡£ËüÃǶ¼ÅÉÉúÓÚ
TRecall£¬¶ø TRecall ÓÖÓÉ TPersistent ÅÉÉú¡£
ϵͳÑÕÉ«¸Ä±äÁËÅÅÁÐ˳Ðò£¬Ê¹Óû§¿ÉÒÔ¸ü·½±ãµÄÕÒµ½¡£
ÔÚ±ê×¼µÄÊ®ÁùÉ«ÒÔÍâ¼ÓÈëÏÂÃæËĸö£ºclMoneyGreen¡¢clSkyBlue¡¢clCream¡¢clMedGray¡£
ImgList.pas
ÖØÔØÒÑÔö¼ÓµÄ Draw¡¢DrawOverlay Óë GetIcon ·½·¨£¬ÒÔ¸²¸Ç ImageList µÄÊôÐÔÉèÖá£
IniFiles.pas
TIniFile£¬Ö§³Ö¶Áд¶þ½øÖÆÊý¾ÝÁ÷¡£
TMemIniFile£¬¿ÉÒÔÇø·Ö´óСд¡£
THashedStringList£¬Ò»¸öÐ嵀 TStrings ×ÓËïÀ࣬ËüʹÓÃÄÚ²¿µÄ¹þÏ£±í¹ÜÀí×Ö·û´®Áбí¸ÄÉÆÁË TStringList
µÄÐÔÄÜ¡£
Masks.pas
EditMask ºÍ Text ʹÓÃ×Ô¶¨ÒåÀàÐÍ£¬ËüÃǵÄÊôÐÔ±àÒëÆ÷¸üÓÐÓô¦¡£
Menus.pas
TMenuItem£¬¼ÓÈëÁË AutoCheck ÊôÐÔ£¬µ±Óû§Ñ¡ÔñËüÃÇʱ£¬ËüÃǽ«×Ô¶¯Çл»ÆäÑ¡ÖÐ״̬¡£
Registry.pas
TRegistry£¬Ö§³Ö¶Áд¶þ½øÖÆÊý¾ÝÁ÷¡£
StdCtrls.pas
TCustomComboBox£¬¼ÓÈëÁË OnCloseUp Óë OnSelect ʼþ£ºOnCloseUp ʼþÔÚ ComboBox
µÄÏÂÀÁÐ±í¹Ø±ÕʱÏìÓ¦£¨Óë OnDropDown Ïà·´µÄ¶¯×÷£©£»OnSelect ʼþÔڸıä ComboBox ÏÂÀÁбíµÄÑ¡ÏîʱÏìÓ¦¡£
TListBox ÐÂÔöÖ§³ÖÁ½¸öÑùʽ£ºlbVirtual Óë lbVirtualOwnerdraw£¬ÕâЩÑùʽÓÃÓÚ²»´æÖüÁбíÄÚÈݵÄÐéÄâÁбí¿ò£¬Äú¿ÉÒÔ×ÔÐÐÖ¸¶¨
Count ÊôÐÔÀ´Ö¸¶¨ËüµÄÁбíÏî¸öÊý²¢Í¨¹ýÐÂÔöµÄ OnData¡¢OnDataFind¡¢OnDataObject ʼþ¸øÆäÌṩÁбíÏîÄÚÈÝ¡£
2.5 RTL ÐÂÔöÄÚÈÝ
Variants.pas
ÓÃÓÚ¶Ô±äÌåÀàÐÍ´¦ÀíµÄе¥Ôª£¬Õâ¸öµ¥ÔªµÄÐí¶à´úÂëÀ´Ô´ÓÚÒÔǰµÄ system µ¥Ôª¡£Òò´Ë£¬´Ó Delphi 6 ÒÔºó£¬Èç¹ûÄúµÄ´úÂëÖÐÓõ½Á˱äÌåÀàÐÍ£¬Äú±ØÐëÔÚÄúµÄÒýÓÃÁбíÖмÓÈë
Variants¡£
ΪÁËÖ§³Ö¿çƽ̨¿ª·¢£¬Variants µ¥ÔªÖв»ÔÙÖ±½Óµ÷Óà Windows API£¬È¡¶ø´úÖ®µÄÊÇÁíÒ»¸öе¥Ôª VarUtils.pas£¬Õâ¸öµ¥Ôª×¨ÓÃÓÚΪ
Variants.pas ½â¾öÓëÆ½Ì¨Î޹صķ½°¸¡£
ConvUtils.pas
¶ÈÁ¿ºâת»»º¯Êý¼¯
StdConvs.pas
Ó¦Óà ConvUtils.pas£¬²¢ÉèÖÃÈô¸ÉÖÖ¶ÈÁ¿ºâµ¥Î»¡£
DateUtils.pas
ÈÕÆÚÓëʱ¼ä´¦Àíº¯Êý¼¯¡£
StrUtils.pas
×Ö·û´®´¦Àíº¯Êý¼¯¡£
FMTBCD.pas
BCD Âë´¦Àíº¯Êý¼¯¡£
Math.pas
¼ÓÈëÁËÐí¶à³£Á¿ÉùÃ÷Ó뺯Êý£¬²¢¸ø extended ÐͲÎÊý¼ÓÒÔ const ÒýÓÃÒԼӿ캯ÊýµÄ´¦ÀíËÙ¶È¡£
System.pas
System µ¥Ôª¼ÓÈëÁËÐí¶àеÄÀý³Ì£¬Ö÷ÒªÓÃÓÚÖ§³Ö¿çƽ̨¿ª·¢ºÍÔÚ²»Í¬×Ö·û±àÂëϵͳ¼äת»»¡£Àý³ÌÖÐÓÃÓÚÖ§³Ö±äÌåÀàÐ͵IJ¿·ÖÒÆµ½ÁË Variants
µ¥ÔªÖС£
¼ÓÈëÁË IInterface ×öΪ Object Pascal ½Ó¿ÚµÄ»ùÀ࣬¶øÒÔǰµÄ COM ½Ó¿Ú»ùÀà IUnknown ÔòÖ»ÊÇ
IInterface µÄÒ»¸öÅÉÉú½Ó¿Ú¡£
SysUtils.pas
SysUtils µ¥ÔªÏÖÔÚÈ«ÃæÖ§³Ö¿çƽ̨£¬Ò»Ð©¹ýÈ¥ÐèÒªµ÷Óà Windows API ʵÏֵķþÎñ£¬ÏÖÔÚÈ«²¿¸ÄÓÉ SysUtils
ÄÚ²¿Àý³ÌʵÏÖ¡£
2.6 Êý¾Ý¿âÐÂÌØÐÔ£¨×¨Òµ°æ¡¢ÆóÒµ°æ£©
2.6.1 dbExpress£º¸ßÐÔÄÜÊý¾Ý¿â·ÃÎÊ×é¼þ
ÔÚ Delphi 4 ÒÔǰ£¬Delphi ÄÚ²¿Ö§³ÖµÄÊý¾Ý¿â·ÃÎÊ;¾¶Ö»ÓÐ BDE¡£
ÔÚ Delphi 5 ÖУ¬¼ÓÈëÁË¶Ô ADO µÄÖ§³Ö£¬ÓëÊý¾Ý¿â¹ØÁªµÄ¿ÉÊÓ×é¼þ Data Controls ³ÉΪͨÓÃ×é¼þ²¢Öð½¥Óë BDE
·ÖÀë¡£¼ÓÈëÁËÒÔ Express ·½Ê½¶Ô Interbase Êý¾Ý¿âµÄÁ¬½ÓÓë·ÃÎʽӿڡ£
ÔÚ Delphi 6 ÖУ¬Êý¾Ý¿â·ÃÎʽӿڽøÒ»²½ÑÝ»¯³ÉΪ dbExpress¡£dbExpress Ö±½ÓʹÓÃÊý¾Ý¿â³§ÉÌÇý¶¯³ÌÐò£¬Ê¹Êý¾Ý´¦ÀíËÙ¶ÈÐÔÄÜ´ó·ùÌá¸ß¡£
ͼ2-9
2.6.2 Êý¾Ý¼¯£¨DataSet£©Ö§³ÖµÄÐÂ×Ö¶ÎÀàÐÍ
TFMTBCDField£¬Ëü±íʾһ¸öÕæÕýµÄ BCD Âë×ֶΡ£ÔÚÖ§³Ö TFMTBCDField µÄͬʱ£¬È«¾Öº¯Êý CurrToBCD
ºÍ BCDToCurr ´Ó db µ¥ÔªÒÆÖÁ FMTBCD µ¥ÔªÖС£
TSQLTimeStampField£¬ÓÃÓÚ¶Ô dbExpress Çý¶¯ÖÐÈÕÆÚ/ʱ¼ä±í´ïʽµÄÖ§³Ö¡£
2.7 ±àÒëÆ÷ÐÂÌØÐÔ
2.7.1 ±äÌåÀàÐÍ£¨Variants£©
ÔÚ Delphi 6 ÖУ¬ËùÓÐÓë±äÌåÀàÐÍÓйصÄÉùÃ÷´ÓϵͳÄÚ¶¨µ¥Ôª£¨System£©ÒƵ½ÁËеĵ¥Ôª Variants ÖУ¨ËäÈ»Èç´Ë£¬µ«ÄúÈԾɿÉÒÔÔÚ²»°üº¬
Variants µ¥ÔªµÄÇé¿öÏÂʹÓñäÌåÀàÐÍ£©¡£
´Ó Delphi 6 ¿ªÊ¼£¬±äÌåÀàÐÍÖ§³Ö Int64£¬¿ÉÒÔ×Ô¶¨ÒåÖ§³Ö±äÌåµÄÊý¾ÝÀàÐÍ¡£
2.7.2 ö¾ÙÀàÐÍ£¨Enumerated£©
ÔÚ Delphi 6 ÖУ¬Ã¶¾ÙÀàÐÍ¿ÉÒÔÖ¸¶¨Ò»¸öÌØ¶¨µÄÖµ¡£
ÀýÈç:
type
TInfo = (iZero, iOne, iTwo, iFour = 4);
2.7.3 Consts µ¥ÔªµÄ±ä»¯
ÔÚ Delphi6 ÖУ¬´«Í³µÄ Consts µ¥Ôª±»·ÖΪ Consts ºÍ RTLConsts Á½¸ö¡£
2.7.4 ±àÒëÆ÷Ö¸ÁCompiler Directive£©
2.7.4.1 ±àÒëÆ½Ì¨Ô¤¶¨ÒåÖµ
Èç¹ûÄúÏ£ÍûÄúµÄ´úÂë½öÔÚ Windows ƽ̨ϱàÒ룬Äã¿ÉÒÔʹÓà MSWINDOWS ¼ì²â Windows ƽ̨¡£ÀýÈç:
{$IFDEF MSWINDOWS}
// ±àÐ´ÃæÏò Windows ƽ̨´úÂ룬ÔÚ Linux ƽ̨Ͻ«²»»á±»±àÒë
{$ENDIF}
2.7.4.2 $IF Ô¤±àÒëÖ¸Áî
Delphi 6 µÄ $IF Ô¤±àÒëÖ¸ÁîÒý½øÁËÌõ¼þµÄÐÂÌØÐÔ£¬¾ÙÒ»¸öÀý×Ó£º
{$DEFINE CLX}
const
LibVersion = 2.1;
{$IF Defined(CLX) and (LibVersion > 2.0) }
// Õâ¶Î´úÂë±»±àÒë
{$ELSE}
// Õâ¶Î´úÂë²»±»±àÒë
{$IFEND}
{$IF Defined(WIN32) and (SomeConst > 12.0) }
//...
{$ENDIF}
ÔÚ Pascal µÄ const ¶ÎÖж¨ÒåµÄ³£Á¿±êʶ·û¿ÉÒÔÔÚ $IF Ö¸ÁîÖнøÐÐÌõ¼þÅжϣ¬¾É°æ±¾ Delphi ÖеÄÔ¤±àÒë·ÖÖ§Ö¸Áî
{$IFDEF}£¬¿ÉÒÔÔÚ $IF ÖÐʹÓà Define() Ô¤±àÒ뺯Êý´úÌæ£¬Pascal ³£Á¿±êʶ·û¿ÉÒÔÓà Declared Ô¤±àÒ뺯ÊýÅжÏÊÇ·ñÒѱ»¶¨Òå¡£
ÀýÈ磺
{$IF Defined(WIN32) and Declared(MyConst)}
//...
{$ENDIF}
2.7.4.3 $ALIGN Ô¤±àÒëÖ¸Áî
Delphi 6 µÄ $ALIGN ÓÐÁËеÄÑ¡Ï{$A1}¡¢{$A2}¡¢{$A4}¡¢{$A8}¡£
ÓÃÓÚÉ趨±àÒëÆ÷±àÒë´úÂëʱµÄ¶ÔÆë×Ö½ÚÊý¡£
2.7.4.4 PE ±êʶ
Microsoft µÄÿ¸ö .exe Îļþ¶¼ÓÐÒ»¸ö PE (portable executable) ÎļþÍ·£¬Microsoft
µÄ²Ù×÷ϵͳͨ¹ý PE ÎļþÍ·Öеıê־λÀ´ÅжÏÒ»¸öÓ¦ÓóÌÐòÓëϵͳµÄ¼æÈÝÐÔ¡£µÄϵͳ·þÎñ¼æÈÝÐÔ»òÇëÇóÒ»¸ö¸ß¼¶ÏµÍ³·þÎñ¡£Delphi 6
±àÒëÆ÷Ö§³ÖÁ½¸öеÄÔ¤±àÒëÖ¸Áî¿ÉÒÔ×ÔÐÐÉ趨 PE ÎļþÍ·±êÖ¾À´Ðµ÷×îÐ嵀 NT ϵͳ£º
{$SetPEFlags <ÕûÐͱí´ïʽ>}
{$SetPEOptFlags <ÕûÐͱí´ïʽ>}
ÕâЩԤ±àÒë·ûÓÃÓڸ߼¶¿ª·¢Õߣ¬ÐèÒª²Î¿¼ PE£¨Portable Executable£©Îļþͷ˵Ã÷¡£
2.7.5 ǶÈëʽ»ã±àÓïÑÔ£¨built-in assembler£©
Delphi 6 ÒýÈëÁËÒ»Ì×ȫеÄǶÈëʽ»ã±àÓïÑÔ£º
еıêʶ·û VMTOFFSET ºÍ DMTINDEX¡£
еĴ¦ÀíÆ÷ÌØÐÔÖ§³Ö£ºMMX£»SIMD£»Enhanced MM£»Pentium Pro¡¢Pentium III ¼° Pentium
4 CPU µÄIntel SSE£»AMD K7 CPU µÄ AMD Enhanced 3D¡£
Ö§³Ö DQ£¨Define Quadword£©Î±²Ù×÷·ûÓÃÓÚËÄ×Ö½Ú×Ö³¤¶¨Ò壨ÒÔÍùÖ»ÓÐ DB Óë DW£©¡£
2.7.6 Linux Îı¾ÎļþÀàÐÍ
ΪÁ˸üºÃ¶Ô¿çƽ̨µÄÖ§³Ö£¬±àÒëÆ÷¿ÉÒÔ´¦Àí Linux µÄÎı¾Îļþ¡£ÕâÖÖÎı¾ÎļþÿһÐеÄĩβ½öÓÐÒ»¸ö"»»Ðзû<ASCII
10>"×öΪ½áÊø·û£¨Windows ´«Í³µÄÎı¾ÎļþµÄÐнáÊø·ûÊÇ"»Ø³µ·û<ASCII 13>"+"»»Ðзû<ASCII
10>"£©
2.7.7 ÖØÔØ£¨Overload£©
ÓÉ Delphi ±àÒëÆ÷´¦ÀíµÄ£¬ÒÀÕÕº¯Êý²ÎÊýÁбí¾ö¶¨Ê¹ÓÃÄÄÒ»¸ö overload ÖØÔØº¯ÊýµÄ±àÒë¼¼ÊõÔÚ Delphi 6 ÖÐÓèÒÔ¸üС£Delphi
6 ±àÒëÆ÷¿ÉÒÔÔÚ¶à¸ö overload ÖØÔØµÄº¯ÊýÖÐÇø·ÖÔÚ²ÎÊýÁбíµÄͬһ¸öλÖÃµÄ AnsiString Óë PChar£¬WideString
Óë WideChar ¡£±äÌåÀàÐÍÏÖÔÚÒ²¿ÉÒÔÓÃÓÚÖØÔØº¯Êý¡£
ÔÚµ÷ÓÃÖØÔØº¯Êýʱ£¬nil ½«±»ÈÏΪÊÇ interface ÐͲÎÊýµÄÓÐЧֵ¡£
2.8 ÆäËüÐÂÔöÄÚÈÝ
2.8.1 Indy Internet ×é¼þ¿â£¨×¨Òµ°æ¡¢ÆóÒµ°æ£©
ÖøÃûµÄ Indy Internet ×é¼þ°üÄÚǶÓÚ Delphi 6 ÖУ¬Æä±¾È¡´úÁË FastNet µÄ×÷Óã¬ËäÈ» Delphi
6 ÖÐÈԾɱ£Áô FastNet£¬µ« Indy µÄÔ´´úÂ뿪·ÅʹÄú¿ÉÒÔ¸ü¼ÓÁ˽â Winsock ºÍ Delphi ÍøÂç±à³Ì»ù´¡¡£
2.8.2 °ïÖúϵͳÀ©Õ¹ÐÔ
Delphi 6 ÖУ¬Äú¿ÉÒÔ½«Ó¦ÓóÌÐò·¢Ë͸ø±ê×¼°ïÖúÔĶÁÆ÷£¨Èç Windows Help Viewer£©µÄ°ïÖúÇëÇ󽨻ñ¶ø×ª·¢¸ø×Ô¼º±àдµÄ°ïÖúÓ¦ÓóÌÐò¡£ÐµÄÌØÐÔ°üÀ¨£º
ÔÚÐ嵀 HelpIntfs.pas µ¥ÔªÖУ¬ÉùÃ÷ÁËÈô¸ÉÓÃÓÚÓ¦ÓóÌÐòÓë°ïÖúÔĶÁÆ÷Ö®¼äͨѶµÄ½Ó¿Ú£¬°üÀ¨£ºIExtendedViewer¡¢ISpecialHelpWinViewer¡¢IHelpManager¡¢IHelpSystem¡¢IhelpSelector
¼° ICustomHelpViewer¡£
VCL ÌṩʵÏÖÁËÒ»¸ö ICustomHelpViewer ½Ó¿Ú£¬ÓÃÓÚÓë WinHelp ½»»»ÐÅÏ¢¡£
2.8.3 ·Ö·¢·½Ê½
Delphi 6 ÏòÓû§Ìṩ»ùÓÚ Windows Installer (MSI) ¼¼ÊõµÄ InstallShield Express
3.0 ×÷Ϊ·Ö·¢¹¤¾ß¡£
2.9 Éý¼¶ Delphi 5 µÄ×é¼þ¿âµ½ Delphi 6
ÓÉÓÚ Delphi 6 ½ÏÒÔÃæ°æ±¾µÄ Delphi ¸Ä¶¯±È½Ï´ó£¬ËùÒÔʹ×é¼þ¿âµÄÉý¼¶»á±È½Ï·³Ëö¡£ÏÂÃæÁоÙһЩÉý¼¶¹ý³ÌÖеÄÒªµã£¬Ï£Íû¿ÉÒÔΪÄú¸øÄú×Ô¼ºÊÕ¼¯µÄ×é¼þ¿âÉý¼¶Ê±Ö¸µãÃÔ½ò¡£
´ò¿ª¾É°æ±¾µÄ .dpk Îļþ£¬Delphi 6 »á¾Ñ¯Îʺó×Ô¶¯½« .dpk ת»¯ÎªÐµĸñʽ£¬ÆäÖÐÒª½«¾É°æÖÐ requires ÖеÄ
vcl50¡¢vcldb50¡¢vclx50 µÈµÈ¸ÄΪ vcl¡¢vcldb¡¢vclx µÈ¡£Èç¹ûÄúÔÚ×é¼þ¿âÖÐÓõ½ÁË DesignEditors
µ¥ÔªÄúÐèÒªÔÚ requires ÁбíÖмÓÈë DesignIDE¡£
¾É°æÖÐµÄ DesignIntf ÔÚ Delphi 6 ÖзָôΪ DesignIntf¡¢DesignEditors¡¢DesignEditors£»¾É°æÖÐδ¹«¿ªµÄ
DsgnWnds µÈµ¥ÔªÔÚ Delphi 6 ÖÐÒ²±»¹«¿ª£¬¸ÄÃûΪ DesignWindows µÈ¡£
TDesignWindow ÖеÄһЩ³ÉÔ±º¯ÊýµÄ±ä»¯£º
procedure FormClosed( Form: TCustomForm ); override;
// ¸ÄΪ
procedure DesignerClosed(const Designer: IDesigner; AGoingDormant:
Boolean); override;
procedure FormModified; override;
// ¸ÄΪ
procedure ItemsModified(const Designer: IDesigner); override;
procedure EditAction(Action: TEditAction); override;
// ¸ÄΪ
function EditAction(Action: TEditAction): Boolean; override;
procedure ComponentDeleted(Component: IPersistent); override;
// ¸ÄΪ
procedure ItemDeleted(const ADesigner: IDesigner; Item: TPersistent);
override;
procedure ComponentInserted(Component: IPersistent); override;
// ¸ÄΪ
procedure ItemInserted(const ADesigner: IDesigner; Item: TPersistent);
DesignWindow.Form ÊôÐÔÈ¡Ïû£¬¼ÓÈëÁË DesignWindow.Designer ÊôÐÔ£¬¿ÉÒÔÓà DesignWindow.Designer.Root
´úÌæ DesignWindow.Form¡£
IFormDesigner ¸ÄΪ IDesigner¡£
TDesignerSelectList ¸ÄΪ IDesignerSelections£¬¿ÉÒÔͨ¹ý CreateSelectionList
½¨Á¢¡£
TIModuleNotifier.ComponentRenamed µÄÉùÃ÷¸Ä±ä£º
procedure ComponentRenamed(ComponentHandle: Pointer; const OldName,
NewName: string);
// ¸ÄΪ
procedure ComponentRenamed(const AComponent: TComponent; const OldName,
NewName: string);
TDefaultEditor.EditProperty µÄÉùÃ÷¸Ä±ä£º
procedure EditProperty(PropertyEditor: TPropertyEditor; var Continue,
FreeEditor: Boolean);
// ¸ÄΪ
procedure EditProperty(const Prop: IProperty; var Continue: Boolean);
TCustomForm ÖÐµÄ Designer ÊôÐÔµÄÀàÐÍÓÉ IDesigner ¸ÄΪ IDesignerHook£¬¿ÉÒÔÓÉ TCustomForm.Designer.Query(
IDesigner, MyOldDesigner ); µÄ·½·¨µÃµ½ÒÔǰµÄ IDesigner ÀàÐÍ¡£
|