·¢ÐÅÈË: freely (www.BeatIt.cc), ÐÅÇø: BorlandDev
±ê  Ìâ: [SoftEng]Delphi¿ª·¢Õß´úÂë±ê×¼Îĵµ(תÔØ)
·¢ÐÅÕ¾: ¹þ¹¤´ó×϶¡Ïã (2001Äê08ÔÂ11ÈÕ09:57:01 ÐÇÆÚÁù), Õ¾ÄÚÐżþ

¡¾ ÒÔÏÂÎÄ×ÖתÔØ×Ô Programming ÌÖÂÛÇø ¡¿
¡¾ Ô­ÎÄÓÉ xxxxx Ëù·¢±í ¡¿

ÕâƪÎÄÕÂÎÒÊǽÓ×ÅÎÒʦ¸¸·­ÒëµÄ£¬ÎÒ¹À¼ÆËû·­Òë¹ýÁË£¬µ«ÊÇÎÒûÓÐÍêÕû¸åËùÒÔ¾Í
½Ó×ÅÀ´µÄ¡£ºóÀ´¿´µ½ºÃÏóÓÐÈËÒ²·­Òë²¢·¢±íÁË¡£ËùÒÔ£¬ÎҾͰÑÎÒʦ¸¸¸úÎÒ·­ÒëµÄ²¿·Ö
£¨½Ú£©Ìù³öÀ´°É¡£
                  Delphi 4 ¿ª·¢Õß´úÂë±ê×¼ÎĵµÖ¸ÄÏ
             ×÷Õß:XavierPacheco and Steve Teixeira 1998
                  ·­Òë:ÁõÑó£¨WhiteCrow£© 1999/9/3-
                       ÕÅÃû¾Ù2000/12/5
Ð÷ÂÛ
ÕâƪÎĵµÊÇΪÁËʹÓÃDelphiÏñÔÚ¡¶Delphi 4 Developer's Guide¡·ÖÐÄÇÑù¿ª·¢µÄ´úÂë±ê

×¼¡£Ò»°ãÀ´Ëµ£¬±¾ÎÄÊÇBorland¹ú¼Ê¹«Ë¾¼¸ºõûÓÐÀýÍâµØ¾­³£Ê¹ÓõÄδ³ÉÎĵĸñʽ»¯±ê×¼

¡£´òËãÔÚ¡¶Delphi 4 Developer's Guide¡·Öаüº¬¸ÃÎĵµÒÔÏòһЩ¿ª·¢×éÖ¯ÔÚ±àÂë½×¶Î

¿ÉÒÔÖ´ÐÐÒ»¸öÒ»Öµķç¸ñ£¬¿ÉÒÔÈÃÿһ¸ö×éÖ¯ÖеijÌÐòÔ±ÄܶÁ¶®ÆäËû³ÌÐòÔ±ËùдµÄ´úÂë

¡£Ò»ÖÂÐÔµÄʹÓÃÄÜÌá¸ß´úÂëµÄÒ׶ÁÐÔ¡£
ÕâƪÎĵµ²»Ïë°üº¬ÈκÎÏÔ¶øÒ×¼ûÓ¦µ±´æÔÚÓÚ´úÂë±ê×¼ÖеĹ涨¡£µ«ÊÇ£¬Ëü°üº¬µÄÄÚÈÝ×ã

¹»Ê¹Äã½øÐÐÉè¼Æ¡£Äã¿ÉÒÔ°´×ÅÄãµÄÐèÒªÇáËɵØʹÓúÍÐÞ¸ÄÕâЩ±ê×¼¡£ÎÒÃDz»ÍƼöÄúʹÓÃ

µÄ±ê׼ƫÀë±»Borland¹«Ë¾×÷Ϊ¿ª·¢Ö§ÖùµÄ±ê×¼ºÜÔ¶¡£ÎÒÃDz»ÔÞͬÕâЩÊÇÒòΪÏñÄú½«³ÉΪ

Äú¶ÓÎéÖÐÒ»¸öеijÌÐòÔ±£¬¶øËûÃÇ´ó¶àÊý¿ÉÄÜÒѾ­ÊÇÏ°¹ßʹÓÃBorland¹«Ë¾µÄ±ê×¼ÁË¡£Ïñ

´ó¶àÊý´úÂë±ê×¼Îĵµ£¬ÕâƪÎĵµÒ²ÐèÒª²»¶ÏµÄ·¢Õ¹ºÍÍêÉÆ¡£Òò´ËÄãÒª¾­³£ÔÚwww.xapwar

e.com/ddgÔÚÏ߸üа汾¡£ÕâƪÎĵµ²»Ìæ´ú¡¶User interface standards¡·¡£ÕâÊÇһЩ±Ë

´Ë¶ÀÁ¢µ«ÓÖͬµÈÖØÒªµÄ»°Ìâ¡£ÓɵÚÈý·½Êé¼®ºÍ΢ÈíÎļþÄÜÌæ´úµÄÖ¸µ¼·½ÕëÎÒÃǼá¾ö²»ÖØ

¸´ÕâЩÐÅÏ¢£¬µ«ÊÇÔÚÉæ¼°µ½Microsoft Developers NetworkºÍÆäËûÀ´Ô´Ê±ÓÐЩÐÅÏ¢¿ÉÄÜ

»áÌáµ½¡£
ÆÕͨԴÂë¸ñʽ»¯¹æÔò
Ëõ½ø¸ñʽ
ÿһ²ã¶¼ÒªËõ½øÁ½¸ö¿Õ¸ñ¡£²»Òª°ÑTAB×Ö·û´æµ½Ô´ÂëÎļþÖС£ÀíÓÉÊÇÒòΪtab×Ö·ûÒò²»Í¬

µÄÓû§ºÍ²»Í¬µÄÔ´Âë¹ÜÀíÆ÷µÄÉèÖöøÀ©Õ¹µÄ¿Õ¸ñ¿í¶È²»Í¬£¨ÀýÈ磺´òÓ¡£¬´æµµ£¬°æ±¾¿Ø

ÖƵȵȣ©¡£
Äã¿ÉÒÔͨ¹ý¹Ø±ÕÔÚEnvironment Options¶Ô»°¿ò£¨Ñ¡ÔñTools|Environment£©ÉϵÄEditor

Ò³ÖÐ"Use tab character"ºÍ"Optimal fill"Ñ¡Ôñ¿ò½ûÖ¹´æ´¢tab×Ö·û¡£
Ò³µÄ±ß½ç
Ò³±ß½ç½«±»ÉèÖóÉ80¸ö×Ö·û¡£Í¨³£Çé¿öÏ£¬Ô´Âë²»Òª³¬¹ýÕâ¸ö±ß½ç¿í¶È£¬µ«ÊÇÕâÒ»¹æ¶¨

ÓÐÒ»¶¨µÄÁé»îÐÔ¡£ÎÞÂÛÔõÑù¶¼»á´æÔÚÓï¾äÔÚ¶ººÅ»ò²Ù×÷·ûÖ®ºó³¬¹ýÒ»Ðеģ¬µ±·¢ÉúÕâÖÖ

Çé¿öʱ£¬Ëü½«ÔÚԭʼÉùÃ÷ÐеĻù´¡ÉÏËõ½øÁ½¸ö×Ö·ûµÄλÖá£
³É¶ÔµÄBegin..End
beginÓï¾äÓ¦¸Ã³öÏÖÔÚµ¥¶ÀÒ»ÐС£ÀýÈ磬ÏÂÃæµÚÒ»ÐÐÊÇ´íÎóµÄ£»µÚ¶þÐÐÊÇÕýÈ·µÄ£º
for I := 0 to 10 do begin //´íÎó£¬beginºÍforÔÚÒ»ÐÐ
for I := 0 to 10 do             //ÕýÈ·£¬begin³öÏÖÔÚµ¥¶ÀµÄÒ»ÐÐ
begin
Õâ¸ö¹æÔòµ±beginÓï¾ä³öÏÖÔÚÒ»¸öelse×Ӿ䲿·ÖʱÊǸöÀýÍ⣺
        if Ò»Ð©Óï¾ä = then
        begin
                ¡­
end
else begin
                ÁíһЩÓï¾ä;
end;
endÓï¾äÓÀÔ¶³öÏÖÔÚµ¥¶ÀµÄÒ»ÐС£
µ±beginÓï¾ä²»ÊdzöÏÖÔÚelse×Ӿ䲿·Öʱ£¬ÏàÓ¦µÄendÓï¾ä×ÜÊÇÓÚËüµÄbegin²¿·Ö³É¾â³Ý×´

Æ¥Åä¡£
ÃæÏò¶ÔÏóµÄPascal
À¨ºÅ
ÔÚ×óÀ¨ºÅºÍÏÂÒ»¸öÀ¨ºÅÖ®¼äÓÀԶҲûÓпոñ¡£Í¬Ñù£¬ÔÚÓÒÀ¨ºÅºÍÇ°Ò»¸ö×Ö·ûÖ®¼äÒ²ÓÀÔ¶

ûÓпոñ¡£ÏÂÃæ¾Ù¸ö·Ö±ð´íÎóºÍÕýÈ·µÄÀý×ÓÈÃÄú×¢ÒâÀ¨ºÅµÄÓ÷¨£º
CallProc( Aparameter ); //´íÎó
CallProc(Aparameter);  //ÕýÈ·
ÔÚÒ»¸öÓï¾äÖв»Òª°üº¬ÎÞÒâÒåµÄÀ¨ºÅ¡£À¨ºÅÖ»Ó¦¸Ã³öÏÖÔÚ±ØÐëʹÓÃËü²ÅÄÜÍê³ÉÂß¼­µÄÔ´

ÂëÖС£ÏÂÃæ·Ö±ð¾ÙÀý˵Ã÷Ó÷¨£º
        if (I = 42) then                                //´íÎó-À¨ºÅÎÞÒâÒå
        if (I = 42) or (J = 42 ) then   //ÕýÈ·-À¨ºÅ±ØÐë
±£Áô×ֺ͹ؼü×Ö
Object PascalÓïÑԵı£Áô×ֺ͹ؼü×Ö½«×ÜÊÇÍêȫСдµÄ¡£
¹ý³ÌºÍº¯Êý(¹ßÀý)
Ò»¡¢    ÃüÃû/¸ñʽ
ͨ³£Ãû×ÖÓ¦¸Ã×ÜÊÇÿ¸öµ¥´Ê¿ªÍ·×Öĸ´óд£¬ÕâÑùÓÐÖúÓÚ³ÌÐòµÄÒ׶ÁÐÔ¡£ÏÂÃæÊÇÒ»¸ö¹ý³Ì

ÃüÃû¸ñʽ´íÎóµÄÀý×Ó£º
                procedure thisisapoorlyformattedroutinename£»
ÕâÊÇÒ»¸ö´óд×ÖĸÊʵ±µÄ³£¹æÃüÃûµÄÀý×Ó£º
                procedure ThisIsMuchMoreReadableRoutineName£»
ͨ³£ÆðµÄÃû×ÖÓ¦¸ÃºÍËüµÄÄÚÈÝÏà¹Ø¡£Í¨³£ÓÃÒ»¸öÏà¹ØµÄ¶¯´Ê×÷Ϊǰ׺£¬ÀýÈ磺
                procedure FormatHardDrive£»
ͨ³£ÉèÖüÈëµÄ²ÎÊý±äÁ¿µÄ¹ý³ÌÓõ¥´Êset×÷ǰ׺£¬ÀýÈ磺
                procedure SetUserName£»
ͨ³£ÖØлñµÃÕâÒ»±äÁ¿µÄº¯ÊýʹÓÃget×÷Ϊǰ׺£¬ÀýÈ磺
function GetUserName£ºstring£»
¶þ¡¢    ÐβÎ
l       ¸ñʽ»¯
¿ÉÄܳöÏÖ¶à¸öÐβÎ×éºÏÔÚÒ»¸öÓï¾äÖУº
        procedure Foo(Param1,Param2,Param3,Param4: Integer£»Param4: string);

l       ÃüÃû
ËùÓеÄÐβεÄÃû×Ö¶¼ÊǺÍËüµÄÓÃ;Ïà¹ØµÄ£¬²¢ÇÒ²ÎÊýµÄÃû×Ö²»ÒªºÍ´«½ø²ÎÊýµÄÃû×ÖÖØÃû

¡£Êʵ±µØ¿ÉÒÔÓÃA×÷Ϊǰ׺£¬ÀýÈ磺
        procedure SomeProc(AuserName: string; AuserAge: Integer);
µ±ÀàÖÐÒ»¸öÊôÐÔ»ò×Ö¶ÎÃû×÷Ϊ²ÎÊýʱÌí¼Ó"A"ǰ׺£¬ÕâÖ»ÊÇÒ»¸öÏ°¹ß¶øÒÑ¡£
l       ²ÎÊýµÄ´ÎÐò
ÐβεĴÎÐò°´×ŵ÷ÓòÎÊýµÄÖØÒªÐÔÅÅÐò¡£
¾­³£Ê¹Ó㨱»µ÷ÓÃÕߣ©²ÎÊý½«·ÅÔÚµÚÒ»¸ö²ÎÊýµÄλÖ᣺ÜÉÙÓõIJÎÊý½«´Ó×óµ½ÓÒÒÀ´ÎÅÅ

ÔÚºóÃæ¡£
´«Èë²ÎÊýÁÐ±í°´×Å´Ó×óµ½ÓÒµÄ˳ÐòÅÅÔÚ´«³ö²ÎÊýµÄÇ°Ãæ¡£
ÆÕͨ²ÎÊýµÄ°´×Å´Ó×óµ½ÓÒ˳ÐòÅÅÔÚÌØÊâ²ÎÊýµÄÇ°Ãæ¡£ÀýÈ磺
SomeProce(Aplanet,Acontinent,Acountry,Astate,Acity)¡£
ÀýÍâµÄ˳Ðò¹æÔòÒ²ÊÇ´æÔڵģ¬ÔÚʼþ¾ä±úÖе±²ÎÊýÊÇTobjectÀàÐ͵IJ¢ÃüÃû³ÉSenderͨ³£

·ÅÔÚµÚÒ»¸ö²ÎÊýµÄλÖÃÉÏ¡£
l       ³£Á¿²ÎÊý
µ±record¡¢array¡¢ShortString»òÕß½Ó¿ÚÀàÐͲ»ÐèÒª³ÌÐòÐ޸ĵIJÎÊý£¬Í¨³£ÔÚ²ÎÊýÇ°Ãæ

±ê¼ÇÉÏconst¡£ÕâÓÐÖúÓÚ±àÒëÆ÷ͨ¹ý²»ÐíÐ޸IJÎÊýÉú³É¸ßЧÂʵÄÖ´ÐдúÂë¡£
Èç¹ûÆäËûÀàÐ͵IJÎÊýÒ²²»Ðí³ÌÐòÐÞ¸ÄÔò¿ÉÒÔÈÎÒâ±ê¼Ç³Éconst¡£¾¡¹ÜÕâ¿ÉÄܲ»Ó°ÏìЧÂÊ£¬

µ«ËüÈ´Ïò³ÌÐòµÄµ÷ÓÃÕßÌṩÁ˹ØÓÚ²ÎÊýµÄÏêϸÐÅÏ¢¡£
l       ÃüÃû³åÍ»
µ±Á½¸öµ¥Ôª¶¼°üº¬ÓÐÏàͬÃû×ֵĹý³Ì»òº¯Êý£¬ÄÇôµ÷Óõĺ¯ÊýÊÇÒýÓÃ×Ó¾äÖÐ×îºóµ¥ÔªÖÐ

µÄ¡£ÎªÁ˱ÜÃâÒýÓÃ×Ó¾äµÄÄ£ºýÐÔ£¬¿ÉÒÔÔÚµ÷Óõķ½·¨Ç°¼ÓÉϵ¥ÔªÃû×Ö×÷Ϊǰ׺£¬ÀýÈ磺

        SysUtils.FindClose(SR);
»òÕß
        Windows.FindClose(Handle);
±äÁ¿
Ò»¡¢    ±äÁ¿ÃüÃûºÍ¸ñʽ£º
±äÁ¿µÄÃû×Ö¶¼½«±»¸³ÓèÒâζÉµÄÒâÒå¡£
Ñ­»·¿ØÖƱäÁ¿Í¨³£±»¸³ÒÔÒ»¸öµ¥×Ö·ûµÄÃû×Ö£¬ÏñI£¬J£¬»òÕßK¡£ËüÒ²¿ÉÒÔʹÓøüÓÐÒâÒåµÄ

Ãû×Ö£¬ÏñUserIndex¡£
²¼¶ûÐͱäÁ¿±ØÐëÇå³þµØ±íʾ³öËüµÈÓÚTrueºÍFalseʱµÄÒâÒå¡£
¶þ¡¢    ¾Ö²¿±äÁ¿£º
ÔÚº¯ÊýÄÚ²¿Ê¹Óõľֲ¿±äÁ¿µÄÓ÷¨ºÍÃüÃûͬËùÓÐÆäËüµÄ±äÁ¿¡£ÁÙʱ±äÁ¿¿ÉÊʵ±µØÃüÃû¡£

Èç¹ûÐèÒª£¬¾Ö²¿±äÁ¿µÄ³õʼ»¯½«ÔÚ½øÈë³ÌÐò¶ÎÇ°½øÐС£¾Ö²¿µÄAnsiString±äÁ¿×Ô¶¯³õʼ

»¯³É¿Õ´®£¬¾Ö²¿interfaceºÍdispinterfaceÀàÐ͵ıäÁ¿×Ô¶¯³õʼ»¯³É¿Õ£¬¾Ö²¿VariantºÍ

OleVariantÀàÐ͵ıäÁ¿±»³õʼ»¯³ÉUnassigned¡£
Èý¡¢    È«¾Ö±äÁ¿µÄʹÓãº
È«¾Ö±äÁ¿ÊDz»½¨ÒéʹÓõġ£È»¶ø£¬Èç¹ûÕæµÄÐèÒªÒ²ÊÇ¿ÉÒÔʹÓõġ£ÔÚÕâÖÖÇé¿öÏ£¬ÄãÒª

È·ÈÏÈ«¾Ö±äÁ¿µÄÓÐЧʹÓ÷¶Î§¡£ÀýÈ磬һ¸öÈ«¾Ö±äÁ¿¿ÉÄÜÖ»ÔÚÒ»¸öµ¥¶Àµ¥ÔªµÄʵÏÖ²¿·Ö

ÓÐЧ¡£
È«¾ÖÊý¾Ý±»¶à¸öµ¥ÔªÊ¹ÓÃÓ¦¸Ã°ÑËüÃǷŵ½Ò»¸ö¹«¹²µÄµ¥ÔªÖÐʹÓá£
È«¾ÖÊý¾Ý¿ÉÄÜÔÚvar²¿·Ö±»Ö±½ÓÓÃÒ»¸ö±äÁ¿½øÐгõʼ»¯¡£¼ÇסËùÓеÄÈ«¾ÖÊý¾Ý¶¼×Ô¶¯µØ³õ

ʼ»¯ÎªÁ㣬ËùÒÔ²»Òª³õʼ»¯È«¾Ö±äÁ¿Îª"¿Õ"£¬Ïñ0£¬nil£¬''£¬Unassigned£¬µÈµÈ¡£ÕâÑù

×öµÄÔ­ÒòÊÇ×Ô¶¯³õʼ»¯µÄÈ«¾ÖÊý¾ÝÔÚ¿ÉÖ´ÐÐÎļþÖв¿Õ¼Óÿռ䡣³õʼ»¯ÎªÁãµÄÊý¾ÝµÄ´æ

´¢·½·¨ÔÚÒ»¸ö"virtual"Êý¾Ý¶Î£¬ËüÖ»ÔÚ³ÌÐòÆô¶¯Ê±²ÅÔÚÄÚ´æÖзÖÅäµÄ¡£³õʼ»¯³É·ÇÁãµÄ

È«¾ÖÊý¾ÝÕ¼ÓôÅÅÌÉÏ¿ÉÖ´ÐÐÎļþµÄ¿Õ¼ä¡£
ÀàÐÍ
l       ´óдϰ¹ß
ÀàÐÍÃûÊǹؼü×ÖµÄÈ«²¿ÓÃСд×Öĸ¡£Win32 APIÀàÐÍͨ³£È«²¿ÊÇ´óд×Öĸ£¬Äã¿ÉÒÔÑØÓÃW

indow.pas»òÆäËûAPIµ¥ÔªµÄÀàÐÍÃûÏ°¹ß¡£¶ÔÓÚÆäËûµÄ±äÁ¿Ãû³Æ£¬µÚÒ»¸ö×ÖĸӦ¸Ã´óд£¬

²¢ÇÒÆäÓàµÄµ¥´ÊÏñÍÕ·åÒ»Ñù½»Ì濪ͷ×Öĸ´óд¡£ÀýÈçÏÂÃæµÄһЩÀý×Ó£º
var
  MyString: string;   // ¹Ø¼ü×Ö
  WindowHandle: HWND; // Win32 API ÀàÐÍ
  I: Integer;         // Systemµ¥ÔªÖж¨ÒåµÄÀàÐͱêʶ
l       ¸¡µãÀàÐÍ£º
RealÀàÐ͵ÄʹÓÃÊDz»ÌᳫµÄ£¬ÒòΪËüÖ»ÊÇΪÁËÏòºó¼æÈÝÒÔÇ°Pascal´úÂëµÄ¡£ÐèÒªÓø¡µã

Êýʱͨ³£Ê¹ÓÃDouble¡£Í¬Ñù£¬DoubleÒ²ÊÇ´¦ÀíÆ÷ºÍ×ÜÏßÖ§³ÖµÄÖ¸ÁÊÇÓÅ»¯Á˵ÄIEEE¶¨

ÒåµÄ±ê×¼Êý¾Ý¸ñʽ¡£Ö»ÓÐÔÚȷʵÐèÒª±ÈDouble¸ü´ó·¶Î§µÄÊýʱʹÓÃExtended¡£Extended

ÊÇIntelоƬµÄÌØÊâÀàÐͲ¢ÇÒJava²»Ö§³Ö¸ÃÀàÐÍ¡£Ö»ÓÐÔÚ¸¡µãÐͱäÁ¿µÄÎïÀí×Ö½Ú´óС·Ç³£

ÖØÒªµÄÇé¿öÏ£¨ÀýÈ統ʹÓÃÆäËüÓïÑԵĶ¯Ì¬Á¬½Ó¿âʱ£©²ÅʹÓÃSingleÀàÐÍ¡£
l       Ã¶¾ÙÀàÐÍ£º
ö¾ÙÀàÐ͵ÄÃû×ÖÒ»¶¨ÒªÄÜÇå³þµØ±í´ïËüËù´ú±íµÄÒâÒå¡£Õâ¸öÀàÐÍÃûÒ»¶¨ÒªÔÚËüµÄÀàÐÍÉù

Ã÷Ç°¼ÓÉÏT×÷Ϊǰ׺¡£Ã¶¾ÙÀàÐ͵ıêʶ·ûÁбíÓ¦¸Ã°üº¬2-4¸öСд×Ö·ûǰ׺ÓÃÀ´ÃèÊöÀàÐÍ

µÄÃû×Ö£¬ÀýÈ磺
TSongType = (stRock, stClassical, stCountry, stAlternative, stHeavyMetal, st

RB);
ö¾ÙÀàÐ͵ıäÁ¿ÊµÀý½«±»¸³ÒÔÀàÐÍÃûÈ¥µôTǰ׺ºóµÄÃû×Ö£¨SongType£©£¬Èç¹û²»ÕâÑù¾Í°Ñ

±äÁ¿ÃûÌí¼Ó³É¸üÄܱíÏÖ³öÆäÒâÒåµÄÑù×Ó£¬ÈçFavoriteSongType1£¬FavoriteSongType2£¬

µÈµÈ¡£
l       VariantºÍOleVariantÀàÐÍ£º
VariantºÍOleVariantÀàÐÍͨ³£Ò²ÊDz»ÌᳫʹÓõģ¬µ«ÊÇÖ»ÓÐÔÚ³ÌÐòÔËÐÐʱ²»ÖªµÀÊý¾ÝÀà

ÐÍʱ¾ÍÐèÒªÕâÖÖÀàÐÍÁË£¬Ëü¾­³£³öÏÖÔÚCOMºÍÊý¾Ý¿â±à³ÌÖС£ÀýÈçÔÚÒÔCOM¼¼ÊõΪ»ù´¡µÄ

AutomationºÍActiveX¿ØÖƳÌÐòÉè¼ÆÖÐʹÓÃOleVariantÀàÐÍ£¬ÔÚ·ÇCOM³ÌÐòÉè¼ÆÖÐʹÓÃVa

riantÀàÐÍ¡£ÕâÊÇÒòΪһ¸öVariant±äÁ¿¿ÉÒÔÓÐЧµØ´æ´¢Delphi±¾ÉíµÄ×Ö·û´®±äÁ¿£¨¾ÍÏñ

Ò»¸ö×Ö·û´®±äÁ¿Ò»Ñù£©£¬¶øOleVariant±äÁ¿°ÑËùÓеÄ×Ö·û´®±äÁ¿×ª»¯ÎªOle ×Ö·û´®±äÁ¿

£¨WideChar×Ö·û´®£©£¬²¢ÇÒ»¹²»Ìṩ¿½±´¼ÆÊýµÄ¹¦ÄÜ¡£
½á¹¹ÀàÐÍ
l       Êý×éÀàÐÍ£º
Êý×éÀàÐÍÉùÃ÷µÄÃû×Ö±ØÐëÍêÈ«±íʾ³öÊý×éµÄÒâÒå¡£Õâ¸ö¶¨ÒåµÄÀàÐÍÃû±ØÐëÓÃÒ»¸öT×Öĸ×÷

Ϊǰ׺¡£Èç¹ûÉùÃ÷µÄÊÇÒ»¸öÊý×éÀàÐÍÖ¸Õ룬ÄÇô±ØÐëÓÃ×ÖĸP×÷Ϊǰ׺²¢ÇÒÒªÖ±½ÓÉùÃ÷ÔÚ

ÀàÐͶ¨ÒåµÄÇ°Ã棬ÀýÈ磺
type
  PCycleArray = ^TCycleArray;
  TCycleArray = array[1..100] of integer;
ÔÚʵ¼ÊÓ¦ÓÃÖУ¬Êý×éÀàÐͱäÁ¿ÊµÀý½«Ó¦±»¸³ÒÔ³ýÁËTǰ׺ÒÔÍâºÍÀàÐÍÃûÏàͬµÄÃû³Æ¡£
l       ¼Ç¼ÀàÐÍ£º
¼Ç¼ÀàÐÍÓ¦¸ÃÆðÒ»¸öÄܳä·Ö´ú±íËüÒâÒåµÄÃû×Ö¡£ÀàÐÍÉùÃ÷±ØÐëÓÃ×ÖĸT×÷Ϊǰ׺¡£Èç¹ûÉù

Ã÷Ò»¸ö¼Ç¼ָÕëÀàÐÍ£¬Ëü±ØÐëÓÃ×ÖĸP×÷Ϊǰ׺²¢ÇÒÖ±½ÓÉùÃ÷ÔڼǼÀàÐÍÉùÃ÷֮ǰ¡£ÀàÐÍ

ÉùÃ÷µÄ³ÉÔ±¿ÉÒÔËæÒâµØÈçÏÂÀý×ÓÅÅÔÚÒ»ÁÐÉÏ£º
type
  PEmployee = ^TEmployee;
  TEmployee = record
    EmployeeName: string
    EmployeeRate: Double;
  end;
Óï¾ä
l       ifÓï¾ä£º
´óÁ¿µÄÓï¾äͨ³£·ÅÔÚif/then/elseÓï¾äµÄthen×Ó¾äÖУ¬¶øºÜÉÙ·ÅÔÚelse×Ó¾äÖС£
ÔÚ¾¡¿ÉÄܵÄÇé¿öÏÂ×îºÃÄÜÓÃcaseÓï¾ä´úÌæifÓï¾ä¡£
²»ÒªÊ¹ifÓï¾äǶÌײã´Î³¬¹ý5²ã¡£´´½¨Ò»¸ö¼ò½à¡¢Ã÷Á˵ĴúÂë¡£
²»ÒªÔÚÒ»¸öifÓï¾äÖÐʹÓöàÓàµÄÀ¨ºÅ¡£
Èç¹ûÒ»¸öifÓï¾äµÄ²âÊÔÌõ¼þÓжàÌõʱ£¬¸÷Ìõ¼þÓ¦°´×ÅÌõ¼þÔËËã¼òµ¥µ½¸´ÔÓµÄ˳Ðò´Ó×óµ½

ÓÒµØÒÀ´ÎÅÅÁС£ÕâÔÊÐí±àÒëÆ÷ÔÚ±àÒëÄãµÄ´úÂëʱ¿ÉÒÔʵÏÖÂß¼­ÅжÏʱ×߽ݾ¶¡£ÀýÈ磬Èç

¹û Condition1 ±ÈCondition2¿ì£¬²¢ÇÒCondition2±ÈCondition3¿ì£¬ÄÇôifÓï¾äµÄ½á¹¹

ÈçÏ£º
    if Condition1 and Condition2 and Condition3 then
l       caseÓï¾ä£º
2       ¸ÅÀ¨½éÉÜ
ÔÚcaseÓï¾äÖеÄÇé¿öÓï¾ä±ØÐëÊÇÊýÖµÐÍ»ò×Ö·ûÐͳ£Á¿ÖеÄÈÎÒâ¸ö¡£
ÿ¸öÇé¿öÓï¾äÖеĴúÂë×îºÃ²»Òª³¬¹ý4µ½5ÐС£Èç¹ûÓï¾äµÄʵÏÖÕæµÄºÜ¸´ÔÓ£¬½¨Òé°ÑËü·Å

µ½Ò»¸öµ¥¶ÀµÄ¹ý³Ì»òº¯ÊýÖС£
Ö»ÓÐÔÚȷʵÊÇĬÈÏÖµ»ò¼à²â´íÎóʱ²ÅʹÓÃcaseÓï¾äµÄelse×Ӿ䡣
2       ¸ñʽ»¯
caseÓï¾ä¸ñʽ»¯¹æÔòºÍÆäËû½á¹¹Ò»Ñù£¬ÐèҪעÒâËõ½øºÍÃüÃûÏ°¹ß¡£
l       whileÓï¾ä£º
²»ÌᳫÔÚwhileÑ­»·ÖÐʹÓÃExit¹ý³Ì£»ÊµÔÚÆȲ»µÃÒÑ£¬Äã¿ÉÒÔÓÃÑ­»·Ìõ¼þÌø³öÕâ¸öÑ­»·¡£

ËùÓеÄΪÁËÑ­»·µÄ³õʼ»¯´úÂëÓ¦Ö±½Ó·ÅÔÚ½øÈëÑ­»·Ö®Ç°²¢²»Òª±»ÆäËûÎ޹صÄÓï¾ä¸ô¿ª¡£

l       forÓï¾ä£º
µ±whileÓï¾äÖ´ÐÐÌõ¼þÊÇÒ»¸öÒÑÖªÔöÁ¿Êýֵʱ¿ÉÒÔʹÓÃforÓï¾äʵÏÖ¡£
l       repeatÓï¾ä£º
repeatÓï¾äºÍwhileÑ­»·Óï¾äÀàËƲ¢ÇÒ¸ñʽҪÇóҲͬÓÚÒ»°ãµÄÓï¾ä¹æÔò¡£
l       withÓï¾ä£º
2       ¸ÅÀ¨½éÉÜ
¾¡Á¿ÉÙµØʹÓÃwithÓï¾ä²¢ÇÒǧÍò½÷É÷µØʹÓ᣾¡Á¿±ÜÃâ¹ý¶ÈʹÓÃwithÓï¾ä£¬¶øÇÒСÐÄʹ

Óöà¶ÔÏ󡢼ǼÔÚwithÓï¾äÖС£ÀýÈ磺
        with Record1£¬Record2  do
ÕâÑùµÄÓï¾äÄÜ°ÑÈÅÂÒ³ÌÐòÔ±²¢ºÜÈÝÒ×Ôö¼Ó¶Ô´íÎó¼ì²âµÄÀ§ÄÑ¡£
2       ¸ñʽ»¯
withÓï¾ä¸ñʽ»¯¹æÔòºÍ±¾ÎĵµÆäËûËõ½øºÍÃüÃû¹æÔòÏàͬ¡£
Òì³£½á¹¹´¦Àí
l       ¸ÅÀ¨£º
Òì³£´¦Àí±»¹ã·ºÓ¦ÓÃÔÚ´íÎó»Ö¸´ºÍ×ÊÔ´±£»¤ÉÏ¡£Õâ¾ÍÒªÔÚ×ÊÔ´·ÖÅäµÄÇé¿öÏÂʹÓ㬱ØÐë

ʹÓÃtry..finallyÀ´±£Ö¤×ÊÔ´µÄÊÍ·Å¡£Òì³£´¦ÀíÒª·ÅÔÚµ¥ÔªµÄ×ÊÔ´·ÖÅä¡¢ÊÍ·Å£¬³õʼ»¯

¡¢½áÊø»òÕ߶ÔÏóµÄ´´½¨ºÍ´Ý»Ù¡£
l       try..finallyµÄʹÓãº
Èç¹û¿ÉÄܵĻ°£¬Ã¿¸ö¹¹Ô캯ÊýµÄ·ÖÅ䶼ÅäÒÔtry..finallyµÄ×Ӿ䡣ÀýÈçÏÂÃæµÄ´úÂë¿ÉÄÜ

µ¼Ö·¢Éú´íÎó£º
SomeClass1 := TSomeClass.Create
SomeClass2 := TSomeClass.Create;
try
  { do some code }
finally
  SomeClass1.Free;
  SomeClass2.Free;
end;
Òª½ô¸ú×Å·ÖÅäÖ®ºóʹÓãº
SomeClass1 := TSomeClass.Create
try
  SomeClass2 := TSomeClass.Create;
  try
    { do some code }
  finally
    SomeClass2.Free;
  end;
finally
  SomeClass1.Free;
end;
l       try..exceptµÄʹÓãº
Ö»ÓÐÔÚÒì³£±»Òý·¢Ê±ÄãÏëÖ´ÐÐһЩÈÎÎñʱ²ÅʹÓÃtry..except¡£Í¨³£Äã²»ÐèÒªÓÃtry..ex

ceptÔÚÆÁÄ»ÉÏÏÔʾһ¸ö¼òµ¥µÄ´íÎóÐÅÏ¢£¬ÒòΪÕâЩÒѾ­±»³ÌÐòµÄÉÏÏÂÎÄApplication¶ÔÏó

Íê³ÉÁË¡£Èç¹ûÄãÏëÔÚÄãµÄexcept×Ӿ䴦ÀíÍêһЩÈÎÎñºóµ÷ÓÃĬÈϵÄÒì³£´¦Àí£¬¿ÉÒÔʹÓÃ

raiseÖØÐÂÒý·¢Òì³£µÄÏÂÒ»¸ö´¦Àí¡£
l       try..except..elseµÄʹÓãº
ºÍtry..exceptÒ»ÆðµÄelse×Ó¾äµÄʹÓÃÊDz»ÍƼöµÄ£¬ÒòΪËü»á×èÖ¹ËùÓеÄÒì³££¬ÕâÆäÖÐÓÐ

Щ¿ÉÄÜÊÇÄãÇ¡ºÃûÏëµ½µÄ¡£
Àà
ÃüÃû/¸ñʽ
ÀàµÄÃû³ÆÓ¦¸Ã°üº¬ÀàµÄ¹¦ÄܵÄÒâÒå¡£ÀàµÄÃû×Ö±ØÐëÓÐÒ»¸öT×÷Ϊǰ׺À´±êʾÕâÊÇÒ»¸öÀàµÄ

¶¨Òå¡£ÀýÈ磺
type
          Tcustomer = class(Tobject)
ÀàµÄʵÀýµÄÃû×ÖÓ¦¸ÃºÍÀàµÄÃû×ÖÏàÆ¥Åä²¢ÇÒûÓÐTǰ׺¡£
ÀýÈ磺
  var
Customer£ºTcustomer;
×¢Ò⣺¿´"Component Type Naming Standards"Òѵõ½¸ü¶àµÄÄÚÈÝ¡£
Óò£º(field)
ÀàµÄÓòµÄÃû×ÖÓ¦¸ÃºÍ±äÁ¿±êʾһÑù£¬Ö»ÊÇÒª¼ÓÉÏǰ׺FÒѱíʾËû±íʾµÄÊÇÓòµÄÃû×Ö¡£
¿É¼û¶È
ËùÓеÄÓò¶¼Ó¦¸ÃÊÇ˽Óеġ£Íâ½çµÄÀà¿ÉÒÔͨ¹ý·ÃÎÊÊôÐÔ£¨property£©À´·ÃÎÊÓò¡£
·½·¨£º(methods)
        ÃüÃû/¸ñʽ
        ·½·¨ÃüÃûºÍ¹ý³Ì£¨procedure£©º¯Êý£¨function£©Ò»ÑùÔÚÒ»¸öÎĵµÀï¡£
¾²Ì¬·½·¨µÄʹÓÃ
        ÔÚÄã²»ÏëʹÄãµÄ·½·¨±»ºó´ú¸²¸Ç£¨override£©µÄʱºò£¬Äã¿ÉÒÔʹÓþ²Ì¬µÄ·½·¨
¡£
Ðé/¶¯Ì¬·½·¨µÄʹÓÃ
        ÔÚÄãÏëÈÃÄãµÄ·½·¨±»ºó´úʹÓõÄʱºò£¬Äã¿ÉÒÔʹÓÃÐé·½·¨£¨virtual methods£©
¡£¶
̬
·½·¨£¬Ó¦¸ÃÖ»±»ÓÃÔÚÄÇЩ×Ó´ú£¨Ö±½Ó»òÕß¼ä½Ó£©·Ç³£¶àµÄÀàÉÏ¡£±ÈÈ磬һ¸öÀà°üº¬ÁËÒ»

¸öºÜÉÙ·¢ÉúµÄ¸²¸ÇµÄ·½·¨£¬²¢ÇÒ100¸ö×Ó´úµÄÀà¿ÉÒÔʹÕâ¸ö·½·¨¶¯Ì¬»¯ÒÔ¼õÉÙ100¸ö×Ó´ú

µÄÄÚ´æ¡££¨ÒëÕß×¢£ºÈç¹û²»±»ÉùÃ÷³É¶¯Ì¬µÄ·½·¨£¬ÄÇôÔÚÿһ¸ö×ÓÀàÖж¼»á¾²Ì¬µÄ²úÉú

·½·¨µÄÄڴ棩¡£
´¿Ðé·½·¨µÄʹÓÃ
        ²»ÒªÔÚ¿ÉÄܱ»´´½¨µÄÀàÉÏʹÓô¿Ðé·½·¨£¬Èç¹ûÄãÔÚÀàÖÐʹÓô¿Ðé·½·¨£¬ÄÇôÕâ
¸öÀà
¦¸Ã
ÊÇÓÀÔ¶²»Äܱ»´´½¨µÄ»ùÀà¡£
·ÃÎÊÊôÐԵķ½·¨
        ËùÓеķÃÎÊ·½·¨±ØÐëÔÚprotected»òÕßprivate²¿·ÖÉùÃû¡£
        ·ÃÎÊÊôÐԵķ½·¨µÄÃüÃû¹æÔòºÍ¹ý³Ìº¯ÊýµÄÒ»Ñù£¬¶Á¹ý³ÌÓ¦¸ÃÓÐÒ»¸öGet×öΪǰ׺
£¬Ð
¹ý
³ÌÓ¦¸ÃÓÐÒ»¸öSetµÄǰ׺¡£²¢ÇÒд¹ý³ÌµÄ²ÎÊýÓ¦¸Ã½Ð×öValue£¬ËüµÄÀàÐÍÓ¦¸ÃºÍÉùÃ÷µÄÀà

ÐÍÒ»Ö¡£
TSomeClass = class(TObject)
private
  FSomeField: Integer;
protected
  function GetSomeField: Integer;
  procedure SetSomeField( Value: Integer);
public
  property SomeField: Integer read GetSomeField write SetSomeField;
end;
ÊôÐÔ
        ÊôÐÔΪ˽ÓеÄfield·þÎñ£¬²¢ÇÒºÍfieldµÄÃüÃûÒ»ÖÂÖ»ÊÇûÓÐFµÄǰ׺¡£
ÊôÐÔÓ¦¸ÃÊǸöÃû´Ê¶ø²»ÊǶ¯´Ê£¬ÊôÐÔÃèÊöÊý¾Ý£¬·½·¨ÃèÊö¶¯×÷¡£
        Êý×éÊôÐÔµÄÃû×ÖÓ¦¸ÃÊǶà¸öµÄ£¬ÆÕͨµÄÊôÐÔµÄÃû×ÖÓ¦¸ÃÊǵ¥¸öµÄ¡£
ʹÓ÷ÃÎÊ·½·¨
        ¾¡¹Ü²¢Ã»ÓÐ×öÒªÇ󣬵«ÊÇʹÓÃ×îÉÙÁ¿µÄ"д·½·¨"À´·ÃÎÊ´ú±í˽ÓÐÓòµÄÊôÐÔ¡£
Îļþ
        ¹¤³ÌÎļþÓ¦¸Ã¸øÒÔÃèÊöÐÔµÄÃû×Ö£¬±ÈÈç"ÌìÍþµçÄÔ²¿ÏÔʾÆÁ¿ØÖÆϵͳÈí¼þ"½Ð×ö
£ºTW
ed
Ctrl.dpr.ÈýÑóÀäÁ´µÄims¿ØÖÆϵͳ:£ºims.dpr
´°ÌåÎļþ
        ´°ÌåÎļþÓ¦¸ÃÃèÊö´°ÌåµÄÄ¿µÄ£¬²¢ÇÒÓÐǰ׺Frm,£¨ÔÚʹÓÃframeµÄ¹¤³ÌÀÔÚÌì
Íþµ
ÄÔ
²¿·¶Î§ÄÚ£¬Ó¦¸ÃÓÃFrm_±íʾframeÎļþ¡£ÓÃFormǰ׺±íʾ´°ÌåÎļþ¡£
Data Module Files
        Ò»¸öData module Ó¦¸ÃÓкó׺DM.ÀýÈ磺һ¸öCustomers Data module Ó¦¸ÃÓÐÒ»
¸öÎ
¼þ
ÃûCustomersDM.dfm.
Remote Data Module Files
        ÃüÃû£¬Ò»¸öÔ¶³ÌµÄData module Ó¦¸ÃÓкó׺RDM.
µ¥ÔªÎļþ£¨Unit Files£©

--
¡ù À´Ô´:¡¤¹þ¹¤´ó×϶¡Ïã bbs.hit.edu.cn¡¤[FROM: 202.118.248.81]
--
¡ù ×ªÔØ:£®¹þ¹¤´ó×϶¡Ïã bbs.hit.edu.cn£®[FROM: 202.118.245.174]
[°Ù±¦Ïä] [·µ»ØÊ×Ò³] [Éϼ¶Ä¿Â¼] [¸ùĿ¼] [·µ»Ø¶¥²¿] [Ë¢ÐÂ] [·µ»Ø]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
Ò³ÃæÖ´ÐÐʱ¼ä£º206.870ºÁÃë