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

Рис. 3.1
2. Установите значения свойства Name:
ü формы — frmFirst,
ü кнопки — cmdCalc,
ü текстовых полей для ввода имен файлов — txtFl, txtF2,..., txtF4,
ü текстовых полей для ввода размеров файлов — txtSize1, txtSize2,..., t xtSize4.
3. Установите значения свойства Caption всех объектов в соответствии с рис. 3.1.
4. По собственному усмотрению установите значения свойств, определяющих внешний вид объектов.
5. Добавьте в проект вторую форму (воспользовавшись командами меню Project, Add Form или кнопкой
на панели инструментов).
6. Расположите на форме восемь меток и одну командную кнопку (рис. 3.2).

Рис. 3.2
7.Установите значения свойства Name:
ü формы — f rmSecond;
ü кнопки — 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. Попробуйте перенести строку






