Class TCastleFloatSlider
Unit
Declaration
type TCastleFloatSlider = class(TCastleAbstractSlider)
Description
Slider to change a float value within a given range.
Hierarchy
- TObject
- TPersistent
- TComponent
- TCastleComponent
- TCastleUserInterface
- TCastleUserInterfaceFont
- TCastleAbstractSlider
- TCastleFloatSlider
Overview
Fields
nested const DefaultMin = 0.0; |
|
nested const DefaultMax = 1.0; |
Methods
constructor Create(AOwner: TComponent); overload; override; |
|
constructor Create(AOwner: TComponent; const ValuePointer: PSingle; const AMin, AMax: Single; const AOnChange: TNotifyEvent); reintroduce; overload; |
|
procedure Render; override; |
|
function Press(const Event: TInputPressRelease): boolean; override; |
|
function Motion(const Event: TInputMotion): boolean; override; |
|
function ValueToStr(const AValue: Single): String; virtual; |
|
function RoundAndClamp(const AValue: Single): Single; |
|
function PropertySections(const PropertyName: String): TPropertySections; override; |
Properties
property Min: Single read FMin write SetMin default DefaultMin; |
|
property Max: Single read FMax write SetMax default DefaultMax; |
|
property Value: Single read FValue write SetValue default DefaultMin; |
|
property MultipleOf: Single read FMultipleOf write FMultipleOf; |
Description
Fields
nested const DefaultMin = 0.0; |
|
This item has no description. |
nested const DefaultMax = 1.0; |
|
This item has no description. |
Methods
constructor Create(AOwner: TComponent); overload; override; |
|
This item has no description. |
constructor Create(AOwner: TComponent; const ValuePointer: PSingle; const AMin, AMax: Single; const AOnChange: TNotifyEvent); reintroduce; overload; |
|
An easy way to construct float slider. |
procedure Render; override; |
|
This item has no description. Showing description inherited from TCastleUserInterface.Render. Render a control. Called only when Exists and render context is initialized. Do not call this method. It will be automatically called by the engine when needed. It will be called when UI is part of TCastleContainer.Controls list or rendered (e.g. for off-screen rendering) by TCastleContainer.RenderControl. You should only override this method. See https://castle-engine.io/manual_2d_ui_custom_drawn.php for examples what you can put here. You can depend on some OpenGL state being set before calling this method. You can depend on it being set, and you can carelessly change it. This state we set:
Beware that GLSL RenderContext.CurrentProgram has undefined value when this is called. You should always set it, before making direct OpenGL drawing calls (all the engine drawing routines do it already, this is only a concern if you make direct OpenGL / OpenGLES calls). |
function Press(const Event: TInputPressRelease): boolean; override; |
|
This item has no description. Showing description inherited from TCastleUserInterface.Press.
Override this method to react to user pressing a key, mouse button or mouse wheel. Return When implementing in descendants it is best to override it like this: function TMyControl.Press(const Event: TInputPressRelease): boolean; begin Result := inherited; if Result then Exit; // exit if ancestor already handled this event if Event.IsKey(keyEnter) then begin // do something in reaction to Enter key ... // let engine know that this input event was handled Exit(true); end; if Event.IsMouseButton(buttonLeft) then begin // do something in reaction to left mouse button press ... // let engine know that this input event was handled Exit(true); end; end;
These events are generated for all UI controls, whether they are considered "interactive" or not. These events are generated for non-interactive controls like TCastleRectangleControl or TCastleLabel as well. For example, these events ignore the TCastleButton.Enabled state, they are generated always (see https://github.com/castle-engine/castle-engine/issues/413 ). Use instead TCastleButton.OnClick to detect clicks on a button in a way that honors the TCastleButton.Enabled state. When a control returns The events Press and Release are passed to the parent only after the children had a chance to process this event. Overriding them makes sense if you draw something that "looks clickable" in TCastleUserInterface.Render, which is the standard place you should draw stuff. For example our TCastleButton draws there. In contrast, the events PreviewPress and PreviewRelease are passed first to the parent control, before children have a chance to process this event. In partcular, overriding them makes sense if you draw something that "looks clickable" in TCastleUserInterface.RenderOverChildren. |
function Motion(const Event: TInputMotion): boolean; override; |
|
This item has no description. Showing description inherited from TCastleUserInterface.Motion. Motion of mouse or touch. |
function ValueToStr(const AValue: Single): String; virtual; |
|
This item has no description. |
function RoundAndClamp(const AValue: Single): Single; |
|
Round to multiple of MultipleOf, if non-zero, and clamp to Min and Max range. |
function PropertySections(const PropertyName: String): TPropertySections; override; |
|
This item has no description. Showing description inherited from TCastleComponent.PropertySections. Section where to show property in the editor. |
Properties
property Min: Single read FMin write SetMin default DefaultMin; |
|
This item has no description. |
property Max: Single read FMax write SetMax default DefaultMax; |
|
This item has no description. |
property Value: Single read FValue write SetValue default DefaultMin; |
|
Current value. Usually within Min and Max range, although the general code should be ready for handle any value here (to work even during changes to Min and Max properties). |
property MultipleOf: Single read FMultipleOf write FMultipleOf; |
|
If non-zero, we force the value selected by user to be a multiple of this value (clamped to Min, Max range). For example, if you set this to 0.25, and slider is between 0..1, then when user clicks around 0.3 — we will pick 0.25. It user clicks around 0.4 — we will pick 0.5. This only affects values selected by user interactions (clicking, dragging). This does not process the values you set by code to Value property, though you can use RoundAndClamp method on your values yourself. |
Generated by PasDoc 0.16.0-snapshot.