ЛАБОРАТОРНАЯ РАБОТА №3
	"Метки и текстовые окна"

	Цели: 1) Изучить свойства и методы использования в прилож-
	         ениях Windows меток.
	      2) Изучить свойства и методы использования в прилож-
	         ениях Windows текстовых окон.


	Поговорим о метках и текстовых окнах. Метка - это, наверн-
	ое, самый простой элемент, который есть в Windows. Ее осн-
	овная задача - хранить текст, который программист или пол-
	ьзователь поместит в нее. Помните,  на  лекции  приводился 
	пример, в котором было реализовано сложение двух чисел?

	
Cтроки "Введите первое число", "Введите второе число" - метки. Как правило, метки носят вспомогательно-декоративн- ый характер, в них хранится текст, который комментирует для пользователя его возможные действия.
Свойства Label (метки). ~~~~~~~~~~~~~~~~~~~~~~~ 1. Name - имя метки. 2. Aligment - расположение текста метки внутри выделенного ей пространства (0 - текст слева, 1 - текст справа, 2 - текст расположен по центру). На рисунке выше метка име- ет aligment=0, т.о. текст "прижат" к левому краю выдел- енного на нее участка формы. 3. AutoSize - расширение/не расширение места, отводимого под метку в случае, если текст не помещается в границы, отведенные под него. Свойство логическое, т.е. принима- ет булевые значения True (истина) или False (ложь). Оно имеет смысл и место в том случае, если программист не знает заранее длину строки, которая "придет" в метку. 4. BorderStyle - вид метки (0 - нормальная, 1 - вдавленная в форму). 5. ForeColor - цвет фона. 6. Caption - содержимое метки. Продолжаем разговор. Поговорим о текстовых окнах. Это наи- более частоиспользуемый элемент управления Windows, так как любому приложению необходимо (как правило) принимать от пользователя какие-то данные. Текстовые окна предназначены (как правило) для того, чтобы пользователь вводил в них данные: числа, строки и пр. Вну- три текстового окна пользователь может работать с буфером, т.е. копировать, вырезать и вставлять часть текста. Помни- те, на лекции приводился пример, в котором было реализова- но сложение двух чисел?
Окна, в которых видны числа "7" и "3", - текстовые. У эле- мента текстовое окно (TextBox) есть хорошее свойство multiline (многолинейность), которое позволяет использова- ть его в виде простейшего текстового редактора.
Свойства TextBox (текстовое окно). ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Name - имя текстового окна. 2. Locked - возможность редактирования окна (логическое свойство). Значит так, давайте договоримся: если я гов- орю о том, что свойство является логическим, то это оз- начает следующее - свойство принимает два булевых знач- ения True (истина) и False (ложь). Ниже я такой расшиф- ровки писать не буду... 3. MaxLength - максимальное число символов, которое мож- но ввести в окно. 4. PasswordChar - символ пароля. Символ, который виден в текстовом окне в процессе ввода пользователем пароля. 5. ScrollBars - определяет наличие полос прокрутки (0 - нет, 1 - горизонтальная, 2 - вертикальная, 3 - обе). 6. Text - текст текстового окна. Пример. ~~~~~~~ Создадим приложение, которое реализует полное решение ква- дратного уравнения. Вспомним условие. Дано уравнение вида: axx+bx+c=0, найти корни уравнения.
Видно, что на форме находятся следующие элементы управлен- ия: 1) метки ("a=", "b=", "c=", "x1=", "x2=" и "Введите три числа, соответствующие коэффициентам квадратного уравн- ения a*x*x+b*x+c=0 и кликните на кнопке "Рассчиать"); 2) текстовые окна txtA, txtB, txtC, txtX1 и txtX2; 3) командная кнопка "Рассчитать". Заметим, что алгоритм полного решения квадратного уравнен- ия - нетривиальная задача и мы сейчас не будем рассматрив- ать его. (Это тема практического занятия.) Отметим эффект- ное использование переменных X1, X2 типа variant: так как они могут принимать любые значения (числа, строки), то мы можем заносить в них как результаты вычислений (числа), так и результат сравнения (нет решений, любое число, беск- онечное число корней). Option Explicit Dim a As Double Dim b As Double Dim c As Double Dim d As Double Dim x1 As Variant Dim x2 As Variant Private Sub Command1_Click() a = Val(txtA) b = Val(txtB) c = Val(txtC) If a = 0 Then If b <> 0 Then x1 = -c / b x2 = x1 Else If c = 0 Then x1 = "любое число" x2 = x1 Else x1 = "нет решения" x2 = x1 End If End If Else d = b * b - 4 * a * c If d > 0 Then d = Sqr(d) x1 = (-b + d) / 2 * a x2 = (-b - d) / 2 * a Else If d = 0 Then x1 = -b / 2 / a x2 = x1 Else x1 = "нет вещественных корней" x2 = x1 End If End If End If txtX1 = x1 txtX2 = x2 End Sub Задания к лабораторной работе №3 1. Прочитать, законспектировать работу. 2. Проверить пример. 3. Получить и выполнить индивидуальное задание.