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


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

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.



Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.

Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • MDesign
  • IgorykSoft
  • DanSoft
  • Господа!!! читайте 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 можно найти здесь.

    наверх


    Эксперт

    - Привет, Серый.
    - Угу, привет. Ты проходи, садись, я щас, с функцией тут разберусь...
    - Да я на момент. Вопросец имеется.
    - Вопросец, вопросец... Так, тут переменная не объявлена... Вопросец... С вопросами в систему, к экспертам... А тут точку не поставил! Вот она где, соб-бака!!
    - Ты че, какая система? Ты о чем?
    - О! Все, работает... Чего ты говоришь?
    - Ты про каких это экспертов тут заикаешься?
    - А-а. А ты что, первый раз слышишь, что ли? Ты на СообЧа бывал?
    - Где?!!
    - Да вот, гляди. Щас соединимся... Во! 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, и получишь всю необходимую инфу. А вообще, ты лучше в следующий раз с вопросами не ко мне, а туда. Может, я и отвечу там.
    - А не проше тебе здесь ответить?
    - Э-э-э... Там я баллы зарабатываю...
    - А это еще зачем?
    - Ладно, мотай. Дома почитаешь, все о них узнаешь. У меня тут халтурка... Давай, пока.
    - Пока. А как ты экспертом там зарегился?
    - Иди, иди! Инфу читай...

    наверх


    Какой аналог функций "Trunc" и "shl" (из Delphi) в VB?

    Вопрос:

    Перевожу небольшой алгоритм из делфи в VB. Меня интересует что такое "Trunc" и "shl" и есть ли аналоги этих операторов в VB.

    Ответ:

    shl - это битовая функция - означает сдвиг влево - в VB прямого аналога нет, но можно заменить на

    and 2^номер бита

    Функция выглядит примерно так:

    Function shl(ByVal Value As Byte, ByVal Shift As Byte) As Byte
         Dim i As Byte, Mask As Byte
         For i = 1 To Shift
             Mask = Mask + 2 ^ (8 - i)
             'со знаковым типом здесь возникает переполнение
         Next
         shl = ((Value And (Not Mask)) * 2 ^ Shift) And &HFF
    End Function

    Function shr(ByVal Value As Byte, ByVal Shift As Byte) As Byte
         Dim i As Byte, Mask As Byte
         For i = 0 To Shift
             Mask = Mask + 2 ^ (7 - i)
         Next
         Mask = (Value And Mask) / (2 ^ Shift)
         If Mask Mod 2 = 0 And Mask <> 0 Then Mask =Mask - 1
         shr = Mask
    End Function

        Алексей Вишневский

    наверх


    Как вывести список файлов в указанной папке с помощью FSO?

    Вопрос:

    Как вывести список файлов в указанной папке с помощью FSO?

    Ответ:

    Dim fs, fold, item
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set fold = fs.getfolder("c:\winnt\")
    For Each item In fold.Files
         msgbox item.Name
    Next

        Paponov Igor

    наверх


    К какому интервалу приналежат коды цифр?

    Вопрос:

    Как сделать проверку на предмет нахождения цифр в строке, там как то в кодах. Напомните эти интервалы.

    Ответ:

    С &h30 по &h39
    или по десятиричной системе - с 48 по 57
        Алексей Вишневский

    Если еще раз возникнет такой вопрос, напиши в окне Immediate такое:
    ? asc("1")
    И там напишется код символа "1". Это - очень удобно.

        Артем Кривокрисенко

    наверх


    Как соединить точки линиями?

    Вопрос:

    На форме с помощью цикла появляются точки. Так-вот, как мне соединить эти точки линиями?

    Ответ:

    Разверни PictureBox по форме и в ней Line (x1,y1) - (x2,y2) где первая это новая координаты первой точки, а вторая пара - предыдущей точки.

        Kvark

    наверх


    Как обработать обращение к пустому дисководу?

    Вопрос:

    Как сделать так, чтобы при обращении к пустому флопику (А:\), выдовалось, стандартное сообщение, что диска нет..., или, если можно, то чтобы вообще ничего не выдовалось?

    Ответ:

    On Error Resume Next

    Поставишь перед обращением к флопику и никаких ошибок!

        Забаев Сергей

    On error goto ErrH
    ToDisk:
    Тут обратиться к диску
    on error goto o

    Exit sub

    NoDisk:
    Тут сделать все, что надо сделать, если нет диска.
    exit sub

    errh:
    if msgbox ("НЕТ ДИСКЕТЫ!!! ВСТАВЬТЕ ДИСКЕТУ!!!",vbCritical _
               +vbRetryCancel) = vbRetry then
               goto ToDisk
    else
         goto NoDisk
    end if
    end sub

        Артем Кривокрисенко

    наверх


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

    BalloonMessage for MS Agent

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

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

    наверх


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

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

    Вопросы:


    Автор вопроса: Laguna Ukraine

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

       Если у формы нет границ (то есть форма у меня представлена графически, в том числе и заголовок формы), как сделать так, чтобы отображалась иконка на панели задач (все знают, что если окно без границ у такого приложения не будет отображаться иконка, которая задана свойству Icon). Подскажите, если не трудно, решение проблемы (но только чтобы работало под всеми версиями ОС Windows).


    Автор вопроса: Laguna Ukraine

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

       Некоторые сайты проверяют тип браузера пользователя. А если доступ к сайту происходит не из браузера как можно "обмануть" такой сайт (другими словами, как ему послать сведения, что используется браузер, например IE)? Слышал что есть такая вещь как "User Agent", которая по запросу сайта отправляет ему строку с данными о якобы используемом бразузере. Но как и при помощи чего использовать этот "User Agent" из своей программы? Поподробнее, если можно и небольшой примерчик.


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

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

       Как на VB6 сделать отправку письма без SMTP (т.е. пакетами)?


    Автор вопроса: Дмитрий

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

           Мне необходимо программо перейти на другую вкладку контрола MultiPage. Я смотрел справку, но ничего не нашел.


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

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

       Есть несколько картинок (BMP) в ресурсах приложения. Как сделать, чтобы при загрузке формы в PictureBox произвольно (!) отображалась одна из этих картинок?


    Автор вопроса: Борис

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

       Где можно найти описание DirectX для чайников и применение в Visual Basic.


    Автор вопроса: Андрей

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

       Кто подскажет, что за файлы баз данных файлы .tps? И самое главное, как с ними работать под VB 6?


    Автор вопроса: Дмитрий

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

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


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

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

       А как можно программно задать в MExcel двухстороннюю печать? (типа распечатать с одной стороны страницы, а потом с обратной).


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

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

       Как перейти в полноэкранный режим в DirectX 8?


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

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

       Где можно достать инфу о DirectX 8 для VB (особенно о Direct3D)?


    Автор вопроса: badDRAGON bad

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

       Как с моей программы можно "нажимать кнопки" на другой программе?


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

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

       У кого-нибудь есть готовый пример, который меняет не только разрешение экрана, но и частоту обновления? Любые варианты решения приемлемы.


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

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

       Создаю контрол (что-то типа анимированного GIFa). Постоянно мерцает белая полоса. Как от неё избавиться?


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

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

       Делаю проект с возможностью сворачивания в SystemTray (с помощью API или через контрол). В среде разработки все работает прекрасно. После компиляции - тоже. Но до момента добавления файла program.exe.manifest. Откомпилированная программа не запускается, выдавая при этом только звуковой сигнал об ошибке и никаких вияуальных сообщений. Система-WinXP бея сервис-паков. Хотя на Win2003 server все работает очень замечательно.


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

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

       Как можно средствами "Drag & Drop" осуществить перенос файлов из внешних программ (таких, как файловые менеджеры) в собственный проект на VB. (Как это делает WinAmp)?




    Ответы:


    Вопрос:

       Можно ли средствами VB сделать программу бея окна (формы)? Только не чтоб окно было невидимым, а чтоб его ваще не было.

    Ответ:

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

        Есть много вариантов создания. Первый это создать Standart EXE, в нем удалить форму(ы), создать модуль (.bas файл), в котором создаешь входную точку, то бишь функция Sub Main() и в ней начинаешь кодить. Потом установить в Project -> Properties -> Startup Object "Sub Main", что в принципе уже будет установлено.
        Ну а другие варианты - это создание не *EXE проекта, ха...



    Ответ:

    Автор ответа: Виталик

        Конечно можно сделать, чтобы окна совсем не было. В менеджере проекта правый клик по имени формы и выбрать "Удалить". В модуле написать

    public Sub Main()
    end sub

        Затем в том же меню проекта кликнуть правой по имени проекта и выбрать "Параметры". Там указать Стартовый объект Sub Main(). И всё. Пишешь свои процедуры, функции в модуле.


    Вопрос:

       Какая функция на VB переводит строку из OEM/DOS в Win кодировку? Есть ли функции, типа Chr и Asc, воявращающие значения в "досовской" кодировке?

    Ответ:

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

    Есть две API-функции, предназначенные для преобразования кодировок. Когда-то в рассылке был следующий код, который я использовал в нескольких своих программах. В принципе, работает...

    Option Explicit

    Private Declare Function CharToOemBuff _
    Lib "user32" _
    Alias "CharToOemBuffA" (ByVal lpszSrc As String, _
                                              ByVal lpszDst As String, _
                                              ByVal cchDstLength As Long _
    ) As Long

    Private Declare Function OemToCharBuff _
    Lib "user32" _
    Alias "OemToCharBuffA" (ByVal lpszSrc As String, _
                                              ByVal lpszDst As String, _
                                              ByVal cchDstLength As Long _
    ) As Long

    ' from DOS into WIN
    Public Function ToAnsi(s As String) As String
           Dim Buffer As String
           Buffer = Space(Len(s) + 1)
           OemToCharBuff s, Buffer, Len(s)
           ToAnsi = Left(Buffer, Len(s))
    End Function

    ' from WIN into DOS
    Public Function ToOEM(s As String) As String
           Dim Buffer As String
           Buffer = Space(Len(s) + 1)
           CharToOemBuff s, Buffer, Len(s)
           ToOEM = Left(Buffer, Len(s))
    End Function


    Вопрос:

       Подскажите как програмно получить строковый параметр реестра в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mailto\shell\open\command. Там значение по умолчанию. Если кто знает, то напишите, как записывать и читать из реестра.

    Ответ:

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

    По моему это самый простой способ записи в реестр

    Чтение с реестра

    Set Reg = CreateObject("WScript.Shell")
    df = Reg.RegRead("(твой ключ)")

    Запись в реестр

    Set Reg = CreateObject("WScript.Shell")
    Reg.Regwrite "(твой ключ)","(записываемое значение)"

    Удаление

    Set Reg = CreateObject("WScript.Shell")
    Reg.RegDelete "твой ключ"



    Ответ:

    Автор ответа: Виталик

    Самый простой способ записи и чтение реестра такой:

    Set reg = CreateObject("WScript.Shell")
    'запись

    reg.RegWrite
    "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mailto\shell\open\command\(По
    умолчанию)", Text2 Dim
    'чтение
    Val as String
    Val = reg.RegRead
    "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mailto\shell\open\command\(По
    умолчанию)"
    Msgbox Val , ,"Значение реестра"
    'удаление
    reg.RegDelete
    "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mailto\shell\open\command\(По
    умолчанию)"
    В каждо событии клик или лоад нужно писать Set reg =
    CreateObject("WScript.Shell")




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

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

    наверх


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

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