Презентація на тему «Записи в delphi 7»

Записи в delphi 7
10-Б Сухарська Оля

Описание
Ключевое слово Record один из самых полезных, и отличительных особенностей Delphi (и языка Паскаля). Оно обеспечивает средство сбора в одну структуру набора различных типов данных. На каждое поле в записи ссылаются следующим способом record.field.

Когда объявлено, опция Packed, Delphi минимизирует память, отведенную под запись. Эти сокращения в памяти повлиять на выполнение, где данные не выстроены, соответственно, по 2, 4 или 8 байт. По умолчанию должно выровняться, где необходимо, с заполнителями. Есть два основных типа полей записи, как показано в двух синтаксических типах:

1. Простое объявление поляЭто стандартные объявления переменных Delphi, типа: size : Integer; за исключением того, что их размер должен быть определен. Например: description : string[20]; потому, что Delphi должен знать точный объём памяти необходимый этому полю в записи.

2. Выбираемые (Различные) разделы поляОни должны всегда следовать за любыми основными объявлениями полей (ключевое слово Case не имеет закончившего слова End;). Они позволяют различным, альтернативным типам данных заменять друг друга. Например, запись пациента может иметь различный раздел объявлений для женщин по сравнению с мужчинами. Использование той же самой записи с Variant частью является разумнее. По умолчанию, поля в записи выравниваются по Byte и Word границам. Для обоих типов записи, опция packed позволяет ей быть изменённой, чтобы уменьшить требуемый объём памяти.

Примечания
C использованием ключевого словаWith, к полям записи можно обращаться без указания префикса каждый раз с названием поля.В отличие от Объектно-ориентированных языков подобноJava, Тип Record в Delphi обеспечивает лучший механизм выполнения для передачи подобных групп данных чем классы данных.

Пример кода : Стандартное определение записиtype // Объявление записи клиента TCustomer = Record firstName : string[20]; lastName : string[20]; address1 : string[100]; address2 : string[100]; address3 : string[100]; city : string[20]; postCode : string[8]; end;var John, Sarah : TCustomer;begin // Присвоение подробностей клиенту Джону with John do begin firstName := 'John'; lastName := 'Smith'; address1 := '7 Park Drive'; address2 := 'Branston'; address3 := 'Grimworth'; city := 'Banmore'; postCode := 'BNM 1AB'; end;

// Присвоение подробностей о сестре Джона - просто копирование целой записи Sarah := John; // И затем изменение имени Sarah.firstName := 'Sarah'; // Теперь показ подробностей обоих клиентов with John do ShowCustomer([firstName, lastName, address1, address2, address3,city, postCode]); ShowMessage(''); with Sarah do ShowCustomer([firstName, lastName, address1, address2, address3,city, postCode]);end;// Процедура, которая отображает переменное число строкprocedure TForm1.ShowCustomer(const fields: array of string);var i : Integer;begin // Отображение всех переданных полей - примечание: массивы начинаются с 0 for i := 0 to Length(fields)-1 do ShowMessage(fields[i]);end;