Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа_3_1_Лс_27_11_2011.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
4.63 Mб
Скачать

ИмяФормы. ИмяПеременной

Если переменная объявлена как Public в разделе объявлений программного модуля, то доступ к ней возможен через ее имя.

Модули кода. Форма и весь связанный с ней код хранятся в отдельном файле с расширением frm. По мере того, как будут углубляться ваши познания в области Visual Basic, у вас может появиться потребность в усложнении структуры проектов: например, сделать в проекте не одну форму, а две или больше. В результате проект будет содержать соответственно два или больше файлов с расширением frm. Кроме того, можно разрабатывать программы, содержащие только код. Он размещается в файлах модулей кода с расширением .bas. Модули кода создаются в тот момент, когда вы выбираете в меню Project команду Add Module или нажимаете одноименную кнопку на панели инструментов.

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

Глобальные объявления в любом модуле кода распространяются на всю программу.

ЗАВДАННЯ 3.1. Постановка задачи СОЗДАТЬ ПРОЕКТ, В КОТОРОМ ПО РАЗМЕРАМ ФАЙЛОВ, ВВЕДЕННЫМ В КИЛОБАЙТАХ, ВЫЧИСЛЯЕТСЯ СУММАРНЫЙ РАЗМЕР ФАЙЛОВ В МЕГАБАЙТАХ И БАЙТАХ. Проект должен состоять из двух форм и модуля кода:

Форма1 — входная: в ней пользователь вводит имена файлов и их размер в килобайтах. Всего файлов может быть пять. Если их меньше, то соответствующие строки формы просто не заполняются;

Форма2 — выходная: в ней выводятся данные о суммарном размере файлов, выраженные в разных единицах измерения (килобайтах, мегабайтах, байтах);

Модуль кода служит для перевода суммарного размера файлов в мегабайты и байты.

Порядок действий

  1. Расположите на форме семь меток, восемь текстовых полей и одну командную кнопку (рис. 3.1).

Рис. 3.1

  1. Установите значения свойства Name:

  • формы — frmFirst,

  • кнопки — cmdCalc,

  • текстовых полей для ввода имен файлов — txtFl, txtF2,..., txtF4,

  • текстовых полей для ввода размеров файлов — txtSize1, txtSize2,..., txtSize4.

3. Установите значения свойства Caption всех объектов в соответствии с рис. 3.1.

4. По собственному усмотрению установите значения свойств, определяющих внешний вид объектов.

5. Добавьте в проект вторую форму (воспользовавшись командами меню Project, Add Form или кнопкой на панели инструментов).

6. Расположите на форме восемь меток и одну командную кнопку (рис. 3.2).

Рис. 3.2

7.Установите значения свойства Name:

  • формы — frmSecond;

  • кнопки — cmdExit;

  • метки для вывода имен файлов — LbLFile;

  • метки для вывода суммарного размера файлов в Кбайтах — LbLКЬ;

  • метки для вывода суммарного размера файлов в Мбайтах — LbLМЬ;

  • метки для вывода суммарного размера файлов в байтах – LbLВ.

8. Установите значения свойства Caption формы, кнопки и меток, в которых информация не изменяется, в соответствии с рис. 3.2.

9. Установите по собственному усмотрению значения свойств, определяющих внешний вид объектов.

10. Добавьте в проект отдельный модуль (команды меню Project, Add Module или кнопка в раскрывающемся окне кнопки Add Form на панели инструментов).

11. Измените имя модуля на ВМb. После того, как вы добавили в проект вторую форму и модуль, Окно проводника проекта будет иметь вид, представленный на рис. 3.3.

Рис. 3.3

12. Оставьте имя модуля, предложенное по умолчанию: BMb.bas.

13. Напишите программные коды Формы1 и Формы2, а также код модуля. Сначала сформулируйте, что должно происходить в файле Формы1:

  • пользователь вводит имена файлов и их размер в килобайтах, щелкает по командной кнопке < Вычисление суммарного размера файлов>, в результате чего происходит расчет суммарного размера файлов в килобайтах;

  • далее вызывается модуль, осуществляющий перевод суммарного размера файлов в байты и мегабайты;

  • затем с экрана первая форма удаляется, и появляется вторая форма, при этом имена файлов и значения суммарных размеров файлов в разных единицах измерения передаются во вторую форму.

Далее сформулируйте, что должно происходить в файле Формы2:

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

  • при щелчке мышью по кнопке < Выход> программа завершает работу.

Для выполнения этих процедур потребуются переменные, причем разной области видимости. Ниже приведены программные коды и пояснения к ним.

Программный код

Пояснения

Форма1

Public SKb As Single

SKb — суммарный объем файлов в килобайтах.

Эта переменная будет использоваться в модуле для перевода в байты и мегабайты, а также в коде Формы2. Она объявлена как глобальная (видимая в обеих формах и модуле)

Public if1, if2, if3, if4 As String

if1, if2, if3, if4 — имена файлов. Эти

переменные будут использоваться в

коде формы 2; они объявлены как глобальные.

Dim sf1, sf2, sf3, sf4 As Single

sfl, sf2, sf3, sf4 — размеры файлов в килобайтах. Эти переменные будут использоваться только в процедуре Формы1. Они объявлены как локальные в разделе общих объявлений

Private Sub cmdCalc Click()

sfl =...

sf2 =...

sf3 =...

sf4 =...

ifl =...

if2 =...

if3 =...

if4 =...

SKb =...

BMb

Вызов модуля BMb

FrmFirst.Hide

Форма1 удаляется с экрана

FrmSecond.Show

Форма2 отображается на экране

End Sub

Форма2

Private Sub Form_Load()

Процедура выполняется при загрузке Формы 2

LbLFile.Caption = frmFirst.ifl + ","

+ frmFirst.if2 + "," + frmFirst. if3 +

"," + frmFirst.if4 + " составляет: "

В метку LbLFile помещаются имена файлов (свойство Caption), которые берутся из Формы1

LbLKb.Caption = frmFirst.SKb

В метку LbLKb помещается суммарный размер файлов, который берется из Формы1

LbLMb.Caption = Str(SMb)

В метку LbLMb помещаются суммарный размер файлов в мегабайтах, который был вычислен в модуле

LbLB.Caption = Str(Sb)

В метку LbLB помещаются суммарный размер файлов в байтах, который был вычислен в модуле

End Sub

Private Sub cmdExit_CIick()

...

End Sub

Модуль кода

Public SMb, Sb As Single

Подумайте, почему переменные SMb и Sb объявлены как глобальные

Public Sub BMb()

Const Conv As Integer = 1024

Подумайте, почему значение константы равно 1024.

Значение переменной SKb для перевода берется из Формы1

SMb = frmFirst.SKb / Conv

Sb = frmFirst.SKb * Conv

End Sub

Пояснение. Метод Show используется для отображения формы на экране, Метод Hide — для удаления формы с экрана.

14. Наберите программный код. Самостоятельно заполните пропуски (...).

Первая строка процедуры Form_Load() достаточно длинная, поэтому она не уместится на экране, однако ее можно просмотреть в окне кода с помощью полосы прокрутки, но это не всегда удобно.

Рекомендация Используйте комбинацию пробела и подчеркивания для переноса оператора на следующую строку. Текст, набранный в кавычках, переносить нельзя.

Строка

LbLFile.Caption = frmFirst.if1 + "," + frmFirst. if2 +"," + frmFirst. if3 + ", " + frmFirst.if4 + " составляет:"

может быть набрана следующим образом:

LbLFile.Caption = frmFirst.if1 + "," + frmFirst. if2 + _

"," + frmFirst. if3 + "," + frmFirst.if4 + " составляет:"

15. Замените в программном коде Формы 1 ключевое слово Dim на Private. Убедитесь, что программа по-прежнему будет работать правильно. Dim и Private в разделе глобальных объявлений равнозначны.

16. Попробуйте перенести строку

Private sfl, sf2, sf3, sf4 As Single

из раздела глобальных объявлений внутрь процедуры cmdCalc_Click()

Убедитесь, что программа перестает работать правильно, так как ключевое слово Private не может использоваться для объявления переменных внутри процедуры.

17. Замените ключевое слово Private на Dim и программа начнет работать верно. В данном случае ключевое слово Dim можно использовать как в разделе глобальных объявлений, так и внутри процедуры Формы 1, так как программный код состоит из одной процедуры. Если бы он состоял из нескольких процедур и переменные sfl, sf2, sf3, sf4 использовались в них, то они должны были бы быть объявлены в разделе глобальных объявлений.

18. Попробуйте в программном коде первой формы или модуле заменить ключевое слово Public, объявляющее переменную как глобальную, на Dim. Убедитесь, что программа перестает работать правильно. Верните прежнее описание переменных.

19. Сохраните проект и 2 формы на своем рабочем диске в папке ЛАБ3 с именами Лр3_Зад1_P_Фамилия, Лр3_Зад1_F1_Фамилия и Лр3_Зад1_F2_Фамилия соответственно.