Delphi ÀàÓë¶ÔÏóÄÚ´æ½á¹¹Ç³Îö(ÏÂ)
¶ÔÏó¿Õ¼ä
ÄÚ´æ½á¹¹
¶ÔÏóµÄÄÚ´æ½á¹¹Êǹ̶¨µÄ£¬¶ÔÏó´´½¨Íê³Éºó¾ÍÎÞ·¨¸Ä±ä¡£ËüÖ÷Òª´æ´¢Á˶ÔÏóÖ±ÊôÀàµÄµØÖ·£¨µÈ¼ÛÓÚÀàµÄVMT£©£¬¶ÔÏó±¾ÉíµÄ³ÉÔ±Êý¾Ý£¬¶ÔÏóµÄ½Ó¿Ú·½·¨±íµØÖ·¡£½á¹¹ÈçͼËùʾ£º
˵Ã÷£ºÈôÀàδÉùÃ÷½Ó¿Ú£¬Ôò¶ÔÏó¿Õ¼ä²»´æ´¢½Ó¿Ú·½·¨±íµØÖ·¡£
Àà¿Õ¼äÓë¶ÔÏó¿Õ¼äµÄ¹ØÏµ
Àà¿Õ¼äÓë¶ÔÏó¿Õ¼ä£º
ʾÀý£º·ÖÎö¶ÔÏóµÄ»ù±¾ÄÚ´æ½á¹¹
´úÂ룺
type
IMyInterface = interface(IUnknown)
['{06F3EA2C-E9C2-410E-97BE-D88ADF775EC3}']
procedure InterfaceMethod1;
end;
TMyObject = class(TInterfacedObject,IMyInterface)
private
FField1: Integer;
FField2: Boolean;
protected
procedure InterfaceMethod1;
public
procedure DynamicMethod1; dynamic;
procedure DynamicMethod2; dynamic;
procedure VirtualMethod1; virtual;
procedure VirtualMethod2; virtual;
end;
TMyObject2 = class(TMyObject)
private
FField3: Integer;
public
procedure DynamicMethod1; override;
procedure VirtualMethod1; override;
end;
ÄÚ´æ½á¹¹£º
TInterfacedObjectÄÚ´æ½á¹¹Èçͼ£º
TMyObjectÄÚ´æ½á¹¹Èçͼ£º
TmyObject2ÄÚ´æ½á¹¹Èçͼ£º
Èçͼ£¬TMyObject2µÄVirtualMethod1·½·¨¸²¸ÇÁ˸¸ÀàµÄVirtualMethod1·½·¨£¬¹ÊÐé·½·¨±íÖÐVirtualMethod1µÄÖ¸ÕëÖ¸ÏòÁËTMyObject2µÄVirtualMethod1·½·¨¡£TMyObject2µÄDynamicMethod1·½·¨¸²¸ÇÁ˸¸ÀàµÄDynamicMethod1·½·¨£¬ÓÉÓÚ¶¯Ì¬·½·¨±íÖ»±£´æµ±Ç°ÀàµÄ¶¯Ì¬·½·¨±í£¬¹Ê±íÖÐÖ»ÓÐÒ»¸öDynamicM
Ïà¹ØÎĵµ£º
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Button ......
µÚÒ»ÖÖ·½·¨,ʹÓÃSelectDirectory º¯Êý ,ÔÚShellApiÖÐ
procedure TForm2.BtSelectPathClick(Sender: TObject);
var
strCaption,strDirectory:String;
wstrRoot:WideString;
begin
strCaption:='ÕâÊÇä¯ÀÀÎļþ¼ÐµÄ˵Ã÷ÎÄ×Ö£¬¿ÉÒÔ¸ù¾ÝÐèÒª½ ......
Ò»¡¢Dll½¨Á¢
£¨Ò»£©DLLÏîÄ¿µÄ½¨Á¢
library mydll;
uses
base in 'base.pas';
exports
Triple name 'Tr';
{$R *.res}
begin
end.
£¨¶þ£©º¯Êýµ¥Ôª
unit base;
interface
uses windows;
function Triple(N:integer):integer;stdcall;
  ......
//ÉùÃ÷:
GetWindowText(
hWnd: HWND; {´°¿Ú¾ä±ú}
lpString: PChar; {½ÓÊÕÎı¾µÄ»º³åÇøµÄÖ¸Õë}
nMaxCount: Integer {Ö¸¶¨»º³åÇø´óС, ÆäÖаüº¬NULL×Ö·û; Èç¹ûÎı¾³¬³ö£¬»á±»±»½Ø¶Ï}
): Integer; {·µ»Ø×Ö·û¸öÊý, ²»°üÀ¨ÖжϵĿÕ×Ö·û; Èç¹û±êÌâΪ¿Õ»ò¾ä±úÎÞЧ, Ôò·µ»ØÁã}
//¾ÙÀý:
var
arr: ......
1.ÒòΪKeyPreviewĬÈÏÊÇ False;ÎÒÃÇÕâÀïÐèÒªÏìÓ¦¼üÅÌʼþµÄ»°£¬ÐèÒª½«ÆäÐÞ¸ÄΪTrue£»
ËùÒÔKeyPreview:=True; Õâ¶ÔһЩ¿ì½Ý¼ü»áÓÐÓá£
ÔÚ´°ÌåÊôÐÔÉÏÐÞ¸ÄKeyPreview := True;
2.ÔÚ´°ÌåµÄFormKeyDownº¯ÊýÀïд£º
if KeyPreview then
Form½«ÏÈÏìÓ¦¼üÅÌʼþ£¨ÔÚTEditµÈ¿Ø¼þ֮ǰ£©
else
³ý·ÇFo ......