Назначение и свойства компонентов страницы Samples 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Назначение и свойства компонентов страницы Samples



 

Вид страницы Samples представлены на рисунке 7.

 

 

Рисунок 7 – Вид страницы Samples

 

Основные назначения и свойства компонентов страницы Samples представлены в таблице 8.

Таблица 8 - Компоненты страницы Samples

 

Вид Пояснение
Gauge – отображение хода процесса. Используется для создания индикатора хода процесса в виде линейки, круговой диаграммы или текста. Аналог компонента ProgressBar.
SpinEdit – поле со счетчиком. Свойства компонента похожи на UpDown, только имеют другие имена: MinValue, MaxValue, Value. Компонент SpinEdit во многих отношениях удобнее, если не требуются такие возможности возможностей UpDown как нестандартное расположение кнопок, «закольцовывание» изменений и т.п. 
Calendar – календарь на указанный месяц. Отображение календаря на указанный месяц. Основные свойства: Year, Month, Day.

 

Обработка файлов

 

Для доступа к файлам чаще всего используется специальная файловая переменная. Она связывается с указанным файлом процедурой AssignFile.

Эта процедура имеет синтаксис:

procedure AssignFile(var F: File, S: string);

где F - файловая переменная любого типа,

S - строка, содержащая имя файла.

Открытие существующего файла осуществляется процедурой Reset, формат которой (кроме нетипизированных файлов) следующий:

procedure Reset(var F: File);

Файловая переменная F перед обращением к этой процедуре должна быть связана с файлом. Создание и открытие нового файла осуществляется процедурой Rewrite, формат которой (кроме нетипизированных файлов - см. разд. 14.14.2.3) следующий:

procedure Rewrite(var F: File);

После выполнения различных операций чтения и записи файл должен быть закрыт процедурой CloseFile:

procedure CloseFile(var F: File);

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

Первый предполагает обработку исключений InOutError, поле errorcode которых содержит информацию о конкретном виде ошибки. Второй предполагает применение опции {$I-}, отключающей генерацию исключений ошибок ввода/вывода, и дальнейшее обращение к функции IOResull, возвращающей код ошибки и сбрасывающей его в 0 (так что повторное обращение к IOResuIt бессмысленно). После обработки операции ввода/вывода контроль ошибок можно снова включить опцией {$I+}. В этом случае общая организация работы с файлами строится примерно по такой схеме:

AssignFile (F, OpenDialogl.FileName);

{SI-}

Reset(F);

{SI+}

I:=IOResult;

if I <> 0 then <операторы обработки кода ошибки>

else...

{SI+}

<операторы чтения или записи>

{SI-}

I:=IOResult;

if I <> 0 then <операторы обработки кода ошибки>

CloseFile(var F: File);

При операциях ввода/вывода проверять окончание файла можно функцией Eof(F: File), возвращающей true при достижении конца файла.

Различают файлы трех видов: текстовые, файлы, типизированные файлы и нетипизированные файлы.

Текстовые файлы состоят из последовательностей символов, разбитых на строки. В Object Pascal предопределен тип TextFile, соответствующий текстовому файлу. Таким образом, объявление файловой переменной может иметь вид:

var <Имя файловой переменной>: TextFile;

Запись данных в текстовый файл осуществляется процедурой

procedure Write(var F: TextFile; <список выражений>);

Выражения могут быть типов Char, Integer, Real, string, упакованных строк, Boolean. При этом может использоваться форматирование.

Например:

Write(F, 'Baм ', I, ' лет);

Аналогичная процедура Writeln отличается от Write только тем, что после записи пишет символ перехода на новую строку, т.е. Writeln формирует одну строку.

Чтение данных из текстового файла осуществляется последовательно от его начала процедурой

procedure Read(var F: TextFile; <список переменных>);

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

Read(F, S1, I, S2]; даст значение S1, равное «Вам», значение I, равное записанному числу лет, и значение S2, равное «лет».

Аналогичная процедура Readln отличается от Read только тем, что после чтения переводит текущую позицию в файле на новую строку. Если в процедуре Readln не задан список переменных, то она просто пропускает текущую строку и переходит к следующей.

Типизированные файлы являются двоичными файлами, содержащими последовательность однотипных данных. Объявление файловых переменных таких файлов имеет вид:

var <имя файловой переменной;»: file of <тип данных>;

Тип данных может быть не только простым типом, но и, например, типом записей. Так операторы:

type

PhoneEntry = record

Fans, Nam: string[20];

PhoneNumber: string[15];

Listed: Boolean;

end;

PhorieList = file of PhoneEntry;

объявляет типизированный файл, содержащий записи телефонных номеров.

Процедуры чтения и записи Read и Write не отличаются от рассмотренных ранее для текстовых файлов. Только типы выражений при записи и переменных при чтении должны соответство-вать объявленному типу данных файла. Процедур, аналогичных Readln и Writeln для типизированных файлов нет. Зато есть процедура Seek, позволяющая перемещаться по файлу не только последовательно, как в текстовых файлах, но сразу переходить к требуемому элементу. Ее синтаксис:

procedure Seek(var F: File, N: Longint);

где N — номер элемента.

Эта процедура перемещает текущую позицию в файле на нужный элемент.

Имеется также функция FilePos: function FilePos(var F): Longint;, которая возвращает текущую позицию в файле.


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

Задание №

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

Для решения задачи необходимо создать форму и разместить на ней два компонента Edit, три Button, три Label, один MainMenu. В инспекторе объектов надо изменить их свойства:

У компонентов Label в свойстве Caption задать необходимую подпись.

У компонентов Edit в свойстве Text удалить все.

У компонентов Button в свойстве Caption задать необходимую подпись – Считать, Очистить, Закрыть.

Двойным щелчком по компоненту MainMenu был вызван редактор меню и в нем создан пункт Файл, а в нем три пункта: Считать, Очистить, Закрыть.

Для того чтобы в Edit2 могли внести только одну букву надо выделить компонент и в инспекторе объектов на закладке Events для события KeyUp (отпускание нажатой клавиши) написать код:

procedure TForm1.Edit2KeyUp(Sender: TObject; var Key: Word;

Shift: TShiftState);

var s:string;

begin

s:=Edit2.Text; //считываем имеющийся текст

if Length(s)>1 then //если его длин больше 1 символа

s:=s[length(s)];//все заменяем последним символом

Edit2.Text:=s;//заносим в Edit символ

end;

Двойным щелчком по компоненту Button1 был вызван редактор кода, в нем написан следующий код для решения задачи:

procedure TForm1.Button1Click(Sender: TObject);

var s,s2:string;

i,n:integer;

begin

s:=Edit2.Text;//Запоминаем символ

s2:=Edit1.Text; Запоминаем текст

n:=0;//Обнуляем счетчик символов

for i:=1 to Length(s2) do//перебираем номера символов в строке

if s[1]=s2[i] then n:=n+1; //Если текущий символ равен искомому то увеличиваем счетчик

Label1.Caption:='Символ ' + s[1]+ ' встречается '+inttostr(n)+ ' раз';//вывод результата

end;

Двойным щелчком по компоненту Button2 был вызван редактор кода, в нем написан следующий код для очистки:

procedure TForm1.Button3Click(Sender: TObject);

begin

Edit2.Text:='';

Edit1.Text:='';

Label1.Caption:='';

end;

Для выхода:

procedure TForm1.Button2Click(Sender: TObject);

begin

form1.Close;

end;

Двойным щелчком по компоненту MainMemu1 был вызван редактор меню, в нем выделен первый пункт и в инспекторе объектов на закладке Events для события onClick выбран Button1Click. Аналогично для остальных.

Работающая форма с результатами представлена на рисунке 8:

 

 

Рисунок 8 – Форма с результатами

 


Таблица 9 – Варианты домашней контрольной работы № 2 по дисциплине «Основы алгоритмизации и

 программирования»

 

Предпоследняя цифра шифра

Последняя цифра шифра

0 1 2 3 4 5 6 7 8 9
0 27, 57, 65, 117, 127 26, 44, 79, 100, 132 18, 49, 63, 111, 137 17, 48, 69, 106, 137 22, 60, 70, 113, 131 7, 55, 83, 92, 127 19, 41, 77, 106, 141 24, 53, 88, 100, 137 23, 38, 76, 112, 140 19, 51, 87, 91, 121
1 8, 59, 83, 97, 135 13, 52, 75, 107, 128 20, 35, 90, 113, 139 14, 59, 75, 116, 147 2, 50, 64, 101, 126 26, 39, 79, 102, 139 16, 32, 72, 117, 134 30, 54, 70, 94, 143 22, 59, 86, 104, 125 28, 55, 65, 109, 146
2 12, 56, 76, 98, 149 22, 31, 86, 96, 130 19, 40, 88, 115, 121 13, 40, 84, 112, 134 11, 47, 73, 120, 129 23, 36, 74, 115, 150 18, 58, 67, 105, 136 21, 57, 90, 114, 139 3, 40, 89, 95, 133 30, 53, 80, 102, 143
3 30, 58, 64,105, 136 5, 43, 77, 91, 138 25, 47, 62,106, 123 25, 58, 61, 96, 122 16, 32, 85,114, 145 1, 43, 72, 95, 125 6, 52, 75, 99, 122 7, 37, 71, 120, 148 28, 1, 62, 98, 142 23, 40, 84, 94, 131
4 15, 53, 72, 99, 142 21, 50, 66,118, 144 29, 45, 87, 95, 122 29, 42, 89,119, 142 12, 31, 88,100, 133 27, 57, 82,118, 123 4, 47, 78, 108, 124 10, 46, 63,111, 123 11,33, 61, 110, 131 10, 60, 75, 99, 127
5 4, 36, 71,116, 140 2, 39, 74,102, 150 23, 51, 81,110, 124 19, 35, 80,104, 130 6, 53, 71,103, 146 20, 37, 81, 91, 128 13, 43, 85, 93, 145 14, 34, 79,101, 130 9, 51, 74,116, 127 20, 44, 72, 95, 135

 

Продолжение таблицы 9

 

Предпоследняя цифра шифра

Последняя цифра шифра

0 1 2 3 4 5 6 7 8 9
6 10,33, 89,119, 134 24, 48, 78,120, 148 14, 60, 85,93, 147 30, 41, 62,98, 149 5, 38, 63,93, 143 9, 44, 66,91, 148 5, 55, 87,102, 126 29,42, 64,107, 146 1, 45, 73,97, 138 1, 45, 71,107, 148
7 1, 54, 80,101, 131 11, 32, 73,103, 146 3, 38, 61,114, 143 24, 51, 77,110, 138 21, 49, 86,117, 132 8, 46, 65,108, 140 15, 36, 83,103, 149 26, 56, 65,92, 150 25, 50, 81, 91, 147 26, 48, 76,110, 141
8 6, 41, 70,109, 145 17, 55, 69,92, 141 16, 37, 82,108, 126 18, 33, 68,94, 135 3,34, 76,107, 136 15, 54, 67,109, 144 17, 48, 66,118, 132 12, 49, 69,113, 121 20, 39, 82,96, 129 12, 34, 86,111, 150
9 7,34, 68,104, 133 28, 42, 67,112, 129 9, 46, 84,94, 125 28, 56, 87,105, 141 4, 52, 90,99, 124 10, 45, 78,110, 121 2, 60, 84,109, 128 27, 35, 80,119, 144 8, 44, 68,115, 135 2, 38, 81,112, 149

 

 



Поделиться:


Последнее изменение этой страницы: 2020-12-09; просмотров: 75; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.216.123.120 (0.028 с.)