Delphi Ìõ¼þÅжÏÄÇЩÊÂ
¼¼Êõ½»Á÷,DH½²½â. ֮ǰÕÕ×ÅÌìÊéÒ¹¶Á,ÓÃDelphiÀ´ÅªÁËÏÂÑ»·Ìå,ÏÖÔÚ¾ÍÀ´ÅªÒ»ÏÂÌõ¼þÅжϰÉ.
Ê×Ïȿ϶¨ÊÇÎÒÃǾ³£¿´¼ûµÄIFÓï¾ä¿©. Var
I: Integer;
Begin
I:= 99;
If (I> 0)And (I< 0) Then
Writeln('I>0')
Else
If (I> 10)And (I< 100) Then
Writeln('I>10 and I100');
End.
·´»ã±à³öÀ´»áÊÇʲôÑù×ÓµÄÄØ?
Project5.dpr.12: I:= 99;
004AC44C B863000000 mov eax,$00000063
Project5.dpr.13: If (I> 0)And (I< 0) Then
004AC451 85C0 test eax,eax
004AC453 7E1F jle $004ac474
004AC455 85C0 test eax,eax
004AC457 7D1B jnl $004ac474
Project5.dpr.14: Writeln('I>0')
004AC459 A1DC314B00 mov eax,[$004b31dc]
004AC45E BAC4C44A00 mov edx,$004ac4c4
004AC463 E874BAF5FF call @Write0UString
004AC468 E8BF89F5FF call @WriteLn
004AC46D E83E7FF5FF call @_IOTest
004AC472 EB3E jmp $004ac4b2
Project5.dpr.16: If (I> 10)And (I< 100) Then
004AC474 83F80A cmp eax,$0a
004AC477 7E20 jle $004ac499
004AC479 83F864 cmp eax,$64
004AC47C 7D1B jnl $004ac499
Project5.dpr.17: Writeln('I>10 and I100');
004AC499 A1DC314B00 mov eax,[$004b31dc]
004AC49E BA04C54A00 mov edx,$004ac504
004AC4A3 E834BAF5FF call @Write0UString
004AC4A8 E87F89F5FF call @WriteLn
004AC4AD E8FE7EF5FF call @_IOTest
ÎÒÃÇÕâÀï¾ÍÈÝÒ׵óöÀ´DelphiÀïÃæIFÓï¾äµÄ½á¹¹ÁË.
ÅжÏ1
²»Âú×ã¾ÍÌø-------------------------|
Âú×ãÌõ¼þ´úÂë |
[ÎÞÌõ¼þJmpµ½ËùÓÐÅжÏÍâ] |
[ÅжÏ2] je->cmp->je->cmp->je
¾ÍÊÇÕâÑù²»Í£µÄ¶Ô±È,Èç¹ûÏàµÈ¾ÍÌø.ÕâÑù·ûºÏÎÒÃÇ˼άһЩ.
ºÃµÄ,ÕâÊ
Ïà¹ØÎĵµ£º
½üÀ´·¢ÏÖÒ»¸öDelphiĪÃûÆäÃîµÄbug£¬µ±Ê¹ÓÃSetOptionalParamʱ£¬²»ÄÜʹÓÃÒ»Á¬´®Êý×ÖµÄ×Ö·û´®£¬Èç'101'£¬×¢Ò⣬ÊÇ´øÒýºÅµÄ¡£ÔÚSaveToFileʱ£¬¾Í»á³öÏÖ'Invalid field type'µÄÒì³££¬ÕæÊǰÙ˼²»µÃÆä½â£¡Á¬'001'ÕâÖÖ´®Ò²²»ÐУ¬È¥µôÒýºÅ£¬Ö±½Ó°´Êý×Ö¸³Öµ£¬ÔòÕý³£¡£
procedure TForm1.Button1Click(Sender: TObject);
var
  ......
¿´ÈçÏ´úÂ룺
var
buffer:array [0..6] of char;
begin
buffer:='delphi';
end;
±àÒëͨ¹ý
ÔÙ¿´ÈçÏ´úÂ룺
var
buffer:array [1..7] of char;
begin
buffer:='delphi';
end;
±àÒë´íÎó£º
Incompatible types: 'Array' and 'String'
Õæ²»ÖªµÀ ......
Delphi¼üÅ̰´¼üαÂë
Ó÷¨£ºif key = chr(VK_RETURN) then...
³£ÊýÃû³Æ Ê®Áù½øÖÆÖµ Ê®½øÖÆÖµ ¶ÔÓ¦°´¼ü
VK_LBUTTON 01 1 Êó±êµÄ×ó¼ü
VK_RBUTTON 02 2 Êó±êµÄÓÒ¼ü
VK-CANCEL 03 3 Contol-break Ö´ÐÐ
VK_MBUTTON 04 4 Êó±êµÄÖмü£¨Èý°´¼üÊó±ê)
VK_BACK 08 8 Backspace¼ü
VK_TAB 09 9 Tab¼ü
VK_CLEAR 0C 12 Clear¼ü
VK ......
ÏûÏ¢µÄ´¦ÀíÁ÷³Ì£¬Á÷³ÌÈçÏ£º
ÆäÅÉ·¢´¦Àí¹ý³ÌÏêϸÈçÏ£º
×¢Ò⣺TWinControlÀïÃæWndProcÓе÷ÓÃϵͳAPI DefWindowProc,¸Ãº¯Êýµ÷ÓÃȱʡµÄ´°¿Ú¹ý³ÌÀ´ÎªÓ¦ÓóÌÐòûÓд¦ÀíµÄÈκδ°¿ÚÏûÏ¢ÌṩȱʡµÄ´¦Àí¡£¶øTWinControlÀïÃæDefaultHandlerÓÖµ÷ÓÃÁËϵͳAPI CallWindowProc£¬¸Ãº¯ÊýCallWindowProc½«ÏûÏ¢ÐÅÏ¢´«Ë͸øÖ¸¶¨µÄ´°¿ ......