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

content: Записи в delphi 710-Б Сухарська Оля

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

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

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

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

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

content: Пример кода : Стандартное определение записи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;

content: // Присвоение подробностей о сестре Джона - просто копирование целой записи  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;