delphi³ÌÐòµ¥Ôª»ù´¡½²½â ÁªÏµ¿Í·þ

·¢²¼Ê±¼ä : ÐÇÆÚÈÕ ÎÄÕÂdelphi³ÌÐòµ¥Ôª»ù´¡½²½â¸üÐÂÍê±Ï¿ªÊ¼ÔĶÁ6cf2ae15fc4ffe473368aba6

ÆäÖÐBlockÊÇȱʡ·½Ê½£¬±íʾ¹ý³Ì»òº¯ÊýµÄÓï¾ä²¿·ÖÊÇ Pascal³ÌÐò¿ì£¬ÏÂÃæ¶ÔExternal£¬Assembler£¬Forward½øÐнéÉÜ¡£ 1£®External

¸Ãָʾ×Ö±íʾ¹ý³Ì»òº¯ÊýÊÇÍⲿµÄ£¬Í¨³£ÓÃÓÚ´Ó¶¯Ì¬Á´½Ó¿âÖÐÒýÈë¹ý³Ì»òº¯Êý¡£Externalºó¿ÉÒÔ¶¯Ì¬Á´½Ó¿âÃû»ò±íʾ¶¯Ì¬Á´½Ó¿âµÄÓÐÐòÊý£¬Ò²¿ÉÒÔÖ¸¶¨ÒýÈëµÄ¹ý³Ì»òº¯ÊýÃû¡£ÀýÈ磺

function MessageBox(HWnd: Integer; Text, Caption: PChar; Flags: Integer): Integer; stdcall; external 'user32.dll' name 'MessageBoxA'; ÉÏÀýÖУ¬user32.dllÖ¸¶¨ÓÃÓÚÒýÈë¹ý³Ì»òº¯ÊýµÄ¶¯Ì¬Á´½Ó¿âÃû£¨Ò²¿ÉÒÔÊÇÒ»¸öÓÐÐòÊý£©£¬MessageBoxÖ¸¶¨´Ó¶¯Ì¬Á´½Ó¿âÖÐÒýÈë¹ý³Ì»òº¯ÊýÃû¡£ £¨2£©Assembler

¸Ãָʾ×Ö±íʾ¹ý³Ì»òº¯ÊýÊÇʹÓÃǶÈëʽ»ã±àÓïÑÔ±àдµÄ¡£ÀýÈ纯ÊýÉùÃ÷£º function LongMul(X, Y: Integer): Longint;Assembler Æ䶨ÒåΪ£º

function LongMul(X, Y: Integer): Longint; £¨3£©Forward

¸Ãָʾ×Ö±íʾһ¸ö¹ý³Ì»òº¯ÊýÊÇÏòÇ°²éÕҵġ£ÔÚÉùÃ÷ÁËÒ»¸ö¹ý³Ì»òº¯ÊýÊÇÏòÇ°²éÕÒµÄÖ®ºó£¬¸Ã¹ý³Ì»òº¯ÊýµÄ¶¨Òå±ØÐëÔÚºóÃæµÄij¸öµØ·½¶¨Òå¡£ procedure Walter(M, N: Integer); forward; procedure Clara(X, Y: Real);

begin ...

Walter(4, 5); end;

procedure Walter; begin ...

MessageBeep(0); end;

×¢Ò⣺²»ÄÜÔÚµ¥ÔªµÄinterface²¿·ÖÉùÃ÷ÏòÇ°²éÕÒ¹ý³Ì¡£ÔÚʹÓÃÏòÇ°²éÕÒ¹ý³Ìʱ£¬Òª×¢ÒâÏ໥µÝ¹é¡£

6.7.6 ²ÎÊý

µ±µ÷Óùý³Ì»òº¯Êýʱ£¬³£³£ÐèҪʹÓòÎÊý´«µÝÊý¾Ý¸ø±»µ÷ÓõĹý³Ì»òº¯Êý¡£ÔÚijÖ̶ֳÈÉÏ£¬Ê¹¹ý³Ì¡¢º¯Êý¸üÓÐÓøüÁé»îµÄ·½·¨¾ÍÊÇʹÓòÎÊý¡£ ÔÚPascalÖУ¬µ÷Óùý³Ì»òº¯ÊýʹÓõIJÎÊý³ÆΪʵ²Î£¬±»µ÷Óùý³Ì»òº¯ÊýʹÓõIJÎÊý³ÆΪÐβΣ¬ÀýÈ磬ÏÂÃæÓï¾äÖУ¬Edit1ÊÇʵ²Î£º

ColorIt(Edit1);

ÏÂÃæµÄAnEditBoxÊÇÐβÎ:

Procedure ColorIt(AnEditBox:Tedit); Delphi´«µÝ²ÎÊýµÄ·½Ê½ÓÐËÄÖÖ£º £¨1£©´«Öµ(Passing By Value)¡£

±äÁ¿ºÍ½á¹¹±»ÍêÕûµØ¿½±´µ½¶ÑÕ»ÖУ¬¶ø²»ÊÇͨ¹ý»úÆ÷µÄ¼Ä´æÆ÷¡£Í¨¹ýÖµ´«µÝ²ÎÊý¿ÉÒÔ·ÀÖ¹µ÷Óõĺ¯ÊýÐÞ¸ÄÔ­À´µÄ²ÎÊý£¬ÒòΪµ÷Óõĺ¯Êý½ÓÊÕµ½µÄÖ»²»¹ýÊDzÎÊýµÄÒ»¸ö¸±±¾¡£ÀýÈ磺

procedure Tform1.Button1Click(Sender:Tobject); var Number:Integer; begin

Number:=StrToInt(Edit1.text); Calculate(Number);

Edit2.Text:=IntToStr(Number); end;

Procedure Calculate(CalcNo:Integer); begin

CalcNo:=CalcNo*10; end;

ÔÚCalculate¹ý³ÌÖУ¬CalcNo²ÎÊý°´Öµ´«µÝ£¬Ö´Ðиùý³Ìºó£¬CalcNoµÄÖµÀ©´óÁËÊ®±¶¡£µ«ÊÇ£¬µ÷Óùý³ÌTform1.Button1ClickÖÐNumber²¢Ã»Óиı䣬Òò´ËEdit1±à¼­¿òÓëEdit2±à¼­¿òµÄÖµÒ»Ñù¡£ £¨2£©´«ÒýÓÃ(Passing By Reference)¡£

´«µÝÒ»¸öÖ¸Ïò²ÎÊýµÄÒýÓÃ(Ö¸Õë)£¬°´¹æÔòÒýÓÿÉÓÃ×÷Ö¸ÕëºÍÖµ¡£¸Ä±äÒýÓô«µÝµÄ²ÎÊýÒªÓ°Ïìµ÷ÓÃÔ´²ÎÊýµÄ¿½±´¡£

ʹÓô«ÒýÓñØÐëÔÚ²ÎÊýÇ°¼ÓÉÏVar±£Áô×Ö¡£ÀýÈ磬°ÑCalculate¸ÄдÈçÏ£º procedure Calculate(Var CalcNo:Integer); begin

CalcNo:=CalcNo*10; end;

Ð޸ĺó£¬Calculate¹ý³ÌµÄCalcNo²ÎÊýΪ°´ÒýÓô«µÝ£¬Ö´Ðиùý³Ìºó£¬CalcNoµÄÖµÀ©´óÁËÊ®±¶£¬Í¬Ê±£¬µ÷Óùý³ÌTform1.Button1ClickÖÐNumberÒ²×÷Á˸ı䣬Òò´ËEdit2±à¼­¿òµÄÖµÊÇEdit1±à¼­¿òÖµµÄ10±¶¡£ £¨3£©³£Á¿´«µÝ(Constant Parameters)¡£

Èç¹û¹ý³Ì»òº¯ÊýÔËÐÐʱ£¬ÐβεÄÖµÓÀÔ¶¶¼²»»á¸Ä±ä£¬¾Í¿ÉÒÔ¿¼ÂÇʹÓó£Êý²ÎÊý¡£ÒªÊ¹Ò»¸ö²ÎÊýΪ³£Êý²ÎÊý£¬Ö»ÒªÔÚ²ÎÊýÇ°¼ÓÉÏConst±£Áô×Ö¡£ÀýÈ磺

function TDirectoryOutline.ForceCase(const AString: string): string; begin