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

Русский_Проект: Изучение Visual Basic


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

Вступление
Задачи
eMbedded Visual Basic
Справочник по VB
Советы


Вступление

Здравствуйте!
Сегодня у нас в выпуске представлены сразу три языка - Visual Basic 6.0, embedded Visual Basic и VB.NET! Все языки хороши - выбирай на вкус

Задачи

А начнем выпуск с решения задачи о трех рыбаках. Все-таки нашелся один человек, который взялся за решение задачи. И зовут нашего героя Oleg Vikoulov Вот его вариант

' на форме помещаются одна кнопка и одно текстовое поле

Private Sub Command1_Click()
Dim iFishers As Integer ' количество рыбаков
Dim i As Double
Dim ii As Double
Dim rest As Double

iFishers = CDbl(Text1.Text)
' Установка первоначального количества пойманых рыб (= количеству рыбаков)
i = iFishers
Do
    ' проверяем количество рыб равное i
    ' rest -временная переменная, в которую
    ' сначало сохраняется проверяемое количество рыб, а затем
    ' уменьшающееся количество
    rest = i
    For ii = iFishers To 1 Step -1
        ' рыбак просыпается и выкидывает одну рыбу из того что он нашел в сумке с уловом
        rest = rest - 1
        ' проверяем условие, делится ли улов - 1 на три и не равен ли он 0
        If (rest Mod iFishers) <> 0 Or rest = 0 Then
              '  не делится на три
             GoTo lblNextDo
        else
            '  улов делится на три, рыбак уходит, просыпается следующий
            rest = rest - rest / iFishers
        Еnd if
    Next ii
    MsgBox "Result= " & i
    Exit Do
lblNextDo:
    '  количество рыб i не подходит; пробуем:
    i = i + 1
Loop


End Sub
Попробуйте оптимизировать данное решение. Дело в том, что эксперты настоятельно не рекомендуют использовать конструкцию GoTo в программировании. Удачи!

eMbedded Visual Basic

Недавно выложил вторую статью для eVB, в которой рассказывается о создании меню. Изучите материал.

VB.NET

Недалек тот день, когда нам придется расстаться с нашим любимым языком VB 6.0. На сайте я открываю новый раздел, посвященный VB.NET. Пока это будут небольшие зарисовки. Читайте и мотайте на ус. Возможно, скоро вам придется переучиваться.

В Visual Basic.NET у у всех видимых элементов появились новые свойства Size и Location, которые служат для задания размеров и расположения элементов на форме. В предыдущих версиях VB аналогами для этих свойств были свойства Height, Width, Top и Left. Обратите внимание, что у элементов, невидимых на этапе выполнения (например, Timer), свойств Size и Location нет (в отличие от предыдущих версий Visual Basic). Каждое из этих двух свойств состоит из двух чисел (ширины и высоты для Size и x и y для Location). Эти пары значений разделятся в окне свойств точкой с запятой. Также можно редактировать каждое из этих двух чисел и поотдельности. Для этого нажмите на плюсик рядом со свойством. А вот как можно изменять эти свойства программно. Разметите на форме кнопку и в обработчик для щелчка на ней добавьте следующие строки:

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    Handles Button1.Click
    Dim s As System.Drawing.Size 'Определяем переменную типа Size
    s = Button1.Size() 'Берем текущий размер кнопки
    s.Width = s.Width + 10 'Изменяем размер
    Button1.Size() = s 'Присваиваем кнопке новый размер
  End Sub
А можно сделать значительно проще:
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    Handles Button1.Click
    Button1.Width = Button1.Width + 10
  End Sub
Оба эти способа приведут к одному и тому же результату - ширина кнопки увеличится. Все же эти сложности первого способа связаны с тем, что разработчики из MS захотели сделать VB действительно Объектно-ориентированнным языком. Отсюда и стремление все представлять в виде классов. (взято из сайта http://progs.biz)

Справочник по VB

В прошлом выпуске я рассказывал о ListBox. Некто по имени Сан Саныч прислал интересный вопрос:
А как узнать отмечен ли i-ый элемент списка чекбоксом или нет? Это когда Style у ListBox стоит CheckBox. Я как не искал, так и не нашел где у него нужное свойство что-то вроде Selected, только это должно быть наверное Checked.

Ответ: Действительно, в справке не особо освещается этот вопрос и может вызвать затруднения. Но все очень просто. Предположим вы создали список из 5 элементов. Запусти проект и отметь третий элемент галочкой. Вот и код для проверки

If List1.Selected(2) Then
  MsgBox "Третий элемент отмечен"
End If

Советы

Помните, что кавычки можно заменить конструкцией Chr(34). В некоторых случаях это удобней, чем использование кавычек в явном виде. Код, перегруженный кавычками, выглядит неуклюже

Dim str As String
str = "Л.Толстой - автор произведения " & """" & "Война и мир!" & """"
MsgBox str
Гораздо лучше написать
str = "Л.Толстой - автор произведения " & Chr(34) & "Война и мир!" & Chr(34)

Присылайте ваши предложения по адресу rusproject@mail.ru
Посетите сайт Русский_Проект, где вы найдете другую интересную информацию
Давайте делать рассылку вместе!
Счастливого вам программирования!



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

В избранное