- •Программа дисциплины,
- •Задания на домашнюю контрольную работу №2 и
- •Методические указания по их выполнению
- •Для учащихся заочного отделения
- •Раздел 6 Элементы системного программирования на Паскале
- •Тема 6.1 Доступ к системным ресурсам
- •2 Выполните задание, добавив, если необходимо, защиту от неправильного ввода данных. Форма обязательно должна содержать кнопку для закрытия приложения:
- •1 Состав проекта
- •2 Работа с проектом
- •3 Назначение и свойства компонентов страницы Standard
- •4 Обработка массивов при помощи компонентов страницы Standard
- •5 Назначение и свойства компонентов страницы Additional
- •Image – изображение
- •6 Назначение и свойства компонентов страницы Win 32
- •7 Ввод и вывод даты и времени
- •8 Назначение и свойства компонентов страницы Standard
- •9 Динамический обмен данными — dde
- •10 Назначение и свойства компонентов страницы Dialogs
- •11 Назначение и свойства компонентов страницы Samples
- •12 Обработка файлов
4 Обработка массивов при помощи компонентов страницы Standard
Обработка массивов по сравнения с обычными переменными имеет ряд особенностей.
Для задания значений элементов массива в Паскале применялся цикл For, который выполнял команду вывода подсказки Writeln и команду чтения Readln.
В Delphi для задания ряда чисел – обычно массив выглядит именно так, можно использовать несколько компонентов самым удобным из которых является StringGrid.
Из компонентов страницы Standard для задания массива желательно использовать Memo. Каждая его строка должна соответствовать значению одного элемента массива. В него можно ввести заранее выбранное число строк и считывать числа построчно циклом For.
Если размер массива не задан, можно в компоненте Memo на следующей после последнего элемента массива строке поставить условный знак окончания массива (например *). В этом случае считывание производится циклом While memo1.Lines.strings[i]<>’*’ do
Для дальнейшей обработки массив надо преобразовать к числовому виду. Для этого в программе должен быть объявлен массив и строковая переменная. Чтение из Memo производится в строковую переменную, а затем при помощи функций перевода из одного типа в другой (например StrToFloat) очередному элементу массива надо присвоить значение.
Для вывода нового или измененного массива можно использовать компоненты Memo, ListBox, Label, Edit. Для добавления новой строки с элементом массив обычно используется метод Add. Для компонентов Label и Edit надо создать текстовую переменную, к которой циклом For надо добавить все элементы, предварительно преобразовывая их к текстовому типу, например s:=s+’ ‘+IntToStr(a[i]).
Для выбора операции над массивом можно использовать компоненты ListBox, ComboBox, RadioButton, ChekBox.
При работе с ними, для проверки того, какая операция выбрана, необходим оператор ветвления If .
Например If RadioButton1.Checked, If ListBox1.ItemsIndex =1 и т.д.
5 Назначение и свойства компонентов страницы Additional
Страница Additional содержит большой набор компонентов различных назначений. Часть из них подобна компонентам страницы Standard, но обладает более широкими возможностями. Часть не имеет аналогов на других страницах и применяется для оформления приложения.
Рассмотрим некоторые компоненты страницы Additional
BitBtn – кнопка с картинкой
B
itBtn
– аналог кнопки Button
отличается, в основном, возможностью
выводить на ее поверхность изображение.
Большинство свойств, методов и событий
у этих видов кнопок одинаковы.
Glyph – Задает изображение на кнопке. При нажатии кнопки с многоточием в строке свойства Glyph в Инспекторе Объектов вызывается окно. Нажав в нем кнопку Load, вы перейдете в обычное окно открытия файла рисунка и можете выбрать файл битовой матрицы .bmp, содержащий желаемое изображение. В частности, с Delphi поставляется большое количество изображений для кнопок. Они расположены в каталоге \lmages\Buttons, а сам каталог Images расположен в каталоге \program files\borland\borland shared.
Margin – размещение надписи и рисунка на кнопке. Если свойство Margin равно -1 (значение по умолчанию), то изображение и надпись размещаются в центре кнопки.
Layout – определяет положение изображения по отношению к надписи
Spacing – задает число пикселей, разделяющих изображение и надпись на поверхности кнопки.
Kind –определяет тип кнопки. По умолчанию равно bkCustom — заказная. Можно установить и множество других предопределенных типов: bkOK, bkCancel, bkHelp, bkYes, bkNo, bkClose, bkAbort, bkRetry, bkgnore, bkAll.
SpeedButton – быстрая кнопка
S
peedButton
– кнопка с возможностью отображения
пиктограмм, может использоваться как
обычная кнопка или как кнопка с фиксацией
нажатого состояния. Обычно
они используются в качестве быстрых
кнопок, дублирующих различные команды
меню, и в инструментальных панелях, в
которых требуется фиксация нажатого
состояния.
Grouplndex – индекс группы. Если Grouplndex = 0, то кнопка ведет себя так же, как Button и BitBtn. Если Grouplndex > 0 и AllowAllUp = true, то кнопка работает с фиксацией состояния. Если есть несколько кнопок, имеющих одинаковое ненулевое значение GroupIndex, то они образуют группу взаимосвязанных кнопок, из которых нажатой может быть нажата только одна кнопка.
MaskEdit – компонент Шаблон ввода
Э
тот
компонент позволяет вводить данные в
текстовое поле по заданному шаблону.
Он полезен для приложений, где надо
контролировать вводимую пользователями
информацию.
Структура маски обычно задается через свойство EditMask, которое хранит структуру маски в текстовом виде. Это же свойство позволяет вызвать окно построителя маски.
В первом разделе — шаблоне записываются специальным образом символы, которые можно вводить в каждой позиции, и символы, добавляемые самой маской.
Таблица1-Назначение символов первой части маски
Символ |
Назначение |
1 |
2 |
! |
Если этот символ присутствует в маске, то необязательные символы вставляются перед маской. Если отсутствует — необязательные символы вставляются после маски |
> |
– Все последующие символы автоматически приводятся к верхнему регистру |
< |
– Все последующие символы автоматически приводятся к нижнему регистру |
<> |
– Прекращение преобразования регистра |
\ |
– Последующий символ вставляется в маску. Данная возможность необходима для добавления символов, используемых в качестве элементов шаблона |
L |
– В данную позицию разрешен только ввод буквы |
I |
– В данную позицию разрешен только ввод буквы, но ее можно оставить пустой |
А |
– В данную позицию разрешен только ввод буквы или цифры |
а |
– В данную позицию разрешен только ввод буквы или цифры, но ее можно оставить пустой |
С |
– В данную позицию разрешен ввод произвольного символа |
с |
– В данную позицию разрешен ввод произвольного символа, но ее можно и оставить пустой |
О |
– В" данную позицию разрешен только ввод цифры |
9 |
– В данную позицию разрешен только ввод цифры, но ее можно оставить пустой |
# |
– В данную позицию разрешен только ввод цифры или символов. Позицию можно оставить пустой |
: |
В данную позицию вставляется символ, который в текущей версии Windows используется для разделения часов, минут и секунд при записи времени |
_ |
В данную позицию автоматически вставляется пробел |
Вторая часть маски определяет, будут ли эти дополнительные символы включены в итоговый текст. Символ 0 указывает, что они не должны включаться в результат, любой другой символ разрешает их включение. Третья часть маски – символ, наполняющий позиции шаблона, которые пользователь оставил пустыми (по умолчанию используется пробел).
Bevel – компонент Рамка
И
спользуется
для создания рамок и отдельных линий
оформления. Напоминает панель, но не
предназначен для группировки элементов.
Style – стиль отображения Bevel
Shape – контур компонента
StringGrid – таблица строк
C
ells[ACol,
ARow:
Integer]:
string
– Строка,
содержащаяся в ячейке с индексами
столбца и строки ACol
и ARow
ColCount и RowCount –число столбцов и строк, соответственно.
FixedCols и FixedRows — число фиксированных, не прокручиваемых столбцов и строк.
FixedColor – цвет фона фиксированных ячеек определяется свойством.
ScrollBars – определяет наличие в таблице полос прокрутки.
Options является множеством, определяющим многие свойства таблицы: наличие разделительных вертикальных и горизонтальных линий в фиксированных (goFixedVertLine и goFixedHorzLine) и не фиксированных (goVertLine и goHorzLine) ячейках, возможность для пользователя изменять с помощью мыши размеры столбцов и строк (goColSizing и goRowSizing), перемещать столбцы и строки (goColMoving и goRowMoving) и многое другое. Важным элементом в свойстве Options является goEditing — возможность редактировать содержимое таблицы.
OnSelectCell – событие, возникающее в момент выбора пользователем ячейки. В обработчик этого события передаются целые параметры ACol и ARow — столбец и строка выделенной ячейки, и булев параметр CanSelect — допустимость выбора. Параметр CanSelect можно использовать для запрета выделения ячейки, задав его значение false. А параметры ACol и ARow могут использоваться для какой-то реакции программы на выделение пользователя.
