Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование для начинающих. (Visual Basic-6.0) Методы формы


Информационный Канал Subscribe.Ru

ФОРУМ

Вы спрашивали

ГЛАВНАЯ

АРХИВ

АВТОР

Здравствуй уважаемый подписчик!

Основные конструкции VB-6.0
Методы обращения к формам

Для принятия решения в ходе выполнения программы, выполнения однотипных операций, в языке VB-6.0 существует несколько основных конструкций (впрочем, как и в любом другом языке программирования) Перечислим основные:
  • Ветвление (конструкция принятия решения)
  • Множественное ветвление
  • Цикл с параметром (выполнение однотипных операций)
  • Цикл с предусловием
  • Цикл с послеусловием
  • Безусловный переход
ВЕТВЛЕНИЕ
В повседневной жизни нам приходится в течение активного времени суток, принимать множество решений, например таких простых, как переход дороги на зеленый сигнал светофора. Родители Вас с детства приучали переходить дорогу (без светофора) примерно так: (считается, что мы уже подошли к краю тротуара и стоим непосредственно перед дорогой)
  1. посмотри на лево
  2. если машин нет, тогда дойти до середины дороги, если они есть тогда пропустить движущейся транспорт и только тогда дойти до середины дороги.
  3. Посмотреть на право
  4. если машин нет, тогда завершить переход, если они есть тогда пропустить движущейся транспорт и только тогда завершить переход дороги.
В этом случае наше условие можно записать так:
Если с лева имеется движущейся транспорт тогда
Пропустить транспорт
Дойти до середины дороги
Иначе
Дойти до середины дороги
Конец принятия решения

Если с права имеется движущейся транспорт тогда
Пропустить транспорт
Завершить переход
Иначе
Завершить переход
Конец принятия решения

Ваша ЭВМ работая по программе, тоже может принимать решения. В VB-6.0 имеется три варианта записи ВЕТВЛЕНИЯ IF/THEN/ELSE IF- ЕСЛИ, THEN - тогда, ELSE - ИНАЧЕ)
  1. Сокращенный
    IF < УСЛОВИЕ > THEN < Оператор, команда > В этом случае, если условие истинное (т.е. выполняется) тогда будет выполнен оператор, который находится сразу после ключевого слова THEN
  2. Не полный
    В том случае, когда в случае истинного условия должно выполнится несколько команд, тогда ВЕТВЛЕНИЕ IF/THEN/ELSE записывается так:
    IF < УСЛОВИЕ > THEN
    <Оператор 1>
    <Оператор 2>

    <Оператор N>

    End if
  3. Полный
    Если, мы захотим, что бы ЭВМ выполняла некоторые команды, даже если условие не выполняется тогда, придется воспользоваться полным вариантом записи ВЕТВЛЕНИЕ IF/THEN/ELSE
    IF < УСЛОВИЕ > THEN
    <Оператор 1>
    <Оператор 2>

    <Оператор N>

    ELSE
    <Оператор 1_1>
    <Оператор 2_1>

    <Оператор N_1>

    End if
    Т.е. если условие выполняется, тогда будут выполнены оператор1, оператор2, ..., операторN если не выполняется, тогда оператор1_1, оператор2_1, ..., операторN_1
    Условие, как правило, что-то с чем-то сравнивает (хотя бывают исключения), можно сравнить две переменных или переменную с константой и.т.д. При этом используется следующая семантика записи условия:
    = равно
    > Больше
    < Меньше
    <> Не равно
    ПРИМЕР A<>B ... C=D ... T>5 ... S="SSDRIP"
    Полный вариант записи может выглядеть так:
    If A<>B then
    ' Блок операторов 1
    Else
    ' Блок операторов 2
    end if
В повседневной жизни нам приходится выполнять множество однотипных, монотонных, повторяющихся действий. Так, например, когда мы идем, переставляем сначала одну ногу, потом другую, вновь переставляем первую и.т.д. В языках программирования, для того чтобы выполнить одни и те же операции с несколькими объектами, без написания длинного программного кода, служат ЦИКЛЫ. Общая структура для всех циклов одинакова.
Описание цикла
ТЕЛО ЦИКЛА
Конец описания цикла
Тело цикла - Оператор и блок операторов, которые необходимо выполнить несколько раз.
  1. Цикл с параметром: Используется тогда, когда заранее известно сколько раз необходимо выполнить 'ТЕЛО ЦИКЛА
    Описание цикла выглядит так:
    FOR < Счетчик>=< Начальное значение> TO < Конечное значение> [STEP < Шаг приращения>]
    Конец описания цикла -
    [NEXT <Счетчик>
    Если опущен параметр [STEP < Шаг приращения>], тогда по умолчанию, Шаг приращения Счетчика будет равен +1, в этом случае необходимо, что бы начальное значение было меньше конечного значения.
    Пример:
    For X=1 to 10
    ' Тело цикла
    Next X
    Можно сделать наоборот, заставить меняться X от 10 до 1, но для этого необходимо указать параметр Step равный -1
    For X=10 to 1 step -1
    ' Тело цикла
    Next X
  2. Цикл с предусловием While <Условие>
    ' Тело цикла
    Wend
    - Тело цикла будет выполняться до тех пор, пока УСЛОВИЕ будет истинным, УСЛОВИЕ задается так же, как и для ветвлений
  3. Безусловный переход.
    Очень редкая конструкция на сегодняшний день, используется тогда, когда необходимо прервать последовательное выполнение инструкций, в рамках одной процедуры (обработчика события)
    Оператор безусловного перехода выглядит так:
    GO TO <Метка> Где<Метка>- имя строки в процедуре, с которой будет продолжено выполнение команд. Имена меткам выдаются по правилам назначения имен переменным, метки предварительно, в отличие от переменных, ни где не описываются. Наличие знака : (двоеточие) после имени метки - ОБЯЗАТЕЛЬНО.
    Пример:

    ОТМЕТКА:

    GO TO ОТМЕТКА:

    Или так:


    GO TO ОТМЕТКА:

    ОТМЕТКА:


    Обращаю Ваше внимание на то, что оператор GO TO обращается только к тем меткам, которые находятся в той же процедуре, что и GO TO .

Методы Формы

.REFRESH - Принудительно обновляет содержание окна программы.
.CLS - Очищает графическое содержание окна программы. (не трогая содержимого объектов в ней размещенных)
.PRINT "Некоторый текст" - выводит некоторую надпись (шрифт, цвет шрифта задаются соответствующими свойствами формы) на форму, в виде графики.
.CIRCLE (X,Y),R,COLOR - рисует окружность, центр которой расположен в точке с координатами X,Y, радиусом, R, Цвет окружности - Color. Если для переменных X,Y,R достаточно типа целых чисел, то Color - задается типом длинное целое
.LINE (X1,Y1)-(X2,Y2),Color [,Type] - Рисует линию от точки до точки, координаты точек X1,Y1 и X2,Y2. Color - Цвет линии. Если опустить параметр TYPE, тогда будет нарисована линия. Для того, что бы нарисовать прямоугольник - укажите B, закрашенный прямоугольник - BF
.MOVE X,Y - Перемещает Вашу форму в заданную точку экрана. Заменяет работу с двумя свойствами формы LEFT и TOP
.HIDE - Скрывает Вашу фору (Делая ее невидимой), но не выгружает ее из памяти
.Point (X,Y) - Возвращает цвет указанной точки
.PSET(X,Y),Color рисует в заданном месте точку, указанным цветом
.SHOW - Показывает Вашу форму на экране (если форма еще не загружена в память ЭВМ - загружает ее)

Задача:

Нарисовать в окне программы 50 "звездочек" разным цветом. Заставить "звездочки" падать с верху в низ.
Сегодня я дам алгоритм решения этой задачи (последовательность действий, без программного кода). Вы решаете (кому интересно) эту задачу самостоятельно, а через неделю на сайте я выложу свое решение. Таким образом, все заинтересованные лица смогут сравнить решение. И ещё мой алгоритм не претендует на роль совершенного, для решения этой задачи, возможно Вы найдете свой более привлекательный.
  1. Поскольку звезд у нас 50, нам необходимо иметь 50 комплектов переменных X,Y, Color для хранения текущих и промежуточных вычислений. Лучше всего воспользоваться массивом
  2. Для начала следует "разбросать", "звездочки" по форме, желательно в случайном порядке. Для этого можно воспользоваться функцией RND, для генерации текущей позиции звезды и ее цвета. Код цвета можно получить при помощи функции RGB (см. ниже). Поскольку для каждого триплета переменных X,Y,Color последовательность действий будет одинаковой, лучше воспользоваться циклом с параметром. В этом пункте мы только генерируем координаты и цвет звезд и прорисовываем их.
  3. Начало цикла с параметром (перемещение звезд по экрану)
  4. Каждую "звездочку" необходимо "стереть" с формы. Для этого в координатах X,Y необходимо "поставить" "звездочку", но не цветом Color, а тем цветом, который используется как задний цвет фона формы, тогда она (звездочка) просто сольется с фоном и ее не будет видно.
  5. Координату Y "звездочки" необходимо увеличить на 1 (можно взять и другое число)
  6. Если новая координата Y "звездочки", чем высота формы (окна программы), тогда генерируем, новую Координату X, цвет звезды - COLOR, а координату Y приравниваем к 0, тогда получится, что, долетев до нижнего края экрана - "звездочка" вылетит с верху.
  7. В координатах X,Y, цветом Color прорисовываем звездочку.
  8. Завершение цикла с параметром
  9. Принудительно обновляем графическое содержание окна программы
  10. Вернуться к пункту 3

Удачи Вам всем над решением этой нелегкой задачи :)

Функция RGB

RGB(Red, Green, Blue)

Функция RGB получает RGB-код цвета из основных компонентов

Возвращаемое значение

Возвращает значение типа Long, представляющее цвет в модели RGB. Значение RGB указывает относительную интенсивность красного, зеленого и синего компонентов, образующих отображаемый цвет. RGB-код цвета получается из компонентов по формуле:
RGB=red+(green*256)+(blue*65536)

Параметры
Именованные аргументы функции
Red,Green,BlueОбязательный аргумент типа Variant(Integer). Число в интервале от 0 до 255 включительно, представляющие соответственно красный, зеленый и синий компонент цвета. Значение любого аргумента функции RGB, превышающее 255, считается равным 255

Пример

Dim Red
Red=RGB(255,0,0) 'устанавливаем красный цвет
Form1.BackColor=Red ' делаем красным фон формы

Функция Rnd

Rnd[(Number)]

Функция Rnd(Random) служит для генерации случайных чисел

Возвращаемое значение

Функция Rnd возвращает значение в диапазоне от 0 до 1 типа Single, содержащее случайное число(причем 1 не входит в этот диапазон, а 0 входит). Строго говоря, функция возвращает псевдослучайные числа. При каждом запуске программы, функция генерирует одну и ту же последовательность случайных чисел. Во избежания этого явления используйте инструкцию Randomize

Примечание:Чтобы получить значения случайных чисел в интервале от min до max используйте формулу:
Int((max - min + 1) * Rnd + min),где min и max-минимальное и максимальное число соответственно

Параметры
Number
Необязательный аргумент представляет число типа Single или любое допустимое числовое выражение. Аргумент может принимать следующие значения:
Аргумент опущен или больше 0
Генерируется следующее случайное число в последовательности. При повторном запуске программы генерируется аналогичная последовательность случайных чисел
Аргумент отрицательный
Генерируется одно и то же число, используя аргумент как опорное число
Аргумент равен 0
Генерируется одно и то же число, используя число при предыдущем вызове функции
Пример
' Генерируем случайные числа от 1 до 7
Dim MyValue
MyValue = Int((7 * Rnd) + 1)
Print MyValue 'выводим число на форме
P.S.
1) Рассылка будет ВРЕМЕННО выходить раз в неделю, для того, что бы подписчики с content.mail.ru смогли догнать подписчиков с subscribe.ru
2) Пожалуйста, напишите пару строк автору или оставьте сообщение на форуме о том, каким Вы хотите видеть сайт, что хотелось бы увидеть.
3) Тем, кто уже пишет на VB, присылайте свои труды Автору сайта (т.е. мне), я найду способ разместить Ваши работы на страницах сайта. Ваш труд НЕ ДОЛЖЕН ПРОПАСТЬ ДАРОМ. Оставьте Ваш след на страницах НАШЕГО сайта.

Ну, вот на сегодня всё. До скорой встречи!


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу


В избранное