Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ШПОРЫ ПО ПРОГРАММ.docx
Скачиваний:
3
Добавлен:
16.04.2019
Размер:
107.4 Кб
Скачать

Ввод и вывод записей в файл

Записи можно хранить в файле. Для того чтобы программа могла сохранить значение переменной-записи в файле или ввести его из файла, необходимо объявить файл, указав в качестве типа его компонентов тип "запись". Например, инструкции

type

ТРеrson = record

f_riame: string [20] ;

l_name: string[20];

address: string[50]; end; var

f: file of TPerson;

объявляют файл, компонентами которого являются записи типа TPerson.

Процесс работы с файлом записей практически ничем не отличается от процесса работы с обычным файлом. Сначала надо объявить файловую переменную и с помощью процедуры Assign связать эту переменную с конкретным файлом. Затем нужно открыть файл (для чтения, записи или обновления). После этого можно прочитать запись из файла или записать запись в файл.

22

 Компонент Delphi MainMenu предназначен для добавления к программе главного меню, элемента, без которого не обходится ни одно из приложений для Windows. Чтобы добавить к программе Delphi главное меню, нужно расместить на Форме в произвольном месте компонент MainMenu. Компонент MainMemu невизуальный, то есть, хотя и отображается на прототипе Формы как небольшой квадрат, в работающей программе не будет виден. Опции главного меню создаются с помощью специального редактора. Редактор меню вызывается с помощью двойного щелчка по компоненту MainMenu. Первоначально меню пустое, но имеет один выделенный элемент: Для создания первой опции (как правило, опция главного меню программы File) нужно перейти в Инспектор объектов и свойствуCaption присвоить нужное название. В Windows опции меню, как правило, имеют возможность выбора при помощи сочетания клавиш ALT+<Key>, где Key - первая буква в названии данной опции должна иметь подчеркивание. Для создания такого подчеркивания перед этой буквой ставится символ &. После нажатия Enter созданный пункт меню появляется на Форме: Обратите внимание на то, что автоматически Delphi создаёт следующий пустой пункт меню верхнего уровня. А щёлкнув в редакторе меню по синему прямоугольничку File, мы сразу получим пустой пункт меню второго уровня. Они не выделены, и отображаются белыми прямоугольниками. Щелкнув по одному из них, мы получим возможность редактировать его совершенно аналогично. Пока их свойства не заданы, в работающей программе на Форме они не появятся, и удалять в редакторе их не нужно.    Далее, в редакторе меню щёлкнув по пункту меню правой клавишей мыши, мы получим контекстное меню, в котором есть пункты Insert (вставить) и Delete (удалить). Пункт Insert добавляет новый пункт меню над выделенным, а Delete - удаляет выбранный пункт.    То, что мы пользуемся Инспектором объектов, говорит о том, что опция меню для Delphi - это объект, со своими свойствами и методами. И без их настройки будет пассивной структурой надписей. Для того чтобы меню выполняло свои функции, как минимум нужно описать обработчик события OnClick каждого пункта меню. Делается это совершенно стандартным способом. Опишем пункт меню, который будет закрывать программу.    Выделим нижний элемент меню, в Инспекторе объектов изменим свойство Caption на Exit (ну или по-русски тоже можно - Выход). Затем перейдём на вкладку Инспектора объектов Events и щелкнем дважды мышкой по обработчику OnClick. В созданной процедуре напишем просто - Close; Всё, скомпилируем программу (нажмите F9). В работающей программе наше меню функционирует - при нажатии мышкой Exit программа закрывается. И при нажатии на клавиатуре ALT появляется подчеркивание первой буквы пунктов меню верхнего уровня - File, и далее можно выбрать нужный пункт, работая кнопками управления курсором.    Во всплывающем меню выделенного элемента есть также пункт Create SubMenu, нажав на который мы создадим подменю выбранного элемента, а к его названию прибавится изображение треугольника - стрелки, указывающей на его наличие. Работа с подменю осуществляется также совершенно аналогично.    Кстати, описывать обработчик OnClick пунктов меню верхнего уровня не обязятельно, раскрывание меню при щелчку мышкой происходит автоматически. Но в случае необходимости произвести какие-либо действия при раскрытии меню этот обработчик позволит это сделать.    Наш компонент MainMenu обладает также возможностью сопровождать названия опций меню пиктограммами. Для этого нужно из редактора меню перейти к самому компоненту, и в Инспекторе объектов его свойству Image присвоить значение одного из компонентов ImageList, который необходимо предварительно поместить на Форму, и наполнить нужными пиктограммами (компонентImageList описывается на странице Win32). Далее, выбрав нужный пункт меню в редакторе меню, его свойству ImageIndex нужно присвоить номер пиктограммы, который она имеет в компоненте ImageList. Для удобства выбора свойство ImageIndex имеет раскрывающийся список, содержащий пиктограммы, находящиеся в компоненте ImageList. Значение -1 означает отсутствие пиктограммы.    Есть более простой альтернативный способ задать пиктограмму для пункта меню - через свойство BitMap этого пункта. Щёлкните по кнопочке, появляющейся при переходе в эту строку Инспектора объектов. Появится окно выбора файла, где можно выбрать и загрузить нужную пиктограмму.    Стандартный набор пиктограмм поставляется в дистрибутиве Delphi и находится в папке Buttons по адресу C:\Program Files\Common Files\Borland Shared\Images. Правда, пиктограммы представлены в сдвоенном формате - для активного и неактивного состояния кнопки или пункта меню. Удобство применения компонента ImageList состоит в том, что он умеет разделять стандартные пиктограммы на две. Ненужную затем можно удалить, а оставшуюся сохранить для использования в других программах. Обычно это цветная пиктограмма для активного состояния, так как неактивная кнопка или меню умеют отображать свои пиктограммы в оттенках серого.

23

Диалоговое окно ввода информации (InputBox)

Достаточно часто в диалоговом окне необходимо не только нажать кнопки выбора действия, но и ввести определенную информацию, которая затем анализируется программой. Для выполнения такого рода действий в Visual Basic можно использовать диалоговое окно ввода информации InputBox (рис. 7.20). Функция InputBox имеет следующий синтаксис:

InputBox (prompt [, title] [, default] [, xpos] [, ypos] [, helpfile, context])

где:

  • prompt — текст сообщения в диалоговом окне. Максимальная длина текста 1024 символа. В этот текст можно вставить в качестве разделителей строк перевод каретки Chr(13), перевод строки Chr(lO) или их комбинацию;

  • title — текст заголовка диалогового окна;

  • default — значение текстового поля ввода по умолчанию. Если параметр отсутствует, строка остается пустой;

  • xpos — позиция по горизонтали левого верхнего угла диалогового окна относительно левого верхнего угла экрана. По умолчанию присваивается значение, соответствующее середине экрана;

  • ypos — позиция по вертикали левого верхнего угла диалогового окна относительно левого верхнего угла экрана. По умолчанию присваивается значение, соответствующее середине экрана;

  • helpfile — ссылка на файл справочной системы;

  • context — ссылка на содержание в файле справочной системы.

Для примера введите в командном окне среды проектирования Immediate следующую команду:

strUserTest = InputBox ("Введите пароль", "Запуск приложения", "****")

В отличие от диалогового окна MsgBox, в окне InputBox всегда имеются только две кнопки управления: ОК и Cancel. Кнопка ОК подтверждает ввод данных, кнопка Cancel — закрывает диалоговое окно без ввода данных.

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

24

Функция MessageDlg используется для отображения сообщений пользователю. Эти сообщения могут быть информационными, предупреждающими или что бы то ни было. Даётся полный свободный выбор кнопок, которые пользователь может нажать, чтобы подтвердить диалог.  Например, пользователю можно показать сообщение об ошибках, и дан выбор прерывания, повтора или отмены ошибочного процесса.

25

procedure TForm1.BitBtn1Click(Sender: TObject);

var

  Im: TImage;

begin

  Im := TImage.Create(PageControl1);

  with Im do

  begin

    Parent := PageControl1;

    Picture.LoadFromFile('1.bmp');// тут свой файл

    Align := alClient;

    Stretch := True

  end

end;

26

Свойство Canvas

Поверхности, на которую программа может выводить графику, соответствует свойство Canvas. Например, свойство Canvas имеют компоненты Form и PaintBox. В свою очередь, свойство canvas – это объект типа TCanvas. Методы этого типа обеспечивают вывод графических примитивов (точек, линий, окружностей, прямоугольников и т. д.), а свойства позволяют задать характеристики выводимых графических примитивов: цвет, толщину и стиль линий; цвет и вид заполнения областей; характеристики шрифта при выводе текстовой информации.

Методы вывода графических примитивов рассматривают свойство Canvas как некоторый абстрактный холст, на котором они могут рисовать (canvas переводится как "поверхность", "холст для рисования"). Канва состоит из отдельных точек – пикселей. Положение пикселя характеризуется его горизонтальной (X) и вертикальной (Y) координатами. Левый верхний пиксель имеет координаты (0, 0). Координаты возрастают сверху вниз и слева направо. Значения координат правой нижней точки холста зависят от размера холста.

 

Размер канвы можно получить, обратившись к свойствам Height и Width области иллюстрации (image) или к свойствам формы: ClientHeight и Clientwidth.

Для рисования на Canvas геометрических фигур используются методы, приведённые в следующей таблице:

 

Наименование

Рисование

Arc

Дуги

Chard

Хорды эллипса

Ellipse

Эллипса

FillRect

Заполненного прямоугольника

FrameRect

Незаполненного прямоугольника

MoveTo

Перемещение пера без прорисовки линии

LineTo

Линии

Poligon

Заполненного многоугольника

PolyLine

Незаполненного многоугольника

Rectangle

Заполненного прямоугольника

RoundRect

Заполненного прямоугольника со скруглёнными краями

 

 

Вид выводимых на канву графических элементов определяется свойствами канвы Pen (карандаш) и Brush (кисть). Свойство Pen отвечает за внешний вид вычерчиваемых линий и контуров, свойство Brush – за заливку областей, ограниченных контурами.

На канву можно также загрузить изображение из файла либо вывести на неё текст.

Канва имеет свойство Pixels. Это свойство представляет собой двумерный массив, который отвечает за цвета канвы. Например, Canvas.Pixels[10,20] соответствует цвету пикселя, 10-го слева и 20-го сверху. С массивом пикселей можно обращаться как с любым свойством: изменять цвет, задавая пикселю новое значение, или определять его цвет по хранящемуся в нем значению. Например, Canvas.Pixels[10,20] := 0 или Canvas.Pixels[10,20] := clBlack – это задание пикселю черного цвета.

Свойство Pixels можно использовать для рисования на канве.

27