From Clomosy Docs
The data types of an entity specify its associated meaning, constraints, possible values, operations, functions, and storage mode.
A variable is nothing but a name given to a storage area that our programs can manipulate. Each variable in TRObject has a specific type, which determines the size and layout of the variable's memory; the range of values that can be stored within that memory; and the set of operations that can be applied to the variable.
A type declaration is used to declare the data type of an identifier. The syntax of a type declaration is as follows:
var
days : integer;
Integer Types
Type | Description |
---|---|
Byte | Values range from 0 to 255. |
ShortInt | Values range from -128 to 127. |
SmallInt | Values range from -32,768 to 32,767. |
Integer | Values range from -2,147,483,648 to 2,147,483,647. |
LongInt | Has the same range as Integer. |
Int64 | Values range from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807. |
Cardinal | Values range from 0 to 4,294,967,295. |
LongWord | Values range from 0 to 4,294,967,295. |
UInt64 | Values range from 0 to 18,446,744,073,709,551,615. |
Example
var age: Byte; temperature: ShortInt; year: SmallInt; population: Integer; distance: Int64; fileSize: Cardinal; largeNumber: UInt64; balance: LongInt; memorySize: LongWord; { age = 25; temperature = -15; year = 1990; population = 1500000; distance = 10000000000; fileSize = 4000000; largeNumber = 1200000000000000000; balance = -5000000; memorySize = 3000000000; ShowMessage(age); ShowMessage(temperature); ShowMessage(year); ShowMessage(population); ShowMessage(distance); ShowMessage(fileSize); ShowMessage(largeNumber); ShowMessage(balance); ShowMessage(memorySize); }
Floating-point Types
Type | Description |
---|---|
Single | Single precision, approximately 7-digit floating-point number. |
Double | Double precision, approximately 15-digit floating-point number. |
Extended | High precision, approximately 19-20 digit floating-point number. |
Currency | Fixed precision (4 decimal places), suitable for financial calculations. |
Real | Typically used interchangeably with Double. |
Example
var s: Single; d: Double; e: Extended; c: Currency; r: Real; { // Değişkenlere değer atayalım s = 1234.5678; d = 123456789.1234567; e = 1234567890123456789.123456789; c = 123456.7890; r = 987654321.1234567; // Sonuçları ekrana yazdıralım ShowMessage(s); ShowMessage(d); ShowMessage(e); ShowMessage(c); ShowMessage(r); }
Character and String Types
Type | Description |
---|---|
Char | A single character (ANSI). |
WideChar | A single wide character (Unicode). |
String | A variable-length ANSI character string. |
ShortString | A fixed-length ANSI character string up to 255 characters. |
AnsiString | ANSI character string. |
WideString | Unicode character string. |
UnicodeString | Unicode character string, Delphi's default string type. |
Example
var c: Char; wideC: WideChar; s: String; shortS: ShortString; ansiS: AnsiString; wideS: WideString; unicodeS: UnicodeString; { c = 'A'; wideC = '𐍈'; s = 'TRObject programming language'; shortS = 'Hello!'; ansiS = 'İstanbul'; wideS = 'Extended text with Unicode support: ö, ü, ş'; unicodeS = 'Unicode, the default string type; Turkish characters: ç, ğ, İ'; ShowMessage('Char: '+ c); ShowMessage('WideChar: '+ wideC); ShowMessage('String: '+ s); ShowMessage('ShortString: '+ shortS); ShowMessage('AnsiString: '+ ansiS); ShowMessage('WideString: '+ wideS); ShowMessage('UnicodeString: '+ unicodeS); }
Boolean Types
Specifies true or false logical values. This is also an integer type.
Type | Description |
---|---|
Boolean | Can take the values True or False. |
Example
var b: Boolean; { b = True; ShowMessage(b); }
Date and Time Types
Type | Description |
---|---|
TclDateTime | Stores dates and times, represented as days and fractions of days. |
Example 1
var currentDateTime: TclDateTime; // TDateTime türünde bir değişken specificDateTime: TclDateTime; // Belirli bir tarih ve saat için değişken { currentDateTime = Now; specificDateTime = EncodeDate(2024, 1, 1) + EncodeTime(15, 30, 0, 0); ShowMessage('Current Date and Time: '+ DateTimeToStr(currentDateTime)); ShowMessage('Specific Date and Time: '+ DateTimeToStr(specificDateTime)); }
Example 2 - Calculating the Number of Days Between Two Dates
1. Use the Trunc() function on both TclDateTime values to remove the time part and consider only the date portion.
2. The TclDateTime type is a Double:
- The integer part represents the number of days since January 1, 2014.
- The fractional part represents the time of day (e.g., hours and minutes).
3. After calculating the difference between the two dates, use the Abs() function to get the absolute value. This ensures a positive result even if the dates are entered in reverse.
4. Using this method, the number of days between two dates can be calculated easily.
var Difference: Integer; date1, date2 : TclDateTime; { date1 = StrToDateTime('01.01.2024 08:30:00'); date2 = StrToDateTime('13.05.2025 14:45:00'); Difference = Abs(Trunc(date1) - Trunc(date2)); ShowMessage('Difference: ' + IntToStr(Difference)); // Day difference }
Variant Type
Type | Description |
---|---|
Variant | An flexible data type that can store values of different types, such as integers, floating-point numbers, strings, and booleans. |
Example
var v: Variant; { v = 42; ShowMessage(v); v = 'Hello, World!'; ShowMessage(v); }
Array Types
Type | Description |
---|---|
Array | A list of a specific data type with a fixed or dynamic length. For detailed information, please refer to the Arrays page. |
TclArray | A list of a specific data type with a fixed or dynamic length. For detailed information, please refer to the TclArray page. |
File Types
Type | Description |
---|---|
TextFile | It is a data type used for processing text files. This type can be used to read or write text files line by line. For detailed information, please refer to the File Handling page. |
Special Data Types
Type | Description |
---|---|
TclStringList | It is a useful class for storing and managing a string and provides a list-like structure. For detailed information, please refer to the TclStringList page. |
TclJSONQuery | It is a class used for working with JSON data. Its usage can be found on the JSON Data Source and Cloud Database Queries pages. |
TclSqliteQuery | It is a class used to interact with the SQLite database. It allows you to execute SQL queries, retrieve data, insert, update, and delete records in the SQLite database. For detailed information, please refer to the Local Database Queries page. |
TclSqlQuery | It is a general class used to interact with SQL databases. This class allows you to execute SQL queries, retrieve data, insert, update, and delete records in various SQL-based database systems. For detailed information, please refer to the SQL Server Queries page. |
Constants
Use of constants makes a program more readable and helps to keep special quantities at one place in the beginning of the program. TRObject allows numerical, logical, string and character constants. Constants can be declared in the declaration part of the program by specifying the const declaration.
Syntax of constant type declaration is follows:
const
Identifier = contant_value;