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


VB Студия VBMania VB Line
Голосование:

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

Subscribe.Ru увеличило максимальный размер рассылки до 100 кб. В связи с этим вопрос:
Какого размера Вы хотели бы получать рассылку?

Менее 20 кб
От 20 до 40 кб
От 40 до 60 кб
От 60 до 80 кб
Выше 80 кб


В какой день (дни) недели Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."?
Понедельник
Вторник
Среда
Четверг
Пятница
Суббота
Воскресение


С какой периодичностью Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."?
Каждый день
2 раза в неделю
Раз в неделю
Раз в две недели
Раз в месяц
Реже


Результаты голосования
Рассылки Subscribe.Ru
Новости сайта VBline и советы программистам
Мир программирования на Visual BASIC 5.0 и HTML.

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

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

Ссылки:

  • Улицы VB
  • Использование VB
  • VB Line
  • Азбука VB
  • VB на русском
  • Улицы VB
  • VB - шаг за шагом
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • Несколько слов от автора:

       Присылайте материал. Без Вашей помощи рассылка долго не протянет.
    Читайте!


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




    О системе Эксперт
    - Привет, Серый.
    - Угу, привет. Ты проходи, садись, я щас, с функцией тут разберусь...
    - Да я на момент. Вопросец имеется.
    - Вопросец, вопросец... Так, тут переменная не объявлена... Вопросец... С вопросами в систему, к экспертам... А тут точку не поставил! Вот она где, соб-бака!!
    - Ты че, какая система? Ты о чем?
    - О! Все, работает... Чего ты говоришь?
    - Ты про каких это экспертов тут заикаешься?
    - А-а. А ты что, первый раз слышишь, что ли? Ты на СообЧа бывал?
    - Где?!!
    - Да вот, гляди. Щас соединимся... Во! http://soobcha.ru, зришь?
    - М-да... Занятно. Так я с вопросом к тебе...
    - А я вот и говорю: туда иди, в систему "Эксперт", там ответят.
    - Это чайники, что ли, ответят?
    - Не сомневайся, ответят. Там у них такое наворочено... Короче, ты по почте вопрос свой задаешь - и все:)))))) Больше не изволь беспокоиться, там они сами будут искать ответ на твой вопрос. А через некоторое время вывалят тебе на ящик не один, а несколько ответов. Пользуйся и радуйся:)
    - А чего это они там такие добрые да услужливые? У них чего, своих проблем нет? Сколько я должен платить за такое трогательное беспокойство?
    - Ну, это немного. Меньше, чем ты думаешь:) Тебе достаточно только подтвердить правильный ответ. Давишь на соответствующую ссылку, дескать, вот этот ответ мне понравился, помог, и я доволен. Просто пустое письмо засылаешь к ним, и вся оплата. А если хочешь у них экспертом стать, то пожалуйста, регистрируйся и отвечай на вопросы.
    - Кем? Экспертом?
    - А что? Что-то ты ведь знаешь, не вчера за комп сел.
    - А на фига мне это надо? Разбираться с чужими проблемами... У меня своих - хоть отбавляй...
    - Ага. Вот ты только что спрашивал: а сколько? И если уж ты со своими проблемами обращаешься к людям, то ведь надеешься, что тебе помогут. А сам-то что, влом, что ли, помочь кому-то? Да ладно! Тебя, вобщем-то, никто и не тянет, не заставляет. А вот те, кому интересно, кому не жаль поделиться, те там и работают. Я, между прочим, давно уже с ними.
    - В смысле, экспертом, что ли, заделался? И сколько тебе платят?
    - А ты не прикалывай. Там никто никому не платит. А вот конкурсы, между прочим, проводят, и не хилые. Представляешь, за лучший ответ дают бесплатно три месяца платного хостинга, да еще домен регистрируют. За просто так. А вот тебе, если ты задашь самый лучший вопрос, тоже приз может выгореть.
    - Это как: лучший? На который никто ответить, что ли, не сможет? Так я щас таких вопро...
    - Причем тут это? Просто ты, если вопрос пишешь к ним, так сподобься хоть запятые в нужных местах поставить, там, грамотно, короче, обрисуй свой трабл.
    - Ну ладно, въехал. Ты мне вот лучше помоги с моим траблом. Мой Фотошоп не хочет по русски работать...
    - Ха, так этот трабл там уже сколько раз появлялся. У них на сайте и ответ есть... Вот, любуйся: Заходим в редактор реестра (regedit.exe). Находим ключ HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\Nls\Codepage В нем изменяем значение параметра 1252 с cp_1252.nls на cp_1251.nls. Перезагружаемся...
    - Понял... погоди, запишу...
    - Да чего записывать? Шагай домой, входи на сайт и копируй...
    - Да я ссылку запишу... Слушай, а как там в эту систему вопрос задать? Вообще, как она работает?
    - Так тут же, на сайте, все есть. А вообще, можешь по почте пустое письмо загнать на mailto:reply.infoexpert@soobcha.ru, и получишь всю необходимую инфу. А вообще, ты лучше в следующий раз с вопросами не ко мне, а туда. Может, я и отвечу там.
    - А не проше тебе здесь ответить?
    - Э-э-э... Там я баллы зарабатываю...
    - А это еще зачем?
    - Ладно, мотай. Дома почитаешь, все о них узнаешь. У меня тут халтурка... Давай, пока.
    - Пока. А как ты экспертом там зарегился?
    - Иди, иди! Инфу читай...

    наверх


    Новости сайта VB Студия

    • 8 декабря 2001 года - Один новый контрол. Он позволяет преобразовать сумму в пропись.
      В разделе Юмор добавлен новый рассказ.
    • 7 декабря 2001 года - Добавил 4 примера. Один копирует в буфер обмена изображение формы. Второй сохраняет изображение формы в bmp файл. Третий отображает список всех подпапок в папке. А четвёртый пример - пример использования API-функций SetCursorPos и ScreenToClient.
    • 3 декабря 2001 года - В раздел Контролы выложил контрол для модифицирования менюшек.
      Пополнение в разделе Юмор.
    • 30 ноября 2001 года - В разделе Утилиты появилась новая версия программы Crimson Help.

      Хочу сообщить ПРЕпреятнейшее известие!

      После продолжительного и напряженного труда над собой, первый on-line журнал о Visual Basic - “VB Мания” вновь открывает свои страницы. Мы изменились, мы повзрослели и созрели для настоящей качественной работы.

      Изменилось буквально все: дизайн, появились новые авторы, новые руководители, новые потрясные статьи, новые классные рубрики, новые сервисы (Моя мания - особенно интересная вещь, обратите внимание), новый адрес - http://www.vbmania.ru/ и многое многое другое, но мы не забыли и старое, самое лучшее осталось от прежнего сайта: новости с различных сайтах о VB, наша рассылка, поисковик по VB сайтам, форум.

      Мы были бы благодарны Вам за размещение этой информации в новостном потоке Вашего интернет-ресурса. Мы так же приглашаем ведущих сайтов к сотрудничеству, которое, как мы надеемся, будет всем нам только полезно.

      Заходите, смотрите, читайте мы всегда Вам рады.
      http://www.vbmania.ru/ - Первый on-line журнал о VB

    • 28 ноября 2001 года - Выложил новые примеры.
      Открыт новый раздел Юмор. В нём расположены анекдоты и юмористические рассказы на компьютерную тематику.


    наверх


    Новости сайта VB Line

       10 декабря 2001 г. Сегодня всего одно обновление от Беляева Данилы контрол, эмулирующий работу обычного списка. Проект интересен чисто с технической точки зрения. Посмотрите. Теперь о некотором расширении сайта. Игорь прислал предложение создать новый раздел сайта ЖЗП (Жизнь Замечательных Программистов), в котором каждый сможет рассказать о себе. Пишите свою историю, как работаете, чем занимаетесь и т.д. Можно присылать истории своих друзей.
       02 декабря 2001 г. Зима пришла, у нас снегу уже море... Итак, обновления, начнем пожалуй с раздела  VB хитрости, там работа Игоря Малиновского, она касается тех, кто хочет устанавливать новые шрифты в систему, в общем, их надо не просто копировать в специальную папку, но и регистрировать, хитрость публикуется с примером. Stas(Sheff) Vorobiov прислал новый пример, и он очень интересный, пример показывает как манипулировать окнами в системе: закрывать, менять заголовки, рисовать на них и т.д. Ну и на закуску пример от Дещенко Дмитрия по поводу Alpha Blending. Да, чуть не забыл, Alex Murygin прислал новый код для совета про кнопку закрытия окна. Он пишет, что его код работает более корректно
       24 ноября 2001 г. Вы уже заметили небольшое изменение дизайна сайта? Так лучше? Предложения и замечания присылайте мне shatrykin@mail.ru. В разделе Примеры положил интересную работу Беляева Данилы, программа выводит список всех запущенных программ и может их "убивать". Там же, очень интересная DLL-ка с примером для работы с LPT портами. И еще, нашел в сети очень забавный пример: игра типа морского боя, принцип простой, плывет корабль, а Вы его ракетами... в общем играл я в нее и время кончилось, поэтому и обновлений маловато.
       12 ноября 2001 г. Решил, что Вам будет интересно узнать, кто сюда ходит и какова аудитория сайта. Все данные оформил в читаемом виде и положил сюда. Смотрите, читайте и изучайте. Конечно, немного, но все же статистика.


    наверх


    Новости сайта VBMania

    • 27.11 - Наконец-то, после долгих дней и бессонных ночей это свершилось! Сайт объявляется открытым! Непременно прочитайте первый номер нашего журнала. Оцените наши дополнительные проекты. И конечно мы ждем ваших откликов в гостевой книге и по почте.
    • 01.12 - Произошло несколько косметических улучшений, касающихся исключительно удобства работы с сайтом. Во-первых, можно видеть количество записей обсуждения новостей на главной странице; а во-вторых чуточку подправились директории.
      Оценяйте!
    • 02.12 - Наконец-то исправлена ошибка в Моей Мании, которая проявлялась исключительно в Windows XP. Теперь все работает как надо!


    наверх


    Набор телефонного номера

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

    PhoneNumber$ = "(123) 456-7890"

    Open "COM2" For Output As #1 'or COM1

        Print #1, "ATDT" & PhoneNumber$ & Chr$(13)

    Close #1

    Как же всё просто? Да, действительно супер-простое решение!

    наверх


    Поиск строки в полях списков ListBox и ComboBox

    Для поиска строки в полях списков ListBox и ComboBox, воспользуйтесь следующими решениями. Первое.  Поместите следующие константы и функции в модуль.

    Const WM_USER = &H400

    Const CB_FINDSTRING = (WM_USER + 12)

    Const CB_FINDSTRINGEXACT = (WM_USER + 24)

    Const CB_SHOWDROPDOWN = (WM_USER + 15)

    Const CB_GETDROPPEDSTATE = (WM_USER + 23)

    Declare Function SendMessageBynum Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

    Declare Function SendMessageByString Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long

    Поместите следующий код в событие keypress вашего combo box:

    Dim flgIsdropped As Long

    Dim lngRetval As Long

    If KeyAscii = 13 Then

        combobox.ListIndex = SendMessageByString(combobox.hWnd, CB_FINDSTRING, 0,combobox.Text)

    Exit Sub

    End If

    flgIsdropped = SendMessageByNum(combobox.hWnd, CB_GETDROPPEDSTATE, 0, 0)

    If Not flgIsdropped Then

        lngRetval = SendMessageByNum(combobox.hWnd, CB_SHOWDROPDOWN, True, 0)

    End If

    Поместите следующий код в событие lostfocus вашего combo box:

    combobox.ListIndex = SendMessageByString(combobox.hWnd, CB_FINDSTRING, 0, combobox.Text)

        Эти проверки в программе необходимы, чтобы определить, был ли список уже раскрыт или это нужно еще сделать. Как только список раскрыт, Windows будет сама "листать" его, чтобы искать строку, которая соответствует тому, что ввел пользователь. Недостаток в использовании этого метода - то, что даже при том, что Windows показывает строку, которая была найдена, я не знаю, как заставить Windows её выделить.

    Другой способ должен использовать текстовое поле и список. Поместите следующий код в событие change текстового поля:

    listbox.ListIndex = SendMessageByString(listbox.hWnd, LB_FINDSTRING, 0, Text1.Text)

    (LB_FINDSTRING is WM_USER+16)

    Если Вы хотите найти точное соответствие, то константа:

    LB_FINDSTRINGEXACT (WM_USER+35)

    наверх


    Как изменить системное меню

    Вы, наверняка видели окна, у которых нет в системном меню пункта "Закрыть"? Вы хотите сделать такое же. Нет ничего проще.

    Нам потребуется несколько функций API и констант.

    Public Declare Function GetSystemMenu Lib "user32" Alias "GetSystemMenu" (ByVal hwnd As Long, ByVal bRevert As Long) As Long

    Public Declare Function RemoveMenu Lib "user32" Alias "RemoveMenu" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long

    Public Const MF_BYPOSITION = &H400&

    И три строки кода.

    SystemMenu = GetSystemMenu (hWnd, 0) 'получаем описатель меню

    Res = RemoveMenu(SystemMenu,6, MF_BYPOSITION) 'удаляем разделительную линию

    Res = RemoveMenu(SystemMenu,6, MF_BYPOSITION) 'удаляем меню

    Вот и всё. Теперь Ваше окно из системного меню закрыть невозможно!



    наверх


    Повторный запуск программы - тактика поведения

    Что делать, если пользователь запускает ещё одну копию Вашей программы? Есть два пути. Первый, проверить это с помощью App.PrevInstance и завершить работу программы.

    Sub Form_Load () 
        If App.PrevInstance Then 
            MsgBox "Программа уже работает! 
            End 
        End If 
    End Sub

        Второй путь посложнее. Нужно вместо завершения программы передать фокус на предыдущую копию! Как же это сделать? Здесь тоже есть два пути, первый - использование AppActivate, которая может активизировать приложение по его заголовку:

    Sub Form_Load () 
        Dim sTitle As String
        If App.PrevInstance Then
            sTitle = Me.Caption
            Me.Caption = Hex$(Me.hWnd)
            AppActivate sTitle
            End
        End If
    End Sub

       В этом коде мы определяем свой заголовок, а потом активизируем предыдущую копию программы , изменив свой заголовок на любой другой. Но... опять но... а Вы уверены, что у второй копии заголовок тот же, что и у второй? Вспомните Microsoft Word, да и вообще, по рекомендациям Microsoft каждая программа должна содержать в своем заголовке имя файла, с которым ведется работа! Что же делать? Есть методы и на этот счет, но о них в другой раз.



    наверх


    Как скрыть все окошки одного из проектов в среде разработки

    Это самый маленький совет. Если Вы работаете сразу с несколькими проектами в среде разработки Visual Basic, то можно немножко запутаться в огромной куче открытых окошек. Щелкните дважды мышкой по ненужному проекту в Project Explorer. Классно.

    наверх


    Книги

    Visual Basic 6 Учебный курс

       Книга написана известным специалистом в области программирования на языке Visual Basic 6. Систематическое изложение в виде 19 последовательных уроков позволяет быстро изучить материал как начинающим программистам, так и тем, кто имеет определенный опыт программирования, но не знаком с данным продуктом. Желающие узнать о новинках шестой версии найдут в книге ответы на свои вопросы.
       Вы научитесь создавать программы для широкого круга задач, начиная от разработки интерфейса и простейших систем управления базами данных и заканчивая интеграцией с последними достижениями в области Интернет-технологий - Active X и Windows API. Каждый урок дополнен примерами исходного кода, которые можно использовать как готовые работающие программы.


    Браун С., "Питер" - 1999, 576 стр.
    Стоимость: 119,62 р.
    Формат книги: 70х100/16
    Переплет: нет данных

    Visual Basic 6. Мастер. Руководство для профессионалов

       Язык программирования Visual Basic - мощный инструмент разработки приложений для 32-разрядных систем Windows 95 и Windows NT. В книге рассматриваются как фундаментальные понятия и темы: от установки продукта на компьютер пользователя и описания интегрированной среды разработки до изложения основ техники программирования на Visual Basic, так и сложные вопросы, адресованные профессиональным программистам: создание интерфейса пользователя, применение стандартных элементов управления, в том числе и для работы с базами данных, программирование компонентов ActiveX, описание технологии OLE drag-and-drop, объектная модель FSO, функции работы с файлами, отладка и оптимизация программ, локализация и распространение готовых приложений.


    Нет данных по автору(ам), "Нет данных по издательству" - 1998, 992 стр.
    Стоимость: 112,48 р.
    Тираж: 3000 экз. Формат книги: 70х100/16
    Переплет: мягкий

    Visual Basic 6. Специальный справочник

       Главная цель этого справочника - научить читателя использовать инструменты и средства Visual Basic, позволяющие значительно облегчить и ускорить процесс создания приложений. Здесь вы найдете описание элементов языка, библиотечных функций и SQL-операторов. Особое внимание уделено различным мастерам, предназначенным для решения стандартных задач. Весь справочный материал в книге разбит на главы, в каждой из которых вы найдете информацию по созданию приложения определенной направленности. Разделы в главе содержат пошаговое описание операций, которые нужно выполнить для решения поставленной задачи, синтаксис необходимых операторов, а также подробно разобранные примеры. Предлагаемый справочник будет полезен не только пользователям, активно работающим с Visual Basic 6, но и начинающим программистам, желающим перейти к профессиональной разработке приложений с наименьшими затратами времени на изучение новой среды программирования.


    Б. Карпов, "Питер" - 2000, 416 стр.
    Стоимость: 70,78 р.
    Формат книги: 84х108/32
    Переплет: нет данных



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

    наверх


    Анонсы эхо-конференций СообЧа

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

       
    Как позвонить на телефон в другом городе через интернет? Какой программой просмотреть файлы *.wmv? Отчего текст печатается закорючками? В этой группе вы сможете задать любые интересующие вас вопросы. Чем сможем — поможем!

    Подписаться

    Железо

       
    Среди людей, имеющих компьютеры, я еще не встречал таких, которые не задавали бы следующие вопросы: «Как сделать, чтобы мой компьютер работал быстрее? Нет, еще быстрее… И еще… А ничего не сгорит?», «Хочу поменять материнку. Какую лучше взять? Кто может поделиться опытом?», и т.д. Если вас мучают такие вопросы — то вам сюда. Группа предназначена для обсуждения компьютерного железа, в том числе апгрейда (модернизации) и оверклокинга (разгона).

    Подписаться

    Windows

       
    Windows, как много в этом слове… Группа, предназначенная для решения любых проблем и вопросов, возникающих при работе с операционными системами семейства MS Windows.

    Подписаться

    Советы от сНежного

       
    Маленькие полезные советы и обмен скрытыми и недокументированными фичами, фишками, фенечками и прибамбасами в ОС, программах и железе.

    Подписаться

    Программирование на Delphi и Turbo Pascal

       
    Конференция по программированию на Delphi и Turbo Pascal, а также Win Api, решение вопросов возникающих при программировании на этих языках. Приглашаются все желающие от новичков до профессионалов!

    Подписаться


    наверх


    Доска объявлений

       Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

       Объявляется конкурс на лучщий баннер для сайта VB Студия. Приз за лучший баннер - 5000 показов баннерообменной сети TLE. Вопросы и предложения по этому адресу

    наверх



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

    BalloonMessage for MS Agent

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

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


    наверх


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

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

    Вопросы:


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

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

       Кто-нибудь знает, где взять full retail для janus gridex 2000?


    Автор вопроса: Павел

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

       Есть база данных в mdb формате. На форме в текстовом поле необходимо при вводе числа (или при помещении его из базы) отделять по три знака. Не 1234567890, а 1 234 567 890 . И как в текстовое поле ставить шаблон? То есть, что бы было __/__/__ - для даты.


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

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

       Kak otlovit'sobitie , kogdakrutyat koleseko na mishke(srednyaya knopka)?


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

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

       я разаработакл кнопки и иконки для своего приложения. они у меня в гифе. в какой программе их пожно сохранить как .ICO или .CUR?


    Автор вопроса: Мунгалов АВ

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

       Не могу толком разобраться с построением отчетов мне нужно вот такую штуку. вывести данные в несколько столбцов причем заранее кол-во столбцов неизвестно. Подробней: Есть расписание уроков по дням допустим на 20 групп. они выводятся так,одна группа один столбец. при выводе пользователь отмечает какие группы нужно выводить на принтер, а какие нет. Я пробовал но выводятся все сразу группы. как на лету управлять непонятно ?!


    Автор вопроса: Владимир

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

       Как програмно осуществить снятие и востановление пароля на запароленый проэкт в VBA для приложений? (пароль известен)




    Ответы:


    Вопрос:

       Как с помощью VB сфотопрафировать экран(как PrintScreen)?

    Ответ:

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

    Ответ на Этот и другие вопросы есть в 650 примеров на VBStudio (http://www.vb-studio.boom.ru/programs/vbhelperex.htm)
    Очень полезные примеры!!!



    Вопрос:

       Если есть у кого-нибудь пример как записывать и считывать данные из ячеек Excel-я в VB не в VBA, пришлите, плиз!!

    Ответ:

    Автор ответа: Мунгалов АВ

    Вот пример как можно работать с Exelem
    Вставляем этот код в обработку какой-нибудь кнопки.

    Dim EXL As Object
    Dim STR As String
    'создаем объект
    Set EXL = CreateObject("Excel.Sheet")
    Set EXL = EXL.Application.ActiveWorkbook.ActiveSheet

    'Заносим данные в ячейки
    EXL.Range("A1").Value = "Пробный"
    EXL.Range("B1").Value = "Файл"
    EXL.Range("C1").Value = "по"
    EXL.Range("D1").Value = "Работе"
    EXL.Range("E1").Value = "с Exelem"

    'Изменяем шрифт и.т.д.
    EXL.Range("A1").Font.Bold = True
    EXL.Range("A1").Font.Size = 16

    'Берем данные из ячеек
    STR = EXL.Range("A1").Value & EXL.Range("B1").Value & _
    EXL.Range("C1").Value & EXL.Range("D1").Value & _
    EXL.Range("E1").Value

    'сохраняем Excel документ на диске
    On Error Resume Next
    EXL.SaveAs App.Path & "\Proba.xls"
    'удаляем объект из памяти
    Set EXL = Nothing


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

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

    наверх


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

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