"Записи в delphi 7"
Завантажити презентаціюПрезентація по слайдам:
Описание Ключевое слово 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;
Схожі презентації
Категорії