Class TCastleControlContainer

Unit

Declaration

type TCastleControlContainer = class(TCastleContainer)

Description

TCastleContainer that cooperates with TCastleControl.

Hierarchy

Overview

Methods

Protected function GetMousePosition: TVector2; override;
Protected procedure SetMousePosition(const Value: TVector2); override;
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 function SaveScreen(const SaveRect: TRectangle): TRGBImage; override; overload;
Public procedure EventOpen(const OpenWindowsCount: Cardinal); override;
Public procedure EventClose(const OpenWindowsCount: Cardinal); override;
Public function EventPress(const Event: TInputPressRelease): boolean; override;
Public function EventRelease(const Event: TInputPressRelease): boolean; override;
Public procedure EventUpdate; override;
Public procedure EventMotion(const Event: TInputMotion); override;
Public procedure EventBeforeRender; override;
Public procedure EventRender; override;
Public procedure EventResize; override;
Public function DesignedComponent(const ComponentName: String; const Required: Boolean = true): TComponent;

Properties

Published property DesignUrl: String read FDesignUrl write SetDesignUrl;

Description

Methods

Protected function GetMousePosition: TVector2; override;

This item has no description.

Protected procedure SetMousePosition(const Value: TVector2); override;

This item has no description.

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 function SaveScreen(const SaveRect: TRectangle): TRGBImage; override; overload;

This item has no description.

Public procedure EventOpen(const OpenWindowsCount: Cardinal); override;

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

Propagate the event to all the Controls. You can call these methods explicitly if you want to "fake" some event, e.g. fake pressing or releasing a key by calling EventPress or EventRelease.

Deprecated: these methods also call our (deprecated) callbacks like OnPress.

These methods are called automatically by TCastleWindow or TCastleControl. So if you don't need to "fake" any event, you should not call them from your application.

Note: EventUpdate is special in that it also calls (for now) EventJoyAxisMove, EventJoyButtonPress, EventSensorRotation, EventSensorTranslation.

InitializedContextsCount should specify the number of initialized contexts at this point. This is always >= 1 since the current context is always initialized at the point of this call. So for EventOpen, InitializedContextsCount = 1 means we initialize 1st context, and for EventClose, InitializedContextsCount = 1 means we finalize last context.

Public procedure EventClose(const OpenWindowsCount: Cardinal); override;

This item has no description.

Public function EventPress(const Event: TInputPressRelease): boolean; override;

This item has no description.

Public function EventRelease(const Event: TInputPressRelease): boolean; override;

This item has no description.

Public procedure EventUpdate; override;

This item has no description.

Public procedure EventMotion(const Event: TInputMotion); override;

This item has no description.

Public procedure EventBeforeRender; override;

This item has no description.

Public procedure EventRender; override;

This item has no description.

Public procedure EventResize; override;

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.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 states (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.