Class TCastleControlContainer

Unit

Declaration

type TCastleControlContainer = class(TCastleContainer)

Description

TCastleContainer that cooperates with TCastleControl.

Hierarchy

Overview

Methods

Public constructor Create(AParent: TCastleControl); reintroduce;
Public procedure Invalidate; override;
Public function GLInitialized: boolean; override;
Public function PixelsWidth: Integer; override;
Public function PixelsHeight: Integer; override;
Public procedure SetInternalCursor(const Value: TMouseCursor); override;
Public procedure SystemSetMousePosition(const Value: TVector2); override;
Public function SaveScreen(const SaveRect: TRectangle): TRGBImage; override; overload;
Public function DesignedComponent(const ComponentName: String; const Required: Boolean = true): TComponent;

Properties

Published property DesignUrl: String read FDesignUrl write SetDesignUrl;

Description

Methods

Public constructor Create(AParent: TCastleControl); reintroduce;

This item has no description.

Public procedure Invalidate; override;

This item has no description. Showing description inherited from TCastleContainer.Invalidate.

Redraw the contents of of this window, at the nearest suitable time. This method does not redraw immediately (it does not call EventBeforeRender and EventRender inside), it only makes sure that they will be called very soon. Calling this on a closed container (with GLInitialized = False) is allowed and ignored.

Public function GLInitialized: boolean; override;

This item has no description. Showing description inherited from TCastleContainer.GLInitialized.

Is the OpenGL context initialized.

Public function PixelsWidth: Integer; override;

This item has no description. Showing description inherited from TCastleContainer.PixelsWidth.

Container size, in pixels. This is expressed in real device pixels. Prefer using UnscaledWidth instead of this. UnscaledWidth is more natural when you use UI scaling (UIScaling), and it's simply equal to PixelsWidth when UI scaling is not used.

Public function PixelsHeight: Integer; override;

This item has no description. Showing description inherited from TCastleContainer.PixelsHeight.

Container size, in pixels. This is expressed in real device pixels. Prefer using UnscaledHeight instead of this. UnscaledHeight is more natural when you use UI scaling (UIScaling), and it's simply equal to PixelsHeight when UI scaling is not used.

Public procedure SetInternalCursor(const Value: TMouseCursor); override;

This item has no description.

Public procedure SystemSetMousePosition(const Value: TVector2); override;

This item has no description. Showing description inherited from TCastleContainer.SystemSetMousePosition.

Descendants should override this to change the mouse position on explicit request (from engine or application code, e.g. mouse look repositions the mouse to the center of the screen). This is not called when mouse position changes because of user input, which is handled inside EventMotion. This is not called when the window / contained is closed.

Public function SaveScreen(const SaveRect: TRectangle): TRGBImage; override; overload;

This item has no description.

Public function DesignedComponent(const ComponentName: String; const Required: Boolean = true): TComponent;

When the DesignUrl is set you can use this method to find loaded components. Like this:

MyButton := MyCastleControl.Container.DesignedComponent('MyButton') as TCastleButton;

When the name is not found, raises exception (unless Required is False, then it returns Nil).

See also
DesignUrl
Load and show the design (.castle-user-interface file).

Properties

Published property DesignUrl: String read FDesignUrl write SetDesignUrl;

Load and show the design (.castle-user-interface file). You can reference the loaded components by name using DesignedComponent.

If you have more complicated control flow, we recommend to leave this property empty, and split your management into a number of views (TCastleView) instead. In this case, load design using TCastleView.DesignUrl. This property makes it however easy to use .castle-user-interface in simple cases, when TCastleControl just shows one UI.

The design loaded here is visible also at design-time, when editing the form in Lazarus/Delphi. Though we have no way to edit it now in Lazarus/Delphi (you have to use CGE editor to edit the design), so it is just a preview in this case.

See https://castle-engine.io/control_on_form for documentation how to use TCastleControl.


Generated by PasDoc 0.16.0-snapshot.