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


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!!!

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

       Свежий выпуск. Извините, что задержался...
    Читайте!


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




    Citycat by Email

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

    наверх


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

    Дата: 02.11.2003 06:01 | Раздел: Полезные программы | Автор: stepans

    Русификатор VB6 v.3 - Новая версия русификатора для VB6 IDE. Переведены все диалоги, меню. Программа при установке требует пароль. Найти его можно на главной странице сайта stepansel.by.ru.

    Дата: 27.10.2003 13:32 | Раздел: Статьи по VB | Автор: Ткачёв Игорь

    Автоматическое управление памятью в .NET - Алгоритм работы сборщика мусора (garbage collector, далее просто GC), являющегося частью CLR, подробно описан в книге Джефри Рихтера (Jeffrey Richter) «Applied Microsoft .NET Framework Programming». Мы не будем приводить здесь столь же подробное описание этого алгоритма, но обязательно остановимся на некоторых ключевых моментах.



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

    16:45 / 3 ноя.  Хук... | Хитов: 7 |  Ответов: 0
    15:09 / 3 ноя.  Новое сообщение без темы | Хитов: 1 |  Ответов: 0
    15:09 / 3 ноя.  Новое сообщение без темы | Хитов: 1 |  Ответов: 0
    14:30 / 3 ноя.  Оправка запросов. | Хитов: 5 |  Ответов: 0
    12:55 / 3 ноя.  работа с символом " в типе string | Хитов: 6 |  Ответов: 1
    11:28 / 3 ноя.  Что век грядущий нам готовит... | Хитов: 13 |  Ответов: 0
    09:54 / 3 ноя.  Печать из VBA | Хитов: 4 |  Ответов: 0
    09:05 / 3 ноя.  Нужен круглый прогресбар | Хитов: 9 |  Ответов: 1
    08:48 / 3 ноя.  ozhe komu nado... | Хитов: 7 |  Ответов: 0
    08:12 / 3 ноя.  Учет изменения тарифов | Хитов: 14 |  Ответов: 2
    05:59 / 3 ноя.  как программно нажать "да" в MsgBox | Хитов: 12 |  Ответов: 0
    05:57 / 3 ноя.  Новое сообщение без темы | Хитов: 2 |  Ответов: 1
    04:59 / 3 ноя.  Прозрачный фон картинки | Хитов: 7 |  Ответов: 0
    00:55 / 3 ноя.  задержка в WinSock | Хитов: 8 |  Ответов: 1
    18:15 / 2 ноя.  ASP.NET Как подключить один класс в другой ??? ... | Хитов: 5 |  Ответов: 1
    16:32 / 2 ноя.   Пример для vb .net | Хитов: 17 |  Ответов: 1
    15:28 / 2 ноя.  Как сделать подсветку синтаксиса в RTB | Хитов: 18 |  Ответов: 1
    12:49 / 2 ноя.  <B><font color="red">Как скрыть про... | Хитов: 17 |  Ответов: 1
    12:47 / 2 ноя.  Коммандная строка | Хитов: 20 |  Ответов: 0
    12:31 / 2 ноя.  Я смеяться. | Хитов: 44 |  Ответов: 6


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



    наверх


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



    наверх


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



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



    наверх


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

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



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



    наверх


    Один момент из жизни форума: Пример для vb .net

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

       У кого-нибудь есть пример записи в базу access в vb .net?


    Ответы:

    Автор: Павел
       Что именно нужно?

    Автор: Maxik
       Добавление записи, редактирование, удаление.
       Читаю так:

    Dim dbCmd As New OleDb.OleDbCommand _
    ("SELECT Data.Date,Data.Importance,Data.Teams FROM Data")

    Dim AConn As OleDb.OleDbConnection = New
    OleDb.OleDbConnection _
    ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " & GCDir()
    & "Data.mdb")
    Dim dbRead As OleDb.OleDbDataReader
    AConn.Open()
    dbCmd.Connection = AConn
    dbRead = dbCmd.ExecuteReader(CommandBehavior.SingleResult)
    Dim lv As ListViewItem
    Do While dbRead.Read
    lv = lvRecords.Items.Add(dbRead.GetDateTime(0).ToString)
    lv.SubItems.Add(ImpF(dbRead.GetByte(1)))
    lv.SubItems.Add(dbRead.GetString(2))
    Loop

    Автор: Павел
       Изменение записи:

    Dim dbCmd As New OleDb.OleDbCommand _
    ("Update Data Set
    Data.Date=дата,Data.Importance=импортанс,Data.Teams=команды")

    Dim AConn As OleDb.OleDbConnection = New
    OleDb.OleDbConnection _
    ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " & GCDir()
    & "Data.mdb")
    AConn.ExecuteNonQuery

       Удаление и добавление так же, только SQL-запросы при создании команды будут другие (Delete и Insert into, подробнее посмотри мою статью "Основы SQL").



    наверх


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

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

    Вопросы:


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

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

       Как в VB6 вывести на принтер (сразу, а не через какой-нибудь редактор) информацию из DataGrid так, чтобы соблюдался формат полей грида, т.е. если формат данных "Currency", то поле выравнивалось по правому краю?


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

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

       Есть форма на ней TextBox и Кнопка. В TextBox вводим число, например, "1.3", как сделать, чтоб при нажатии на кнопку "1.3" изменился на
      "1,3" и внеся в TextBox?


    Автор вопроса: Макс

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

       Я написал незамысловатую программу на VB .Net (у меня стоит VS .Net 2003) мне надо, что бы она работала под любой Windows. Как это сделать?


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

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

       Есть кнопка в форме. Как сделать чтобы кнопка нажималась при нажатии клавиши на клаве?


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

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

       Как в VB 6.0 делается 3D-графика?


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

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

       Как создать или дать папке общий/расшаренный доступ?


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

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

       Как в ImageCombo загрузить системные цвета?


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

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

       Как, с помощью VB6, отправить файл (через интернет) с удалённого компьютора, на мой. Желательно, чтобы на другом компьюторе передача файла была незаметной.


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

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

       Кто может, намыльте мне любую ифу по работе Winsock, можно ссылки (wolodd@ezmail.ru).


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

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

       Как скопировать содержимое рабочего стола (как при нажатии Print Screen) в буфер обмена?


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

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

       Как сделать так, чтобы при нажатии на кнопку программа копировала сама себя в другую директорию? И из новой директории яапускала себя.


    Автор вопроса: Tikhon V.V.

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

       В определенном каталоге несколько TXT-файлов. Требуется в ACCESSе последовательно добавить в каждый одинаковую первую строку.


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

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

       В программе EXCEL есть такая функция "КОНМЕСЯЦА(дата)", которая выдает последний день месяца указанной даты т.е. КОНМЕСЯЦА(12.02.2004) возвращает 29.02.2004.
    Хотелось бы знать, есть такая функция под VB?


    Автор вопроса: B. Obukhov

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

       Установил пакет исправлений для Win2k - KB823980 (якобы помогает от вируса Blaster). После этого во фрагменте кода
    .........
    Set obExcel = New Excel.Application
    obExcel.SheetsInNewWorkbook = 1
    Set obBook = obExcel.Workbooks.Add
    .........
    на второй строке происходит Automation error. Удаляю пакет обновлений - и всё работает, как часы. Как установить пакет обновлений и чтобы работал приведенный фрагмент кода?


    Автор вопроса: Игорь

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

       Как можно скрыть папку в Explorer вообще, независимо от настроек папок?


    Автор вопроса: Игорь

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

       Как получить сертификационный код безопасности для ActiveX, не обращаясь в Microsoft?


    Автор вопроса: Игорь

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

       Как можно записать звук с помощью VB или API?


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

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

       Пришлите, у кого есть примеры DES и RSA шифрования, или подскажите, где их можно найти.




    Ответы:


    Вопрос:

       Можно ли на Visual Basic отправить игре нажатие клавиш A,W,S,Z, например, игре MK4?

    Ответ:

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

    Глянь MetaBinds на phoenixsoft.narod.ru.


    Вопрос:

       Как сделать, чтобы программа висела в памяти и при нажатии определенной комбинации клавиш (напр. Ctrl+F8) выводилась на экран? Причем она должна ловить нажатия этих клавиш при работе пользователя совершенно в другом приложении.

    Ответ:

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

    RegisterHotKey. Подробнее в тулзе Api-Guide. ApiGuide качай с Allapi.net.


    Вопрос:

       Каким образом можно добраться из программы на VB6 до изменения формата ячеек в Excel? При передаче информации типа 01/03 Excel воспринимает ее как дату, а необходимо, чтобы она воспринималась как текст.

    Ответ:

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

    Можешь сделать так: загрузить Эксель, включить режим записи макроса, изменить формат ячейки(ек), отключить запись, войти в ее VBA и посмотреть, какой сформировался код. А далее, посылаешь этот код своему excell.application.


    Вопрос:

       Что возвращает функция VarPtr?

    Ответ:

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

    Кусок из MSDN:
      
    The functions VarPtr and StrPtr are not documented by Microsoft, but they can be very useful, so we will use them often, particularly the VarPtr function.
    If var is a variable, we have seen that:
    VarPtr(var)
    is the address of that variable, returned as a long.
      
    Функции VarPtr and StrPtr не документированы Майкрософтом, но они могут быть очень полезными, так что мы будем их часто использовать, особенно функцию VarPtr.
      
    Если var является переменной, мы увидим, что:

    VarPtr(var)

    является адресом переменной, возвращенный как длинное целое.
    От себя лично - VarPtr - от VariablePointer - указатель на переменную. Мог бы и дальше перевести, но, извини, влом, может дальше и не нужно.


    Вопрос:

       С видеоглазка принимается изображение и сохраняется в архиве, также есть окно с электронных весов. Как сделать, чтобы окна открывались синхронно, то есть при просмотре архива видеоизображения, просматривать информацию с весов в тот же момент.

    В код программы видеоизображения добавить ничего немогу (написана не мной).

    Ответ:

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

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


    Вопрос:

       Скажите пожалуйста, как реализовать функцию переноса слов, как в Блокноте. Использовать свойство txtText.ScrollBar не получается, оно только для чтения, хотя в Блокноте именно так и делали.

    Ответ:

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

       Можно использовать АПИ:

    Private Const EM_SETTARGETDEVICE As Long = &H448&

    'Установить перенос слов по краю текстового поля:
       SendMessage Text1.hwnd, EM_SETTARGETDEVICE, 0, 0

    'Перенос слов по ширине текущей страницы (WYSIWYG)
      SendMessage Text1.hwnd, EM_SETTARGETDEVICE, Printer.hDC, Printer.Width

    'Снятие режима переноса слов:
      SendMessage Text1.hwnd, EM_SETTARGETDEVICE, 0, 1


    Вопрос:

       Как с помощью компонента Microsoft Common Dialig Control 6.0 открыть сразу несколько файлов (клавиши Shift или Cfrl) и поместить их в ListBox?

    Ответ:

    Автор ответа: Никитин Андрей

    Надо добавить в число флагов компонента: cdlOFNAllowMultiselect
    Это позволит выбрать несколько файлов в окне.
    А дальше надо самому написать функцию которая получает свойство
    FileName компонента и разбирает его на отдельные файлы.


    Вопрос:

       Надо достать и загрузить в ComboBox список всех шрифтов установленых на системе.

    Ответ:

    Автор ответа: Никитин Андрей

    Dim i As Integer
    For i = 0 To Screen.FontCount - 1
       Combo1.AddItem Screen.Fonts(i)
    Next



    Ответ:

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

    В одной из своих программ мне потребовалось сделать то же самое, что и Вам. Нужно поместить на форму Combo-box, назвать его cmbFont и в процедуре Form_Load() прописать следующее:

    For I = 0 To Screen.FontCount - 1
         cmbFont.AddItem Screen.Fonts(I)
    Next I

    Таким образом Вы получите список всех шрифтов, установленных в системе. И этот список будет загружаться каждый раз, когда Вы запускаете программу, так что установка шрифтов не будет проигнорированна Вашей программой.
    К сожалению, данный код не работает в VB.NET.



    Ответ:

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

    Private Sub Form_Load()
    For i = 0 To Screen.FontCount - 1
    Combo1.AddItem Screen.Fonts(i)
    Next i
    End Sub


    Вопрос:

       Срочно нужен ответ на вопрос:
    Существует запись объявленная в модуле как глобальная:

    private type aaa
         dim j() as string
    end type
    Public v as aaa

    Нужно в какой то момент ее выгрузить из памяти, как это сделать.
    Хотя бы как выгрузить массив например в той же записи:

    v.j()

    неиспользуя redim v.j(0) ?

    Ответ:

    Автор ответа: Никитин Андрей

    Erase v.j() - динамический массив удаляется и освобождается память.


    Вопрос:

       Как сделать, чтобы датчик случайных чисел выдавал целые числа в заданных интевалах (например, от 1 до 30)?

    Ответ:

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

    См. MSDN:

    To produce random integers in a given range, use this formula:

    Int((upperbound - lowerbound + 1) * Rnd + lowerbound)

    Here, upperbound is the highest number in the range, and lowerbound is the lowest number in the range.


    Вопрос:

       Как правильнои передать фокус от одной форме к другой?
    Имеются 2 формы.
    Сначала с формы1 вызывается модальная форма2.

       Private Sub Command1_Click(Index As Integer)' код в форме1
       Select Case Index
       Case 0
         Form1.Visible = False
         Form2.SetFocus ' вызов формы 2
       End Select

    После выполнения необходимых процедур форма2
    закрывается командой "unload form2" и при попытке
    передать фокус обратно форме1 происходит ошибка
    выполнения.

    Private Sub Form_Unload(Cancel As Integer) ' код в форме2
      Form1.Visible = False
      Unload Form2
      Set Form2 = Nothing
      Form1.Visible = True
      Form1.SetFocus


    Т.е. команда form1.setfocus выполняется,
    осуществляется переход (как видно при пошаговом выполнении)
    обратно в форму1 на строку "Form2.SetFocus" с которой ранее
    вызывалась форма2 и при этом происходит ошибка (№364).
    Ошибка происходит потому что форма форма2 уже закрыта, но как
    предотвратить это не могу понять. Ведь команда "Form2.SetFocus"
    уже отработала и переход должен был произойти на следующую за ней
    строку.

    Пожалуста подскажите в чем ошибка или дайте ссылку на пример кода.

    Ответ:

    Автор ответа: Никитин Андрей

    Предлагаю сделать так (для модальной формы Form2, которая вызывается из формы Form1):

    'Код для Form1
    Private Sub Command1_Click(Index As Integer)
       Select Case Index
         Case 0
           Form1.Visible = False 'Прячем первую форму
           Form2.Show vbModal 'Показываем модально вторую форму
           Form1.Visible = True 'Нужно, т.к. Form2 - модальная
       End Select
       ...
    End Sub

    'Код для Form2
    Private Sub Form_Terminate()
       Form1.Visible = True 'Именно здесь, а не в Form_Unload
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
       Unload Me 'Выгружаем модальную форму Form2
    End Sub



    Ответ:

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

    Во-первых, непонятно, если форма модальная, зачем делать Form2.SetFocus (если вы делаете ее модальной через Form2.Show vbModal).
    Кроме того, этой строки (Form2.Show [vbModal]) у вас нет.Если вы все-таки делаете ее модальной, то писать Form2.SetFocus не нужно.

    Во-вторых, зачем писать в Form2_Unload эти строки:

       Unload Form2
       Set Form2 = Nothing

    Получается вы хотите выгрузить форму, когда она выгружается.



    Ответ:

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

    Непонятный вопрос. Если форма модальная, то она всегда, пока открыта, в фокусе. Переключиться с нее на другую нельзя.

    Пиши в первой форме:
    Form1.Visible=False
    Form2.SetFocus

    А в форме 2:
    private sub Form_Unload(Cancel as integer)
    set Form2 = nothing
    Form1.visible=true
    form1.setfocus
    end sub

    Все работает у меня. А что за ощибка 364, я такой не нашел?




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

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

    наверх


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

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