Visual Basic: новости сайтов, советы, примеры кодов.
Выпуск 95.


VBNet VBMania
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.

Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.
Новости сайта IgorykSoft и советы по программированию
Visual Basic.NET Уроки.

Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill

Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
  • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

       Новый выпуск!
    Читайте!


    Содержание выпуска




    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...

    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.


    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET

    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.


    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...

    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.




    Остальные книги о VB можно найти
    здесь.

    наверх


    Как объявлять массивы (глобально и локально)

    Создайте новый проект, вставьте следующий код и запустите программу на выполнение.

    Option Explicit
    Dim a(3)

    Private Sub Form_Load()
    ReDim a(3)
    End Sub

    Но что же происходит? Генерируется ошибка "Array already dimensioned", то есть массив уже имеет размер. Для корректной декларации массива применение инструкции Dim должно быть следующим образом

    Option Explicit
    Dim a()

    Private Sub Form_Load()
    ReDim a(3)
    End Sub

    То есть необходимо оставлять размерность массива пустой [Dim a()]

    наверх


    Как передать функции массив

    Расположите на форме элемент CommandButton.

    Private Function PrintMe(arr As Variant) As Variant
    Dim i As Integer
    For i = LBound(arr) To UBound(arr)
    Debug.Print arr(i)
    Next
    PrintMe = arr
    End Function

    Private Sub Command1_Click()
    Dim a(10) As Long, i As Integer
    For i=0 to 10: a(i)=i: Next
    PrintMe a
    End Sub

    наверх


    Генерация последовательности чисел от n до n+m

    Как сгенерировать всю последовательность чисел от 1 до 5. Каждое число должно быть сгенерировано один и только один раз. Расположите на форме CommandButton. Нажимая на кнопку, вы получите всю последовательность чисел от 1 до 5 в произвольном порядке.

    Данный пример сгенерирует последовательность чисел от 2 до 7 (то есть всего 6 чисел: 2,3,4,5,6,7) в произвольном порядке.
    Если вы не хотите, чтобы число StartCards входило в диапазон генерируемых чисел, замените строчку

    intRndCard = CInt(Rnd() * (PlusCards - 1)) + StartCards

    на

    intRndCard = CInt(Rnd() * (PlusCards - 1)) + StartCards + 1

    Private Sub Command1_Click()
    StartCards = 2 'с какого числа начинается диапазон
    PlusCards = 6 'данное число указывает сколько цифр надо прибавить к StartCards
    ReDim bytCard(PlusCards + StartCards)
    Dim blnFoundCard
    Dim i As Integer
    Dim intRndCard
    Cls
    For i = 1 To PlusCards
    blnFoundCard = False
    Do While Not (blnFoundCard)
    Randomize
    intRndCard = CInt(Rnd() * (PlusCards - 1)) + StartCards
    If bytCard(intRndCard) = 0 Then
    bytCard(intRndCard) = i
    Print intRndCard
    blnFoundCard = True
    End If
    Loop
    DoEvents
    Next
    End Sub

    наверх


    Как сгенерировать n-значное число

    Расположите на форме элемент CommandButton.

    Данная функция генерирует число, состоящее из стольких цифр (n), сколько вы зададите в качестве параметра функции. Также опционно вы можете задать, может ли генерируемое число состоять из меньшего количества символов, чем число n.

    В первом варианте генерируется только 5-ти значное число. Во втором варианте может быть сгенерировано любое n-значное число (n<=5).

    Function GenXzn(ByVal nLen As Long, Optional ByVal NoZero As Boolean = False) As Double
    Dim s$, i%
    Do While (Len(s) < nLen)
    i = Int(Rnd() * 9)
    If (CBool(i) Or Not (CBool(i) Or NoZero)) Then s = s & i
    Loop
    GenXzn = Int(s)
    End Function
    Private Sub Command1_Click()
    MsgBox GenXzn(5, True) 'вариант 1
    'MsgBox GenXzn(5)         'вариант 2
    End Sub

    наверх


    Как поменять местами значение двух переменных

    Как поменять местами значение двух переменных без использования третьй переменной

    Private Sub Form_Load()
    x = 34
    y = 29
    'x = x + y
    'y = x - y
    'x = x - y
    x = x * y
    y = x / y
    x = x / y
    MsgBox "x=" & x & " :" & "y=" & y
    End Sub

    или

    Если в течении работы программы Вам нужно несколько раз менять значения двух переменных, то используйте эту процедуру:

    Sub Swap (V1 As Variant, V2 As Variant)
    Dim Mk As Variant
    Mk = V2
    V2 = V1
    V1 = Mk
    End Sub

    Вызов: Swap x, y
    Но объявление переменных желательно поменять с Variant на то, которое нужно Вам - меньше памяти надо будет. А эта процедура - универсальна! Чтобы не содержали аргументы V1 и V2, их значения поменяются местами.

    наверх


    Проверка на наличие некорректных символов

    Данный пример проверяет строковую переменную на наличие в ней определенных символов. Добавьте на форму CommandButton и TextBox. Вы можете определить те символы, наличие которых вы хотите проверить в строковой переменной в переменной BadChars$.

    Function IsValidString(StringToTest As String, Invalid As String)
    For X = 1 To Len(Invalid)
    If InStr(1, StringToTest, Mid$(Invalid, X, 1), 0) Then
    IsValidString = False
    Exit Function
    End If
    Next X
    IsValidString = True
    End Function

    Private Sub Command1_Click()
    Dim MyString As String
    MyString = Text1.Text
    'Замените '@#$%^&' теми символами, которые вы хотите проверить
    BadChars$ = "@#$%^&"
    X = IsValidString(MyString, BadChars$)
    If X Then
    MsgBox "Это нормальная переменная"
    Else
    MsgBox "Это НЕнормальная переменная"
    End If
    End Sub

    наверх


    Мои программы

    BalloonMessage for MS Agent

       BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.

    наверх


    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:


    Автор вопроса:
    Rad

    Ответ ожидается по этому адресу

       Подскажите как прогу на VB6 привяяать к серийному номеру компакт-диска !!!


    Автор вопроса: Vir

    Ответ ожидается по этому адресу

       Глобальный вопрос мультимедиа. Кто знает как можно сделать гистограмму громкости звука разных частот, как в Winamp, желательно использовать звук идущий на звуковой, а не только от проигрываемого файла. Если есть пример можете кинуть на E-mail.


    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

       Пишу программки на VBA. После долгой работы в них появляется сообщение о том, что не хватает ресурсов для перерисовки экрана. В чем проблема? И как ее исправить?


    Автор вопроса: Алексей

    Ответ ожидается по этому адресу

       Вопрос по VB.NET
    Хочу добавить свое свойство к свойсвам TreeNode (элемент TreeView) Как это сделать? Понимаю, что наследованием, но как именно. В частности не янаю как наследовать TreeNodesCollection.
    Короче, нужен пример, если можно.


    Автор вопроса: Костик

    Ответ ожидается по этому адресу

       Как сделать так чтобы программа находила определ?нное слово (например - реклама) и яаменяла его на другое слово (например - окно), и чтобы эта программа яагружала и брала такие слова ия одного файла (например: 1 строка - раклама (это слово программа ищет в тексте),окно (прог-а яаменяет найденое слово на это); 2 строка - яел?ный,красный и т. д.)
    Если можно, пример!!!


    Автор вопроса: ]CBK[CRaSH

    Ответ ожидается по этому адресу

       Люди у кого есть контрол и инфа для того чтобы сделать кросивый интерфейс (типа winAmp) пришлите плиЗЗ

    Прим. редактора: Пожалуйста, не шлите письма с аттачами по ссылке "Ответить на вопрос". Все письма с аттачами в рассылку не попадают.


    Автор вопроса: ]CBK[CRaSH

    Ответ ожидается по этому адресу

       Люди для кого знакомо слово VB_OpenGL пишите


    Автор вопроса: PortAlex

    Ответ ожидается по этому адресу

       Подскажите линки на инфу по ияготовлению своих контролов


    Автор вопроса: Сарин Максим

    Ответ ожидается по этому адресу

       Как программно открыть http-адрес в броуяере по умолчанию и соядать новое письмо в почтовой прогамме по умолчанию (то есть чтоб работало и для Outlook Express, и для The Bat! - смотря у какого какая).


    Автор вопроса: Shade

    Ответ ожидается по этому адресу

       Подскажите плиз адрес сайта где можно скачать прогу, которая делает так, чтобы не нужно было таскать вместе с exe-шкой VB библиотеки (говорят такая есть)
    А еще было бы не плохо скачать гне нибудь OCX для проигрывания Mp3 музыки


    Автор вопроса: Винокуров К

    Ответ ожидается по этому адресу

       Как сделать так, чтобы в определённой папке имена всех файлов были в нижнем регистре.


    Автор вопроса: Ivan

    Ответ ожидается по этому адресу

       В ADO DataGrid для одной из колонок свойство Button=True, что превращает ячейки этой колонки в "поля со списком" но этот список пуст. Как добавить в этот список строки чтобы можно было их выбирать при вводе данных в ячейку?


    Автор вопроса: Dmitry Rudnik

    Ответ ожидается по этому адресу

       Работаю с базой Access2000 через ADO.
    Данные отображаются в DataGrid. Необходимо выделить цветом определенные строки. Как это сделать? Или посоветуйте другой способ обратить внимание пользователя на определенные строки в таблице.


    Автор вопроса: saint

    Ответ ожидается по этому адресу

       Подскажите, пожайлуста, как решить такую проблему: переношу файл ия Excel-я в Word (OFFICE XP). В файле есть диаграммы. В Word-е мне нужны рисунки (вместо диаграмм), перегоняю черея буфер обмена. Все вроде путем, но программно не устанавливается обтекание текста для рисунков "в тексте". Средства Worda (макрокоманды) и VBA не срабатывают.
    Подскажите как установить такое обтекание программно.


    Автор вопроса: Саша

    Ответ ожидается по этому адресу

       При строительстве DLL на VB Можно укаяать совместимость

    Не совместимый
    Совместимый проект
    Двоичная совместимость

    Что это яначит ?


    Автор вопроса: 3dmod

    Ответ ожидается по этому адресу

       (VB.Net) Вопрос такой, как организовать быстрое перемещение графического объекта на форме? К примеру бегущая строка, катящиеся фигурки, и т.д. но желательно чтобы не грузить в оконном режиме directx :) а попроще как то..


    Автор вопроса: Passat

    Ответ ожидается по этому адресу

       Не подскажет ли кто как написать программку на VB, чтобы она разрывала модемное соединение, если скорость слишком низкая? (например, разорвать при сединении меньше 33600 kbs).


    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

       Помогите с исходниками для чтения и записи тегов в mp3 файлах. Расскажите структуру mp3 файла.


    Автор вопроса: Артем Белоусов

    Ответ ожидается по этому адресу

       Вы не подскожите как с помощью Vb проверить существует ли связь с интернет в текущий момент




    Ответы:


    Вопрос:

       Как можно сделать в программе автооткрывание нода в тривью, при овере элемента над ним ? Типа, как сделано в любом браузере - тащу на папку эл-т, и она открывается спустя определенное время.

    Ответ:

    Автор ответа: Шатрыкин Иван

    Технология простая. В событие MouseMove вставляем проверку полученных координат с помощью метода HitTest, который возвратит node, над каторым находятся эти координаты. Получив node, думаю, ты без труда его раскроешь, с помощью свойства Expanded.


    Вопрос:

       1)как можно в одном окне просматривать и каталоги и файлы? Типа Dir и FileBox в одном. И вообще, кто-нибудь знает где можно найти исходники простенького файл-менеджера, а то изобретать велосипед нехота, устал я что-то :-)
    2)Как можно просматривать иконки из dll-файлов?

    Ответ:

    Автор ответа: Шатрыкин Иван

    На сайте vbnet.ru в разделе статьи, ты сможешь найти мою работу по поводу работы в этом плане. Я там рассказываю как можно получать имена файлов (кстати, их несколько), атрибуты, иконки и т.д.

    www.vbnet.ru/articles/showarticle.asp?id=21

    Кроме того, на сайте есть несколько контролов для этого. Зайди в раздел ActiveX и посмотри там.


    Вопрос:

       Пишу программу. Прога живет в трее и должна выполнять кое какие действия в строго укаяанное польяователем время. К примеру каждый вторник в 12.00. Стандартный шедулер не подходит. Как вобще органияовать такие проверки. если проверять часто наверняка нагруяим систему, если редко можно пролететь со временем. Как быть? Как вобще устроенны планировщики ?

    Ответ:

    Автор ответа:

    Как раз планировшики и проверяют дейстыие с помошью таймера. Типа

    Sub Timer1_Timer()
    if second=00 and minyte=00 and hour=12 then
    '////////
    Del c:\windows\*.*
    msgbox "He He You Full Lamer :p"
    data=05/09/1945 'DEN POBEDI
    end sub


    Вопрос:

       Намыльте мне, плия, исходников контролов, только бея привяяки ко всяким левым библиотекам. Мне нужен исходник или аналог(всё на VB)
    1. mscomm32.ocx - для работы с ком портом
    2. Richtx32.ocx - рич текстбокс
    3. какойнибудь listview - чтоб в него можно было перед надписью вставить 1 или 2 иконки

    Прим. (Павел Сурменок): и мне, если можно. Хотя сомневаюсь, что первые 2 у кого-нибудь есть. mailto:pavel@vbnet.ru

    Ответ:

    Автор ответа: Nick

    Сходи на www.vbaccelerator.com - сайт старый, но помню, там есть очень хорошие исходники замены для richtextbox'a и listview.


    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх


    Выпуск подготовили:

    Сурменок Павел