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


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



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

Ссылки:

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

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

       Типа юбилей! Только вот праздничного настроения совсем нет... Школа совсем заколебала :-(( Так что ждём 300-ого выпуска :-)

       Сорри, я опять ссылку для подписки на форумы спутал :-((. Эта ссылка точно правильная. Я проверял. http://www.vbnet.ru/online/subscribe.asp

    Читайте!


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




    Citycat by Email

       Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
       Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх


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



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

    11:51 / 29 сен.  Разделитель на форме, как перемещать мышкой | Хитов: 32 |  Ответов: 3
    10:30 / 29 сен.  Проблемы с отображением DataGrid и Microsoft Ca... | Хитов: 11 |  Ответов: 0
    04:04 / 29 сен.  Пароль | Хитов: 30 |  Ответов: 1
    22:29 / 28 сен.  Это как и .... | Хитов: 26 |  Ответов: 1
    19:48 / 28 сен.  DialUP в XP и деКодирование файла для отправки | Хитов: 8 |  Ответов: 1
    16:43 / 28 сен.  FBE | Хитов: 17 |  Ответов: 1
    16:39 / 28 сен.  Программа на работает под XP :( | Хитов: 24 |  Ответов: 2
    15:58 / 28 сен.  Новое сообщение без темы | Хитов: 13 |  Ответов: 0
    14:38 / 28 сен.  Инсталлятор для Visual Basic | Хитов: 52 |  Ответов: 7
    13:24 / 28 сен.  тест | Хитов: 2 |  Ответов: 1
    11:21 / 28 сен.  Динамическое создание элемента. | Хитов: 21 |  Ответов: 1
    10:41 / 28 сен.  Глобальное перерождение моего сайта. | Хитов: 24 |  Ответов: 2
    22:26 / 27 сен.  Сканер портов | Хитов: 36 |  Ответов: 2
    22:24 / 27 сен.  Текущая директория | Хитов: 25 |  Ответов: 3
    22:23 / 27 сен.  Нюк | Хитов: 45 |  Ответов: 5
    20:28 / 27 сен.  App.path | Хитов: 33 |  Ответов: 4
    16:45 / 27 сен.  Scrool BAR | Хитов: 18 |  Ответов: 2
    12:59 / 27 сен.  Класы..События... | Хитов: 28 |  Ответов: 5
    11:54 / 27 сен.  Блокировка клавиш Ctrl+Alt+Del в XP | Хитов: 35 |  Ответов: 6
    08:04 / 27 сен.  Adodc с паролем | Хитов: 16 |  Ответов: 1


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

    Как скачать файл? (23)
    Конвертирование bmp файла в другие форматы (185)


    наверх


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



    наверх


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



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



    наверх


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

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



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



    наверх


    Один момент из жизни форума: ReDim

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

       Народ, тут такой вопрос. Вот кусок кода:

    Dim MyArray() As Long
    i = 1
    j = 1
    ReDim Preserve MyArray(i, j)
    j = j + 1
    ReDim Preserve MyArray(i, j)
    j = j + 1
    ReDim Preserve MyArray(i, j)
    i = i + 1
    ReDim Preserve MyArray(i, j) ' и тут у меня проблемка: Subscript out of range.

    Как мне всё же увеличить і ?
    Без Preserve работает, но мне бы оставить содержимое массива.
    Можно, конечно, создать временный массив, но два раза гонять данные... (MyArray -> TempArray, TempArray -> MyArray).
    Есть ли еще какой то выход?


    Ответы:

    Автор: boevik
       Вот что пишет Microsoft в MSDN:
    When you use Preserve, you can resize only the last dimension of the array, and for every other dimension you must specify the same size it already has in the existing array.

    Автор: Павел
       В принципе невозможно. Если не полениться и почитать MSDN, то можно узнать, что изменять можно только последнюю размерность массива.
    Единственный выход: создать новый массив с нужными размерами и в цикле перегнать туда данные. Я так делал.

    Автор: USA
       Используй массив типа Variant. Тогда в каждый элемент массива можно будет запихать еще массив. Обращение немного корявое будет, что-то вроде Arr(i)(j). Где-то здесь на форуме я подобный пример уже писал.



    наверх


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

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

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

    наверх

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

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

    Вопросы:


    Автор вопроса: Overlord of AI

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

       Я тут накопал, что в VBA (Visual Basic for Applications) для Акцесса для импорта из XML в БД есть процедура ImportXML. Еще я ияобрел, что там же есть какое-то волшебное слово DoCmd, позволяющее, цитирую: "выполнять макрокоманды в процедурах Visual Basic. Для выполнения макрокоманды в программе следует включить метод объекта DoCmd в процедуру. Большинству макрокоманд соответствуют методы DoCmd, имена которых совпадают с английскими именами макрокоманд." Вопрос в следующем: Как все это перевести на нормальный VB?


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

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

       Какой Charset нужно установить для контролов в VB6, чтобы работать c Unicode? Точнее у меня информация в БД в Unicode, a c помошью VB форм она должна обрабатываться. Благодарен за любую информацию о Unicode-ах.


    Автор вопроса: Турков Максим

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

       Как сохранить страницу из webbrowser в определенную папку, без окна "Сохранить Как"?


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

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

       Как переключить раскладку клавиатуры на украинский язык?


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

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

       Как в VB .Net написать аналог команды ping?




    Ответы:


    Вопрос:

       Есть числа 5,10,15,20 и т.д. (100 и более). Программа выполняет действие и выдает число, допустим, 7. Как узнать ближайшее меньшее число и большее?

    Ответ:

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

    'x\y = Int(x/y)
    'Меньшее число:
    (7\5)*5
    'Большее число:
    (7\5+1)*5



    Ответ:

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

    Ну если все числа кратные пяти, то тебе поможет обычная математика:

    function MyRound(x as integer) as integer
    MyRound=Round(x/5)*5
    end function



    Ответ:

    Автор ответа: Денис

    Dim x1, x2, x3, s1, s2 As Integer
    Private Sub Form_Load()
    x1 = 5
    x2 = 7
    x3 = 15
    s1 = x1 - x2
    s2 = x3 - x2
    If s1 < 0 Then s1 = 0 - s1
    If s2 < 0 Then s2 = 0 - s2
    If s1 < s2 Then MsgBox x2 & " Ближе к " & x1
    If s1 > s2 Then MsgBox x2 & " Ближе к " & x3
    If s1 = s2 Then MsgBox "Одинаково"
    End Sub




    Ответ:

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

    Если список отсортирован, то оответственно левый и правый элемент. Если нет, можно:

    1) отсортировать
    2) пройти в цикле массив с условием

    a=array(1,2,3,4,5,6,7,8,9)
    n=7'данное число
    sLeft=a(i)'искомое число с лева
    sRight=a(i)'искомое число c права
    for i=2 to ubound(a)
         if a(i)>sLeft and a(i)      if a(i)n then sRight=a(i)
    next
      
    Код не проверялся.


    Вопрос:

       На одной форме вызываю контекстное меню командой "popupmenu МОЕ_МЕНЮ". Из одного пункта этого меню вызываю форму, на которой тоже есть свое контекстное меню. Так вот, на этой форме не удается вызвать это меню. Проверял, если с первой формы вызывать вторую не через меню, а, например, через Button, то второе меню работает. В MSDN напимано, что одновременно 2 меню не могут быть активизированы. Может кто сталкивался с данной проблемой и смог ее решить?

    Ответ:

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

    В MSDN в Базе знаний было решение этой проблемы. Дело в том, что если из контекстного меню вызвать модальное окно, то на нем ну будут работать меню. Решение они предлагают такое - повесить на форму таймер с интервалом, например, 100. При щелчке на контекстном меню запустить таймер, в таймере отобразить окно и остановить таймер. И волки сыты, и овцы целы.



    Ответ:

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

    "Если Вы используете всплывающие меню (popup menus) в Ваших прогах, то опасайтесь бага, имеющегося в VB4 16/32 и VB5. Если у Вас есть две формы и одна из них вызывает вторую модальную через всплывающее меню, то из этой второй модальной Вы не сможете вызвать ни одного всплывающего меню, сколько бы их на ней ни было. Чтобы пофиксить это дело, используйте таймер на первой форме. Вместо показа фторой формы из всплывающего меню по событию Click, активизируйте таймер так, чтобы он показал эту вторую форму через несколько миллисекунд.
    Для более полной инфы, см. Статью Q167839 in the Microsoft Knowledge Base."
    Ресурс: http://www.bibl.ru/87_hitrostey_i.htm#21


    Вопрос:

       Как при помощи SendKeys послать Enter на чужую прогу?

    Ответ:

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

    AppActivate ("Имя приложения") 'Например, "Документ1 - Microsoft Word"
    SendKeys "~", True

    Минус в том, что приложение активизируется. Как сделать то же самое без передачи фокуса, непонятно..

    А как узнать список всех приложений на десктопе - отдельная тема.. :-)



    Ответ:

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

    Делаеш фокус на чужой программе (мышкой или программно) и посылаешь:
    SendKeys Chr(13) или SendKeys "{Enter}"




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

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

    наверх


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

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