From Clomosy Docs
Clomosy offers a wide range of features for controlling object properties in user interface design and programming. Each object has a specific set of properties that define its behavior and appearance. Object properties allow us to customize the functionality of the application by configuring values used during interaction with the object.
The object must be created before using its properties.
Did You Know? - With Statements
The with statement in Clomosy can make your code more readable when working with nested objects or components. This statement allows direct access to the properties or methods of an object without having to repeatedly write the object's name. However, if used carelessly, it can be confusing, especially when dealing with objects of similar types.
Example:
Let’s assign width, height, and align properties to a button. First, we need to create the object:
Button1 = Form1.AddNewButton(Form1, 'Button1', 'Click'); Button1.Align = alCenter; Button1.Height = 50; Button1.Width = 100;
As seen above, we assign values by specifying the object name. Now, let’s use with to access the properties without repeatedly typing the object's name:
Button1 = Form1.AddNewButton(Form1, 'Button1', 'Click'); With Button1 do { Height = 70; Align = alRight; Margins.Right = 50; }
In this example, the with statement allows direct access to the properties of Button1 without having to write Button1 each time.
Typically, an object's properties can be categorized as follows:
Positioning and Alignment
These are properties that determine the position and alignment of components on the form.
Align
The Align property of a component's base class is used to align objects to one or more sides at their location. These alignment types position components on the form or a similar container object. When this property is assigned to an object, it automatically aligns to the right, left, top, bottom, center, or fully within the containing control.
Below are the most commonly used types of the Align property.
Example usage;
Specifying where to align a button. You can do this in other components.
buton1 = Form1.AddNewButton(Form1,'buton1','Scan Barcode...');
buton1.Align = alCenter;
buton1.Height = 100;
buton1.Width = 200;
Properties | Explanation |
---|---|
alNone | It means that a component stays where it is positioned on a form or panel. |
alTop | It aligns at the top of the form to left and right based on. |
alLeft | Remains on the left side of the form and always ensures that the form is equal to client height. |
alRight | Remains on the right side of the form and always ensures that the form is equal to client height. |
alBottom | It stays at the bottom of the form and always ensures that the form is equal to the client's width setting. |
alMostTop | It aligns at the top of the form to left and right based on. |
alMostLeft | Remains on the left side of the form and always ensures that the form is equal to client height. |
alMostRight | Remains on the right side of the form and always ensures that the form is equal to client height. |
alMostBottom | It stays at the bottom of the form and always ensures that the form is equal to the client's width setting. |
alClient | It takes up the entire form and always ensures that the form is equal to the client's width and height setting. |
alContents | It occupies the entire project page. |
alCenter | It is aligned in the middle of the page. As the client changes the page width, it is center aligned accordingly. |
alVertCenter | It is aligned based in right left in the middle of the form. |
alHorzCenter | It is aligned based in down on top the middle of the form. |
alHorizontal | Just like alVertCenter, it is right left justified. It is not centered as the client changes the height of the screen. |
alVertical | Just like alHorzCenter, it is down is on top justified. It is not centered when the client changes the width of the screen. |
alScale | The height and width of the button will cause change as the size of the form changes. |
alFit | The component is based on top and bottom. The size changes as the client plays with the size. |
alFitLeft | It is vertically justified to the left of the form. The size changes as the client plays with the size. |
alFitRight | It is vertically justified to the right of the form. The size changes as the client plays with the size. |
Position
This determines the horizontal and vertical position of the component on the form. Position.X specifies the distance, in pixels, from the left edge of the component to the left edge of the form, while Position.Y specifies the distance, in pixels, from the top edge of the component to the top edge of the form.
NOTE:
In Clomosy, when setting a component's position using the Position.X and Position.Y properties, the Align property must be set to alNone. If the Align property is not set to alNone, the component's position will be automatically adjusted, making the Position.X and Position.Y values ineffective.
Use of;
TCLComponent.Position.X = 50;
TCLComponent.Position.Y = 100;
For example, let's assume the x position is set to 50 and the y position is set to 100.
Locked
It is a property that prevents the component from being moved or resized during design time. The default value is False. When this property is set to True, the component is locked on the form, preventing accidental repositioning or resizing.
Use of;
TCLComponent.Locked = True;
Margins
It is used to define the space around the component. This property determines how far the component will be from the edges of its container. The distance between the two objects is in pixels.
The Margins property allows separate values to be set for each of the four edges: Left, Top, Right, and Bottom.
Use of;
TCLComponent.Margins.Left = 30;
TCLComponent.Margins.Right = 30;
TCLComponent.Margins.Top = 30;
TCLComponent.Margins.Bottom = 30;
Padding
It is used to determine the distance between two nested objects, just like the Margins property. While in the Margins property, the inner object determines the distance, in the Padding property, the outer object determines the distance to the edges. The distance between the two objects is in pixels.
The Padding property is used only in components. It is not a property used on forms.
The Margins property allows separate values to be set for each of the four edges: Left, Top, Right, and Bottom.
Use of;
TCLComponent.Padding.Left = 30;
TCLComponent.Padding.Right = 30;
TCLComponent.Padding.Top = 30;
TCLComponent.Padding.Bottom = 30;
RotationAngle
Specifies how much the component will rotate clockwise, in degrees. With this property, a component can be rotated at a specified angle. For example, if the RotationAngle of a button is set to 45 degrees, the button rotates 45 degrees clockwise.
When the RotationAngle value is positive, it rotates clockwise; when it is negative, it rotates counterclockwise.
Use of;
TCLComponent.RotationAngle = 20;
RotationCenter
Specifies the rotation center of the object on the X and Y axes. X and Y take values between 0 and 1. If X=0 and Y=0, the top-left corner will be the rotation center, while if X=1 and Y=1, the bottom-right corner will be the rotation center.
It defines the rotation center. Then, the object should be rotated using the RotationAngle property.
Use of;
TCLComponent.RotationCenter.X = 1; TCLComponent.RotationCenter.Y = 1;
SetBounds
It is a method used to set both the position and size of a component with a single command. This method simultaneously defines the horizontal and vertical position (Left (X) and Top (Y)) of the component within its container (such as a form), along with its width (Width) and height (Height).
NOTE: In order to set the position using SetBounds, the component's Align property must be set to alNone; otherwise, the Align property will override the positioning and SetBounds may not have any effect.
TCLComponent.SetBounds(Position.X, Position.Y, Width, Height: Integer);
Use of;
TCLComponent.SetBounds(50, 100, 250, 100);
Sizing
Height
Specifies the component's height in pixels. This property allows adjusting the vertical dimension of the component.
When the Align property is set to alRight or alLeft, the Height property cannot be used.
Use of;
TCLComponent.Height = 100;
Width
Specifies the component's width in pixels. This property allows adjusting the horizontal dimension of the component.
When the Align property is set to alTop or alBottom, the Width property cannot be used.
Use of;
TCLComponent.Width = 100;
Scale
Used to scale the component's horizontal and vertical dimensions proportionally. The Scale.X property multiplies the component's width, while the Scale.Y property multiplies its height by a specific scale factor. The default value for X and Y is 1. When set to 2, the component size doubles.
Use of;
TCLComponent.Scale.X = 2;
TCLComponent.Scale.Y = 2;
Visibility and Interaction
Visible
Controls whether the component is visible on the screen. When this property is set to True, the component is visible; when set to False, the component is hidden. The default value is True.
Use of;
TCLComponent.Visible = False;
Enabled
Determines whether the component is active. When this property is set to True, the component is available for user interactions and can be used; when set to False, the component is disabled and cannot be clicked, selected, or interacted with in any way. The default value is True.
Use of;
TCLComponent.Enabled = False;
HitTest
The HitTest property determines whether a component will capture touch or click events. When this property is set to True, the component detects events such as clicks and movements and responds to them. When set to False, the component ignores click events and does not respond to them.
For example, if a button's HitTest property is set to False, nothing will happen when the user clicks the button.
Use of;
TCLComponent.HitTest = False;
EnableDragHighlight
At runtime, when one object is dragged over another, a highlighted area appears at the edges to emphasize the drop target. The default value is True. If set to False, no highlighting occurs when the dragged object is over the target.
Use of;
TCLComponent.EnableDragHighlight = False;
Opacity
The Opacity property determines how transparent a component is, setting its opacity level as a value between 0 and 1. Here, 0 means the component is completely transparent (invisible), and 1 means the component is completely opaque (visible). The default value is 1.
Use of;
TCLComponent.Opacity = 0.5;
SetFocus
It is a method that allows an object to gain focus. Focus typically indicates the area where a user is located in a form, such as a control (e.g., an edit box or a button). Specifically, it is used to automatically set focus to a control when a form is loaded or a certain event occurs.
This can handle situations where the user doesn't need to manually select a control, such as starting to type directly in an edit box.
Use of;
TCLComponent.SetFocus ;
Autosize
This property determines whether the component's size will automatically adjust based on its content. It is commonly used in visual components (such as TclLabel, TclMemo, etc.). When set to True, the component's size will automatically adjust to fit its content (for example, the text of a label or the caption of a button). When set to False, the component's size remains fixed, and the content will attempt to fit within this fixed size.
Use of;
TCLComponent.AutoSize = True;
WordWrap
WordWrap is a property commonly used in text display components (such as TclLabel, TclMemo, etc.). This property allows the text to automatically wrap to the next line if it doesn't fit within the current line. In other words, if a long text doesn't fit within the component, and WordWrap is enabled, the text will automatically move to the next line.
When set to True, the text component will move the text to the next line whenever it encounters text that exceeds its boundaries. This ensures that the text is properly spread across multiple lines. When set to False, if the text exceeds the width of the component, it will remain on a single line, and the overflowed part will either be visually cut off or hidden.
Use of;
TCLComponent.WordWrap = True;
Text and Content Settings
Text
By using the Text property, you can typically retrieve or set the text entered by the user or the text contained within the component. The Text property is commonly found in text-based components (such as TclEdit, TclMemo, TclLabel, etc.).
Use of;
TCLComponent.Text = ' Hello! ';
ShowMessage(TCLComponent.Text);
Caption
The Caption property specifies the title or label text (the text visible on the screen) of the component. It is primarily used in visual components and typically represents the text displayed on user interface elements.
Use of;
TCLComponent.Caption = ' Hello! ';
ShowMessage(TCLComponent.Caption);
TextSettings
It is used to adjust the component's text display properties. This property determines the text's style, size, and color.
To activate these settings, the StyledSettings property must first be set.
TCLComponent.StyledSettings = ssFamily;
The ssFamily value indicates that the component should use family-based style settings. This allows the component to use style properties defined by its family. Once the StyledSettings property is configured, these properties can be applied.
- Font Size
The text size is adjusted using the "Font.Size" property.
TCLComponent.TextSettings.Font.Size = 20;
- Font Color
The component's text color is set using the "FontColor" property.
TCLComponent.TextSettings.FontColor = clAlphaColor.clHexToColor('#8a067c');
or
TCLComponent.TextSettings.FontColor = clAlphaColor.clblue;
To access other color constants, please visit the Color Constants page.
- Font Style
The text style is adjusted using the Font.Style property. This property allows you to set three different style attributes for the text:
- fsBold: Makes the text bold.
- fsItalic: Makes the text italic (slanted).
- fsUnderline: Underlines the text.
Use of;
TCLComponent.TextSettings.Font.Style = [fsItalic]; // [fsItalic,fsUnderline];
- Text Horizontal Align
The horizontal alignment of text is set using the HorzAlign property. This property allows you to set three different alignment attributes for text:
- taCenter: Centers the text.
- taLeading: Aligns the text to the left.
- taTrailing: Aligns the text to the right.
Use of;
TCLComponent.TextSettings.HorzAlign = taCenter;
- Text Vertical Align
The vertical alignment of text is set using the VertAlign property. This property allows you to set three different alignment attributes for text:
- taCenter: Centers the text.
- taLeading: Aligns the text to the top.
- taTrailing: Aligns the text to the bottom.
Use of;
TCLComponent.TextSettings.VertAlign = taCenter;
KeyboardType
KeyboardType is a property used in mobile application development to specify the type of virtual keyboard. It automatically opens the appropriate keyboard type when users enter data in a specific field, enhancing the user experience.
Use of;
TCLComponent.KeyboardType = vktNumsAndPunctuation;
The values used in the KeyboardType property are:
Type | Purpose of Use |
---|---|
vktDefault | Default keyboard type |
vktNumsAndPunctuation | Keyboard for numbers and punctuation marks |
vktNumberPad | Numeric keypad for numbers only |
vktPhonePad | Keyboard for phone number input |
vktAlphabet | Keyboard for alphabetical characters |
vktURL | Keyboard for URL input |
vktNamePhonePad | Keyboard for numbers and alphabetical characters |
vktDecimalNumberPad | Numeric keyboard for decimal numbers |
Data and User Input Settings
ClTypeOfField
In text input components, any character can be entered. When a character limit is desired, this feature is used.
Type | Purpose of Use |
---|---|
taFloat | Only numbers and the comma character can be entered. |
taString | All characters can be entered (numbers, symbols, letters). |
Use of;
TCLComponent.clTypeOfField = taFloat;
ReadOnly
This property makes the component read-only. When set to True, the text or data within the component can be displayed but cannot be changed by the user. This property is used for data-entry components like TclEdit and TclMemo.
Use of;
TCLComponent.ReadOnly = True;
MaxLength
This property determines the maximum number of characters that can be entered into a text input component (such as TclEdit, TclMemo, etc.). It is used to maintain data integrity by enforcing a character limit during data entry and preventing users from entering excessively long text.
Use of;
TCLComponent.MaxLength = 2;
Tag
Each object holds a separate integer value. The default value is zero (0). This value is used as a label during runtime or design time.
Use of;
TCLComponent.Tag = 12;
Hint
Sets the tooltip or hint text that appears when the mouse hovers over the component. This property provides additional information to the user about the function or usage of the component.
Use of;
TCLComponent.Hint = 'Test';