Разное

Типы данных делфи: Типы данных Delphi

Типы данных Delphi. Простые типы (целый, вещественный, символьный, строковый, логический). Объявление констант и переменных в разделе описания.

Переменная — это область памяти, в которой находятся данные, которыми оперирует программа. Когда программа манипулирует с данными, она, фактически, оперирует содержимым ячеек памяти, т. е. переменными. В языке Delphi каждая переменная перед использованием должна быть объявлена. С помощью объявления устанавливается не только факт существования переменной, но и задается ее тип, чем указывается и диапазон допустимых значений.

В общем виде инструкция объявления переменной выглядит так:

Имя : тип;

□ имя — имя переменной;

□ тип — тип данных, для хранения которых предназначена переменная. Пример:

а : Real; b : Real; i : Integer;

В приведенных примерах объявлены две переменные типа real и одна пе ременная типа integer.

В тексте программы объявление каждой переменной, как правило, помещают на отдельной строке.

Если в программе имеется несколько переменных, относящихся к одному типу, то имена этих переменных можно перечислить в одной строке через запятую, а тип переменных указать после имени последней переменной через двоеточие, например:

a,b,c : Real; xl,x2 : Real;

Именованная константа, как и переменная, перед использованием должна быть объявлена. В общем виде инструкция объявления именованной константы выглядит следующим образом:

константа = значение;

□ константа — имя константы;

□ значение — значение константы.

Именованные константы объявляются в программе в разделе объявления констант, который начинается словом const. Ниже приведен пример объявления именованных констант (целой, строковой и дробной).

const

Bound = 10;

Title = ‘Скорость бега’; pi = 3.1415926;

После объявления именованной константы в программе вместо самой константы можно использовать ее имя.

В отличие от переменной, при объявлении константы тип явно не указывают.

Тип константы определяется ее видом, например:

□ 12 5 — константа целого типа;

□ о.о — константа вещественного типа;

□ ‘Выполнить’ —строковая константа;

□ ‘ \ ‘ — символьная константа.

Оператор присваивания Delphi. Арифметические (регулярные) выражения. Основные математические и логические функции, их приоритет.

Инструкция присваивания выполняется следующим образом:

1. Сначала вычисляется значение выражения, которое находится справа от символа инструкции присваивания.

2. Затем вычисленное значение записывается в переменную, имя которой стоит слева от символа инструкции присваивания.

Например, в результате выполнения инструкций:

□ i: =о; — значение переменной i становится равным нулю;

□ а: =ь+с; — значением переменной а будет число, равное сумме значений переменных ь и с;

□ j: = j+1; — значение переменной j увеличивается на единицу.

Инструкция присваивания считается верной, если тип выражения соответствует или может быть приведен к типу переменной, получающей значение.

Например, переменной типа real можно присвоить значение выражения,

ТИП которого real ИЛИ integer, а Переменной ТИПа integer МОЖНО ПРИСВОИТЬ значение выражения только типа integer.

Так, например, если переменные i и п имеют тип integer, а переменная

d — ТИП real, ТО ИНСТРУКЦИИ

i:=п/10; i:=1.0;

неправильные, а инструкция

d:=i+l;

правильная.

Во время компиляции выполняется проверка соответствия типа выражения типу переменной. Если тип выражения не соответствует типу переменной, то компилятор выводит сообщение об ошибке:

Incompatible types … and …

где вместо многоточий указывается тип выражения и переменной. Например, если переменная п целого типа, то инструкция n: = т/2 неверная, поэтому во время компиляции будет выведено сообщение :

Incompatible types ‘Integer’ and ‘Extended’.

Математические функции

Функция

Значение

Abs (п)

Абсолютное значение n

Sqrt(п)

Квадратный корень из п

Sqr (п)

Квадрат п

Sin (п)

Синус п

Cos (п)

Косинус п

Arctan(n)

Арктангенс п

Exp (n)

Экспонента п

Ln (n)

Натуральный логарифм г:

Rardom. (n’i

Случайное целое число в диапазоне от 0 до п-1

Порядковые типы данных в Delphi. Основные функции для работы с ними.

Не то вот ,что надо http://borlpasc.narod.ru/refer/2/tip.htm

http://www.tspu.tula.ru/ivt/old_site/umr/delphi/delphi_help/D5ophlp2_web/33.html

Определение собственных типов данных

Зачем нужны новые типы

При создании практически любой серьезной программы обойтись без дополни-

тельных, более сложных, чем числа и строки, типов данных бывает довольно трудно.

Гораздо удобнее работать, например, с типом данных Цвет и его значениями: крас-

ный, желтый, зеленый. — нежели просто с числами 1,2,3. Программа при этом полу-

чается значительно нагляднее, а это залог ее качества.

Описание нового типа

Чтобы описать (ввести в программу) новый тип данных, в Паскале имеется специ-

альное ключевое слово type:

typeназвание-типа = описание-типа;

Название типа — это произвольный идентификатор Паскаля. Описание типа может

представлять собой описание перечислимого типа, описание сложного типа, опи-

сание массива и так далее.

Перечислимые типы

Помимо обычных числовых и строковых типов Паскаль позволяет создавать типы,

диапазон значений которых — просто набор идентификаторов. Это удобно в тех

случаях, когда в решаемой задаче имеется понятие, значения которого нагляднее

описывать не числами, а словами.

ЗАМЕЧАНИЕХотя такие же значения можно создать с помощью констант, пере-

числимый тип представляет собой именно тип данных, с помощью

которого можно описывать переменные и выполнять над ними раз-

личные операции.

Перечислимый тип записывается взятой в круглые скобки последовательностью

идентификаторов — значений этого типа, перечисляемых через запятую. Первые

элементы типа считаются младшими по сравнению с идущими следом.

Например, тип, описывающий названия футбольных команд, может быть сфор-

мирован так:

typeTFootballTeam =

(Spartak, CSKA, Dynamo, Locomotive, Torpedo};

varTeam: TFootballTeam;

,b egi. n

Team := Locomotive;

Определение собственных типов данных 39

Б Паскале под перечислимыми типами обычно понимаются не только типы, пред-

ставляющие собой списки идентификаторов, но и другие базовые типы, для кото-

рых можно формально определить последовательность значений и их старшинство.

К таковым относятся(знать диапазоны!)

О все целочисленные типы (Integer, Byte и так далее), для которых всегда можно

сказать, какое следующее число будет следовать за числом N;

О символьные типы (Char): за символом ‘а’ всегда следует символ Ъ’, за символом

‘О’ — символ Т и так далее;

О логические типы — тип Boolean представляет собой не что иное, как пере-

числимый тип (False, True).__

Основныестандартные функции

для работы с типами

В дальнейшей работе с Паскалем не обойтись без базового набора стандартных

функций и процедур (табл. 1.7 и 1.8).

Таблица 1.7. Стандартные функции

Имя функции Возвращаемое значение

Ord Порядковый номер элемента для перечислимых типов, код ASCII для типа Char

Chr Символ (тип Char), преобразованный из числового аргумента

Pred Предыдущее по порядку значение данного типа. Например, значение Pred(5)

равно 4

Succ Следующее по порядку значение данного типа. Например, значение Succ(5)

равно 6

Length Длина строки или число элементов е массиве

High Максимально допустимое значение (для типа). Например, значение High(Byte)

равно 255. Верхняя граница (для массива). Для динамических массивов это

значение всегда равно LengthQ — 1

Low Минимально допустимое значение (для типа). Например, значение Low(Byte)

равно 0. Нижняя граница (для массива). Для динамических массивов это

значение всегда равно О

SizeOf Размер элемента данных указанного типа в байтах. Например, значение

SizeOf(Byte) равно 1, значение SizeOf (Integer) равно 4.

Таблица 1.8. Стандартные процедуры

Имя процедуры Назначение

Операции над порядковыми типами

Операция Описание
Low (T) Минимальное значение порядкового типа Т
High(T) Максимальное значение порядкового типа Т
Ord(X) Порядковый номер значения выражения порядкового типа.
Для целого выражения — просто его значение. Для остальных порядковых типов Ord возвращает физическое представление результата выражения, трактуемое как целое число. Возвращаемое значение всегда принадлежит одному из целых типов
Pred(X) Предыдущее по порядку значение. Для целых выражений эквивалентно Х-1
Succ(X) Следующее по порядку значение. Для целых выражений эквивалентно Х+1
Dec(V) Уменьшает значение переменной на 1. Эквивалентно V := Pred(V)
Inc(V) Увеличивает значение переменной на 1. Эквивалентно V := Succ(V)

5. Символьные и строковые типы данных. Размещение в памяти, основные функции для работы с ними. Способы задания литералов.

Символы

Помимо чисел, в Паскале разрешается обрабатывать данные в виде одиночных сим-

волов и их последовательностей (строк). Символы имеют тип Char и записываются

в виде знака, взятого в одиночные кавычки:

‘ 5 ‘

Иногда требуется обрабатывать символы, имеющие значения, которые невозможно

отобразить на экране. В таких случаях символ записывается в виде числа, перед

которым стоит знак # (в соответствии с кодами символов в кодировке ANSF).

Например:

#0

#40

Полным аналогом типа Char является тип AnsiChar. Допустимый диапазон его зна-

чений (при записи с помощью чисел) — от #0 до #255. В Паскале имеется еще тип

WideChar, соответствующий шрифтовой кодировке UNICODE (первые 256 симво-

лов этого типа соответствуют кодировке ANSI).

Строки

Строка – это последовательность символов ASCII. При использовании в выражениях строка заключается в апострофы. Количество символов в строке (длина строки) может динамически изменяться в пределах от 0 до 255. Для определения данных строкового типа используется идентификатор string, за которым следует заключенное в квадратные скобки значение максимально допустимой длины строки данного типа. Если это значение не указывается, то по умолчанию длина строки принимается равной 255 байтам.

Последовательность символов, заключенная в одиночные кавычки, называется

строкой (тип String — зарезервированное слово). Например:

‘это текстовая строка Паскаля’

Если требуется поместить сам символ одиночной кавычки внутрь строки, его надо

повторить дважды:

‘это » — символ одиночной кавычки1

Некоторые символы могут иметь значения, которые невозможно непосредственно

отобразить на экране (символы, не соответствующие стандарту ANSI). В этом случае

коды соответствующих символов можно прямо (без разделяющих пробелов) вклю-

чать в состав строки.

‘в этой строке’#10#13’ имеются непечатные символы’#0

Строки в Паскале могут быть различной максимальной длины. Строка типа

ShortString содержит до 255 символов (этот тип введен для совместимости со ста-

рыми версиями), строка типа AnsiString — 231 (2 Гбайт) символов, относящихся к

типу AnsiChar (данный строковый тип совпадает со стандартным типом string),

строка типа WideString — 230 символов типа WideChar.

Строка может быть пустой, не содержащей ни одного символа. Тогда она записы-

вается как две идущие подряд одиночные кавычки — «.

Типы параметров для подпрограмм и структур Delphi

Применимо к TestComplete 15.45, последнее изменение 17 ноября 2022 г.

В этом разделе показано, как указать типы параметров и элементов для подпрограмм и структур Delphi при вызове функций DLL из тестов TestComplete. Полное объяснение указания типов включено в описание IDefineDLL.DefineProc .

Важные примечания

Типы параметров

Важные примечания

При указании параметров и типов элементов для подпрограмм и структур Delphi, расположенных в библиотеках DLL, имейте в виду следующие особенности:

  • Компилятор Delphi может выравнивать элементы структуры по определенным границам: по байтам, словам, двойным словам и т. д. Например, приложения часто используют выравнивание по двойным словам. В этом случае адрес каждого члена кратен 4. Таким образом, если структура имеет булев член, вы должны указать его тип как vt_b4 вместо vt_b1 .

    По умолчанию компилятор использует выравнивание для тех структур, которые определены по умолчанию, то есть без использования оператора упакованной записи . Итак, при создании типа данных для структур «по умолчанию» в скриптах обратите внимание на размер членов структуры.

  • Убедитесь, что вы правильно указали типы параметров. Неправильное определение типов параметров может привести к закрытию TestComplete (это происходит потому, что ошибочные определения приводят к неправильной обработке стека).

  • Для пользователей JavaScript, JScript, Python, C#Script и C++Script : Эти языки сценариев не поддерживают передачу переменных по ссылкам через параметры вызываемой функции. Следовательно, вы не можете передать переменную обычного типа данных (например, целое число, логическое значение и т. д.) по ссылке на процедуру DLL и получить значение, измененное процедурой в вашем JavaScript, JScript, Python, C#Script или C+. +Script (это ограничение распространяется также на C#Script и C++Script, поскольку эти языки основаны на JScript и используют движок JScript). В этом случае значение переменной, переданное в подпрограмму DLL из вашего теста JavaScript, JScript, Python, C#Script или C++Script, фактически остается прежним после завершения выполнения подпрограммы, поскольку подпрограмма работает с копией переменная.

    Однако объекты передаются через параметры подпрограммы по ссылкам на этих языках, и если вызываемая подпрограмма изменяет некоторые элементы объекта, переданного через ее параметры, вызывающая подпрограмма может получить доступ к обновленному объекту. Таким образом, если вы передаете пользовательскую структуру, массив или строковое значение, созданное методом DLL.New или IDLLAccessProcess.New (см. Использование пользовательских структур данных в вызовах функций DLL, Использование массивов в вызовах функций DLL и Использование строковых параметров в Вызовы функций DLL) из вашего теста JavaScript, JScript, Python, C#Script или C++Script в подпрограмму DLL, вы можете затем получить доступ к измененной структуре, массиву или строке после завершения выполнения подпрограммы. Дело в том, что такие структуры, массивы и строки создаются Новые методы в качестве объектов-оболочек и такие объекты, переданные в подпрограмму DLL, могут быть изменены и возвращены из подпрограммы, в которую они передаются по ссылкам.

  • В Python все константы пишутся с заглавной буквы. Итак, вы пишете VT_BYREF, VT_R4 и так далее.

Типы параметров

В следующей таблице показаны соответствия между типами данных Delphi и специальными константами, используемыми в TestComplete при вызове IDefineDLL.DefineProc , DLL.DefineType и IDLLAccessProcess.DefineType методы для указания типов данных параметров функций DLL или членов структур, определенных в DLL.

Ансичар vt_ui1
AnsiString vt_lpstr
Этот тип поддерживается только для параметров функции. Значения результата AnsiString не поддерживаются.
Булево значение vt_b1
БСТР vt_bstr
Байт vt_ui1
Байтбул vt_b1
Кардинал vt_ui4
Символ vt_i1
Валюта vt_cy
Двойной vt_r8
DWord vt_ui4
HРезультат vt_ui4 (HRESULT не является Variant-совместимым типом, поэтому для того, чтобы вы могли работать с данными HRESULT, объявите их как vt_ui4 , а не как vt_hresult .)
HWND vt_ui4 (для 32-разрядных DLL)
— или —
vt_ui8 (для 64-разрядных DLL)
IDispatch vt_dispatch (см. также Возврат ссылок на интерфейс из функций DLL)
Целое число vt_i4
— или —
vt_int
Целое64 vt_i8
ЛонгБул vt_b4
Лонгинт vt_i4
— или —
vt_int
Длинное слово vt_ui4
ОлеВариант vt_variant
Пбайт vt_byref | vt_ui1
PChar vt_lpstr
— или —
vt_byref | vt_i1
Этот тип поддерживается только для параметров функции. Значения результатов PChar не поддерживаются.
PWChar vt_lpwstr
Целое число vt_byref | vt_int
Вариант vt_byref | vt_variant
Действительный
(8-байтовый Действительный, не Действительный48)
vt_r8
Одноместный vt_r4
Малый vt_i2
строка 9Строка 0006 Тип не поддерживается.
TDateTime vt_date
Вариант vt_variant
VARIANT_BOOL vt_bool
Широкоугольный vt_ui2
Широкая строка vt_bstr
Ворд vt_ui2
WordBool vt_b2

См. также

Вызов функций DLL из тестов
Вызов функций DLL из тестов — обзор
Вызов функций DLL из тестов — учебное пособие
Возврат ссылок интерфейса из функций DLL

Типы данных Delphi для интеграции API

Типы данных Delphi для интеграции API

Иногда нам может понадобиться интегрировать API, написанные на других языках, в наше приложение Delphi, или нам может понадобиться вызывать API-интерфейсы Windows при работе со сложными структурами данных, или нам может понадобиться взаимодействовать с компонентами ActiveX OLE. В таких случаях основной проблемой является несоответствие типа данных. Таким образом, для лучшей совместимости Delphi предоставляет следующие типы данных Pointer, которые можно использовать для отправки и получения данных в другие приложения и из них в приложения Delphi.

Целочисленные типы данных


Тип

Описание

Указатель

8-битный целое число без знака

Короткий интервал

8-битный целое число со знаком

Пшортинт

16-битный целое число без знака

Малый Целый

16-битный целое число со знаком

PSmallInt

Кардинал

32-битный целое число без знака

ПК Кардинал

Лонгворд

32-битное целое число без знака

64-битное целое число без знака

PLongWord

ФиксированныйUInt

32-битный целое число без знака

PFixedUInt

Целое число

32-битный целое число со знаком

PЦелое число

LongInt

32-битное целое число со знаком
64-битное целое число со знаком

PLongint

Фиксированное целое

32-битный целое число со знаком

Пфиксединт

UInt64

64-битный целое число без знака

PUInt64

64-битный целое число со знаком

PInt64

Нативуинт

64-битный или 32-битное целое число без знака, зависящее от платформы,

PNativeUInt

НативИнт

64-битный или 32-битное целое число со знаком

, зависящее от платформы

PNativeInt




Типы данных с плавающей запятой

Тип

Описание

Указатель

Одноместный

Одинокий точность с плавающей запятой (4 байта)

PS одиночный

Двойная

Двойной точность с плавающей запятой (8 байт)

PДвойной

Расширенный

Расширенный точность с плавающей запятой

PРасширенный

Строковые и символьные типы данных

Тип

Описание

Указатель

Ансичар

ANSI персонаж

ПАнсиЧар

Широкий символ (16 бит)

WideChar

16-битный персонаж

PWideChar

AnsiString

Представляет собой динамически размещаемая строка ANSI, максимальная длина которой ограничена только доступная память.

PAnsiString

RawByteString

Использовать как параметр, не зависящий от кодовой страницы, для метода или функции, или как тип переменной для хранения данных BLOB.

PRawByteString

UnicodeString

Юникод строка

PUnicodeString

Строка

Псевдоним для UnicodeString

PString

Короткая строка

А строка не более 255 символов

PShortString

Широкая строка

А строка 16-битных символов

Пвайдестринг

Логические типы данных

Тип

Описание

Указатель

Булево значение

Представляет собой логическое значение (истина или ложь).

PBoolean

Байтбул

Представляет собой 8-битное логическое значение.

WordBool

Представляет собой 16-битное логическое значение.

PWordBool

ЛонгБул

Представляет собой 32-битное логическое значение.

PLongBool

Другие типы данных

Тип

Описание

Указатель

Вариант

Представляет собой значения, которые могут изменять тип во время выполнения.

Вариант

Указатель

Представляет собой указатель на данные любого типа.

PPointer

Валюта

фиксированная точка тип данных, используемый для хранения денежных значений.

Валюта


Популярные посты из этого блога

ShellExecute в Delphi

ShellExecute в Delphi — запуск внешних приложений. ShellExecute — это функция Delphi Windows API, которая в основном используется для запуска внешних приложений из нашего приложения Delphi. Эта функция связана с функцией Windows API ShellExecute. Функция возвращает целое число, соответствующее коду ошибки, что очень полезно, когда нам нужно показать некоторый статус, сработала функция или нет. С помощью ShellExecute мы также можем выполнять следующие операции…. Можно печатать документы из моей программы, не запуская явным образом приложение, создавшее документ, например: печатать документ Word, не запуская Word. Может открыть браузер с локальной HTML -страницей CAN CAN SURF на сайт, то есть открыть внешнюю ссылку URL -адреса из приложения Delphi может отправить почту Shellexecute Shellexecute Paints (_in_opt_ hwnd hwnd, _in_opt_ lpctstr lpoperes

Читать далее

Рисование фигур в Delphi

Поверьте мне, рисовать фигуры в Delphi очень просто. Для разработки программного обеспечения, такого как САПР, Paint, CorelDraw, Delphi предоставляет большое количество классов и элементов, поддерживающих рисование фигур в форме или графическом элементе управления. В Delphi мы рисуем фигуры на холсте формы или графических элементов управления. Холст — это область формы, где мы можем рисовать фигуры, линии и заполнять фигуры цветами. В Delphi у каждой формы или графического элемента управления есть свойство Canvas, которое предоставляет объект TCanvas, который можно использовать для рисования фигур. Объект TPen используется для рисования линий, и мы можем установить размер и цвет линий. Объект TBrush используется для установки цвета и стиля заливки фигур. Наиболее часто используемые классы для рисования фигур – TCanvas , TBitmap, TGraphics, TPen, TBrush. TCanvas Используйте TCanvas в качестве поверхности для рисования объектов, рисующих собственное изображение. , и рисовать), а также хранить изображения в памяти и в виде файлов на диске. TGraphics TGr

Читать далее

Автоматизация MS Excel в Delphi

В этом блоге я опишу, как читать и записывать данные из файла Excel и в него. Иногда в нашем приложении мы используем Excel для целей отчетности, для целей импорта/экспорта данных и для других работ.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *