delphi virtual dynamic
dynamic¾ÍÊÇËüÊǶ¯Ì¬·½·¨£¬Ã»Óо²Ì¬µØÖ·£¬ËùÒÔËÙ¶ÈÂýÒ»µã
virtualÊÇÐé·½·¨£¬Èç¹ûÔÚ»ùÀàÖв»ÉùÃ÷³ÉÐé·½·¨µÄ»°£¬¼Ì³Ðºó£¬¸Ã·½·¨»áÌáʾһ¾¯¸æÐÅÏ¢£¬°Ñ»ùÀàÖз½·¨ÆÁ±ÎµôÁË
---------------------------------------------------------------
¶¯Ì¬£¨Dynamic£©ºÍÐéÄ⣨Virtual£©ºó¶¼¿ÉÒÔʹÓÃOverride¹Ø¼ü×ÖÔÚÅÉÉúÀàÖжԶÔÓ¦·½·¨½øÐи²¸Ç´Ó¶øÊµÏÖ¶à̬......
ÐéÄâ·½·¨ºÍ¶¯Ì¬·½·¨ÔÚÓïÒåÉÏ¿ÉÒÔ˵Êǵȼ۵ģ¬ËûÃÇΨһµÄÇø±ðÔÚÓÚ¶Ô·½·¨µ÷ÓòßÂÔµÄÄÚ²¿ÊµÏÖÉÏ£ºÐéÄâ·½·¨´ÓËÙ¶È×îÓÅ»¯µÄ½Ç¶ÈʵÏÖ´úÂëÓÅ»¯£¬¶ø¶¯Ì¬·½·¨ÔòÊÇ´Ó¿Õ¼ä×îÓŵĽǶÈʵÏÖ´úÂëÓÅ»¯......
±»¸²¸ÇµÄ¶¯Ì¬·½·¨ÔÚÅÉÉúÀàµÄVMTÖв»ÔÙ³öÏÖ........ËùÒÔ½ÚÊ¡¿Õ¼ä........µ«²éѯËÙ¶ÈÂý
±»¸²¸ÇµÄÐéÄâ·½·¨ÔÚÅÂÉúÀàµÄVMTÖÐÔٴγöÏÖ........ËùÒÔ²éѯËÙ¶È¿ì......µ«À˷ѿռä
---------------------------------------------------------------
ÐéÄâ·½·¨ºÍ¶¯Ì¬·½·¨
Ҫʹһ¸ö·½·¨³ÉΪÐéÄâµÄ»ò¶¯Ì¬µÄ£¬ÐèÒªÔÚÆäÉùÃ÷ÖаüÀ¨Ö¸Ê¾×Övirtual»òdynamic¡£ÐéÄâ·½·¨ºÍ¶¯Ì¬·½·¨²»Í¬ÓÚ¾²Ì¬·½·¨£¬ËüÃÇ¿ÉÒÔÔÚÆäºóÒáÀàÖб»¸²¸Ç£¨overridden£©¡£µ±Ò»¸ö¸²¸Ç·½·¨±»µ÷ÓÃʱ£¬·½·¨µ÷ÓÃÖÐʹÓõÄÀà»ò¶ÔÏóµÄʵ¼Ê£¨ÔËÐÐʱ£©ÀàÐ;ö¶¨ÁËÄÄÒ»¸öʵÏÖÊÇÓÐЧµÄ£¬¶ø·Ç±äÁ¿ÉùÃ÷µÄÀàÐ;ö¶¨¡£
Òª¸²¸ÇÒ»¸ö·½·¨£¬ÐèÒªÔÚÔÙÉùÃ÷ÖÐʹÓÃָʾ×Öoverride¡£Ò»¸öoverrideÉùÃ÷±ØÐèÓëÆä׿ÏÈÉùÃ÷ÔÚ²ÎÊý˳ÐòºÍÀàÐÍÒÔ¼°½á¹û£¨Èç¹ûÓУ©µÈ¸÷·½ÃæÆ¥Åä¡£
ÏÂÃæµÄÀý×ÓÖУ¬TFigureÖÐÉùÃ÷µÄDraw·½·¨ÔÚÁ½¸öºóÒáÀàÖж¼±»¸²¸Ç¡£
type
TFigure = class
procedure Draw; virtual;
end;
TRectangle = class(TFigure)
procedure Draw; override;
end;
TEllipse = class(TFigure)
procedure Draw; override;
end;
¶ÔÓÚÉÏÃæ¸ø³öµÄÉùÃ÷£¬ÏÂÃæµÄ´úÂë¾ÙÀý˵Ã÷ÁËÔÚÔËÐÐʱͨ¹ýÒ»¸ö±äÁ¿µ÷ÓÃÐéÄâ·½·¨Ê±£¬ÆäÀàÐͱ仯µÄЧ¹û¡£
var
Figure: TFigure;
begin
Figure := TRectangle.Create;
Figure.Draw; //µ÷ÓõÄÊÇTRectangle.Draw
Figure.Destroy;
Figure := TEllipse.Create;
Figure.Draw; //µ÷ÓõÄÊÇTEllipse.Draw
Figure.Destroy;
end;
Ö»ÓÐÐéÄâ·½·¨ºÍ¶¯Ì¬·½·¨¿ÉÒÔ±»¸²¸Ç¡£È»¶ø£¬ËùÓеķ½·¨¶¼¿ÉÒÔ±»ÖØÔØ£¨overloaded£©£¬¼ûÖØÔØ·½·¨¡£
ÐéÄâºÍ¶¯Ì
Ïà¹ØÎĵµ£º
Îҵİ취£¬Ôö¼ÓÒ»¸ötimer ÉèÖüä¸ô100ms£¬Í¨¹ýtimerµÄʹÄÜ·ñ£¬¿ØÖƱ¨¾¯ÉùÒô¿ª¹Ø
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Windows.Beep(1200+i_f,10+i_f);
if i_f<2000 then
begin
inc(i_f);
end
end;
== ......
Ïà¶ÔÓõÚÈý·½¿Ø¼þ£¬CDO·¢ËÍÓʼþ»¹ÊǺܼò½à·½±ãµÄ
×¢£ºCDONTSΪCDOµÄ×Ó¼¯£¬½öÖ§³ÖWinNT/Win2K£¬WinXPÒÔÉÏÇëÓÃCDO;
µ¥ÔªÒýÓÃComObj;
procedure TForm1.Button1Click(Sender: TObject);
var
VCDOMessage:oleVariant;
begin
vCDOMessage:=CreateOleObject('CDO.Message');
vcdomessage.from:='MR.F'+'< ......
×î½üÃæÊÔÁËÒ»¼ÒÆóÒµ,ÏÂÃæÓÐÒ»µÀ´ÓÀ´Ã»ÓÐÏë¹ýµÄÎÊÌâ,µ±Ê±ÓÐ˼·,²»¹ýд²»³öÀ´.»ØÀ´ºó,µ÷ÊÔÁËÒ»ÏÂ,·¢ÏÖ»¹ÊÇÓÐÄѶȵÄ,дÉÏÀ´¿´´ó¼ÒÊÇ·ñ»¹ÓиüÓÅ»¯µÄд·¨,»¶ÓÌÖÂÛ:
ÏÂÃæÊµÏÖ½«×Ö·û´®"10ad200d3" ÖеÄÊý×ֺϼÆ,10+200+3=213
var s1:string;
var i:integer;
var n1:integer;
var tem1: string;
var tem2:integer;
......
Windows ÏÂÒ»¸öµäÐ͵ÄÌØÕ÷¾ÍÊǶàÈÎÎñ£¬ÎÒÃÇ¿ÉÒÔͬʱ´ò¿ª¶à¸ö´°¿Ú½øÐвÙ×÷£¬Ò²¿ÉÒÔͬʱÔËÐгÌÐòµÄ¶à¸öʵÀý£¬±ÈÈç¿ÉÒÔ´ò¿ªÐí¶à¸ö×ÊÔ´¹ÜÀíÆ÷½øÐÐÎļþµÄÒÆ¶¯¸´ÖƲÙ×÷¡£µ«ÓÐʱ³öÓÚijÖÖ¿¼ÂÇ£¨±ÈÈ簲ȫÐÔ£©£¬ÎÒÃÇÒª×ö³öһЩÏÞÖÆ£¬ÈóÌÐòÖ»Äܹ»ÔËÐÐÒ»¸öʵÀý¡£ÔÚDelphi±à³ÌÖУ¬±ÊÕß×ܽá³öÁËÒÔϼ¸ÖÖ·½·¨£º
¡¡¡¡Ò»¡¢ ²éÕÒ´°¿Ú·¨
¡¡¡ ......
function ExpCalc(exp: string): string;
var
vScript: Variant;
begin
vScript := CreateOleObject('ScriptControl');
vScript.Language := 'VBScript';
Result := vScript.Eval(exp);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
s:=ExpCalc('100 *4.17/0.5*(55. ......