Class TCastleDesign

Unit

Declaration

type TCastleDesign = class(TCastleUserInterface)

Description

Contents of this user-interface control are loaded from an indicated file (by the URL property).

The file should be in the format created by Castle Game Engine Editor (see CastleComponentSerialize unit) with .castle-user-interface extension.

Hierarchy

Overview

Methods

Protected procedure Notification(AComponent: TComponent; Operation: TOperation); override;
Public constructor Create(AOwner: TComponent); override;
Public destructor Destroy; override;

Properties

Published property URL: String read FURL write SetURL;
Published property Stretch: Boolean read GetStretch write SetStretch default true;

Description

Methods

Protected procedure Notification(AComponent: TComponent; Operation: TOperation); override;
 
Public constructor Create(AOwner: TComponent); override;
 
Public destructor Destroy; override;
 

Properties

Published property URL: String read FURL write SetURL;

Load file with the user interface design. The file should be in the format created by Castle Game Engine Editor (see CastleComponentSerialize unit) with .castle-user-interface extension. Setting this property automatically unloads the previous design, and loads a new one (if the value is <> '').

After loading a design, you can use FindComponent or TComponentHelper.FindRequiredComponent to find the components inside. The owner of the design is this TCastleDesign instance. So e.g. this works:

var
  MyDesign: TCastleDesign;
  MyButton: TCastleButton;
begin
  MyDesign := TCastleDesign.Create(...);
  MyDesign.URL := 'castle-data:/my_user_interface.castle-user-interface';
  MyButton := MyDesign.FindRequiredComponent('MyButton') as TCastleButton;
  MyButton.OnClick := ...;
end;

Published property Stretch: Boolean read GetStretch write SetStretch default true;

Whether the loaded component (from URL) fills the rectangle of this TCastleDesign instance.

By default this is True, which makes sense if the loaded component can be freely stretched. In this case, the loaded component will have FullSize set to True, so it fills this TCastleDesign instance. And you can control the size of everything by controlling the size of this TCastleDesign instance.

You can set this to False if the loaded component should not be arbitrarily stretched. E.g. maybe it is a TCastleImageControl with TCastleImageControl.Stretch = True. Maybe it is TCastleButton with TCastleButton.AutoSize = True. While every component can be forced to be stretched (by setting FullSize to True), it may look bad in some circumstances. In such case, you should set this property to False. You can also set AutoSizeToChildren to True, to adjust the size of this TCastleDesign instance to the child.


Generated by PasDoc 0.15.0.