ÄãµÄλÖãºÈí¼þ> Éè¼ÆÔÚÏß> ÍøÒ³ÌÕ°É> ¼¼Êõƽ̨> HTMLѧϰ>
DELPHI¿Ø¼þTweblabelµÄ±àÖÆ
2000-06-25 00:00:00¡¤ -¡¤µç×ÓÓëµçÄÔ

p>¡¡¡¡InternetÒѾ­Ô½À´Ô½¶àµØÉøÍ¸µ½Éú»îµÄ¸÷¸ö·½ÃæÒÔ¼°¸÷¸öÁìÓò£¬Ðí¶àÈ˶¼ÓÐÁË×Ô¼ºÆ¯ÁÁµÄÖ÷Ò³£¬µ«ÊÇ£¬ÈçºÎ¼ò½à¶ø¿ìËٵص÷ÓÃÕâЩÖ÷Ò³ÄØ£¿Õâ¾ÍÊÇÓÃDELPHIµÄTweblabel¿Ø¼þ·½·¨¡£Ê×ÏÈÀ´¿´¿´Õâ¸ö¿Ø¼þµÄÍþÁ¦¡£

¡¡¡¡ÉÏÃæÕâ¸öForm´°ÌåÖзÅÁËÈý¸öTweblabel ¿Ø¼þ£¬Äã²»Óñàдһ¾ä³ÌÐò£¬Ö»ÊǼòµ¥µØ°ÑËüÃÇÍϷŵ½Form ÉÏ£¬¸ÄÒ»ÏÂÍøÒ³µÄµØÖ·£¬¾Í¿ÉÒÔÔËÐÐÁË¡£µ±¹â±êÒÆ¶¯µ½ÎÄ×ÖÉÏʱ£¬¹â±ê¾Í»á×Ô¶¯±ä³ÉÊÖÐΣ¬ÓÃÊó±êÇáÇáµØµã»÷һϣ¬ä¯ÀÀÆ÷¾Í»áÆô¶¯£¬Ëü½«°ÑÄã´øµ½ÄãÏëÈ¥µÄµØ·½¡£½ÓÏÂÀ´½«Òýµ¼ÄãÒ»²½Ò»²½µØÑ§Ï°£¬Ê¹Äã²»µ«ÒªÁ˽âÕâ¸öÆæÃîµÄTweblabel¿Ø¼þ£¬¶øÇÒҪѧ»áÈçºÎÓÃDELPHI½øÐÐ×îÆæÃîµÄÉè¼Æ¼´¿Ø¼þ±à³Ì¡£

¡¡¡¡Æô¶¯DELPHI 3£¨»òÕßDELPHI 4£©£¬²Ëµ¥ÉÏÓÐÒ»¸öComponent£¬ÓÃÊó±êµ¥»÷һϣ¬Ñ¡ÔñNew Component¾Í»áµ¯³öÒ»¸ö´°¿Ú¡£Óм¸Ñù¶«Î÷ÐèÒªÌîд£¬ÏÈÀ´½âÊÍһϡ£
¡¡¡¡ Ancestor type£º±íʾ±»¼Ì³ÐµÄ¶ÔÏó£¬ÊǸöÏÂÀ­¿ò£¬Ñ¡TLabel¡£
¡¡¡¡ Class Name£º±íʾд´½¨µÄÀàµÄÃû×Ö£¬È¡ÃûΪTweblabel¡£
¡¡¡¡ Palette Page£º±íʾ°ÑTweblabel·Åµ½¿Ø¼þÃæ°åÉϵÄÄĸöÀ¸Î»ÉÏ£¬Ñ¡È±Ê¡Sample£¬Ò²¿ÉÒÔÑ¡±ðµÄ£¬»òÕ߸ɴàÈ¡¸öÐÂÀ¸Î»Ãû×Ö¡£
¡¡¡¡ Unit file name£ºÑ¡È±Ê¡¡£
¡¡¡¡ Search path£ºÑ¡È±Ê¡¡£

¡¡¡¡È»ºó°´¡°Create Unit¡±°´Å¥¡£
¡¡ DELPHIΪÎÒÃÇ´´½¨ÁËÕâ¸öµ¥Ôª£¬²¢½¨ÆðÁ˹Ǽܡ£ÏÂÃæ¾ÍÊÇÓÃDELPHI±àдµÄ´úÂë¡£

¡¡¡¡unit weblabel;

¡¡¡¡interface
¡¡¡¡uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,StdCtrls;

¡¡¡¡type
¡¡¡¡ Tweblabel = class(TLabel)
¡¡¡¡ private
¡¡¡¡ { Private declarations }
¡¡¡¡ protected
¡¡¡¡ { Protected declarations }
¡¡¡¡ public
¡¡¡¡ { Public declarations }
¡¡¡¡ published
¡¡¡¡ { Published declarations }
¡¡¡¡ end;

¡¡¡¡procedure Register;

¡¡¡¡implementation

¡¡¡¡procedure Register;
¡¡¡¡begin
¡¡¡¡ RegisterComponents(Samples, [Tweblabel]);
¡¡¡¡end;

¡¡¡¡end.

¡¡¡¡DELPHIµÄUnit·ÖΪÁ½¸ö²¿·Ö£¬Ò»¸öÊÇinterface£¨½çÃæ£©£¬ÁíÒ»¸öÊÇimplementation£¨ÊµÏÖ£©¡£²¢ÇÒÀàµÄ¶¨Òå·Öprivate¡¢protected¡¢public¡¢published¼¸¸ö£¬Ç°ÃæÈý¸öÊÇÀà¹ÌÓеģ¬publishedÔòÊǿؼþÌØÓеģ ÖеıäÁ¿¿ÉÒÔÏÔʾÔÚDELPHIµÄ¿Ø¼þ±à¼­Æ÷Àï¡£

¡¡¡¡ÓÐÁËDELPHI±àдµÄ¿Ø¼þµÄ¹Ç¼ÜÖ®ºó£¬ÓÖ¸ÃÈçºÎÌí¼Ó´úÂëÄØ£¿ÎÒÃÇÐèÒª×öÒÔϼ¸¼þÊÂÇ飺
¡¡¡¡1£®ÐèÒªÒ»¸ö±äÁ¿´æ·ÅInternetÖ÷Ò³µÄµØÖ·£»
¡¡¡¡2£®ÐèÒªÒ»¸öº¯ÊýÀ´Íê³Éµ÷ÓÃä¯ÀÀÆ÷·ÃÎÊInternetÖ÷Ò³£»
¡¡¡¡3£®ÐèÒª³õʼ»¯Õâ¸öTweblabel£¬±ÈÈç×ÖÌå¡¢ÑÕÉ«¡¢·ç¸ñʹËü¸üÏñÒ»¸öÁ´½Ó£»
¡¡¡¡4£®µ±Êó±êÔÚTweblabelÉϵ¥»÷ʱ£¬ä¯ÀÀÆ÷¾Í»á±»Æô¶¯¡£

¡¡¡¡¾ßÌå×÷·¨ÈçÏ£º
¡¡¡¡1£®¶¨Òå±äÁ¿
¡¡¡¡ private
¡¡¡¡ { Private declarations }
¡¡¡¡//¶¨ÒåÒ»¸ö±äÁ¿´æ·ÅHTTPÖ÷Ò³µÄµØÖ·
¡¡¡¡Fhttpaddr:string;

¡¡¡¡ //ΪÁËʹ¿Ø¼þ±à¼­Æ÷Äܹ»ÐÞ¸ÄËü£¬Ôò¼ÓÈ룺
¡¡¡¡ published
¡¡¡¡ { Published declarations }
¡¡¡¡ property CHttpaddr: string read Fhttpaddr write Fhttpaddr;
¡¡¡¡ //½«±äÁ¿Êä³öµ½¿Ø¼þ±à¼­Æ÷ÖУ¬Ãû³ÆÓ¦¸ÃΪHTTPADDR£¬Ç°Ãæ¼ÓCÊÇΪÁË·½±ã£¬
¡¡¡¡ //Ëü½«Ö±½ÓÅÅÁÐÔÚCaptionµÄÏÂÃæ£¬·½±ãÐ޸ġ£

¡¡¡¡2£®µ÷ÓÃä¯ÀÀÆ÷·ÃÎÊINTERNETÖ÷Ò³º¯Êý
¡¡¡¡ function ShellExecute(hWnd: HWND; Operation, FileName, Parameters, Directory: PChar; ShowCmd: Integer): HINST; stdcall;
¡¡¡¡ ²ÎÊý¶¨Ò壺
¡¡¡¡ hWnd: ¸¸´°¿Ú¾ä±ú
¡¡¡¡ Operation: ²Ù×÷ģʽ open »ò print
¡¡¡¡ FileName: ÎļþÃûÖ¸Õë
¡¡¡¡ Parameter: ´«µÝ¸øÖ´ÐÐÎļþµÄ²ÎÊý
¡¡¡¡ Directory: ȱʡĿ¼
¡¡¡¡ ShowCmd: ³ÌÐòÆô¶¯ºóµÄ״̬:£¨1£©SW_SHOWNORMAL Õý³£ £¨2£©SW_MINIMIZE ×îС £¨3£©SW_MAXIMIZE ×î´ó

¡¡¡¡ ²»¿¼ÂÇ´íÎóÅжϣ¬´ò¿ªÒ»¸öWEBÒ³ÃæµÄÀý×Ó£º
¡¡¡¡ ShellExecute(handle, open, http://www.microsfto.com, nil, nil, SW_SHOWNORMAL);

¡¡¡¡º¯ÊýShellExecute°üº¬ÔÚµ¥ÔªShellAPIÖС£ÎªÁË´¦Àí¸÷ÖÖÇé¿ö£¬ÎÒÃǶ¨ÒåÁËÒ»¸ö¹ý³Ì¡£
¡¡¡¡ public
¡¡¡¡ procedure ExploreWeb(handle:HWND ; page:PChar);

¡¡¡¡ ¾ßÌå´úÂëʹÓÃRobert VivretteÏÈÉú±àдµÄ³ÌÐòƬ¶Î¡£
¡¡¡¡procedure Tweblabel.ExploreWeb(handle:HWND ; page:PChar);
¡¡ var
¡¡¡¡ Returnvalue : integer; //ʵ¼Êµ÷ÓÃWEBÒ³Ãæ
¡¡¡¡begin
¡¡¡¡ ReturnValue := ShellExecute(handle, open, page, nil, nil, SW_SHOWNORMAL);
¡¡¡¡ if ReturnValue $#@60;= 32 then
¡¡¡¡ case Returnvalue of
¡¡¡¡ 0 :
MessageBox(handle,´íÎó£ºÄÚ´æÒç³ö!,WEBÒ³Ãæ³ö´íÐÅÏ¢,0);
¡¡¡¡ ERROR_FILE_NOT_FOUND:
MessageBox(handle,´íÎó£ºÎļþδÕÒµ½!,WEBÒ³Ãæ³ö´íÐÅÏ¢,0);
¡¡ ¡¡ ERROR_PATH_NOT_FOUND:
MessageBox(handle,´íÎó£ºÄ¿Â¼´íÎó!,WEBÒ³Ãæ³ö´íÐÅÏ¢,0);
¡¡¡¡ ERROR_BAD_FORMAT :
MessageBox(handle,´íÎó£ºEXEÎļþ¸ñʽ´íÎó!,WEBÒ³Ãæ³ö´íÐÅÏ¢,0);
¡¡¡¡ // All other errors . See help for more ReturnValues of ShellExecute
¡¡¡¡else
¡¡MessageBox(handle,PChar(´íÎóÐÅÏ¢[:+IntToStr(Returnvalue)+]),WEBÒ³Ãæ³ö´íÐÅÏ¢,0)
¡¡¡¡ end
¡¡¡¡end;

¡¡¡¡3£®ÎÒÃÇÖªµÀ£¬±ØÐëÖØÔØCreateº¯Êý²ÅÄܼÓÈëÎÒÃǵijõʼ»¯´úÂë¡£
¡¡¡¡ public
¡¡¡¡ { Public declarations }
¡¡¡¡ constructor Create(AOwner: TComponent); override;

¡¡¡¡ ʵÏÖ²¿·Ö£º
¡¡¡¡ constructor Tweblabel.Create(AOwner: TComponent);
¡¡¡¡ begin
¡¡¡¡//µ÷Óø¸±²µÄCREATE
¡¡¡¡inherited Create(Aowner);

¡¡¡¡ //ÒÔÏÂÊÇ×Ô¼ºµÄ³õʼ»¯´úÂë
¡¡//½«¹â±êÉèÖÃΪÊÖÐÍ
¡¡¡¡Cursor:= crHandPoint;

¡¡¡¡//Áî±êÌâ=Ö÷Ò³µØÖ·
¡¡¡¡chttpaddr:=http://www.nbip.net/michaeljia;
¡¡¡¡Caption:=chttpaddr;

¡¡¡¡//×ÖÌåȱʡ´óСΪ10
¡¡¡¡font.size:=10;
¡¡¡¡font.color:=clblue; ¡¡¡¡//×ÖÌåȱʡÑÕɫΪÀ¼É«
¡¡¡¡font.style:=[fsUnderline]; //×ÖÌåȱʡ·ç¸ñΪÏ»®Ïß
¡¡¡¡ end;

¡¡¡¡4£®ÒªÏëͨ¹ýµ¥»÷TweblabelÀ´Æô¶¯ä¯ÀÀÆ÷£¬±ØÐëÖØÔØCLICKº¯Êý£¬´úÂëÈçÏ¡£
¡¡¡¡ protected
¡¡¡¡ { Protected declarations }
¡¡¡¡ procedure click; override;

¡¡¡¡ ʵÏÖ²¿·Ö£º
¡¡¡¡ procedure Tweblabel.click;
¡¡¡¡ begin
¡¡¡¡inherited Click; //µ÷Óø¸±²µÄClickº¯Êý
¡¡¡¡ ¡¡ExploreWeb(parent.handle,pchar(chttpaddr)); //µ÷ÓÃWEBÒ³Ãæ
end;



¡¾·¢±íÆÀÂÛ¡¿¡¾¹Ø±Õ´°¿Ú¡¿


.¸ÄÔìHintÊä³ö·½Ê½
.DelphiÓ¦ÓóÌÐòÖÐÖйúʽ±¨±íµÄÖÆ×÷