o Выделенный фрагмент. Этот переключатель даёт возможность печати предварительно выделенного фрагмента Web-страницы.
o Печать в файл. В этом случае версия для печати сохранится в виде файла с расширением .prn. Используется этот способ для переноса файла на другую машину, где имеется возможность печати.
o Раздел Печать кадров позволяет выполнять печать в трёх режимах:
1. Как расположено на экране – на печать будет выдано то, что видно в окне.
2. Только выбранная структура – на печать будет выдан лишь активный кадр, то есть тот, на котором был выполнен щелчок левой кнопки мыши.
3. Все структуры индивидуально – будут напечатаны все кадры.
o Печать связанных документов. Этот параметр используется в тех случаях, когда необходимо выполнить печати всех документов, на которые указывают гиперссылки текущей Web-страницы.
o Печать таблицы ссылок. Данный параметр предназначен для распечатки списка ссылок текущей Web-страницы, который будет добавлен в конце печатаемой страницы в виде таблицы.
По умолчанию фоновый цвет и рисунки не печатаются. Если всё же необходимо напечатать всё полностью, то необходимо выполнить команду Сервис/Свойства обозревателя, выбрать вкладку Дополнительно и в разделе Печать установить флажок Печать цвета и рисунки фона.
При обработке данных составные типы, описывающие людей или объекты, обычно встречаются в анкетах или банках данных; они описывают существенные характеристики некоторых объектов. Поэтому к данным такой природы стало широко применяться слово запись (record).
Записи - это набор из одной или более переменных, возможно различных типов, сгруппированных под одним именем для удобства обработки.
Записи - это структура данных, каждый элемент которой имеет собственное имя и тип данных. Элемент записи иначе называют поле. В отличие от массива эти элементы могут быть различного типа. Записи очень важный и удобный инструмент. Даже не применяя специальные технологии, с его помощью можно создавать собственные базы данных. Формат описания:
<идентификатор записи> : record <идентификатор поля1> : <тип поля1>; <идентификатор поля1> : <тип поля1>; end; Примеры:Type Complex = record Re: Real; Im:Real; end;Type Data = record Year: Integer; Month: 1..12; Day: 1..31; end;Var X, Y, Z : Complex; Dat: Data;Var Person : record Name, Surname: string[20]; Birthday: string; Sex: (male, female); Age: byte; Married: boolean; end;Const Birthday: Data=(Year:1971; Month:12; Day: 9); Ivanov: Person=(Name: ‘Иванов’; Sex: male; Age: 40; Married: true);
Названия полей, имеющих одинаковый тип, можно, как и в случае описания переменных, указывать в одну строку через запятую. Количество и тип полей записи может быть произвольным. Для обращения к полю записи сначала указывают имя записи, затем точку, затем имя поля.
Например, данные о персонале предприятия могут быть организованы таким типом записи:
type TPers = record Fam, Name, Par : String; Year : Integer; Dep : String; end; var Pers : TPers; begin Pers.Fam:='Иванов'; Pers.Name:='Иван'; Pers.Par:='Иванович'; Pers.Year:=1966; Pers.Dep:='Цех №1'; end;
Теперь осталось записать эти данные в файл, предварительно объявив и его тип как TPers, и база данных готова. С файлом в Delphi также ассоциируется переменная, называемая файловой переменной, которая описывается так:
VFile : file of тип_файла;
В качестве типа может использоваться любой ограниченный тип Delphi. При этом не допускается тип String, так как он допускает переменный размер до 2 ГБайт. Его необходимо ограничивать: String[N], где N - количество символов. Тип TPers из предыдущего примера должен быть описан, например, так:
type TPers = record Fam, Name, Par : String[20]; Year : Integer; Dep : String[10]; end;
Теперь переменная такого типа занимает строго определённое место в памяти, и может быть записана в файл.
Если требуется обращение к нескольким полям записи подряд, то можно для упрощения использовать оператор WITH:
WITH <идентификатор записи> do <оператор>WITH <идентификатор записи> do begin <оператор1> <оператор1> end;Пример:With Person do Begin Name:=‘Andrey’; Surname:=‘Sidorov’; Sex:=male; Age:=17; Married:=false; end;
Программа, с помощью которой можно вводить некоторые данные о человеке и выводить на экран введенные данные.
program EXAMPLE; type Person = record {Тип-запись} Family: string[20], {Фамилия} Sex: Char, {Пол} Age: Integer; {Возраст} end;var Man: Person; {Переменная типа запись}begin with man do begin Write('Фамилия И.О.: '); {Запрос на ввод фамилии} ReadLn (Family); {Чтение фамилии} Write (‘Пол (м, ж): '); {Запрос на ввод пола} Readln (Sex); {Чтение информации) Write (‘Возраст (лет): '); {Запрос на ввод возраста} ReadLn (Age); {Чтение возраста} End; Writeln (‘Вывод характеристик’); Writeln (‘Фамилия И.О.: ', Man.Family); Write(‘Пол: '); {Вывод пола}if Man.Sex in [‘М’, ‘м’] thenWriteLn ('мужской’) else Writeln ('женский'); Writeln (‘Возраст:', Man.Age, ' лет'); {Вывод возраста}end.
Пример (нахождение среднего роста людей старше 50 лет):
varPeople : array[1..100] of record Name : string; Age : integer; Height : integer;end;i,CountPeople,AverageHeight,CountSelect : integer; begin write('Введите количество людей: '); readln(CountPeople); for i := 1 to CountPeople do begin write('Введите имя ',i,' человека: '); readln(People[i].Name);w write('Введите возраст ',i,' человека: '); readln(People[i].Age); write('Введите рост ',i,' человека: '); readln(People[i].Height); end; CountSelect := 0; AverageHeight := 0; for i := 1 to CountPeople do if People[i].Age>50 then begin inc(CountSelect); AverageHeight := AverageHeight+ People[i].Height; end; if CountSelect>0 then writeln('Средний рост:', AverageHeight/CountSelect:0:2) else writeln('таких людей нет');end.
После того, как описан тип запись, его можно использовать для определения типа поля в другой записи.
Var Person = record Name, Surname: string[20]; Birthday: Data = record Year: Integer; Month: 1..12; Day: 1..31; end; Sex: (male, female); Age: byte; Married: boolean; end;
Доступ к полям иерархической записи
Person.Name; Person.Data.Year; With Person do data.month:=10; With Person.Data do Year:=2005;