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

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


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

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


VBNet VBMania
Ссылки:

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

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

       Сорри, что меня долго не было: был на сессии...
    Читайте!


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




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

    Дата: 02.06.2004 04:56 | Раздел: Статьи по VB | Автор: Шатохина Н.А.

    Что нового в WSE 2.0? - Расширения Web-сервисов для Microsoft .NET версии 2.0 включают ряд расширений по сравнению с более ранними версиями WSE, предназначенных для упрощения использования политики безопасности, установления продолжительных безопасных сеансов обмена сообщениями.

    Дата: 28.05.2004 19:29 | Раздел: Примеры кода | Автор: Kodo

    MAILNow - Простой e-mail клиент в возможностью получения и отправки почты. Правда, еще немного недоделанный, но уже вполне рабочий и может послужить основой для более серьезных проектов :)

    Дата: 28.05.2004 16:47 | Раздел: Примеры кода | Автор: sne

    ListBox - Контрол (ctl) ListBox - Различные Border - Tag к каждому эллементу списка - Выравнивание по лев., прав. краю и по середине - Возможность отображения иконки у каждого эллемента списка - Фоновая картинка (норм. растянуто, размножено)



    Последние 20 тем форума на VBNet.Ru:

    00:13 / 2 июн.  иконка файла | Хитов: 7 |  Ответов: 2
    00:01 / 2 июн.  Не работает BorderStyle!!! Help!!!!! | Хитов: 3 |  Ответов: 1
    21:15 / 1 июн.  Как прицепить файл к письму | Хитов: 4 |  Ответов: 0
    20:25 / 1 июн.  Про биты | Хитов: 11 |  Ответов: 1
    19:04 / 1 июн.  Срочно помогите! | Хитов: 34 |  Ответов: 5
    18:09 / 1 июн.  Однородные системы уравнений | Хитов: 9 |  Ответов: 1
    18:04 / 1 июн.  В чём смысл жизни??? | Хитов: 21 |  Ответов: 3
    17:25 / 1 июн.  VB.NET for PocketPC2003 | Хитов: 13 |  Ответов: 2
    16:58 / 1 июн.  PB +) PureBasic | Хитов: 13 |  Ответов: 0
    16:28 / 1 июн.  Разбить , собрать | Хитов: 30 |  Ответов: 4
    15:22 / 1 июн.  Добавить строку в текстовый файл | Хитов: 12 |  Ответов: 2
    14:16 / 1 июн.  Распаковка и запуск программы | Хитов: 44 |  Ответов: 2
    14:11 / 1 июн.  Загрузка програмы на другом ПК в LANе | Хитов: 15 |  Ответов: 1
    13:45 / 1 июн.  Быстрая запись в файл | Хитов: 88 |  Ответов: 13
    10:46 / 1 июн.  Visual Basic 6.0  | Хитов: 51 |  Ответов: 4
    10:44 / 1 июн.  изображение  | Хитов: 37 |  Ответов: 4
    10:13 / 1 июн.  Почему VB6 Нехочет подгружать mdb из Access2000  | Хитов: 25 |  Ответов: 3
    08:25 / 1 июн.  Dell Inspiron 1100 | Хитов: 17 |  Ответов: 2
    08:15 / 1 июн.  преоброзование строк | Хитов: 39 |  Ответов: 4
    04:29 / 1 июн.  Все еще маюсь с кодировкой в RTB | Хитов: 15 |  Ответов: 0


    Последние поступления в Библиотеку кодов:



    наверх


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

    • Microsoft Developer Network (MSDN) для пользователей Visual Studio .NET
      Группа разработчиков MSDN объявляет о начале действия предложения MSDN для пользователей Microsoft Visual Studio .NET. Корпорация Майкрософт предлагает клиентам, обладающим лицензиями на Microsoft Visual Studio .NET 2002 или Microsoft Visual Studio .Net 2003 перейти от Microsoft Visual Studio .NET к подписке на MSDN.
    • Мобилизация разработчиков!
      Совместная акция Microsoft, Motorola и партнеров по продвижению средств разработки Microsoft в России для разработчиков. Приобретая с 1 марта по 30 июня коробочную версию MSDN Universal у партнеров Microsoft — участников акции вы получаете в подарок смартфон Motorola MPx200 на базе Microsoft Smart Phone 2002.
    • Конкурс для разработчиков завершен
      Главный приз конкурса для разработчиков, прошедшего 14 мая 2004 года и приуроченного к выходу русской версии стандартной редакции Visual Basic .NET 2003, — автомобиль Hyundai Getz — получил Сергей Ильин из Москвы, который правильно ответил на 18 вопросов.
    • Microsoft представляет новое решение для локализации приложений
      Microsoft представляет новое решение для локализации приложений: Microsoft Application Translator. Графический интерфейс ваших приложений может быть на любом из языков, которые имеются в Windows XP или Windows Server 2003.


    наверх


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

    • 02.06.2004 - Встреча Kiev .NET User Group
      В учебном центре Квазар-Микро будет проводиться встреча разработчиков на платформе .NET. Точная дата 3 июня в 19.00 Встреча посвящена стратегическим вопросам развития платформы Microsoft.
    • 26.05.2004 - Встреча UNETA в Харькове
      4 июня в 18:00 в городе Харькове состоится очередная встреча сообщества.
    • 25.05.2004 - MSDN Flash 17.05.2004
      Важнейшие материалы, новые веб-ресурсы, продукты и технологии наших партнеров, веб-презентации, общение в режиме реального времени, мероприятия для разработчиков.


    Новые статьи:



    наверх


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

    Новые статьи:



    Новые примеры:



    наверх


    Один момент из жизни форума: Что значит ByVal и ByRef?

    Адерес темы: http://vbnet.ru/forum/show.asp?id=44702

    Вопрос:
    Автор вопроса: RomMario

       У мня в книге написано, что ByVal это передача параметра по значению, а ByRef по ссылке, и тут же приводится пример где при передаче параметра ByVal передается адрес: VarPtr(i) и все работает, так почему ByVal называет по значению, ну и наоборот?


    Ответы:

    Автор: sne
       ByRef (By Reference - по ссылке)
       ByVal (By Value - по значению)

    ' mov eax, [esp+4]
    ' mov ecx, [eax]
    ' add ecx, 1
    Private Sub a(l As Long)
    l = l + 1
    End Sub

    ' mov eax, [esp+4]
    ' add eax, 1
    Private Sub b(ByVal l As Long)
    l = l + 1
    End Sub

       Как можно видеть передача параметра ByRef, заносит в регистр ecx (в данном случае) ссылку на реальное значение... Это лишняя операция, и именно по этому существует мнение что передача по значению осуществляется быстрее... хотя одна операция с регистрами много код не замедлит ;) (imho)

    Автор: Sharp
       > заносит в регистр ecx (в данном случае) ссылку на реальное значение...
       Ты уверен? Обычно ведь при передаче по ссылке в стек кладется 4-байтовый адрес структуры или Unicode-строки или числа в памяти, а при передаче по значению само число кладется в стек, либо 4-байтовый адрес строки, скопированной как ASCIIZ... Сомневаюсь, что ByRef передает адрес через ECX, ведь API их вполне нормально принимают...

    Автор: sne
       Sharp, ты наверное меня несколько не понял, или я неясно выразился ;)
       Это не ByRef заносит/передает, а при использовании ByRef используется еще один регистр и совершается еще одна операция...
       Это я к тому, что если есть возможность, то желательно использовать ByVal...
       Т.е. при ByRef в стек положили адрес, по этому адресу отокопали число и уже только тогда с ним можно работать (тут прибавляется 1).
       А при ByVal, в стеке уже все готовенькое, берем и используем :)))
       А про есх, с тем же успехом тут можно было написать mov eax, [eax]...
       PS Это отдизасемблированный код... и я не намерен сомневаться в его истинности :)))
       PPS Возможно я и не прав... но по-моему все правда :D

    Автор: sne
       А, понял к чему это ты... это я не туда фразу ткнул :)
       Сейчас попытаюсь исправиться:
       %Как можно видеть передача параметра ByRef, заносит в регистр ecx (в данном случае) реальное значение...
    ------------------------------------------
       Суть в чем, п++ри использовании ByRef передается адрес, чтобы работать с реальным значением, нужно взять его по этому переданному в функцию адресу. Для этого VB сделал mov eсx, [eax], можно было бы записать mov eax, [eax], но это не суть важно...
       Я к тому, что, при передаче по ссылке, делается одна лишняя, по сравнению с передачей по значению, операция... вот и все...

    Автор: LamerOnLine
       Многие API функции требуют указатель на какую либо структуру в памяти, но в декларации указыается ByVal, то есть передача по значению.
       VarPtr возвращает адрес этой структуры. Его ты и передаешь ПО ЗНАЧЕНИЮ.
       Это не совсем логично, но, к сожалению, API функции не пишутся под VB. Это особенно актуально, когда ссылка на переменную или объект находится в структуре. Тут ByRef неприменим.

    Автор: digitron
       To sne:
       >>Это я к тому, что если есть возможность, то желательно использовать ByVal...
       посмотри: http://www.mvps.org/vb/hardcore/html/anatomyofbasicprocedurecall.htm

    Автор: sne
       :) Ну строку, Double, Single, Variant оно ясно что по ссылке будет быстрее :) А вот с Long - остается только гадать, почему такая несправведливость...



    наверх


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

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

    Вопросы:


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

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

       Как програмно определить, запущен ли Explorer.exe?


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

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

       Спрашивал, как из VB выключить комп в ХР.
    Получил несколько ответов.
    Воспользовался нижнеприведённым.
    Автор пишет, что у него всё работает.
    У меня отрабатывает только EWX_LOGOFF и EWX_FORCE !!!
      
    Там ниже ещё приписали, мол, Читай MSDN!.
    Если не в тягость, пришлите кусочек того MSDN, с удовольствием прочту!.
      
    Ответ:
    Автор ответа: Белашин М.В.
    Разместите в модуле:

         Public Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, _
         ByVal dwReserved As Long) As Long

         Public Const EWX_LOGOFF = 0
         Public Const EWX_SHUTDOWN = 1
         Public Const EWX_REBOOT = 2
         Public Const EWX_FORCE = 4
      
    А это в коде:
         Dim s As Long

         'Так можно сделать Shut down
          s = ExitWindowsEx(EWX_SHUTDOWN, 0&)

         'Так можно сделать Log off
          s = ExitWindowsEx(EWX_LOGOFF, 0&)

         'А так Reboot
         s = ExitWindowsEx(EWX_REBOOT, 0&)

         У меня все работает!


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

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

       У меня есть помещеный файл *.exe в инете, вот мне надо на VB .NET указать путь к этому файлу и узнать версию этого файла (этот фаил написан на VB и указана версия 1.1.0) ...


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

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

       Как можно получить список всех файлов определенного типа (например jpg)на диске и занести их все в Listbox (с полным путем для каждого файла)?


    Автор вопроса: Каштанов Павел Владимирович

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

       Макрос в word или excel: как раз в 1 секунду запускать макрос, иначе, мне нужен таймер, как это сделать?


    Автор вопроса: Nessaja-Minsk

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

       Решил сделать “апдейт” своему Visual Basic 6.0 (не плющит меня .NET).
    Какие есть дополнения и обновления к Visual Basic 6.0?
    Какой SP последний, существует ли Visual Assist под VB6, что нужно поставить, чтобы использовать Flash MX из VB6. Какие новые библиотеки было бы неплохо поставить.
    Вообще, какие инструменты упрощают жизнь VB программисту.


    Автор вопроса: Nessaja-Minsk

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

       Как в VB6 создавать формы, стиля/дизайна Office XP (кнопки плоские, меню как закладки и т.д.)?


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

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

       Есть исходник работы с MSAccess, работаю впервые и вот в чем беда:
    В модуле прописываю:

          Public cn As adodb.connection
          Public rs As adodb.Recordset

          Sub main()
          Set cn = New adodb.Connect
          cn.connectionstring = "DSN=job;"
          cn.open
          Form1.Show
          End Sub

    Но при запуске выводит ошибку 'User-defined type not defined' по поводу строк cn As adodb.connection и rs As adodb.Recordset
    На компе, откуда списал исходник прога нормально работает. Может я чего-то упустил? И еще: при написании проги подключали какую-то библиотеку. Может кто подскажет какую?


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

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

       Ни кто на подскажет, как пользоваться Microsoft Comm Controll ' ом?
    Открываю порт модема, а дальше? Как набирать номер?


    Автор вопроса: Роман

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

       Каким обраяом можно загруяить изображение из PictureBox в массив и наоборот, без использования записи на диск?




    Ответы:


    Вопрос:

       Подскажите функцию, обратную Hex().

    Ответ:

    Автор ответа: Попов Дмитрий Вячеславович

    Если имеется в виду обратное преобразование HEX-числа из символьного представления Str в целое I (например), то:

    I = Val("&H" & Str)



    Ответ:

    Автор ответа: Сан Саныч

    MsgBox Val(&H345FF)



    Ответ:

    Автор ответа: Роман

    Option Explicit
    Public Function Dec(Hex As String) As Long
    'Переводит числа из основания 16 в основание 10
        Dim Counter As Integer
        Dim Value As Integer

        Do
        Counter = Counter + 1
        Select Case Mid$(Hex, Counter, 1)
           Case Is = "A"
              Value = 10
           Case Is = "B"
              Value = 11
           Case Is = "C"
              Value = 12
           Case Is = "D"
              Value = 13
           Case Is = "E"
              Value = 14
           Case Is = "F"
              Value = 15
           Case Else
              Value = Mid(Hex, Counter, 1)
        End Select
        Dec = Dec + Value * (16 ^ (Len(Hex) - Counter))
        Loop Until Counter = Len(Hex)
    End Function


    Вопрос:

       Как считывать данные из ячеек Excel?

    Ответ:

    Автор ответа: C...R...a...S...H

    Если писать макрос в Excel, то считать можно так

    debug.print cells(1,1)

    Если не макрос, то

    debug.print xx.cells(1,1) 'Где xx - обьект, связанный с Листом в Excel


    Вопрос:

       Как считать данные из Excel файла ( не открывая его )?

    Ответ:

    Автор ответа: Ivan V Soshnikov

    ODBC, например.
    Там, правда, свои грабли.
    И получить можно только данные - никакого форматирования и т.п.
    Если нужен пример кода - пишите, попробую найти.


    Вопрос:

       У меня есть файл (123.txt) в котором написан VB код, допустим MsgBox "Hello World!!!". Мне нужно чтобы программа выполняла этот код. Т.е. при нажатии на кнопку выполняется код из файла.

    Ответ:

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

    Так как Вы написали, сделать нельзя, поэтому есть два варианта, писать свой компилятор или же сделать так: если в текстовике нашли команду MsgBox то вызываем из кода программы процедуру, например, ShowMsg, в качестве параметра передаем текст, который спрятан в текстовике, например, в "" (на мой взгляд, самый простой и беспроблемный выход).


    Вопрос:

       Когда я с помощью элемента управления DriveListBox выбираю диск A (3.5), программа у меня выдает ошибку (только когда в нем нету дискеты) о том, что в устройстве отсутствует носитель, она закрывается. Как мне сделать, чтобы вместо ошибки он мне выдал сообщение "Вставьте дискету..." и можно было вернуться назад на исполнение программы?

    Ответ:

    Автор ответа: Максим

    on error goto nodisk
    .....you code.....
    exit sub
    nodisk:
    msgbox "Do disk"



    Ответ:

    Автор ответа: Роман

    В начале процедуры:

    On Error Goto Handler

    Затем создаешь метку:

    Handler:
    If Err.Number=(здесь пишешь код твоей ошибки, он появляется вместе с сообщением о ней) then
            answer=msgbox "Дай рубль","Прога",vbOkCancel
            if answer=vbOk then ... обращаешься к дисководу,
            делаешь то, что нужно
    end if



    Ответ:

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

    Можно воспользоваться OnError GOTO $метка - где и выдавать все необходимое и соответсвенно там можно сделать такой же перевод в виде GOTO.




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

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

    наверх


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

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


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


    В избранное