Class TInternalChildrenControls

Unit

Declaration

type TInternalChildrenControls = class(TObject)

Description

List of UI controls, with a parent control and container. Ordered from back to front. Used for TCastleContainer.Controls.

User code should not create instances of this class. The only way to have an instance of it, is to get a container, by creating a TCastleWindow or TCastleControl. Then you can access MyWindow.Container.Controls.

User code should rarely need to use methods and properties of this class. That's because most TCastleUserInterface controls should be added to TCastleView, so only TCastleView instances should be present at the top-level of the UI hierarchy in TInternalChildrenControls. And you should manage TCastleView instances using TCastleContainer.View, TCastleContainer.PushView etc. that will make it added / removed from the TInternalChildrenControls automatically.

Hierarchy

  • TObject
  • TInternalChildrenControls

Overview

Methods

Public constructor Create(AParent: TCastleUserInterface);
Public destructor Destroy; override;
Public function Count: Integer;
Public procedure Assign(const Source: TInternalChildrenControls);
Public procedure Remove(const Item: TCastleUserInterface);
Public procedure Move(const AIndex, ANewIndex: Integer);
Public procedure Clear;
Public procedure Add(const Item: TCastleUserInterface); deprecated 'use InsertFront or InsertBack';
Public procedure Insert(Index: Integer; const Item: TCastleUserInterface);
Public function IndexOf(const Item: TCastleUserInterface): Integer;
Public function MakeSingle(ReplaceClass: TCastleUserInterfaceClass; NewItem: TCastleUserInterface; AddFront: boolean = true): TCastleUserInterface; deprecated 'this is a complicated method without clear use-case now; do not use';
Public procedure InsertFront(const NewItem: TCastleUserInterface); overload;
Public procedure InsertFrontIfNotExists(const NewItem: TCastleUserInterface);
Public procedure InsertFront(const NewItems: TCastleUserInterfaceList); overload;
Public procedure InsertBack(const NewItem: TCastleUserInterface); overload;
Public procedure InsertBackIfNotExists(const NewItem: TCastleUserInterface);
Public procedure InsertBack(const NewItems: TCastleUserInterfaceList); overload;
Public procedure InsertIfNotExists(const Index: Integer; const NewItem: TCastleUserInterface); deprecated 'use InsertFrontIfNotExists or InsertBackIfNotExists';
Public procedure AddIfNotExists(const NewItem: TCastleUserInterface); deprecated 'use InsertFrontIfNotExists or InsertBackIfNotExists';
Public procedure BeginDisableContextOpenClose;
Public procedure EndDisableContextOpenClose;

Properties

Public property Items[const I: Integer]: TCastleUserInterface read GetItem write SetItem;

Description

Methods

Public constructor Create(AParent: TCastleUserInterface);

This item has no description.

Public destructor Destroy; override;

This item has no description.

Public function Count: Integer;

This item has no description.

Public procedure Assign(const Source: TInternalChildrenControls);

This item has no description.

Public procedure Remove(const Item: TCastleUserInterface);

Remove the Item from this list.

Note that the given Item should always exist only once on a list (it is not allowed to add it multiple times), so there's no RemoveAll method.

Note that this method does not free the Item instance. This method merely removes Item from the list.

See https://castle-engine.io/modern_pascal#_freeing_classes for description how to free instances in Pascal. As TCastleUserInterface descends from TComponent, a simple and proper solution is often just to create it with some "owner" (like TCastleView.FreeAtStop or Application) that will take care of freeing it.

Public procedure Move(const AIndex, ANewIndex: Integer);

Move the Item from AIndex to ANewIndex. Do it without invoking uncessary notifications about item being removed + added to the list, container, parent.

Public procedure Clear;

This item has no description.

Public procedure Add(const Item: TCastleUserInterface); deprecated 'use InsertFront or InsertBack';

Warning: this symbol is deprecated: use InsertFront or InsertBack

This item has no description.

Public procedure Insert(Index: Integer; const Item: TCastleUserInterface);

This item has no description.

Public function IndexOf(const Item: TCastleUserInterface): Integer;

This item has no description.

Public function MakeSingle(ReplaceClass: TCastleUserInterfaceClass; NewItem: TCastleUserInterface; AddFront: boolean = true): TCastleUserInterface; deprecated 'this is a complicated method without clear use-case now; do not use';

Warning: this symbol is deprecated: this is a complicated method without clear use-case now; do not use

Make sure that NewItem is the only instance of given ReplaceClass on the list, replacing old item if necesssary. See TCastleObjectList.MakeSingle for precise description.

Public procedure InsertFront(const NewItem: TCastleUserInterface); overload;

Add at the end of the list.

Public procedure InsertFrontIfNotExists(const NewItem: TCastleUserInterface);

This item has no description.

Public procedure InsertFront(const NewItems: TCastleUserInterfaceList); overload;

This item has no description.

Public procedure InsertBack(const NewItem: TCastleUserInterface); overload;

Add at the beginning of the list.

Public procedure InsertBackIfNotExists(const NewItem: TCastleUserInterface);

This item has no description.

Public procedure InsertBack(const NewItems: TCastleUserInterfaceList); overload;

This item has no description.

Public procedure InsertIfNotExists(const Index: Integer; const NewItem: TCastleUserInterface); deprecated 'use InsertFrontIfNotExists or InsertBackIfNotExists';

Warning: this symbol is deprecated: use InsertFrontIfNotExists or InsertBackIfNotExists

This item has no description.

Public procedure AddIfNotExists(const NewItem: TCastleUserInterface); deprecated 'use InsertFrontIfNotExists or InsertBackIfNotExists';

Warning: this symbol is deprecated: use InsertFrontIfNotExists or InsertBackIfNotExists

This item has no description.

Public procedure BeginDisableContextOpenClose;

BeginDisableContextOpenClose disables sending TCastleUserInterface.GLContextOpen and TCastleUserInterface.GLContextClose to all the controls on the list. EndDisableContextOpenClose ends this. They work by increasing / decreasing the TCastleUserInterface.DisableContextOpenClose for all the items on the list.

Public procedure EndDisableContextOpenClose;

This item has no description.

Properties

Public property Items[const I: Integer]: TCastleUserInterface read GetItem write SetItem;

This item has no description.


Generated by PasDoc 0.16.0-snapshot.