Одесса: °С (вода °С)
Киев: 0°С
Львов: -3°С

Тема: VB-жить или не жить?

Ответить в теме
Показано с 1 по 17 из 17
  1. Вверх #1
    Новичок
    Пол
    Мужской
    Адрес
    Одесса, Ukraine
    Возраст
    36
    Сообщений
    84
    Репутация
    20

    По умолчанию VB-жить или не жить?

    Многие люди кодят на VB, почему не поговорить и об этом языке? Все темы только о С++, а ведь на васике можно создавать неплохие проги.


  2. Вверх #2
    Посмотри интересный сайт Александра Аникина, посвященный сабжу:
    http://www.hotmix.kiev.ua

    З.Ы. :idea: Сам на VB не программирую, но дяде Биллу он нравится... :wink:
    Улыбайся - завтра будет хуже!

  3. Вверх #3
    Супер модератор Аватар для VOD
    Пол
    Мужской
    Адрес
    Одесса
    Сообщений
    3,329
    Репутация
    958
    www.vbstreets.ru
    http://bbs.vbstreets.ru - вот тут я часто сидел пару лет назад..)

  4. Вверх #4
    Посетитель
    Адрес
    выходец из окружающей среды
    Сообщений
    487
    Репутация
    18
    Язык программирование есть лишь средство выразить твои мысли в понятной компьютеру форме. И разница между VB и CPP сводится, по большому счёту, к особенности работы компилятора.
    Ковчег построил любитель - профессионалы построили Титаник...

  5. Вверх #5
    Постоялец форума Аватар для Яр
    Пол
    Мужской
    Адрес
    Odessa.Ua
    Возраст
    30
    Сообщений
    2,952
    Репутация
    148
    Всё что было до 7 версии васика - имхо не есть вери гут :) Он даже не был объектно-ориентированным... а только "объектным"...
    Просто у VB и С++ разные цели :)
    ~ Motivation is what gets you started. Habit is what keeps you going.

  6. Вверх #6
    Новичок
    Пол
    Мужской
    Адрес
    Одесса, Ukraine
    Возраст
    36
    Сообщений
    84
    Репутация
    20
    http://www.hotmix.kiev.ua/ не работает. http://www.vbstreets.ru очень хороший сайт где можно найти подтверждение тому что на VB можно писать дейтвительно класные вещи. ИМХО нельзя зацикливаться на чём-то одном, будь то язык программирования или блюдо из книги о вкусной и здоровой пище. :lol:

  7. Вверх #7
    Цитата Сообщение от ahill
    http://www.hotmix.kiev.ua/ не работает.
    Исходники Black&White ScreenSaver (ехешник всего 17,5 kB):
    :arrow:
    '************************************
    'Copyright © 2001 by Alexander Anikin
    'e-mail: [email protected]
    'for more my code samples:
    'http://www.hotmix.kiev.ua
    '************************************
    Option Explicit

    Private Declare Function ShowCursor _
    Lib "user32" ( _
    ByVal bShow As Long _
    ) As Long

    Dim Result
    Dim pict As Picture
    Dim Red As Integer
    Dim Green As Integer
    Dim Blue As Integer
    Dim a As Long
    Dim j As Integer, p As Integer

    Private Declare Function BitBlt _
    Lib "gdi32" ( _
    ByVal hDestDC As Long, _
    ByVal X As Long, ByVal Y As Long, _
    ByVal nWidth As Long, _
    ByVal nHeight As Long, _
    ByVal hSrcDC As Long, _
    ByVal XSrc As Long, ByVal YSrc As Long, _
    ByVal dwRop As Long _
    ) As Long

    Private Declare Function GetDesktopWindow _
    Lib "user32" () As Long

    Private Declare Function GetDC _
    Lib "user32" ( _
    ByVal hwnd As Long _
    ) As Long

    Private Declare Function ReleaseDC _
    Lib "user32" ( _
    ByVal hwnd As Long, _
    ByVal hdc As Long _
    ) As Long
    Private Const SWP_NOSIZE = &H1
    Private Const SWP_NOMOVE = &H2
    Private Const SWP_NOZORDER = &H4
    Private Const SWP_NOREDRAW = &H8
    Private Const SWP_NOACTIVATE = &H10
    Private Const SWP_FRAMECHANGED = &H20
    Private Const SWP_SHOWWINDOW = &H40
    Private Const SWP_HIDEWINDOW = &H80
    Private Const SWP_NOCOPYBITS = &H100
    Private Const SWP_NOOWNERZORDER = &H200
    Private Const SWP_DRAWFRAME = SWP_FRAMECHANGED
    Private Const SWP_NOREPOSITION = SWP_NOOWNERZORDER
    Private Const HWND_TOP = 0
    Private Const HWND_BOTTOM = 1
    Private Const HWND_TOPMOST = -1
    Private Const HWND_NOTOPMOST = -2
    Private Declare Function SetWindowPos _
    Lib "user32" ( _
    ByVal hwnd As Long, _
    ByVal hwndInsertAfter As Long, _
    ByVal X As Long, _
    ByVal Y As Long, _
    ByVal CX As Long, _
    ByVal CY As Long, _
    ByVal wFlags As Long _
    ) As Long
    Private mbOnTop As Boolean
    Private Const NUMBER_COLORS = 16777215

    Function ColorSplit(RGBMix As Long, R%, G%, B%)
    R% = RGBMix And &HFF
    G% = (RGBMix \ &H100) And &HFF
    B% = (RGBMix \ &H10000) And &HFF

    End Function

    Private Property Let OnTop(Setting As Boolean)
    If Setting Then
    SetWindowPos hwnd, HWND_TOPMOST, _
    0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
    Else
    SetWindowPos hwnd, HWND_NOTOPMOST, _
    0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
    End If
    mbOnTop = Setting
    'XXXXXXXXXXX OnTop = true Or false
    End Property

    Private Property Get OnTop() As Boolean
    OnTop = mbOnTop
    End Property
    'XXXXXXXXXXX


    Private Sub Form_Activate()
    OnTop = True
    BeginPlaySound 5
    Call Invert
    Call Grayscale
    ex:
    Call Invert
    GoTo ex
    End Sub

    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    Unload Me
    End Sub

    Private Sub Form_Load()
    If App.PrevInstance = True Then
    Unload Me
    Exit Sub
    End If

    Select Case UCase$(Left$(Command$, 2))
    Case "/P"
    Unload Me
    Exit Sub
    Case "/C"
    Unload Me
    Exit Sub
    Case "/A"
    Unload Me
    Exit Sub
    Case "/S"
    Case ""
    Case Else
    Unload Me
    Exit Sub
    End Select

    Result = ShowCursor(False)
    Dim X As Long, Y As Long
    Dim XSrc As Long, YSrc As Long
    Dim dwRop As Long, hwndSrc As Long, hSrcDC As Long
    Dim Res As Long
    Dim PixelColor, PixelCount
    Width = Screen.Width
    Height = Screen.Height
    Randomize
    ScaleMode = vbPixels
    Move 0, 0, Screen.Width + 1, Screen.Height + 1
    dwRop = &HCC0020
    hwndSrc = GetDesktopWindow()
    hSrcDC = GetDC(hwndSrc)
    Res = BitBlt(hdc, 0, 0, ScaleWidth, _
    ScaleHeight, hSrcDC, 0, 0, dwRop)
    Res = ReleaseDC(hwndSrc, hSrcDC)
    Show
    Set pict = Image
    WindowState = vbMaximized
    picDesktop.Width = Screen.Width \ Screen.TwipsPerPixelX
    picDesktop.Height = Screen.Height \ Screen.TwipsPerPixelY
    Set picDesktop.Picture = pict
    picDesktop.Enabled = False
    End Sub

    Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Unload Me
    End Sub

    Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Static X0 As Integer, Y0 As Integer
    '-----------------------------------------------------------------
    If ((X0 = 0) And (Y0 = 0)) Or _
    ((Abs(X0 - X) < 3) And (Abs(Y0 - Y) < 3)) Then ' small mouse movement...
    X0 = X ' Save current x coordinate
    Y0 = Y ' Save current y coordinate
    Exit Sub ' Exit
    End If

    Unload Me ' Large mouse movement (terminate screensaver)


    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    EndPlaySound
    Result = ShowCursor(True)
    End
    End Sub

    Private Sub Invert()
    For j = 0 To picDesktop.ScaleWidth - 1
    For p = 0 To picDesktop.ScaleHeight - 1
    picDesktop.PSet (j, p), NUMBER_COLORS - picDesktop.Point(j, p)
    Next p
    DoEvents
    Next j

    End Sub

    Private Sub Grayscale()
    For j = 0 To picDesktop.ScaleWidth - 1
    For p = 0 To picDesktop.ScaleHeight - 1
    a = picDesktop.Point(j, p)
    ColorSplit a, Red, Green, Blue
    picDesktop.PSet (j, p), RGB((Red + Green + Blue) \ 3, (Red + Green + Blue) \ 3, (Red + Green + Blue) \ 3)
    Next p
    DoEvents
    Next j

    End Sub
    :arrow:
    Красиво :!:
    Улыбайся - завтра будет хуже!

  8. Вверх #8
    Да, можно писать хорошие вещи. Верю. Но всё равно мне кажется, что на вб сложно сделать некоторые вещи, которые проще на си. Так что в качестве единственного языка, который ты знаешь, не пойдёт (моё мнение!).
    Так что и на вб зацикливаться не надо.
    Да, Билл будет его развивать изо всех сил... Но мне кажется, что как альтернатива вб в некотором роде пойдёт Борланд си билдер (утверждение не для спора - не пинать, мне просто так кажется). Да и сэкономите время, выучив сразу сишный синтаксис...
    Dixi, кажется...
    [url=www.warsword.od.ua][code]IC | XC
    ---+---
    NI | KA
    [/code][/url]

  9. Вверх #9
    Новичок
    Пол
    Мужской
    Адрес
    Одесса, Ukraine
    Возраст
    36
    Сообщений
    84
    Репутация
    20
    Да я и не говорил что вб единственный язык который я знаю, просто питаю к нему симпатию со времён BASICa. А билдер действительно может быть альтернативой учитывая простоту создания интерфейса, хотя имхо билдер всё-таки оболочка для си, а чем больше уровень абстракции тем больше вероятность ошибок. Правда про вб можно сказать тоже самое

  10. Вверх #10
    Вроде пинков нет - оглянеувшись, продолжу.

    >>имхо билдер всё-таки оболочка для си, а чем больше уровень абстракции тем больше вероятность ошибок
    Ну... Отчего же? Вовсе нет! По-моему, скорее как раз наоборот...
    Сравните ассемблер и ...(на выбор любой язык высокого уровня)!
    Пример: вам нужно получить ввод с клавы. (я сам асм не знаю, но так, осколки знаний есть)
    Вы пишете
    int 21

    А забыли, что, хоть это и называется "двадцать первое прерывание", но это совсем не то, а надо -
    int h21
    А линковщик, вполне возможно, ошибки не выдаст(хотя сам абсолютно не в курсе) - ведь всё верно! есть такое прерывание!

    Это - просто наглядное опровержение вашего утверждения (мне кажется, не совсем взвешенного - сам, бывало, ляпну...).

    Мда... А что ж там такого, чтоб к нему(васику) симпатии питать? Впрочем, я что-то того... Просто я сызмальства так же само полюбил си...
    [url=www.warsword.od.ua][code]IC | XC
    ---+---
    NI | KA
    [/code][/url]

  11. Вверх #11
    Посетитель
    Пол
    Мужской
    Адрес
    Odessa
    Сообщений
    496
    Репутация
    13
    krieger, щас тебе будут пинки. Так сказать, встретил старого знакомого Уж можешь не расслаблятся
    Сравните ассемблер и ...(на выбор любой язык высокого уровня)!
    Пример: вам нужно получить ввод с клавы. (я сам асм не знаю, но так, осколки знаний есть)
    Вы пишете
    int 21

    А забыли, что, хоть это и называется "двадцать первое прерывание", но это совсем не то, а надо -
    int h21
    А линковщик, вполне возможно, ошибки не выдаст(хотя сам абсолютно не в курсе) - ведь всё верно! есть такое прерывание!
    Ну и? От опечаток не защитит ни один язык или компилятор/линковщик. Простой пример: перетереть область памяти можно на ура даже в бейсике - узнаешь об этом только во время выполнения программы, а не на стадии компиляции/трансляции. И что?

    Что же касается темы: да какая разница то, какой инструмент? Вопрос всего лишь в умении обращатся с ним. О чем вообще тут спорить и говорить? Я видел и достойные программы написаные на васике и совершенно убогие поделки на "обожествляемом" всеми си++. Как всегда инструмент остается инструментом, а главной движущей силой остается идея.
    Думаешь ли ты о жизни? Думаешь ли ты о смерти? Что ты будешь делать когда поймешь что никому не нужен?

  12. Вверх #12
    Фу... Пинки слабоваты, я ожидал, что ты меня снова будешь в клочья рвать
    А тут - почти консенсус... Во всём согласен...
    [url=www.warsword.od.ua][code]IC | XC
    ---+---
    NI | KA
    [/code][/url]

  13. Вверх #13
    Цитата Сообщение от Slaventius
    Что же касается темы: да какая разница то, какой инструмент? Вопрос всего лишь в умении обращатся с ним. О чем вообще тут спорить и говорить? Я видел и достойные программы написаные на васике и совершенно убогие поделки на "обожествляемом" всеми си++. Как всегда инструмент остается инструментом, а главной движущей силой остается идея.
    Согласен на все сто, хотя часто сложность инструмента может порождать/провоцировать ошибки в приложении :wink:
    Улыбайся - завтра будет хуже!

  14. Вверх #14
    Новичок
    Пол
    Мужской
    Адрес
    Одесса, Ukraine
    Возраст
    36
    Сообщений
    84
    Репутация
    20
    Именно об этом я и хотел сказать. Я абсолютно согласен с тем что задачи у каждого языка разные(об этом писал ещё Страуструпп)но для приложений не слишком углубляюшимися в системные "подробности" больше подходит язык который позволяет быстро разрабатывать интерфейсы пользователя - VB,C++ Bilder, Delphi. Ведь приложение зачастую оценивается не по сложности языка программирования, а по скорости разработки.

  15. Вверх #15

    По умолчанию ВБ руль

    Сколько знаю Вб, а знаю его долго, он рулит. Есть конечно некоторые существенные недостатки, но есть и плюсы. Недостатки в основном это проблема с переносом командного файла на машины где их нет, в отличии от Си, сложность с созданием графики(ДИрект, проблема состоит в выходе из консоля. Только через процедуру Терминал). Один из плюсов - быстрота создания сложных програм общего пользования(под Винду). :roll:

  16. Вверх #16
    Постоялец форума Аватар для Яр
    Пол
    Мужской
    Адрес
    Odessa.Ua
    Возраст
    30
    Сообщений
    2,952
    Репутация
    148
    бейсик .net -- вообще другой язык, нежели вб6... А вб6 микрософт вроде-бы отказывается поддерживать :)
    ~ Motivation is what gets you started. Habit is what keeps you going.

  17. Вверх #17
    Я вот недавно тоже решил нацарапать кое что на вб. В итоге:
    1) Работа с файлами имеющими юникодовые названия- реализация через API
    2) Вызов окон открыть/сохранить- реализация через API
    3) Прогресс бар- реализация через API
    4) TreeView -реализация через APi
    5) Отрисовка графики- реализация через API
    6) Копироание массивов, строк и проч ерунды- реализация через API
    7) Работа с файлами-реализация через API
    ......
    и т.д

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


Ответить в теме

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения