Выбор стандартного масштаба




Единицы измерения можно задать в терминах стандартного масштаба, установив значение свойства ScaleMode равным одной из установок из таблицы 1.

Таблица 1.

Значения свойства ScaleMode

Значение Описание свойства
  Определяемый пользователем. Если явно заданы свойства ScaleLeft, ScaleTop, ScaleWidth или ScaleHeight, то свойство ScaleMode автоматически устанавливается равным 0.
  Твипы. Это масштаб по умолчанию 1 дюйм – 1440 твипов.
  Пункты. 1 пункт – 72 твипа.
  Пиксель. Пиксель – это наименьшая единица разрешения монитора или принтера. Число пикселей на дюйм зависит от разрешения устройства.
  Символы. При печати символ равен 1/6 дюйма в высоту и 1/12 дюйма в ширину.
  Дюймы.
  Миллиметры
  Сантиметры

 

Все перечисленные установки, за исключением 0 и 3, задают размеры при печати.

Установка значений свойства ScaleMode приводит к тому, что VisualBasic переопределяет установку значений свойства ScaleWidth и ScaleHeight в соответствии с новым масштабом. Затем значения свойств ScaleLeft и ScaleTop устанавливаются равными 0. Непосредственная установка свойств ScaleLeft, ScaleTop, ScaleWidth или ScaleHeight автоматически устанавливает свойство ScaleMode равным 0.

 

Свойства ScaleLeft, ScaleTop

Свойства ScaleLeft, ScaleTop определяют координаты левого верхнего угла объекта. Следующие операторы устанавливают значения координат верхнего угла текущей формы и графического окна (рис.13).

 

ScaleLeft = 100

ScaleTop = 100

Picture1.ScaleLeft =100

Picture1.ScaleTop = 100

 

Свойства ScaleWidth и ScaleHight

Свойства ScaleWidth и ScaleHight определяют единицы измерения на основе текущей ширины и высоты области рисования, то есть они определяют единицы измерения в единицах внутренних размеров объекта. Например:

 

ScaleWidth = 1000

ScaleHight = 500

 

Эти операторы определяют горизонтальную единицу измерения, как 1/1000 текущей внутренней ширины формы, и вертикальную единицу измерения, как 1/500 текущей внутренней высоты формы. Если размеры формы будут изменены, относительные единицы измерения останутся прежними.

 

Упражнение 1. Анализ свойств масштабирования

1. Создайте проект с именем «Графика».

2. В окне свойств формы Form 1 задайте свойству Caption значение «Изучение свойств ScaleWidth и ScaleHeight ». Свойству Name присвойте имя FrmsX.

3. Изменяя свойство (0-7) ScaleMode, запишите значения свойств ScaleWidth и ScaleHeight в таблицу:

 

SM                
SW                
SH                
SL                
ST                

 

5. Установите в таблице свойств значение ScaleTop и ScaleLeft. Обратите внимание, как изменится значение свойства ScaleMode.

6. Сохраните проект в своей папке проектов.

 

Метод Scale

Метод Scale является более эффективным способом изменения системы координат по сравнению с установкой отдельных свойств. Собственный масштаб можно задать следующим образом:

 

[object.] Scale(x1, y1) – (x2, y2)

 

Значения x 1 и y 1 определяют установки для свойств ScaleLeft и ScaleTop. Различие между двумя х -координатами и двумя y -координатами определяют установки свойств ScaleWidth и ScaleHight соответственно. Предположим, что система координат для формы задана точками (100, 100) и (200, 200):

 

Scale (100, 100) – (200, 200)

 

Этот оператор определяет форму шириной 100 единиц и высотой 100.

 

Упражнение 2.

1. Откройте проект «Графика».

2. В окне свойств формы присвойте свойству Autoredraw значение True.

Щелкните левой кнопкой дважды по форме и в открывшемся программном окне наберите следующий код:

 

Private Sub Form_Load()

ScaleLeft = 0

ScaleTop = 0

ScaleWidth = 200

ScaleHeight = 200

Line (100, 0)-(100, 200)

Line (0, 100)-(200, 100)

End Sub

3. Запустите проект на исполнение. На экране будут изображены две пересекающиеся линии, размеры и положение соответствуют которых заданной системе координат.

4. Перейдите в режим конструирования. Откройте программное окно формы. Измените код процедуры загрузки формы, добавив строку

 

Scale (0, 0)-(200, 200)

 

5. Строки, начиная с «ScaleLeft…» до «ScaleHeight…» удалите. Код приложения будет иметь вид:

 

Private Sub Form_Load()

Scale (0, 0)-(200, 200)

Line (100, 0)-(100, 200)

Line (0, 100)-(200, 100)

End Sub

 

6. Запустите приложение на исполнение. На экране форма будет иметь такой же вид, как и ранее. Таким образом, оба метода задания координат эквивалентны.

7. Сохраните приложение в своей папке проектов.

В VB предусмотрены два подхода к рисованию фигур и один метод отображения текста:

· Line -рисование линий и прямоугольников,

· Circle -рисование окружностей и эллипсов,

· Print -отображение текстовых строк.

Графическое изображение может быть включено в состав приложения как в режиме конструирования[2], то есть, в процессе формирования интерфейса, или во время разработки формы, так и динамически во время выполнения приложения. Visual Basic предлагает простой набор объектов управления для работы с графикой. Обычно ввод в приложение изображения осуществляется с помощью одного из следующих элементов управления:

1. формы;

2. элемента PictureBox – «картинка»;

3. элемента ImageBox – «образ».

Основное различие между этими элементами состоит в том, что элемент ImageBox спроектирован для отображения уже готовых рисунков, а не для создания или управления ими. В остальных – изображение формируется графическими методами рисования во время работы приложения.

Объекты «образ» и «картинка» очень похожи по свойствам, но между ними существует несколько важных различий:

· объект типа «образ» не может автоматически изменять свой размер в соответствии с размерами вставляемого рисунка, но автоматически приводит свои размеры в соответствии с размерами образа (свойство AutousizeFalse);

· размер объекта типа «образ» может быть изменен растяжением (свойство Stretch (растянуть));

· при отображении рисунка, предпочтение необходимо отдавать объекту типа «образ», поскольку в этом случае используется значительно меньше системных ресурсов;

· объект типа «образ» может содержать только рисунки и не может содержать другие объекты или графические образы типа графиков, получаемых во время выполнения программы.

Объект управления типа «образ», или ImageBox, как правило, включает в состав приложения уже существующие графические образы в режиме выполнения или копирует картинки из одного графического поля в другое. Файл, содержащий графический образ, должен иметь расширение одного из следующих типов (*. bmp, *. ico, *. wmf, *.gif, *.jpg).

Имя файла, содержащего рисунок, указывается в окне свойств в качестве значения свойства Picture (картинка). Выбрав данное свойство и дважды щелкнув по нему мышью, можно посмотреть содержимое каталогов на дисках и выбрать нужный файл. Чтобы использовать в приложении объект типа «картинка», требуется выполнение такой же последовательности шагов, что и для объекта типа «образ», но с одним лишь исключением – на панели инструментов необходимо выбирать значок с именем PictureBox.

Для загрузки изображения в элемент во время выполнения приложения используется метод LoadPicture ():

 

Form1.Picture = LoadPicture (Filename)

 

Здесь Filename – имя графического файла с расширением: *. bmp, *. gif, jpg или т.д. Если использовать метод LoadPicture без аргументов, то текущее изображение будет выгружено из элемента. Таким образом, чтобы удалить графическое изображение из элемента PictureBox следует использовать команду

 

Picture1.Picture = LoadPicture().

 

Этот метод подобен методу Cls, удаляющему содержимое формы или элемента. Сохранение изображения во время работы приложения осуществляют с помощью оператора SavePicture. Синтаксис этого оператора

 

SavePicture.Picture, filename

 

Аргумент Picture – это свойство элементов PictureBox или ImageBox, содержимое которых сохраняется. Например:

 

SavePicture Picture1.Picture, “c:\tmpImage.bmp”

 

Содержимое элемента Picture 1 сохраняется в файле tmpImage.bmp на диске C:.

Упражнение 3. Изучение свойств Picture и Image.

Независимо от способа создания рисунка, рано или поздно понадобится перенести его в какое-либо приложение. Это можно сделать, используя свойства Picture и Image, следующим образом:

1. Запустите проект «Графика».

2. Добавьте в проект форму.

3. Установите следующие свойства формы:

Name=FrmPi

AutoRedraw = True

BorderStyle = 2

Caption = Свойства Picture и Image

ScaleMode =1

Height = 6700

Width = 8600

4. Установите на форме три элемента PictureBox, две командные кнопки и две текстовые метки и расположите их, как на рис.14.


Рис. 14 Иллюстрация к Упражнению 3.

 

5. Свойства элементов установить согласно данных таблицы 2.

Таблица 2.

Св-ва\ Имя Picture1 Picture2 Picture3 Command 1 Command 2 Label1 Label2
AutoRedraw True False False        
AutoSize False False False        
BorderStyle              
Caption       Загрузка картинки и рисование Копиро-вание рисунка Picture2.picture= Picture1.picture Picture3.picture= Picture1.Image
ForeColor White White White        
Height              
Left              
ScaleMode              
Top              
Width              

 

6. Дважды щелкните левой кнопкой мыши по командной кнопке Command 1 и в программном окне наберите код:

 

Private Sub Command1_Click()

Picture1.Picture = LoadPicture("d:\images\planets.bmp")

Picture1.DrawWidth = 1

Picture1.Line (100, 100)-(3200, 500),, B

Picture1.DrawWidth = 1

Picture1.Circle (1000, 1500), 750

Picture1.Circle (1000, 1500), 800

Picture1.CurrentX = 200

Picture1.CurrentY = 200

Picture1.Print "Picture and Image Properties"

End Sub

 

В первой строке программного кода выполняется операция загрузки файла картинки[3]. Последующие операторы формируют на рисунке дополнительные окружности и прямоугольник.

7. В программную процедуру командной кнопки Command2 запишите следующий код:

 

Private Sub Command2_Click()

Picture2.Picture = Picture1.Picture

Picture3.Picture = Picture1.Image

End Sub

 

8. Установите форму FrmPi загрузочной (Проек т → Проект1Свойства) и запустите приложение на исполнение.

9. Щелкните левой кнопкой по командной кнопке Command 1. Рисунок будет загружен. К рисунку будут добавлены дополнительные графические элементы и текст.

Свойство Image, родственное свойству Picture, указывает область памяти, в которой хранятся биты изображения. В отличие свойства Picture свойство Image доступно только для чтения. Используя свойство Picture, можно копировать только изображение, загруженное с помощью метода LoadPicture. Свойство Image позволяет копировать все изображения, в том числе фигуры, нарисованные в то время, когда значение свойства AutoRedraw установлено равным True. Остальные фигуры, нарисованные при значении свойства AutoRedraw равно False, невозможно скопировать никаким методом. Кроме того, свойство Image можно использовать для копирования изображения из элемента в буфер обмена.

Результат работы приложения приведен на рис. 15.

10. Сохраните проект.

 




Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-07-22 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: