  rb_define_const(mPhi, 'TK_UNKNOWN', 1);
  rb_define_const(mPhi, 'TK_INTEGER', 3);
  rb_define_const(mPhi, 'TK_CHAR', 5);
  rb_define_const(mPhi, 'TK_ENUMERATION', 7);
  rb_define_const(mPhi, 'TK_FLOAT', 9);
  rb_define_const(mPhi, 'TK_STRING', 11);
  rb_define_const(mPhi, 'TK_SET', 13);
  rb_define_const(mPhi, 'TK_CLASS', 15);
  rb_define_const(mPhi, 'TK_METHOD', 17);
  rb_define_const(mPhi, 'TK_WCHAR', 19);
  rb_define_const(mPhi, 'TK_LSTRING', 21);
  rb_define_const(mPhi, 'TK_WSTRING', 23);
  rb_define_const(mPhi, 'TK_VARIANT', 25);
  rb_define_const(mPhi, 'TK_ARRAY', 27);
  rb_define_const(mPhi, 'TK_RECORD', 29);
  rb_define_const(mPhi, 'TK_INTERFACE', 31);
  rb_define_const(mPhi, 'TK_INT64', 33);
  rb_define_const(mPhi, 'TK_DYN_ARRAY', 35);
  rb_define_const(mPhi, 'OT_SBYTE', 1);
  rb_define_const(mPhi, 'OT_UBYTE', 3);
  rb_define_const(mPhi, 'OT_SWORD', 5);
  rb_define_const(mPhi, 'OT_UWORD', 7);
  rb_define_const(mPhi, 'OT_SLONG', 9);
  rb_define_const(mPhi, 'OT_ULONG', 11);
  rb_define_const(mPhi, 'FT_SINGLE', 1);
  rb_define_const(mPhi, 'FT_DOUBLE', 3);
  rb_define_const(mPhi, 'FT_EXTENDED', 5);
  rb_define_const(mPhi, 'FT_COMP', 7);
  rb_define_const(mPhi, 'FT_CURR', 9);
  rb_define_const(mPhi, 'MK_PROCEDURE', 1);
  rb_define_const(mPhi, 'MK_FUNCTION', 3);
  rb_define_const(mPhi, 'MK_CONSTRUCTOR', 5);
  rb_define_const(mPhi, 'MK_DESTRUCTOR', 7);
  rb_define_const(mPhi, 'MK_CLASS_PROCEDURE', 9);
  rb_define_const(mPhi, 'MK_CLASS_FUNCTION', 11);
  rb_define_const(mPhi, 'MK_SAFE_PROCEDURE', 13);
  rb_define_const(mPhi, 'MK_SAFE_FUNCTION', 15);
  rb_define_const(mPhi, 'PF_VAR', 1);
  rb_define_const(mPhi, 'PF_CONST', 3);
  rb_define_const(mPhi, 'PF_ARRAY', 5);
  rb_define_const(mPhi, 'PF_ADDRESS', 7);
  rb_define_const(mPhi, 'PF_REFERENCE', 9);
  rb_define_const(mPhi, 'PF_OUT', 11);
  rb_define_const(mPhi, 'AL_NONE', 1);
  rb_define_const(mPhi, 'AL_TOP', 3);
  rb_define_const(mPhi, 'AL_BOTTOM', 5);
  rb_define_const(mPhi, 'AL_LEFT', 7);
  rb_define_const(mPhi, 'AL_RIGHT', 9);
  rb_define_const(mPhi, 'AL_CLIENT', 11);
  rb_define_const(mPhi, 'AL_CUSTOM', 13);
  rb_define_const(mPhi, 'TA_LEFT_JUSTIFY', 1);
  rb_define_const(mPhi, 'TA_RIGHT_JUSTIFY', 3);
  rb_define_const(mPhi, 'TA_CENTER', 5);
  rb_define_const(mPhi, 'AK_LEFT', 1);
  rb_define_const(mPhi, 'AK_TOP', 3);
  rb_define_const(mPhi, 'AK_RIGHT', 5);
  rb_define_const(mPhi, 'AK_BOTTOM', 7);
  rb_define_const(mPhi, 'CA_NONE', 1);
  rb_define_const(mPhi, 'CA_HIDE', 3);
  rb_define_const(mPhi, 'CA_FREE', 5);
  rb_define_const(mPhi, 'CA_MINIMIZE', 7);
  rb_define_const(mPhi, 'DM_MANUAL', 1);
  rb_define_const(mPhi, 'DM_AUTOMATIC', 3);
  rb_define_const(mPhi, 'IM_DISABLE', 1);
  rb_define_const(mPhi, 'IM_CLOSE', 3);
  rb_define_const(mPhi, 'IM_OPEN', 5);
  rb_define_const(mPhi, 'IM_DONT_CARE', 7);
  rb_define_const(mPhi, 'IM_SALPHA', 9);
  rb_define_const(mPhi, 'IM_ALPHA', 11);
  rb_define_const(mPhi, 'IM_HIRA', 13);
  rb_define_const(mPhi, 'IM_SKATA', 15);
  rb_define_const(mPhi, 'IM_KATA', 17);
  rb_define_const(mPhi, 'IM_CHINESE', 19);
  rb_define_const(mPhi, 'IM_SHANGUEL', 21);
  rb_define_const(mPhi, 'IM_HANGUEL', 23);
  rb_define_const(mPhi, 'BS_NONE', 1);
  rb_define_const(mPhi, 'BS_SINGLE', 3);
  rb_define_const(mPhi, 'BS_SIZEABLE', 5);
  rb_define_const(mPhi, 'BS_DIALOG', 7);
  rb_define_const(mPhi, 'BS_TOOL_WINDOW', 9);
  rb_define_const(mPhi, 'BS_SIZE_TOOL_WIN', 11);
  rb_define_const(mPhi, 'SB_HORIZONTAL', 1);
  rb_define_const(mPhi, 'SB_VERTICAL', 3);
  rb_define_const(mPhi, 'MB_LEFT', 1);
  rb_define_const(mPhi, 'MB_RIGHT', 3);
  rb_define_const(mPhi, 'MB_MIDDLE', 5);
  rb_define_const(mPhi, 'BK_NONE', 1);
  rb_define_const(mPhi, 'BK_TILE', 3);
  rb_define_const(mPhi, 'BK_SOFT', 5);
  rb_define_const(mPhi, 'BK_FLAT', 7);
//  klass := cThread;
  klass := cBasicAction;
  rb_define_method(klass, 'name=', @Prop_set_string, 1);
  rb_define_method(klass, 'name', @Prop_get_string, 0);
  klass := cContainedAction;
  rb_define_method(klass, 'category=', @Prop_set_string, 1);
  rb_define_method(klass, 'category', @Prop_get_string, 0);
  klass := cAction;
  rb_define_method(klass, 'auto_check=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_check', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_check?', 'auto_check');
  rb_define_method(klass, 'caption=', @Prop_set_string, 1);
  rb_define_method(klass, 'caption', @Prop_get_string, 0);
  rb_define_method(klass, 'checked=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'checked', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'checked?', 'checked');
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'group_index=', @Prop_set_integer, 1);
  rb_define_method(klass, 'group_index', @Prop_get_integer, 0);
  rb_define_method(klass, 'help_context=', @Prop_set_integer, 1);
  rb_define_method(klass, 'help_context', @Prop_get_integer, 0);
  rb_define_method(klass, 'help_keyword=', @Prop_set_string, 1);
  rb_define_method(klass, 'help_keyword', @Prop_get_string, 0);
  rb_define_method(klass, 'help_type=', @Prop_set_integer, 1);
  rb_define_method(klass, 'help_type', @Prop_get_integer, 0);
  rb_define_method(klass, 'hint=', @Prop_set_string, 1);
  rb_define_method(klass, 'hint', @Prop_get_string, 0);
  rb_define_method(klass, 'image_index=', @Prop_set_integer, 1);
  rb_define_method(klass, 'image_index', @Prop_get_integer, 0);
  rb_define_method(klass, 'short_cut=', @Prop_set_integer, 1);
  rb_define_method(klass, 'short_cut', @Prop_get_integer, 0);
  rb_define_method(klass, 'secondary_short_cuts=', @Prop_set_object, 1);
  rb_define_method(klass, 'secondary_short_cuts', @Prop_get_object, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_execute=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_execute', @retnil, -1);
  rb_define_method(klass, 'on_hint=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_hint', @retnil, -1);
  rb_define_method(klass, 'on_update=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_update', @retnil, -1);
  klass := cActionList;
  rb_define_method(klass, 'name=', @Prop_set_string, 1);
  rb_define_method(klass, 'name', @Prop_get_string, 0);
  rb_define_method(klass, 'images=', @Prop_set_object, 1);
  rb_define_method(klass, 'images', @Prop_get_object, 0);
  rb_define_method(klass, 'state=', @Prop_set_integer, 1);
  rb_define_method(klass, 'state', @Prop_get_integer, 0);
  rb_define_method(klass, 'on_change=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_change', @retnil, -1);
  rb_define_method(klass, 'on_execute=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_execute', @retnil, -1);
  rb_define_method(klass, 'on_update=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_update', @retnil, -1);
  klass := cSizeConstraints;
  rb_define_method(klass, 'max_height=', @Prop_set_integer, 1);
  rb_define_method(klass, 'max_height', @Prop_get_integer, 0);
  rb_define_method(klass, 'max_width=', @Prop_set_integer, 1);
  rb_define_method(klass, 'max_width', @Prop_get_integer, 0);
  rb_define_method(klass, 'min_height=', @Prop_set_integer, 1);
  rb_define_method(klass, 'min_height', @Prop_get_integer, 0);
  rb_define_method(klass, 'min_width=', @Prop_set_integer, 1);
  rb_define_method(klass, 'min_width', @Prop_get_integer, 0);
//  klass := cStrings;
  klass := cScreen;
  rb_define_method(klass, 'name=', @Prop_set_string, 1);
  rb_define_method(klass, 'name', @Prop_get_string, 0);
//  klass := cClipboard;
  rb_define_const(mPhi, 'PC_COPIES', 1);
  rb_define_const(mPhi, 'PC_ORIENTATION', 3);
  rb_define_const(mPhi, 'PC_COLLATION', 5);
  rb_define_const(mPhi, 'PO_PORTRAIT', 1);
  rb_define_const(mPhi, 'PO_LANDSCAPE', 3);
//  klass := cGraphic;
//  klass := cIcon;
  rb_define_const(mPhi, 'FP_DEFAULT', 1);
  rb_define_const(mPhi, 'FP_VARIABLE', 3);
  rb_define_const(mPhi, 'FP_FIXED', 5);
  rb_define_const(mPhi, 'FS_BOLD', 1);
  rb_define_const(mPhi, 'FS_ITALIC', 3);
  rb_define_const(mPhi, 'FS_UNDERLINE', 5);
  rb_define_const(mPhi, 'FS_STRIKE_OUT', 7);
  klass := cFont;
  rb_define_method(klass, 'charset=', @Prop_set_integer, 1);
  rb_define_method(klass, 'charset', @Prop_get_integer, 0);
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'height=', @Prop_set_integer, 1);
  rb_define_method(klass, 'height', @Prop_get_integer, 0);
  rb_define_method(klass, 'name=', @Prop_set_string, 1);
  rb_define_method(klass, 'name', @Prop_get_string, 0);
  rb_define_method(klass, 'pitch=', @Prop_set_integer, 1);
  rb_define_method(klass, 'pitch', @Prop_get_integer, 0);
  rb_define_method(klass, 'size=', @Prop_set_integer, 1);
  rb_define_method(klass, 'size', @Prop_get_integer, 0);
  rb_define_method(klass, 'style=', @Prop_set_set, 1);
  rb_define_method(klass, 'style', @Prop_get_set, 0);
  rb_define_const(mPhi, 'BS_SOLID', 1);
  rb_define_const(mPhi, 'BS_CLEAR', 3);
  rb_define_const(mPhi, 'BS_HORIZONTAL', 5);
  rb_define_const(mPhi, 'BS_VERTICAL', 7);
  rb_define_const(mPhi, 'BS_FDIAGONAL', 9);
  rb_define_const(mPhi, 'BS_BDIAGONAL', 11);
  rb_define_const(mPhi, 'BS_CROSS', 13);
  rb_define_const(mPhi, 'BS_DIAG_CROSS', 15);
  klass := cBrush;
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'style', @Prop_get_integer, 0);
  rb_define_const(mPhi, 'PM_BLACK', 1);
  rb_define_const(mPhi, 'PM_WHITE', 3);
  rb_define_const(mPhi, 'PM_NOP', 5);
  rb_define_const(mPhi, 'PM_NOT', 7);
  rb_define_const(mPhi, 'PM_COPY', 9);
  rb_define_const(mPhi, 'PM_NOT_COPY', 11);
  rb_define_const(mPhi, 'PM_MERGE_PEN_NOT', 13);
  rb_define_const(mPhi, 'PM_MASK_PEN_NOT', 15);
  rb_define_const(mPhi, 'PM_MERGE_NOT_PEN', 17);
  rb_define_const(mPhi, 'PM_MASK_NOT_PEN', 19);
  rb_define_const(mPhi, 'PM_MERGE', 21);
  rb_define_const(mPhi, 'PM_NOT_MERGE', 23);
  rb_define_const(mPhi, 'PM_MASK', 25);
  rb_define_const(mPhi, 'PM_NOT_MASK', 27);
  rb_define_const(mPhi, 'PM_XOR', 29);
  rb_define_const(mPhi, 'PM_NOT_XOR', 31);
  rb_define_const(mPhi, 'PS_SOLID', 1);
  rb_define_const(mPhi, 'PS_DASH', 3);
  rb_define_const(mPhi, 'PS_DOT', 5);
  rb_define_const(mPhi, 'PS_DASH_DOT', 7);
  rb_define_const(mPhi, 'PS_DASH_DOT_DOT', 9);
  rb_define_const(mPhi, 'PS_CLEAR', 11);
  rb_define_const(mPhi, 'PS_INSIDE_FRAME', 13);
  klass := cPen;
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'style', @Prop_get_integer, 0);
  rb_define_method(klass, 'width=', @Prop_set_integer, 1);
  rb_define_method(klass, 'width', @Prop_get_integer, 0);
  rb_define_const(mPhi, 'FS_SURFACE', 1);
  rb_define_const(mPhi, 'FS_BORDER', 3);
  rb_define_const(mPhi, 'FM_ALTERNATE', 1);
  rb_define_const(mPhi, 'FM_WINDING', 3);
  rb_define_const(mPhi, 'CO_LEFT_TO_RIGHT', 1);
  rb_define_const(mPhi, 'CO_RIGHT_TO_LEFT', 3);
  rb_define_const(mPhi, 'CS_HANDLE_VALID', 1);
  rb_define_const(mPhi, 'CS_FONT_VALID', 3);
  rb_define_const(mPhi, 'CS_PEN_VALID', 5);
  rb_define_const(mPhi, 'CS_BRUSH_VALID', 7);
  klass := cCanvas;
  rb_define_method(klass, 'brush=', @Prop_set_object, 1);
  rb_define_method(klass, 'brush', @Prop_get_object, 0);
  rb_define_method(klass, 'copy_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'copy_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'pen=', @Prop_set_object, 1);
  rb_define_method(klass, 'pen', @Prop_get_object, 0);
//  klass := cBitmap;
  klass := cControlScrollBar;
  rb_define_method(klass, 'button_size=', @Prop_set_integer, 1);
  rb_define_method(klass, 'button_size', @Prop_get_integer, 0);
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'increment=', @Prop_set_integer, 1);
  rb_define_method(klass, 'increment', @Prop_get_integer, 0);
  rb_define_method(klass, 'margin=', @Prop_set_integer, 1);
  rb_define_method(klass, 'margin', @Prop_get_integer, 0);
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'position=', @Prop_set_integer, 1);
  rb_define_method(klass, 'position', @Prop_get_integer, 0);
  rb_define_method(klass, 'range=', @Prop_set_integer, 1);
  rb_define_method(klass, 'range', @Prop_get_integer, 0);
  rb_define_method(klass, 'smooth=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'smooth', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'smooth?', 'smooth');
  rb_define_method(klass, 'size=', @Prop_set_integer, 1);
  rb_define_method(klass, 'size', @Prop_get_integer, 0);
  rb_define_method(klass, 'style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'style', @Prop_get_integer, 0);
  rb_define_method(klass, 'thumb_size=', @Prop_set_integer, 1);
  rb_define_method(klass, 'thumb_size', @Prop_get_integer, 0);
  rb_define_method(klass, 'tracking=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'tracking', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'tracking?', 'tracking');
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
//  klass := cMetafile;
//  klass := cMetafileCanvas;
//  klass := cPicture;
  klass := cApplication;
  rb_define_method(klass, 'name=', @Prop_set_string, 1);
  rb_define_method(klass, 'name', @Prop_get_string, 0);
  klass := cDataModule;
  rb_define_method(klass, 'name=', @Prop_set_string, 1);
  rb_define_method(klass, 'name', @Prop_get_string, 0);
  rb_define_method(klass, 'old_create_order=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'old_create_order', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'old_create_order?', 'old_create_order');
  rb_define_method(klass, 'on_create=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_create', @retnil, -1);
  rb_define_method(klass, 'on_destroy=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_destroy', @retnil, -1);
  klass := cControl;
  rb_define_method(klass, 'name=', @Prop_set_string, 1);
  rb_define_method(klass, 'name', @Prop_get_string, 0);
  rb_define_method(klass, 'left=', @Prop_set_integer, 1);
  rb_define_method(klass, 'left', @Prop_get_integer, 0);
  rb_define_method(klass, 'top=', @Prop_set_integer, 1);
  rb_define_method(klass, 'top', @Prop_get_integer, 0);
  rb_define_method(klass, 'width=', @Prop_set_integer, 1);
  rb_define_method(klass, 'width', @Prop_get_integer, 0);
  rb_define_method(klass, 'height=', @Prop_set_integer, 1);
  rb_define_method(klass, 'height', @Prop_get_integer, 0);
  rb_define_method(klass, 'cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'hint=', @Prop_set_string, 1);
  rb_define_method(klass, 'hint', @Prop_get_string, 0);
  rb_define_method(klass, 'help_type=', @Prop_set_integer, 1);
  rb_define_method(klass, 'help_type', @Prop_get_integer, 0);
  rb_define_method(klass, 'help_keyword=', @Prop_set_string, 1);
  rb_define_method(klass, 'help_keyword', @Prop_get_string, 0);
  rb_define_method(klass, 'help_context=', @Prop_set_integer, 1);
  rb_define_method(klass, 'help_context', @Prop_get_integer, 0);
  rb_define_method(klass, 'on_context_popup=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_context_popup', @retval, -1);
//  klass := cWinControl;
  rb_define_const(mPhi, 'WS_NORMAL', 1);
  rb_define_const(mPhi, 'WS_MINIMIZED', 3);
  rb_define_const(mPhi, 'WS_MAXIMIZED', 5);
  rb_define_const(mPhi, 'PO_DESIGNED', 1);
  rb_define_const(mPhi, 'PO_DEFAULT', 3);
  rb_define_const(mPhi, 'PO_DEFAULT_POS_ONLY', 5);
  rb_define_const(mPhi, 'PO_DEFAULT_SIZE_ONLY', 7);
  rb_define_const(mPhi, 'PO_SCREEN_CENTER', 9);
  rb_define_const(mPhi, 'PO_DESKTOP_CENTER', 11);
  rb_define_const(mPhi, 'PO_MAIN_FORM_CENTER', 13);
  rb_define_const(mPhi, 'PO_OWNER_FORM_CENTER', 15);
  rb_define_const(mPhi, 'FS_NORMAL', 1);
  rb_define_const(mPhi, 'FS_MDICHILD', 3);
  rb_define_const(mPhi, 'FS_MDIFORM', 5);
  rb_define_const(mPhi, 'FS_STAY_ON_TOP', 7);
  klass := cForm;
  rb_define_method(klass, 'horz_scroll_bar=', @Prop_set_object, 1);
  rb_define_method(klass, 'horz_scroll_bar', @Prop_get_object, 0);
  rb_define_method(klass, 'vert_scroll_bar=', @Prop_set_object, 1);
  rb_define_method(klass, 'vert_scroll_bar', @Prop_get_object, 0);
  rb_define_method(klass, 'active_control=', @Prop_set_object, 1);
  rb_define_method(klass, 'active_control', @Prop_get_object, 0);
  rb_define_method(klass, 'alpha_blend=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'alpha_blend', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'alpha_blend?', 'alpha_blend');
  rb_define_method(klass, 'alpha_blend_value=', @Prop_set_integer, 1);
  rb_define_method(klass, 'alpha_blend_value', @Prop_get_integer, 0);
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'auto_scroll=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_scroll', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_scroll?', 'auto_scroll');
  rb_define_method(klass, 'auto_size=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_size', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_size?', 'auto_size');
  rb_define_method(klass, 'bi_di_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bi_di_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'border_icons=', @Prop_set_set, 1);
  rb_define_method(klass, 'border_icons', @Prop_get_set, 0);
  rb_define_method(klass, 'border_style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'border_style', @Prop_get_integer, 0);
  rb_define_method(klass, 'caption=', @Prop_set_string, 1);
  rb_define_method(klass, 'caption', @Prop_get_string, 0);
  rb_define_method(klass, 'client_height=', @Prop_set_integer, 1);
  rb_define_method(klass, 'client_height', @Prop_get_integer, 0);
  rb_define_method(klass, 'client_width=', @Prop_set_integer, 1);
  rb_define_method(klass, 'client_width', @Prop_get_integer, 0);
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'transparent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'transparent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'transparent_color?', 'transparent_color');
  rb_define_method(klass, 'transparent_color_value=', @Prop_set_integer, 1);
  rb_define_method(klass, 'transparent_color_value', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'default_monitor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'default_monitor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'form_style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'form_style', @Prop_get_integer, 0);
  rb_define_method(klass, 'help_file=', @Prop_set_string, 1);
  rb_define_method(klass, 'help_file', @Prop_get_string, 0);
  rb_define_method(klass, 'icon=', @Prop_set_object, 1);
  rb_define_method(klass, 'icon', @Prop_get_object, 0);
  rb_define_method(klass, 'key_preview=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'key_preview', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'key_preview?', 'key_preview');
  rb_define_method(klass, 'menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'menu', @Prop_get_object, 0);
  rb_define_method(klass, 'old_create_order=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'old_create_order', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'old_create_order?', 'old_create_order');
  rb_define_method(klass, 'object_menu_item=', @Prop_set_object, 1);
  rb_define_method(klass, 'object_menu_item', @Prop_get_object, 0);
  rb_define_method(klass, 'parent_bi_di_mode=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_bi_di_mode', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_bi_di_mode?', 'parent_bi_di_mode');
  rb_define_method(klass, 'pixels_per_inch=', @Prop_set_integer, 1);
  rb_define_method(klass, 'pixels_per_inch', @Prop_get_integer, 0);
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'position=', @Prop_set_integer, 1);
  rb_define_method(klass, 'position', @Prop_get_integer, 0);
  rb_define_method(klass, 'print_scale=', @Prop_set_integer, 1);
  rb_define_method(klass, 'print_scale', @Prop_get_integer, 0);
  rb_define_method(klass, 'scaled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'scaled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'scaled?', 'scaled');
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'window_state=', @Prop_set_integer, 1);
  rb_define_method(klass, 'window_state', @Prop_get_integer, 0);
  rb_define_method(klass, 'window_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'window_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'on_activate=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_activate', @retnil, -1);
  rb_define_method(klass, 'on_can_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_can_resize', @retnil, -1);
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_close=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_close', @retnil, -1);
  rb_define_method(klass, 'on_close_query=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_close_query', @retnil, -1);
  rb_define_method(klass, 'on_constrained_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_constrained_resize', @retnil, -1);
  rb_define_method(klass, 'on_create=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_create', @retnil, -1);
  rb_define_method(klass, 'on_dbl_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dbl_click', @retnil, -1);
  rb_define_method(klass, 'on_destroy=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_destroy', @retnil, -1);
  rb_define_method(klass, 'on_deactivate=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_deactivate', @retnil, -1);
  rb_define_method(klass, 'on_dock_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dock_drop', @retnil, -1);
  rb_define_method(klass, 'on_dock_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dock_over', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_get_site_info=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_get_site_info', @retnil, -1);
  rb_define_method(klass, 'on_hide=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_hide', @retnil, -1);
  rb_define_method(klass, 'on_help=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_help', @retnil, -1);
  rb_define_method(klass, 'on_key_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_down', @retnil, -1);
  rb_define_method(klass, 'on_key_press=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_press', @retnil, -1);
  rb_define_method(klass, 'on_key_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_up', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_mouse_wheel=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_wheel', @retnil, -1);
  rb_define_method(klass, 'on_mouse_wheel_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_wheel_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_wheel_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_wheel_up', @retnil, -1);
  rb_define_method(klass, 'on_paint=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_paint', @retnil, -1);
  rb_define_method(klass, 'on_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_resize', @retnil, -1);
  rb_define_method(klass, 'on_short_cut=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_short_cut', @retnil, -1);
  rb_define_method(klass, 'on_show=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_show', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_un_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_un_dock', @retnil, -1);
//retval:  overwrite Form#on_close
  rb_define_method(klass, 'on_close=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_close', @retval, -1);
//retval:  overwrite Form#on_close_query
  rb_define_method(klass, 'on_close_query=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_close_query', @retval, -1);
  rb_define_method(klass, 'on_drop_files=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drop_files', @retnil, -1);
  rb_define_method(klass, 'on_copy_data=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_copy_data', @retnil, -1);
{$IFDEF VCL}
  klass := cFrame;
  rb_define_method(klass, 'horz_scroll_bar=', @Prop_set_object, 1);
  rb_define_method(klass, 'horz_scroll_bar', @Prop_get_object, 0);
  rb_define_method(klass, 'vert_scroll_bar=', @Prop_set_object, 1);
  rb_define_method(klass, 'vert_scroll_bar', @Prop_get_object, 0);
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'auto_scroll=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_scroll', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_scroll?', 'auto_scroll');
  rb_define_method(klass, 'auto_size=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_size', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_size?', 'auto_size');
  rb_define_method(klass, 'bi_di_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bi_di_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'parent_bi_di_mode=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_bi_di_mode', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_bi_di_mode?', 'parent_bi_di_mode');
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'tab_order=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_order', @Prop_get_integer, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_can_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_can_resize', @retnil, -1);
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_constrained_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_constrained_resize', @retnil, -1);
  rb_define_method(klass, 'on_dbl_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dbl_click', @retnil, -1);
  rb_define_method(klass, 'on_dock_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dock_drop', @retnil, -1);
  rb_define_method(klass, 'on_dock_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dock_over', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_enter=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_enter', @retnil, -1);
  rb_define_method(klass, 'on_exit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_exit', @retnil, -1);
  rb_define_method(klass, 'on_get_site_info=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_get_site_info', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_mouse_wheel=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_wheel', @retnil, -1);
  rb_define_method(klass, 'on_mouse_wheel_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_wheel_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_wheel_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_wheel_up', @retnil, -1);
  rb_define_method(klass, 'on_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_resize', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  rb_define_method(klass, 'on_un_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_un_dock', @retnil, -1);
{$ENDIF}
  klass := cMenuItem;
  rb_define_method(klass, 'name=', @Prop_set_string, 1);
  rb_define_method(klass, 'name', @Prop_get_string, 0);
  rb_define_method(klass, 'action=', @Prop_set_object, 1);
  rb_define_method(klass, 'action', @Prop_get_object, 0);
  rb_define_method(klass, 'auto_check=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_check', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_check?', 'auto_check');
  rb_define_method(klass, 'auto_hotkeys=', @Prop_set_integer, 1);
  rb_define_method(klass, 'auto_hotkeys', @Prop_get_integer, 0);
  rb_define_method(klass, 'auto_line_reduction=', @Prop_set_integer, 1);
  rb_define_method(klass, 'auto_line_reduction', @Prop_get_integer, 0);
  rb_define_method(klass, 'bitmap=', @Prop_set_object, 1);
  rb_define_method(klass, 'bitmap', @Prop_get_object, 0);
  rb_define_method(klass, 'break=', @Prop_set_integer, 1);
  rb_define_method(klass, 'break', @Prop_get_integer, 0);
  rb_define_method(klass, 'caption=', @Prop_set_string, 1);
  rb_define_method(klass, 'caption', @Prop_get_string, 0);
  rb_define_method(klass, 'checked=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'checked', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'checked?', 'checked');
  rb_define_method(klass, 'sub_menu_images=', @Prop_set_object, 1);
  rb_define_method(klass, 'sub_menu_images', @Prop_get_object, 0);
  rb_define_method(klass, 'default=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'default', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'default?', 'default');
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'group_index=', @Prop_set_integer, 1);
  rb_define_method(klass, 'group_index', @Prop_get_integer, 0);
  rb_define_method(klass, 'help_context=', @Prop_set_integer, 1);
  rb_define_method(klass, 'help_context', @Prop_get_integer, 0);
  rb_define_method(klass, 'hint=', @Prop_set_string, 1);
  rb_define_method(klass, 'hint', @Prop_get_string, 0);
  rb_define_method(klass, 'image_index=', @Prop_set_integer, 1);
  rb_define_method(klass, 'image_index', @Prop_get_integer, 0);
  rb_define_method(klass, 'radio_item=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'radio_item', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'radio_item?', 'radio_item');
  rb_define_method(klass, 'short_cut=', @Prop_set_integer, 1);
  rb_define_method(klass, 'short_cut', @Prop_get_integer, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_draw_item=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_draw_item', @retnil, -1);
  rb_define_method(klass, 'on_advanced_draw_item=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_advanced_draw_item', @retnil, -1);
  rb_define_method(klass, 'on_measure_item=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_measure_item', @retnil, -1);
  rb_define_const(mPhi, 'MA_AUTOMATIC', 1);
  rb_define_const(mPhi, 'MA_MANUAL', 3);
  rb_define_const(mPhi, 'MA_PARENT', 5);
  klass := cMenu;
  rb_define_method(klass, 'name=', @Prop_set_string, 1);
  rb_define_method(klass, 'name', @Prop_get_string, 0);
  rb_define_method(klass, 'items', @Prop_get_object, 0);
  rb_define_method(klass, 'on_change=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_change', @retnil, -1);
  klass := cMainMenu;
  rb_define_method(klass, 'auto_hotkeys=', @Prop_set_integer, 1);
  rb_define_method(klass, 'auto_hotkeys', @Prop_get_integer, 0);
  rb_define_method(klass, 'auto_line_reduction=', @Prop_set_integer, 1);
  rb_define_method(klass, 'auto_line_reduction', @Prop_get_integer, 0);
  rb_define_method(klass, 'auto_merge=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_merge', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_merge?', 'auto_merge');
  rb_define_method(klass, 'bi_di_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bi_di_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'images=', @Prop_set_object, 1);
  rb_define_method(klass, 'images', @Prop_get_object, 0);
  rb_define_method(klass, 'owner_draw=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'owner_draw', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'owner_draw?', 'owner_draw');
  rb_define_method(klass, 'parent_bi_di_mode=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_bi_di_mode', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_bi_di_mode?', 'parent_bi_di_mode');
  klass := cPopupMenu;
  rb_define_method(klass, 'alignment=', @Prop_set_integer, 1);
  rb_define_method(klass, 'alignment', @Prop_get_integer, 0);
  rb_define_method(klass, 'auto_hotkeys=', @Prop_set_integer, 1);
  rb_define_method(klass, 'auto_hotkeys', @Prop_get_integer, 0);
  rb_define_method(klass, 'auto_line_reduction=', @Prop_set_integer, 1);
  rb_define_method(klass, 'auto_line_reduction', @Prop_get_integer, 0);
  rb_define_method(klass, 'auto_popup=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_popup', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_popup?', 'auto_popup');
  rb_define_method(klass, 'bi_di_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bi_di_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'help_context=', @Prop_set_integer, 1);
  rb_define_method(klass, 'help_context', @Prop_get_integer, 0);
  rb_define_method(klass, 'images=', @Prop_set_object, 1);
  rb_define_method(klass, 'images', @Prop_get_object, 0);
  rb_define_method(klass, 'menu_animation=', @Prop_set_set, 1);
  rb_define_method(klass, 'menu_animation', @Prop_get_set, 0);
  rb_define_method(klass, 'owner_draw=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'owner_draw', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'owner_draw?', 'owner_draw');
  rb_define_method(klass, 'parent_bi_di_mode=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_bi_di_mode', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_bi_di_mode?', 'parent_bi_di_mode');
  rb_define_method(klass, 'track_button=', @Prop_set_integer, 1);
  rb_define_method(klass, 'track_button', @Prop_get_integer, 0);
  rb_define_method(klass, 'on_popup=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_popup', @retnil, -1);
  rb_define_const(mPhi, 'TL_TOP', 1);
  rb_define_const(mPhi, 'TL_CENTER', 3);
  rb_define_const(mPhi, 'TL_BOTTOM', 5);
  klass := cLabel;
  rb_define_method(klass, 'alignment=', @Prop_set_integer, 1);
  rb_define_method(klass, 'alignment', @Prop_get_integer, 0);
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'auto_size=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_size', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_size?', 'auto_size');
  rb_define_method(klass, 'bi_di_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bi_di_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'caption=', @Prop_set_string, 1);
  rb_define_method(klass, 'caption', @Prop_get_string, 0);
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'focus_control=', @Prop_set_object, 1);
  rb_define_method(klass, 'focus_control', @Prop_get_object, 0);
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'parent_bi_di_mode=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_bi_di_mode', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_bi_di_mode?', 'parent_bi_di_mode');
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'show_accel_char=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_accel_char', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_accel_char?', 'show_accel_char');
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'transparent=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'transparent', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'transparent?', 'transparent');
  rb_define_method(klass, 'layout=', @Prop_set_integer, 1);
  rb_define_method(klass, 'layout', @Prop_get_integer, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'word_wrap=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'word_wrap', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'word_wrap?', 'word_wrap');
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_dbl_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dbl_click', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_mouse_enter=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_enter', @retnil, -1);
  rb_define_method(klass, 'on_mouse_leave=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_leave', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  klass := cButton;
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'bi_di_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bi_di_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'cancel=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'cancel', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'cancel?', 'cancel');
  rb_define_method(klass, 'caption=', @Prop_set_string, 1);
  rb_define_method(klass, 'caption', @Prop_get_string, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'default=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'default', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'default?', 'default');
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'modal_result=', @Prop_set_integer, 1);
  rb_define_method(klass, 'modal_result', @Prop_get_integer, 0);
  rb_define_method(klass, 'parent_bi_di_mode=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_bi_di_mode', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_bi_di_mode?', 'parent_bi_di_mode');
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'tab_order=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_order', @Prop_get_integer, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_enter=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_enter', @retnil, -1);
  rb_define_method(klass, 'on_exit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_exit', @retnil, -1);
  rb_define_method(klass, 'on_key_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_down', @retnil, -1);
  rb_define_method(klass, 'on_key_press=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_press', @retnil, -1);
  rb_define_method(klass, 'on_key_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_up', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  rb_define_const(mPhi, 'EC_NORMAL', 1);
  rb_define_const(mPhi, 'EC_UPPER_CASE', 3);
  rb_define_const(mPhi, 'EC_LOWER_CASE', 5);
  klass := cEdit;
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'auto_select=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_select', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_select?', 'auto_select');
  rb_define_method(klass, 'auto_size=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_size', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_size?', 'auto_size');
  rb_define_method(klass, 'bevel_edges=', @Prop_set_set, 1);
  rb_define_method(klass, 'bevel_edges', @Prop_get_set, 0);
  rb_define_method(klass, 'bevel_inner=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_inner', @Prop_get_integer, 0);
  rb_define_method(klass, 'bevel_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'bevel_outer=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_outer', @Prop_get_integer, 0);
  rb_define_method(klass, 'bi_di_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bi_di_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'border_style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'border_style', @Prop_get_integer, 0);
  rb_define_method(klass, 'char_case=', @Prop_set_integer, 1);
  rb_define_method(klass, 'char_case', @Prop_get_integer, 0);
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'hide_selection=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'hide_selection', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'hide_selection?', 'hide_selection');
  rb_define_method(klass, 'max_length=', @Prop_set_integer, 1);
  rb_define_method(klass, 'max_length', @Prop_get_integer, 0);
  rb_define_method(klass, 'oem_convert=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'oem_convert', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'oem_convert?', 'oem_convert');
  rb_define_method(klass, 'parent_bi_di_mode=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_bi_di_mode', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_bi_di_mode?', 'parent_bi_di_mode');
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'password_char=', @Prop_set_integer, 1);
  rb_define_method(klass, 'password_char', @Prop_get_integer, 0);
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'read_only=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'read_only', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'read_only?', 'read_only');
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'tab_order=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_order', @Prop_get_integer, 0);
  rb_define_method(klass, 'text=', @Prop_set_string, 1);
  rb_define_method(klass, 'text', @Prop_get_string, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_change=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_change', @retnil, -1);
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_dbl_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dbl_click', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_enter=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_enter', @retnil, -1);
  rb_define_method(klass, 'on_exit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_exit', @retnil, -1);
  rb_define_method(klass, 'on_key_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_down', @retnil, -1);
  rb_define_method(klass, 'on_key_press=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_press', @retnil, -1);
  rb_define_method(klass, 'on_key_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_up', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  rb_define_const(mPhi, 'SS_NONE', 1);
  rb_define_const(mPhi, 'SS_HORIZONTAL', 3);
  rb_define_const(mPhi, 'SS_VERTICAL', 5);
  rb_define_const(mPhi, 'SS_BOTH', 7);
  klass := cMemo;
  rb_define_method(klass, 'alignment=', @Prop_set_integer, 1);
  rb_define_method(klass, 'alignment', @Prop_get_integer, 0);
  rb_define_method(klass, 'lines=', @Prop_set_object, 1);
  rb_define_method(klass, 'lines', @Prop_get_object, 0);
  rb_define_method(klass, 'scroll_bars=', @Prop_set_integer, 1);
  rb_define_method(klass, 'scroll_bars', @Prop_get_integer, 0);
  rb_define_method(klass, 'want_returns=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'want_returns', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'want_returns?', 'want_returns');
  rb_define_method(klass, 'want_tabs=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'want_tabs', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'want_tabs?', 'want_tabs');
  rb_define_method(klass, 'word_wrap=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'word_wrap', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'word_wrap?', 'word_wrap');
  rb_define_const(mPhi, 'CB_UNCHECKED', 1);
  rb_define_const(mPhi, 'CB_CHECKED', 3);
  rb_define_const(mPhi, 'CB_GRAYED', 5);
  klass := cCheckBox;
  rb_define_method(klass, 'alignment=', @Prop_set_integer, 1);
  rb_define_method(klass, 'alignment', @Prop_get_integer, 0);
  rb_define_method(klass, 'allow_grayed=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'allow_grayed', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'allow_grayed?', 'allow_grayed');
  rb_define_method(klass, 'checked=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'checked', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'checked?', 'checked');
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'state=', @Prop_set_integer, 1);
  rb_define_method(klass, 'state', @Prop_get_integer, 0);
  klass := cRadioButton;
  rb_define_method(klass, 'alignment=', @Prop_set_integer, 1);
  rb_define_method(klass, 'alignment', @Prop_get_integer, 0);
  rb_define_method(klass, 'checked=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'checked', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'checked?', 'checked');
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'on_dbl_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dbl_click', @retnil, -1);
  rb_define_const(mPhi, 'LB_STANDARD', 1);
  rb_define_const(mPhi, 'LB_OWNER_DRAW_FIXED', 3);
  rb_define_const(mPhi, 'LB_OWNER_DRAW_VARIABLE', 5);
  rb_define_const(mPhi, 'LB_VIRTUAL', 7);
  rb_define_const(mPhi, 'LB_VIRTUAL_OWNER_DRAW', 9);
  klass := cListBox;
  rb_define_method(klass, 'style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'style', @Prop_get_integer, 0);
  rb_define_method(klass, 'auto_complete=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_complete', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_complete?', 'auto_complete');
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'bevel_edges=', @Prop_set_set, 1);
  rb_define_method(klass, 'bevel_edges', @Prop_get_set, 0);
  rb_define_method(klass, 'bevel_inner=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_inner', @Prop_get_integer, 0);
  rb_define_method(klass, 'bevel_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'bevel_outer=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_outer', @Prop_get_integer, 0);
  rb_define_method(klass, 'bi_di_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bi_di_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'border_style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'border_style', @Prop_get_integer, 0);
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'columns=', @Prop_set_integer, 1);
  rb_define_method(klass, 'columns', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'extended_select=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'extended_select', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'extended_select?', 'extended_select');
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'integral_height=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'integral_height', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'integral_height?', 'integral_height');
  rb_define_method(klass, 'item_height=', @Prop_set_integer, 1);
  rb_define_method(klass, 'item_height', @Prop_get_integer, 0);
  rb_define_method(klass, 'items=', @Prop_set_object, 1);
  rb_define_method(klass, 'items', @Prop_get_object, 0);
  rb_define_method(klass, 'multi_select=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'multi_select', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'multi_select?', 'multi_select');
  rb_define_method(klass, 'parent_bi_di_mode=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_bi_di_mode', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_bi_di_mode?', 'parent_bi_di_mode');
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'scroll_width=', @Prop_set_integer, 1);
  rb_define_method(klass, 'scroll_width', @Prop_get_integer, 0);
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'sorted=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'sorted', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'sorted?', 'sorted');
  rb_define_method(klass, 'tab_order=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_order', @Prop_get_integer, 0);
  rb_define_method(klass, 'tab_width=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_width', @Prop_get_integer, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_data=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_data', @retnil, -1);
  rb_define_method(klass, 'on_data_find=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_data_find', @retnil, -1);
  rb_define_method(klass, 'on_data_object=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_data_object', @retnil, -1);
  rb_define_method(klass, 'on_dbl_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dbl_click', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_draw_item=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_draw_item', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_enter=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_enter', @retnil, -1);
  rb_define_method(klass, 'on_exit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_exit', @retnil, -1);
  rb_define_method(klass, 'on_key_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_down', @retnil, -1);
  rb_define_method(klass, 'on_key_press=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_press', @retnil, -1);
  rb_define_method(klass, 'on_key_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_up', @retnil, -1);
  rb_define_method(klass, 'on_measure_item=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_measure_item', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  rb_define_const(mPhi, 'CS_DROP_DOWN', 1);
  rb_define_const(mPhi, 'CS_SIMPLE', 3);
  rb_define_const(mPhi, 'CS_DROP_DOWN_LIST', 5);
  rb_define_const(mPhi, 'CS_OWNER_DRAW_FIXED', 7);
  rb_define_const(mPhi, 'CS_OWNER_DRAW_VARIABLE', 9);
  klass := cComboBox;
  rb_define_method(klass, 'auto_complete=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_complete', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_complete?', 'auto_complete');
  rb_define_method(klass, 'auto_drop_down=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_drop_down', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_drop_down?', 'auto_drop_down');
  rb_define_method(klass, 'bevel_edges=', @Prop_set_set, 1);
  rb_define_method(klass, 'bevel_edges', @Prop_get_set, 0);
  rb_define_method(klass, 'bevel_inner=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_inner', @Prop_get_integer, 0);
  rb_define_method(klass, 'bevel_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'bevel_outer=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_outer', @Prop_get_integer, 0);
  rb_define_method(klass, 'style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'style', @Prop_get_integer, 0);
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'bi_di_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bi_di_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'char_case=', @Prop_set_integer, 1);
  rb_define_method(klass, 'char_case', @Prop_get_integer, 0);
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'drop_down_count=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drop_down_count', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'item_height=', @Prop_set_integer, 1);
  rb_define_method(klass, 'item_height', @Prop_get_integer, 0);
  rb_define_method(klass, 'item_index=', @Prop_set_integer, 1);
  rb_define_method(klass, 'item_index', @Prop_get_integer, 0);
  rb_define_method(klass, 'max_length=', @Prop_set_integer, 1);
  rb_define_method(klass, 'max_length', @Prop_get_integer, 0);
  rb_define_method(klass, 'parent_bi_di_mode=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_bi_di_mode', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_bi_di_mode?', 'parent_bi_di_mode');
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'sorted=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'sorted', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'sorted?', 'sorted');
  rb_define_method(klass, 'tab_order=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_order', @Prop_get_integer, 0);
  rb_define_method(klass, 'text=', @Prop_set_string, 1);
  rb_define_method(klass, 'text', @Prop_get_string, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_change=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_change', @retnil, -1);
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_close_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_close_up', @retnil, -1);
  rb_define_method(klass, 'on_dbl_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dbl_click', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_draw_item=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_draw_item', @retnil, -1);
  rb_define_method(klass, 'on_drop_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drop_down', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_enter=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_enter', @retnil, -1);
  rb_define_method(klass, 'on_exit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_exit', @retnil, -1);
  rb_define_method(klass, 'on_key_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_down', @retnil, -1);
  rb_define_method(klass, 'on_key_press=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_press', @retnil, -1);
  rb_define_method(klass, 'on_key_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_up', @retnil, -1);
  rb_define_method(klass, 'on_measure_item=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_measure_item', @retnil, -1);
  rb_define_method(klass, 'on_select=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_select', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  rb_define_method(klass, 'items=', @Prop_set_object, 1);
  rb_define_method(klass, 'items', @Prop_get_object, 0);
  klass := cScrollBar;
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'bi_di_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bi_di_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'large_change=', @Prop_set_integer, 1);
  rb_define_method(klass, 'large_change', @Prop_get_integer, 0);
  rb_define_method(klass, 'max=', @Prop_set_integer, 1);
  rb_define_method(klass, 'max', @Prop_get_integer, 0);
  rb_define_method(klass, 'min=', @Prop_set_integer, 1);
  rb_define_method(klass, 'min', @Prop_get_integer, 0);
  rb_define_method(klass, 'page_size=', @Prop_set_integer, 1);
  rb_define_method(klass, 'page_size', @Prop_get_integer, 0);
  rb_define_method(klass, 'parent_bi_di_mode=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_bi_di_mode', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_bi_di_mode?', 'parent_bi_di_mode');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'position=', @Prop_set_integer, 1);
  rb_define_method(klass, 'position', @Prop_get_integer, 0);
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'small_change=', @Prop_set_integer, 1);
  rb_define_method(klass, 'small_change', @Prop_get_integer, 0);
  rb_define_method(klass, 'tab_order=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_order', @Prop_get_integer, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_change=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_change', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_enter=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_enter', @retnil, -1);
  rb_define_method(klass, 'on_exit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_exit', @retnil, -1);
  rb_define_method(klass, 'on_key_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_down', @retnil, -1);
  rb_define_method(klass, 'on_key_press=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_press', @retnil, -1);
  rb_define_method(klass, 'on_key_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_up', @retnil, -1);
  rb_define_method(klass, 'on_scroll=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_scroll', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  klass := cGroupBox;
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'bi_di_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bi_di_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'caption=', @Prop_set_string, 1);
  rb_define_method(klass, 'caption', @Prop_get_string, 0);
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'parent_bi_di_mode=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_bi_di_mode', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_bi_di_mode?', 'parent_bi_di_mode');
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'tab_order=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_order', @Prop_get_integer, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_dbl_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dbl_click', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_dock_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dock_drop', @retnil, -1);
  rb_define_method(klass, 'on_dock_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dock_over', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_enter=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_enter', @retnil, -1);
  rb_define_method(klass, 'on_exit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_exit', @retnil, -1);
  rb_define_method(klass, 'on_get_site_info=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_get_site_info', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  rb_define_method(klass, 'on_un_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_un_dock', @retnil, -1);
  klass := cRadioGroup;
  rb_define_method(klass, 'columns=', @Prop_set_integer, 1);
  rb_define_method(klass, 'columns', @Prop_get_integer, 0);
  rb_define_method(klass, 'item_index=', @Prop_set_integer, 1);
  rb_define_method(klass, 'item_index', @Prop_get_integer, 0);
  rb_define_method(klass, 'items=', @Prop_set_object, 1);
  rb_define_method(klass, 'items', @Prop_get_object, 0);
  rb_define_const(mPhi, 'BV_NONE', 1);
  rb_define_const(mPhi, 'BV_LOWERED', 3);
  rb_define_const(mPhi, 'BV_RAISED', 5);
  rb_define_const(mPhi, 'BV_SPACE', 7);
  klass := cPanel;
  rb_define_method(klass, 'alignment=', @Prop_set_integer, 1);
  rb_define_method(klass, 'alignment', @Prop_get_integer, 0);
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'auto_size=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_size', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_size?', 'auto_size');
  rb_define_method(klass, 'bevel_inner=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_inner', @Prop_get_integer, 0);
  rb_define_method(klass, 'bevel_outer=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_outer', @Prop_get_integer, 0);
  rb_define_method(klass, 'bi_di_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bi_di_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'border_style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'border_style', @Prop_get_integer, 0);
  rb_define_method(klass, 'caption=', @Prop_set_string, 1);
  rb_define_method(klass, 'caption', @Prop_get_string, 0);
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'full_repaint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'full_repaint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'full_repaint?', 'full_repaint');
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'locked=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'locked', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'locked?', 'locked');
  rb_define_method(klass, 'parent_bi_di_mode=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_bi_di_mode', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_bi_di_mode?', 'parent_bi_di_mode');
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'tab_order=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_order', @Prop_get_integer, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_can_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_can_resize', @retnil, -1);
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_constrained_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_constrained_resize', @retnil, -1);
  rb_define_method(klass, 'on_dock_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dock_drop', @retnil, -1);
  rb_define_method(klass, 'on_dock_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dock_over', @retnil, -1);
  rb_define_method(klass, 'on_dbl_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dbl_click', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_enter=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_enter', @retnil, -1);
  rb_define_method(klass, 'on_exit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_exit', @retnil, -1);
  rb_define_method(klass, 'on_get_site_info=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_get_site_info', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_resize', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  rb_define_method(klass, 'on_un_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_un_dock', @retnil, -1);
  klass := cBitBtn;
  rb_define_method(klass, 'glyph=', @Prop_set_object, 1);
  rb_define_method(klass, 'glyph', @Prop_get_object, 0);
  rb_define_method(klass, 'kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'layout=', @Prop_set_integer, 1);
  rb_define_method(klass, 'layout', @Prop_get_integer, 0);
  rb_define_method(klass, 'margin=', @Prop_set_integer, 1);
  rb_define_method(klass, 'margin', @Prop_get_integer, 0);
  rb_define_method(klass, 'num_glyphs=', @Prop_set_integer, 1);
  rb_define_method(klass, 'num_glyphs', @Prop_get_integer, 0);
  rb_define_method(klass, 'style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'style', @Prop_get_integer, 0);
  rb_define_method(klass, 'spacing=', @Prop_set_integer, 1);
  rb_define_method(klass, 'spacing', @Prop_get_integer, 0);
  rb_define_const(mPhi, 'BK_CUSTOM', 1);
  rb_define_const(mPhi, 'BK_OK', 3);
  rb_define_const(mPhi, 'BK_CANCEL', 5);
  rb_define_const(mPhi, 'BK_HELP', 7);
  rb_define_const(mPhi, 'BK_YES', 9);
  rb_define_const(mPhi, 'BK_NO', 11);
  rb_define_const(mPhi, 'BK_CLOSE', 13);
  rb_define_const(mPhi, 'BK_ABORT', 15);
  rb_define_const(mPhi, 'BK_RETRY', 17);
  rb_define_const(mPhi, 'BK_IGNORE', 19);
  rb_define_const(mPhi, 'BK_ALL', 21);
  klass := cSpeedButton;
  rb_define_method(klass, 'allow_all_up=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'allow_all_up', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'allow_all_up?', 'allow_all_up');
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'bi_di_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bi_di_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'group_index=', @Prop_set_integer, 1);
  rb_define_method(klass, 'group_index', @Prop_get_integer, 0);
  rb_define_method(klass, 'down=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'down', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'down?', 'down');
  rb_define_method(klass, 'caption=', @Prop_set_string, 1);
  rb_define_method(klass, 'caption', @Prop_get_string, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'flat=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'flat', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'flat?', 'flat');
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'glyph=', @Prop_set_object, 1);
  rb_define_method(klass, 'glyph', @Prop_get_object, 0);
  rb_define_method(klass, 'layout=', @Prop_set_integer, 1);
  rb_define_method(klass, 'layout', @Prop_get_integer, 0);
  rb_define_method(klass, 'margin=', @Prop_set_integer, 1);
  rb_define_method(klass, 'margin', @Prop_get_integer, 0);
  rb_define_method(klass, 'num_glyphs=', @Prop_set_integer, 1);
  rb_define_method(klass, 'num_glyphs', @Prop_get_integer, 0);
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'parent_bi_di_mode=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_bi_di_mode', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_bi_di_mode?', 'parent_bi_di_mode');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'spacing=', @Prop_set_integer, 1);
  rb_define_method(klass, 'spacing', @Prop_get_integer, 0);
  rb_define_method(klass, 'transparent=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'transparent', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'transparent?', 'transparent');
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_dbl_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dbl_click', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  klass := cMaskEdit;
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'auto_select=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_select', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_select?', 'auto_select');
  rb_define_method(klass, 'auto_size=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_size', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_size?', 'auto_size');
  rb_define_method(klass, 'bevel_edges=', @Prop_set_set, 1);
  rb_define_method(klass, 'bevel_edges', @Prop_get_set, 0);
  rb_define_method(klass, 'bevel_inner=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_inner', @Prop_get_integer, 0);
  rb_define_method(klass, 'bevel_outer=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_outer', @Prop_get_integer, 0);
  rb_define_method(klass, 'bevel_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'bi_di_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bi_di_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'border_style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'border_style', @Prop_get_integer, 0);
  rb_define_method(klass, 'char_case=', @Prop_set_integer, 1);
  rb_define_method(klass, 'char_case', @Prop_get_integer, 0);
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'edit_mask=', @Prop_set_string, 1);
  rb_define_method(klass, 'edit_mask', @Prop_get_string, 0);
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'max_length=', @Prop_set_integer, 1);
  rb_define_method(klass, 'max_length', @Prop_get_integer, 0);
  rb_define_method(klass, 'parent_bi_di_mode=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_bi_di_mode', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_bi_di_mode?', 'parent_bi_di_mode');
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'password_char=', @Prop_set_integer, 1);
  rb_define_method(klass, 'password_char', @Prop_get_integer, 0);
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'read_only=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'read_only', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'read_only?', 'read_only');
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'tab_order=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_order', @Prop_get_integer, 0);
  rb_define_method(klass, 'text=', @Prop_set_string, 1);
  rb_define_method(klass, 'text', @Prop_get_string, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_change=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_change', @retnil, -1);
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_dbl_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dbl_click', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_enter=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_enter', @retnil, -1);
  rb_define_method(klass, 'on_exit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_exit', @retnil, -1);
  rb_define_method(klass, 'on_key_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_down', @retnil, -1);
  rb_define_method(klass, 'on_key_press=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_press', @retnil, -1);
  rb_define_method(klass, 'on_key_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_up', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  rb_define_const(mPhi, 'GD_SELECTED', 1);
  rb_define_const(mPhi, 'GD_FOCUSED', 3);
  rb_define_const(mPhi, 'GD_FIXED', 5);
  rb_define_const(mPhi, 'GO_FIXED_VERT_LINE', 1);
  rb_define_const(mPhi, 'GO_FIXED_HORZ_LINE', 3);
  rb_define_const(mPhi, 'GO_VERT_LINE', 5);
  rb_define_const(mPhi, 'GO_HORZ_LINE', 7);
  rb_define_const(mPhi, 'GO_RANGE_SELECT', 9);
  rb_define_const(mPhi, 'GO_DRAW_FOCUS_SELECTED', 11);
  rb_define_const(mPhi, 'GO_ROW_SIZING', 13);
  rb_define_const(mPhi, 'GO_COL_SIZING', 15);
  rb_define_const(mPhi, 'GO_ROW_MOVING', 17);
  rb_define_const(mPhi, 'GO_COL_MOVING', 19);
  rb_define_const(mPhi, 'GO_EDITING', 21);
  rb_define_const(mPhi, 'GO_TABS', 23);
  rb_define_const(mPhi, 'GO_ROW_SELECT', 25);
  rb_define_const(mPhi, 'GO_ALWAYS_SHOW_EDITOR', 27);
  rb_define_const(mPhi, 'GO_THUMB_TRACKING', 29);
//  klass := cCustomGrid;
  klass := cDrawGrid;
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'bi_di_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bi_di_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'border_style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'border_style', @Prop_get_integer, 0);
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'col_count=', @Prop_set_integer, 1);
  rb_define_method(klass, 'col_count', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'default_col_width=', @Prop_set_integer, 1);
  rb_define_method(klass, 'default_col_width', @Prop_get_integer, 0);
  rb_define_method(klass, 'default_row_height=', @Prop_set_integer, 1);
  rb_define_method(klass, 'default_row_height', @Prop_get_integer, 0);
  rb_define_method(klass, 'default_drawing=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'default_drawing', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'default_drawing?', 'default_drawing');
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'fixed_color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'fixed_color', @Prop_get_integer, 0);
  rb_define_method(klass, 'fixed_cols=', @Prop_set_integer, 1);
  rb_define_method(klass, 'fixed_cols', @Prop_get_integer, 0);
  rb_define_method(klass, 'row_count=', @Prop_set_integer, 1);
  rb_define_method(klass, 'row_count', @Prop_get_integer, 0);
  rb_define_method(klass, 'fixed_rows=', @Prop_set_integer, 1);
  rb_define_method(klass, 'fixed_rows', @Prop_get_integer, 0);
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'grid_line_width=', @Prop_set_integer, 1);
  rb_define_method(klass, 'grid_line_width', @Prop_get_integer, 0);
  rb_define_method(klass, 'options=', @Prop_set_set, 1);
  rb_define_method(klass, 'options', @Prop_get_set, 0);
  rb_define_method(klass, 'parent_bi_di_mode=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_bi_di_mode', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_bi_di_mode?', 'parent_bi_di_mode');
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'scroll_bars=', @Prop_set_integer, 1);
  rb_define_method(klass, 'scroll_bars', @Prop_get_integer, 0);
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'tab_order=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_order', @Prop_get_integer, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'visible_col_count', @Prop_get_integer, 0);
  rb_define_method(klass, 'visible_row_count', @Prop_get_integer, 0);
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_column_moved=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_column_moved', @retnil, -1);
  rb_define_method(klass, 'on_dbl_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dbl_click', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_draw_cell=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_draw_cell', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_enter=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_enter', @retnil, -1);
  rb_define_method(klass, 'on_exit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_exit', @retnil, -1);
  rb_define_method(klass, 'on_get_edit_mask=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_get_edit_mask', @retnil, -1);
  rb_define_method(klass, 'on_get_edit_text=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_get_edit_text', @retnil, -1);
  rb_define_method(klass, 'on_key_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_down', @retnil, -1);
  rb_define_method(klass, 'on_key_press=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_press', @retnil, -1);
  rb_define_method(klass, 'on_key_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_up', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_mouse_wheel_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_wheel_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_wheel_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_wheel_up', @retnil, -1);
  rb_define_method(klass, 'on_row_moved=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_row_moved', @retnil, -1);
  rb_define_method(klass, 'on_select_cell=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_select_cell', @retnil, -1);
  rb_define_method(klass, 'on_set_edit_text=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_set_edit_text', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  rb_define_method(klass, 'on_top_left_changed=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_top_left_changed', @retnil, -1);
//  klass := cStringGrid;
  klass := cImage;
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'auto_size=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_size', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_size?', 'auto_size');
  rb_define_method(klass, 'center=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'center', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'center?', 'center');
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'incremental_display=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'incremental_display', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'incremental_display?', 'incremental_display');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'picture=', @Prop_set_object, 1);
  rb_define_method(klass, 'picture', @Prop_get_object, 0);
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'proportional=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'proportional', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'proportional?', 'proportional');
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'stretch=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'stretch', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'stretch?', 'stretch');
  rb_define_method(klass, 'transparent=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'transparent', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'transparent?', 'transparent');
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_dbl_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dbl_click', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_progress=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_progress', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  klass := cImageList;
  rb_define_method(klass, 'name=', @Prop_set_string, 1);
  rb_define_method(klass, 'name', @Prop_get_string, 0);
  rb_define_method(klass, 'blend_color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'blend_color', @Prop_get_integer, 0);
  rb_define_method(klass, 'bk_color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bk_color', @Prop_get_integer, 0);
  rb_define_method(klass, 'alloc_by=', @Prop_set_integer, 1);
  rb_define_method(klass, 'alloc_by', @Prop_get_integer, 0);
  rb_define_method(klass, 'drawing_style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drawing_style', @Prop_get_integer, 0);
  rb_define_method(klass, 'height=', @Prop_set_integer, 1);
  rb_define_method(klass, 'height', @Prop_get_integer, 0);
  rb_define_method(klass, 'image_type=', @Prop_set_integer, 1);
  rb_define_method(klass, 'image_type', @Prop_get_integer, 0);
  rb_define_method(klass, 'masked=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'masked', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'masked?', 'masked');
  rb_define_method(klass, 'on_change=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_change', @retnil, -1);
  rb_define_method(klass, 'share_images=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'share_images', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'share_images?', 'share_images');
  rb_define_method(klass, 'width=', @Prop_set_integer, 1);
  rb_define_method(klass, 'width', @Prop_get_integer, 0);
  rb_define_const(mPhi, 'ST_RECTANGLE', 1);
  rb_define_const(mPhi, 'ST_SQUARE', 3);
  rb_define_const(mPhi, 'ST_ROUND_RECT', 5);
  rb_define_const(mPhi, 'ST_ROUND_SQUARE', 7);
  rb_define_const(mPhi, 'ST_ELLIPSE', 9);
  rb_define_const(mPhi, 'ST_CIRCLE', 11);
  klass := cShape;
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'brush=', @Prop_set_object, 1);
  rb_define_method(klass, 'brush', @Prop_get_object, 0);
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'pen=', @Prop_set_object, 1);
  rb_define_method(klass, 'pen', @Prop_get_object, 0);
  rb_define_method(klass, 'shape=', @Prop_set_integer, 1);
  rb_define_method(klass, 'shape', @Prop_get_integer, 0);
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  rb_define_const(mPhi, 'BS_BOX', 1);
  rb_define_const(mPhi, 'BS_FRAME', 3);
  rb_define_const(mPhi, 'BS_TOP_LINE', 5);
  rb_define_const(mPhi, 'BS_BOTTOM_LINE', 7);
  rb_define_const(mPhi, 'BS_LEFT_LINE', 9);
  rb_define_const(mPhi, 'BS_RIGHT_LINE', 11);
  rb_define_const(mPhi, 'BS_SPACER', 13);
  rb_define_const(mPhi, 'BS_LOWERED', 1);
  rb_define_const(mPhi, 'BS_RAISED', 3);
  klass := cBevel;
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'shape=', @Prop_set_integer, 1);
  rb_define_method(klass, 'shape', @Prop_get_integer, 0);
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'style', @Prop_get_integer, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  klass := cScrollBox;
  rb_define_method(klass, 'horz_scroll_bar=', @Prop_set_object, 1);
  rb_define_method(klass, 'horz_scroll_bar', @Prop_get_object, 0);
  rb_define_method(klass, 'vert_scroll_bar=', @Prop_set_object, 1);
  rb_define_method(klass, 'vert_scroll_bar', @Prop_get_object, 0);
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'auto_scroll=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_scroll', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_scroll?', 'auto_scroll');
  rb_define_method(klass, 'auto_size=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_size', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_size?', 'auto_size');
  rb_define_method(klass, 'bevel_edges=', @Prop_set_set, 1);
  rb_define_method(klass, 'bevel_edges', @Prop_get_set, 0);
  rb_define_method(klass, 'bevel_inner=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_inner', @Prop_get_integer, 0);
  rb_define_method(klass, 'bevel_outer=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_outer', @Prop_get_integer, 0);
  rb_define_method(klass, 'bevel_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'bi_di_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bi_di_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'border_style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'border_style', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'parent_bi_di_mode=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_bi_di_mode', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_bi_di_mode?', 'parent_bi_di_mode');
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'tab_order=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_order', @Prop_get_integer, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_can_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_can_resize', @retnil, -1);
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_constrained_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_constrained_resize', @retnil, -1);
  rb_define_method(klass, 'on_dbl_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dbl_click', @retnil, -1);
  rb_define_method(klass, 'on_dock_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dock_drop', @retnil, -1);
  rb_define_method(klass, 'on_dock_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dock_over', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_enter=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_enter', @retnil, -1);
  rb_define_method(klass, 'on_exit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_exit', @retnil, -1);
  rb_define_method(klass, 'on_get_site_info=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_get_site_info', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_mouse_wheel=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_wheel', @retnil, -1);
  rb_define_method(klass, 'on_mouse_wheel_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_wheel_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_wheel_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_wheel_up', @retnil, -1);
  rb_define_method(klass, 'on_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_resize', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  rb_define_method(klass, 'on_un_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_un_dock', @retnil, -1);
  rb_define_const(mPhi, 'RS_NONE', 1);
  rb_define_const(mPhi, 'RS_LINE', 3);
  rb_define_const(mPhi, 'RS_UPDATE', 5);
  rb_define_const(mPhi, 'RS_PATTERN', 7);
  klass := cSplitter;
  rb_define_method(klass, 'auto_snap=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_snap', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_snap?', 'auto_snap');
  rb_define_method(klass, 'beveled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'beveled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'beveled?', 'beveled');
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'min_size=', @Prop_set_integer, 1);
  rb_define_method(klass, 'min_size', @Prop_get_integer, 0);
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'resize_style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'resize_style', @Prop_get_integer, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_can_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_can_resize', @retnil, -1);
  rb_define_method(klass, 'on_moved=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_moved', @retnil, -1);
  rb_define_method(klass, 'on_paint=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_paint', @retnil, -1);
{$IFDEF VCL}
  klass := cStaticText;
  rb_define_method(klass, 'alignment=', @Prop_set_integer, 1);
  rb_define_method(klass, 'alignment', @Prop_get_integer, 0);
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'auto_size=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_size', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_size?', 'auto_size');
  rb_define_method(klass, 'bevel_edges=', @Prop_set_set, 1);
  rb_define_method(klass, 'bevel_edges', @Prop_get_set, 0);
  rb_define_method(klass, 'bevel_inner=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_inner', @Prop_get_integer, 0);
  rb_define_method(klass, 'bevel_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'bevel_outer=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_outer', @Prop_get_integer, 0);
  rb_define_method(klass, 'bi_di_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bi_di_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'border_style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'border_style', @Prop_get_integer, 0);
  rb_define_method(klass, 'caption=', @Prop_set_string, 1);
  rb_define_method(klass, 'caption', @Prop_get_string, 0);
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'focus_control=', @Prop_set_object, 1);
  rb_define_method(klass, 'focus_control', @Prop_get_object, 0);
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'parent_bi_di_mode=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_bi_di_mode', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_bi_di_mode?', 'parent_bi_di_mode');
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'show_accel_char=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_accel_char', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_accel_char?', 'show_accel_char');
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'tab_order=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_order', @Prop_get_integer, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_dbl_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dbl_click', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
{$ENDIF}
  klass := cTabControl;
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'bi_di_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bi_di_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'hot_track=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'hot_track', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'hot_track?', 'hot_track');
  rb_define_method(klass, 'images=', @Prop_set_object, 1);
  rb_define_method(klass, 'images', @Prop_get_object, 0);
  rb_define_method(klass, 'multi_line=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'multi_line', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'multi_line?', 'multi_line');
  rb_define_method(klass, 'multi_select=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'multi_select', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'multi_select?', 'multi_select');
  rb_define_method(klass, 'owner_draw=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'owner_draw', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'owner_draw?', 'owner_draw');
  rb_define_method(klass, 'parent_bi_di_mode=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_bi_di_mode', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_bi_di_mode?', 'parent_bi_di_mode');
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'ragged_right=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'ragged_right', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'ragged_right?', 'ragged_right');
  rb_define_method(klass, 'scroll_opposite=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'scroll_opposite', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'scroll_opposite?', 'scroll_opposite');
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'style', @Prop_get_integer, 0);
  rb_define_method(klass, 'tab_height=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_height', @Prop_get_integer, 0);
  rb_define_method(klass, 'tab_order=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_order', @Prop_get_integer, 0);
  rb_define_method(klass, 'tab_position=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_position', @Prop_get_integer, 0);
  rb_define_method(klass, 'tabs=', @Prop_set_object, 1);
  rb_define_method(klass, 'tabs', @Prop_get_object, 0);
  rb_define_method(klass, 'tab_index=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_index', @Prop_get_integer, 0);
  rb_define_method(klass, 'tab_width=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_width', @Prop_get_integer, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_change=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_change', @retnil, -1);
  rb_define_method(klass, 'on_changing=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_changing', @retnil, -1);
  rb_define_method(klass, 'on_dock_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dock_drop', @retnil, -1);
  rb_define_method(klass, 'on_dock_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dock_over', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_draw_tab=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_draw_tab', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_enter=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_enter', @retnil, -1);
  rb_define_method(klass, 'on_exit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_exit', @retnil, -1);
  rb_define_method(klass, 'on_get_image_index=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_get_image_index', @retnil, -1);
  rb_define_method(klass, 'on_get_site_info=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_get_site_info', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_resize', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  rb_define_method(klass, 'on_un_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_un_dock', @retnil, -1);
  rb_define_const(mPhi, 'TS_TABS', 1);
  rb_define_const(mPhi, 'TS_BUTTONS', 3);
  rb_define_const(mPhi, 'TS_FLAT_BUTTONS', 5);
  rb_define_const(mPhi, 'TP_TOP', 1);
  rb_define_const(mPhi, 'TP_BOTTOM', 3);
  rb_define_const(mPhi, 'TP_LEFT', 5);
  rb_define_const(mPhi, 'TP_RIGHT', 7);
  klass := cPageControl;
  rb_define_method(klass, 'active_page=', @Prop_set_object, 1);
  rb_define_method(klass, 'active_page', @Prop_get_object, 0);
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'bi_di_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bi_di_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'hot_track=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'hot_track', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'hot_track?', 'hot_track');
  rb_define_method(klass, 'images=', @Prop_set_object, 1);
  rb_define_method(klass, 'images', @Prop_get_object, 0);
  rb_define_method(klass, 'multi_line=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'multi_line', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'multi_line?', 'multi_line');
  rb_define_method(klass, 'owner_draw=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'owner_draw', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'owner_draw?', 'owner_draw');
  rb_define_method(klass, 'parent_bi_di_mode=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_bi_di_mode', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_bi_di_mode?', 'parent_bi_di_mode');
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'ragged_right=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'ragged_right', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'ragged_right?', 'ragged_right');
  rb_define_method(klass, 'scroll_opposite=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'scroll_opposite', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'scroll_opposite?', 'scroll_opposite');
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'style', @Prop_get_integer, 0);
  rb_define_method(klass, 'tab_height=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_height', @Prop_get_integer, 0);
  rb_define_method(klass, 'tab_index=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_index', @Prop_get_integer, 0);
  rb_define_method(klass, 'tab_order=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_order', @Prop_get_integer, 0);
  rb_define_method(klass, 'tab_position=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_position', @Prop_get_integer, 0);
  rb_define_method(klass, 'tab_width=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_width', @Prop_get_integer, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_change=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_change', @retnil, -1);
  rb_define_method(klass, 'on_changing=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_changing', @retnil, -1);
  rb_define_method(klass, 'on_dock_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dock_drop', @retnil, -1);
  rb_define_method(klass, 'on_dock_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dock_over', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_draw_tab=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_draw_tab', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_enter=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_enter', @retnil, -1);
  rb_define_method(klass, 'on_exit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_exit', @retnil, -1);
  rb_define_method(klass, 'on_get_image_index=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_get_image_index', @retnil, -1);
  rb_define_method(klass, 'on_get_site_info=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_get_site_info', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_resize', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  rb_define_method(klass, 'on_un_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_un_dock', @retnil, -1);
  klass := cTabSheet;
  rb_define_method(klass, 'caption=', @Prop_set_string, 1);
  rb_define_method(klass, 'caption', @Prop_get_string, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'highlighted=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'highlighted', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'highlighted?', 'highlighted');
  rb_define_method(klass, 'image_index=', @Prop_set_integer, 1);
  rb_define_method(klass, 'image_index', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'page_index=', @Prop_set_integer, 1);
  rb_define_method(klass, 'page_index', @Prop_get_integer, 0);
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'tab_visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'tab_visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'tab_visible?', 'tab_visible');
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_enter=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_enter', @retnil, -1);
  rb_define_method(klass, 'on_exit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_exit', @retnil, -1);
  rb_define_method(klass, 'on_hide=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_hide', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_resize', @retnil, -1);
  rb_define_method(klass, 'on_show=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_show', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  klass := cProgressBar;
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'min=', @Prop_set_integer, 1);
  rb_define_method(klass, 'min', @Prop_get_integer, 0);
  rb_define_method(klass, 'max=', @Prop_set_integer, 1);
  rb_define_method(klass, 'max', @Prop_get_integer, 0);
  rb_define_method(klass, 'orientation=', @Prop_set_integer, 1);
  rb_define_method(klass, 'orientation', @Prop_get_integer, 0);
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'position=', @Prop_set_integer, 1);
  rb_define_method(klass, 'position', @Prop_get_integer, 0);
  rb_define_method(klass, 'smooth=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'smooth', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'smooth?', 'smooth');
  rb_define_method(klass, 'step=', @Prop_set_integer, 1);
  rb_define_method(klass, 'step', @Prop_get_integer, 0);
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'tab_order=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_order', @Prop_get_integer, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_enter=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_enter', @retnil, -1);
  rb_define_method(klass, 'on_exit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_exit', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  klass := cTrackBar;
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'line_size=', @Prop_set_integer, 1);
  rb_define_method(klass, 'line_size', @Prop_get_integer, 0);
  rb_define_method(klass, 'max=', @Prop_set_integer, 1);
  rb_define_method(klass, 'max', @Prop_get_integer, 0);
  rb_define_method(klass, 'min=', @Prop_set_integer, 1);
  rb_define_method(klass, 'min', @Prop_get_integer, 0);
  rb_define_method(klass, 'orientation=', @Prop_set_integer, 1);
  rb_define_method(klass, 'orientation', @Prop_get_integer, 0);
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'page_size=', @Prop_set_integer, 1);
  rb_define_method(klass, 'page_size', @Prop_get_integer, 0);
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'frequency=', @Prop_set_integer, 1);
  rb_define_method(klass, 'frequency', @Prop_get_integer, 0);
  rb_define_method(klass, 'position=', @Prop_set_integer, 1);
  rb_define_method(klass, 'position', @Prop_get_integer, 0);
  rb_define_method(klass, 'slider_visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'slider_visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'slider_visible?', 'slider_visible');
  rb_define_method(klass, 'sel_end=', @Prop_set_integer, 1);
  rb_define_method(klass, 'sel_end', @Prop_get_integer, 0);
  rb_define_method(klass, 'sel_start=', @Prop_set_integer, 1);
  rb_define_method(klass, 'sel_start', @Prop_get_integer, 0);
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'tab_order=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_order', @Prop_get_integer, 0);
  rb_define_method(klass, 'thumb_length=', @Prop_set_integer, 1);
  rb_define_method(klass, 'thumb_length', @Prop_get_integer, 0);
  rb_define_method(klass, 'tick_marks=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tick_marks', @Prop_get_integer, 0);
  rb_define_method(klass, 'tick_style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tick_style', @Prop_get_integer, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_change=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_change', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_enter=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_enter', @retnil, -1);
  rb_define_method(klass, 'on_exit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_exit', @retnil, -1);
  rb_define_method(klass, 'on_key_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_down', @retnil, -1);
  rb_define_method(klass, 'on_key_press=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_press', @retnil, -1);
  rb_define_method(klass, 'on_key_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_up', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
{$IFDEF VCL}
  klass := cRichEdit;
  rb_define_method(klass, 'alignment=', @Prop_set_integer, 1);
  rb_define_method(klass, 'alignment', @Prop_get_integer, 0);
  rb_define_method(klass, 'hide_scroll_bars=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'hide_scroll_bars', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'hide_scroll_bars?', 'hide_scroll_bars');
  rb_define_method(klass, 'lines=', @Prop_set_object, 1);
  rb_define_method(klass, 'lines', @Prop_get_object, 0);
  rb_define_method(klass, 'plain_text=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'plain_text', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'plain_text?', 'plain_text');
  rb_define_method(klass, 'scroll_bars=', @Prop_set_integer, 1);
  rb_define_method(klass, 'scroll_bars', @Prop_get_integer, 0);
  rb_define_method(klass, 'want_tabs=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'want_tabs', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'want_tabs?', 'want_tabs');
  rb_define_method(klass, 'want_returns=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'want_returns', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'want_returns?', 'want_returns');
  rb_define_method(klass, 'word_wrap=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'word_wrap', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'word_wrap?', 'word_wrap');
  rb_define_method(klass, 'on_mouse_wheel=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_wheel', @retnil, -1);
  rb_define_method(klass, 'on_mouse_wheel_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_wheel_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_wheel_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_wheel_up', @retnil, -1);
  rb_define_method(klass, 'on_protect_change=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_protect_change', @retnil, -1);
  rb_define_method(klass, 'on_resize_request=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_resize_request', @retnil, -1);
  rb_define_method(klass, 'on_save_clipboard=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_save_clipboard', @retnil, -1);
  rb_define_method(klass, 'on_selection_change=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_selection_change', @retnil, -1);
  klass := cUpDown;
  rb_define_method(klass, 'align_button=', @Prop_set_integer, 1);
  rb_define_method(klass, 'align_button', @Prop_get_integer, 0);
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'associate=', @Prop_set_object, 1);
  rb_define_method(klass, 'associate', @Prop_get_object, 0);
  rb_define_method(klass, 'arrow_keys=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'arrow_keys', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'arrow_keys?', 'arrow_keys');
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'min=', @Prop_set_integer, 1);
  rb_define_method(klass, 'min', @Prop_get_integer, 0);
  rb_define_method(klass, 'max=', @Prop_set_integer, 1);
  rb_define_method(klass, 'max', @Prop_get_integer, 0);
  rb_define_method(klass, 'increment=', @Prop_set_integer, 1);
  rb_define_method(klass, 'increment', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'orientation=', @Prop_set_integer, 1);
  rb_define_method(klass, 'orientation', @Prop_get_integer, 0);
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'position=', @Prop_set_integer, 1);
  rb_define_method(klass, 'position', @Prop_get_integer, 0);
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'tab_order=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_order', @Prop_get_integer, 0);
  rb_define_method(klass, 'thousands=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'thousands', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'thousands?', 'thousands');
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'wrap=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'wrap', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'wrap?', 'wrap');
  rb_define_method(klass, 'on_changing=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_changing', @retnil, -1);
  rb_define_method(klass, 'on_changing_ex=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_changing_ex', @retnil, -1);
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_enter=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_enter', @retnil, -1);
  rb_define_method(klass, 'on_exit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_exit', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
{$ENDIF}
//  klass := cTreeNode;
//  klass := cTreeNodes;
  rb_define_const(mPhi, 'HT_ABOVE', 1);
  rb_define_const(mPhi, 'HT_BELOW', 3);
  rb_define_const(mPhi, 'HT_NOWHERE', 5);
  rb_define_const(mPhi, 'HT_ON_ITEM', 7);
  rb_define_const(mPhi, 'HT_ON_BUTTON', 9);
  rb_define_const(mPhi, 'HT_ON_ICON', 11);
  rb_define_const(mPhi, 'HT_ON_INDENT', 13);
  rb_define_const(mPhi, 'HT_ON_LABEL', 15);
  rb_define_const(mPhi, 'HT_ON_RIGHT', 17);
  rb_define_const(mPhi, 'HT_ON_STATE_ICON', 19);
  rb_define_const(mPhi, 'HT_TO_LEFT', 21);
  rb_define_const(mPhi, 'HT_TO_RIGHT', 23);
  klass := cTreeView;
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'auto_expand=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_expand', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_expand?', 'auto_expand');
  rb_define_method(klass, 'bevel_edges=', @Prop_set_set, 1);
  rb_define_method(klass, 'bevel_edges', @Prop_get_set, 0);
  rb_define_method(klass, 'bevel_inner=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_inner', @Prop_get_integer, 0);
  rb_define_method(klass, 'bevel_outer=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_outer', @Prop_get_integer, 0);
  rb_define_method(klass, 'bevel_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'bi_di_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bi_di_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'border_style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'border_style', @Prop_get_integer, 0);
  rb_define_method(klass, 'change_delay=', @Prop_set_integer, 1);
  rb_define_method(klass, 'change_delay', @Prop_get_integer, 0);
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'hide_selection=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'hide_selection', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'hide_selection?', 'hide_selection');
  rb_define_method(klass, 'hot_track=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'hot_track', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'hot_track?', 'hot_track');
  rb_define_method(klass, 'images=', @Prop_set_object, 1);
  rb_define_method(klass, 'images', @Prop_get_object, 0);
  rb_define_method(klass, 'indent=', @Prop_set_integer, 1);
  rb_define_method(klass, 'indent', @Prop_get_integer, 0);
  rb_define_method(klass, 'multi_select=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'multi_select', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'multi_select?', 'multi_select');
  rb_define_method(klass, 'multi_select_style=', @Prop_set_set, 1);
  rb_define_method(klass, 'multi_select_style', @Prop_get_set, 0);
  rb_define_method(klass, 'parent_bi_di_mode=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_bi_di_mode', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_bi_di_mode?', 'parent_bi_di_mode');
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'read_only=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'read_only', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'read_only?', 'read_only');
  rb_define_method(klass, 'right_click_select=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'right_click_select', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'right_click_select?', 'right_click_select');
  rb_define_method(klass, 'row_select=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'row_select', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'row_select?', 'row_select');
  rb_define_method(klass, 'show_buttons=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_buttons', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_buttons?', 'show_buttons');
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'show_lines=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_lines', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_lines?', 'show_lines');
  rb_define_method(klass, 'show_root=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_root', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_root?', 'show_root');
  rb_define_method(klass, 'sort_type=', @Prop_set_integer, 1);
  rb_define_method(klass, 'sort_type', @Prop_get_integer, 0);
  rb_define_method(klass, 'state_images=', @Prop_set_object, 1);
  rb_define_method(klass, 'state_images', @Prop_get_object, 0);
  rb_define_method(klass, 'tab_order=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_order', @Prop_get_integer, 0);
  rb_define_method(klass, 'tool_tips=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'tool_tips', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'tool_tips?', 'tool_tips');
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_addition=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_addition', @retnil, -1);
  rb_define_method(klass, 'on_advanced_custom_draw=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_advanced_custom_draw', @retnil, -1);
  rb_define_method(klass, 'on_advanced_custom_draw_item=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_advanced_custom_draw_item', @retnil, -1);
  rb_define_method(klass, 'on_change=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_change', @retnil, -1);
  rb_define_method(klass, 'on_changing=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_changing', @retnil, -1);
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_collapsed=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_collapsed', @retnil, -1);
  rb_define_method(klass, 'on_collapsing=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_collapsing', @retnil, -1);
  rb_define_method(klass, 'on_compare=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_compare', @retnil, -1);
  rb_define_method(klass, 'on_create_node_class=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_create_node_class', @retnil, -1);
  rb_define_method(klass, 'on_custom_draw=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_custom_draw', @retnil, -1);
  rb_define_method(klass, 'on_custom_draw_item=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_custom_draw_item', @retnil, -1);
  rb_define_method(klass, 'on_dbl_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dbl_click', @retnil, -1);
  rb_define_method(klass, 'on_deletion=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_deletion', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_edited=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_edited', @retnil, -1);
  rb_define_method(klass, 'on_editing=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_editing', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_enter=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_enter', @retnil, -1);
  rb_define_method(klass, 'on_exit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_exit', @retnil, -1);
  rb_define_method(klass, 'on_expanding=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_expanding', @retnil, -1);
  rb_define_method(klass, 'on_expanded=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_expanded', @retnil, -1);
  rb_define_method(klass, 'on_get_image_index=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_get_image_index', @retnil, -1);
  rb_define_method(klass, 'on_get_selected_index=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_get_selected_index', @retnil, -1);
  rb_define_method(klass, 'on_key_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_down', @retnil, -1);
  rb_define_method(klass, 'on_key_press=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_press', @retnil, -1);
  rb_define_method(klass, 'on_key_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_up', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  rb_define_method(klass, 'items=', @Prop_set_object, 1);
  rb_define_method(klass, 'items', @Prop_get_object, 0);
  rb_define_const(mPhi, 'DR_BOUNDS', 1);
  rb_define_const(mPhi, 'DR_ICON', 3);
  rb_define_const(mPhi, 'DR_LABEL', 5);
  rb_define_const(mPhi, 'DR_SELECT_BOUNDS', 7);
//  klass := cListItem;
//  klass := cListItems;
  klass := cListColumn;
  rb_define_method(klass, 'alignment=', @Prop_set_integer, 1);
  rb_define_method(klass, 'alignment', @Prop_get_integer, 0);
  rb_define_method(klass, 'auto_size=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_size', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_size?', 'auto_size');
  rb_define_method(klass, 'caption=', @Prop_set_string, 1);
  rb_define_method(klass, 'caption', @Prop_get_string, 0);
  rb_define_method(klass, 'image_index=', @Prop_set_integer, 1);
  rb_define_method(klass, 'image_index', @Prop_get_integer, 0);
  rb_define_method(klass, 'max_width=', @Prop_set_integer, 1);
  rb_define_method(klass, 'max_width', @Prop_get_integer, 0);
  rb_define_method(klass, 'min_width=', @Prop_set_integer, 1);
  rb_define_method(klass, 'min_width', @Prop_get_integer, 0);
  rb_define_method(klass, 'width=', @Prop_set_integer, 1);
  rb_define_method(klass, 'width', @Prop_get_integer, 0);
//  klass := cListColumns;
  rb_define_const(mPhi, 'IA_TOP', 1);
  rb_define_const(mPhi, 'IA_LEFT', 3);
  rb_define_const(mPhi, 'CT_TEXT', 1);
  rb_define_const(mPhi, 'CT_IMAGE', 3);
  rb_define_const(mPhi, 'CT_STATE', 5);
  klass := cIconOptions;
  rb_define_method(klass, 'arrangement=', @Prop_set_integer, 1);
  rb_define_method(klass, 'arrangement', @Prop_get_integer, 0);
  rb_define_method(klass, 'auto_arrange=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_arrange', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_arrange?', 'auto_arrange');
  rb_define_method(klass, 'wrap_text=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'wrap_text', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'wrap_text?', 'wrap_text');
  rb_define_const(mPhi, 'VS_ICON', 1);
  rb_define_const(mPhi, 'VS_SMALL_ICON', 3);
  rb_define_const(mPhi, 'VS_LIST', 5);
  rb_define_const(mPhi, 'VS_REPORT', 7);
  klass := cListView;
  rb_define_method(klass, 'alloc_by=', @Prop_set_integer, 1);
  rb_define_method(klass, 'alloc_by', @Prop_get_integer, 0);
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'bevel_edges=', @Prop_set_set, 1);
  rb_define_method(klass, 'bevel_edges', @Prop_get_set, 0);
  rb_define_method(klass, 'bevel_inner=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_inner', @Prop_get_integer, 0);
  rb_define_method(klass, 'bevel_outer=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_outer', @Prop_get_integer, 0);
  rb_define_method(klass, 'bevel_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'bi_di_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bi_di_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'border_style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'border_style', @Prop_get_integer, 0);
  rb_define_method(klass, 'checkboxes=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'checkboxes', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'checkboxes?', 'checkboxes');
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'columns=', @Prop_set_object, 1);
  rb_define_method(klass, 'columns', @Prop_get_object, 0);
  rb_define_method(klass, 'column_click=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'column_click', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'column_click?', 'column_click');
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'flat_scroll_bars=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'flat_scroll_bars', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'flat_scroll_bars?', 'flat_scroll_bars');
  rb_define_method(klass, 'full_drag=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'full_drag', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'full_drag?', 'full_drag');
  rb_define_method(klass, 'grid_lines=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'grid_lines', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'grid_lines?', 'grid_lines');
  rb_define_method(klass, 'hide_selection=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'hide_selection', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'hide_selection?', 'hide_selection');
  rb_define_method(klass, 'hot_track=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'hot_track', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'hot_track?', 'hot_track');
  rb_define_method(klass, 'hot_track_styles=', @Prop_set_set, 1);
  rb_define_method(klass, 'hot_track_styles', @Prop_get_set, 0);
  rb_define_method(klass, 'hover_time=', @Prop_set_integer, 1);
  rb_define_method(klass, 'hover_time', @Prop_get_integer, 0);
  rb_define_method(klass, 'icon_options=', @Prop_set_object, 1);
  rb_define_method(klass, 'icon_options', @Prop_get_object, 0);
  rb_define_method(klass, 'items=', @Prop_set_object, 1);
  rb_define_method(klass, 'items', @Prop_get_object, 0);
  rb_define_method(klass, 'large_images=', @Prop_set_object, 1);
  rb_define_method(klass, 'large_images', @Prop_get_object, 0);
  rb_define_method(klass, 'multi_select=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'multi_select', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'multi_select?', 'multi_select');
  rb_define_method(klass, 'owner_data=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'owner_data', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'owner_data?', 'owner_data');
  rb_define_method(klass, 'owner_draw=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'owner_draw', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'owner_draw?', 'owner_draw');
  rb_define_method(klass, 'read_only=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'read_only', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'read_only?', 'read_only');
  rb_define_method(klass, 'row_select=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'row_select', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'row_select?', 'row_select');
  rb_define_method(klass, 'parent_bi_di_mode=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_bi_di_mode', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_bi_di_mode?', 'parent_bi_di_mode');
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'show_column_headers=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_column_headers', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_column_headers?', 'show_column_headers');
  rb_define_method(klass, 'show_work_areas=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_work_areas', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_work_areas?', 'show_work_areas');
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'small_images=', @Prop_set_object, 1);
  rb_define_method(klass, 'small_images', @Prop_get_object, 0);
  rb_define_method(klass, 'sort_type=', @Prop_set_integer, 1);
  rb_define_method(klass, 'sort_type', @Prop_get_integer, 0);
  rb_define_method(klass, 'state_images=', @Prop_set_object, 1);
  rb_define_method(klass, 'state_images', @Prop_get_object, 0);
  rb_define_method(klass, 'tab_order=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_order', @Prop_get_integer, 0);
  rb_define_method(klass, 'view_style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'view_style', @Prop_get_integer, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_advanced_custom_draw=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_advanced_custom_draw', @retnil, -1);
  rb_define_method(klass, 'on_advanced_custom_draw_item=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_advanced_custom_draw_item', @retnil, -1);
  rb_define_method(klass, 'on_advanced_custom_draw_sub_item=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_advanced_custom_draw_sub_item', @retnil, -1);
  rb_define_method(klass, 'on_change=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_change', @retnil, -1);
  rb_define_method(klass, 'on_changing=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_changing', @retnil, -1);
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_column_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_column_click', @retnil, -1);
  rb_define_method(klass, 'on_column_dragged=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_column_dragged', @retnil, -1);
  rb_define_method(klass, 'on_column_right_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_column_right_click', @retnil, -1);
  rb_define_method(klass, 'on_compare=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_compare', @retnil, -1);
  rb_define_method(klass, 'on_custom_draw=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_custom_draw', @retnil, -1);
  rb_define_method(klass, 'on_custom_draw_item=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_custom_draw_item', @retnil, -1);
  rb_define_method(klass, 'on_custom_draw_sub_item=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_custom_draw_sub_item', @retnil, -1);
  rb_define_method(klass, 'on_data=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_data', @retnil, -1);
  rb_define_method(klass, 'on_data_find=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_data_find', @retnil, -1);
  rb_define_method(klass, 'on_data_hint=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_data_hint', @retnil, -1);
  rb_define_method(klass, 'on_data_state_change=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_data_state_change', @retnil, -1);
  rb_define_method(klass, 'on_dbl_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dbl_click', @retnil, -1);
  rb_define_method(klass, 'on_deletion=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_deletion', @retnil, -1);
  rb_define_method(klass, 'on_draw_item=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_draw_item', @retnil, -1);
  rb_define_method(klass, 'on_edited=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_edited', @retnil, -1);
  rb_define_method(klass, 'on_editing=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_editing', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_enter=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_enter', @retnil, -1);
  rb_define_method(klass, 'on_exit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_exit', @retnil, -1);
  rb_define_method(klass, 'on_get_image_index=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_get_image_index', @retnil, -1);
  rb_define_method(klass, 'on_get_sub_item_image=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_get_sub_item_image', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_info_tip=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_info_tip', @retnil, -1);
  rb_define_method(klass, 'on_insert=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_insert', @retnil, -1);
  rb_define_method(klass, 'on_key_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_down', @retnil, -1);
  rb_define_method(klass, 'on_key_press=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_press', @retnil, -1);
  rb_define_method(klass, 'on_key_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_up', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_resize', @retnil, -1);
  rb_define_method(klass, 'on_select_item=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_select_item', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  klass := cStatusBar;
  rb_define_method(klass, 'auto_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_hint?', 'auto_hint');
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'bi_di_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bi_di_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'border_width=', @Prop_set_integer, 1);
  rb_define_method(klass, 'border_width', @Prop_get_integer, 0);
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'panels=', @Prop_set_object, 1);
  rb_define_method(klass, 'panels', @Prop_get_object, 0);
  rb_define_method(klass, 'parent_bi_di_mode=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_bi_di_mode', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_bi_di_mode?', 'parent_bi_di_mode');
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'simple_panel=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'simple_panel', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'simple_panel?', 'simple_panel');
  rb_define_method(klass, 'simple_text=', @Prop_set_string, 1);
  rb_define_method(klass, 'simple_text', @Prop_get_string, 0);
  rb_define_method(klass, 'size_grip=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'size_grip', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'size_grip?', 'size_grip');
  rb_define_method(klass, 'use_system_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'use_system_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'use_system_font?', 'use_system_font');
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_create_panel_class=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_create_panel_class', @retnil, -1);
  rb_define_method(klass, 'on_dbl_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dbl_click', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_hint=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_hint', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_draw_panel=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_draw_panel', @retnil, -1);
  rb_define_method(klass, 'on_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_resize', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  klass := cTimer;
  rb_define_method(klass, 'name=', @Prop_set_string, 1);
  rb_define_method(klass, 'name', @Prop_get_string, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'interval=', @Prop_set_integer, 1);
  rb_define_method(klass, 'interval', @Prop_get_integer, 0);
  rb_define_method(klass, 'on_timer=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_timer', @retnil, -1);
  klass := cPaintBox;
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_dbl_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dbl_click', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_paint=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_paint', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  rb_define_const(mPhi, 'EB_LEFT', 1);
  rb_define_const(mPhi, 'EB_TOP', 3);
  rb_define_const(mPhi, 'EB_RIGHT', 5);
  rb_define_const(mPhi, 'EB_BOTTOM', 7);
  klass := cToolBar;
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'auto_size=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_size', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_size?', 'auto_size');
  rb_define_method(klass, 'button_height=', @Prop_set_integer, 1);
  rb_define_method(klass, 'button_height', @Prop_get_integer, 0);
  rb_define_method(klass, 'button_width=', @Prop_set_integer, 1);
  rb_define_method(klass, 'button_width', @Prop_get_integer, 0);
  rb_define_method(klass, 'caption=', @Prop_set_string, 1);
  rb_define_method(klass, 'caption', @Prop_get_string, 0);
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'customizable=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'customizable', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'customizable?', 'customizable');
  rb_define_method(klass, 'disabled_images=', @Prop_set_object, 1);
  rb_define_method(klass, 'disabled_images', @Prop_get_object, 0);
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'edge_borders=', @Prop_set_set, 1);
  rb_define_method(klass, 'edge_borders', @Prop_get_set, 0);
  rb_define_method(klass, 'edge_inner=', @Prop_set_integer, 1);
  rb_define_method(klass, 'edge_inner', @Prop_get_integer, 0);
  rb_define_method(klass, 'edge_outer=', @Prop_set_integer, 1);
  rb_define_method(klass, 'edge_outer', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'flat=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'flat', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'flat?', 'flat');
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'hot_images=', @Prop_set_object, 1);
  rb_define_method(klass, 'hot_images', @Prop_get_object, 0);
  rb_define_method(klass, 'images=', @Prop_set_object, 1);
  rb_define_method(klass, 'images', @Prop_get_object, 0);
  rb_define_method(klass, 'indent=', @Prop_set_integer, 1);
  rb_define_method(klass, 'indent', @Prop_get_integer, 0);
  rb_define_method(klass, 'list=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'list', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'list?', 'list');
  rb_define_method(klass, 'menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'menu', @Prop_get_object, 0);
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'show_captions=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_captions', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_captions?', 'show_captions');
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'tab_order=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_order', @Prop_get_integer, 0);
  rb_define_method(klass, 'transparent=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'transparent', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'transparent?', 'transparent');
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'wrapable=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'wrapable', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'wrapable?', 'wrapable');
  rb_define_method(klass, 'on_advanced_custom_draw=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_advanced_custom_draw', @retnil, -1);
  rb_define_method(klass, 'on_advanced_custom_draw_button=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_advanced_custom_draw_button', @retnil, -1);
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_custom_draw=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_custom_draw', @retnil, -1);
  rb_define_method(klass, 'on_custom_draw_button=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_custom_draw_button', @retnil, -1);
  rb_define_method(klass, 'on_customize_added=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_customize_added', @retnil, -1);
  rb_define_method(klass, 'on_customize_can_insert=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_customize_can_insert', @retnil, -1);
  rb_define_method(klass, 'on_customize_can_delete=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_customize_can_delete', @retnil, -1);
  rb_define_method(klass, 'on_customized=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_customized', @retnil, -1);
  rb_define_method(klass, 'on_customize_delete=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_customize_delete', @retnil, -1);
  rb_define_method(klass, 'on_customizing=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_customizing', @retnil, -1);
  rb_define_method(klass, 'on_customize_new_button=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_customize_new_button', @retnil, -1);
  rb_define_method(klass, 'on_customize_reset=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_customize_reset', @retnil, -1);
  rb_define_method(klass, 'on_dbl_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dbl_click', @retnil, -1);
  rb_define_method(klass, 'on_dock_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dock_drop', @retnil, -1);
  rb_define_method(klass, 'on_dock_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dock_over', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_enter=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_enter', @retnil, -1);
  rb_define_method(klass, 'on_exit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_exit', @retnil, -1);
  rb_define_method(klass, 'on_get_site_info=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_get_site_info', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_resize', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  rb_define_method(klass, 'on_un_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_un_dock', @retnil, -1);
  rb_define_const(mPhi, 'TBS_BUTTON', 1);
  rb_define_const(mPhi, 'TBS_CHECK', 3);
  rb_define_const(mPhi, 'TBS_DROP_DOWN', 5);
  rb_define_const(mPhi, 'TBS_SEPARATOR', 7);
  rb_define_const(mPhi, 'TBS_DIVIDER', 9);
  klass := cToolButton;
  rb_define_method(klass, 'allow_all_up=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'allow_all_up', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'allow_all_up?', 'allow_all_up');
  rb_define_method(klass, 'auto_size=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_size', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_size?', 'auto_size');
  rb_define_method(klass, 'caption=', @Prop_set_string, 1);
  rb_define_method(klass, 'caption', @Prop_get_string, 0);
  rb_define_method(klass, 'down=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'down', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'down?', 'down');
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'dropdown_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'dropdown_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'grouped=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'grouped', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'grouped?', 'grouped');
  rb_define_method(klass, 'image_index=', @Prop_set_integer, 1);
  rb_define_method(klass, 'image_index', @Prop_get_integer, 0);
  rb_define_method(klass, 'indeterminate=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'indeterminate', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'indeterminate?', 'indeterminate');
  rb_define_method(klass, 'marked=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'marked', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'marked?', 'marked');
  rb_define_method(klass, 'menu_item=', @Prop_set_object, 1);
  rb_define_method(klass, 'menu_item', @Prop_get_object, 0);
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'wrap=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'wrap', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'wrap?', 'wrap');
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'style', @Prop_get_integer, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  rb_define_const(mPhi, 'SO_HORIZONTAL', 1);
  rb_define_const(mPhi, 'SO_VERTICAL', 3);
{$IFDEF VCL}
  klass := cPageScroller;
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'auto_scroll=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_scroll', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_scroll?', 'auto_scroll');
  rb_define_method(klass, 'button_size=', @Prop_set_integer, 1);
  rb_define_method(klass, 'button_size', @Prop_get_integer, 0);
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'control=', @Prop_set_object, 1);
  rb_define_method(klass, 'control', @Prop_get_object, 0);
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_scroll=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'drag_scroll', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'drag_scroll?', 'drag_scroll');
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'margin=', @Prop_set_integer, 1);
  rb_define_method(klass, 'margin', @Prop_get_integer, 0);
  rb_define_method(klass, 'orientation=', @Prop_set_integer, 1);
  rb_define_method(klass, 'orientation', @Prop_get_integer, 0);
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'position=', @Prop_set_integer, 1);
  rb_define_method(klass, 'position', @Prop_get_integer, 0);
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'tab_order=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_order', @Prop_get_integer, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_dbl_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dbl_click', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_enter=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_enter', @retnil, -1);
  rb_define_method(klass, 'on_exit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_exit', @retnil, -1);
  rb_define_method(klass, 'on_key_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_down', @retnil, -1);
  rb_define_method(klass, 'on_key_press=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_press', @retnil, -1);
  rb_define_method(klass, 'on_key_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_up', @retnil, -1);
  rb_define_method(klass, 'on_mouse_wheel=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_wheel', @retnil, -1);
  rb_define_method(klass, 'on_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_resize', @retnil, -1);
  rb_define_method(klass, 'on_scroll=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_scroll', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  rb_define_const(mPhi, 'AVI_NONE', 1);
  rb_define_const(mPhi, 'AVI_FIND_FOLDER', 3);
  rb_define_const(mPhi, 'AVI_FIND_FILE', 5);
  rb_define_const(mPhi, 'AVI_FIND_COMPUTER', 7);
  rb_define_const(mPhi, 'AVI_COPY_FILES', 9);
  rb_define_const(mPhi, 'AVI_COPY_FILE', 11);
  rb_define_const(mPhi, 'AVI_RECYCLE_FILE', 13);
  rb_define_const(mPhi, 'AVI_EMPTY_RECYCLE', 15);
  rb_define_const(mPhi, 'AVI_DELETE_FILE', 17);
  klass := cAnimate;
  rb_define_method(klass, 'active=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'active', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'active?', 'active');
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'auto_size=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_size', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_size?', 'auto_size');
  rb_define_method(klass, 'center=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'center', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'center?', 'center');
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'common_avi=', @Prop_set_integer, 1);
  rb_define_method(klass, 'common_avi', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'file_name=', @Prop_set_path, 1);
  rb_define_method(klass, 'file_name', @Prop_get_path, 0);
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'repetitions=', @Prop_set_integer, 1);
  rb_define_method(klass, 'repetitions', @Prop_get_integer, 0);
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'start_frame=', @Prop_set_integer, 1);
  rb_define_method(klass, 'start_frame', @Prop_get_integer, 0);
  rb_define_method(klass, 'stop_frame=', @Prop_set_integer, 1);
  rb_define_method(klass, 'stop_frame', @Prop_get_integer, 0);
  rb_define_method(klass, 'timers=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'timers', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'timers?', 'timers');
  rb_define_method(klass, 'transparent=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'transparent', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'transparent?', 'transparent');
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_open=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_open', @retnil, -1);
  rb_define_method(klass, 'on_close=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_close', @retnil, -1);
  rb_define_method(klass, 'on_start=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start', @retnil, -1);
  rb_define_method(klass, 'on_stop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_stop', @retnil, -1);
  rb_define_const(mPhi, 'LP_ABOVE', 1);
  rb_define_const(mPhi, 'LP_BELOW', 3);
  rb_define_const(mPhi, 'LP_LEFT', 5);
  rb_define_const(mPhi, 'LP_RIGHT', 7);
{$ENDIF}
  klass := cLabeledEdit;
  rb_define_method(klass, 'edit_label', @Prop_get_object, 0);
  rb_define_method(klass, 'label_position=', @Prop_set_integer, 1);
  rb_define_method(klass, 'label_position', @Prop_get_integer, 0);
  rb_define_method(klass, 'label_spacing=', @Prop_set_integer, 1);
  rb_define_method(klass, 'label_spacing', @Prop_get_integer, 0);
//  klass := cBoundLabel;
  klass := cCheckListBox;
  rb_define_method(klass, 'on_click_check=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click_check', @retnil, -1);
  rb_define_method(klass, 'allow_grayed=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'allow_grayed', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'allow_grayed?', 'allow_grayed');
  rb_define_method(klass, 'auto_complete=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_complete', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_complete?', 'auto_complete');
  rb_define_method(klass, 'bevel_edges=', @Prop_set_set, 1);
  rb_define_method(klass, 'bevel_edges', @Prop_get_set, 0);
  rb_define_method(klass, 'bevel_inner=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_inner', @Prop_get_integer, 0);
  rb_define_method(klass, 'bevel_outer=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_outer', @Prop_get_integer, 0);
  rb_define_method(klass, 'bevel_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'border_style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'border_style', @Prop_get_integer, 0);
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'columns=', @Prop_set_integer, 1);
  rb_define_method(klass, 'columns', @Prop_get_integer, 0);
  rb_define_method(klass, 'flat=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'flat', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'flat?', 'flat');
  rb_define_method(klass, 'header_color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'header_color', @Prop_get_integer, 0);
  rb_define_method(klass, 'header_background_color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'header_background_color', @Prop_get_integer, 0);
  rb_define_method(klass, 'integral_height=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'integral_height', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'integral_height?', 'integral_height');
  rb_define_method(klass, 'item_height=', @Prop_set_integer, 1);
  rb_define_method(klass, 'item_height', @Prop_get_integer, 0);
  rb_define_method(klass, 'items=', @Prop_set_object, 1);
  rb_define_method(klass, 'items', @Prop_get_object, 0);
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'sorted=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'sorted', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'sorted?', 'sorted');
  rb_define_method(klass, 'style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'style', @Prop_get_integer, 0);
  rb_define_method(klass, 'tab_width=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_width', @Prop_get_integer, 0);
  rb_define_method(klass, 'on_data=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_data', @retnil, -1);
  rb_define_method(klass, 'on_data_find=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_data_find', @retnil, -1);
  rb_define_method(klass, 'on_data_object=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_data_object', @retnil, -1);
  rb_define_method(klass, 'on_dbl_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dbl_click', @retnil, -1);
  rb_define_method(klass, 'on_draw_item=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_draw_item', @retnil, -1);
  rb_define_method(klass, 'on_measure_item=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_measure_item', @retnil, -1);
  klass := cControlBar;
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'auto_dock=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_dock', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_dock?', 'auto_dock');
  rb_define_method(klass, 'auto_drag=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_drag', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_drag?', 'auto_drag');
  rb_define_method(klass, 'auto_size=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_size', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_size?', 'auto_size');
  rb_define_method(klass, 'bevel_edges=', @Prop_set_set, 1);
  rb_define_method(klass, 'bevel_edges', @Prop_get_set, 0);
  rb_define_method(klass, 'bevel_inner=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_inner', @Prop_get_integer, 0);
  rb_define_method(klass, 'bevel_outer=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_outer', @Prop_get_integer, 0);
  rb_define_method(klass, 'bevel_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'picture=', @Prop_set_object, 1);
  rb_define_method(klass, 'picture', @Prop_get_object, 0);
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'row_size=', @Prop_set_integer, 1);
  rb_define_method(klass, 'row_size', @Prop_get_integer, 0);
  rb_define_method(klass, 'row_snap=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'row_snap', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'row_snap?', 'row_snap');
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'tab_order=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_order', @Prop_get_integer, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_band_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_band_drag', @retnil, -1);
  rb_define_method(klass, 'on_band_info=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_band_info', @retnil, -1);
  rb_define_method(klass, 'on_band_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_band_move', @retnil, -1);
  rb_define_method(klass, 'on_band_paint=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_band_paint', @retnil, -1);
  rb_define_method(klass, 'on_can_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_can_resize', @retnil, -1);
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_constrained_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_constrained_resize', @retnil, -1);
  rb_define_method(klass, 'on_dock_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dock_drop', @retnil, -1);
  rb_define_method(klass, 'on_dock_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dock_over', @retnil, -1);
  rb_define_method(klass, 'on_dbl_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dbl_click', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_enter=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_enter', @retnil, -1);
  rb_define_method(klass, 'on_exit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_exit', @retnil, -1);
  rb_define_method(klass, 'on_get_site_info=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_get_site_info', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_paint=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_paint', @retnil, -1);
  rb_define_method(klass, 'on_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_resize', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  rb_define_method(klass, 'on_un_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_un_dock', @retnil, -1);
  klass := cValueListEditor;
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'bi_di_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bi_di_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'border_style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'border_style', @Prop_get_integer, 0);
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'default_col_width=', @Prop_set_integer, 1);
  rb_define_method(klass, 'default_col_width', @Prop_get_integer, 0);
  rb_define_method(klass, 'default_drawing=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'default_drawing', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'default_drawing?', 'default_drawing');
  rb_define_method(klass, 'default_row_height=', @Prop_set_integer, 1);
  rb_define_method(klass, 'default_row_height', @Prop_get_integer, 0);
  rb_define_method(klass, 'display_options=', @Prop_set_set, 1);
  rb_define_method(klass, 'display_options', @Prop_get_set, 0);
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'drop_down_rows=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drop_down_rows', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'fixed_color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'fixed_color', @Prop_get_integer, 0);
  rb_define_method(klass, 'fixed_cols=', @Prop_set_integer, 1);
  rb_define_method(klass, 'fixed_cols', @Prop_get_integer, 0);
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'grid_line_width=', @Prop_set_integer, 1);
  rb_define_method(klass, 'grid_line_width', @Prop_get_integer, 0);
  rb_define_method(klass, 'key_options=', @Prop_set_set, 1);
  rb_define_method(klass, 'key_options', @Prop_get_set, 0);
  rb_define_method(klass, 'options=', @Prop_set_set, 1);
  rb_define_method(klass, 'options', @Prop_get_set, 0);
  rb_define_method(klass, 'parent_bi_di_mode=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_bi_di_mode', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_bi_di_mode?', 'parent_bi_di_mode');
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'scroll_bars=', @Prop_set_integer, 1);
  rb_define_method(klass, 'scroll_bars', @Prop_get_integer, 0);
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'strings=', @Prop_set_object, 1);
  rb_define_method(klass, 'strings', @Prop_get_object, 0);
  rb_define_method(klass, 'tab_order=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_order', @Prop_get_integer, 0);
  rb_define_method(klass, 'title_captions=', @Prop_set_object, 1);
  rb_define_method(klass, 'title_captions', @Prop_get_object, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_dbl_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dbl_click', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_draw_cell=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_draw_cell', @retnil, -1);
  rb_define_method(klass, 'on_edit_button_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_edit_button_click', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_enter=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_enter', @retnil, -1);
  rb_define_method(klass, 'on_exit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_exit', @retnil, -1);
  rb_define_method(klass, 'on_get_edit_mask=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_get_edit_mask', @retnil, -1);
  rb_define_method(klass, 'on_get_edit_text=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_get_edit_text', @retnil, -1);
  rb_define_method(klass, 'on_get_pick_list=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_get_pick_list', @retnil, -1);
  rb_define_method(klass, 'on_key_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_down', @retnil, -1);
  rb_define_method(klass, 'on_key_press=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_press', @retnil, -1);
  rb_define_method(klass, 'on_key_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_up', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_mouse_wheel_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_wheel_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_wheel_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_wheel_up', @retnil, -1);
  rb_define_method(klass, 'on_row_moved=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_row_moved', @retnil, -1);
  rb_define_method(klass, 'on_select_cell=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_select_cell', @retnil, -1);
  rb_define_method(klass, 'on_set_edit_text=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_set_edit_text', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  rb_define_method(klass, 'on_strings_change=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_strings_change', @retnil, -1);
  rb_define_method(klass, 'on_strings_changing=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_strings_changing', @retnil, -1);
  rb_define_method(klass, 'on_top_left_changed=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_top_left_changed', @retnil, -1);
  rb_define_method(klass, 'on_validate=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_validate', @retnil, -1);
  klass := cColorBox;
  rb_define_method(klass, 'auto_complete=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_complete', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_complete?', 'auto_complete');
  rb_define_method(klass, 'auto_drop_down=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_drop_down', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_drop_down?', 'auto_drop_down');
  rb_define_method(klass, 'default_color_color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'default_color_color', @Prop_get_integer, 0);
  rb_define_method(klass, 'none_color_color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'none_color_color', @Prop_get_integer, 0);
  rb_define_method(klass, 'selected=', @Prop_set_integer, 1);
  rb_define_method(klass, 'selected', @Prop_get_integer, 0);
  rb_define_method(klass, 'style=', @Prop_set_set, 1);
  rb_define_method(klass, 'style', @Prop_get_set, 0);
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'bevel_edges=', @Prop_set_set, 1);
  rb_define_method(klass, 'bevel_edges', @Prop_get_set, 0);
  rb_define_method(klass, 'bevel_inner=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_inner', @Prop_get_integer, 0);
  rb_define_method(klass, 'bevel_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'bevel_outer=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bevel_outer', @Prop_get_integer, 0);
  rb_define_method(klass, 'bi_di_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bi_di_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'drop_down_count=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drop_down_count', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'item_height=', @Prop_set_integer, 1);
  rb_define_method(klass, 'item_height', @Prop_get_integer, 0);
  rb_define_method(klass, 'parent_bi_di_mode=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_bi_di_mode', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_bi_di_mode?', 'parent_bi_di_mode');
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'tab_order=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_order', @Prop_get_integer, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_change=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_change', @retnil, -1);
  rb_define_method(klass, 'on_close_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_close_up', @retnil, -1);
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_dbl_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dbl_click', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_drop_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drop_down', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_enter=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_enter', @retnil, -1);
  rb_define_method(klass, 'on_exit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_exit', @retnil, -1);
  rb_define_method(klass, 'on_key_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_down', @retnil, -1);
  rb_define_method(klass, 'on_key_press=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_press', @retnil, -1);
  rb_define_method(klass, 'on_key_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_up', @retnil, -1);
  rb_define_method(klass, 'on_select=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_select', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  klass := cHeaderControl;
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'bi_di_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bi_di_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_reorder=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'drag_reorder', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'drag_reorder?', 'drag_reorder');
  rb_define_method(klass, 'full_drag=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'full_drag', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'full_drag?', 'full_drag');
  rb_define_method(klass, 'hot_track=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'hot_track', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'hot_track?', 'hot_track');
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'images=', @Prop_set_object, 1);
  rb_define_method(klass, 'images', @Prop_get_object, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'sections=', @Prop_set_object, 1);
  rb_define_method(klass, 'sections', @Prop_get_object, 0);
  rb_define_method(klass, 'style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'style', @Prop_get_integer, 0);
  rb_define_method(klass, 'on_create_section_class=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_create_section_class', @retnil, -1);
  rb_define_method(klass, 'on_draw_section=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_draw_section', @retnil, -1);
  rb_define_method(klass, 'on_section_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_section_click', @retnil, -1);
  rb_define_method(klass, 'on_section_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_section_drag', @retnil, -1);
  rb_define_method(klass, 'on_section_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_section_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_section_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_section_resize', @retnil, -1);
  rb_define_method(klass, 'on_section_track=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_section_track', @retnil, -1);
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'parent_bi_di_mode=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_bi_di_mode', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_bi_di_mode?', 'parent_bi_di_mode');
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_resize', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  klass := cComboBoxEx;
  rb_define_method(klass, 'items_ex=', @Prop_set_object, 1);
  rb_define_method(klass, 'items_ex', @Prop_get_object, 0);
  rb_define_method(klass, 'style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'style', @Prop_get_integer, 0);
  rb_define_method(klass, 'style_ex=', @Prop_set_set, 1);
  rb_define_method(klass, 'style_ex', @Prop_get_set, 0);
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'bi_di_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bi_di_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'item_height=', @Prop_set_integer, 1);
  rb_define_method(klass, 'item_height', @Prop_get_integer, 0);
  rb_define_method(klass, 'max_length=', @Prop_set_integer, 1);
  rb_define_method(klass, 'max_length', @Prop_get_integer, 0);
  rb_define_method(klass, 'parent_bi_di_mode=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_bi_di_mode', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_bi_di_mode?', 'parent_bi_di_mode');
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'tab_order=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_order', @Prop_get_integer, 0);
  rb_define_method(klass, 'text=', @Prop_set_string, 1);
  rb_define_method(klass, 'text', @Prop_get_string, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_begin_edit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_begin_edit', @retnil, -1);
  rb_define_method(klass, 'on_change=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_change', @retnil, -1);
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_dbl_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dbl_click', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_drop_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drop_down', @retnil, -1);
  rb_define_method(klass, 'on_end_edit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_edit', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_enter=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_enter', @retnil, -1);
  rb_define_method(klass, 'on_exit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_exit', @retnil, -1);
  rb_define_method(klass, 'on_key_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_down', @retnil, -1);
  rb_define_method(klass, 'on_key_press=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_press', @retnil, -1);
  rb_define_method(klass, 'on_key_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_key_up', @retnil, -1);
  rb_define_method(klass, 'on_select=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_select', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  rb_define_method(klass, 'images=', @Prop_set_object, 1);
  rb_define_method(klass, 'images', @Prop_get_object, 0);
  rb_define_method(klass, 'drop_down_count=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drop_down_count', @Prop_get_integer, 0);
  klass := cCoolBar;
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'auto_size=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_size', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_size?', 'auto_size');
  rb_define_method(klass, 'band_border_style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'band_border_style', @Prop_get_integer, 0);
  rb_define_method(klass, 'band_maximize=', @Prop_set_integer, 1);
  rb_define_method(klass, 'band_maximize', @Prop_get_integer, 0);
  rb_define_method(klass, 'bands=', @Prop_set_object, 1);
  rb_define_method(klass, 'bands', @Prop_get_object, 0);
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'drag_cursor=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_cursor', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_kind=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_kind', @Prop_get_integer, 0);
  rb_define_method(klass, 'drag_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'drag_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'edge_borders=', @Prop_set_set, 1);
  rb_define_method(klass, 'edge_borders', @Prop_get_set, 0);
  rb_define_method(klass, 'edge_inner=', @Prop_set_integer, 1);
  rb_define_method(klass, 'edge_inner', @Prop_get_integer, 0);
  rb_define_method(klass, 'edge_outer=', @Prop_set_integer, 1);
  rb_define_method(klass, 'edge_outer', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'fixed_size=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'fixed_size', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'fixed_size?', 'fixed_size');
  rb_define_method(klass, 'fixed_order=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'fixed_order', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'fixed_order?', 'fixed_order');
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'images=', @Prop_set_object, 1);
  rb_define_method(klass, 'images', @Prop_get_object, 0);
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'bitmap=', @Prop_set_object, 1);
  rb_define_method(klass, 'bitmap', @Prop_get_object, 0);
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'show_text=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_text', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_text?', 'show_text');
  rb_define_method(klass, 'vertical=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'vertical', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'vertical?', 'vertical');
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_change=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_change', @retnil, -1);
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_dbl_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dbl_click', @retnil, -1);
  rb_define_method(klass, 'on_dock_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dock_drop', @retnil, -1);
  rb_define_method(klass, 'on_dock_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dock_over', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_get_site_info=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_get_site_info', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_resize', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  rb_define_method(klass, 'on_un_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_un_dock', @retnil, -1);
  klass := cHotKey;
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'auto_size=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'auto_size', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'auto_size?', 'auto_size');
  rb_define_method(klass, 'bi_di_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bi_di_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'hot_key=', @Prop_set_integer, 1);
  rb_define_method(klass, 'hot_key', @Prop_get_integer, 0);
  rb_define_method(klass, 'invalid_keys=', @Prop_set_set, 1);
  rb_define_method(klass, 'invalid_keys', @Prop_get_set, 0);
  rb_define_method(klass, 'modifiers=', @Prop_set_set, 1);
  rb_define_method(klass, 'modifiers', @Prop_get_set, 0);
  rb_define_method(klass, 'parent_bi_di_mode=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_bi_di_mode', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_bi_di_mode?', 'parent_bi_di_mode');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'tab_order=', @Prop_set_integer, 1);
  rb_define_method(klass, 'tab_order', @Prop_get_integer, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_change=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_change', @retnil, -1);
  rb_define_method(klass, 'on_enter=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_enter', @retnil, -1);
  rb_define_method(klass, 'on_exit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_exit', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  klass := cDdeClientConv;
  rb_define_method(klass, 'service_application=', @Prop_set_string, 1);
  rb_define_method(klass, 'service_application', @Prop_get_string, 0);
  rb_define_method(klass, 'dde_service=', @Prop_set_string, 1);
  rb_define_method(klass, 'dde_service', @Prop_get_string, 0);
  rb_define_method(klass, 'dde_topic=', @Prop_set_string, 1);
  rb_define_method(klass, 'dde_topic', @Prop_get_string, 0);
  rb_define_method(klass, 'connect_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'connect_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'format_chars=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'format_chars', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'format_chars?', 'format_chars');
  rb_define_method(klass, 'on_close=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_close', @retnil, -1);
  rb_define_method(klass, 'on_open=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_open', @retnil, -1);
  klass := cDdeClientItem;
  rb_define_method(klass, 'text=', @Prop_set_string, 1);
  rb_define_method(klass, 'text', @Prop_get_string, 0);
  rb_define_method(klass, 'lines=', @Prop_set_object, 1);
  rb_define_method(klass, 'lines', @Prop_get_object, 0);
  rb_define_method(klass, 'dde_conv=', @Prop_set_object, 1);
  rb_define_method(klass, 'dde_conv', @Prop_get_object, 0);
  rb_define_method(klass, 'dde_item=', @Prop_set_string, 1);
  rb_define_method(klass, 'dde_item', @Prop_get_string, 0);
  rb_define_method(klass, 'on_change=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_change', @retnil, -1);
  klass := cDdeServerConv;
  rb_define_method(klass, 'on_open=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_open', @retnil, -1);
  rb_define_method(klass, 'on_close=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_close', @retnil, -1);
  rb_define_method(klass, 'on_execute_macro=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_execute_macro', @retnil, -1);
  klass := cDdeServerItem;
  rb_define_method(klass, 'server_conv=', @Prop_set_object, 1);
  rb_define_method(klass, 'server_conv', @Prop_get_object, 0);
  rb_define_method(klass, 'text=', @Prop_set_string, 1);
  rb_define_method(klass, 'text', @Prop_get_string, 0);
  rb_define_method(klass, 'lines=', @Prop_set_object, 1);
  rb_define_method(klass, 'lines', @Prop_get_object, 0);
  rb_define_method(klass, 'on_change=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_change', @retnil, -1);
  rb_define_method(klass, 'on_poke_data=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_poke_data', @retnil, -1);
  klass := cActionToolBar;
  rb_define_method(klass, 'action_manager=', @Prop_set_object, 1);
  rb_define_method(klass, 'action_manager', @Prop_get_object, 0);
  rb_define_method(klass, 'allow_hiding=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'allow_hiding', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'allow_hiding?', 'allow_hiding');
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'bi_di_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bi_di_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'caption=', @Prop_set_string, 1);
  rb_define_method(klass, 'caption', @Prop_get_string, 0);
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'edge_borders=', @Prop_set_set, 1);
  rb_define_method(klass, 'edge_borders', @Prop_get_set, 0);
  rb_define_method(klass, 'edge_inner=', @Prop_set_integer, 1);
  rb_define_method(klass, 'edge_inner', @Prop_get_integer, 0);
  rb_define_method(klass, 'edge_outer=', @Prop_set_integer, 1);
  rb_define_method(klass, 'edge_outer', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'horz_margin=', @Prop_set_integer, 1);
  rb_define_method(klass, 'horz_margin', @Prop_get_integer, 0);
  rb_define_method(klass, 'horz_separator=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'horz_separator', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'horz_separator?', 'horz_separator');
  rb_define_method(klass, 'orientation=', @Prop_set_integer, 1);
  rb_define_method(klass, 'orientation', @Prop_get_integer, 0);
  rb_define_method(klass, 'parent_bi_di_mode=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_bi_di_mode', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_bi_di_mode?', 'parent_bi_di_mode');
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'persistent_hot_keys=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'persistent_hot_keys', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'persistent_hot_keys?', 'persistent_hot_keys');
  rb_define_method(klass, 'popup_menu=', @Prop_set_object, 1);
  rb_define_method(klass, 'popup_menu', @Prop_get_object, 0);
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'spacing=', @Prop_set_integer, 1);
  rb_define_method(klass, 'spacing', @Prop_get_integer, 0);
  rb_define_method(klass, 'vert_margin=', @Prop_set_integer, 1);
  rb_define_method(klass, 'vert_margin', @Prop_get_integer, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_control_created=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_control_created', @retnil, -1);
  rb_define_method(klass, 'on_can_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_can_resize', @retnil, -1);
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_constrained_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_constrained_resize', @retnil, -1);
  rb_define_method(klass, 'on_dock_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dock_drop', @retnil, -1);
  rb_define_method(klass, 'on_dock_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dock_over', @retnil, -1);
  rb_define_method(klass, 'on_dbl_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dbl_click', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_enter=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_enter', @retnil, -1);
  rb_define_method(klass, 'on_exit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_exit', @retnil, -1);
  rb_define_method(klass, 'on_get_control_class=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_get_control_class', @retnil, -1);
  rb_define_method(klass, 'on_get_site_info=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_get_site_info', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_paint=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_paint', @retnil, -1);
  rb_define_method(klass, 'on_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_resize', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  rb_define_method(klass, 'on_un_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_un_dock', @retnil, -1);
  klass := cActionMainMenuBar;
  rb_define_method(klass, 'action_manager=', @Prop_set_object, 1);
  rb_define_method(klass, 'action_manager', @Prop_get_object, 0);
  rb_define_method(klass, 'allow_hiding=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'allow_hiding', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'allow_hiding?', 'allow_hiding');
  rb_define_method(klass, 'anchors=', @Prop_set_set, 1);
  rb_define_method(klass, 'anchors', @Prop_get_set, 0);
  rb_define_method(klass, 'animation_style=', @Prop_set_integer, 1);
  rb_define_method(klass, 'animation_style', @Prop_get_integer, 0);
  rb_define_method(klass, 'bi_di_mode=', @Prop_set_integer, 1);
  rb_define_method(klass, 'bi_di_mode', @Prop_get_integer, 0);
  rb_define_method(klass, 'caption=', @Prop_set_string, 1);
  rb_define_method(klass, 'caption', @Prop_get_string, 0);
  rb_define_method(klass, 'color=', @Prop_set_integer, 1);
  rb_define_method(klass, 'color', @Prop_get_integer, 0);
  rb_define_method(klass, 'constraints=', @Prop_set_object, 1);
  rb_define_method(klass, 'constraints', @Prop_get_object, 0);
  rb_define_method(klass, 'edge_borders=', @Prop_set_set, 1);
  rb_define_method(klass, 'edge_borders', @Prop_get_set, 0);
  rb_define_method(klass, 'edge_inner=', @Prop_set_integer, 1);
  rb_define_method(klass, 'edge_inner', @Prop_get_integer, 0);
  rb_define_method(klass, 'edge_outer=', @Prop_set_integer, 1);
  rb_define_method(klass, 'edge_outer', @Prop_get_integer, 0);
  rb_define_method(klass, 'enabled=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'enabled', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'enabled?', 'enabled');
  rb_define_method(klass, 'expand_delay=', @Prop_set_integer, 1);
  rb_define_method(klass, 'expand_delay', @Prop_get_integer, 0);
  rb_define_method(klass, 'font=', @Prop_set_object, 1);
  rb_define_method(klass, 'font', @Prop_get_object, 0);
  rb_define_method(klass, 'horz_margin=', @Prop_set_integer, 1);
  rb_define_method(klass, 'horz_margin', @Prop_get_integer, 0);
  rb_define_method(klass, 'parent_bi_di_mode=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_bi_di_mode', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_bi_di_mode?', 'parent_bi_di_mode');
  rb_define_method(klass, 'parent_color=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_color', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_color?', 'parent_color');
  rb_define_method(klass, 'parent_font=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_font', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_font?', 'parent_font');
  rb_define_method(klass, 'parent_show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'parent_show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'parent_show_hint?', 'parent_show_hint');
  rb_define_method(klass, 'show_hint=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'show_hint', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'show_hint?', 'show_hint');
  rb_define_method(klass, 'spacing=', @Prop_set_integer, 1);
  rb_define_method(klass, 'spacing', @Prop_get_integer, 0);
  rb_define_method(klass, 'vert_margin=', @Prop_set_integer, 1);
  rb_define_method(klass, 'vert_margin', @Prop_get_integer, 0);
  rb_define_method(klass, 'visible=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'visible', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'visible?', 'visible');
  rb_define_method(klass, 'on_can_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_can_resize', @retnil, -1);
  rb_define_method(klass, 'on_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_click', @retnil, -1);
  rb_define_method(klass, 'on_control_created=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_control_created', @retnil, -1);
  rb_define_method(klass, 'on_constrained_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_constrained_resize', @retnil, -1);
  rb_define_method(klass, 'on_dock_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dock_drop', @retnil, -1);
  rb_define_method(klass, 'on_dock_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dock_over', @retnil, -1);
  rb_define_method(klass, 'on_dbl_click=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_dbl_click', @retnil, -1);
  rb_define_method(klass, 'on_drag_drop=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_drop', @retnil, -1);
  rb_define_method(klass, 'on_drag_over=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_drag_over', @retnil, -1);
  rb_define_method(klass, 'on_end_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_dock', @retnil, -1);
  rb_define_method(klass, 'on_end_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_end_drag', @retnil, -1);
  rb_define_method(klass, 'on_enter=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_enter', @retnil, -1);
  rb_define_method(klass, 'on_exit=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_exit', @retnil, -1);
  rb_define_method(klass, 'on_get_control_class=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_get_control_class', @retnil, -1);
  rb_define_method(klass, 'on_get_site_info=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_get_site_info', @retnil, -1);
  rb_define_method(klass, 'on_mouse_down=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_down', @retnil, -1);
  rb_define_method(klass, 'on_mouse_move=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_move', @retnil, -1);
  rb_define_method(klass, 'on_mouse_up=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_mouse_up', @retnil, -1);
  rb_define_method(klass, 'on_paint=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_paint', @retnil, -1);
  rb_define_method(klass, 'on_resize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_resize', @retnil, -1);
  rb_define_method(klass, 'on_start_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_dock', @retnil, -1);
  rb_define_method(klass, 'on_start_drag=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_start_drag', @retnil, -1);
  rb_define_method(klass, 'on_un_dock=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_un_dock', @retnil, -1);
  klass := cCustomizeDlg;
  rb_define_method(klass, 'action_manager=', @Prop_set_object, 1);
  rb_define_method(klass, 'action_manager', @Prop_get_object, 0);
  rb_define_method(klass, 'stay_on_top=', @Prop_set_boolean, 1);
  rb_define_method(klass, 'stay_on_top', @Prop_get_boolean, 0);
  rb_define_alias(klass, 'stay_on_top?', 'stay_on_top');
  rb_define_method(klass, 'on_close=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_close', @retnil, -1);
  rb_define_method(klass, 'on_show=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_show', @retnil, -1);
  klass := cActionManager;
  rb_define_method(klass, 'file_name=', @Prop_set_path, 1);
  rb_define_method(klass, 'file_name', @Prop_get_path, 0);
  rb_define_method(klass, 'action_bars=', @Prop_set_object, 1);
  rb_define_method(klass, 'action_bars', @Prop_get_object, 0);
  rb_define_method(klass, 'linked_action_lists=', @Prop_set_object, 1);
  rb_define_method(klass, 'linked_action_lists', @Prop_get_object, 0);
  rb_define_method(klass, 'images=', @Prop_set_object, 1);
  rb_define_method(klass, 'images', @Prop_get_object, 0);
  rb_define_method(klass, 'priority_schedule=', @Prop_set_object, 1);
  rb_define_method(klass, 'priority_schedule', @Prop_get_object, 0);
  rb_define_method(klass, 'state=', @Prop_set_integer, 1);
  rb_define_method(klass, 'state', @Prop_get_integer, 0);
  rb_define_method(klass, 'on_change=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_change', @retnil, -1);
  rb_define_method(klass, 'on_execute=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_execute', @retnil, -1);
  rb_define_method(klass, 'on_update=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_update', @retnil, -1);
  klass := cApplicationEvents;
  rb_define_method(klass, 'on_action_execute=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_action_execute', @retnil, -1);
  rb_define_method(klass, 'on_action_update=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_action_update', @retnil, -1);
  rb_define_method(klass, 'on_activate=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_activate', @retnil, -1);
  rb_define_method(klass, 'on_deactivate=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_deactivate', @retnil, -1);
  rb_define_method(klass, 'on_exception=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_exception', @retnil, -1);
  rb_define_method(klass, 'on_idle=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_idle', @retnil, -1);
  rb_define_method(klass, 'on_help=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_help', @retnil, -1);
  rb_define_method(klass, 'on_hint=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_hint', @retnil, -1);
  rb_define_method(klass, 'on_message=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_message', @retnil, -1);
  rb_define_method(klass, 'on_minimize=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_minimize', @retnil, -1);
  rb_define_method(klass, 'on_restore=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_restore', @retnil, -1);
  rb_define_method(klass, 'on_show_hint=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_show_hint', @retnil, -1);
  rb_define_method(klass, 'on_short_cut=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_short_cut', @retnil, -1);
  rb_define_method(klass, 'on_setting_change=', @Prop_set_method, 1);
  rb_define_method(klass, 'on_setting_change', @retnil, -1);
