package lcl

import (
	. "github.com/rarnu/golcl/lcl/api"
	. "github.com/rarnu/golcl/lcl/types"
	"unsafe"
)

type TGroupBox struct {
	IWinControl
	instance uintptr

	ptr unsafe.Pointer
}

func NewGroupBox(owner IComponent) *TGroupBox {
	g := new(TGroupBox)
	g.instance = GroupBox_Create(CheckPtr(owner))
	g.ptr = unsafe.Pointer(g.instance)
	return g
}

func AsGroupBox(obj any) *TGroupBox {
	instance, ptr := getInstance(obj)
	if instance == 0 {
		return nil
	}
	return &TGroupBox{instance: instance, ptr: ptr}
}

func GroupBoxFromInst(inst uintptr) *TGroupBox {
	return AsGroupBox(inst)
}

func GroupBoxFromObj(obj IObject) *TGroupBox {
	return AsGroupBox(obj)
}

func GroupBoxFromUnsafePointer(ptr unsafe.Pointer) *TGroupBox {
	return AsGroupBox(ptr)
}

func (g *TGroupBox) Free() {
	if g.instance != 0 {
		GroupBox_Free(g.instance)
		g.instance, g.ptr = 0, nullptr
	}
}

func (g *TGroupBox) Instance() uintptr {
	return g.instance
}

func (g *TGroupBox) UnsafeAddr() unsafe.Pointer {
	return g.ptr
}

func (g *TGroupBox) IsValid() bool {
	return g.instance != 0
}

func (g *TGroupBox) Is() TIs {
	return TIs(g.instance)
}

func TGroupBoxClass() TClass {
	return GroupBox_StaticClassType()
}

func (g *TGroupBox) CanFocus() bool {
	return GroupBox_CanFocus(g.instance)
}

func (g *TGroupBox) ContainsControl(Control IControl) bool {
	return GroupBox_ContainsControl(g.instance, CheckPtr(Control))
}

func (g *TGroupBox) ControlAtPos(Pos TPoint, AllowDisabled bool, AllowWinControls bool, AllLevels bool) *TControl {
	return AsControl(GroupBox_ControlAtPos(g.instance, Pos, AllowDisabled, AllowWinControls, AllLevels))
}

func (g *TGroupBox) DisableAlign() {
	GroupBox_DisableAlign(g.instance)
}

func (g *TGroupBox) EnableAlign() {
	GroupBox_EnableAlign(g.instance)
}

func (g *TGroupBox) FindChildControl(ControlName string) *TControl {
	return AsControl(GroupBox_FindChildControl(g.instance, ControlName))
}

func (g *TGroupBox) FlipChildren(AllLevels bool) {
	GroupBox_FlipChildren(g.instance, AllLevels)
}

func (g *TGroupBox) Focused() bool {
	return GroupBox_Focused(g.instance)
}

func (g *TGroupBox) HandleAllocated() bool {
	return GroupBox_HandleAllocated(g.instance)
}

func (g *TGroupBox) InsertControl(AControl IControl) {
	GroupBox_InsertControl(g.instance, CheckPtr(AControl))
}

func (g *TGroupBox) Invalidate() {
	GroupBox_Invalidate(g.instance)
}

func (g *TGroupBox) PaintTo(DC HDC, X int32, Y int32) {
	GroupBox_PaintTo(g.instance, DC, X, Y)
}

func (g *TGroupBox) RemoveControl(AControl IControl) {
	GroupBox_RemoveControl(g.instance, CheckPtr(AControl))
}

func (g *TGroupBox) Realign() {
	GroupBox_Realign(g.instance)
}

func (g *TGroupBox) Repaint() {
	GroupBox_Repaint(g.instance)
}

func (g *TGroupBox) ScaleBy(M int32, D int32) {
	GroupBox_ScaleBy(g.instance, M, D)
}

func (g *TGroupBox) ScrollBy(DeltaX int32, DeltaY int32) {
	GroupBox_ScrollBy(g.instance, DeltaX, DeltaY)
}

func (g *TGroupBox) SetBounds(ALeft int32, ATop int32, AWidth int32, AHeight int32) {
	GroupBox_SetBounds(g.instance, ALeft, ATop, AWidth, AHeight)
}

func (g *TGroupBox) SetFocus() {
	GroupBox_SetFocus(g.instance)
}

func (g *TGroupBox) Update() {
	GroupBox_Update(g.instance)
}

func (g *TGroupBox) BringToFront() {
	GroupBox_BringToFront(g.instance)
}

func (g *TGroupBox) ClientToScreen(Point TPoint) TPoint {
	return GroupBox_ClientToScreen(g.instance, Point)
}

func (g *TGroupBox) ClientToParent(Point TPoint, AParent IWinControl) TPoint {
	return GroupBox_ClientToParent(g.instance, Point, CheckPtr(AParent))
}

func (g *TGroupBox) Dragging() bool {
	return GroupBox_Dragging(g.instance)
}

func (g *TGroupBox) HasParent() bool {
	return GroupBox_HasParent(g.instance)
}

func (g *TGroupBox) Hide() {
	GroupBox_Hide(g.instance)
}

func (g *TGroupBox) Perform(Msg uint32, WParam uintptr, LParam int) int {
	return GroupBox_Perform(g.instance, Msg, WParam, LParam)
}

func (g *TGroupBox) Refresh() {
	GroupBox_Refresh(g.instance)
}

func (g *TGroupBox) ScreenToClient(Point TPoint) TPoint {
	return GroupBox_ScreenToClient(g.instance, Point)
}

func (g *TGroupBox) ParentToClient(Point TPoint, AParent IWinControl) TPoint {
	return GroupBox_ParentToClient(g.instance, Point, CheckPtr(AParent))
}

func (g *TGroupBox) SendToBack() {
	GroupBox_SendToBack(g.instance)
}

func (g *TGroupBox) Show() {
	GroupBox_Show(g.instance)
}

func (g *TGroupBox) GetTextBuf(Buffer *string, BufSize int32) int32 {
	return GroupBox_GetTextBuf(g.instance, Buffer, BufSize)
}

func (g *TGroupBox) GetTextLen() int32 {
	return GroupBox_GetTextLen(g.instance)
}

func (g *TGroupBox) SetTextBuf(Buffer string) {
	GroupBox_SetTextBuf(g.instance, Buffer)
}

func (g *TGroupBox) FindComponent(AName string) *TComponent {
	return AsComponent(GroupBox_FindComponent(g.instance, AName))
}

func (g *TGroupBox) GetNamePath() string {
	return GroupBox_GetNamePath(g.instance)
}

func (g *TGroupBox) Assign(Source IObject) {
	GroupBox_Assign(g.instance, CheckPtr(Source))
}

func (g *TGroupBox) ClassType() TClass {
	return GroupBox_ClassType(g.instance)
}

func (g *TGroupBox) ClassName() string {
	return GroupBox_ClassName(g.instance)
}

func (g *TGroupBox) InstanceSize() int32 {
	return GroupBox_InstanceSize(g.instance)
}

func (g *TGroupBox) InheritsFrom(AClass TClass) bool {
	return GroupBox_InheritsFrom(g.instance, AClass)
}

func (g *TGroupBox) Equals(Obj IObject) bool {
	return GroupBox_Equals(g.instance, CheckPtr(Obj))
}

func (g *TGroupBox) GetHashCode() int32 {
	return GroupBox_GetHashCode(g.instance)
}

func (g *TGroupBox) ToString() string {
	return GroupBox_ToString(g.instance)
}

func (g *TGroupBox) AnchorToNeighbour(ASide TAnchorKind, ASpace int32, ASibling IControl) {
	GroupBox_AnchorToNeighbour(g.instance, ASide, ASpace, CheckPtr(ASibling))
}

func (g *TGroupBox) AnchorParallel(ASide TAnchorKind, ASpace int32, ASibling IControl) {
	GroupBox_AnchorParallel(g.instance, ASide, ASpace, CheckPtr(ASibling))
}

func (g *TGroupBox) AnchorHorizontalCenterTo(ASibling IControl) {
	GroupBox_AnchorHorizontalCenterTo(g.instance, CheckPtr(ASibling))
}

func (g *TGroupBox) AnchorVerticalCenterTo(ASibling IControl) {
	GroupBox_AnchorVerticalCenterTo(g.instance, CheckPtr(ASibling))
}

func (g *TGroupBox) AnchorSame(ASide TAnchorKind, ASibling IControl) {
	GroupBox_AnchorSame(g.instance, ASide, CheckPtr(ASibling))
}

func (g *TGroupBox) AnchorAsAlign(ATheAlign TAlign, ASpace int32) {
	GroupBox_AnchorAsAlign(g.instance, ATheAlign, ASpace)
}

func (g *TGroupBox) AnchorClient(ASpace int32) {
	GroupBox_AnchorClient(g.instance, ASpace)
}

func (g *TGroupBox) ScaleDesignToForm(ASize int32) int32 {
	return GroupBox_ScaleDesignToForm(g.instance, ASize)
}

func (g *TGroupBox) ScaleFormToDesign(ASize int32) int32 {
	return GroupBox_ScaleFormToDesign(g.instance, ASize)
}

func (g *TGroupBox) Scale96ToForm(ASize int32) int32 {
	return GroupBox_Scale96ToForm(g.instance, ASize)
}

func (g *TGroupBox) ScaleFormTo96(ASize int32) int32 {
	return GroupBox_ScaleFormTo96(g.instance, ASize)
}

func (g *TGroupBox) Scale96ToFont(ASize int32) int32 {
	return GroupBox_Scale96ToFont(g.instance, ASize)
}

func (g *TGroupBox) ScaleFontTo96(ASize int32) int32 {
	return GroupBox_ScaleFontTo96(g.instance, ASize)
}

func (g *TGroupBox) ScaleScreenToFont(ASize int32) int32 {
	return GroupBox_ScaleScreenToFont(g.instance, ASize)
}

func (g *TGroupBox) ScaleFontToScreen(ASize int32) int32 {
	return GroupBox_ScaleFontToScreen(g.instance, ASize)
}

func (g *TGroupBox) Scale96ToScreen(ASize int32) int32 {
	return GroupBox_Scale96ToScreen(g.instance, ASize)
}

func (g *TGroupBox) ScaleScreenTo96(ASize int32) int32 {
	return GroupBox_ScaleScreenTo96(g.instance, ASize)
}

func (g *TGroupBox) AutoAdjustLayout(AMode TLayoutAdjustmentPolicy, AFromPPI int32, AToPPI int32, AOldFormWidth int32, ANewFormWidth int32) {
	GroupBox_AutoAdjustLayout(g.instance, AMode, AFromPPI, AToPPI, AOldFormWidth, ANewFormWidth)
}

func (g *TGroupBox) FixDesignFontsPPI(ADesignTimePPI int32) {
	GroupBox_FixDesignFontsPPI(g.instance, ADesignTimePPI)
}

func (g *TGroupBox) ScaleFontsPPI(AToPPI int32, AProportion float64) {
	GroupBox_ScaleFontsPPI(g.instance, AToPPI, AProportion)
}

func (g *TGroupBox) Align() TAlign {
	return GroupBox_GetAlign(g.instance)
}

func (g *TGroupBox) SetAlign(value TAlign) {
	GroupBox_SetAlign(g.instance, value)
}

func (g *TGroupBox) Anchors() TAnchors {
	return GroupBox_GetAnchors(g.instance)
}

func (g *TGroupBox) SetAnchors(value TAnchors) {
	GroupBox_SetAnchors(g.instance, value)
}

func (g *TGroupBox) BiDiMode() TBiDiMode {
	return GroupBox_GetBiDiMode(g.instance)
}

func (g *TGroupBox) SetBiDiMode(value TBiDiMode) {
	GroupBox_SetBiDiMode(g.instance, value)
}

func (g *TGroupBox) Caption() string {
	return GroupBox_GetCaption(g.instance)
}

func (g *TGroupBox) SetCaption(value string) {
	GroupBox_SetCaption(g.instance, value)
}

func (g *TGroupBox) Color() TColor {
	return GroupBox_GetColor(g.instance)
}

func (g *TGroupBox) SetColor(value TColor) {
	GroupBox_SetColor(g.instance, value)
}

func (g *TGroupBox) Constraints() *TSizeConstraints {
	return AsSizeConstraints(GroupBox_GetConstraints(g.instance))
}

func (g *TGroupBox) SetConstraints(value *TSizeConstraints) {
	GroupBox_SetConstraints(g.instance, CheckPtr(value))
}

func (g *TGroupBox) DockSite() bool {
	return GroupBox_GetDockSite(g.instance)
}

func (g *TGroupBox) SetDockSite(value bool) {
	GroupBox_SetDockSite(g.instance, value)
}

func (g *TGroupBox) DoubleBuffered() bool {
	return GroupBox_GetDoubleBuffered(g.instance)
}

func (g *TGroupBox) SetDoubleBuffered(value bool) {
	GroupBox_SetDoubleBuffered(g.instance, value)
}

func (g *TGroupBox) DragCursor() TCursor {
	return GroupBox_GetDragCursor(g.instance)
}

func (g *TGroupBox) SetDragCursor(value TCursor) {
	GroupBox_SetDragCursor(g.instance, value)
}

func (g *TGroupBox) DragKind() TDragKind {
	return GroupBox_GetDragKind(g.instance)
}

func (g *TGroupBox) SetDragKind(value TDragKind) {
	GroupBox_SetDragKind(g.instance, value)
}

func (g *TGroupBox) DragMode() TDragMode {
	return GroupBox_GetDragMode(g.instance)
}

func (g *TGroupBox) SetDragMode(value TDragMode) {
	GroupBox_SetDragMode(g.instance, value)
}

func (g *TGroupBox) Enabled() bool {
	return GroupBox_GetEnabled(g.instance)
}

func (g *TGroupBox) SetEnabled(value bool) {
	GroupBox_SetEnabled(g.instance, value)
}

func (g *TGroupBox) Font() *TFont {
	return AsFont(GroupBox_GetFont(g.instance))
}

func (g *TGroupBox) SetFont(value *TFont) {
	GroupBox_SetFont(g.instance, CheckPtr(value))
}

func (g *TGroupBox) ParentBackground() bool {
	return GroupBox_GetParentBackground(g.instance)
}

func (g *TGroupBox) SetParentBackground(value bool) {
	GroupBox_SetParentBackground(g.instance, value)
}

func (g *TGroupBox) ParentColor() bool {
	return GroupBox_GetParentColor(g.instance)
}

func (g *TGroupBox) SetParentColor(value bool) {
	GroupBox_SetParentColor(g.instance, value)
}

func (g *TGroupBox) ParentDoubleBuffered() bool {
	return GroupBox_GetParentDoubleBuffered(g.instance)
}

func (g *TGroupBox) SetParentDoubleBuffered(value bool) {
	GroupBox_SetParentDoubleBuffered(g.instance, value)
}

func (g *TGroupBox) ParentFont() bool {
	return GroupBox_GetParentFont(g.instance)
}

func (g *TGroupBox) SetParentFont(value bool) {
	GroupBox_SetParentFont(g.instance, value)
}

func (g *TGroupBox) ParentShowHint() bool {
	return GroupBox_GetParentShowHint(g.instance)
}

func (g *TGroupBox) SetParentShowHint(value bool) {
	GroupBox_SetParentShowHint(g.instance, value)
}

func (g *TGroupBox) PopupMenu() *TPopupMenu {
	return AsPopupMenu(GroupBox_GetPopupMenu(g.instance))
}

func (g *TGroupBox) SetPopupMenu(value IComponent) {
	GroupBox_SetPopupMenu(g.instance, CheckPtr(value))
}

func (g *TGroupBox) ShowHint() bool {
	return GroupBox_GetShowHint(g.instance)
}

func (g *TGroupBox) SetShowHint(value bool) {
	GroupBox_SetShowHint(g.instance, value)
}

func (g *TGroupBox) TabOrder() TTabOrder {
	return GroupBox_GetTabOrder(g.instance)
}

func (g *TGroupBox) SetTabOrder(value TTabOrder) {
	GroupBox_SetTabOrder(g.instance, value)
}

func (g *TGroupBox) TabStop() bool {
	return GroupBox_GetTabStop(g.instance)
}

func (g *TGroupBox) SetTabStop(value bool) {
	GroupBox_SetTabStop(g.instance, value)
}

func (g *TGroupBox) Visible() bool {
	return GroupBox_GetVisible(g.instance)
}

func (g *TGroupBox) SetVisible(value bool) {
	GroupBox_SetVisible(g.instance, value)
}

func (g *TGroupBox) SetOnAlignPosition(fn TAlignPositionEvent) {
	GroupBox_SetOnAlignPosition(g.instance, fn)
}

func (g *TGroupBox) SetOnClick(fn TNotifyEvent) {
	GroupBox_SetOnClick(g.instance, fn)
}

func (g *TGroupBox) SetOnContextPopup(fn TContextPopupEvent) {
	GroupBox_SetOnContextPopup(g.instance, fn)
}

func (g *TGroupBox) SetOnDblClick(fn TNotifyEvent) {
	GroupBox_SetOnDblClick(g.instance, fn)
}

func (g *TGroupBox) SetOnDragDrop(fn TDragDropEvent) {
	GroupBox_SetOnDragDrop(g.instance, fn)
}

func (g *TGroupBox) SetOnDockDrop(fn TDockDropEvent) {
	GroupBox_SetOnDockDrop(g.instance, fn)
}

func (g *TGroupBox) SetOnDragOver(fn TDragOverEvent) {
	GroupBox_SetOnDragOver(g.instance, fn)
}

func (g *TGroupBox) SetOnEndDock(fn TEndDragEvent) {
	GroupBox_SetOnEndDock(g.instance, fn)
}

func (g *TGroupBox) SetOnEndDrag(fn TEndDragEvent) {
	GroupBox_SetOnEndDrag(g.instance, fn)
}

func (g *TGroupBox) SetOnEnter(fn TNotifyEvent) {
	GroupBox_SetOnEnter(g.instance, fn)
}

func (g *TGroupBox) SetOnExit(fn TNotifyEvent) {
	GroupBox_SetOnExit(g.instance, fn)
}

func (g *TGroupBox) SetOnGetSiteInfo(fn TGetSiteInfoEvent) {
	GroupBox_SetOnGetSiteInfo(g.instance, fn)
}

func (g *TGroupBox) SetOnMouseDown(fn TMouseEvent) {
	GroupBox_SetOnMouseDown(g.instance, fn)
}

func (g *TGroupBox) SetOnMouseEnter(fn TNotifyEvent) {
	GroupBox_SetOnMouseEnter(g.instance, fn)
}

func (g *TGroupBox) SetOnMouseLeave(fn TNotifyEvent) {
	GroupBox_SetOnMouseLeave(g.instance, fn)
}

func (g *TGroupBox) SetOnMouseMove(fn TMouseMoveEvent) {
	GroupBox_SetOnMouseMove(g.instance, fn)
}

func (g *TGroupBox) SetOnMouseUp(fn TMouseEvent) {
	GroupBox_SetOnMouseUp(g.instance, fn)
}

func (g *TGroupBox) SetOnStartDock(fn TStartDockEvent) {
	GroupBox_SetOnStartDock(g.instance, fn)
}

func (g *TGroupBox) SetOnUnDock(fn TUnDockEvent) {
	GroupBox_SetOnUnDock(g.instance, fn)
}

func (g *TGroupBox) DockClientCount() int32 {
	return GroupBox_GetDockClientCount(g.instance)
}

func (g *TGroupBox) MouseInClient() bool {
	return GroupBox_GetMouseInClient(g.instance)
}

func (g *TGroupBox) VisibleDockClientCount() int32 {
	return GroupBox_GetVisibleDockClientCount(g.instance)
}

func (g *TGroupBox) Brush() *TBrush {
	return AsBrush(GroupBox_GetBrush(g.instance))
}

func (g *TGroupBox) ControlCount() int32 {
	return GroupBox_GetControlCount(g.instance)
}

func (g *TGroupBox) Handle() HWND {
	return GroupBox_GetHandle(g.instance)
}

func (g *TGroupBox) ParentWindow() HWND {
	return GroupBox_GetParentWindow(g.instance)
}

func (g *TGroupBox) SetParentWindow(value HWND) {
	GroupBox_SetParentWindow(g.instance, value)
}

func (g *TGroupBox) Showing() bool {
	return GroupBox_GetShowing(g.instance)
}

func (g *TGroupBox) UseDockManager() bool {
	return GroupBox_GetUseDockManager(g.instance)
}

func (g *TGroupBox) SetUseDockManager(value bool) {
	GroupBox_SetUseDockManager(g.instance, value)
}

func (g *TGroupBox) Action() *TAction {
	return AsAction(GroupBox_GetAction(g.instance))
}

func (g *TGroupBox) SetAction(value IComponent) {
	GroupBox_SetAction(g.instance, CheckPtr(value))
}

func (g *TGroupBox) BoundsRect() TRect {
	return GroupBox_GetBoundsRect(g.instance)
}

func (g *TGroupBox) SetBoundsRect(value TRect) {
	GroupBox_SetBoundsRect(g.instance, value)
}

func (g *TGroupBox) ClientHeight() int32 {
	return GroupBox_GetClientHeight(g.instance)
}

func (g *TGroupBox) SetClientHeight(value int32) {
	GroupBox_SetClientHeight(g.instance, value)
}

func (g *TGroupBox) ClientOrigin() TPoint {
	return GroupBox_GetClientOrigin(g.instance)
}

func (g *TGroupBox) ClientRect() TRect {
	return GroupBox_GetClientRect(g.instance)
}

func (g *TGroupBox) ClientWidth() int32 {
	return GroupBox_GetClientWidth(g.instance)
}

func (g *TGroupBox) SetClientWidth(value int32) {
	GroupBox_SetClientWidth(g.instance, value)
}

func (g *TGroupBox) ControlState() TControlState {
	return GroupBox_GetControlState(g.instance)
}

func (g *TGroupBox) SetControlState(value TControlState) {
	GroupBox_SetControlState(g.instance, value)
}

func (g *TGroupBox) ControlStyle() TControlStyle {
	return GroupBox_GetControlStyle(g.instance)
}

func (g *TGroupBox) SetControlStyle(value TControlStyle) {
	GroupBox_SetControlStyle(g.instance, value)
}

func (g *TGroupBox) Floating() bool {
	return GroupBox_GetFloating(g.instance)
}

func (g *TGroupBox) Parent() *TWinControl {
	return AsWinControl(GroupBox_GetParent(g.instance))
}

func (g *TGroupBox) SetParent(value IWinControl) {
	GroupBox_SetParent(g.instance, CheckPtr(value))
}

func (g *TGroupBox) Left() int32 {
	return GroupBox_GetLeft(g.instance)
}

func (g *TGroupBox) SetLeft(value int32) {
	GroupBox_SetLeft(g.instance, value)
}

func (g *TGroupBox) Top() int32 {
	return GroupBox_GetTop(g.instance)
}

func (g *TGroupBox) SetTop(value int32) {
	GroupBox_SetTop(g.instance, value)
}

func (g *TGroupBox) Width() int32 {
	return GroupBox_GetWidth(g.instance)
}

func (g *TGroupBox) SetWidth(value int32) {
	GroupBox_SetWidth(g.instance, value)
}

func (g *TGroupBox) Height() int32 {
	return GroupBox_GetHeight(g.instance)
}

func (g *TGroupBox) SetHeight(value int32) {
	GroupBox_SetHeight(g.instance, value)
}

func (g *TGroupBox) Cursor() TCursor {
	return GroupBox_GetCursor(g.instance)
}

func (g *TGroupBox) SetCursor(value TCursor) {
	GroupBox_SetCursor(g.instance, value)
}

func (g *TGroupBox) Hint() string {
	return GroupBox_GetHint(g.instance)
}

func (g *TGroupBox) SetHint(value string) {
	GroupBox_SetHint(g.instance, value)
}

func (g *TGroupBox) ComponentCount() int32 {
	return GroupBox_GetComponentCount(g.instance)
}

func (g *TGroupBox) ComponentIndex() int32 {
	return GroupBox_GetComponentIndex(g.instance)
}

func (g *TGroupBox) SetComponentIndex(value int32) {
	GroupBox_SetComponentIndex(g.instance, value)
}

func (g *TGroupBox) Owner() *TComponent {
	return AsComponent(GroupBox_GetOwner(g.instance))
}

func (g *TGroupBox) Name() string {
	return GroupBox_GetName(g.instance)
}

func (g *TGroupBox) SetName(value string) {
	GroupBox_SetName(g.instance, value)
}

func (g *TGroupBox) Tag() int {
	return GroupBox_GetTag(g.instance)
}

func (g *TGroupBox) SetTag(value int) {
	GroupBox_SetTag(g.instance, value)
}

func (g *TGroupBox) AnchorSideLeft() *TAnchorSide {
	return AsAnchorSide(GroupBox_GetAnchorSideLeft(g.instance))
}

func (g *TGroupBox) SetAnchorSideLeft(value *TAnchorSide) {
	GroupBox_SetAnchorSideLeft(g.instance, CheckPtr(value))
}

func (g *TGroupBox) AnchorSideTop() *TAnchorSide {
	return AsAnchorSide(GroupBox_GetAnchorSideTop(g.instance))
}

func (g *TGroupBox) SetAnchorSideTop(value *TAnchorSide) {
	GroupBox_SetAnchorSideTop(g.instance, CheckPtr(value))
}

func (g *TGroupBox) AnchorSideRight() *TAnchorSide {
	return AsAnchorSide(GroupBox_GetAnchorSideRight(g.instance))
}

func (g *TGroupBox) SetAnchorSideRight(value *TAnchorSide) {
	GroupBox_SetAnchorSideRight(g.instance, CheckPtr(value))
}

func (g *TGroupBox) AnchorSideBottom() *TAnchorSide {
	return AsAnchorSide(GroupBox_GetAnchorSideBottom(g.instance))
}

func (g *TGroupBox) SetAnchorSideBottom(value *TAnchorSide) {
	GroupBox_SetAnchorSideBottom(g.instance, CheckPtr(value))
}

func (g *TGroupBox) ChildSizing() *TControlChildSizing {
	return AsControlChildSizing(GroupBox_GetChildSizing(g.instance))
}

func (g *TGroupBox) SetChildSizing(value *TControlChildSizing) {
	GroupBox_SetChildSizing(g.instance, CheckPtr(value))
}

func (g *TGroupBox) BorderSpacing() *TControlBorderSpacing {
	return AsControlBorderSpacing(GroupBox_GetBorderSpacing(g.instance))
}

func (g *TGroupBox) SetBorderSpacing(value *TControlBorderSpacing) {
	GroupBox_SetBorderSpacing(g.instance, CheckPtr(value))
}

func (g *TGroupBox) DockClients(Index int32) *TControl {
	return AsControl(GroupBox_GetDockClients(g.instance, Index))
}

func (g *TGroupBox) Controls(Index int32) *TControl {
	return AsControl(GroupBox_GetControls(g.instance, Index))
}

func (g *TGroupBox) Components(AIndex int32) *TComponent {
	return AsComponent(GroupBox_GetComponents(g.instance, AIndex))
}

func (g *TGroupBox) AnchorSide(AKind TAnchorKind) *TAnchorSide {
	return AsAnchorSide(GroupBox_GetAnchorSide(g.instance, AKind))
}
//----------------------------------------
// The code is automatically generated by the GenlibLcl tool.
// Copyright © ying32. All Rights Reserved.
//
// Licensed under Apache License 2.0
//
//----------------------------------------

package lcl

import (
	. "github.com/rarnu/golcl/lcl/api"
	. "github.com/rarnu/golcl/lcl/types"
	"unsafe"
)

type TGroupBox struct {
	IWinControl
	instance uintptr
	// 特殊情况下使用，主要应对Go的GC问题，与LCL没有太多关系。
	ptr unsafe.Pointer
}

// 创建一个新的对象。
//
// Create a new object.
func NewGroupBox(owner IComponent) *TGroupBox {
	g := new(TGroupBox)
	g.instance = GroupBox_Create(CheckPtr(owner))
	g.ptr = unsafe.Pointer(g.instance)
	return g
}

// 动态转换一个已存在的对象实例。
//
// Dynamically convert an existing object instance.
func AsGroupBox(obj any) *TGroupBox {
	instance, ptr := getInstance(obj)
	if instance == 0 {
		return nil
	}
	return &TGroupBox{instance: instance, ptr: ptr}
}

// -------------------------- Deprecated begin --------------------------
// 新建一个对象来自已经存在的对象实例指针。
//
// Create a new object from an existing object instance pointer.
// Deprecated: use AsGroupBox.
func GroupBoxFromInst(inst uintptr) *TGroupBox {
	return AsGroupBox(inst)
}

// 新建一个对象来自已经存在的对象实例。
//
// Create a new object from an existing object instance.
// Deprecated: use AsGroupBox.
func GroupBoxFromObj(obj IObject) *TGroupBox {
	return AsGroupBox(obj)
}

// 新建一个对象来自不安全的地址。注意：使用此函数可能造成一些不明情况，慎用。
//
// Create a new object from an unsecured address. Note: Using this function may cause some unclear situations and be used with caution..
// Deprecated: use AsGroupBox.
func GroupBoxFromUnsafePointer(ptr unsafe.Pointer) *TGroupBox {
	return AsGroupBox(ptr)
}

// -------------------------- Deprecated end --------------------------
// 释放对象。
//
// Free object.
func (g *TGroupBox) Free() {
	if g.instance != 0 {
		GroupBox_Free(g.instance)
		g.instance, g.ptr = 0, nullptr
	}
}

// 返回对象实例指针。
//
// Return object instance pointer.
func (g *TGroupBox) Instance() uintptr {
	return g.instance
}

// 获取一个不安全的地址。
//
// Get an unsafe address.
func (g *TGroupBox) UnsafeAddr() unsafe.Pointer {
	return g.ptr
}

// 检测地址是否为空。
//
// Check if the address is empty.
func (g *TGroupBox) IsValid() bool {
	return g.instance != 0
}

// 检测当前对象是否继承自目标对象。
//
// Checks whether the current object is inherited from the target object.
func (g *TGroupBox) Is() TIs {
	return TIs(g.instance)
}

// 动态转换当前对象为目标对象。
//
// Dynamically convert the current object to the target object.
//func (g *TGroupBox) As() TAs {
//    return TAs(g.instance)
//}

// 获取类信息指针。
//
// Get class information pointer.
func TGroupBoxClass() TClass {
	return GroupBox_StaticClassType()
}

// 是否可以获得焦点。
func (g *TGroupBox) CanFocus() bool {
	return GroupBox_CanFocus(g.instance)
}

// 返回是否包含指定控件。
//
// it's contain a specified control.
func (g *TGroupBox) ContainsControl(Control IControl) bool {
	return GroupBox_ContainsControl(g.instance, CheckPtr(Control))
}

// 返回指定坐标及相关属性位置控件。
//
// Returns the specified coordinate and the relevant attribute position control..
func (g *TGroupBox) ControlAtPos(Pos TPoint, AllowDisabled bool, AllowWinControls bool, AllLevels bool) *TControl {
	return AsControl(GroupBox_ControlAtPos(g.instance, Pos, AllowDisabled, AllowWinControls, AllLevels))
}

// 禁用控件的对齐。
//
// Disable control alignment.
func (g *TGroupBox) DisableAlign() {
	GroupBox_DisableAlign(g.instance)
}

// 启用控件对齐。
//
// Enabled control alignment.
func (g *TGroupBox) EnableAlign() {
	GroupBox_EnableAlign(g.instance)
}

// 查找子控件。
//
// Find sub controls.
func (g *TGroupBox) FindChildControl(ControlName string) *TControl {
	return AsControl(GroupBox_FindChildControl(g.instance, ControlName))
}

func (g *TGroupBox) FlipChildren(AllLevels bool) {
	GroupBox_FlipChildren(g.instance, AllLevels)
}

// 返回是否获取焦点。
//
// Return to get focus.
func (g *TGroupBox) Focused() bool {
	return GroupBox_Focused(g.instance)
}

// 句柄是否已经分配。
//
// Is the handle already allocated.
func (g *TGroupBox) HandleAllocated() bool {
	return GroupBox_HandleAllocated(g.instance)
}

// 插入一个控件。
//
// Insert a control.
func (g *TGroupBox) InsertControl(AControl IControl) {
	GroupBox_InsertControl(g.instance, CheckPtr(AControl))
}

// 要求重绘。
//
// Redraw.
func (g *TGroupBox) Invalidate() {
	GroupBox_Invalidate(g.instance)
}

// 绘画至指定DC。
//
// Painting to the specified DC.
func (g *TGroupBox) PaintTo(DC HDC, X int32, Y int32) {
	GroupBox_PaintTo(g.instance, DC, X, Y)
}

// 移除一个控件。
//
// Remove a control.
func (g *TGroupBox) RemoveControl(AControl IControl) {
	GroupBox_RemoveControl(g.instance, CheckPtr(AControl))
}

// 重新对齐。
//
// Realign.
func (g *TGroupBox) Realign() {
	GroupBox_Realign(g.instance)
}

// 重绘。
//
// Repaint.
func (g *TGroupBox) Repaint() {
	GroupBox_Repaint(g.instance)
}

// 按比例缩放。
//
// Scale by.
func (g *TGroupBox) ScaleBy(M int32, D int32) {
	GroupBox_ScaleBy(g.instance, M, D)
}

// 滚动至指定位置。
//
// Scroll by.
func (g *TGroupBox) ScrollBy(DeltaX int32, DeltaY int32) {
	GroupBox_ScrollBy(g.instance, DeltaX, DeltaY)
}

// 设置组件边界。
//
// Set component boundaries.
func (g *TGroupBox) SetBounds(ALeft int32, ATop int32, AWidth int32, AHeight int32) {
	GroupBox_SetBounds(g.instance, ALeft, ATop, AWidth, AHeight)
}

// 设置控件焦点。
//
// Set control focus.
func (g *TGroupBox) SetFocus() {
	GroupBox_SetFocus(g.instance)
}

// 控件更新。
//
// Update.
func (g *TGroupBox) Update() {
	GroupBox_Update(g.instance)
}

// 将控件置于最前。
//
// Bring the control to the front.
func (g *TGroupBox) BringToFront() {
	GroupBox_BringToFront(g.instance)
}

// 将客户端坐标转为绝对的屏幕坐标。
//
// Convert client coordinates to absolute screen coordinates.
func (g *TGroupBox) ClientToScreen(Point TPoint) TPoint {
	return GroupBox_ClientToScreen(g.instance, Point)
}

// 将客户端坐标转为父容器坐标。
//
// Convert client coordinates to parent container coordinates.
func (g *TGroupBox) ClientToParent(Point TPoint, AParent IWinControl) TPoint {
	return GroupBox_ClientToParent(g.instance, Point, CheckPtr(AParent))
}

// 是否在拖拽中。
//
// Is it in the middle of dragging.
func (g *TGroupBox) Dragging() bool {
	return GroupBox_Dragging(g.instance)
}

// 是否有父容器。
//
// Is there a parent container.
func (g *TGroupBox) HasParent() bool {
	return GroupBox_HasParent(g.instance)
}

// 隐藏控件。
//
// Hidden control.
func (g *TGroupBox) Hide() {
	GroupBox_Hide(g.instance)
}

// 发送一个消息。
//
// Send a message.
func (g *TGroupBox) Perform(Msg uint32, WParam uintptr, LParam int) int {
	return GroupBox_Perform(g.instance, Msg, WParam, LParam)
}

// 刷新控件。
//
// Refresh control.
func (g *TGroupBox) Refresh() {
	GroupBox_Refresh(g.instance)
}

// 将屏幕坐标转为客户端坐标。
//
// Convert screen coordinates to client coordinates.
func (g *TGroupBox) ScreenToClient(Point TPoint) TPoint {
	return GroupBox_ScreenToClient(g.instance, Point)
}

// 将父容器坐标转为客户端坐标。
//
// Convert parent container coordinates to client coordinates.
func (g *TGroupBox) ParentToClient(Point TPoint, AParent IWinControl) TPoint {
	return GroupBox_ParentToClient(g.instance, Point, CheckPtr(AParent))
}

// 控件至于最后面。
//
// The control is placed at the end.
func (g *TGroupBox) SendToBack() {
	GroupBox_SendToBack(g.instance)
}

// 显示控件。
//
// Show control.
func (g *TGroupBox) Show() {
	GroupBox_Show(g.instance)
}

// 获取控件的字符，如果有。
//
// Get the characters of the control, if any.
func (g *TGroupBox) GetTextBuf(Buffer *string, BufSize int32) int32 {
	return GroupBox_GetTextBuf(g.instance, Buffer, BufSize)
}

// 获取控件的字符长，如果有。
//
// Get the character length of the control, if any.
func (g *TGroupBox) GetTextLen() int32 {
	return GroupBox_GetTextLen(g.instance)
}

// 设置控件字符，如果有。
//
// Set control characters, if any.
func (g *TGroupBox) SetTextBuf(Buffer string) {
	GroupBox_SetTextBuf(g.instance, Buffer)
}

// 查找指定名称的组件。
//
// Find the component with the specified name.
func (g *TGroupBox) FindComponent(AName string) *TComponent {
	return AsComponent(GroupBox_FindComponent(g.instance, AName))
}

// 获取类名路径。
//
// Get the class name path.
func (g *TGroupBox) GetNamePath() string {
	return GroupBox_GetNamePath(g.instance)
}

// 复制一个对象，如果对象实现了此方法的话。
//
// Copy an object, if the object implements this method.
func (g *TGroupBox) Assign(Source IObject) {
	GroupBox_Assign(g.instance, CheckPtr(Source))
}

// 获取类的类型信息。
//
// Get class type information.
func (g *TGroupBox) ClassType() TClass {
	return GroupBox_ClassType(g.instance)
}

// 获取当前对象类名称。
//
// Get the current object class name.
func (g *TGroupBox) ClassName() string {
	return GroupBox_ClassName(g.instance)
}

// 获取当前对象实例大小。
//
// Get the current object instance size.
func (g *TGroupBox) InstanceSize() int32 {
	return GroupBox_InstanceSize(g.instance)
}

// 判断当前类是否继承自指定类。
//
// Determine whether the current class inherits from the specified class.
func (g *TGroupBox) InheritsFrom(AClass TClass) bool {
	return GroupBox_InheritsFrom(g.instance, AClass)
}

// 与一个对象进行比较。
//
// Compare with an object.
func (g *TGroupBox) Equals(Obj IObject) bool {
	return GroupBox_Equals(g.instance, CheckPtr(Obj))
}

// 获取类的哈希值。
//
// Get the hash value of the class.
func (g *TGroupBox) GetHashCode() int32 {
	return GroupBox_GetHashCode(g.instance)
}

// 文本类信息。
//
// Text information.
func (g *TGroupBox) ToString() string {
	return GroupBox_ToString(g.instance)
}

func (g *TGroupBox) AnchorToNeighbour(ASide TAnchorKind, ASpace int32, ASibling IControl) {
	GroupBox_AnchorToNeighbour(g.instance, ASide, ASpace, CheckPtr(ASibling))
}

func (g *TGroupBox) AnchorParallel(ASide TAnchorKind, ASpace int32, ASibling IControl) {
	GroupBox_AnchorParallel(g.instance, ASide, ASpace, CheckPtr(ASibling))
}

// 置于指定控件的横向中心。
func (g *TGroupBox) AnchorHorizontalCenterTo(ASibling IControl) {
	GroupBox_AnchorHorizontalCenterTo(g.instance, CheckPtr(ASibling))
}

// 置于指定控件的纵向中心。
func (g *TGroupBox) AnchorVerticalCenterTo(ASibling IControl) {
	GroupBox_AnchorVerticalCenterTo(g.instance, CheckPtr(ASibling))
}

func (g *TGroupBox) AnchorSame(ASide TAnchorKind, ASibling IControl) {
	GroupBox_AnchorSame(g.instance, ASide, CheckPtr(ASibling))
}

func (g *TGroupBox) AnchorAsAlign(ATheAlign TAlign, ASpace int32) {
	GroupBox_AnchorAsAlign(g.instance, ATheAlign, ASpace)
}

func (g *TGroupBox) AnchorClient(ASpace int32) {
	GroupBox_AnchorClient(g.instance, ASpace)
}

func (g *TGroupBox) ScaleDesignToForm(ASize int32) int32 {
	return GroupBox_ScaleDesignToForm(g.instance, ASize)
}

func (g *TGroupBox) ScaleFormToDesign(ASize int32) int32 {
	return GroupBox_ScaleFormToDesign(g.instance, ASize)
}

func (g *TGroupBox) Scale96ToForm(ASize int32) int32 {
	return GroupBox_Scale96ToForm(g.instance, ASize)
}

func (g *TGroupBox) ScaleFormTo96(ASize int32) int32 {
	return GroupBox_ScaleFormTo96(g.instance, ASize)
}

func (g *TGroupBox) Scale96ToFont(ASize int32) int32 {
	return GroupBox_Scale96ToFont(g.instance, ASize)
}

func (g *TGroupBox) ScaleFontTo96(ASize int32) int32 {
	return GroupBox_ScaleFontTo96(g.instance, ASize)
}

func (g *TGroupBox) ScaleScreenToFont(ASize int32) int32 {
	return GroupBox_ScaleScreenToFont(g.instance, ASize)
}

func (g *TGroupBox) ScaleFontToScreen(ASize int32) int32 {
	return GroupBox_ScaleFontToScreen(g.instance, ASize)
}

func (g *TGroupBox) Scale96ToScreen(ASize int32) int32 {
	return GroupBox_Scale96ToScreen(g.instance, ASize)
}

func (g *TGroupBox) ScaleScreenTo96(ASize int32) int32 {
	return GroupBox_ScaleScreenTo96(g.instance, ASize)
}

func (g *TGroupBox) AutoAdjustLayout(AMode TLayoutAdjustmentPolicy, AFromPPI int32, AToPPI int32, AOldFormWidth int32, ANewFormWidth int32) {
	GroupBox_AutoAdjustLayout(g.instance, AMode, AFromPPI, AToPPI, AOldFormWidth, ANewFormWidth)
}

func (g *TGroupBox) FixDesignFontsPPI(ADesignTimePPI int32) {
	GroupBox_FixDesignFontsPPI(g.instance, ADesignTimePPI)
}

func (g *TGroupBox) ScaleFontsPPI(AToPPI int32, AProportion float64) {
	GroupBox_ScaleFontsPPI(g.instance, AToPPI, AProportion)
}

// 获取控件自动调整。
//
// Get Control automatically adjusts.
func (g *TGroupBox) Align() TAlign {
	return GroupBox_GetAlign(g.instance)
}

// 设置控件自动调整。
//
// Set Control automatically adjusts.
func (g *TGroupBox) SetAlign(value TAlign) {
	GroupBox_SetAlign(g.instance, value)
}

// 获取四个角位置的锚点。
func (g *TGroupBox) Anchors() TAnchors {
	return GroupBox_GetAnchors(g.instance)
}

// 设置四个角位置的锚点。
func (g *TGroupBox) SetAnchors(value TAnchors) {
	GroupBox_SetAnchors(g.instance, value)
}

func (g *TGroupBox) BiDiMode() TBiDiMode {
	return GroupBox_GetBiDiMode(g.instance)
}

func (g *TGroupBox) SetBiDiMode(value TBiDiMode) {
	GroupBox_SetBiDiMode(g.instance, value)
}

// 获取控件标题。
//
// Get the control title.
func (g *TGroupBox) Caption() string {
	return GroupBox_GetCaption(g.instance)
}

// 设置控件标题。
//
// Set the control title.
func (g *TGroupBox) SetCaption(value string) {
	GroupBox_SetCaption(g.instance, value)
}

// 获取颜色。
//
// Get color.
func (g *TGroupBox) Color() TColor {
	return GroupBox_GetColor(g.instance)
}

// 设置颜色。
//
// Set color.
func (g *TGroupBox) SetColor(value TColor) {
	GroupBox_SetColor(g.instance, value)
}

// 获取约束控件大小。
func (g *TGroupBox) Constraints() *TSizeConstraints {
	return AsSizeConstraints(GroupBox_GetConstraints(g.instance))
}

// 设置约束控件大小。
func (g *TGroupBox) SetConstraints(value *TSizeConstraints) {
	GroupBox_SetConstraints(g.instance, CheckPtr(value))
}

// 获取停靠站点。
//
// Get Docking site.
func (g *TGroupBox) DockSite() bool {
	return GroupBox_GetDockSite(g.instance)
}

// 设置停靠站点。
//
// Set Docking site.
func (g *TGroupBox) SetDockSite(value bool) {
	GroupBox_SetDockSite(g.instance, value)
}

// 获取设置控件双缓冲。
//
// Get Set control double buffering.
func (g *TGroupBox) DoubleBuffered() bool {
	return GroupBox_GetDoubleBuffered(g.instance)
}

// 设置设置控件双缓冲。
//
// Set Set control double buffering.
func (g *TGroupBox) SetDoubleBuffered(value bool) {
	GroupBox_SetDoubleBuffered(g.instance, value)
}

// 获取设置控件拖拽时的光标。
//
// Get Set the cursor when the control is dragged.
func (g *TGroupBox) DragCursor() TCursor {
	return GroupBox_GetDragCursor(g.instance)
}

// 设置设置控件拖拽时的光标。
//
// Set Set the cursor when the control is dragged.
func (g *TGroupBox) SetDragCursor(value TCursor) {
	GroupBox_SetDragCursor(g.instance, value)
}

// 获取拖拽方式。
//
// Get Drag and drop.
func (g *TGroupBox) DragKind() TDragKind {
	return GroupBox_GetDragKind(g.instance)
}

// 设置拖拽方式。
//
// Set Drag and drop.
func (g *TGroupBox) SetDragKind(value TDragKind) {
	GroupBox_SetDragKind(g.instance, value)
}

// 获取拖拽模式。
//
// Get Drag mode.
func (g *TGroupBox) DragMode() TDragMode {
	return GroupBox_GetDragMode(g.instance)
}

// 设置拖拽模式。
//
// Set Drag mode.
func (g *TGroupBox) SetDragMode(value TDragMode) {
	GroupBox_SetDragMode(g.instance, value)
}

// 获取控件启用。
//
// Get the control enabled.
func (g *TGroupBox) Enabled() bool {
	return GroupBox_GetEnabled(g.instance)
}

// 设置控件启用。
//
// Set the control enabled.
func (g *TGroupBox) SetEnabled(value bool) {
	GroupBox_SetEnabled(g.instance, value)
}

// 获取字体。
//
// Get Font.
func (g *TGroupBox) Font() *TFont {
	return AsFont(GroupBox_GetFont(g.instance))
}

// 设置字体。
//
// Set Font.
func (g *TGroupBox) SetFont(value *TFont) {
	GroupBox_SetFont(g.instance, CheckPtr(value))
}

func (g *TGroupBox) ParentBackground() bool {
	return GroupBox_GetParentBackground(g.instance)
}

func (g *TGroupBox) SetParentBackground(value bool) {
	GroupBox_SetParentBackground(g.instance, value)
}

// 获取使用父容器颜色。
//
// Get parent color.
func (g *TGroupBox) ParentColor() bool {
	return GroupBox_GetParentColor(g.instance)
}

// 设置使用父容器颜色。
//
// Set parent color.
func (g *TGroupBox) SetParentColor(value bool) {
	GroupBox_SetParentColor(g.instance, value)
}

// 获取使用父容器双缓冲。
//
// Get Parent container double buffering.
func (g *TGroupBox) ParentDoubleBuffered() bool {
	return GroupBox_GetParentDoubleBuffered(g.instance)
}

// 设置使用父容器双缓冲。
//
// Set Parent container double buffering.
func (g *TGroupBox) SetParentDoubleBuffered(value bool) {
	GroupBox_SetParentDoubleBuffered(g.instance, value)
}

// 获取使用父容器字体。
//
// Get Parent container font.
func (g *TGroupBox) ParentFont() bool {
	return GroupBox_GetParentFont(g.instance)
}

// 设置使用父容器字体。
//
// Set Parent container font.
func (g *TGroupBox) SetParentFont(value bool) {
	GroupBox_SetParentFont(g.instance, value)
}

// 获取以父容器的ShowHint属性为准。
func (g *TGroupBox) ParentShowHint() bool {
	return GroupBox_GetParentShowHint(g.instance)
}

// 设置以父容器的ShowHint属性为准。
func (g *TGroupBox) SetParentShowHint(value bool) {
	GroupBox_SetParentShowHint(g.instance, value)
}

// 获取右键菜单。
//
// Get Right click menu.
func (g *TGroupBox) PopupMenu() *TPopupMenu {
	return AsPopupMenu(GroupBox_GetPopupMenu(g.instance))
}

// 设置右键菜单。
//
// Set Right click menu.
func (g *TGroupBox) SetPopupMenu(value IComponent) {
	GroupBox_SetPopupMenu(g.instance, CheckPtr(value))
}

// 获取显示鼠标悬停提示。
//
// Get Show mouseover tips.
func (g *TGroupBox) ShowHint() bool {
	return GroupBox_GetShowHint(g.instance)
}

// 设置显示鼠标悬停提示。
//
// Set Show mouseover tips.
func (g *TGroupBox) SetShowHint(value bool) {
	GroupBox_SetShowHint(g.instance, value)
}

// 获取Tab切换顺序序号。
//
// Get Tab switching sequence number.
func (g *TGroupBox) TabOrder() TTabOrder {
	return GroupBox_GetTabOrder(g.instance)
}

// 设置Tab切换顺序序号。
//
// Set Tab switching sequence number.
func (g *TGroupBox) SetTabOrder(value TTabOrder) {
	GroupBox_SetTabOrder(g.instance, value)
}

// 获取Tab可停留。
//
// Get Tab can stay.
func (g *TGroupBox) TabStop() bool {
	return GroupBox_GetTabStop(g.instance)
}

// 设置Tab可停留。
//
// Set Tab can stay.
func (g *TGroupBox) SetTabStop(value bool) {
	GroupBox_SetTabStop(g.instance, value)
}

// 获取控件可视。
//
// Get the control visible.
func (g *TGroupBox) Visible() bool {
	return GroupBox_GetVisible(g.instance)
}

// 设置控件可视。
//
// Set the control visible.
func (g *TGroupBox) SetVisible(value bool) {
	GroupBox_SetVisible(g.instance, value)
}

// 设置对齐位置事件，当Align为alCustom时Parent会收到这个消息。
func (g *TGroupBox) SetOnAlignPosition(fn TAlignPositionEvent) {
	GroupBox_SetOnAlignPosition(g.instance, fn)
}

// 设置控件单击事件。
//
// Set control click event.
func (g *TGroupBox) SetOnClick(fn TNotifyEvent) {
	GroupBox_SetOnClick(g.instance, fn)
}

// 设置上下文弹出事件，一般是右键时弹出。
//
// Set Context popup event, usually pop up when right click.
func (g *TGroupBox) SetOnContextPopup(fn TContextPopupEvent) {
	GroupBox_SetOnContextPopup(g.instance, fn)
}

// 设置双击事件。
func (g *TGroupBox) SetOnDblClick(fn TNotifyEvent) {
	GroupBox_SetOnDblClick(g.instance, fn)
}

// 设置拖拽下落事件。
//
// Set Drag and drop event.
func (g *TGroupBox) SetOnDragDrop(fn TDragDropEvent) {
	GroupBox_SetOnDragDrop(g.instance, fn)
}

func (g *TGroupBox) SetOnDockDrop(fn TDockDropEvent) {
	GroupBox_SetOnDockDrop(g.instance, fn)
}

// 设置拖拽完成事件。
//
// Set Drag and drop completion event.
func (g *TGroupBox) SetOnDragOver(fn TDragOverEvent) {
	GroupBox_SetOnDragOver(g.instance, fn)
}

// 设置停靠结束事件。
//
// Set Dock end event.
func (g *TGroupBox) SetOnEndDock(fn TEndDragEvent) {
	GroupBox_SetOnEndDock(g.instance, fn)
}

// 设置拖拽结束。
//
// Set End of drag.
func (g *TGroupBox) SetOnEndDrag(fn TEndDragEvent) {
	GroupBox_SetOnEndDrag(g.instance, fn)
}

// 设置焦点进入。
//
// Set Focus entry.
func (g *TGroupBox) SetOnEnter(fn TNotifyEvent) {
	GroupBox_SetOnEnter(g.instance, fn)
}

// 设置焦点退出。
//
// Set Focus exit.
func (g *TGroupBox) SetOnExit(fn TNotifyEvent) {
	GroupBox_SetOnExit(g.instance, fn)
}

func (g *TGroupBox) SetOnGetSiteInfo(fn TGetSiteInfoEvent) {
	GroupBox_SetOnGetSiteInfo(g.instance, fn)
}

// 设置鼠标按下事件。
//
// Set Mouse down event.
func (g *TGroupBox) SetOnMouseDown(fn TMouseEvent) {
	GroupBox_SetOnMouseDown(g.instance, fn)
}

// 设置鼠标进入事件。
//
// Set Mouse entry event.
func (g *TGroupBox) SetOnMouseEnter(fn TNotifyEvent) {
	GroupBox_SetOnMouseEnter(g.instance, fn)
}

// 设置鼠标离开事件。
//
// Set Mouse leave event.
func (g *TGroupBox) SetOnMouseLeave(fn TNotifyEvent) {
	GroupBox_SetOnMouseLeave(g.instance, fn)
}

// 设置鼠标移动事件。
func (g *TGroupBox) SetOnMouseMove(fn TMouseMoveEvent) {
	GroupBox_SetOnMouseMove(g.instance, fn)
}

// 设置鼠标抬起事件。
//
// Set Mouse lift event.
func (g *TGroupBox) SetOnMouseUp(fn TMouseEvent) {
	GroupBox_SetOnMouseUp(g.instance, fn)
}

// 设置启动停靠。
func (g *TGroupBox) SetOnStartDock(fn TStartDockEvent) {
	GroupBox_SetOnStartDock(g.instance, fn)
}

func (g *TGroupBox) SetOnUnDock(fn TUnDockEvent) {
	GroupBox_SetOnUnDock(g.instance, fn)
}

// 获取依靠客户端总数。
func (g *TGroupBox) DockClientCount() int32 {
	return GroupBox_GetDockClientCount(g.instance)
}

// 获取鼠标是否在客户端，仅VCL有效。
//
// Get Whether the mouse is on the client, only VCL is valid.
func (g *TGroupBox) MouseInClient() bool {
	return GroupBox_GetMouseInClient(g.instance)
}

// 获取当前停靠的可视总数。
//
// Get The total number of visible calls currently docked.
func (g *TGroupBox) VisibleDockClientCount() int32 {
	return GroupBox_GetVisibleDockClientCount(g.instance)
}

// 获取画刷对象。
//
// Get Brush.
func (g *TGroupBox) Brush() *TBrush {
	return AsBrush(GroupBox_GetBrush(g.instance))
}

// 获取子控件数。
//
// Get Number of child controls.
func (g *TGroupBox) ControlCount() int32 {
	return GroupBox_GetControlCount(g.instance)
}

// 获取控件句柄。
//
// Get Control handle.
func (g *TGroupBox) Handle() HWND {
	return GroupBox_GetHandle(g.instance)
}

// 获取父容器句柄。
//
// Get Parent container handle.
func (g *TGroupBox) ParentWindow() HWND {
	return GroupBox_GetParentWindow(g.instance)
}

// 设置父容器句柄。
//
// Set Parent container handle.
func (g *TGroupBox) SetParentWindow(value HWND) {
	GroupBox_SetParentWindow(g.instance, value)
}

func (g *TGroupBox) Showing() bool {
	return GroupBox_GetShowing(g.instance)
}

// 获取使用停靠管理。
func (g *TGroupBox) UseDockManager() bool {
	return GroupBox_GetUseDockManager(g.instance)
}

// 设置使用停靠管理。
func (g *TGroupBox) SetUseDockManager(value bool) {
	GroupBox_SetUseDockManager(g.instance, value)
}

func (g *TGroupBox) Action() *TAction {
	return AsAction(GroupBox_GetAction(g.instance))
}

func (g *TGroupBox) SetAction(value IComponent) {
	GroupBox_SetAction(g.instance, CheckPtr(value))
}

func (g *TGroupBox) BoundsRect() TRect {
	return GroupBox_GetBoundsRect(g.instance)
}

func (g *TGroupBox) SetBoundsRect(value TRect) {
	GroupBox_SetBoundsRect(g.instance, value)
}

// 获取客户区高度。
//
// Get client height.
func (g *TGroupBox) ClientHeight() int32 {
	return GroupBox_GetClientHeight(g.instance)
}

// 设置客户区高度。
//
// Set client height.
func (g *TGroupBox) SetClientHeight(value int32) {
	GroupBox_SetClientHeight(g.instance, value)
}

func (g *TGroupBox) ClientOrigin() TPoint {
	return GroupBox_GetClientOrigin(g.instance)
}

// 获取客户区矩形。
//
// Get client rectangle.
func (g *TGroupBox) ClientRect() TRect {
	return GroupBox_GetClientRect(g.instance)
}

// 获取客户区宽度。
//
// Get client width.
func (g *TGroupBox) ClientWidth() int32 {
	return GroupBox_GetClientWidth(g.instance)
}

// 设置客户区宽度。
//
// Set client width.
func (g *TGroupBox) SetClientWidth(value int32) {
	GroupBox_SetClientWidth(g.instance, value)
}

// 获取控件状态。
//
// Get control state.
func (g *TGroupBox) ControlState() TControlState {
	return GroupBox_GetControlState(g.instance)
}

// 设置控件状态。
//
// Set control state.
func (g *TGroupBox) SetControlState(value TControlState) {
	GroupBox_SetControlState(g.instance, value)
}

// 获取控件样式。
//
// Get control style.
func (g *TGroupBox) ControlStyle() TControlStyle {
	return GroupBox_GetControlStyle(g.instance)
}

// 设置控件样式。
//
// Set control style.
func (g *TGroupBox) SetControlStyle(value TControlStyle) {
	GroupBox_SetControlStyle(g.instance, value)
}

func (g *TGroupBox) Floating() bool {
	return GroupBox_GetFloating(g.instance)
}

// 获取控件父容器。
//
// Get control parent container.
func (g *TGroupBox) Parent() *TWinControl {
	return AsWinControl(GroupBox_GetParent(g.instance))
}

// 设置控件父容器。
//
// Set control parent container.
func (g *TGroupBox) SetParent(value IWinControl) {
	GroupBox_SetParent(g.instance, CheckPtr(value))
}

// 获取左边位置。
//
// Get Left position.
func (g *TGroupBox) Left() int32 {
	return GroupBox_GetLeft(g.instance)
}

// 设置左边位置。
//
// Set Left position.
func (g *TGroupBox) SetLeft(value int32) {
	GroupBox_SetLeft(g.instance, value)
}

// 获取顶边位置。
//
// Get Top position.
func (g *TGroupBox) Top() int32 {
	return GroupBox_GetTop(g.instance)
}

// 设置顶边位置。
//
// Set Top position.
func (g *TGroupBox) SetTop(value int32) {
	GroupBox_SetTop(g.instance, value)
}

// 获取宽度。
//
// Get width.
func (g *TGroupBox) Width() int32 {
	return GroupBox_GetWidth(g.instance)
}

// 设置宽度。
//
// Set width.
func (g *TGroupBox) SetWidth(value int32) {
	GroupBox_SetWidth(g.instance, value)
}

// 获取高度。
//
// Get height.
func (g *TGroupBox) Height() int32 {
	return GroupBox_GetHeight(g.instance)
}

// 设置高度。
//
// Set height.
func (g *TGroupBox) SetHeight(value int32) {
	GroupBox_SetHeight(g.instance, value)
}

// 获取控件光标。
//
// Get control cursor.
func (g *TGroupBox) Cursor() TCursor {
	return GroupBox_GetCursor(g.instance)
}

// 设置控件光标。
//
// Set control cursor.
func (g *TGroupBox) SetCursor(value TCursor) {
	GroupBox_SetCursor(g.instance, value)
}

// 获取组件鼠标悬停提示。
//
// Get component mouse hints.
func (g *TGroupBox) Hint() string {
	return GroupBox_GetHint(g.instance)
}

// 设置组件鼠标悬停提示。
//
// Set component mouse hints.
func (g *TGroupBox) SetHint(value string) {
	GroupBox_SetHint(g.instance, value)
}

// 获取组件总数。
//
// Get the total number of components.
func (g *TGroupBox) ComponentCount() int32 {
	return GroupBox_GetComponentCount(g.instance)
}

// 获取组件索引。
//
// Get component index.
func (g *TGroupBox) ComponentIndex() int32 {
	return GroupBox_GetComponentIndex(g.instance)
}

// 设置组件索引。
//
// Set component index.
func (g *TGroupBox) SetComponentIndex(value int32) {
	GroupBox_SetComponentIndex(g.instance, value)
}

// 获取组件所有者。
//
// Get component owner.
func (g *TGroupBox) Owner() *TComponent {
	return AsComponent(GroupBox_GetOwner(g.instance))
}

// 获取组件名称。
//
// Get the component name.
func (g *TGroupBox) Name() string {
	return GroupBox_GetName(g.instance)
}

// 设置组件名称。
//
// Set the component name.
func (g *TGroupBox) SetName(value string) {
	GroupBox_SetName(g.instance, value)
}

// 获取对象标记。
//
// Get the control tag.
func (g *TGroupBox) Tag() int {
	return GroupBox_GetTag(g.instance)
}

// 设置对象标记。
//
// Set the control tag.
func (g *TGroupBox) SetTag(value int) {
	GroupBox_SetTag(g.instance, value)
}

// 获取左边锚点。
func (g *TGroupBox) AnchorSideLeft() *TAnchorSide {
	return AsAnchorSide(GroupBox_GetAnchorSideLeft(g.instance))
}

// 设置左边锚点。
func (g *TGroupBox) SetAnchorSideLeft(value *TAnchorSide) {
	GroupBox_SetAnchorSideLeft(g.instance, CheckPtr(value))
}

// 获取顶边锚点。
func (g *TGroupBox) AnchorSideTop() *TAnchorSide {
	return AsAnchorSide(GroupBox_GetAnchorSideTop(g.instance))
}

// 设置顶边锚点。
func (g *TGroupBox) SetAnchorSideTop(value *TAnchorSide) {
	GroupBox_SetAnchorSideTop(g.instance, CheckPtr(value))
}

// 获取右边锚点。
func (g *TGroupBox) AnchorSideRight() *TAnchorSide {
	return AsAnchorSide(GroupBox_GetAnchorSideRight(g.instance))
}

// 设置右边锚点。
func (g *TGroupBox) SetAnchorSideRight(value *TAnchorSide) {
	GroupBox_SetAnchorSideRight(g.instance, CheckPtr(value))
}

// 获取底边锚点。
func (g *TGroupBox) AnchorSideBottom() *TAnchorSide {
	return AsAnchorSide(GroupBox_GetAnchorSideBottom(g.instance))
}

// 设置底边锚点。
func (g *TGroupBox) SetAnchorSideBottom(value *TAnchorSide) {
	GroupBox_SetAnchorSideBottom(g.instance, CheckPtr(value))
}

func (g *TGroupBox) ChildSizing() *TControlChildSizing {
	return AsControlChildSizing(GroupBox_GetChildSizing(g.instance))
}

func (g *TGroupBox) SetChildSizing(value *TControlChildSizing) {
	GroupBox_SetChildSizing(g.instance, CheckPtr(value))
}

// 获取边框间距。
func (g *TGroupBox) BorderSpacing() *TControlBorderSpacing {
	return AsControlBorderSpacing(GroupBox_GetBorderSpacing(g.instance))
}

// 设置边框间距。
func (g *TGroupBox) SetBorderSpacing(value *TControlBorderSpacing) {
	GroupBox_SetBorderSpacing(g.instance, CheckPtr(value))
}

// 获取指定索引停靠客户端。
func (g *TGroupBox) DockClients(Index int32) *TControl {
	return AsControl(GroupBox_GetDockClients(g.instance, Index))
}

// 获取指定索引子控件。
func (g *TGroupBox) Controls(Index int32) *TControl {
	return AsControl(GroupBox_GetControls(g.instance, Index))
}

// 获取指定索引组件。
//
// Get the specified index component.
func (g *TGroupBox) Components(AIndex int32) *TComponent {
	return AsComponent(GroupBox_GetComponents(g.instance, AIndex))
}

// 获取锚侧面。
func (g *TGroupBox) AnchorSide(AKind TAnchorKind) *TAnchorSide {
	return AsAnchorSide(GroupBox_GetAnchorSide(g.instance, AKind))
}
