lazarus中不同模式下自定义函数的调用方式区别

来源:互联网 发布:雀巢网络授权编号查询 编辑:程序博客网 时间:2024/06/05 18:27

    1、在{$mode objfpc}{$H+}   方式下自定函数:

private

......

    // 显示定制crud界面
    procedure showCrudForm(Sender: TObject);   

......


调用:

...

crudItem.OnClick := @showCrudForm;    

...


    2、在 {$mode delphi}   方式下自定函数:

private

......

    // 显示定制crud界面
    procedure showCrudForm(Sender: TObject);   

......


调用:

...

crudItem.OnClick := showCrudForm;  

......


============================================


unit dy224;//{$MODE Delphi}{$mode objfpc}{$H+}interfaceuses  LCLIntf, LCLType, LMessages, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls, Buttons, ExtCtrls;type  TForm1 = class(TForm)    procedure FormDestroy(Sender: TObject);     procedure ShowHandlerCount(Sender: TObject; Msg: Cardinal);     procedure FormCreate(Sender: TObject);   private     HandlerCount: integer;     function GetMsgName(aMsg: integer): string;   end;var  Form1: TForm1;implementation{$R *.lfm}{ TForm1 }procedure TForm1.FormDestroy(Sender: TObject);begin  Application.RemoveOnUserInputHandler(@ShowHandlerCount);end;procedure TForm1.ShowHandlerCount(Sender: TObject; Msg: Cardinal);var  nm: string;begin  nm:=GetMsgName(msg);  Caption:=Format('Count: %d, Msg: %d (%s)',[HandlerCount, Msg, nm]);  Inc(HandlerCount);end;procedure TForm1.FormCreate(Sender: TObject);begin  Application.AddOnUserInputHandler(@ShowHandlerCount);end;function TForm1.GetMsgName(aMsg: integer): string;begin  case aMsg of    // incomplete listing ...    0: Result:='WM_THEMECHANGED';  1: Result:='WM_CREATE';  2: Result:='WM_NCMOUSELEAVE';  3: Result:='WM_MOVE';  5: Result:='WM_SIZE';  6: Result:='WM_ACTIVATE';  7: Result:='WM_SETFOCUS';  8: Result:='WM_KILLFOCUS';  10: Result:='WM_ENABLE';  11: Result:='WM_SETREDRAW';  12: Result:='WM_SETTEXT';  13: Result:='WM_GETTEXT';  14: Result:='WM_GETTEXTLENGTH';  15: Result:='WM_PAINT';  16: Result:='WM_CLOSE';  17: Result:='WM_QUERYENDSESSION';  18: Result:='WM_QUIT';  19: Result:='WM_QUERYOPEN';  20: Result:='WM_ERASEBKGND';  21: Result:='WM_SYSCOLORCHANGE';  22: Result:='WM_ENDSESSION';  24: Result:='WM_SHOWWINDOW';  26: Result:='WM_WININICHANGE';  27: Result:='WM_DEVMODECHANGE';  28: Result:='WM_ACTIVATEAPP';  29: Result:='WM_FONTCHANGE';  30: Result:='WM_TIMECHANGE';  31: Result:='WM_CANCELMODE';  32: Result:='WM_SETCURSOR';  33: Result:='WM_MOUSEACTIVATE';  34: Result:='WM_CHILDACTIVATE';  35: Result:='WM_QUEUESYNC';  36: Result:='WM_GETMINMAXINFO';  38: Result:='WM_PAINTICON';  39: Result:='WM_ICONERASEBKGND';  40: Result:='WM_NEXTDLGCTL';  42: Result:='WM_SPOOLERSTATUS';  43: Result:='WM_DRAWITEM';  44: Result:='WM_MEASUREITEM';  45: Result:='WM_DELETEITEM';  46: Result:='WM_VKEYTOITEM';  47: Result:='WM_CHARTOITEM';  48: Result:='WM_SETFONT';  49: Result:='WM_GETFONT';  50: Result:='WM_SETHOTKEY';  51: Result:='WM_GETHOTKEY';  55: Result:='WM_QUERYDRAGICON';  57: Result:='WM_COMPAREITEM';  65: Result:='WM_COMPACTING';  70: Result:='WM_WINDOWPOSCHANGING';  71: Result:='WM_WINDOWPOSCHANGED';  72: Result:='WM_POWER';  74: Result:='WM_COPYDATA';  75: Result:='WM_CANCELJOURNAL';  78: Result:='WM_NOTIFY';  80: Result:='WM_INPUTLANGCHANGEREQUEST';  81: Result:='WM_INPUTLANGCHANGE';  82: Result:='WM_TCARD';  83: Result:='WM_HELP';  84: Result:='WM_USERCHANGED';  85: Result:='WM_NOTIFYFORMAT';  123: Result:='WM_CONTEXTMENU';  124: Result:='WM_STYLECHANGING';  125: Result:='WM_STYLECHANGED';  126: Result:='WM_DISPLAYCHANGE';  127: Result:='WM_GETICON';  128: Result:='WM_SETICON';  129: Result:='WM_NCCREATE';  130: Result:='WM_NCDESTROY';  131: Result:='WM_NCCALCSIZE';  132: Result:='WM_NCHITTEST';  133: Result:='WM_NCPAINT';  134: Result:='WM_NCACTIVATE';  135: Result:='WM_GETDLGCODE';  160: Result:='WM_NCMOUSEMOVE';  161: Result:='WM_NCLBUTTONDOWN';  162: Result:='WM_NCLBUTTONUP';  163: Result:='WM_NCLBUTTONDBLCLK';  164: Result:='WM_NCRBUTTONDOWN';  165: Result:='WM_NCRBUTTONUP';  166: Result:='WM_NCRBUTTONDBLCLK';  167: Result:='WM_NCMBUTTONDOWN';  168: Result:='WM_NCMBUTTONUP';  169: Result:='WM_NCMBUTTONDBLCLK';  256: Result:='WM_KEYDOWN';  257: Result:='WM_KEYUP';  258: Result:='WM_CHAR';  259: Result:='WM_DEADCHAR';  260: Result:='WM_SYSKEYDOWN';  261: Result:='WM_SYSKEYUP';  262: Result:='WM_SYSCHAR';  263: Result:='WM_SYSDEADCHAR';  265: Result:='WM_UNICHAR';  269: Result:='WM_IME_STARTCOMPOSITION';  270: Result:='WM_IME_ENDCOMPOSITION';  271: Result:='WM_IME_COMPOSITION';  272: Result:='WM_INITDIALOG';  273: Result:='WM_COMMAND';  274: Result:='WM_SYSCOMMAND';  275: Result:='WM_TIMER';  276: Result:='WM_HSCROLL';  277: Result:='WM_VSCROLL';  278: Result:='WM_INITMENU';  279: Result:='WM_INITMENUPOPUP';  281: Result:='WM_GESTURE';  287: Result:='WM_MENUSELECT';  288: Result:='WM_MENUCHAR';  289: Result:='WM_ENTERIDLE';  290: Result:='WM_MENURBUTTONUP';  291: Result:='WM_MENUDRAG     ';  292: Result:='WM_MENUGETOBJECT';  293: Result:='WM_UNINITMENUPOPUP';  294: Result:='WM_MENUCOMMAND';  306: Result:='WM_CTLCOLORMSGBOX';  307: Result:='WM_CTLCOLOREDIT';  308: Result:='WM_CTLCOLORLISTBOX';  309: Result:='WM_CTLCOLORBTN';  310: Result:='WM_CTLCOLORDLG';  311: Result:='WM_CTLCOLORSCROLLBAR';  312: Result:='WM_CTLCOLORSTATIC';  512: Result:='WM_MOUSEMOVE';  513: Result:='WM_LBUTTONDOWN';  514: Result:='WM_LBUTTONUP';  515: Result:='WM_LBUTTONDBLCLK';  516: Result:='WM_RBUTTONDOWN';  517: Result:='WM_RBUTTONUP';  518: Result:='WM_RBUTTONDBLCLK';  519: Result:='WM_MBUTTONDOWN';  520: Result:='WM_MBUTTONUP';  521: Result:='WM_MBUTTONDBLCLK';  522: Result:='WM_MOUSEWHEEL';  528: Result:='WM_PARENTNOTIFY';  529: Result:='WM_ENTERMENULOOP';  530: Result:='WM_EXITMENULOOP';  532: Result:='WM_SIZING';  533: Result:='WM_CAPTURECHANGED';  534: Result:='WM_MOVING';  536: Result:='WM_POWERBROADCAST';  537: Result:='WM_DEVICECHANGE';  544: Result:='WM_MDICREATE';  545: Result:='WM_MDIDESTROY';  546: Result:='WM_MDIACTIVATE';  547: Result:='WM_MDIRESTORE';  548: Result:='WM_MDINEXT';  549: Result:='WM_MDIMAXIMIZE';  550: Result:='WM_MDITILE';  551: Result:='WM_MDICASCADE';  552: Result:='WM_MDIICONARRANGE';  553: Result:='WM_MDIGETACTIVE';  560: Result:='WM_MDISETMENU';  561: Result:='WM_ENTERSIZEMOVE';  562: Result:='WM_EXITSIZEMOVE';  563: Result:='WM_DROPFILES';  564: Result:='WM_MDIREFRESHMENU';  641: Result:='WM_IME_SETCONTEXT';  642: Result:='WM_IME_NOTIFY';  643: Result:='WM_IME_CONTROL';  644: Result:='WM_IME_COMPOSITIONFULL';  645: Result:='WM_IME_SELECT';  646: Result:='WM_IME_CHAR';  648: Result:='WM_IME_REQUEST';  656: Result:='WM_IME_KEYDOWN';  657: Result:='WM_IME_KEYUP';  673: Result:='WM_MOUSEHOVER';  675: Result:='WM_MOUSELEAVE';  768: Result:='WM_CUT';  769: Result:='WM_COPY';  770: Result:='WM_PASTE';  771: Result:='WM_CLEAR';  772: Result:='WM_UNDO';  773: Result:='WM_RENDERFORMAT';  774: Result:='WM_RENDERALLFORMATS';  775: Result:='WM_DESTROYCLIPBOARD';  776: Result:='WM_DRAWCLIPBOARD';  777: Result:='WM_PAINTCLIPBOARD';  778: Result:='WM_VSCROLLCLIPBOARD';  779: Result:='WM_SIZECLIPBOARD';  780: Result:='WM_ASKCBFORMATNAME';  781: Result:='WM_CHANGECBCHAIN';  782: Result:='WM_HSCROLLCLIPBOARD';  783: Result:='WM_QUERYNEWPALETTE';  784: Result:='WM_PALETTEISCHANGING';  785: Result:='WM_PALETTECHANGED';  786: Result:='WM_HOTKEY';  791: Result:='WM_PRINT';  792: Result:='WM_PRINTCLIENT';  793: Result:='WM_APPCOMMAND ';  816: Result:='WM_MEASURECONTROL';  817: Result:='WM_GETACTIONTEXT ';  896: Result:='WM_PENWINFIRST';  911: Result:='WM_PENWINLAST';  1024: Result:='WM_USER';  1025: Result:='WM_PSD_FULLPAGERECT';  1026: Result:='WM_PSD_MINMARGINRECT';  1027: Result:='WM_PSD_MARGINRECT';  1028: Result:='WM_PSD_GREEKTEXTRECT';  1029: Result:='WM_PSD_ENVSTAMPRECT';  1030: Result:='WM_PSD_YAFULLPAGERECT';  1125: Result:='WM_CHOOSEFONT_SETLOGFONT';  1126: Result:='WM_CHOOSEFONT_SETFLAGS';  32768: Result:='WM_APP';    else Result:=Format('Unknown message 0x%x (%d)', [aMsg, aMsg]);  end;  Result:=Trim(Result);end;end.


0 0
原创粉丝点击