Page History: Properties
Compare Page Revisions
Page Revision: 2013/11/18 21:20
Description
While designing experiments in EventIDE, you operate with only three classes of design objects: experiments, events and elements. The experiment is a root container for everything. The events are timeblocks that define the experiment scenario and, in turn, host child elements. The elements handle diverse functions, for example, present stimuli, register responses and communicate with hardware.
Each of design objects has a fixed list of properties that define or indicate object's status. The properties are always variables (fields) of simple data types, e.g: string, boolean, integer and so on. For example, the event has a property called ‘Background Color’, which can be used to set a color of the event background. Another event's property, 'Elapsed time', returns the amount of milliseconds that have passed since the event's onset. This property can be used as a local timer in code.
When a design object is selected in the GUI at design-time, its properties are shown in the property grid (on the right of the main window) and can be modified there (see the screenshots below). The most relevant properties are marked in orange.
Property Interface
The properties provide a simplified interface to the functions and data of the design objects. The properties can be accessed both via the GUI at design-time and in the user code at runtime. EventIDE automatically handles all necessary updates for every property change. For instance, after you change the Position property of the Text element, the associated text block will be immediately removed and redrawn at the new position on the screen. There is no need to call any drawing function for this operation, because the properties combine concepts of data variables and functions.
However, be careful as to when you change properties at runtime. Property update processing can be time consuming, which can harm timing accuracy at critical moments. For example, it is recommended to complete all trial preparations (via the properties) before the stimulus presentation is started.
Some properties can return the current runtime state of a design object at runtime. For example, you can check whether a keyboard button is in the down or up state. Such status properties can naturally be used to control the flow of your experiment.
Property types
Generic data types
Most of the properties of EventIDE design objects have standard data type, such as boolean, int, double, string.
EventIDE build-in data types
There are several special data type that are defined by EventIDE itself. For example, the Position property has a type, called clPoint. clPoint is a csutom struct that provide screen coordinates in the three coordinate systems: pixel, visual degrees and proportion to the screen size.
Command types ¶
Design-time commands ¶
==== Runtime commands ====
Property attributes
Property attributes determine how it can be accessed. Although most properties are available for use in code snippets through the parameters functionality,the property attributes can impose certain restictions on such interactions.
- No attributed: The most of the properties has no access attributes, which means that they can be changed both at design and run-time.
- Run-time: This attribute indicates that the property can be accessed only in the run-time. Such a property can be used only in conjunction with parameters functionality with property values to be read and written in code snippets.
- Status: The status properties returns status information. For example, it can be timing statistics collected through a experiment run. The status properties are typically read-only and can not be changed.
- Design-time: The design-time properties can be adjusted only at design-time. When the experiment is run, their values are fixed or not accessible. The design-time properties include, for example, an event titles or some settings, such as the display resolution. Design-time properties cannot be turn into proxy variables.