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

VB Студия
  • Статьи - 16
  • Контролы - 9
  • Исходники - 20
  • Куски кодов - 12
  • Windows Api - 17 функций и структур
VB Line
  • Статьи
  • ActiveX
  • Примеры
  • Советы
  • Windows Api
Содержание выпуска
  • Новости сайта VB Студия
  • Новости сайта VBLine
  • Преобразование строки из одной кодировки в другую
  • Восстановление положения окна Вашей программы на рабочем столе Windows
  • Как проверить, доступен ли принтер в системе?

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

  • 31 июля 2001 года - Обновлён FAQ.
    Добавилась рубрика Вопрос/Ответ. Там Вы можете задать вопрос или ответить на уже имеющиеся вопросы.
    Добавилась рубрика Хитрости. Там собраны всевозможные хитрости и трюки.
  • 15 июля 2001 года - Большое обновление. Раздел статьи пополнился статьями Михаила Эскина "Как написать игрушку на VB", Климина Сергея "Досадная ошибка в Package & Deployment Wizard" и Шатрыкина Ивана "Информация о файлах в Visual Basic и Win32 Api".
    В раздел исходники загрузил ещё 15 примеров. Теперь их количество составляет 21.
    Добавил 2 контрола в раздел контролы.
    В библиотеку кодов загнал 2 кода.
    Раздел FAQ пополнился ответами на 2 вопроса.
    И главное - добавил 3-х мегобайтных архив с 680 примерами с сайта VB Helper.

    наверх

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

    03 августа 2001 г. Новое обновление. В Статьи помещена статья Михаила Эскина Опыт создания линейки прокрутки. Читайте. В разделе Советы появились новые советы.

    30 июня 2001 г. На сайте большое обновление! Много интересного. В Статьи помещена серия статей Михаила Эскина посвященных работе с реестром. Обязательно почитайте, в его статьях всегда можно найти интересные находки. В ActiveX тоже много новых контролов. Прежде всего для Вас постарался Marco Bellinaso и сделал очень интересные контролы. Отмечу два из них: Spliter и Progress Bar. Таких OCX, а они очень качественно сделаны и имеют большие возможности, очень мало, так что скачивайте. Там же Вы найдете еще несколько приятных OCX.

    наверх

    Преобразование строки из одной кодировки в другую

    Option Explicit

    '===================Перекодировка символов===========
    Public Declare Function WideCharToMultiByte Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, _
    ByVal lpWideCharStr As String, ByVal cchWideChar As Long, ByVal lpMultiByteStr As String, ByVal cchMultiByte As Long, ByVal lpDefaultChar As String, ByVal lpUsedDefaultChar As Long) As Long
    Public Declare Function MultiByteToWideChar Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpMultiByteStr As String, ByVal cchMultiByte As Long, ByVal lpWideCharStr As String, ByVal cchWideChar As Long) As Long

    Public Const MB_PRECOMPOSED = &H1 ' use precomposed chars

    '=============Функция перекодировки===================
    Public Function Convert(ByVal strSrc As String, ByVal nFromCP As Long, ByVal nToCP As Long) As String
    Dim nLen As Long
    Dim strDst As String
    Dim strRet As String
    Dim nRet As Long
    nLen = Len(strSrc)
    strDst = String(nLen * 2, Chr(0))
    strRet = String(nLen * 2, Chr(0))
    nRet = MultiByteToWideChar(nFromCP, MB_PRECOMPOSED, strSrc, nLen, strDst, nLen)
    nRet = WideCharToMultiByte(nToCP, 0, strDst, nRet, strRet, nLen * 2, ByVal 0, 0)
    Convert = Left(strRet, nRet)
    End Function

    Пример

    Имеем, допустим, TextBox. В нем текст в кодировке KOI, надо получить в Windows. Запускаешь:
    TextBox = StringConvert(TextBox, 20866, 1251)

    Значения для часто используемых кодировок:

    Central European (DOS) | 852
    Central European Alphabet (Windows) | 1250
    Central European Alphabet (ISO) | 28592
    Cyrillic Alphabet (DOS) | 866
    Cyrillic Alphabet (Windows) | 1251
    Cyrillic Alphabet (ISO) | 28595
    Cyrillic Alphabet (KOI8-R) | 20866
    Ukrainian Alphabet (KOI8-RU) | 21866
    Latin 3 Alphabet (ISO) | 28593
    Western Alphabet | 1252
    Baltic Alphabet (Windows) | 1257
    Baltic Alphabet (ISO) | 28594
    Greek Alphabet (Windows) | 1253
    Greek Alphabet (ISO) | 28597
    Turkish Alphabet | 1254
    Arabic Alphabet (Windows) | 1256
    Arabic Alphabet (ISO) | 28596
    Hebrew (DOS) | 862
    Hebrew Alphabet (Windows) | 1255

    наверх

    Восстановление положения окна Вашей программы на рабочем столе Windows

    Наверное, у каждого программиста на VB рано или поздно появляется необходимость восстановления положения окна на рабочем столе при старте приложения и сохранения их при завершении приложения. Для этого удобно (и нужно!) использовать реестр Windows. Ниже приведены процедуры, которые делают эту работу.

    'Процедура служит для восстановления позиции окна из
    'системного реестра Windows, в случае неудачи берем
    'значения по - умолчанию (100, 100, 10600, 5900)
    'второй параметр указывает на то, что нужно восстановить
    'только положение окна без его размеров
     Public Sub RestoreWindowsPos(frm As Form, Optional whNo As Boolean = False)
    Dim KEY_STRING As String
    KEY_STRING = APP_NAME & "\" & KEY_SETWINDOW
     'Восстанавливаем позицию окна на рабочем столе Windows
     frm.WindowState = GetSetting(KEY_STRING, frm.Name, CUR_STATE, 0)
     'если "нормальное" положение, то считать остальные параметры
     If GetSetting(KEY_STRING, frm.Name, CUR_STATE, 0) = 0 Then
    frm.Left = GetSetting(KEY_STRING, frm.Name, CUR_X, 100)
    frm.Top = GetSetting(KEY_STRING, frm.Name, CUR_Y, 100)
    If whNo Then Exit Sub
    frm.Width = GetSetting(KEY_STRING, frm.Name, CUR_dX, 10600)
    frm.Height = GetSetting(KEY_STRING, frm.Name, CUR_dY, 5900)
    End If
    End Sub

    'Процедура служит для сохранения позиции окна в
    'системном реестре Windows
     Public Sub SaveWindowsPos(frm As Form)
    Dim KEY_STRING As String
    KEY_STRING = APP_NAME & "\" & KEY_SETWINDOW
     'Сохраняем позицию окна на рабочем столе Windows
     SaveSetting KEY_STRING, frm.Name, CUR_STATE, frm.WindowState
    SaveSetting KEY_STRING, frm.Name, CUR_X, frm.Left
    SaveSetting KEY_STRING, frm.Name, CUR_Y, frm.Top
    SaveSetting KEY_STRING, frm.Name, CUR_dX, frm.Width
    SaveSetting KEY_STRING, frm.Name, CUR_dY, frm.Height
    End Sub

    Для работы этих процедур необходимы объявленные на уровне приложения (или модуля) константы APP_NAME, KEY_SETWINDOW, CUR_STATE, CUR_X, CUR_Y, CUR_dX, CUR_dY

    наверх

    Как проверить, доступен ли принтер в системе?
    Для этого воспользуйтесь приведенным ниже кодом:

    'Проверяем доступен ли принтер в системе
    Public Function TestPrinter() As Boolean
    Dim PrtName As String
    On Error Resume Next 'не останавливаться при ошибке
    PrtName = Printer.DeviceName 'попробовать прочитать название принтера
    If PrtName <> vbNull Then 'если получилось то принтер доступен
    TestPrinter = True
    Else 'иначе принтер недоступен
    TestPrinter = False
    End If
    Err.Clear
    End Function

    А в этом примере найти номер принтера в системе и возвратить его номер для дальнейшего использования:

    'ищем указаный принтер в коллекции Windows
    'и возвращаем его номер
    Public Function SetPrn(sName As String) As Long
    Dim i As Integer

    'на случай если принтер не найден
     SetPrn = -1
    If Printers.Count = 0 Then Exit Function
    For i = 0 To Printers.Count - 1
    If UCase(Printers(i).DeviceName) = UCase(sName) Then
     'то что нужно, возвратить номер принтера
     SetPrn = i
    Exit Function
    End If
    Next i
    End Function

    наверх

            •

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

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


Выпуск 2.

VB Студия
  • Статьи - 16
  • Контролы - 9
  • Исходники - 20
  • Хитрости - 12
  • Куски кодов - 14
  • Windows Api - 17 функций и структур
VB Line
  • Статьи
  • ActiveX
  • Примеры
  • Советы
  • Windows Api
Статистика:

На рассылку подписаны 3 человека.

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

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

Какой версией Visual Basic Вы пользуетесь?
VB 3
VB 4
VB 5
VB 6

Установлен ли у Вас Service Pack? Если да, то какой?
Нет
SP1
SP2
SP3
SP4
SP5

 Содержание выпуска
  • Новости сайта VB Студия
  • Новости сайта VBLine

  • Шифровка/расшифровка текста с использованием пароля
  • Разбивание строки на составляющие по разделителям
  • Формирование из числа его "строковое" представление

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

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

  • 3 августа 2001 года - Хорошая новость!!! Открылась рассылка с новостями двух VB-сайтов - конечно же нашего и VBLine. Также в каждом номере рассылки Вы сможете найти несколько хитростей, кусков кода, примеров.
    Здесь форма подписки, поиска по архиву, кнопка-счётчик подписчиков
    Старые новости ушли в Архив
  • 31 июля 2001 года - Обновлён FAQ.
    Добавилась рубрика Вопрос/Ответ. Там Вы можете задать вопрос или ответить на уже имеющиеся вопросы.
    Добавилась рубрика Хитрости. Там собраны всевозможные хитрости и трюки.

    наверх

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

    06 августа 2001 г. Что-то я слишком часто стал сайт обновлять! Кстати, а Вы знаете, что недавно вышел юбилейный 5-ый выпуск моей рассылки? Вы ещё не подписались? Спешите. Форма для подписки внизу страницы, а можно прямо здесь. Вразделе Статьи небольшое обновление - новые работы Михаила Эскина. В раздел Советы добавил ещё несколько советов. Кроме того я не обошел стороной разделы ActiveX и Примеры. И ещё, хочу принести публичные извинения Дмитрию Авакову, за то, что присланный им новый контрол "валялся" у меня с мая, а я его не опубликовал. Ну "зашился" я. Sorry. Он размещен в ActiveX, контрол посвящен прозрачным кнопкам.

    наверх

    Шифровка/расшифровка текста с использованием пароля

    Option Explicit

    Public Function Encrypt(ByVal Source As String, ByVal Password As String) As String 'шифрование данных
    Dim a As String
    Dim b As String
    Dim c As String
    Dim d As String
    Dim lentext As Long
    Dim lenpass As Long
    Dim cn As Long
    'ввод исходных данных
    'исходный текст для шифрования - запрашивается от пользователя, к примеру -
    a = Source
    'пароль: может запрашиваться от пользователя
    b = Password
    'итог шифрования
    c = ""
    'узнаем длины каждой из строк
    lentext = Len(a)
    lenpass = Len(b)
    'собственно шифрование
    For cn = 1 To lentext
    'в этой строке разберитесь сами, здесь попросту выполняется функция Xor с каждым символом исходной строки и соответствующим символом пароля, как бы "повторенным" на всю длину исходного текста. Mid берет из середины строки символ, Asc - превращает его в ASCII-код, Str - превращает число в строку, Trim - удаляет пробелы
    d = Trim(Str(Asc(Mid(a, cn, 1)) Xor Asc(Mid(b, ((cn - 1) Mod lenpass) + 1, 1))))
    'а теперь сделаем так, чтобы каждый символ занимал ровно три позиции, вне зависимости от величины его ASCII-кода. А иначе как вы будете потом при расшифровке разбивать строку на символы?
    Select Case Val(d)
    Case 0 To 9
    d = "00" + d
    Case 10 To 99
    d = "0" + d
    End Select
    c = c + d
    'ну вот и все, и так - с каждым символом из исходной строки
    Next cn
    'в итоге в переменной с - зашифрованная строка, каждой исходной букве соответствует 3 символа, ее можно записать в любое место - в документ, к примеру:
    Encrypt = c
    End Function

    Public Function Decrypt(ByVal Code As String, ByVal Password As String) As String 'расшифровывание данных
    Dim a As String
    Dim b As String
    Dim c As String
    Dim d As String
    Dim lentext As Long
    Dim lenpass As Long
    Dim cn As Long
    'строка для расшифровки
    c = Code
    'пароль
    b = Password
    'итог расшифровывания
    a = ""
    'узнаем длины каждой из строк
    lentext = Len(c)
    lenpass = Len(b)
    'собственно расшифровывание
    For cn = 1 To lentext Step 3
    a = a + Chr(Val(Mid(c, cn, 3)) Xor Asc(Mid(b, (Int(cn / 3) Mod lenpass) + 1, 1)))
    Next cn
    'в итоге в переменной a - расшифрованная строка, ее можно записать в любое место - в документ, к примеру:
    Decrypt = a
    End Function

    наверх

    Разбивание строки на составляющие по разделителям

    Если Вам потребуется самому распечатать строку текста в несколько строк, то ее, наверняка, нужно "отформатировать", т.е. разбить на строки. Приведенная ниже процедура делит строку на составляющие (по символам vbCrLf) и записывает их в массив.

    'Процедура делит входящую строку на строки по разделителям
    'возврата каретки и записывает из в массив
    Public Sub FormatLine(sLine As String, ArrayLine() As String)
    Dim iX As Integer
    Dim iS As Integer
    Dim iSOld As Integer
    Dim lLenth As Integer

    'инициализация переменных
     iSOld = 1
    Do
    iS = InStr(iSOld, sLine, Chr(13))
    X = X + 1
    ReDim Preserve ArrayLine(X)
    If iS = 0 Then
    lLenth = Len(sLine)
    Else
    lLenth = iS - iSOld
    End If
    ArrayLine(X) = Mid(sLine, iSOld, lLenth)
    iSOld = iS + 2
    Loop While iS <> 0
    End Sub

    Обратите внимание на то, что для поиска разделителя здесь нужно использовать функцию InStr, а не перебирать все символы строки по порядку Mid$. Это связано с тем, что функция InStr работает быстрее раз в 5-6.

    наверх

    Формирование из числа его "строкового" представления

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

    'Формирует строку с указанием количества минут(часов, секунд)
    Public Function FormatTime(lTime As Long) As String
    Dim lSec As Long
    Dim lMin As Long
    Dim lHour As Long
    Dim lTemp As Long
    Dim i As Long

    If lTime < 60 Then
    FormatTime = lTime & " сек"
    ElseIf lTime / 60 < 60 Then
    lTemp = lTime
    Do While lTemp > 60
    i = i + 1
    lTemp = lTemp - 60
    Loop
    lMin = i
    lSec = lTime - (lMin * 60)
    FormatTime = lMin & " мин " & lSec & " сек"
    Else
    lTemp = lTime
    Do While lTemp > 60 * 60
    i = i + 1
    lTemp = lTemp - 60 * 60
    Loop
    lHour = i
    i = 0
    lTemp = lTime - (lHour * 60 * 60)
    Do While lTemp > 60
    i = i + 1
    lTemp = lTemp - 60
    Loop
    lMin = i
    lSec = lTime - (lHour * 60 * 60) - (lMin * 60)
    FormatTime = lHour & " час " & lMin & " мин " & lSec & " сек"
    End If
    End Function

    Код, конечно, немного запутан, но вполне работоспособен. Если процедуре передать число 126, то она возвратит "2 мин 6 сек".

    наверх

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

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

    Вопросы:

    Пока вопросов нет.

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

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

    наверх

            •

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

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


Выпуск 3.

VB Студия
  • Статьи - 20
  • Контролы - 9
  • Исходники - 20
  • Хитрости - 12
  • Куски кодов - 14
  • Windows Api - 17 функций и структур
VB Line
  • Статьи
  • ActiveX
  • Примеры
  • Советы
  • Windows Api
Голосование:

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

Какой версией Visual Basic Вы пользуетесь?
VB 3
VB 4
VB 5
VB 6

Установлен ли у Вас Service Pack? Если да, то какой?
Нет
SP1
SP2
SP3
SP4
SP5

Рассылки Subscribe.Ru
Новости сайта VBline и советы программистам
Содержание выпуска
  • Новости сайта VB Студия
  • Новости сайта VBLine

  • Переводит текст, набранный в одной раскладке в другую. Например из Ghbdtn получить Привет.
  • Следите за объявлением типов!
  • Как показать песочные часы
  • Как разместить окно "поверх" всех

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

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

  • 10 августа 2001 года - Обновление коснулось только статей. Но зато сколько статей! Добавил статьи:
    Visual Basic позволяет использовать Текстовый файл, как база данных.
    Автор: М. Эскин
    SQL - Язык запросов: Простое использование оператора SELECT
    Автор: Сартин Вячеслав
    Введение в ADO+ (FAQ)
    Автор: Сартин Вячеслав
    Использование ADODC совместно с DBGrid
    Автор: Tower

    наверх

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

    11 августа 2001 г. Сегодня я немного изменил сайт. Во-первых, изменено меню, появился архив рассылки и раздел, посвященный моим shareware программам. Пока в этом разделе только один OCX, но зато какой! Некоторые функциональные изменения в ActiveX и Примеры, теперь, при добавлении нового контрола или примера я буду ставить дату, это будет полезно, так как Вам не придётся искать новые поступления в разделе. Во-вторых, самое главное, убрана реклама сети TBN, она Вам надоела? Мне тоже. Теперь только реклама материалов самого сайта. В Статьи добавил свою новую работу "Использование Microsoft Agent в Visual Basic". И ещё, "на закуску", новый контрол (точнее новая версия старого OCX) Дмитрия Авакова - прозрачные контролы. Смотрите в ActiveX.

    наверх

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

    Option Explicit

    Private Function Replace_letters(InputStr As String, _
    sim1 As String, sim2 As String) As String
    enStr = "@#$^&QWERTYUIOP{}ASDFGHJKL:"
    enStr = enStr & Chr(34) & "ZXCVBNM<>?"
    enStr = enStr & "qwertyuiop[]asdfghjkl;'zxcvbnm,./"
    enStr = enStr & Chr(34) & "№;:?ЙЦУКЕНГШЩЗХЪФЫВАПРОЛ"
    enStr = enStr & "ДЖЭЯЧСМИТЬБЮ,йцукенгшщзхъфывапролдэжячсмитьбю."
    rusStr = Chr(34) & "№;:?ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,"
    rusStr = rusStr & "йцукенгшщзхъфывапролджэячсмитьбю."
    rusStr = rusStr & "@#$^&QWERTYUIOP{}ASDFGHJKL:" & Chr(34)
    rusStr = rusStr & "ZXCVBNM<>?qwertyuiop[]asdfghjkl;'zxcvbnm,./"
    Dim i As Integer, pos As Integer, temp As String
    For i = 1 To Len(InputStr)
    temp = Mid$(InputStr, i, 1)
    pos = InStr(1, sim1, temp, vbBinaryCompare)
    If pos <> 0 Then
    Replace_letters = Replace_letters & Mid$(sim2, pos, 1)
    Else
    Replace_letters = Replace_letters & temp
    End If
    Next i
    End Function

    наверх

    Следите за объявлением типов!

    Одна из наиболее опасных ошибок в Visual Basic связана с объявлением типов данных.

    Во-первых, мощные средства языка позволяют обходиться вообще без объявления типов данных. К чему это может привести? Например Вы ошиблись в написании имени переменной и вместо yCurent написали yCurrent. Что у Вас получиться? Две совершенно разные переменные и Вам придется провести несколько часов в "отладочном окне" прежде чем Вы это обнаружите. Поэтому мой совет: всегда объявляйте переменные, а в начале каждого модуля и формы пишите Option Explicit.

    Во-вторых, одна из наиболее опасных ошибок возникает при попытке объявить несколько переменных в одной строке.

    Dim x, y, z as Boolean

    Вы думаете что все три переменные получили тип Boolean? Ничего подобного, x, y имеют тип Variant!!! И у Вас в программе снова "глюки"!

    наверх

    Как показать песочные часы

    Если Вам необходимо сделать действие, во время которого пользователю не "рекомендуется" пользоваться мышью (например сделать расчеты), то лучше всего сменить курсор мыши на песочные часы:

    'Процедура служит для смены кусора на песочные часы
    'и восстановления его после вторичного вызова
    Public Sub HourGlass(obj As Object)
    Static ordMouse As Integer
    Static fOn As Boolean

    On Error Resume Next
     'если повторный вызов
     If Not fOn Then
    ordMouse = obj.MousePointer 'запомнить старый
    obj.MousePointer = vbHourglass 'установить новый
    fOn = True 'запомнить, что уже вызывали
     'Если нужно восстановить
     Else
    obj.MousePointer = ordMouse 'восстановить курсор
    fOn = False 'запомнить, что уже восстановили
    End If
    End Sub

    наверх

    Как разместить окно "поверх" всех

    Для размещения окна поверх всех окон в системе Windows можно использовать нижеследующую функцию:

    'Используется для размещения окна
    'поверх всех окон Windows
    Public Sub OnTopFrame(frmTop As Form, bSetOnTop As Boolean)
    If bSetOnTop = True Then
     ' Размещать окно поверх остальных
    SetWindowPos frmTop.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE Or SWP_NOACTIVATE
    Else
     ' Не размещать окно поверх остальных
    SetWindowPos frmTop.hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE Or SWP_NOACTIVATE
    End If
    End Sub

    наверх

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

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

    Вопросы:

    Пока вопросов нет.

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

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

    наверх

            •

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

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


Выпуск 4.

VB Студия
  • Статьи - 20
  • Контролы - 9
  • Исходники - 20
  • Хитрости - 12
  • Куски кодов - 14
  • Windows Api - 17 функций и структур
VB Line
  • Статьи
  • ActiveX
  • Примеры
  • Советы
  • Windows Api
Голосование:

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

Какой версией Visual Basic Вы пользуетесь?
VB 3
VB 4
VB 5
VB 6

Установлен ли у Вас Service Pack? Если да, то какой?
Нет
SP1
SP2
SP3
SP4
SP5

Рассылки Subscribe.Ru
Новости сайта VBline и советы программистам
Содержание выпуска
  • Новости сайта VB Студия
  • Новости сайта VBLine

  • Получает из пути к папке (Например C:/Мои документы/Отчёты/) путь к папке верхнего уровня (C:/Мои документы/).
  • Запрет перерисовки контрола
  • Как сделать TextBox enabled = false, но с текстом нормального цвета
  • Как запустить Screen saver?

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

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

  • 10 августа 2001 года - Обновление коснулось только статей. Но зато сколько статей! Добавил статьи:
    Visual Basic позволяет использовать Текстовый файл, как база данных.
    Автор: М. Эскин
    SQL - Язык запросов: Простое использование оператора SELECT
    Автор: Сартин Вячеслав
    Введение в ADO+ (FAQ)
    Автор: Сартин Вячеслав
    Использование ADODC совместно с DBGrid
    Автор: Tower

    наверх

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

    18 августа 2001 г. Ну вот, сегодня очередное обновление сайта. Новые интересные коды в Примерах: часики, которые "заменяют" стандартные часы в Windows, несколько примеров от Михаила Эскина и других авторов. В ActiveX добавил новый OCX типа "украшательства". В разделе Программы новая версия программы Михаила Эскина для регистрации OCX и DLL. В Статьи я добавил собственный вольный перевод статьи Deborah L. Cooper, посвященной созданию подсказки для меню.

    наверх

    Получает из пути к папке (Например C:/Мои документы/Отчёты/) путь к папке верхнего уровня (C:/Мои документы/).

    Option Explicit

    Public Function UpFolder(Folder As String) As String
    Dim tmp As String
    Dim ilgis As Long
    Dim nn As Long
    Dim RezultCurent As String
    tmp = Folder
    ilgis = Len(tmp)
    If Right$(tmp, 1) = "\" Then
    tmp = Mid$(tmp, 1, ilgis - 1)
    End If
    For nn = ilgis To 1 Step -1
    If Mid(tmp, nn, 1) = "\" Then
    RezultCurent = Left(tmp, nn)
    Exit For
    End If
    Next nn
    UpFolder = RezultCurent
    End Function

    наверх

    Запрет перерисовки контрола

    В некоторых случаях необходимо запретить перерисовку контрола, например, при заполнении списка типа ComboBox. Существует три, известных мне, методов, как это сделать. Первый метод заключается в установке на время заполнения списка свойства Visible = False, а после завершения этих операций восстановить свойство в True. Второй способ - вызвать API функцию LockWindowUpdate перед добавлением элементов, а после отключить блокировку. Но самый лучший способ, на мой взгляд это послать контролу сообщение WM_SETREDRAW с параметром False, а после добавления элементов послать его с параметром True. В общем посмотрите и сами решите, какой из этих методов Вам подходит. Лично я пользуюсь следующим кодом:

    Sub SetRedraw(ctl As Control, f As Boolean)
    Call SendMessageAsLong (ctl.hWnd, WM_SETREDRAW, f, 0&)
    End Sub

    наверх

    Как сделать TextBox enabled = false, но с текстом нормального цвета

    Этот интересный совет прислал     Антон Дёмин. Кстати, у него есть свой Web-сайт http://demin.narod.ru/, но сайт не о Visual Basic, кому интересно - посмотрите.

    Если у TEXTBOX'a свойство Enabled = FALSE, то текст в нем блеклый. Это не очень хорошо, а чтоб этого не было разместите текстовое поле на FRAME с установленным Enabled = FALSE (у TextBox'а Enabled = TRUE). Кроме того свойство BorderStyle у FRAME можно установить в 0 - none. Теперь для того, чтобы TEXTBOX стал "недоступным" нужно изменять свойство Enabled у FRAME. В этом случае и поле заблокировано и текст не блеклый.

    наверх

    Как запустить Screen saver?

    Антон Дёмин продолжает радовать нас своими советами. Очередной совет на тему: как запустить Screen saver. Всё очень просто. Объявите функцию SendMessage и две константы: WM_SYSCOMMAND и SC_SCREENSAVE. Вот собственно и всё. Осталось только в нужный момент вызвать эту функцию и заставка запустится!

    Private Declare Function SendMessage Lib "User32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

    Private Const WM_SYSCOMMAND = &H112&

    Private Const SC_SCREENSAVE = &HF140&

    Sub Start()

    Dim Ret As Long

    Ret = SendMessage(Me.hWnd, WM_SYSCOMMAND, SC_SCREENSAVE, 0&)

    End Sub

    наверх

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

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

    Вопросы:

    Автор вопроса:     Павел Сурменок

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

    Есть база данных Stat1.mdb . В ней таблица Statistics и в ней 3 поля SpyLogHits (Numeric), SpyLogHosts (Numeric), sDate (Date/Time). На форме стоит MSFlexGrid1. Нужно используя DAO программно запихать информацию из таблицы в MSFlexGrid1. Как это сделать?

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

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

    наверх

            •

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

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


Выпуск 5.

VB Студия
  • Статьи - 2
  • Контролы - 9
  • Исходники - 21
  • Хитрости - 13
  • Куски кодов - 16
  • Windows Api - 17 функций и структур
VB Line
  • Статьи
  • ActiveX
  • Примеры
  • Советы
  • Windows Api
Голосование:

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

Какой версией Visual Basic Вы пользуетесь?
VB 3
VB 4
VB 5
VB 6

Установлен ли у Вас Service Pack? Если да, то какой?
Нет
SP1
SP2
SP3
SP4
SP5

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

Это уже пятый, юбилейный выпуск рассылки. Несколько дней назад количество подписчиков перевалило за тысячу и теперь составляет 1555.
Завтра первое сентября... Грустно.
Присылайте материалы. Всё, что можно подогнать под тематику рассылки и сайта я с удовольствием опубликую в рассылке, или на сайте.

Внимание: Требуется человек со знанием английского языка для перевода документации. Со всеми вопросами бращаютесь по этому адресу.

Содержание выпуска
  • Новости сайта VB Студия
  • Новости сайта VBLine

  • Сохранение и чтение данных INI файла.
  • Создание STANDALONE библиотеки типов
  • Как программно скачать файл из Internet
  • Опасайтесь ошибки VB с именованием каталогов!

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

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

  • 31 августа 2001 года - Небольшое обновление. В раздел Библиотека кодов добавлено 2 кода. В раздел Хитрости добавлена одна хитрость.
    Вышел юбилейный пятый выпуск рассылки. Число подписчиков - 1555.
  • 10 августа 2001 года - Обновление коснулось только статей. Но зато сколько статей! Добавил статьи:
    Visual Basic позволяет использовать Текстовый файл, как база данных.
    Автор: М. Эскин
    SQL - Язык запросов: Простое использование оператора SELECT
    Автор: Сартин Вячеслав
    Введение в ADO+ (FAQ)
    Автор: Сартин Вячеслав
    Использование ADODC совместно с DBGrid
    Автор: Tower

    наверх

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

    26 августа 2001 г. Появились отличные контролы в ActiveX: ActiveLink, ColorPicker и несколько других работ от Marco Bellinaso. А в Статьи добавлены еще четыре работы Михаила Эскина. Обязательно туда загляните.
    25 августа 2001 г. Новых материалов немного. В Статьи добавлена работа Михаила Эскина по поводу баз данных, точнее на тему использования вместо базы данных обычный текстовый файл. На сайте исправлены некоторые из неработающих ссылок. Ну и, конечно, вышел очередной, уже седьмой, выпуск рассылки. Завтра будет большое обновление сайта!

    наверх

    Сохранение и чтение данных INI файла.

    Option Explicit

    Declare Function GetPrivateProfileString Lib "kernel32.dll" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
    Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long

    Public Function GetString(INIFile As String, Section As String, Key As String, Default As String)
    Dim slength As Long
    Dim temp As String * 255
    temp = Space(256)
    slength = GetPrivateProfileString(Section, Key, Default, temp, 255, INIFile)
    GetString = Left(temp, slength)
    End Function

    Public Function SetString(INIFile As String, Section As String, Key As String, Value As String)
    Dim n As Integer
    Dim temp As String
    temp = Value
    For n = 1 To Len(Value)
    If Mid$(Value, n, 1) = vbCr Or Mid$(Value, n, 1) = vbLf Then Mid$(Value, n) = ""
    Next n
    n = WritePrivateProfileString(Section, Key, temp, INIFile)
    End Function

    наверх

    Создание STANDALONE библиотеки типов

    Когда Вы создаете OCX или DLL сервер, то Visual Basic встраивает библиотеку типов сервера в исполняемый файл, не генерируя при этом .TLB библиотеку. Но, бывают случаи, когда такая библиотека Вам потребуется. Вы можете принудительно заставить VB создать такую библиотеку отдельно от исполняемого файла. Для этого в VB5 (например), зайдите на вкладку Component диалогового окна Properties меню Project и отметьте там соответствующий параметр.

    наверх

    Как программно скачать файл из Internet

    Новый совет от     Антона Дёмина посвящен вопросу связи и Internet. Вам никогда не приходилось принудительно разрывать связь с провайдером Интернет? Ну, тогда ещё всё впереди. Ниже приведен код для этой процедуры.

    Public Const RAS_MAXENTRYNAME As Integer = 256
    Public Const RAS_MAXDEVICETYPE As Integer = 16
    Public Const RAS_MAXDEVICENAME As Integer = 128
    Public Const RAS_RASCONNSIZE As Integer = 412
    Public Const ERROR_SUCCESS = 0&
    Public Type RasEntryName
    dwSize As Long
    szEntryName(RAS_MAXENTRYNAME) As Byte
    End Type
    Public Type RasConn
    dwSize As Long
    hRasConn As Long
    szEntryName(RAS_MAXENTRYNAME) As Byte
    szDeviceType(RAS_MAXDEVICETYPE) As Byte
    szDeviceName(RAS_MAXDEVICENAME) As Byte
    End Type
    Public Declare Function RasEnumConnections Lib "rasapi32.dll" Alias "RasEnumConnectionsA" (lpRasConn As Any, lpcb As Long, lpcConnections As Long) As Long
    Public Declare Function RasHangUp Lib "rasapi32.dll" Alias "RasHangUpA" (ByVal hRasConn As Long) As Long
    Public gstrISPName As String
    Public ReturnCode As Long

    Public Sub HangUp()
    Dim i As Long
    Dim lpRasConn(255) As RasConn
    Dim lpcb As Long
    Dim lpcConnections As Long
    Dim hRasConn As Long

    lpRasConn(0).dwSize = RAS_RASCONNSIZE
    lpcb = RAS_MAXENTRYNAME * lpRasConn(0).dwSize
    lpcConnections = 0
    ReturnCode = RasEnumConnections(lpRasConn(0), lpcb, lpcConnections)
    If ReturnCode = ERROR_SUCCESS Then
    For i = 0 To lpcConnections - 1
    If Trim(ByteToString(lpRasConn(i).szEntryName)) = Trim(gstrISPName) Then
    hRasConn = lpRasConn(i).hRasConn
    ReturnCode = RasHangUp(ByVal hRasConn)
    End If
    Next i
    End If
    End Sub

    Public Function ByteToString(bytString() As Byte) As String
    Dim i As Integer

    ByteToString = ""
    i = 0
    While bytString(i) = 0&
    ByteToString = ByteToString & Chr(bytString(i))
    i = i + 1
    Wend
    End Function
    наверх

    Опасайтесь ошибки VB с именованием каталогов!

    Если Вы не в первый раз пишите программу на VB, то наверняка заметили, что в VB присутствует ошибка при наименовании каталогов. Так в имени корневого каталога диска присутствует символ "\", а в остальных случаях нет. Поэтому, если Вы хотите, чтобы Ваша программа корректно работала, то воспользуйтесь ниже приведенной функцией: Function NormalizePath(sPath As String) As String
    If Right$(sPath, 1) <> "\" Then 'если \ уже есть, то ничего не менять
    NormalizePath = sPath & "\"
    Else 'символа \ нет, добавить
    NormalizePath = sPath
    End If
    End Function
    наверх

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

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

    Вопросы:

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

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

    Как соединиться с другим компом через winsock control?

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

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

    Создал OCX, в который входит ComboBox. Список ComboBox-а заполняется из текстового файла (кодировка ANSI). Компонент предназначен для работы в системе визуализации WinCC (вряд ли это что-то кому-то скажет, но чего в жизни не бывает...). Под NT всё работает корректно. Под Windows_98 при вместо кирилицы отображаются иероглифы (буквы латинского алфавита с надбуквенными символами). При работе с кодировкой OEM наблюдалась аналогичная картина. Вставлял компонент в Internet Explorer - всё нормально отЗаранее спасибо всем принявшим участе в решении проблемы.

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

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

    Как написать код преобразования числа в текст типа: 23 456,23 руб. преобразуется в "Двадцать три тысячи четыреста пятьдесят шесть рублей, 23 коп.

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

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

    Вопрос по VBA. Как вставить кодом (MS Access 2000) OLE-объект (f.e., jpg) в Recordset ?

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

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

    Возможно ли с Помощью VB соядать программу дозвона по ppp-протоколу? Хотелось видеть исходный код, если это возможно.

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

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

    Когда пользователь нажимает кнопку дверцы CD-ROM, нужно перехватить команду, выполнить заданные операции и только тогда открыть дверцу. Кто подскажет, как это сделать?

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

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

    Люди!!! Кто знает как сделать графическое сопровождение музыкального файла как в Win. Media Player.

    Ответы:

    Вопрос:

    Есть база данных Stat1.mdb . В ней таблица Statistics и в ней 3 поля SpyLogHits (Numeric), SpyLogHosts (Numeric), sDate (Date/Time). На форме стоит MSFlexGrid1. Нужно используя DAO программно запихать информацию из таблицы в MSFlexGrid1. Как это сделать?

    Ответ:

    Автор ответа hamzat

    textarea1=Sub GetData()
    Dim con, rs
    Set con = DAO.OpenDatabase("C:\Documents and Settings\hamzat\My Documents\stat1.mdb")
    Set rs = con.OpenRecordset("select * from Statistics")
    MsFelxGrid1.Rows = 1
    MsFelxGrid1.Cols = 3
    MsFelxGrid1.TextMatrix(0, 0) = "SpyLogHits"
    MsFelxGrid1.TextMatrix(0, 1) = "SpyLogHosts"
    MsFelxGrid1.TextMatrix(0, 2) = "sDate"
    While Not rs.EOF
    MsFelxGrid1.Rows = MsFelxGrid1.Rows + 1
    MsFelxGrid1.TextMatrix(MsFelxGrid1.Rows - 1, 0) = rs("SpyLogHits")
    MsFelxGrid1.TextMatrix(MsFelxGrid1.Rows - 1, 1) = rs("SpyLogHosts")
    MsFelxGrid1.TextMatrix(MsFelxGrid1.Rows - 1, 2) = rs("sDate")
    rs.MoveNext
    Wend
    Set rs = Nothing
    Set con = Nothing
    End Sub

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

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

    наверх

            •

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

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


Выпуск 6.

VB Студия
  • Статьи - 20
  • Контролы - 9
  • Исходники - 20
  • Хитрости - 12
  • Куски кодов - 14
  • Windows Api - 17 функций и структур
VB Line
  • Статьи
  • ActiveX
  • Примеры
  • Советы
  • Windows Api
Голосование:

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

Каким браузером Вы пользуетесь?
IE 4.x
IE 5
IE 5.5
IE 6
Netscape 4.x
Netscape 6
Opera
Другой

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

Наверстал новый выпуск. Он как всегда вовремя. Сегодня в разделе Вопрос/Ответ очень много вопросов. Обязательно загляните туда. Может быть Вы кому-нибудь поможете.

Присылайте информацию и читайте рассылку!

Содержание выпуска
  • Новости сайта VB Студия
  • Новости сайта VBLine

  • PassHash функция (выдаёт число, соответствующее паролю).
  • Как узнать переменные окружения операционной системы
  • Как защитить свою программу от взлома "звёздочек" при вводе пароля
  • Меняем даты создания, модификации и последнего доступа к файлам

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

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

  • 4 сентября 2001 года - Добавил следующие стаьи:
    Сабклассинг
    Автор Алексей Вишневский
    Оптимизация кода в Visual Basic
    Автор Шатрыкин Иван
    Опыт создания массива пользовательского типа в ActiveX Control'е
    Автор М. Эскин
    Создание подсказки для меню в Visual Basic
    Автор Deborah L. Cooper
    Добавил ответы на несколько вопросов в FAQ

    наверх

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

    02 сентября 2001 г. Сегодня небольшое обновление сайта. В разделе ActiveX несколько новых контролов: для модификации стандартного MsgBox, для работы с системным треем и контрол TipOfDay для вывода "советов дня". В .Статьи добавлена моя новая работа "Оптимизация кода в Visual Basic", а в раздел Примеры добавлены три новые работы: как считать атрибуты безопасности файла в Windows NT, создание в меню списка последних загруженных файлов и как сменить курсор в текстовом окне. И ещё в разделе Shareware, наконец, доступна моя первая работа BalloonMessage for Microsoft Agent. OCX предназначен для организации диалога программы с пользователем с помощью Microsoft Agent.. Внимание! Сайт VBline ищет новый хостинг. Требования простые: ASP, Ms Access, не менее 30 Mb, пока желательна оплата баннерами. Свои предложения и, особенно, советы, на тему хостинга, присылайте мне.

    наверх

    PassHash функция (выдаёт число, соответствующее паролю).

    Option Explicit

    Public Function PassHash(Pass As String) As Long
    Dim I As Long
    Dim L As Long
    Dim S As Double
    Dim K As Double

    L = Len(Pass)
    For I = 1 To L
    K = 1 + 1 * (I / L)
    S = S + Asc(Mid$(Pass, I, 1)) * K
    Next I

    S = S / L
    PassHash = Int(S) * 1000000 + (S - Int(S)) * 1000000000
    End Function

    наверх

    Как узнать переменные окружения операционной системы

    Совет прислал     Дёмин Антон [http://demin.narod.ru]. В Бэйсике есть одна ОЧЕНЬ полезная, но многими забытая функция Environ! Она возвращает имена и содержание всех переменных среды операционной системы!!! Так, например, чтобы получить директорию Windows, совсем не надо прибегать к API-функции GetWindowsDirectory!!!!!! А получить её можно так:

    ABC = Environ ("windir")

    И ВСЁ!

    Но и это ещё не всё! Также можно получить следующие перменные:

    ABC = Environ ("TMP") 'директория временных файлов TEMP

    ABC = Environ ("BLASTER") 'координаты звуковой карты

    ABC = Environ ("PATH") 'пути, объявленные в autoexec.bat

    НО И ЭТО ВСЁ ЕЩЁ НЕ ВСЁ!!!!

    Чтобы получить имя и значение переменной, в скобках вместо строки можно поставить номер переменной (или индекс?). Вставьте следующую процедуру в окно Code, запустите проект, кликните на форме увидите список всех переменных и их значений!

    Private Sub Form_Click()
    'берём переменную и присваиваем ей единицу
    m = 1
    'запускаем цикл, который увеличивает переменную m каждый
    'раз на единицу и подсовывает её функции Environ
    Do
    'присваиваем переменной EnvString возвращаемую переменную,
    'соответствующую номеру m
    EnvString = Environ(m)
    'печатаем перменную, соответсвующую номеру m
    Print Environ(m)
    'перменную m увеличиваем на один
    m = m + 1
    'если перменная EnvString всё ещё не пустая - крутим дальше...
    Loop Until EnvString = ""
    End Sub

    Вот такой совет! От себя добавлю, что если функция не может найти указанную переменную, то она возвращает пустую строку.

    наверх

    Как защитить свою программу от взлома "звёздочек" при вводе пароля

    Ещё один совет от     Дёмина Антона [http://demin.narod.ru]. Он посвящен тем, кто хочет избежать лёгкого взлома текстового поля с паролем (он там отображается в виде звёздочек). Я думаю, что ни для кого не является секретом, как можно посмотреть пароль. Теперь, собственно, совет. Для начала в разделе формы General Declarations объявите переменную, которая будет содержать код:

    Dim pswd As String

    Затем в свойствах текстового поля установите в PasswordChar звёздочку "*".

    Теперь выберите событие Text1_KeyPress и впишите туда:

    Private Sub Text1_KeyPress(KeyAscii As Integer)
    pswd = pswd + Chr(KeyAscii)
    KeyAscii = Asc("*")
    End Sub

    Теперь нажатия будут отлавливаться, а передаваться будут текстовому полю только звёздочки! И программа-взломщик пароль уже не достанет!!! Если кто-то хочет сделать так, как в Linux'e, т.е. никаких звёздочек нет вообще, то строку KeyAscii = Asc("*") надо заменить на KeyAscii = 0 и всё! Да, кстати, теперь пароль хранится в переменной pswd!!!

    Вот так-то, господа программисты! А Вы думали, что на Visual Basic можно только менюшки писать? Нет, можно пароли ломать или защищаться от их взлома ;-).

    наверх

    Меняем даты создания, модификации и последнего доступа к файлам

    Совет (или пример) от     Дёмина Антона [http://demin.narod.ru]. Он посвящен временам файлов. Итак, у Вас есть файл, как узнать время его создания? Смотрите ниже приведённый код.

    ' Открывает указанный файл в режиме двоичного доступа.
    ' Эта функция необходима нам для получения доступа к датам файла и изменения их.
    Declare Function lopen& Lib "kernel32" Alias "_lopen" (ByVal lpPathName As String, ByVal iReadWrite As Long)
    ' Закрывает указанный файл.
    Declare Function lclose& Lib "kernel32" Alias "_lclose" (ByVal hFile As Long)
    Public Const READAPI = 0
    Public Const WRITEAPI = 1
    Public Const READ_WRITE = 2
    ' Получает информацию из указанного файла о дате времени.
    ' Аргументы lpCreationTime, lpLastAcccessTime и lpLastWriteTime могут быть
    ' установлены в ноль (тогда передайте эти аргументы ByVal As Long), если
    ' вам они не нужны. Дата возвращается этой функцией в формате UTC.
    Declare Function GetFileTime& Lib "kernel32" (ByVal hFile As Long, lpCreationTime As FILETIME, lpLastAccessTime As FILETIME, lpLastWriteTime As FILETIME)
    ' Устанавливает время создания, изменения и последнего доступа к файлу.
    Declare Function SetFileTime& Lib "kernel32" (ByVal hFile As Long, lpCreationTime As FILETIME, lpLastAccessTime As FILETIME, lpLastWriteTime As FILETIME)
    ' 64-битное число, указывающее на прошедшее время
    ' с 1 января 1601 г. с единицей измерения 100 наносекунд.
    Type FILETIME ' 8 бит
    dwLowDateTime As Long
    dwHighDateTime As Long
    End Type
    ' Записывает аргумент со структурой FILETIME
    ' во второй аргумент со структурой SYSTEMTIME.
    Declare Function FileTimeToSystemTime& Lib "kernel32" (lpFileTime As FILETIME, lpSystemTime As SYSTEMTIME)
    ' Записывает аргумент со структурой SYSTEMTIME
    ' во второй аргумент со структурой FILETIME.
    Declare Function SystemTimeToFileTime& Lib "kernel32" (lpSystemTime As SYSTEMTIME, lpFileTime As FILETIME)
    ' Эта структура содержит информацию о времени и дате.
    Type SYSTEMTIME ' 16 бит
    wYear As Integer
    wMonth As Integer
    wDayOfWeek As Integer
    wDay As Integer
    wHour As Integer
    wMinute As Integer
    wSecond As Integer
    wMilliseconds As Integer
    End Type

    А затем для работы всего этого нужно сделать следующие:

    Sub Main()
    Dim lFileHwnd As Long
    Dim lDummy As Long
    Dim ftModified As FILETIME
    Dim ftCreated As FILETIME
    Dim ftAccessed As FILETIME
    Dim stCreated As SYSTEMTIME
    ' Поменяйте C:\AUTOEXEC.BAT на любой другой файл
    lFileHwnd = lopen("C:\AUTOEXEC.BAT", READ_WRITE)
    GetFileTime lFileHwnd, ftCreated, ftAccessed, ftModified
    FileTimeToSystemTime ftCreated, stCreated
    With stCreated
    Debug.Print .wDay & "." & .wMonth & "." & .wYear & ", " & .wHour & ":" & .wMinute & ":" & .wSecond & ":" & .wMilliseconds
    End With
    ' Увеличивает год создания файла на 5
    stCreated.wYear = stCreated.wYear + 5
    SystemTimeToFileTime stCreated, ftCreated
    SetFileTime lFileHwnd, ftCreated, ftAccessed, ftModified
    ' Проверка
    GetFileTime lFileHwnd, ftCreated, ftAccessed, ftModified
    FileTimeToSystemTime ftCreated, stCreated
    With stCreated
    Debug.Print .wDay & "." & .wMonth & "." & .wYear
    End With
    lDummy = lclose(lFileHwnd)
    End Sub

    наверх

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

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

    Вопросы:

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

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

    Как прочитать в реестре, все параметры данного раздела, с помощью API ?

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

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

    Как можно записать значения серого цвета изображения 30x30 в виде текстового файла?

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

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

    Как соединиться с другим компом через winsock control?

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

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

    Создал OCX, в который входит ComboBox. Список ComboBox-а заполняется из текстового файла (кодировка ANSI). Компонент предназначен для работы в системе визуализации WinCC (вряд ли это что-то кому-то скажет, но чего в жизни не бывает...). Под NT всё работает корректно. Под Windows_98 при вместо кирилицы отображаются иероглифы (буквы латинского алфавита с надбуквенными символами). При работе с кодировкой OEM наблюдалась аналогичная картина. Вставлял компонент в Internet Explorer - всё нормально отЗаранее спасибо всем принявшим участе в решении проблемы.

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

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

    Как написать код преобразования числа в текст типа: 23 456,23 руб. преобразуется в "Двадцать три тысячи четыреста пятьдесят шесть рублей, 23 коп.

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

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

    Вопрос по VBA. Как вставить кодом (MS Access 2000) OLE-объект (f.e., jpg) в Recordset ?

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

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

    Возможно ли с Помощью VB соядать программу дозвона по ppp-протоколу? Хотелось видеть исходный код, если это возможно.

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

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

    Когда пользователь нажимает кнопку дверцы CD-ROM, нужно перехватить команду, выполнить заданные операции и только тогда открыть дверцу. Кто подскажет, как это сделать?

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

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

    Люди!!! Кто знает как сделать графическое сопровождение музыкального файла как в Win. Media Player.

    Автор вопроса: Oleg Lekuchev

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

    Я написал ActiveX DLL на VB 6 в одной из функций есть вызов внешнего exe файла (простая программа не выводит никаких формб просто принимает пути к 2 файлам и пишет на диск третий)
    Так вот, пока я работал в Debug моде все нормально, а в откомпилированном виде внешняя программа не отрабатывает, ошибок не появляется, программа запускается, но видимо что-то не находит.... я пользуюсь функцией Shell("путь_к_программе")
    Не могли бы вы пояснить в чем может быть проблема

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

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

    Есть необходимость ия клиента на VB соядать сообщение Outlook Express (важно!), яаполнив все атрибуты письма. Стандартная операция, бея проблем проходящая на Outlook'е, но выяывающая трудности с Express'ом (приложение есть, а объекта типа "сообщение" нет!).

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

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

    Нужно вывести картинку запиханную в массив pic(width,height) as byte на экран, используя палитру Pal(255,2). Причем с максимальной скоростью. Пробовал преобразовывать в RGB картинку и выводить с помощью SetDIBitsToDevice, но получается медленно. Преобразования тормозят вывод. Может кто поможет?

    Автор вопроса: Alex Tychinin

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

    Несколько раз спрашивал в ФИДО, но из ответов так и не понял, можно ли в форме VB сделать выделение меток перед полями ввода пунктирными линиями как в большинстве программ Windows (по клавише TAB). Можно ли это сделать в VB?

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

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

    Внедряю .xls в Access (использую OLE). Сразу открывается этот файл. Каким образом заставить минимизироваться приложение Excel и как мне закрыть файл .xls или Excel. Перепробовала все команды из help'а, но они игнорируются. Помогите!!!

    Автор вопроса: Артём

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

    Как сделать панель как в MS Office или вроде виндоусной панели задач(той что с ПУСКом), чтобы за неё не прятались значки с рабочего стола, а отодвигались(как если переместить панель задач к другому краю).

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

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

    Можно ли создать программу в VB такого рода: переводчик промт переводит word(овский) файл с русского на французский например,и копирует его обратно в word.

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

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

    Хочу ия VB связываться с ORACLE. Говорят существует библиотека. Ни у кого нет? Очень нужно! ПЛЗ!

    Ответы:

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

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

    наверх

            •

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

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


Выпуск 7.

VB Студия
  • Статьи - 20
  • Контролы - 9
  • Исходники - 20
  • Хитрости - 12
  • Куски кодов - 14
  • Windows Api - 17 функций и структур
VB Line
  • Статьи
  • ActiveX
  • Примеры
  • Советы
  • Windows Api
Голосование:

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

Каким браузером Вы пользуетесь?
IE 4.x
IE 5
IE 5.5
IE 6
Netscape 4.x
Netscape 6
Opera
Другой

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

  • По теме UpFolder.
  • Как сделать TextBox enabled = false, но с текстом нормального цвета. Второй вариант.
  • О сабклассинге
  • Создание ярлыка

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

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

  • 11 сентября 2001 года - В раздел Примеры добавлен пример создания Floating Bar - плавающей формы.
    Добавлен раздел Архив рассылки
    Количество подписчиков рассылки перевалило за 2000!

    наверх

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

    10 сентября 2001 г. Представляю немного новых примеров: работа с системным треем, как поместить иконку в меню, работа с ImageComboBox, как изменить стандартный TitleBar, а также как изменить иконку в нем с помощью API во время работы программы.

    наверх

    По теме UpFolder

    Прислал     Конурин А. Ю.

    Исправлена ошибка и снижено количество переменных.

    Public Function UpFolder(Folder As String) as String
    Dim nn As Long
    UpFolder = Folder
    If Right$(UpFolder, 1) = "\" Then
    UpFolder = Mid$(UpFolder, 1, Len(UpFolder) - 1)
    End If
    For nn = Len(UpFolder) To 1 Step -1
    If Mid(UpFolder, nn, 1) = "\" Then
    UpFolder = Left(UpFolder, nn)
    Exit For
    End If
    Next nn
    End Function

    наверх

    Как сделать TextBox enabled = false, но с текстом нормального цвета. Второй вариант.

    Прислал     Н.Подымов

    Недавно прочитал в рассылке о TextBox.Enable=False

    Я предлагаю Вам другой способ сделать TextBox недоступным пользователю, а в Вашем варианте есть один недостаток - Если в TextBox вставлена полоса пркрутки то она становится недоступной хотя текст отображается нормально.

    По средствам ниже приведенного кода можно реализовать то же самое:

    Privatr Sub Text1_GotFocus()
    Command1.SetFocus
    EndSub

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

    наверх

    О сабклассинге

    Автор:     Алексей Вишневский

    Сабклассинг - техника, позволяющая приложению перехватывать и обрабатывать сообщения (messages), посылаемые или поставляемые в очередь (posted) определенному окну перед тем, как само окно будет иметь возможность их обработать.

    В windows практически все, что мы видим - окна (формы, контролы и т.д.). Каждое окно имеет свою "оконную процедуру" (window proc). В обязанности оконной процедуры входит обработка "сообщений", пришедших этому окну.
    Передача сообщений - это способ, которым windows производит манипуляции со всеми окнами. Hапример, когда юзер пытается закрыть окно, система посылает этому окну сообщение WM_CLOSE и оконная процедура должна должным образом обработать это сообщение.

    У каждого созданного в системе окна зарегистрированного класса ("editbox", "button" и т.д.) есть "оконная процедура по умолчанию" (default window proc), которая и отвечает за обработку сообщений, приходящих этому окну. Если мы напишем свою оконную процедуру для какого-то окна и заменим ей процедуру по умолчанию, то значит мы произвели subclass этого окна. Это и есть сабклассинг.

    Сабклассинг производится вызовом следующих api функций:

    GetWindowLong - для выяснения адреса default window proc (в принципе не обязательна)

    SetWindowLong - для указания адреса новой window proc (эта функция возвращает указатель на предыдущую функцию окна)

    CallWindowProc - для последующего вызова default window proc, если надо (см. также DefWindowProc).

    Сама оконная процедура должна иметь определенный вид:

    Function WindowProc(ByVal hWnd As Long, ByVal uMsg As _
    Long, ByVal wParam As Long, ByVal lParam As Long) As _
    Long

    где:
    hWnd - хендл (указатель) окна
    uMsg - сообщение
    wParam - дополнительная информация сообщения (значение зависит от конкретного типа сообщения)
    lParam - дополнительная информация сообщения (значение зависит от конкретного типа сообщения)

    Ну и пример.
    В модуль:

    Private Declare Function CallWindowProc Lib "user32" Alias _ "CallWindowProcA" (ByVal lpPrevWndFunc As Long, _ ByVal hwnd As Long, ByVal Msg As Long, _ ByVal wParam As Long, ByVal lParam As Long) As Long

    Private Declare Function SetWindowLong Lib "user32" Alias _ "SetWindowLongA" (ByVal hwnd As Long, _ ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

    Private Const GWL_WNDPROC = -4
    Private Const WM_MOVE = &H3

    Private lpPrevWndProc As Long ' тут будет указатель на default proc

    Public Sub start_subclass(hwnd As Long)
    'указываем новую оконную процедуру
    'SetWindowLong при этом возвращает указатель
    'на процедуру по умолчанию для указанного окна
    'Этим самым мы и начинаем субклассинг
    lpPrevWndProc = SetWindowLong(hwnd, GWL_WNDPROC, _
    AddressOf WindowProc)
    End Sub

    Public Sub stop_subclass(hwnd As Long)
    'возвращаем окну его "родную" процедуру
    SetWindowLong hwnd, GWL_WNDPROC, lpPrevWndProc
    End Sub

    Function WindowProc(ByVal hw As Long, ByVal uMsg As _
    Long, ByVal wParam As Long, ByVal lParam As Long) As _
    Long

    '"обрабатываем" сообщение WM_MOVE
    Select Case uMsg
    Case WM_MOVE
    Debug.Print "WM_MOVE"
    End Select

    'поскольку мы не написали "полноценной" оконной
    'процедуры, вызовем "родную" для обработки всех
    'сообщений. Этого можно и не делать, но тогда надо
    'обрабатывать все сообщения и возвращать
    'соответствующие значения.
    WindowProc = CallWindowProc(lpPrevWndProc, hw, _
    uMsg, wParam, lParam)
    End Function

    Теперь в форму:

    Private Sub Form_Load()
    start_subclass Me.hwnd
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    stop_subclass Me.hwnd
    End Sub

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

    наверх

    Создание ярлыка

    Автор:     @LEXis

    Public Declare Function fCreateShellLink Lib "STKIT432.DLL" _
    (ByVal lpstrFolderName As String, _
    ByVal lpstrLinkName As String, _
    ByVal lpstrLinkPath As String, _
    ByVal lpstrLinkArgs As String) As Long

    fCreateShellLink "C:\Windows\Desktop", _
    "NotePad", _
    "C:\Windows\Notepad.exe", vbNullString

    наверх

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

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

    Вопросы:

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

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

    Есть БД Access. Ия таблицы Tabl необходимо вытащить внешним модулем на VB5 проиявольную яапись с некоторым номером, для дальнейшей обработки. Помогите, кто янает.

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

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

    Как можно определить номер страницы в Верде (проблема яаключается в том, что иногда нумерация начинается с нуля, например, а номер страницы в верхний/нижний колонтитул не вставлен - обращаться некуда)?

    Автор вопроса: Артём

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

    Можно ли прочитать указанный мной сектор диска, если да то как?

    Автор вопроса: Татьяна

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

    Можно ли в ACCESS2000 сделать так, чтобы раяличные яаписи (строки)в форме отображались раяным цветом,например,для выделения красным просроченных платежей. Пробовала помечать bmp-ияображением, но это так долго_груяится. Записей много.

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

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

    Как_ сделать так, чтобы .wav файл играл как фоновая музыка и была слышен клик мыши_ на фоне музыки.

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

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

    Как из-под Basic for MS Excel выдать через динамик звук определенной частоты и длительности ( например, нота ЛЯ: 440 Гц, 1 секунда ) ? А как это сделать через колонки ( наушники ) ?

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

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

    Возможно ли с Помощью VB соядать программу дозвона по ppp-протоколу? Хотелось видеть исходный код, если это возможно.

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

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

    Люди!!! Кто знает как сделать графическое сопровождение музыкального файла как в Win. Media Player.

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

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

    Нужно вывести картинку запиханную в массив pic(width,height) as byte на экран, используя палитру Pal(255,2). Причем с максимальной скоростью. Пробовал преобразовывать в RGB картинку и выводить с помощью SetDIBitsToDevice, но получается медленно. Преобразования тормозят вывод. Может кто поможет?

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

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

    Внедряю .xls в Access (использую OLE). Сразу открывается этот файл. Каким образом заставить минимизироваться приложение Excel и как мне закрыть файл .xls или Excel. Перепробовала все команды из help'а, но они игнорируются. Помогите!!!

    Ответы:

    Вопрос:

    Как прочитать в реестре, все параметры данного раздела, с помощью API ?

    Ответ:

    На сайте VB Студия в разделе Статьи есть статьи о работе с реестром. Там про это написано.

    Вопрос:

    Создал OCX, в который входит ComboBox. Список ComboBox-а заполняется из текстового файла (кодировка ANSI). Компонент предназначен для работы в системе визуализации WinCC (вряд ли это что-то кому-то скажет, но чего в жизни не бывает...). Под NT всё работает корректно. Под Windows_98 при вместо кирилицы отображаются иероглифы (буквы латинского алфавита с надбуквенными символами). При работе с кодировкой OEM наблюдалась аналогичная картина. Вставлял компонент в Internet Explorer - всё нормально отЗаранее спасибо всем принявшим участе в решении проблемы.

    Ответ:

    Автор ответа Шатрыкин Иван

    Однозначно, "глючит" шрифт, используемый в ComboBox, я бы попробовал сделать свойство Font у этого OCX, и попытался его изменить, конкретнее нужно поменять свойство CharSet у этого шрифта на 1251, короче говоря поэксперементировать. Может случиться, что у используемого шрифта нет набора 1251, тогда выход один - использовать другой шрифт.

    Вопрос:

    Когда пользователь нажимает кнопку дверцы CD-ROM, нужно перехватить команду, выполнить заданные операции и только тогда открыть дверцу. Кто подскажет, как это сделать?

    Ответ:

    Автор ответа Шатрыкин Иван

    Думаю, что это невозможно не только в VB, но и вообще, иначе бы Windows использовали такую возможность. Начните копировать файл с CD-Rom и откройте дверцу? Что? Подвисли?

    Вопрос:

    Я написал ActiveX DLL на VB 6 в одной из функций есть вызов внешнего exe файла (простая программа не выводит никаких формб просто принимает пути к 2 файлам и пишет на диск третий)
    Так вот, пока я работал в Debug моде все нормально, а в откомпилированном виде внешняя программа не отрабатывает, ошибок не появляется, программа запускается, но видимо что-то не находит.... я пользуюсь функцией Shell("путь_к_программе")
    Не могли бы вы пояснить в чем может быть проблема

    Ответ:

    Автор ответа Шатрыкин Иван

    Советую поставить Service Pack 4, а вообще-то может быть используется On Error Resume Next? Уберите.

    Вопрос:

    Несколько раз спрашивал в ФИДО, но из ответов так и не понял, можно ли в форме VB сделать выделение меток перед полями ввода пунктирными линиями как в большинстве программ Windows (по клавише TAB). Можно ли это сделать в VB?

    Ответ:

    Автор ответа Шатрыкин Иван

    Только эмуляция, с помощью Shape или (для продвинутых) используя API функцию DrawFocusRect.

    Вопрос:

    Можно ли создать программу в VB такого рода: переводчик промт переводит word(овский) файл с русского на французский например,и копирует его обратно в word.

    Ответ:

    Автор ответа Шатрыкин Иван

    В папке с Promt лежит файл шаблон для Word под названием PROMTOF8, но он зашифрован. Если его сломать, то там все это и написано.

    Вопрос:

    Как вставить кодом (MS Access 2000) OLE-объект (f.e., jpg) в Recordset ?

    Ответ:

    Автор ответа Катковский Денис

    Как только путь до файла изображения получен - загоняем его в image.picture и даем юзверю убедиться в том, что именно это но и хотел. А сами тем временем убеждаемся что этот фай именно рисунок и все необходимое для его просмотра у нас имеется (нет ошибки - все оБ).
    Теперь нам осталось сохранить рисунок из image.PictureData в базу данных. И дело в шляпе!!!
    Есть только одно НО: PictureData имеет тип variant/byte(size), а это значит, что брать рисунок из базы и пихать его в PictureData следует ПРЯМО ИЗ Recordset'а!!! а не из запроса. Дело в том, что запрос преобразует наш variant/byte в простой String со всеми вытекающими...

    Вопрос:

    Как написать код преобразования числа в текст типа: 23 456,23 руб. преобразуется в "Двадцать три тысячи четыреста пятьдесят шесть рублей, 23 коп.

    Ответ:

    Я выложил на сайт код, который прислал мне Алексей Лукин. Посмотрите его.

    Вопрос:

    Как сделать панель как в MS Office или вроде виндоусной панели задач(той что с ПУСКом), чтобы за неё не прятались значки с рабочего стола, а отодвигались(как если переместить панель задач к другому краю).

    Ответ:

    Я выложил на сайт пример, который прислал мне Sergey Y. Tkachev

    Вопрос:

    Хочу ия VB связываться с ORACLE. Говорят существует библиотека. Ни у кого нет? Очень нужно! ПЛЗ!

    Ответ:

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

    Нужно в любом случае ставить клиента Оракла (там эта библиотека и находится). А из VB доступ получаете уже как хотите ADO, OLE DB, ну, или ODBC.

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

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

    наверх

            •

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

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


Выпуск 8.

VB Студия
  • Статьи - 29
  • Контролы - 9
  • Исходники - 21
  • Хитрости - 13
  • Куски кодов - 18
  • Windows Api - 17
  • FAQ
VB Line
  • Статьи
  • ActiveX
  • Примеры
  • Советы
  • Windows Api
Голосование:

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

Каким браузером Вы пользуетесь?
IE 4.x
IE 5
IE 5.5
IE 6
Netscape 4.x
Netscape 6
Opera
Другой

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

Sergey Y. Tkachev
Sergey Sapozhnikov
Sobic
 Несколько слов от автора:

Вышел новый выпуск. Уже восьмой.

Присылайте информацию и читайте рассылку!

Содержание выпуска
  • О группе СообчаVB

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

  • Добавление программы в автозагрузку (в реестр).
  • Динамическое добавление компонентов управления
  • Типы переменных
  • Как записать в реестр много ключей сразу?

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

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

О группе СообЧаVB

Группа VB. Заходите в гости. Здесь вы приобретете практические навыки по программированию на Visual Basic. Как вы этого сможете достигнуть? Путем написания собственной серьезной программы. Чем обычно занимается рядовой чайник-программист? Ну пишет там всякие приколы на VB... Ну ма-а-ленькую полезную программку наваяет. А как получить навыки в создании серьезных программ? Правильно, путем создания серьезных программ. ;) Но в одиночку вам с этим не справиться. Вот для этого в проекте СообЧа существует группа программистов-чайников, которые занимаются разработкой серьезного софта на VB. Суть состоит в том, что вам совсем необязательно знать все в Visual Basicе. Вам достаточно быть рядовым чайником и немного знать операторы VB. Остальному научимся вместе. На данный момент в группе разрабатывается почтовая программа под рабочим названием "Сообчайлер". Она будет уметь все, что умеет популярная программа The Bat и даже намного больше. Есть сборник оригинальных идей, выдвинутых членами нашей группы, которые мы постараемся реализовать все вместе. Проект разбивается на отдельные простые задачи. Такие как: проверка орфографии, форма для написания нового письма, главное окно... и т.п. Каждую часть делает отдельный человек. Затем он высылает сделанный модуль в группу и остальные просто присоединяют его к базовому проекту. Вам совсем не обязательно четко представлять как это сделать. Достаточно просто начать и столкнуться с какой-нибудь проблемой. Пусть это будет даже проблема типа "А как добавить новый модуль к проекту?". Все. Наткнулись... ;) Дальше действуем по одной схеме - пишем письмо с описанием проблемы в группу и мы все вместе разбираемся в проблеме. Таким образом все остальные получат ЗНАНИЯ и некоторые навыки в решении создавшихся проблем. Не забывайте - все мы чайники. Не стоит бояться задать вопрос. Задавайте - а мы вместе попытаемся найти ответ.

Подписаться в группу (пустое письмо)

наверх

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

  • 21 сентября 2001 года - Пополнение в разделе Примеры пополнение. Добавлены два примера Аркадия Оловянникова.
    Небольшие изменения в разделах FAQ и Библиотека кодов
  • 11 сентября 2001 года - В раздел Примеры добавлен пример создания Floating Bar - плавающей формы.
    Добавлен раздел Архив рассылки
    Количество подписчиков рассылки перевалило за 2000!

    наверх

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

    17 сентября 2001 г. Раздел Программы пополнился новой версией программы Михаила Эскина для регистрации OCX и DLL. 15 сентября 2001 г. В разделе Советы обновление, кроме того добавлены несколько новых примеров в Примеры, а также интересный OCX для работы со Scin-ами в разделе ActiveX.

    наверх

    Добавление программы в автозагрузку (в реестр).

    Option Explicit

    Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
    Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
    Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
    Private Const HKEY_LOCAL_MACHINE = &H80000002

    Private Sub AddToStartup(ByVal sDescription As String, ByVal sFile As String)
    Dim lRegKey As Long

    RegOpenKey HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Run", lRegKey

    If lRegKey Then
    RegSetValueEx lRegKey, sDescription, 0, 1, ByVal sFile, Len(sFile)
    RegCloseKey lRegKey
    End If

    End Sub

    наверх

    Динамическое добавление компонентов управления

    Ещё один совет от Дёмина Антона [http://demin.narod.ru]. Этот совет посвящен тем программистам, которые хотят, чтобы их программы работали быстрее - Динамическое добавление компонентов управления. Для чего? Дело в том, что формы, содержащие такие элементы управления загружаются на порядок быстрее. Итак:

    Если у Вас уже есть, например, TextBox с именем TextBox1 и требуется при выполнении некоторого события динамически добавить еще один (или несколько) TextBox, то решить задачу можно так: установите свойство TextBox1.Index=1, тогда новые контролы можно будет создать в массиве (control array) при помощи выражения Load:

    Load Text1(2)
    Text1(2).Text = "First New Text Box"
    Text1(2).Top = 500
    Text1(2).Left = 20
    Text1(2).Visible = True

    для добавления следующего контрола измените Index 2 на следующее значение.

    Если данный метод с массивом Вам не подходит, то можно воспользоваться методом Add, который позволяет добавлять новые компоненты в коллекцию (controls collection). Например, для добавления кнопки на форму, используйте следующий код:

    Dim cmdButton as Object
    Set cmdButton = Form1.Controls.Add("VB.CommandButton", "newButton")
    cmdButton.Caption = "New Button"
    cmdButton.Width = 1200
    cmdButton.Height = 1100
    cmdButton.Visible = True

    Обратите внимание, что если Ваш компонент требует лицензии, то для работы с ним вам нужно дополнительно воспользоваться так называемой Licenses collection. Пример кода для работы с ней: Licenses.Add "MSFlexGridLib.MSFlexGrid.1"

    наверх

    Типы переменных

    Автор:     Raven

    Visual Basic работает с 14 стандартными типами переменных.

    String Строковые переменные хранят символы. Один из способов обозначить данный тип переменной состоит в добавлении символа "$" к концу ее имени, например: AStringVariable$. Теоретически такая переменная может содержать до 2 миллиардов символов. ( А вы другой книжке у меня написано, что до 65535 символов... ) В любом случае на конкретном компьютере это число будет гораздо меньше из-за ограниченных объемов оперативной памяти, ресурсов Windows или числа символов, используемых в форме. Одно из наиболее основных применений строковых переменных состоит в выборе информации из полей ввода. Например, если есть поле ввода с именем Textl, то тогда оператор ContentOfTextlS = Textl.Text присваивает строку из поля ввода переменной в левой части данного оператора.

    Integer Целочисленные переменные могут хранить только относительно небольшие целые числа (в диапазоне от -32768 до +32767). Арифметические операции над такими числами выполняются очень быстро. Для обозначения такого типа используется символ "%": AnIntegerVariable% = 3

    Long Integer Данный тип впервые появился в языке QuickBASIC. В таких переменных хранятся целые значения от -2 147483648 до +2 147483647. Обозначается символом "&". Арифметические операции над такими числами выполняются тоже очень быстро, и при работе с процессором 386DX или 486DX существует лишь небольшая разница в скорости вычислений между Long Integer и Integer. ALongIntegerVariableS = 123456789

    Single Precision Идентификатором для данных чисел является символ "!". Данный тип переменной позволяет хранить дробные числа с точностью до семи цифр. Это означает, что если получается результат 12345678.97, то часть 8.97 не является точной. Результат может быть равен, к примеру, 12345670.01. Длина чисел может достигать 38 знаков. Вычисления с данными переменными тоже будут приблизительными. Более того, арифметические действия выполняются медленнее, чем с целочисленными переменными.

    Double Precision Переменные такого типа позволяют хранить числа с точностью до 16 цифр и длиной до 300 символов. Идентификатором является "#". Вычисления с ними тоже являются приблизительными, а скорость их относительно небольшая. В основном переменные типа Double Precision используются для научных расчетов.

    Currency Данный тип отсутствовал в версиях GW-BASIC и QuickBASIC. Он создан для того, чтобы избежать ошибок при преобразовании десятичных чисел в двоичную форму и наоборот. (Невозможно 1/10 представить как сумму 1/2,1/4, 1/8, 1/16 и т.п.) Данный тип может иметь до 4 цифр после запятой, и до 14 - перед ней. Внутри данного диапазона вычисления будут точными. Идентификатор представляет собой символ "@". Поскольку все арифметические операции, кроме сложения и вычитания, выполняются так же медленно, как и в случае переменных с двойной точностью, данный тип является предпочтительным для проведения финансовых расчетов. (Для тех, кто интересуется: данный тип использует целые числа из 19 разрядов, которые затем делятся на 10000. Это позволяет организовать 15 знаков до запятой и 4 после нее.)

    Date Этот тип данных позволяет хранить значения времени и даты в промежутке от полуночи 1 января 100 года до полуночи 31 декабря 9999 года. Такие значения в тексте программ обозначаются символами "#", например: Millenium = #January 1, 2000# Если вводится только значение даты, Visual Basic полагает, что время равняется 00:00.

    Byte Байтовый тип является новым в Visual Basic 5 и предназначен для хранения целых чисел от 0 до 255. Его использование позволяет сильно экономить оперативную память и уменьшать размер массивов по сравнению с предыдущими версиями Visual Basic. Кроме того, он используется при работе с двоичными файлами.

    Boolean Булев тип данных может хранить только два значения: True либо False. Его использование вместо целочисленных переменных является хорошим стилем программирования.

    Variant Данный тип добавлен в Visual Basic 5 из версии 2.0. Переменная типа variant может содержать данные любого типа. Если Visual Basic не знает тип принимаемых данных, необходимо использовать variant. Тип информации не имеет значения, поскольку variant может содержать любой тип данных (численный, дата/ время, строковый). Visual Basic автоматически производит необходимые преобразования данных, поэтому не стоит беспокоиться об этом. С другой стороны, можно использовать встроенные функции для проверки типа данных, хранящихся в переменной типа variant. Они позволяют легко проверить, правильно ли пользователь вводит информацию. Использование такого типа данных, как variant, замедляет работу программы, так как требуется время и ресурсы для операций преобразования типов. Кроме того, многие программисты понимают, что использование автоматических преобразований типов данных приводит к неаккуратному виду программ. Единственная причина в использовании variant состоит в возможных ошибках при преобразовании типов непосредственно программистом.

    наверх

    Как записать в реестр много ключей сразу?

    Автор:     @LEXis

    С помошью редактора реестра создайте файл (import) и сохраните его в фолдере с программой. после этого для внесения сохранной информации в реестр ( без лишних вопросов пользователю)

    Dim strFile As String
    strFile = App.Path & "\ИмяЭтогоФайла.reg"
    If Len(Dir$(strFile)) > 1 Then
    lngRet = Shell("Regedit.exe /s " & strFile, vbNormalFocus)
    End If

    наверх
    Мои программы

    BalloonMessage for MS Agent

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

    Подробнее...

    наверх

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

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

    Вопросы:

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

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

    Есть БД Access. Ия таблицы Tabl необходимо вытащить внешним модулем на VB5 проиявольную яапись с некоторым номером, для дальнейшей обработки. Помогите, кто янает.

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

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

    Как можно определить номер страницы в Верде (проблема яаключается в том, что иногда нумерация начинается с нуля, например, а номер страницы в верхний/нижний колонтитул не вставлен - обращаться некуда)?

    Автор вопроса: Артём

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

    Можно ли прочитать указанный мной сектор диска, если да то как?

    Автор вопроса: Татьяна

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

    Можно ли в ACCESS2000 сделать так, чтобы раяличные яаписи (строки)в форме отображались раяным цветом,например,для выделения красным просроченных платежей. Пробовала помечать bmp-ияображением, но это так долго_груяится. Записей много.

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

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

    Как_ сделать так, чтобы .wav файл играл как фоновая музыка и была слышен клик мыши_ на фоне музыки.

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

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

    Как из-под Basic for MS Excel выдать через динамик звук определенной частоты и длительности ( например, нота ЛЯ: 440 Гц, 1 секунда ) ? А как это сделать через колонки ( наушники ) ?

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

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

    Возможно ли с Помощью VB соядать программу дозвона по ppp-протоколу? Хотелось видеть исходный код, если это возможно.

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

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

    Люди!!! Кто знает как сделать графическое сопровождение музыкального файла как в Win. Media Player.

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

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

    Нужно вывести картинку запиханную в массив pic(width,height) as byte на экран, используя палитру Pal(255,2). Причем с максимальной скоростью. Пробовал преобразовывать в RGB картинку и выводить с помощью SetDIBitsToDevice, но получается медленно. Преобразования тормозят вывод. Может кто поможет?

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

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

    Внедряю .xls в Access (использую OLE). Сразу открывается этот файл. Каким образом заставить минимизироваться приложение Excel и как мне закрыть файл .xls или Excel. Перепробовала все команды из help'а, но они игнорируются. Помогите!!!

    Ответы:

    Вопрос:

    Можно ли в ACCESS2000 сделать так, чтобы раяличные яаписи (строки)в форме отображались раяным цветом,например,для выделения красным просроченных платежей. Пробовала помечать bmp-ияображением, но это так долго_груяится. Записей много.

    Ответ:

    Автор ответа Руленков Александр

    Да можно. Это делается при помощи условного форматирования. Открывай в меню формат >условное форматирование. Для поля в ленточной форме можно задать до 3 условий и соответсвенно разные цвета, начертание текста ,а также доступность или нет поля при соответсвия разным значениям. Это можно делать и в режиме конструктора формы и программно через семейство FormatConditions

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

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

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

    Требуется человек, знающий HTML для работы с сайтом группы СооБчаVB. Вопросы и предложения по этому адресу

    наверх

            •

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

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


Выпуск 9.

VB Студия
  • Статьи - 29
  • Контролы - 9
  • Исходники - 21
  • Хитрости - 21
  • Куски кодов - 18
  • Windows Api - 17
  • FAQ
VB Line
  • Статьи
  • ActiveX
  • Примеры
  • Советы
  • Windows Api
Голосование:

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

Каким браузером Вы пользуетесь?
IE 4.x
IE 5
IE 5.5
IE 6
Netscape 4.x
Netscape 6
Opera
Другой

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

Sergey Y. Tkachev
Sergey Sapozhnikov
Sobic
 Несколько слов от автора:

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

Содержание выпуска
  • О группе СообчаVB

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

  • По теме UpFolder
  • Создание линии, подчёркивающей меню
  • Как минимизировть все открытые окна, или восстановить их обратно
  • Как определить HOST и IP-адрес компьютера

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

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

О группе СообЧаVB

Группа VB. Заходите в гости. Здесь вы приобретете практические навыки по программированию на Visual Basic. Как вы этого сможете достигнуть? Путем написания собственной серьезной программы. Чем обычно занимается рядовой чайник-программист? Ну пишет там всякие приколы на VB... Ну ма-а-ленькую полезную программку наваяет. А как получить навыки в создании серьезных программ? Правильно, путем создания серьезных программ. ;) Но в одиночку вам с этим не справиться. Вот для этого в проекте СообЧа существует группа программистов-чайников, которые занимаются разработкой серьезного софта на VB. Суть состоит в том, что вам совсем необязательно знать все в Visual Basicе. Вам достаточно быть рядовым чайником и немного знать операторы VB. Остальному научимся вместе. На данный момент в группе разрабатывается почтовая программа под рабочим названием "Сообчайлер". Она будет уметь все, что умеет популярная программа The Bat и даже намного больше. Есть сборник оригинальных идей, выдвинутых членами нашей группы, которые мы постараемся реализовать все вместе. Проект разбивается на отдельные простые задачи. Такие как: проверка орфографии, форма для написания нового письма, главное окно... и т.п. Каждую часть делает отдельный человек. Затем он высылает сделанный модуль в группу и остальные просто присоединяют его к базовому проекту. Вам совсем не обязательно четко представлять как это сделать. Достаточно просто начать и столкнуться с какой-нибудь проблемой. Пусть это будет даже проблема типа "А как добавить новый модуль к проекту?". Все. Наткнулись... ;) Дальше действуем по одной схеме - пишем письмо с описанием проблемы в группу и мы все вместе разбираемся в проблеме. Таким образом все остальные получат ЗНАНИЯ и некоторые навыки в решении создавшихся проблем. Не забывайте - все мы чайники. Не стоит бояться задать вопрос. Задавайте - а мы вместе попытаемся найти ответ.

Подписаться в группу (пустое письмо)

наверх

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

  • 24 сентября 2001 года - Обновление в разделе Хитрости. Добавлено 8 новых хитростей.
  • 21 сентября 2001 года - Пополнение в разделе Примеры пополнение. Добавлены два примера Аркадия Оловянникова.
    Небольшие изменения в разделах FAQ и Библиотека кодов
  • 11 сентября 2001 года - В раздел Примеры добавлен пример создания Floating Bar - плавающей формы.
    Добавлен раздел Архив рассылки
    Количество подписчиков рассылки перевалило за 2000!

    наверх

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

    17 сентября 2001 г. Раздел Программы пополнился новой версией программы Михаила Эскина для регистрации OCX и DLL. 15 сентября 2001 г. В разделе Советы обновление, кроме того добавлены несколько новых примеров в Примеры, а также интересный OCX для работы со Scin-ами в разделе ActiveX.

    наверх

    По теме UpFolder

    Прислал     Иван Р.

    Это моё видение функции UpFolder - снижено
    количество операторов для обращений к строкам,
    сохранены все свойства от оригинала (неприкосновен
    ность входной переменной).

    Public Function UpFolder(Folder As String) as String
    Dim nn As Long
    nn=Len(Folder)

    If Right$(Folder, 1) = "\" Then nn=(nn-1)

    For nn = nn To 1 Step -1
    If Mid(Folder, nn, 1) = "\" Then Exit For
    Next nn

    UpFolder = Left(Folder, nn)
    End Function

    наверх

    Создание линии, подчёркивающей меню

    Если ваша форма содержит меню, введите в событие Form_Load этот код и под
    меню появится маленькая полоска, подчёркивающая меню:

    AutoRedraw = True
    ScaleMode = 3
    Cls
    Line (0, 0)-Step(ScaleWidth, 0), QBColor(8)
    Line (0, 1)-Step(ScaleWidth, 0), QBColor(15)
    AutoRedraw = False

    наверх

    Как минимизировть все открытые окна, или восстановить их обратно

    Поставьте на форму две кнопки и этот код:

    Private Const WM_COMMAND = &H111
    Private Const MIN_ALL = 419
    Private Const MIN_ALL_UNDO = 416

    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

    Private Sub Command1_Click()
    Dim lRetVal As Long
    lRetVal = FindWindow("Shell_TrayWnd", vbNullString)
    lRetVal = PostMessage(lRetVal, WM_COMMAND, MIN_ALL, 0&)
    End Sub

    Private Sub Command2_Click()
    Dim lRetVal As Long
    lRetVal = FindWindow("Shell_TrayWnd", vbNullString)
    lRetVal = PostMessage(lRetVal, WM_COMMAND, MIN_ALL_UNDO, 0&)
    End Sub

    наверх

    Как определить HOST и IP-адрес компьютера

    Подготовте проект, добавив в него форму.
    На форму поместите:
    - Кнопку с именем cmdGetHost
    - 2 текстовых поля с именами txtHostName и txtIpAddr
    Добавте в форму:

    ----

    Option Explicit

    Private Const MAX_WSADescription = 256
    Private Const MAX_WSASYSStatus = 128
    Private Const ERROR_SUCCESS As Long = 0
    Private Const WS_VERSION_REQD As Long = &H101
    Private Const WS_VERSION_MAJOR As Long = WS_VERSION_REQD \ &H100 And &HFF&
    Private Const WS_VERSION_MINOR As Long = WS_VERSION_REQD And &HFF&
    Private Const MIN_SOCKETS_REQD As Long = 1
    Private Const SOCKET_ERROR As Long = -1

    Private Type HOSTENT
    hName As Long
    hAliases As Long
    hAddrType As Integer
    hLen As Integer
    hAddrList As Long
    End Type

    Private Type WSADATA
    wVersion As Integer
    wHighVersion As Integer
    szDescription(0 To MAX_WSADescription) As Byte
    szSystemStatus(0 To MAX_WSASYSStatus) As Byte
    wMaxSockets As Integer
    wMaxUDPDG As Integer
    dwVendorInfo As Long
    End Type

    Private Declare Function WSAGetLastError Lib "WSOCK32.DLL" () As Long

    Private Declare Function WSAStartup Lib "WSOCK32.DLL" _
    (ByVal wVersionRequired As Long, lpWSADATA As WSADATA) As Long

    Private Declare Function WSACleanup Lib "WSOCK32.DLL" () As Long

    Private Declare Function gethostname Lib "WSOCK32.DLL" _
    (ByVal szHost As String, ByVal dwHostLen As Long) As Long

    Private Declare Function gethostbyname Lib "WSOCK32.DLL" _
    (ByVal szHost As String) As Long

    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
    (hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long)

    Public Function GetIPAddress() As String

    Dim sHostName As String * 256
    Dim lpHost As Long
    Dim HOST As HOSTENT
    Dim dwIPAddr As Long
    Dim tmpIPAddr() As Byte
    Dim i As Integer
    Dim sIPAddr As String

    If Not SocketsInitialize() Then
    GetIPAddress = ""
    Exit Function
    End If

    If gethostname(sHostName, 256) = SOCKET_ERROR Then
    GetIPAddress = ""
    MsgBox "Windows Sockets error " & Str$(WSAGetLastError()) & _
    " has occurred. Unable to successfully get Host Name."
    SocketsCleanup
    Exit Function
    End If

    sHostName = Trim$(sHostName)
    lpHost = gethostbyname(sHostName)

    If lpHost = 0 Then
    GetIPAddress = ""
    MsgBox "Windows Sockets are not responding. " & _
    "Unable to successfully get Host Name."
    SocketsCleanup
    Exit Function
    End If

    CopyMemory HOST, lpHost, Len(HOST)
    CopyMemory dwIPAddr, HOST.hAddrList, 4

    ReDim tmpIPAddr(1 To HOST.hLen)
    CopyMemory tmpIPAddr(1), dwIPAddr, HOST.hLen

    For i = 1 To HOST.hLen
    sIPAddr = sIPAddr & tmpIPAddr(i) & "."
    Next

    GetIPAddress = Mid$(sIPAddr, 1, Len(sIPAddr) - 1)

    SocketsCleanup

    End Function

    Public Function GetIPHostName() As String

    Dim sHostName As String * 256

    If Not SocketsInitialize() Then
    GetIPHostName = ""
    Exit Function
    End If

    If gethostname(sHostName, 256) = SOCKET_ERROR Then
    GetIPHostName = ""
    MsgBox "Windows Sockets error " & Str$(WSAGetLastError()) & _
    " has occurred. Unable to successfully get Host Name."
    SocketsCleanup
    Exit Function
    End If

    GetIPHostName = Left$(sHostName, InStr(sHostName, Chr(0)) - 1)
    SocketsCleanup

    End Function

    Private Function HiByte(ByVal wParam As Integer)
    HiByte = wParam \ &H1 And &HFF&
    End Function

    Private Function LoByte(ByVal wParam As Integer)
    LoByte = wParam And &HFF&
    End Function

    Private Sub SocketsCleanup()
    If WSACleanup() <> ERROR_SUCCESS Then
    MsgBox "Socket error occurred in Cleanup."
    End If
    End Sub

    Private Function SocketsInitialize() As Boolean

    Dim WSAD As WSADATA
    Dim sLoByte As String
    Dim sHiByte As String

    If WSAStartup(WS_VERSION_REQD, WSAD) <> ERROR_SUCCESS Then
    MsgBox "The 32-bit Windows Socket is not responding."
    SocketsInitialize = False
    Exit Function
    End If

    If WSAD.wMaxSockets < MIN_SOCKETS_REQD Then
    MsgBox "This application requires a minimum of " & _
    CStr(MIN_SOCKETS_REQD) & " supported sockets."

    SocketsInitialize = False
    Exit Function
    End If

    If LoByte(WSAD.wVersion) < WS_VERSION_MAJOR Or _
    (LoByte(WSAD.wVersion) = WS_VERSION_MAJOR And _
    HiByte(WSAD.wVersion) < WS_VERSION_MINOR) Then

    sHiByte = CStr(HiByte(WSAD.wVersion))
    sLoByte = CStr(LoByte(WSAD.wVersion))

    MsgBox "Sockets version " & sLoByte & "." & sHiByte & _
    " is not supported by 32-bit Windows Sockets."

    SocketsInitialize = False
    Exit Function

    End If

    SocketsInitialize = True

    End Function

    ' Использование

    Private Sub cmdGetHost_Click()

    txtHostName = GetIPHostName()
    txtIpAddr = GetIPAddress()

    End Sub

    наверх
    Мои программы

    BalloonMessage for MS Agent

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

    Подробнее...

    наверх

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

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

    Вопросы:

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

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

    Как создавать WinHelp файлы. И как сделать справку "Что это?"

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

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

    Как сделать на VB элемент управления ActiveX типа TreeView в такой иерархической системе, которая используется в Win98. Если можно покажите код.

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

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

    Прошу помочь в написании кода для работы с LPT портом, необходимо: переслать байт в порт, управлять линией STROBE.

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

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

    Вот еще один вопросик: как сохранять иконку из picture на диск через API(по типу SavePicture)?

    Автор вопроса: Богдан

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

    Как внедрить Word2000 на форму Access2000?
    Вместо поля Edit я хотел бы поместить Ворд для редактирования текста на форму Access'а.

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

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

    Есть БД Access. Ия таблицы Tabl необходимо вытащить внешним модулем на VB5 проиявольную яапись с некоторым номером, для дальнейшей обработки. Помогите, кто янает.

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

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

    Как можно определить номер страницы в Верде (проблема яаключается в том, что иногда нумерация начинается с нуля, например, а номер страницы в верхний/нижний колонтитул не вставлен - обращаться некуда)?

    Автор вопроса: Артём

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

    Можно ли прочитать указанный мной сектор диска, если да то как?

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

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

    Как_ сделать так, чтобы .wav файл играл как фоновая музыка и была слышен клик мыши_ на фоне музыки.

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

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

    Как из-под Basic for MS Excel выдать через динамик звук определенной частоты и длительности ( например, нота ЛЯ: 440 Гц, 1 секунда ) ? А как это сделать через колонки ( наушники ) ?

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

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

    Возможно ли с Помощью VB соядать программу дозвона по ppp-протоколу? Хотелось видеть исходный код, если это возможно.

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

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

    Люди!!! Кто знает как сделать графическое сопровождение музыкального файла как в Win. Media Player.

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

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

    Нужно вывести картинку запиханную в массив pic(width,height) as byte на экран, используя палитру Pal(255,2). Причем с максимальной скоростью. Пробовал преобразовывать в RGB картинку и выводить с помощью SetDIBitsToDevice, но получается медленно. Преобразования тормозят вывод. Может кто поможет?

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

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

    Внедряю .xls в Access (использую OLE). Сразу открывается этот файл. Каким образом заставить минимизироваться приложение Excel и как мне закрыть файл .xls или Excel. Перепробовала все команды из help'а, но они игнорируются. Помогите!!!

    Ответы:

    Вопрос:

    Можно ли в ACCESS2000 сделать так, чтобы раяличные яаписи (строки)в форме отображались раяным цветом,например,для выделения красным просроченных платежей. Пробовала помечать bmp-ияображением, но это так долго_груяится. Записей много.

    Ответ:

    Автор ответа Руленков Александр

    Да можно. Это делается при помощи условного форматирования. Открывай в меню формат >условное форматирование. Для поля в ленточной форме можно задать до 3 условий и соответсвенно разные цвета, начертание текста ,а также доступность или нет поля при соответсвия разным значениям. Это можно делать и в режиме конструктора формы и программно через семейство FormatConditions

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

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

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

    Требуется человек, знающий HTML для работы с сайтом группы СооБчаVB. Вопросы и предложения по этому адресу

    наверх

            •

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

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


Выпуск 10.

VB Студия
  • Статьи - 29
  • Контролы - 9
  • Исходники - 21
  • Хитрости - 27
  • Куски кодов - 18
  • Windows Api - 17
  • FAQ
VB Line
  • Статьи
  • ActiveX
  • Примеры
  • Советы
  • Windows Api
Голосование:

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

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

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

Sergey Y. Tkachev
Sergey Sapozhnikov
Sobic
 Несколько слов от автора:

Этот выпуск немного опоздал по техническим причинам - в течении двух недель у меня не было доступа в сеть. Вопросы и ответы, а также любой другой материал, присланный Вами после 25 сентября не вошёл в этот и предыдущий номер рассылки, но я обязательно опубликую их в следующих выпусках.
Читайте!

Содержание выпуска
  • О группе СообчаVB

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

  • Ведение лог-файлов
  • Как узнать расположение понели задач?
  • Как спрятать панель задач?
  • Сумма прописью

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

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

О группе СообЧаVB

Группа VB. Заходите в гости. Здесь вы приобретете практические навыки по программированию на Visual Basic. Как вы этого сможете достигнуть? Путем написания собственной серьезной программы. Чем обычно занимается рядовой чайник-программист? Ну пишет там всякие приколы на VB... Ну ма-а-ленькую полезную программку наваяет. А как получить навыки в создании серьезных программ? Правильно, путем создания серьезных программ. ;) Но в одиночку вам с этим не справиться. Вот для этого в проекте СообЧа существует группа программистов-чайников, которые занимаются разработкой серьезного софта на VB. Суть состоит в том, что вам совсем необязательно знать все в Visual Basicе. Вам достаточно быть рядовым чайником и немного знать операторы VB. Остальному научимся вместе. На данный момент в группе разрабатывается почтовая программа под рабочим названием "Сообчайлер". Она будет уметь все, что умеет популярная программа The Bat и даже намного больше. Есть сборник оригинальных идей, выдвинутых членами нашей группы, которые мы постараемся реализовать все вместе. Проект разбивается на отдельные простые задачи. Такие как: проверка орфографии, форма для написания нового письма, главное окно... и т.п. Каждую часть делает отдельный человек. Затем он высылает сделанный модуль в группу и остальные просто присоединяют его к базовому проекту. Вам совсем не обязательно четко представлять как это сделать. Достаточно просто начать и столкнуться с какой-нибудь проблемой. Пусть это будет даже проблема типа "А как добавить новый модуль к проекту?". Все. Наткнулись... ;) Дальше действуем по одной схеме - пишем письмо с описанием проблемы в группу и мы все вместе разбираемся в проблеме. Таким образом все остальные получат ЗНАНИЯ и некоторые навыки в решении создавшихся проблем. Не забывайте - все мы чайники. Не стоит бояться задать вопрос. Задавайте - а мы вместе попытаемся найти ответ.

Подписаться в группу (пустое письмо)

наверх

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

  • 10 октября 2001 года - Добавлены хитрости.
    Вышел десятый юбилейный выпуск рассылки. Все выпуски рассылки можно посмотреть здесь
    Сайт полностью избавлен от графических баннеров. Остался только блок из трёх текстовых ссылок. Грузиться будет быстрее!
    Добавлена одна замечательная программа в раздел Утилиты. Это русскоязычная программа русского же разработчика для создания файлов справки. Встраивается в Microsoft Word. Работать с неё предельно легко! Обязательно посмотрите. Размер около двух мегобайт.
    Старые новости ущли в архив.

    наверх

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

    17 сентября 2001 г. Раздел Программы пополнился новой версией программы Михаила Эскина для регистрации OCX и DLL. 15 сентября 2001 г. В разделе Советы обновление, кроме того добавлены несколько новых примеров в Примеры, а также интересный OCX для работы со Scin-ами в разделе ActiveX.

    наверх

    Ведение лог-файлов

    Очень полезно, чтобы программа вела лог-файлы своей работы. Особенно записывала туда время и на каком этапе произошел сбой. В дальнейшем это существенно облегчает поиск и исправление ошибки. Вдобавок если вы программу делали на заказ, то цена такого протокола работы резко возрастает. Все что нам нужно для работы - это ввести одну-две переменных и добавить одну ма-а-ахонькую процедурку. Итак, поехали:
    Для начала объявим переменную Private Logging As Boolean
    Она будет служить нам для разрешения/запрета ведения подробного протокола работы. Это необходимо, чтобы без нужды не писать в файл большое количество информации. Только время запуска/завершения и код и описание ошибки, если таковая была. Добавим в программу возможность запуска с ключом /l для ведения подробных логов. это придаст гибкость программе. З.Ы. чтобы запустить программу с ключем /l создайте ярлык программе и добавте в пути к программе (лейбл объект) этот ключ.

    'Если программа была запущена с ключем /l, то записываем
    'все действия программы в логи, иначе - записываются только
    'контрольные точки и сообщения об ошибках
    If Command$ = "/l" Then Logging = True Else Logging = False
    If InStr(1, Command$, "/l") > 0 Then Logging = True Else Logging = False

    Ну, а теперь осталось только добавить саму процедуру записи действия:

    Private Sub Log(Promt As String)
    'Процедура, которая ведет логи в зависимости от ключа в
    'коммандной строке
    'Если переменная установлена в False (запуск без ключа /l), то пропускаем
    If Logging = False Then Exit Sub
    Dim FileNum As Integer
    FileNum = FreeFile
    Open App.Path & "\checker.log" For Append As FileNum
    Write #FileNum, " " & Promt
    Close #FileNum
    End Sub

    Вот и все. Теперь используем ее везде, где хоть что-то делается. Это дабавляйте в том месте где нужно добавить запись в лог-файл.

    Log Now & "Получение почты" & vbCrLf

    Однако для наиболее ответственных точек сделаем отдельную процедуру записи состояния программы в этих точках LogGeneral.

    Private Sub LogGeneral(Promt As String)
    'Процедура, которая ведет логи.
    Dim FileNumb As Integer
    FileNumb = FreeFile
    Open App.Path & "\checker.log" For Append As FileNumb
    Write #FileNumb, " " & Promt
    Close #FileNumb
    End Sub

    наверх

    Как узнать расположение панели задач?

    Таскбар может быть налепелен слева, справа, или даже сверху. А некоторые юзеры (никому не рассказывайте только) делают его высотой в 2 или 3 строки.
    Таким образом, ваше приложение может не влезать в экран. Первый прмер позволит спрятать таскбар если он мешается , а вот мешается ли он - можно выяснить взяв его размеры и координаты:

    Dim mLeft As Single
    Dim mTop As Single
    Dim mWidth As Single
    Dim mHeight As Single

    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lprect As RECT) As Long

    Dim precTaskbar As RECT
    Dim plngResult As Long
    Dim phWndTaskbar As Long

    phWndTaskbar = FindWindow("shell_trayWnd", "")
    plngResult = GetWindowRect(phWndTaskbar, precTaskbar)
    mLeft = precTaskbar.L * Screen.TwipsPerPixelX
    mTop = precTaskbar.T * Screen.TwipsPerPixelY
    mWidth = (precTaskbar.R - precTaskbar.L) * Screen.TwipsPerPixelX
    mHeight = (precTaskbar.B - precTaskbar.T) * Screen.TwipsPerPixelY
    Print mLeft, mTop, mHeight

    End Sub

    Private Sub Form_DblClick()
    GetTascbarInfo
    End Sub

    наверх

    Как спрятать панель задач

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

    Скопируйте это на форму , запустите ее.

    Private Declare Function FindWindow Lib "user32" _
    Alias "FindWindowA" (ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long
    Private Declare Function SendMessage Lib "user32" _
    Alias "SendMessageA"(ByVal hwnd As Long, _
    ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    'Заметьте, никаких Public декларайий внутри формы. Если функции
    'обьявлены в модуле, то там можно делать их паблик

    Private Const WM_SHOWWINDOW = &H18

    Dim hWndTaskbar As Long
    Dim bShow As Boolean

    Private Sub Form_Click()
    Dim r As Long
    Dim i As Integer
    i = 0
    bShow = Not bShow
    r = SendMessage(hWndTaskbar, WM_SHOWWINDOW, bShow, i)
    End Sub

    Private Sub Form_Load()
    bShow = True
    hWndTaskbar = FindWindow("shell_trayWnd", "")
    End Sub

    наверх

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

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

    Требуется человек, знающий HTML для работы с сайтом группы СооБчаVB. Вопросы и предложения по этому адресу

    наверх

    Сумма прописью

    cmdInput - CommandButton
    txtInput - TextBox
    txtOut - TextBox

    Public Function Num3(trojka$, i%)
    Dim sl$(1 To 3, 0 To 3)
    sl$(1, 1) = "миллион "
    sl$(2, 1) = "тысяча "
    sl$(3, 1) = "рубль "
    '---
    sl$(1, 2) = "миллиона "
    sl$(2, 2) = "тысячи "
    sl$(3, 2) = "рубля "
    '---
    sl$(1, 3) = "миллионов "
    sl$(2, 3) = "тысяч "
    sl$(3, 3) = "рублей "
    sl$(3, 0) = "рублей "
    '---
    ed$ = Right$(trojka$, 1)
    des$ = Mid$(trojka$, 2, 1)
    sot$ = Left$(trojka$, 1)
    '---
    If ed$ = "0" Then r3$ = ""
    If ed$ = "1" Then If i% = 2 Then r3$ = "одна " Else r3$ = "один "
    If ed$ = "2" Then If i% = 2 Then r3$ = "две " Else r3$ = "два "
    If ed$ = "3" Then r3$ = "три "
    If ed$ = "4" Then r3$ = "четыре "
    If ed$ = "5" Then r3$ = "пять "
    If ed$ = "6" Then r3$ = "шесть "
    If ed$ = "7" Then r3$ = "семь "
    If ed$ = "8" Then r3$ = "восемь "
    If ed$ = "9" Then r3$ = "девять "
    '---
    If des$ = "0" Then r2$ = ""
    s$ = des$ & ed$
    If s$ = "10" Then r3$ = "десять "
    If s$ = "11" Then r3$ = "одиннадцать "
    If s$ = "12" Then r3$ = "двенадцать "
    If s$ = "13" Then r3$ = "тринадцать "
    If s$ = "14" Then r3$ = "четырнадцать "
    If s$ = "15" Then r3$ = "пятнадцать "
    If s$ = "16" Then r3$ = "шестнадцать "
    If s$ = "17" Then r3$ = "семнадцать "
    If s$ = "18" Then r3$ = "восемнадцать "
    If s$ = "19" Then r3$ = "девятнадцать "
    '---
    If des$ = "2" Then r2$ = "двадцать "
    If des$ = "3" Then r2$ = "тридцать "
    If des$ = "4" Then r2$ = "сорок "
    If des$ = "5" Then r2$ = "пятьдесят "
    If des$ = "6" Then r2$ = "шестьдесят "
    If des$ = "7" Then r2$ = "семьдесят "
    If des$ = "8" Then r2$ = "восемьдесят "
    If des$ = "9" Then r2$ = "девяносто "
    '---
    If sot$ = "0" Then r1$ = ""
    If sot$ = "1" Then r1$ = "сто "
    If sot$ = "2" Then r1$ = "двести "
    If sot$ = "3" Then r1$ = "триста "
    If sot$ = "4" Then r1$ = "четыреста "
    If sot$ = "5" Then r1$ = "пятьсот "
    If sot$ = "6" Then r1$ = "шестьсот "
    If sot$ = "7" Then r1$ = "семьсот "
    If sot$ = "8" Then r1$ = "восемьсот "
    If sot$ = "9" Then r1$ = "девятьсот "
    '---
    If trojka$ <> "000" Then j% = (-1) * CInt(ed$ = "1" And des$ <> "1") _
    + (-2) * CInt((ed$ = "2" Or ed$ = "3" Or ed$ = "4") And des$ <> "1")
    If j% = 0 And trojka$ <> "000" Then j% = 3
    trojka$ = r1$ & r2$ & r3$ & sl$(i%, j%) 'формирование тройки цифр и
    'слова,например-"123 тысячи"
    End Function
    '***

    Private Sub cmdinput_Click()
    w$ = txtinput.Text 'Входное число - текст типа "123.45",защита
    '"от дурака" не сделана
    'выделение рублей в записи числа и удаление левых пробелов
    rubli$ = LTrim$(Left$(Str(Val(w$) * 100), _
    Len(Str(Val(w$) * 100)) - 2))
    cop$ = RTrim$(Right$(Str(Val(w$) * 100), 2)) 'выделение дробной части
    'числа и удаление правых пробелов

    Do While Len(rubli$) < 9
    rubli$ = "0" & rubli$
    Loop
    res$ = ""
    For i% = 1 To 3
    trojka$ = Mid$(rubli$, 3 * i% - 2, 3)
    Call Num3(trojka$, i%) ' Вызов функции формирования готовой тройки,
    'типа "123 тысячи"
    res$ = res$ & trojka$ ' Накопление таких троек
    Next i%
    res$ = UCase$(Left$(res$, 1)) & Right$(res$, Len(res$) - 1) 'Запись
    'первой буквы res$ в верхнем регистре

    c$ = " копеек" ' Блок добавления копеек
    If (Right$(cop$, 1) = "1" And Left$(cop$, 1) <> "1") Then c$ = _
    " копейка"
    If ((Right$(cop$, 1) = "2" Or Right$(cop$, 1) = "3" Or _
    Right$(cop$, 1) = "4") And Left$(cop$, 1) <> "1") Then _
    c$ = " копейки"
    If Left(res$, 1) <> "Р" Then res$ = res$ & cop$ & c$ Else _
    res$ = cop$ & c$

    txtout.Text = res$ ' Выход текста
    End Sub

    наверх
    Мои программы

    BalloonMessage for MS Agent

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

    Подробнее...

    наверх

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

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

    Вопросы:

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

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

    Люди!!! Есть предложение создать ocx контрол для просмотра массивов от одномерного 1*n до матрици n*m на подобии msflexgrid контрола (с заголовками и всякими опциями) тока он будет изначально отображать лишь столько строк(s) на экране ,сколько входит в рабочую область , а затем при прокрутке будет выбираться из данного массива по s записей и отображаться с первой строки в контроле, а строки в контроле меняются тока при изменении размеров контрола . Это будет занимать гораздо меньше времени , чем копирование всего массива в мсфлексгрид . Или достать исходнини мсфлексгрида и чуть-чуть его переделать (тока где их достать). Я начал делать такой контрол, но ничего не получилось из этого хорошего

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

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

    1) Как быстро упорядочить(отсортировать) массив(Long) данных?
    2) Как быстро удалить несколько(n) элементов этого массива?

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

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

    Надо нажимая на кнопку, запускать привязанный как то к ней вордовский документ в ворде.

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

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

    Как создавать WinHelp файлы. И как сделать справку "Что это?"

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

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

    Как сделать на VB элемент управления ActiveX типа TreeView в такой иерархической системе, которая используется в Win98. Если можно покажите код.

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

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

    Прошу помочь в написании кода для работы с LPT портом, необходимо: переслать байт в порт, управлять линией STROBE.

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

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

    Вот еще один вопросик: как сохранять иконку из picture на диск через API(по типу SavePicture)?

    Автор вопроса: Богдан

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

    Как внедрить Word2000 на форму Access2000? Вместо поля Edit я хотел бы поместить Ворд для редактирования текста на форму Access'а.

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

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

    Есть БД Access. Ия таблицы Tabl необходимо вытащить внешним модулем на VB5 проиявольную яапись с некоторым номером, для дальнейшей обработки. Помогите, кто янает.

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

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

    Как можно определить номер страницы в Верде (проблема яаключается в том, что иногда нумерация начинается с нуля, например, а номер страницы в верхний/нижний колонтитул не вставлен - обращаться некуда)?

    Автор вопроса: Артём

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

    Можно ли прочитать указанный мной сектор диска, если да то как?

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

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

    Как_ сделать так, чтобы .wav файл играл как фоновая музыка и была слышен клик мыши_ на фоне музыки.

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

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

    Как из-под Basic for MS Excel выдать через динамик звук определенной частоты и длительности ( например, нота ЛЯ: 440 Гц, 1 секунда ) ? А как это сделать через колонки ( наушники ) ?

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

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

    Внедряю .xls в Access (использую OLE). Сразу открывается этот файл. Каким образом заставить минимизироваться приложение Excel и как мне закрыть файл .xls или Excel. Перепробовала все команды из help'а, но они игнорируются.

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

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

    Нужно вывести картинку запиханную в массив pic(width,height) as byte на экран, используя палитру Pal(255,2). Причем с максимальной скоростью. Пробовал преобразовывать в RGB картинку и выводить с помощью SetDIBitsToDevice, но получается медленно. Преобразования тормозят вывод. Может кто поможет?

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

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

    Кто знает как сделать графическое сопровождение музыкального файла как в Win. Media Player.

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

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

    Вояможно ли с Помощью VB соядать программу доявона по ppp-протоколу? Хотелось видеть исходный код, если это вояможно.

    Ответы:

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

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

    наверх

            •

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

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


Выпуск 11.

VB Студия
  • Статьи - 29
  • Контролы - 9
  • Исходники - 21
  • Хитрости - 27
  • Куски кодов - 18
  • Windows Api - 17
  • FAQ
VB Line
  • Статьи
  • ActiveX
  • Примеры
  • Советы
  • Windows Api
Голосование:

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

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

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

Sergey Y. Tkachev
Sergey Sapozhnikov
Sobic
 Несколько слов от автора:

Этот выпуск вышел вовремя.
Читайте!

Содержание выпуска
  • Новости сайта VB Студия
  • Новости сайта VBLine

  • Определение IP адреса и хоста
  • Определения нличия аудиокарты
  • Пауза между двумя кусками кода
  • Вопрос/Ответ

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

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

  • 10 октября 2001 года - Добавлены хитрости.
    Вышел десятый юбилейный выпуск рассылки. Все выпуски рассылки можно посмотреть здесь
    Сайт полностью избавлен от графических баннеров. Остался только блок из трёх текстовых ссылок. Грузиться будет быстрее!
    Добавлена одна замечательная программа в раздел Утилиты. Это русскоязычная программа русского же разработчика для создания файлов справки. Встраивается в Microsoft Word. Работать с неё предельно легко! Обязательно посмотрите. Размер около двух мегобайт.
    Старые новости ущли в архив.

    наверх

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

    08 октября 2001 г. Новые поступления на сайт! В Internet появился новый сайт по VB, он называется Использование VB, сходите, посмотрите, сайт только начал работу и информации там немного, но поддержать автора стоит. В Примерах ну очень полезный и забавный пример на тему анимации с использованием BitBlt, рекомендую всем посмотреть (смешной мужичек работает отбойным молотком!), там же новый пример на тему изменения атрибутов файла. Кто-нибудь знает как считать данные из BIOS? Внимание! "смертельный номер" пример читает из BIOS данные. В то же разделе интересный пример OCX, который эмулирует кнопки в стиле Pascal, и напоследок, пример реализации неограниченного Undo-Redo в текстовом редакторе.

    наверх

    Определение IP адреса и хоста

    Прислал     Sergey Y. Tkachev

    В последнем выпуске Вашей рассылки прочитал очень интересный пример по определению хоста и IP.
    Сделано все до ужаса красиво и правильно. Но для начинающего программиста достаточно сложно, тем более, что реализация связана с применением API. В данном случае, как говорится в рекламе, "есть выход проще". Но не Рондо, а Microsoft Winsock Control

    Есть у него два прекрасных свойства: LocalHostName и LocalIP. Ниже привожу маленький пример, как их можно использовать:

    Поместите на форму Winsock Control и CommandButton, а потом добавьте следующий код

    Private Sub Command1_Click()
    MsgBox "Local Host Name: " & Winsock1.LocalHostName & vbCrLf & "Local IP: "
    & Winsock1.LocalIP
    End Sub

    Запустите проект и нажмите на кнопочку.
    Вот и всё

    наверх

    Как узнать расположение панели задач?

    Declare Function waveOutGetNumDevs Lib "winmm.dll" () As Long

    Private Sub Check_Click()
    Dim rtn As Integer 'declare the needed variables
    rtn = waveOutGetNumDevs() 'check for a sound card
    If rtn = 1 Then 'Когда больше, чем 1- карта работает :-)
    MsgBox "Your system supports a sound card."
    Else 'А иначе карты нету :-(
    MsgBox "Your system cannot play Sound Files."
    End If
    End Sub

    наверх

    Пауза между двумя кусками кода

    Автор:     Алексей Вишневский

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

    Function Delay(Pause as single)
    dim Start as Single
    start = Timer
    Do While Timer start + pause
    DoEvents
    Loop
    End Function
    ' Разрешающая способность зависит от версии Windows
    ' В 9х - 55 мсек
    ' В NT - 10 мсек
    'Вызов
    Delay 1 'задержка на секунду
    'Можно и так
    Delay 0.3 'задержка на 300 мсек

    наверх

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

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

    Требуется человек, знающий HTML для работы с сайтом группы СооБчаVB. Вопросы и предложения по этому адресу

    наверх

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

    BalloonMessage for MS Agent

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

    Подробнее...

    наверх

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

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

    Вопросы:

    Автор вопроса:     Артем

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

    Надо преобразовать прогу с VBDOS в VB6. Проблема в том что там идет непрерывный вывод диаграммы псевдографикой со скроллингом экрана, а метод print для формы уводит вывод за ее предел. Как сделать аналог досовского print (вывод со скроллингом)?

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

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

    Нужна функция округления чисел.

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

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

    Знаю что можно, но как? Суть в следующем: есть программа написанная на FoxPro2.6 Знаю, что в VBA можно испольяовать коды написанные в FoxProподключив библиотеку. Какую? Не янаю.
    Кто вкурсе, подскажите

    Автор вопроса: Pavel Dobrokhotov

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

    Я делаю прогу, которая работает с MTS (Microsoft Transaction Server)
    У меня NT4.0 + Service Pack 6.a + SQL2000
    Когда я устанавливал Option pack 4.0 (куда входит IIS и MTS)что- то некорректно установилось и MTS (mtxas.dll) не работет корректно.
    Кто-то сталкивался с подобным?
    Я думаю, что Option pack 4.0 надо устанавливать на версию не позже Service Pack 4.0. Я прав?

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

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

    Подскажите плз, как програмно поменять ориентацию бумаги в принтере по умолчанию, а то у мена DataReport не хочет отображать отчёты в ориентации Ландшафт?

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

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

    Кто мне поможет программно отключить нажатие клавиши Start на клавиатуре или хотя бы скажет ее код.

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

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

    При выполнении фрагмента программы, который есть в любом учебнике, а также входит в справку Offica выскакивает ошибка "Ошибка компиляции: Недопустимая внешняя процедура."
    Фрагмент программ:
    Dim A As Variant
    A = Array(10, 20, 30)
    B = A(2)
    Подскажите в чем причина данной ошибки.

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

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

    Как получить список IP адресов или имен компьютеров, находящихся в локальной сети?

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

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

    Как просто реализовать грид подобно тому который в VB студии в пропертях с кнопками, развертывающимеся строками и тд, а главное чтобы все это хозяйство нормально отрабатывало скролбар?

    Автор вопроса: Карпова Елена

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

    Не могу включить CapsLock из программы (VB6):
    SendKeys "{CAPSLOCK}", True
    хотя SendKeys "%{F4}", True - отрабатывает нормально.
    Не может это быть из-за использования программы "Опечатка", меняющей раскладку клавиатуры? Но я ее выключала, а строка не отрабатывала.

    Автор вопроса: Чемерис В.Д.

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

    Как сгруппировать данные в DstsReport (например выводить список товаров, сгруппированный по видам и над каждой группой выводить название вида товара)

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

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

    Люди!!! Есть предложение создать ocx контрол для просмотра массивов от одномерного 1*n до матрици n*m на подобии msflexgrid контрола (с заголовками и всякими опциями) тока он будет изначально отображать лишь столько строк(s) на экране ,сколько входит в рабочую область , а затем при прокрутке будет выбираться из данного массива по s записей и отображаться с первой строки в контроле, а строки в контроле меняются тока при изменении размеров контрола . Это будет занимать гораздо меньше времени , чем копирование всего массива в мсфлексгрид . Или достать исходнини мсфлексгрида и чуть-чуть его переделать (тока где их достать). Я начал делать такой контрол, но ничего не получилось из этого хорошего

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

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

    1) Как быстро упорядочить(отсортировать) массив(Long) данных?
    2) Как быстро удалить несколько(n) элементов этого массива?

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

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

    Как сделать на VB элемент управления ActiveX типа TreeView в такой иерархической системе, которая используется в Win98. Если можно покажите код.

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

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

    Прошу помочь в написании кода для работы с LPT портом, необходимо: переслать байт в порт, управлять линией STROBE.

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

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

    Вот еще один вопросик: как сохранять иконку из picture на диск через API(по типу SavePicture)?

    Автор вопроса: Богдан

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

    Как внедрить Word2000 на форму Access2000? Вместо поля Edit я хотел бы поместить Ворд для редактирования текста на форму Access'а.

    Автор вопроса: Артём

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

    Можно ли прочитать указанный мной сектор диска, если да то как?

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

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

    Как_ сделать так, чтобы .wav файл играл как фоновая музыка и была слышен клик мыши_ на фоне музыки.

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

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

    Как из-под Basic for MS Excel выдать через динамик звук определенной частоты и длительности ( например, нота ЛЯ: 440 Гц, 1 секунда ) ? А как это сделать через колонки ( наушники ) ?

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

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

    Нужно вывести картинку запиханную в массив pic(width,height) as byte на экран, используя палитру Pal(255,2). Причем с максимальной скоростью. Пробовал преобразовывать в RGB картинку и выводить с помощью SetDIBitsToDevice, но получается медленно. Преобразования тормозят вывод. Может кто поможет?

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

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

    Кто знает как сделать графическое сопровождение музыкального файла как в Win. Media Player.

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

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

    Вояможно ли с Помощью VB соядать программу доявона по ppp-протоколу? Хотелось видеть исходный код, если это вояможно.

    Ответы:

    Вопрос:

    Надо нажимая на кнопку, запускать привязанный как то к ней вордовский документ в ворде.

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Dim FilePathName as String
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    Const SW_SHOWNORMAL = 1

    FilePathName = "C:\MY_FOLDER\DOCUMENT1.DOC"
    ShellExecute Me.hwnd, vbNullString, FilePathName, vbNullString, "C:\", SW_SHOWNORMAL

    Вопрос:

    Как создавать WinHelp файлы. И как сделать справку "Что это?"

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Есть такая мелко-мягковская приблуда, называется Microsoft Help Workshop. Она идет в комплекте с Visual Studio 5 (прим.редактора: и 6 тоже). Создаешь файлики с текстом в формате rtf, при этом все линки и заголовки помечаешь особым образом, который достаточно хорошо описан в хелпах, а затем компилишь всё это. Пробовал - работает. Чтобы сделать справку "Что это?" для контрола, нужно прописать ему свойство HelpContextID, в котором указать идентификатор раздела в справочной системе.
    Тот компилятор, о котором я говорил выше - нормальное виндовое окошечное приложение. С Visual Studio 4 поставлялся немного другой, работающий в командной строке. Я долго пытался с ним научится, но терпение мое скоро лопнуло.
    Сейчас есть нечто более модно-современное - Microsoft HTML Help Workshop. Из названия понятно, что тут rtf заменили на HTML, а сама справка будет иметь вид, очень приближенный к MSDN, а следовательно, требует Internet Explorer. Однако работать с ним ещё проще. Разобраться модно максимум за полдня. Да и скачать его с Майкрософтовского сайта можно в любой момет (по-моему, около 3 МБ) Поставляется также с Service Pack 3 и выше.

    Вопрос:

    Есть БД Access. Ия таблицы Tabl необходимо вытащить внешним модулем на VB5 проиявольную яапись с некоторым номером, для дальнейшей обработки. Помогите, кто янает.

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Попробуй открывать рекордсет в ВБ, а потом воспользоваться свойством AbsolutePosition (речь идет про ADODB.Recordset). Можешь перемещаться на запись с конкретным номером, ну а сам "конкрутный номер" можешь генерировать случайным образом.

    Вопрос:

    Как можно определить номер страницы в Верде (проблема яаключается в том, что иногда нумерация начинается с нуля, например, а номер страницы в верхний/нижний колонтитул не вставлен - обращаться некуда)?

    Ответ:

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

    В Word VBA есть такое propperty как Information. Применяется к объекту Selection или Range с нужным параметром, например:

    Определение номера страницы, на которой находится курсор (или оканчивается выделение текста), если нумерация страниц в документе не с первого номера:

    Dim pNum As Integer
    ...
    pNum = Selection.Information(wdActiveEndAdjustedPageNumber)

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

    Dim myRange As Range
    Dim pNum As Integer
    ...
    Set myRange = ...
    pNum = myRange.Information(wdActiveEndPageNumber)

    А вообще лучше посмотреть help Word VBA, там все параметры Information дадены и расписаны.

    Вопрос:

    Внедряю .xls в Access (использую OLE). Сразу открывается этот файл. Каким образом заставить минимизироваться приложение Excel и как мне закрыть файл .xls или Excel. Перепробовала все команды из help'а, но они игнорируются.

    Ответ:

    Автор ответа: Анатолий Лящук

    Set appExcel = CreateObject("Excel.Application")
    appExcel.Visible = False

    Вопрос:

    Внедряю .xls в Access (использую OLE). Сразу открывается этот файл. Каким образом заставить минимизироваться приложение Excel и как мне закрыть файл .xls или Excel. Перепробовала все команды из help'а, но они игнорируются.

    Ответ:

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

    Честно сказать, с Access'ом я не работал, но лично я сделал бы примерно так: надо создать переменную типа Excel.Application, схватить в нее открывшийся Excel (Set xlApp = GetObject("Excel.Application")), а потом уже с Excel'ем можно делать что хочешь: можно окно спрятать (xlApp.Visible = False , главное потом про него не забыть, а то окна не видно, а приложение висит, место в памяти жрет), можно минимизировать (наизусть не помню :)), можно закрыть (xlApp.Quit).
    Опять же главное потом освободить переменную (Set xlApp = Nothing). Кстати можно для этих целей использовать переменную типа Object, а не Excel.Application, если есть такая переменная, которую можно на некоторое время отвлечь (конечно в том случае, когда не требуется держать Excel открытым от начала до конца процедуры - в этом случае лучше пользоваться конкретным типом приложения чтоб использовать т.н. "раннее связывание": вроде как считается, что при этом программа, или по крайней мере инициализация переменной будет выполнятся быстрее).

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

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

    наверх

            •

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

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


Выпуск 12.

VB Студия
  • Статьи - 30
  • Контролы - 9
  • Исходники - 21
  • Хитрости - 31
  • Куски кодов - 19
  • Windows Api - 27
  • FAQ
VB Line
  • Статьи
  • ActiveX
  • Примеры
  • Советы
  • Windows Api
Голосование:

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

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

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

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

Sergey Y. Tkachev
Кононенко Роман
Sergey Sapozhnikov
Sobic
 Несколько слов от автора:

Уже двенадцатый выпуск. В разделе "Вопрос/Ответ" скопилось многовато вопросов. Но и ответы там бывают! Обязательно туда загляните. Может быть Вы кому-нибудь поможете.
Присылайте материал. Читайте!

Содержание выпуска
  • Новости сайта VB Студия
  • Новости сайта VBLine

  • Аналог функции Split для пользователей VB версии 5 и ниже
  • Определение часового пояса
  • Открытие и закрытие лотка CD-ROM
  • Вопрос/Ответ

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

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

  • 19 октября 2001 года - Пополнение в Хитростях. Добавлено 4 хитрости.
    Давненько не обновлял раздел Windows Api. Сегодня добавил десяток описаний функций в этот раздел.
    В библиотеке кодов один новый код.
    В примерах тоже пополнение.
    И напоследок - добавлена cnfnmz Классы в Visual Basic.

наверх

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

15 октября 2001 г. Здравствуйте, любители Visual Basic! Сегодня совсем мало обновлений. В Примерах можно посмотреть интересный пример: как сохранить картинку в формате GIF и загрузка файлов с FTP сервера. Мало? Сам знаю, что мало, но ничего не поделаешь, нет времени.
08 октября 2001 г. Новые поступления на сайт! В Internet появился новый сайт по VB, он называется Использование VB, сходите, посмотрите, сайт только начал работу и информации там немного, но поддержать автора стоит. В Примерах ну очень полезный и забавный пример на тему анимации с использованием BitBlt, рекомендую всем посмотреть (смешной мужичек работает отбойным молотком!), там же новый пример на тему изменения атрибутов файла. Кто-нибудь знает как считать данные из BIOS? Внимание! "смертельный номер" пример читает из BIOS данные. В то же разделе интересный пример OCX, который эмулирует кнопки в стиле Pascal, и напоследок, пример реализации неограниченного Undo-Redo в текстовом редакторе.

наверх

Аналог функции Split для пользователей VB версии 5 и ниже

Функция Split появилась в VB6. Для пользователей VB5 и ниже функция, идентичная функции Split.

Public Function MySplit(Expression As String, Splitter As String) As Variant
Dim pos As Long
Dim posit As Long
Dim n As Long
Dim temp As String
Dim Split_() As String
Dim dowas As Boolean
pos = 1
posit = InStr(pos, Expression, Splitter)
Do While posit <> 0
dowas = True
n = n + 1
temp = Mid$(Expression, pos, posit - pos)
ReDim Preserve Split_(n + 1)
Split_(n) = temp
pos = posit + Len(Splitter)
posit = InStr(pos, Expression, Splitter)
Loop
If dowas = True Then
temp = Mid$(Expression, pos, Len(Expression) - pos + 1)
Split_(n + 1) = temp
Else
ReDim Split_ (1)
Split_ (1) = Expression
End If
MySplit = Split_
End Function

наверх

Определение часового пояса

Автор: Глеб

Чтобы узнать часовой пояс на компьютере нужно написать вот так:

Option Explicit
Dim sti As SystemTimeInfo
Private Sub Command1_Click()
Set sti = New SystemTimeInfo
MsgBox "Название часового пояса на компьютере " & _
sti.CurrentTimeZoneName
MsgBox "Часовой пояс на компьютере отличается на " & sti.Bias & " _
минут от гринвича"
End Sub

Свойства класса SystemTimeInfo:
Bias (Long)\ - разность между временем UTC и текущем временем
CurrentTimeZoneName (String) - Название текущего часового пояса
DaylightBias (Long) - разность между временем UTC и местным (обычно принимает значение либо 0 либо -60. Когда летнее время активизировано, местное время переводится на час вперёд, следовательно разница между временем UTC сокращается на 60 минут)
DaylightTimeZoneName (String) - название часового пояса при переходе на летнее время
StandardBias (Long) - разность между временем UTC и местным при условии, что перехода на летнее время не было
StandardTimeZoneName (String) - название часового пояса при условии, что летнее время не активизировано
SystemDateTime (Date) - значение даты/времени , соответствующее UTC

наверх

Открытие и закрытие лотка CD-ROM

Для этого создайте на форме 2 кнопки и вставьте код:

Option Explicit

Public Declare Function mciSendString Lib "winmm.dll" _
Alias "mciSendStringA" _
(ByVal lpstrCommand As String, _
ByVal lpstrReturnString As String, _
ByVal uReturnLength As Long, _
ByVal hwndCallback As Long) As Long

Private Sub Command1_Click()
'Открыть дверцу CD-Rom:
Call mciSendString("Set CDAudio Door Open Wait", 0&, 0&, 0&)
End Sub

Private Sub Command2_Click()
'Закрыть дверцу CD-Rom:
Call mciSendString("Set CDAudio Door Closed Wait", 0&, 0&, 0&)
End Sub

наверх

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

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

Требуется человек, знающий HTML для работы с сайтом группы СооБчаVB. Вопросы и предложения по этому адресу

наверх

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

BalloonMessage for MS Agent

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

Подробнее...

наверх

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

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

Вопросы:

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

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

Необходимо обработать событие от мыши, на компоненте, который эти события не поддерживает.
Например, MaskEdit не имеет события dblClick...
Как это сделать с использованием API? Или без?

Автор вопроса: Дьяконов Алексей

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

У меня такой вопрос: как менять IP через какой-то промежуток времени и как узнать что твой IP пытаются узнать?

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

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

Есть прога в Excel, а доступ к коду VB запоролен (просит ввести VBAProject Password).
Нельзя ли как-то её взломать?
Есть ли подобные кряки?

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

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

Нужно с помощью If...Else сделать так, чтобы чел нажимал кнопку, например В(русская раскладка), а писалась буква D. Даже не представляю как это осуществить.
И вот еще: надо, чтобы текст писался не токо в проге VB, но и в другихъ программах, типа WordPad, Word и тому подобное.
Как такое сделать, не представляю даже в теории. МОжет, кто поможет с обяснениями?

Автор вопроса: Геша

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

Можно-ли приделать баяы Аксесса2000 к ВБ6, если можно, то как, если это невояможно в принципе - все равно напишите.

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

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

Народ, помогите найти определитель матрицы nxn в VB, please!

Автор вопроса: Юрий

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

Скажите пожалуйста, как распечатать на принтере всю таблицу MSFLEXGRID. По усолчанию принтер может печатать только содердимое одной ячейки

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

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

Каким образом определить в 98 кто юзает твой сетевой ресурс (программно) подобно тому как это делает "сетевой монитор".
Где копать хоть?
Как отловить момент удаления файлов?
Отслеживание окна подтверждения удаления не предлагать.

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

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

Скажи как можно изменить параметры шапки в DataGrid, имеется ввиду выравнить по центру, написать в две строки.

Автор вопроса: Anton Pronoza

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

Хоть убей, не понимаю, как работает этот SETUP????

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

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

Скажите как сделать в DataGrid название столбцов по середине.

Автор вопроса: Артем

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

Надо преобразовать прогу с VBDOS в VB6. Проблема в том что там идет непрерывный вывод диаграммы псевдографикой со скроллингом экрана, а метод print для формы уводит вывод за ее предел. Как сделать аналог досовского print (вывод со скроллингом)?

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

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

Знаю что можно, но как? Суть в следующем: есть программа написанная на FoxPro2.6 Знаю, что в VBA можно испольяовать коды написанные в FoxProподключив библиотеку. Какую? Не янаю.
Кто вкурсе, подскажите

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

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

Подскажите плз, как програмно поменять ориентацию бумаги в принтере по умолчанию, а то у мена DataReport не хочет отображать отчёты в ориентации Ландшафт?

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

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

Кто мне поможет программно отключить нажатие клавиши Start на клавиатуре или хотя бы скажет ее код.

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

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

При выполнении фрагмента программы, который есть в любом учебнике, а также входит в справку Offica выскакивает ошибка "Ошибка компиляции: Недопустимая внешняя процедура."
Фрагмент программ:
Dim A As Variant
A = Array(10, 20, 30)
B = A(2)
Подскажите в чем причина данной ошибки.

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

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

Как получить список IP адресов или имен компьютеров, находящихся в локальной сети?

Автор вопроса: Карпова Елена

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

Не могу включить CapsLock из программы (VB6):
SendKeys "{CAPSLOCK}", True
хотя SendKeys "%{F4}", True - отрабатывает нормально.
Не может это быть из-за использования программы "Опечатка", меняющей раскладку клавиатуры? Но я ее выключала, а строка не отрабатывала.

Автор вопроса: Чемерис В.Д.

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

Как сгруппировать данные в DstsReport (например выводить список товаров, сгруппированный по видам и над каждой группой выводить название вида товара)

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

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

Люди!!! Есть предложение создать ocx контрол для просмотра массивов от одномерного 1*n до матрици n*m на подобии msflexgrid контрола (с заголовками и всякими опциями) тока он будет изначально отображать лишь столько строк(s) на экране ,сколько входит в рабочую область , а затем при прокрутке будет выбираться из данного массива по s записей и отображаться с первой строки в контроле, а строки в контроле меняются тока при изменении размеров контрола . Это будет занимать гораздо меньше времени , чем копирование всего массива в мсфлексгрид . Или достать исходнини мсфлексгрида и чуть-чуть его переделать (тока где их достать). Я начал делать такой контрол, но ничего не получилось из этого хорошего

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

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

1) Как быстро упорядочить(отсортировать) массив(Long) данных?
2) Как быстро удалить несколько(n) элементов этого массива?

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

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

Как сделать на VB элемент управления ActiveX типа TreeView в такой иерархической системе, которая используется в Win98. Если можно покажите код.

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

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

Вот еще один вопросик: как сохранять иконку из picture на диск через API(по типу SavePicture)?

Автор вопроса: Артём

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

Можно ли прочитать указанный мной сектор диска, если да то как?

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

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

Как из-под Basic for MS Excel выдать через динамик звук определенной частоты и длительности ( например, нота ЛЯ: 440 Гц, 1 секунда ) ? А как это сделать через колонки ( наушники ) ?

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

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

Нужно вывести картинку запиханную в массив pic(width,height) as byte на экран, используя палитру Pal(255,2). Причем с максимальной скоростью. Пробовал преобразовывать в RGB картинку и выводить с помощью SetDIBitsToDevice, но получается медленно. Преобразования тормозят вывод. Может кто поможет?

Ответы:

Вопрос:

Нужна функция округления чисел.

Ответ:

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

ROUND(<число>,<кол-в знаков после зпт>)

Вопрос:

Я делаю прогу, которая работает с MTS (Microsoft Transaction Server)
У меня NT4.0 + Service Pack 6.a + SQL2000
Когда я устанавливал Option pack 4.0 (куда входит IIS и MTS)что- то некорректно установилось и MTS (mtxas.dll) не работет корректно.
Кто-то сталкивался с подобным?
Я думаю, что Option pack 4.0 надо устанавливать на версию не позже Service Pack 4.0. Я прав?

Ответ:

Автор ответа: Anvar Hudshamkulov

Важен ещё и порядок инсталляции. если сначала SP6a, а потом Option Pack, то нужно снова инсталлировать SP6a.
Option Pack нужно ставить на версию не позже SP3.

Вопрос:

Как просто реализовать грид подобно тому который в VB студии в пропертях с кнопками, развертывающимеся строками и тд, а главное чтобы все это хозяйство нормально отрабатывало скролбар?

Ответ:

Автор ответа: Sergey Y. Tkachev

Просто не получится.
Если нужен "продвинутый" грид, то стоит обратиться к разработчикам ActiveX компонент. Я бы посоветовал Infragistics или ComponentOne. Если говорить конкретнее, то можно использовать следующие гриды:

Sheridan DataGrid
ProtoView DataTable
Infragistics UltraGrid
Apex True DB Grid

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

Ну, а если их не использовать, то придётся создавай свой грид. Думаю, что это потребует значительных затрат времени.

Вопрос:

Прошу помочь в написании кода для работы с LPT портом, необходимо: переслать байт в порт, управлять линией STROBE.

Ответ:

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

www.cepera.h1.ru , там все посвящено устройствам подключения, не скажу что слишком просто, зато много :))

Вопрос:

Как внедрить Word2000 на форму Access2000? Вместо поля Edit я хотел бы поместить Ворд для редактирования текста на форму Access'а.

Ответ:

Автор ответа: Михаил Ю. Белодед

Создай на форме контрол "Свободная рамка объекта" из панели элементов управления (или "Связанная....", если нужно присоединить к таблице - тогда там должно быть поле с типом "Объект OLE") А потом вставляй туда любые объекты, в.ч. и страницу Word2000 :-))

Вопрос:

Как_ сделать так, чтобы .wav файл играл как фоновая музыка и была слышен клик мыши_ на фоне музыки.

Ответ:

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

Для этого звуковая карта должна поддерживать полу дуплекс, т.е. одновременное со смешиванием воспроизведение двух одинаковых потоков.

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

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

наверх

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

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


Выпуск 13.

VB Студия
  • Статьи - 31
  • Контролы - 9
  • Примеры - 23
  • Хитрости - 31
  • Куски кодов - 19
  • Windows Api - 27
  • FAQ
VB Line
  • Статьи
  • ActiveX
  • Примеры
  • Советы
  • Windows Api
Голосование:

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

В какой день (дни) недели Вы хотели бы получать рассылку "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 - мания
  • VB по русски
  • Snoozex Design
            • Несколько слов от автора:

    Наверное Вы уже успели заметил, что вырос размер рубрики "Вопрос/Ответ" из-за того, что не на все вопросы есть ответы. Теперь в рассылке будут публиковаться вопросы и ответы только за последние 7 дней (со времени выхода предыдущего выпуска).
    Добавились два новых раздела. Первый раздел с книгами о VB от магазина "Колибри". Внимание! Если Вы купите книгу по ссылке из этой рассылки, то получите скидку в размере 5% от стоимости книги!
    Во втором новом разделе будут публиковаться анонсы эхо-конференций проекта СообЧа.
    Читайте!

    Содержание выпуска
    • Новости сайта VB Студия
    • Новости сайта VBLine

    • Как закрыть чужое приложение?
    • Как определить, открыта ли программа?
    • Выравнивание меню по правому краю
    • Модернизация контролов с помощью WithEvents

    • Книги

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

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

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

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

    • 26 октября 2001 года - В разделе Статьи появилась статья "Взаимодействие ADO Data Control и DataGrid ActiveX Control".
      Два новых примера в разделе Примеры
      Вышел тринадцатый выпуск рассылки
    • 19 октября 2001 года - Пополнение в Хитростях. Добавлено 4 хитрости.
      Давненько не обновлял раздел Windows Api. Сегодня добавил десяток описаний функций в этот раздел.
      В библиотеке кодов один новый код.
      В примерах тоже пополнение.
      И напоследок - добавлена статья Классы в Visual Basic.

    наверх

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

    21 октября 2001 г. Новый сайт про ЭТО Технологии Программирования - Visual Basic, обязательно загляните. Для новичков в разделе Примеры как сделать калькулятор. В Советах можно узнать как открывается CD-ROM. В ActiveX очень хороший контрол для работы с анимационными GIF.
    15 октября 2001 г. Здравствуйте, любители Visual Basic! Сегодня совсем мало обновлений. В Примерах можно посмотреть интересный пример: как сохранить картинку в формате GIF и загрузка файлов с FTP сервера. Мало? Сам знаю, что мало, но ничего не поделаешь, нет времени.

    наверх

    Как закрыть чужое приложение?

    cmdClose - CommandButton
    Text1 - TextBox Содержит название окна.

    Declare Function FindWindow Lib "user32" Alias _
    "FindWindowA" (ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long

    Declare Function PostMessage Lib "user32" Alias _
    "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
    ByVal wParam As Long, lParam As Any) As Long

    Public Const WM_CLOSE = &H10

    Private Sub cmdClose_Click()

    Dim winHwnd As Long
    Dim RetVal As Long

    winHwnd = FindWindow(vbNullString, Text1.Text)

    Debug.Print winHwnd

    If winHwnd <> 0 Then
    RetVal = PostMessage(winHwnd, WM_CLOSE, 0&, 0&)
    If RetVal = 0 Then
    MsgBox "Ошибка."
    End If
    Else
    MsgBox Text1.Text + " не открыт."
    End If

    End Sub

    наверх

    Как определить, открыта ли программа?

    Option Explicit

    Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
    Public Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
    Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

    Const STILL_ACTIVE = 259
    Const PROCESS_QUERY_INFORMATION = 1024

    Public hProg As Long

    Function IsRunning(idProg As Long) As Boolean
    Dim hProc As Long, iRet As Long

    hProc = OpenProcess(PROCESS_QUERY_INFORMATION, False, idProg)
    If hProc <> vbNull Then GetExitCodeProcess hProc, iRet
    IsRunning = (iRet = STILL_ACTIVE)
    CloseHandle hProc
    End Function

    наверх

    Выравнивание меню по правому краю

    Добавьте на форму любое меню, состоящее из скольки угодно пунктов, а также одну кнопку Command1. Затем внесите в модуль кода формы следующее:

    'Необходимые нам API функции
    Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function GetMenuItemInfo Lib "user32" Alias "GetMenuItemInfoA" _
    (ByVal hMenu As Long, ByVal un As Long, ByVal b As Boolean, lpMenuItemInfo _
    As MENUITEMINFO) As Long
    Private Declare Function SetMenuItemInfo Lib "user32" Alias "SetMenuItemInfoA" _
    (ByVal hMenu As Long, ByVal un As Long, ByVal bool As Boolean, _
    lpcMenuItemInfo As MENUITEMINFO) As Long
    'Константы
    Const MIIM_TYPE = &H10
    Const MFT_RIGHTJUSTIFY = &H4000
    Const MFT_STRING = &H0&
    'Тип MENUITEMINFO
    Private Type MENUITEMINFO
    cbSize As Long
    fMask As Long
    fType As Long
    fState As Long
    wID As Long
    hSubMenu As Long
    hbmpChecked As Long
    hbmpUnchecked As Long
    dwItemData As Long
    dwTypeData As String
    cch As Long
    End Type
    'При нажатии на кнопку меню перескочит из левого края в правый
    Private Sub Command1_Click()
    Dim MnuInfo As MENUITEMINFO
    Dim mnuH As Long, MyTemp As Long
    mnuH = GetMenu(Me.hwnd)
    MnuInfo.cbSize = Len(MnuInfo)
    MnuInfo.fMask = MIIM_TYPE
    'Если вы хотите выравнять только часть пунктов меню, тогда замените в следующей
    'строке, а также в строке над End Sub число 0 на число пунктов, которое вы хотите
    'оставить слева
    MyTemp = GetMenuItemInfo(mnuH, 0, True, MnuInfo)
    MnuInfo.fType = MFT_RIGHTJUSTIFY Or MFT_STRING
    'Вам также надо заменить "MenuCaption" на имя пункта, которое будет крайним слева
    'в новой расстановке
    MnuInfo.cch = Len("MenuCaption")
    MnuInfo.dwTypeData = "MenuCaption"
    MnuInfo.cbSize = Len(MnuInfo)
    MyTemp = SetMenuItemInfo(mnuH, 0, True, MnuInfo)
    MyTemp = DrawMenuBar(Me.hwnd)
    End Sub

    наверх

    Модернизация контролов с помощью WithEvents

    Думаю временами всем нам не хватает в контролах какой -либо мелочи. К примеру какие -то действия при использовании текстбокса. Решение есть - можно написать процедуру и вызывать е как эвент для контролов. Собственно именно для этого и существует команда "WihEvents"

    К примеру хочется ограничить ввод в текстбокс только символов в верхнем регистре. Буквы в нижнем регистре должны быть автоматически преобразованы в верхний. Ну и еще при проходе мышки над текстбоксом - путь показывает координаты мышы в тултипсе

    Создаем стандартный EXE project, добавляем 4 текстбокса , добавляем class module. В Form1 добавляем код

    'General Declarations
    Private clsTextBox1 As Class1
    Private clsTextBox2 As Class1
    Private clsTextBox3 As Class1
    Private clsTextBox4 As Class1

    Private Sub Form_Load()
    Set clsTextBox1 = New Class1
    Set clsTextBox1.TextBoxCtl = Text1
    Set clsTextBox2 = New Class1
    Set clsTextBox2.TextBoxCtl = Text2
    Set clsTextBox3 = New Class1
    Set clsTextBox3.TextBoxCtl = Text3
    Set clsTextBox4 = New Class1
    Set clsTextBox4.TextBoxCtl = Text4
    End Sub

    В Class1, добавим следующий код .

    Private WithEvents txt As TextBox

    Public Property Set TextBoxCtl(OutsideTextBox As TextBox)
    Set txt = OutsideTextBox
    End Property

    Private Sub txt_KeyPress(KeyAscii As Integer)
    '-- Преобразуем в верхний регистр
    KeyAscii = Asc(UCase$(Chr$(KeyAscii)))
    End Sub

    Private Sub txt_MouseMove(Button As Integer, Shift As Integer, X As
    Single, Y As Single)
    txt.ToolTipText = "X:" & X & " Y:" & Y
    End Sub

    Чтобы добавить что то еще - просто добавьте код в класс. Единственно что - эвент в классе случается после эвента в контроле.

    наверх

    Книги

    Visual Basic 6.0 ( Руководство для программистов )

    Фотография книги Язык программирования Visual Basic - мощный инструмент разработки приложений для 32-разрядных систем Windows 95 и Windows NT.
    В книге рассматриваются как фундаментальные понятия и темы, так и сложные вопросы, адресованные профессиональным программистам.

    Нет данных по автору(ам), «БХВ - Санкт-Петербург» — 2000, 959 стр.
    248,19 руб. - 5% = 235.6 руб.

    SQL (Полное руководство)

    Фотография книги Второе издание существенно расширенное и обновленное описание языка SQL, являющегося основным инструментом работы с реляционными базами данных.

    Д. Р. Грофф, «СПАРРК, Издательская группа BHV» — 2001, 816 стр.
    343,08 руб. - 5% = 325.85 руб.

    наверх

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

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

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

    Подписаться

    Железо

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

    Подписаться

    наверх

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

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

    Требуется человек, знающий HTML для работы с сайтом группы СооБчаVB. Вопросы и предложения по этому адресу

    наверх

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

    BalloonMessage for MS Agent

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

    Подробнее...

    наверх

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

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

    Вопросы:

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

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

    Расскажите пожалуйста, как управлять прерываниями компьютера из VB.

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

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

    Вы не подскажите как научить VB копировать каталоги и работать с архиватором.
    Я только начинаю работать с VB и хотел написать программу резервного копирования.

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

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

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

    Автор вопроса: Шурик

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

    Как опубликовать DataReport в Word?

    Ответы:

    Вопрос:

    Необходимо обработать событие от мыши, на компоненте, который эти события не поддерживает.
    Например, MaskEdit не имеет события dblClick...
    Как это сделать с использованием API? Или без?

    Ответ:

    Автор ответа: Самохин Владимир

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

    Вопрос:

    У меня такой вопрос: как менять IP через какой-то промежуток времени и как узнать что твой IP пытаются узнать?

    Ответ:

    Автор ответа: Andrew S. Arutunyan

    Никак ты не узнаешь, потому что адрес узнают не у тебя, а у DNS серверов, которых милионы.

    Вопрос:

    Есть прога в Excel, а доступ к коду VB запоролен (просит ввести VBAProject Password).
    Нельзя ли как-то её взломать?
    Есть ли подобные кряки?

    Ответ:

    Автор ответа: Yury Yurchenko

    Есть программка Advansed VBA Password Recovery.
    Правда, она отламывает только коротенькие пароли.
    Она доступна по адресу http://vb-studio.boom.ru/utils.htm

    Вопрос:

    Можно-ли приделать баяы Аксесса2000 к ВБ6, если можно, то как, если это невояможно в принципе - все равно напишите.

    Ответ:

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

    Я делаю так: в меню Разработать>Ссылки выбираешь Microsoft DAO 3.6 Objekt Library или какая там у тебя версия. Создаешь в проекте модуль и в нем пропизываешь следующее:

    Public strSQL As String 'Переменная создания запроса
    Public rs As Recordset 'Переменная результата запроса
    Public DB As Database 'Переменная ссылки на базу данных
    Public ws As Workspace 'Переменная ссылки на рабочую область

    Sub DB_Open() 'Открытие базы данных
    Set ws = DBEngine.Workspaces(0)
    Set DB = ws.OpenDatabase("имя_базы.mdb")
    ws.Databases.Refresh
    End Sub
    Sub DB_Close() 'Закрытие базы данных
    ws.Databases.Refresh
    DB.Close
    ws.Close
    End Sub
    Sub RS_Load() 'Зпрос на чтение
    Set rs = DB.OpenRecordset(strSQL)
    End Sub
    Sub DB_Update() 'Зпрос на добавление, изменение.
    DB.Execute (strSQL)
    End Sub
    Используется так:

    ...
    DB_Open 'произходит открытие и подключение к базе данных
    strSQL="Строка запроса на чтение чего либо из базы":RS_Load 'после этого переменная rs будет содержать результат запроса.
    ...
    strSQL="Строка изменения данных или их добавление в базу":RS_Update
    ...
    DB_Close 'произходит закрытие и отключение от базы данных
    ...

    Вот в принципе и всё, будут вопросы пиши kononenko@dnp.ukrpack.net

    Вопрос:

    Кто мне поможет программно отключить нажатие клавиши Start на клавиатуре или хотя бы скажет ее код.

    Ответ:

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

    Из онлайновой библиотеки MSDN :

    Platform SDK: Windows User Interface
    Virtual-Key Codes

    ....
    VK_LWIN 5B Left Windows key (Microsoft® Natural® keyboard)
    VK_RWIN 5C Right Windows key (Natural keyboard)
    ....

    Насколько я понимаю, это обе клавиши Start -- левая и правая :)

    Вопрос:

    Как сгруппировать данные в DstsReport (например выводить список товаров, сгруппированный по видам и над каждой группой выводить название вида товара)

    Ответ:

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

    Я когда-то делал, точно не помню, но суть такова. В DataEnvirоment создаешь родительскую команду на выборку к примеру товаров. Потом в эту команду добавляешь дочерную команду на выборку по критериям от родительской. А на отчёте добавляешь групировочный раздел. И вот результат родительского запроса вставляешь в групировочный раздел, а результат дочерного запроса вставляешь в раздел Details. Или наоборот, точно не помню. Поэкспериментируй. У меня получалось.

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

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

    наверх

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

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


Выпуск 14.

VB Студия
  • Статьи - 31
  • Контролы - 9
  • Примеры - 31
  • Хитрости - 31
  • Куски кодов - 19
  • Windows Api - 27
  • FAQ
VB Line
  • Статьи
  • ActiveX
  • Примеры
  • Советы
  • Windows Api
Голосование:

Ваш голос отсылается по 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 - мания
  • VB по русски
  • Snoozex Design
            • Несколько слов от автора:

    Времени мало - готовлю доклад на научно-практическую конференцию. Быстро набросал этот выпуск. Он вышел вовремя.
    Читайте!

    Содержание выпуска
    • Новости сайта VB Студия
    • Новости сайта VBLine

    • Выбор элемента листбокса в момент прохода над ним мышки
    • Заменяем системные цвета на свои собственные
    • Как убрать программу из списка Ctrl-Alt-Del
    • Как запретить ресайзинг формы, избегая мерцания?

    • Книги

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

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

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

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

    • 2 ноября 2001 года - Обновление очень маленькое. У меня совсем нет времени. В разделе Примеры добавлен уникальный пример программы, удаляющей саму себя!
    • 29 октября 2001 года - В раздел Примеры добавлены 3 примера. Это пример использования текстового файла в качестве базы данных, пример получения цвета точки в объекте Picture и пример перетаскивания формы за любое место.
      В разделе Библиотека кодов очередной пример суммы прописью.
      В Хитрости добавлена одна хитрость: Как запретить ресайзинг формы, избегая мерцания.
      И в разделе Контролы добавлен один контрол для работы с треем.
    • 26 октября 2001 года - В разделе Статьи появилась статья "Взаимодействие ADO Data Control и DataGrid ActiveX Control".
      Два новых примера в разделе Примеры
      Вышел тринадцатый выпуск рассылки
    • 19 октября 2001 года - Пополнение в Хитростях. Добавлено 4 хитрости.
      Давненько не обновлял раздел Windows Api. Сегодня добавил десяток описаний функций в этот раздел.
      В библиотеке кодов один новый код.
      В примерах тоже пополнение.
      И напоследок - добавлена статья Классы в Visual Basic.

    наверх

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

    28 октября 2001 г. Представляю очень интересную статью: Динамическое создание ДТС-пакетов с помощью VB. Автор работы Андрей Чувахин. В статье показывается программное решение конкретной задачи по копированию данных из таблицы формата ДБФ в базу данных MS SQL Server.
    27 октября 2001 г. Сегодня совсем мало обновлений, очень занят. Представляю пример в разделе Примеры как отправить письмо по электронной почте с помощью WinSock. Пример очень интересный, так как позволяет работать с почтой без использования программ посредников.
    21 октября 2001 г. Новый сайт про ЭТО Технологии Программирования - Visual Basic, обязательно загляните. Для новичков в разделе Примеры как сделать калькулятор. В Советах можно узнать как открывается CD-ROM. В ActiveX очень хороший контрол для работы с анимационными GIF.
    15 октября 2001 г. Здравствуйте, любители Visual Basic! Сегодня совсем мало обновлений. В Примерах можно посмотреть интересный пример: как сохранить картинку в формате GIF и загрузка файлов с FTP сервера. Мало? Сам знаю, что мало, но ничего не поделаешь, нет времени.

    наверх

    Выбор элемента листбокса в момент прохода над ним мышки

    На пустую форму положите листбокс и текстбокс. Ну и этот код, конечно

    Option Explicit

    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
    (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam _
    As Long, lParam As Any) As Long
    Private Const LB_ITEMFROMPOINT = &H1A9

    Private Sub Form_Load()
    With List1
    .AddItem "Hello World"
    .AddItem "Hello Again"
    .AddItem "Just Example "
    End With
    End Sub

    Private Sub List1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

    Dim xPosition As Long
    Dim yPosition As Long
    Dim i As Long
    If Button = 0 Then ' если никакие кнопки не нажаты
    xPosition = CLng(X / Screen.TwipsPerPixelX)
    yPosition = CLng(Y / Screen.TwipsPerPixelY)
    With List1
    ' взять выбранный элемент из листа
    i = SendMessage(.hwnd, _
    LB_ITEMFROMPOINT, 0, ByVal _
    ((yPosition * 65536) + xPosition))
    'подсветить подсказку к элементу
    If (i >= 0) And _
    (i <= .ListCount) Then
    .ToolTipText = .List(i)
    Text1.Text = .List(i)
    Else
    .ToolTipText = ""
    End If
    End With
    End If
    End Sub

    наверх

    Заменяем системные цвета на свои собственные

    На пустую форму положите этот код

    Option Explicit
    Private Declare Function SetSysColors Lib "user32" _
    (ByVal nChanges As Long, lpSysColor As _
    Long, lpColorValues As Long) As Long

    Private Declare Function GetSysColor& Lib "user32" (ByVal nIndex As Long)

    'Можно использовать следующие константы

    Private Const COLOR_SCROLLBAR = 0 'The Scrollbar colour
    Private Const COLOR_BACKGROUND = 1 'Colour of the background with no wallpaper
    Private Const COLOR_ACTIVECAPTION = 2 'Caption of Active Window
    Private Const COLOR_INACTIVECAPTION = 3 'Caption of Inactive window
    Private Const COLOR_MENU = 4 'Menu
    Private Const COLOR_WINDOW = 5 'Windows background
    Private Const COLOR_WINDOWFRAME = 6 'Window frame
    Private Const COLOR_MENUTEXT = 7 'Window Text
    Private Const COLOR_WINDOWTEXT = 8 '3D dark shadow (Win95)
    Private Const COLOR_CAPTIONTEXT = 9 'Text in window caption
    Private Const COLOR_ACTIVEBORDER = 10 'Border of active window
    Private Const COLOR_INACTIVEBORDER = 11 'Border of inactive window
    Private Const COLOR_APPWORKSPACE = 12 'Background of MDI desktop
    Private Const COLOR_HIGHLIGHT = 13 'Selected item background
    Private Const COLOR_HIGHLIGHTTEXT = 14 'Selected menu item
    Private Const COLOR_BTNFACE = 15 'Button
    Private Const COLOR_BTNSHADOW = 16 '3D shading of button
    Private Const COLOR_GRAYTEXT = 17 'Grey text, of zero if dithering is used.
    Private Const COLOR_BTNTEXT = 18 'Button text
    Private Const COLOR_INACTIVECAPTIONTEXT = 19 'Text of inactive window
    Private Const COLOR_BTNHIGHLIGHT = 20 '3D highlight of button

    Dim OldColor As Long

    Private Sub Form_Load()
    'Эапоминаем текущий цвет
    OldColor = GetSysColor(COLOR_ACTIVECAPTION)

    SetSysColors 1, COLOR_ACTIVECAPTION, RGB(255, 0, 0)
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    'Восстанавливаем текущий цвет
    SetSysColors 1, COLOR_ACTIVECAPTION, OldColor
    End Sub

    наверх

    Как убрать программу из списка Ctrl-Alt-Del

    Чтобы сделать это, вам нужно зарегестрировать программу как сервис. Это делается следующими API-функциями:

    Вставьте этот код в раздел общих описаний (General Declarations)

    Public Declare Function GetCurrentProcessId _
    Lib "kernel32" () As Long
    Public Declare Function GetCurrentProcess _
    Lib "kernel32" () As Long
    Public Declare Function RegisterServiceProcess _
    Lib "kernel32" (ByVal dwProcessID As Long, _
    ByVal dwType As Long) As Long
    Public Const RSP_SIMPLE_SERVICE = 1
    Public Const RSP_UNREGISTER_SERVICE = 0

    Чтобы убрать вашу программу из списка Ctrl+Alt+Delete list, используйте процедуру MakeMeService:

    Public Sub MakeMeService()
    Dim pid As Long
    Dim reserv As Long
    pid = GetCurrentProcessId()
    regserv = RegisterServiceProcess(pid, RSP_SIMPLE_SERVICE)
    End Sub

    Чтобы показать вашу программу в списке Ctrl+Alt+Delete, используйте процедуру UnMakeMeService:

    Public Sub UnMakeMeService()
    Dim pid As Long
    Dim reserv As Long
    pid = GetCurrentProcessId()
    regserv = RegisterServiceProcess(pid, _
    RSP_UNREGISTER_SERVICE)
    End Sub

    Не забудьте дерегистрировать вашу программу, как сервис, чтобы освободить системные ресурсы, используя UnMakeMeService.

    наверх

    Как запретить ресайзинг формы, избегая мерцания?

    Я, Медведев Александр, изобрел очень простой способ избавиться от мерцания при запрещении ресайза формы:

    Private Sub Form_Resize()
    Me.Move 0,0,3600,3600
    End sub

    Мой способ позволяет не использовать API со множеством лишних слов :)))
    Как говорится, все гениальное просто.

    Private Sub Form_Resize()
    Me.Enabled = False
    Me.Enabled = True
    End Sub

    наверх

    Книги

    Visual Basic 6.0 ( Руководство для программистов )

    Фотография книги Язык программирования Visual Basic - мощный инструмент разработки приложений для 32-разрядных систем Windows 95 и Windows NT.
    В книге рассматриваются как фундаментальные понятия и темы, так и сложные вопросы, адресованные профессиональным программистам.

    Нет данных по автору(ам), «БХВ - Санкт-Петербург» — 2000, 959 стр.
    248,19 руб. - 5% = 235.6 руб.

    SQL (Полное руководство)

    Фотография книги Второе издание существенно расширенное и обновленное описание языка SQL, являющегося основным инструментом работы с реляционными базами данных.

    Д. Р. Грофф, «СПАРРК, Издательская группа BHV» — 2001, 816 стр.
    343,08 руб. - 5% = 325.85 руб.

    наверх

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

    Windows

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

    Подписаться

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

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

    Подписаться

    наверх

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

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

    Требуется человек, знающий HTML для работы с сайтом группы СооБчаVB. Вопросы и предложения по этому адресу

    наверх

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

    BalloonMessage for MS Agent

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

    Подробнее...

    наверх

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

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

    Вопросы:

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

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

    Может кто-то подскажет, как можно автоматизировать отправку факсом "аксес репорт" или "кристал репорт" с помощью VB. Сам не видел, но говорят, что это возможно.

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

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

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

    Автор вопроса: Олег Чижов

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

    Как в VB организовать передачу данных по сети (например, по протоколу TCP/IP)?

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

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

    Товарищи!!! Очень нужен ОСХ типа таблички но не стандартный и чтобы умел работать со стандартной Данные.

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

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

    Как добавить в Intenet Explorer свой toolbar (kak Google)?

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

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

    Как в VB подключить сетевой диск.

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

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

    Как под Access ия программного кода сжать баяу данных.

    Автор вопроса: Moiseev@SPB.MMBANK.ru

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

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

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

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

    Помогите, граждане! Нужно мерить напряжение 40 Гц, подаваемое на линейный вход звуковой карты. Как это сделать?
    Нашёл прогу - используется микрофонный вход, но как заставить измерять с линейного - не могу разобраться. Нигде в сети не нашёл полного справочника по API, да и вряд ли быстро разберусь - чайник истчо.
    Спасибо сочувствующим :)

    Ответы:

    Вопрос:

    Вы не подскажите как научить VB копировать каталоги и работать с архиватором.
    Я только начинаю работать с VB и хотел написать программу резервного копирования.

    Ответ:

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

    Я конечно посоветовал бы начинать с чего-нибудь попороще, но с другой стороны надо же когда-то начинать делать и что-то посложнее! :)
    Работать с каталогами в ВБ не просто, а очень просто. Для этого достаточно подключить к проекту библиотеку Microsoft Scripting Runtime (если в списке библиотек, который выпадает при нажатии в меню "Project" пункта "References..." такого названия нет, но надо нажать там же кнопку "Browse" и вручную найти файл c:\windows\system\scrrun.dll)
    После подключения библиотеки в программе можно оперировать переменными типа Folder, File и т.п. Самое главное -- для доступа ко всем этим объектам сначала надо создать объект FileSystemObject :

    '...
    Dim fso As FileSystemObject
    Dim iFolder As Folder
    '...
    Set fso = New FileSystemObject
    Set iFolder = fso.GetFolder("полное_имя_каталога")
    iFolder.Copy "путь_для_резервной_копии"
    '...
    Set iFolder = Nothing
    Set fso = Nothing
    '...

    Вобщем крайне полезная библиотека для работы с объектами файловой системы.
    Вот с архивированием дело обстоит сложнее. Можно пользоваться предположим консольным архиватором, запуская его с помощью команды Shell из VB или используя API-функции (что в принципе надежнее, но для начала сложновато):

    '...
    Dim filesToArc As String
    '...
    filesToArc = "какой-то_путь" & "*.doc"
    Shell "arj a " & filesToArc & " полное_имя_архива.arj", vbHide
    Параметр vbHide нужен, чтобы не показывать юзеру окно архиватора.

    Есть еще вариант с объявлением внешней функции из dll установленного архиватора, например, WinZip'а, в библиотеке WZ32.DLL которого имеются следующие функции:

    DragAppendFile
    DragCreateFiles
    WZ56
    uncompress
    uncompress_init
    unzip
    unzip_init
    zip
    zip_init
    ziplabelDiskette
    zipmemcompress
    zipsplit
    zipwipeDiskette

    Я так думаю, что функции zip и unzip -- это то, что нужно, но с какими параметрами их запускать, а следовательно и как объявлять их в модуле, я к сожалению не знаю. И еще можно предложить самому написать код для архивирования по известному алгоритму (думаю в И-нете можно довольно просто найти кучу таких алгоритмов с примерами кода)

    Вопрос:

    Вы не подскажите как научить VB копировать каталоги и работать с архиватором.
    Я только начинаю работать с VB и хотел написать программу резервного копирования.

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Описывать то, как работать с каталогами я не буду - в сети полно статей по этому поводу, а вот архивация - это штука интересная. Когда-то я сам долго мучался этим вопросом, пока мне не подвернулись эти контролы, решающие все проблемы.
    http://vb-studio.boom.ru/controls/VFunzip.zip - Для раззипования.
    http://vb-studio.boom.ru/controls/VFzip.zip - Для зипования

    Вопрос:

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

    Ответ:

    Автор ответа: Стас

    Думаю, может помочь такая вещь, как subclassing:
    Я в интернете нашел контрол msghook.ocx , который ловит API типа sendmessage(WM_что_угодно), только у него в свойствах надо указать, какие WM_... надо ловить и к каким окнам (в т.ч. контролам) они должны быть адресованы.
    После чего всякий раз при возникновении этого sendmessage() запускается событие для msghook и при его обработке можно выполнить свой код.

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

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

    наверх

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

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


Выпуск 15.

VB Студия
  • Статьи - 31
  • Контролы - 9
  • Примеры - 31
  • Хитрости - 31
  • Куски кодов - 19
  • Windows Api - 27
  • FAQ
VB Line
  • Статьи
  • ActiveX
  • Примеры
  • Советы
  • Windows Api
Голосование:

Ваш голос отсылается по 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 - мания
  • VB по русски
  • Snoozex Design
            • Несколько слов от автора:

    Немного увеличил размер рассылки.
    Читайте!

    Содержание выпуска
    • Новости сайта VB Студия
    • Новости сайта VBLine

    • Модернизация контролов с помощью WithEvents
    • Как оссоциировать тип файла со своей программой
    • Подгоняет высоту выпадающего окна ComboBox'а к высоте имеющихся строк
    • Определяет, соответствует ли имя файла маске

    • Книги

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

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

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

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

    • 7 ноября 2001 года - Добавлен контрол, изображающий координатную сетку.
    • 6 ноября 2001 года - Создан ФОРУМ!!! Обязательно туда зайлите.
    • 5 ноября 2001 года - Небольшое обновление в FAQ.
      В раздел Библиотека кодов добавлен один код.
    • 4 ноября 2001 года - Добавлено 2 примера. Первый - пример кодирования текста, а второй пример вычисляет математическое выражение, находящееся в переменной типа String.
    • 3 ноября 2001 года - Контролы для распаковки и упаковки файлов zip появились в разделе Контролы
      Появилась моя первая статья "Работа с базами данных с помощью DAO". В ней описываются основные принципы работы с базами данных с помощью библиотеки DAO (Data Access Objects).
    • 2 ноября 2001 года - Обновление очень маленькое. У меня совсем нет времени. В разделе Примеры добавлен уникальный пример программы, удаляющей саму себя!

    наверх

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

    05 ноября 2001 г. Во-первых, я получил сертификат "Visual Basic Programmer" уровня Master от eCertification.com. Поздравления принимаются по прежнему адресу shatrykin@mail.ru.Во-вторых, на сайте есть одна "обновка". Stas(Sheff) Vorobiov прислал интересный пример игры с использованием DirectX.
    28 октября 2001 г. Представляю очень интересную статью: Динамическое создание ДТС-пакетов с помощью VB. Автор работы Андрей Чувахин. В статье показывается программное решение конкретной задачи по копированию данных из таблицы формата ДБФ в базу данных MS SQL Server.
    27 октября 2001 г. Сегодня совсем мало обновлений, очень занят. Представляю пример в разделе Примеры как отправить письмо по электронной почте с помощью WinSock. Пример очень интересный, так как позволяет работать с почтой без использования программ посредников.
    21 октября 2001 г. Новый сайт про ЭТО Технологии Программирования - Visual Basic, обязательно загляните. Для новичков в разделе Примеры как сделать калькулятор. В Советах можно узнать как открывается CD-ROM. В ActiveX очень хороший контрол для работы с анимационными GIF.

    наверх

    Модернизация контролов с помощью WithEvents

    Думаю временами всем нам не хватает в контролах какой -либо мелочи. К примеру какие -то действия при использовании текстбокса. Решение есть - можно написать процедуру и вызывать е как эвент для контролов. Собственно именно для этого и существует команда "WihEvents"

    К примеру хочется ограничить ввод в текстбокс только символов в верхнем регистре. Буквы в нижнем регистре должны быть автоматически преобразованы в верхний. Ну и еще при проходе мышки над текстбоксом - путь показывает координаты мышы в тултипсе

    Создаем стандартный EXE project, добавляем 4 текстбокса , добавляем class module. В Form1 добавляем код

    'General Declarations
    Private clsTextBox1 As Class1
    Private clsTextBox2 As Class1
    Private clsTextBox3 As Class1
    Private clsTextBox4 As Class1

    Private Sub Form_Load()
    Set clsTextBox1 = New Class1
    Set clsTextBox1.TextBoxCtl = Text1
    Set clsTextBox2 = New Class1
    Set clsTextBox2.TextBoxCtl = Text2
    Set clsTextBox3 = New Class1
    Set clsTextBox3.TextBoxCtl = Text3
    Set clsTextBox4 = New Class1
    Set clsTextBox4.TextBoxCtl = Text4
    End Sub

    В Class1, добавим следующий код .

    Private WithEvents txt As TextBox

    Public Property Set TextBoxCtl(OutsideTextBox As TextBox)
    Set txt = OutsideTextBox
    End Property

    Private Sub txt_KeyPress(KeyAscii As Integer)
    '-- Преобразуем в верхний регистр
    KeyAscii = Asc(UCase$(Chr$(KeyAscii)))
    End Sub

    Private Sub txt_MouseMove(Button As Integer, Shift As Integer, X As
    Single, Y As Single)
    txt.ToolTipText = "X:" & X & " Y:" & Y
    End Sub

    Чтобы добавить что то еще - просто добавьте код в класс. Единственно что - эвент в классе случается после эвента в контроле.

    наверх

    Как оссоциировать тип файла со своей программой

    Функция, изменяющая настройки типа файлов в Windows: приложение запуска, иконку и т.д...
    Здесь показан пример изменения названия, иконки и приложения для файлов .TXT
    Подговте проект с формой.
    На форму поместите:
    - Кнопку с именем Command1

    Добавте в форму:

    Private Declare Function RegCreateKey Lib "advapi32.dll" _
    Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey _
    As String, phkResult As Long) As Long
    Private Declare Function RegSetValueEx Lib "advapi32.dll" _
    Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, _
    ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, _
    ByVal cbData As Long) As Long
    Private Declare Function RegCloseKey Lib "advapi32.dll" _
    (ByVal hKey As Long) As Long
    Private Const HKEY_CLASSES_ROOT = &H80000000

    Private Sub AssociateMyApp(ByVal sAppName As String, _
    ByVal sEXE As String, ByVal sExt As String, Optional ByVal sIcon As String)
    Dim lRegKey As Long
    Call RegCreateKey(HKEY_CLASSES_ROOT, sExt, lRegKey)
    Call RegSetValueEx(lRegKey, "", 0&, 1, ByVal sAppName, Len(sAppName))
    Call RegCloseKey(lRegKey)
    Call RegCreateKey(HKEY_CLASSES_ROOT, sAppName & "\Shell\Open\Command", lRegKey)
    Call RegSetValueEx(lRegKey, "", 0&, 1, ByVal sEXE, Len(sEXE))
    Call RegCloseKey(lRegKey)
    If Len(sIcon) Then
    Call RegCreateKey(HKEY_CLASSES_ROOT, sAppName & "\DefaultIcon", lRegKey)
    Call RegSetValueEx(lRegKey, "", 0&, 1, ByVal sIcon, Len(sIcon))
    Call RegCloseKey(lRegKey)
    End If
    End Sub

    Private Sub Command1_Click()
    AssociateMyApp "My New File App", "C:\File.exe %1", ".txt", "C:\File.exe,-1"
    End Sub

    наверх

    Подгоняет высоту выпадающего окна ComboBox'а к высоте имеющихся строк

    Private Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long

    Public Sub ResizeCbo(cbo As ComboBox)
    Counter = cbo.ListCount
    cboLeft = cbo.Left / Screen.TwipsPerPixelX
    cboTop = cbo.Top / Screen.TwipsPerPixelY
    cboWidth = cbo.Width / Screen.TwipsPerPixelX
    cboHeight = cbo.Height / Screen.TwipsPerPixelX * Counter
    MoveWindow cbo.hwnd, cboLeft, cboTop, cboWidth, cboHeight, 1
    End Sub

    наверх

    Определяет, соответствует ли имя файла маске

    Private Function IsMask(ByVal FileName As String, ByVal Mask As String) As Boolean
    'объявляем переменные
    Dim i As Integer
    Dim pos As Integer
    Dim posit As Integer
    Dim curs As String
    Dim tmp As Integer
    Dim temp As String
    Dim j As Integer
    'Заменяем идущие подряд несколько звёздочек на одну
    pos = 1
    posit = InStr(pos, Mask, "**")
    Do While posit <> 0
    temp = Left$(Mask, posit - 1)
    temp = temp & Mid$(Mask, posit, 1)
    temp = temp & Right$(Mask, Len(Mask) - (posit + 1))
    Mask = temp
    posit = InStr(pos, Mask, "**")
    Loop
    'Заменяем *? на *
    pos = 1
    posit = InStr(pos, Mask, "*?")
    Do While posit <> 0
    temp = Left$(Mask, posit - 1)
    temp = temp & Mid$(Mask, posit, 1)
    temp = temp & Right$(Mask, Len(Mask) - (posit + 1))
    Mask = temp
    posit = InStr(pos, Mask, "*?")
    Loop
    'Перебираем все символы в Mask
    For pos = 1 To Len(Mask)
    curs = Mid$(Mask, pos, 1)
    Select Case curs
    'если символ "?", то это любой знак
    Case "?"
    j = j + 1
    i = i + 1
    'если символ "*", то
    Case "*"
    If pos = Len(Mask) Then
    'Если это последний символ, отпускаем с богом
    i = i + (Len(FileName) - j)
    'А если нет, то ищем символв FileName,
    'стоящий в Mask за звездой
    Else
    tmp = InStr(pos, FileName, Mid$(Mask, pos + 1, 1))
    'Если символ не найден, то
    If tmp = 0 Then
    'Значение функции = False
    IsMask = False
    'Выходим из функции
    Exit Function
    End If
    'i = i + кол-во непроверенных символов
    i = i + (tmp - (j + 1))
    'то же самое с j
    j = j + (tmp - (j + 1))
    End If
    'если символ не "*" и не "?", то
    Case Else
    j = j + 1
    'если символ в FileName совпадает с символом
    'в Mask, то
    If Mid$(FileName, j, 1) = Mid$(Mask, pos, 1) Then
    'Увеличиваем счётчик попаданий
    i = i + 1
    End If
    End Select
    'завершаем цикл
    Next
    'Если i соответствует длине FileName, то
    'значение функции True, иначе False
    If i = Len(FileName) Then IsMask = True Else IsMask = False
    End Function

    наверх

    Книги

    Visual Basic 6.0 ( Руководство для программистов )

    Фотография книги Язык программирования Visual Basic - мощный инструмент разработки приложений для 32-разрядных систем Windows 95 и Windows NT.
    В книге рассматриваются как фундаментальные понятия и темы, так и сложные вопросы, адресованные профессиональным программистам.

    Нет данных по автору(ам), «БХВ - Санкт-Петербург» — 2000, 959 стр.
    248,19 руб. - 5% = 235.6 руб.

    SQL (Полное руководство)

    Фотография книги Второе издание существенно расширенное и обновленное описание языка SQL, являющегося основным инструментом работы с реляционными базами данных.

    Д. Р. Грофф, «СПАРРК, Издательская группа BHV» — 2001, 816 стр.
    343,08 руб. - 5% = 325.85 руб.

    наверх

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

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

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

    Подписаться

    Группа по вирусам

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

    Подписаться

    наверх

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

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

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

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

    Требуется человек, знающий HTML для работы с сайтом группы СооБчаVB. Вопросы и предложения по этому адресу

    наверх

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

    BalloonMessage for MS Agent

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

    Подробнее...

    наверх

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

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

    Вопросы:

    Автор вопроса:     Николай Коваль

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

    Как получить IP адресса компьютеров которые находятса в одной лок. сети с даным?

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

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

    Скажите, пожалуйста, как узнать функции, содержащиеся в каком-либо DLL. Есть ли какие-нибудь декомпиляторы для DLL и где их можно достать?

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

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

    Пожалуйста, помогите! Как на VB узнать загрузку процессора желательно не через реестр.

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

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

    Когда-то давно (месяцев 8,5 назад) я вытаскивал с инета АктивИксу которая работала как таблица на форме, но при этом ей было совершенно наплевать к какому источнику данных она подстегнута. Работала и со стандартным Данные (VB6). Потом на корпоративном серваке была авария... Много чего погибло... В том числе и этот контрол (спасали-то документы, оракл, и прочую хрень)... Потом он был и вовсе забыт за ненадобностью. А неперь очень надо!!!

    Итак: .....АктивИксу которая работала как таблица на форме, но при этом ей было совершенно наплевать к какому источнику данных она подстегнута. Работала и со стандартным Данные (VB6).....

    Автор вопроса: Юрий

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

    Здравствуйте. У меня к вам следующий вопрос.В VB можно создавать базы данных DAT.Но по видимому, в них существует ограничения по длинне единичной записи, так как при вводе достаточно большого количества символов в единичную запись выдается ошибка 'Неверная длинна записи', а при малом количестве все OK.Скажите пожалуйста как расширить длинну единичной записи (чем больше тем лучше).

    Автор вопроса: Igor Malinovsky

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

    Кто знает,как открыть запороленный*.mdb через DAO?

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

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

    Подскажите пожалуйста, не видел ли кто библиотечки для работы с модемом и передачи файлов по модемной свяяи по протокалу типа Z-Modem.

    Ответы:

    Вопрос:

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

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Очень, ну просто очень просто.

    Dim OldName as String, NewName as String
    OldName = "СтараяБаза.mdb"
    NewName = "НоваяБаза.mdb"
    DBEngine.CompactDatabase (OldName, NewName)

    Вопрос:

    Как в VB организовать передачу данных по сети (например, по протоколу TCP/IP)?

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Воспользуйтесь Microsoft Winsock Control. Как это делать - описывать не буду, потому что информации об этом полно и в MSDN, и в сети. Просто приведу статью из MSDN

    To create a TCP server

    Create a new Standard EXE project.
    Change the name of the default form to frmServer.
    Change the caption of the form to "TCP Server."
    Draw a Winsock control on the form and change its name to tcpServer.
    Add two TextBox controls to the form. Name the first txtSendData, and the second txtOutput.

    Add the code below to the form.

    Private Sub Form_Load()
    ' Set the LocalPort property to an integer.
    ' Then invoke the Listen method.
    tcpServer.LocalPort = 1001
    tcpServer.Listen
    frmClient.Show ' Show the client form.
    End Sub

    Private Sub tcpServer_ConnectionRequest _
    (ByVal requestID As Long)
    ' Check if the control's State is closed. If not,
    ' close the connection before accepting the new
    ' connection.
    If tcpServer.State <> sckClosed Then _
    tcpServer.Close
    ' Accept the request with the requestID
    ' parameter.
    tcpServer.Accept requestID
    End Sub

    Private Sub txtSendData_Change()
    ' The TextBox control named txtSendData
    ' contains the data to be sent. Whenever the user
    ' types into the textbox, the string is sent
    ' using the SendData method.
    tcpServer.SendData txtSendData.Text
    End Sub

    Private Sub tcpServer_DataArrival _
    (ByVal bytesTotal As Long)
    ' Declare a variable for the incoming data.
    ' Invoke the GetData method and set the Text
    ' property of a TextBox named txtOutput to
    ' the data.
    Dim strData As String
    tcpServer.GetData strData
    txtOutput.Text = strData
    End Sub

    The procedures above create a simple server application. However, to complete the scenario, you must also create a client application.

    To create a TCP client

    Add a new form to the project, and name it frmClient.
    Change the caption of the form to TCP Client.
    Add a Winsock control to the form and name it tcpClient.
    Add two TextBox controls to frmClient. Name the first txtSend, and the second txtOutput.
    Draw a CommandButton control on the form and name it cmdConnect.
    Change the caption of the CommandButton control to Connect.

    Add the code below to the form.
    Important Be sure to change the value of the RemoteHost property to the friendly name of your computer.

    Private Sub Form_Load()
    ' The name of the Winsock control is tcpClient.
    ' Note: to specify a remote host, you can use
    ' either the IP address (ex: "121.111.1.1") or
    ' the computer's "friendly" name, as shown here.
    tcpClient.RemoteHost = "RemoteComputerName"
    tcpClient.RemotePort = 1001
    End Sub

    Private Sub cmdConnect_Click()
    ' Invoke the Connect method to initiate a
    ' connection.
    tcpClient.Connect
    End Sub

    Private Sub txtSendData_Change()
    tcpClient.SendData txtSend.Text
    End Sub

    Private Sub tcpClient_DataArrival _
    (ByVal bytesTotal As Long)
    Dim strData As String
    tcpClient.GetData strData
    txtOutput.Text = strData
    End Sub

    The code above creates a simple client-server application. To try the two together, run the project, and click Connect. Then type text into the txtSendData TextBox on either form, and the same text will appear in the txtOutput TextBox on the other form.

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

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

    наверх

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

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


Выпуск 16.

VB Студия
  • Статьи - 31
  • Контролы - 9
  • Примеры - 31
  • Хитрости - 31
  • Куски кодов - 19
  • Windows Api - 27
  • FAQ
VB Line
  • Статьи
  • ActiveX
  • Примеры
  • Советы
  • Windows Api
Голосование:

Ваш голос отсылается по 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 - мания
  • VB по русски
  • Snoozex Design
            • Несколько слов от автора:

    Увеличен размер рассылки. Отныне будет публиковаться 5 хитростей.
    Читайте!

    Содержание выпуска
    • Новости сайта VB Студия
    • Новости сайта VBLine

    • Измерение скорости выполнения операций
    • Программное изменение раскладки клавиатуры
    • Реализация Undo и для стандартного TextBox
    • Особенности программного выбора элементов в ListView
    • Размещение окна у основания Панели задач

    • Книги

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

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

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

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

    • 16 ноября 2001 года - Добавил много разных примеров.
    • 13 ноября 2001 года - Добавил 4 примера. Один шифрует и соединяет в один файл несколько файлов. Второй переводит числа в разные системы счисления. Третий создаёт SaveGame для игры NightmareCreatures с нужными настройками. А четвёртый пример - шпион, который работает в локальной сети.
    • 11 ноября 2001 года - Дописал статью "Основы SQL". Можете почитать её здесь.
      В Библиотеку кодов добавлен один код.
      Небольшое пополнение в FAQ.
    • 7 ноября 2001 года - Добавлен контрол, изображающий координатную сетку.
    • 6 ноября 2001 года - Создан ФОРУМ!!! Обязательно туда зайлите.
    • 5 ноября 2001 года - Небольшое обновление в FAQ.
      В раздел Библиотека кодов добавлен один код.

    наверх

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

    12 ноября 2001 г. Решил, что Вам будет интересно узнать, кто сюда ходит и какова аудитория сайта. Все данные оформил в читаемом виде и положил сюда. Смотрите, читайте и изучайте. Конечно, немного, но все же статистика.
    11 ноября 2001 г. Ну вот, 7 ноября мне стукнуло 27 лет. Эх.. время. Ну да ладно, в Примеры положил интересную работу Андрея Перминова - добавление заголовка в обычное меню, думаю, что это будет интересно многим. Наконец-то появился новый совет, все наверное видели окна с недоступной кнопкой закрытия окна, а вот как это сделать, думаю, знают не все. Скажу сразу, что автор мне неизвестен, поэтому, если что, то пишите мне shatrykin@mail.ru. И, напоследок, хочу пожаловаться: что-то Вы мне маловато материала присылаете. Активнее надо быть!
    05 ноября 2001 г. Во-первых, я получил сертификат "Visual Basic Programmer" уровня Master от eCertification.com. Поздравления принимаются по прежнему адресу shatrykin@mail.ru.Во-вторых, на сайте есть одна "обновка". Stas(Sheff) Vorobiov прислал интересный пример игры с использованием DirectX.
    28 октября 2001 г. Представляю очень интересную статью: Динамическое создание ДТС-пакетов с помощью VB. Автор работы Андрей Чувахин. В статье показывается программное решение конкретной задачи по копированию данных из таблицы формата ДБФ в базу данных MS SQL Server.

    наверх

    Измерение скорости выполнения операций

    Дёмин Антон [http://demin.narod.ru] написал, пример на тему - как измерить время выполнения операции. Но он описал только принцип. Мне показалось, что Вам было бы удобнее если всё это оформить в виде процедур. Принцип измерений очень прост использование timeGetTime из мультимедиа библиотеки winmm.dll (на мой взгляд она самая точная).

    Итак, я написал модуль, который включает в себя несколько процедур. ProfileStart - вызывается вначале выполнения операции, время которой нужно измерить. Ей нужно передать параметр в который она запишет начальное значение таймера. После того, как операция выполнена, вызывайте ProfileStop или ProfileStopMsg для остановки таймера. Эти две процедуры отличаются тем, что первая возвратит во втором параметре прошедшее время, а вторая выводит MsgBox, в котором показывает прошедшее время.

    Option Explicit

    Public Declare Function timeGetTime Lib "winmm.dll" () As Long

    'запускает таймер для измерения
    Public Sub ProfileStart(lStart As Long)
    lStart = timeGetTime
    End Sub

    'измеряет время выполнения операции
    Public Sub ProfileStop(lStart As Long, lLenth As Long)
    lLenth = timeGetTime - lStart
    End Sub

    'измеряет время выполнения операции
    'и сообщает пользователю в окне MSGBOX
    Public Sub ProfileStopMsg(lStart As Long)
    Dim lLenth As Long

    lLenth = timeGetTime - lStart
    MsgBox "Время выполнения операции составило" & vbCrLf & lLenth & " ms.", vbInformation + vbOKOnly
    End Sub

    наверх

    Программное изменение раскладки клавиатуры

    Дёмин Антон [http://www.demin52.com] прислал новый совет. Он касается тех, кто хочет программно изменять раскладку клавиатуры во время выполнения работы программы.

    Итак. При загрузке формы вызываешь функцию API GetKeyboardLayout(....), предварительно объявив ее, и все необходимые константы API. Эта функция возвращает текущую раскладку клавиатуры, а затем, с помощью ActivateKeyboardLayout, переключаем раскладку.

    Public Declare Function GetKeyboardLayout Lib "user32" (ByVal dwLayout As Long) As Long
    Public Declare Function ActivateKeyboardLayout Lib "user32" (ByVal HKL As Long, ByVal flags As Long) As Long

    Public Const HKL_NEXT = 1

    Public Const HKL_PREV = 0

    Public Const KLF_REORDER = &H8

    Public Sub МоеИмяПроцедуры()

    Dim lCodeKeybord As Long, CodeKeybord As Long

    lCodeKeybord = GetKeyboardLayout(CodeKeybord)

    If lCodeKeybord = 67699721 Then 'если английский, то все нормально

    'Выполняем необходимые действия

    Else 'если нет, то переключаем на английский

    'в моем случае и выполняем необходимые действия

    Call ActivateKeyboardLayout(HKL_NEXT, KLF_REORDER)

    'Выполняем необходимые действия

    'Переключаем на предыдущую раскладку, в моем случае русская

    Call ActivateKeyboardLayout(HKL_PREV, KLF_REORDER)

    End If

    наверх

    Реализация Undo и для стандартного TextBox

    Вы наверняка видели, что в стандартном текстовом окне Windows (TextBox) есть функция Undo, срабатывающая при нажатии Ctrl + Z. Если это уже реализовано, то может быть можно как-то программно управлять этим свойством? Оказывается можно! Итак, для начала объявим в модуле одну, нужную нам, функцию SendMessage и несколько констант:

    Public Const EM_UNDO = &HC7

    Public Const EM_CANUNDO = &HC6

    Public Const EM_REDO = &H454 'только для Rich Edit 2.0 или позже

    Public Const EM_CANREDO = &H455 'только для Rich Edit 2.0 или позже

    Для реализации "отмены" посылаем окну сообщение EM_CANUNDO, если функция возвратит TRUE, то отмена возможна и значит можно посылать сообщение EM_UNDO. Получив EM_UNDO, TextBox выполнит отмену последней операции. Реализация "повторить" выполняется аналогичным образом.

    fCanUndo = SendMessage (ActiveForm.ActiveControl.hWnd, EM_CANUNDO, &00, &00)

    If f CanUndo Then

    SendMessage ActiveForm.ActiveControl.hWnd, EM_UNDO, &00, &00

    End If

    наверх

    Особенности программного выбора элементов в ListView

    Если Вам уже приходилось работать с ListView, то Вы, вероятно, уже сталкивались с ситуацией, когда программно выбранный элемент не виден пользователю. Дело в том, что вызов SelectedItem не всегда подразумевает, что выбранный элемент будет виден пользователю. Для того, чтобы пользователь увидел выделенный элемент, нужно вызвать метод EnsureVisible для выбранного элемента. Пожалуйста не забывайте об этом!

    'поместите на форму ListView, скопируйте

    'этот код и посмотрите, что получится.

    Private Sub Form_Load()

    Dim x As Integer

    With ListView1

    For x = 1 To 20

    .ListItems.Add Key:="элемент" & x, Text:="элемент" & x

    Next x

    .SelectedItem = .ListItems("элемент20")

    .SelectedItem.EnsureVisible

    End With

    End Sub

    наверх

    Размещение окна у основания Панели задач

    По умолчанию, Windows отображает панель задач в нижней части экрана. Вы можете переместить её к любому краю экрана, изменяя тем самым размеры доступной области экрана. С панелью задач, всегда видимой на экране, информация иногда заслоняется - особенно, если пользователь развертывает окно приложения. Вы можете использовать функцию SystemParametersInfo в приложении, чтобы определить доступную область экрана.

    Чтобы увидеть, как это работает, создайте новый проект. На форму добавьте контрол Command Button. Затем, добавьте код "Листинг A" для события Click Command Button. Наконец, создайте новый модуль, и добавьте код "Листинг B" в модуль.

    Листинг A:

    Private Sub Command1_Click()

    Dim RC As RECT

    Dim X As Long

    X = SystemParametersInfo _

    (SPI_GETWORKAREA, vbNull, RC, 0)

    Me.Move RC.Left * _

    Screen.TwipsPerPixelX, RC.Top * _

    Screen.TwipsPerPixelY, RC.Right * _

    Screen.TwipsPerPixelX, RC.Bottom * _

    Screen.TwipsPerPixelY

    End Sub

    Листинг B:

    Public Declare Function _

    SystemParametersInfo Lib "user32" _

    Alias "SystemParametersInfoA" _

    (ByVal uAction As Long, ByVal _

    uParam As Long, lpvParam As Any, _

    ByVal fuWinini As Long) As Long

    Public Const SPI_GETWORKAREA = 48

    Type RECT

    Left As Long

    Top As Long

    Right As Long

    Bottom As Long

    End Type

    Прежде, чем выполнить эту программу, удостоверитесь, что панель задач видна на вашем экране. Чтобы выполнять программу, нажмите [F5]. Форма появится на экране. Щелкните кнопку. Форма развернута и остается выше панели задач и не заслонена панелью задач.

    Весь выше приведенный код использует одну функцию - SystemParametersInfo. Она позволяет Вам определять большое количество системных параметров настройки Windows. Так как число системных параметров настройки в Windows очень большое, мы только обсудим те, в которых мы заинтересованы - рабочая область экрана. Чтобы определить рабочую область экрана, вызовите функцию с параметром SPI_GETWORKAREA. Этот параметр сообщает функции, что нужно возвратить координаты доступной области на экране. Координаты возвращаются в структуре RECT. Как только Вы определили рабочую область экрана в структуре RECT, Вы можете использовать функцию Visual Basic Move, чтобы изменить размеры формы к размеру координат, сохраненных в структуре RECT.

    наверх

    Книги

    Азбука программирования в Windows 32 API

    Фотография книги Изложены вопросы создания программных приложений для Window95 и Windows NT.
    Описаны основные типы переменных, макросов, функций.
    Материал книги иллюстрируется многочисленными примерами.
    Настоящее издание (второе вышло в 2000 г.) дополнено описанием тех возможностей Windows, которые не были упомянуты в предыдущих изданиях.

    Румянцев П.В., «Радио и связь» — 2001, 312 стр.
    85 руб. - 5% = 80.75 руб.

    Visual Basic 6.0 :Учебное пособие для вузов

    Фотография книги В систематизированном виде излагаются основы программирования в среде одного из наиболее популярных визуальных средств разработки Windows-приложений.
    Рассмотрены фундаментальные понятия, использование графики и анимации, программирование баз данных, основы проектирования пользовательского интерфейса.
    Для студентов, обучающихся по направлению 654600 ''Информатика и вычислительная техника'', может быть полезна начинающим программистам.

    Литвиненко Т.В., «Горячая линия-Телеком, Радио и связь» — 2001, 140 стр.
    48 руб. - 5% = 45.6 руб.

    наверх

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

    Трехмерное моделирование

    Хочешь создать свою вселенную, но не знаешь как, чем и где? Заходи, разберёмся... Свободное общение людей так или иначе связанных с 3D графикой. Здесь вы можете задать любые вопросы. Присоединяйтесь :)

    Подписаться

    Программирование на Visual Basic

    Всю жизнь мечтали программировать на Visual Basic? Приходите, получите бесценный опыт и очень полезные навыки в программировании. Напишем программу вместе — СообЧа. Ну, и, конечно, ответим на ваши вопросы.

    Подписаться

    Группа некомпьютерных вопросов

    Не следует думать, что сидящего денно и нощно за компьютером Чайника волнует только то, что связано с его компом. Иногда приходится от него оторваться, и вот тут-то всех нас подстерегают другие проблемы, возникают другие вопросы — как сдать вовремя сессию, что делать, если гибддэшник отобрал права, как правильно написать расписку, как красиво и правильно повесить на стену две картины, какого цвета обои будут гармонировать с вашим напольным покрытием...

    Подписаться

    Почта в интернете

    Эл. группа, предназначенная для обсуждения почтовых сервисов в интернете, а так же всех известных почтовых программ.

    Подписаться

    Заработок в сети

    Как вы относитесь к заработку в сети? Думаете ли вы, что все это ловкий обман или вы вообще ничего об этом не знаете? Хотите поделиться опытом, послушать других или просто выговориться?

    Подписаться

    наверх

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

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

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

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

    Требуется человек, знающий HTML для работы с сайтом группы СооБчаVB. Вопросы и предложения по этому адресу

    наверх

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

    BalloonMessage for MS Agent

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

    Подробнее...

    наверх

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

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

    Вопросы:

    Автор вопроса:     Женя

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

    Помогите , пожалуйста разобраться в таком вопросе . Надо считать информацию из Event Viewer.
    Ни в одном месте не нашел использования функции ReadEventLog.
    Сначала открываю журнал с помощью функции OpenEventLog и получаю дескриптор файла , который и передаю функции ReadEventLog. Не могу разобраться какие значения могут принимать такие параметры :dwReadFlags , dwRecordOffset , nNumberOfBytesToRead.(Я знаю что dwReadFlags может принимать такие значения
    EVENTLOG_SEQUENTIAL_READ ,
    EVENTLOG_SEEK_READ ,EVENTLOG_FORWARDS_READ, EVENTLOG_BACKWARDS_READ) .
    И если возможно напишите какой вид должна иметь окончательная функция.

    Public Declare Function ReadEventLog Lib "advapi32.dll" Alias "ReadEventLogA" (ByVal hEventLog As Long, ByVal dwReadFlags As Long, ByVal dwRecordOffset As Long, lpBuffer As EVENTLOGRECORD, ByVal nNumberOfBytesToRead As Long, pnBytesRead As Long, pnMinNumberOfBytesNeeded As Long) As Long

    Автор вопроса: Humbat Nasibov

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

    Pomogite pojaluysta. Nujen kod na Vb dlya postroeniya 2-x mernix grafikov (matematika) funktsiy ili dannix.
    Naprimer, y=sin(x) i t.d.

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

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

    Напроглал на VB программу,но она не со всеми комьютрами работает (веяде 98винд 97офис), испольяуент она ADO к БД Акцессу(..Adodc1.Recordset.AddNew "myField","ssss") - то проблема : на моем компе прога естественно пашет на другом где не стоит VB она тоже пашет а на еще другом компе выдает сообщение "runtime error испольяуйте обновляемый яапрос". В чем проблема, вроде ОФИС веяде 97 (Может влияют раные библиотеки версий офиса 97 )?

    ps Думается если янал бы VC то не янал бы хлопот с офисом если конечно это ия-яа него, в VC наверняка встроенные библиотеки, и не обяяательно вообще ставить офис?

    Автор вопроса: Денис Козлов

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

    Я столкнулся с одной небольшой проблемой при разработке базы данных на Visual Basic 6.0. Знаю, что проблема ерундовая, но я только-только начинаю работать с Basic, и поэтому для меня она не проста. Опишу проблему в общем.
    Я создал форму Form1. На ней расположил три текстовых поля Text1, Text2, Text3 и элемент Data (с именем Data1).
    С помощью Visual Data Manager создал базу данных и связал текстовые поля Text1, Text2, Text3 с полями базы данных (наименования полей: Field1, Field2, Field3, наименование БД - Database). Элемент Data связал с созданной БД, так что можно перемещаться по записям БД.
    Далее создал меню на форме Form1, где есть пункты Добавить запись, Удалить запись, Печать, Поиск и Выход. В пункте Поиск есть подменю с пунктами Текст1, Текст2, Текст3.
    Обработку событий для Добавить запись,Удалить запись и
    Выход я написал (здесь особых проблем не возникло). При кликании на Печать - Текст1 открывается форма Form2, на которой есть текстовое поле Form2.Text1 и две кнопки ОК и Отмена. При нажатии кнопки Отмена форма Form2 исчезает и появляется форма Form1 (Обработку нажатия этой кнопки я написал). При нажатии кнопки ОК должен производиться поиск по записям базы данных (Database) и выводиться та запись, поле Field1 которой частично или полностью совпадает с текстом, введенным в текстовое поле Form2. Text1. В результате должна отображаться форма Form1 с найденной записью.
    Вопрос 1: какой будет код для кнопки ОК? И как восстановить прежнее состояние формы Form1, чтобы снова можно было бы передвигаться по записям с помощью Data1?
    Вопрос 2: при нажатии на пункте Печать меню формы Form1 должен выводиться на печать отчет, где в трех столбцах должны фигурировать данные полей базы данных Field1, Field2 и Field3. Названия столбцов соответственно Text1, Text2 и Text3. Как это можно сделать?

    Ответы:

    Вопрос:

    Как получить IP адресса компьютеров которые находятса в одной лок. сети с даным?

    Ответ:

    Автор ответа: Shemyakin, Dmitry

    Можно сэмулировать ping запрос - в ответе будет нужный IP адрес. Как это сделать точно я не знаю но вероятно нужна будет апишная функция посылающая такой запрос.

    Вопрос:

    Скажите, пожалуйста, как узнать функции, содержащиеся в каком-либо DLL. Есть ли какие-нибудь декомпиляторы для DLL и где их можно достать?

    Ответ:

    Автор ответа: Vlad Radionov

    При наличии Visual Studio запустите depends.exe (common\Tools)

    Вопрос:

    Скажите, пожалуйста, как узнать функции, содержащиеся в каком-либо DLL. Есть ли какие-нибудь декомпиляторы для DLL и где их можно достать?

    Ответ:

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

    DLL я просматриваю так!
    Открываю Проект - Ссылки - выбираю Dllку потом браузер обьектов и выбираешь библиотеку только что подключенную в окне выведутся все ее функции.

    Прим. ред.: так можно просматривать только содержимое ActiveX Dll.

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

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

    наверх

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

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


Выпуск 17.

VB Студия
  • Статьи - 33
  • Контролы - 12
  • Примеры - 48
  • Хитрости - 32
  • Куски кодов - 23
  • Windows Api - 27
  • FAQ
VB Line
  • Статьи
  • ActiveX
  • Примеры
  • Советы
  • Windows Api
Голосование:

Ваш голос отсылается по 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 - мания
  • VB по русски
  • Snoozex Design
            • Несколько слов от автора:

    В этом выпуске поставил описание системы Эксперт. Обязательно прочитайте.
    Читайте!

    Содержание выпуска
    • О системе Эксперт

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

    • Запуск DOS-приложения
    • Есть ли диск в устройстве
    • Определение високосного года
    • Оторбражет диалог выбора папки и открытия/сохранения файла
    • Сумма прописью

    • Книги

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

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

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

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

    • 23 ноября 2001 года - Появился раздел книги. Там можно приобрести книги от магазина Колибри. По соглашению проекта СообЧа и магазина Колибри на все представленные в этом разделе книги предоставляется скидка в размере 5% от стоимости книги.
    • 20 ноября 2001 года - Было очень много жалоб на качество форума. Сегодня сделал другой форум. Очень красивый, и на мой взгляд удобный. По-прежнему располагается по этому адресу.
      Добавлено 2 примера.
    • 18 ноября 2001 года - Закончил очередную статью. Называется она просто - "MSFlexGrid". В ней описываются возможности и основы работы с контролом MSFlexGrid, который служит для отображения табличных данных.
      Старые новости уплыли в архив.
    • 16 ноября 2001 года - Добавил много разных примеров.
    • 13 ноября 2001 года - Добавил 4 примера. Один шифрует и соединяет в один файл несколько файлов. Второй переводит числа в разные системы счисления. Третий создаёт SaveGame для игры NightmareCreatures с нужными настройками. А четвёртый пример - шпион, который работает в локальной сети.
    • 11 ноября 2001 года - Дописал статью "Основы SQL". Можете почитать её здесь.
      В Библиотеку кодов добавлен один код.
      Небольшое пополнение в FAQ.
    • 7 ноября 2001 года - Добавлен контрол, изображающий координатную сетку.

    наверх

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

    12 ноября 2001 г. Решил, что Вам будет интересно узнать, кто сюда ходит и какова аудитория сайта. Все данные оформил в читаемом виде и положил сюда. Смотрите, читайте и изучайте. Конечно, немного, но все же статистика.
    11 ноября 2001 г. Ну вот, 7 ноября мне стукнуло 27 лет. Эх.. время. Ну да ладно, в Примеры положил интересную работу Андрея Перминова - добавление заголовка в обычное меню, думаю, что это будет интересно многим. Наконец-то появился новый совет, все наверное видели окна с недоступной кнопкой закрытия окна, а вот как это сделать, думаю, знают не все. Скажу сразу, что автор мне неизвестен, поэтому, если что, то пишите мне shatrykin@mail.ru. И, напоследок, хочу пожаловаться: что-то Вы мне маловато материала присылаете. Активнее надо быть!
    05 ноября 2001 г. Во-первых, я получил сертификат "Visual Basic Programmer" уровня Master от eCertification.com. Поздравления принимаются по прежнему адресу shatrykin@mail.ru.Во-вторых, на сайте есть одна "обновка". Stas(Sheff) Vorobiov прислал интересный пример игры с использованием DirectX.
    28 октября 2001 г. Представляю очень интересную статью: Динамическое создание ДТС-пакетов с помощью VB. Автор работы Андрей Чувахин. В статье показывается программное решение конкретной задачи по копированию данных из таблицы формата ДБФ в базу данных MS SQL Server.

    наверх

    Запуск DOS-приложения

    Автор:     Николай

    '----
    ' этот код добавить в форму вместе с кнопкой
    Private Sub Command1_Click()
    Dim f As Variant
    'f = Shell("c:\autoexec.bat /K", 4)
    f = launchDosApp(Text1.Text, True, False, 4)
    MsgBox f
    End Sub
    ' этот код добавить в модуль
    Public Function launchDosApp(AppString As String, _
    Optional fConfirm As Boolean = False, _
    Optional fExit As Boolean = True, _
    Optional windowstyle = vbMaximizedFocus)
    'Запускает дос приложение, коммандная строка которого содержится
    ' в AppString, Если fconfirm=true, загружается оболочка дос в коммандной
    ' строке содержится AppString и запрос на исполнение, Если fConfirm = false
    ' (по умолчанию), приложение запускается сразу, если
    ' флаг fExit =true, сеанс Дос закрывается после завершение приложения
    On Error GoTo err_launchDosApp
    Dim sCommandString As String
    Dim sKey As String
    If fConfirm Then sKey = " /Y"
    sKey = sKey & " /" & IIf(fExit, "c", "k")
    'Y, C, K ключи Command.com
    If AppString = "" Then
    'запускается только коммандный процессор
    sCommandString = Environ$("comspec")
    Else
    sCommandString = Environ$("comspec") & sKey & " " & AppString
    End If
    launchDosApp = Shell(sCommandString, windowstyle)
    Exit_launchDosApp: Exit Function
    err_launchDosApp:
    MsgBox "Ошибка при запуске приложения:" & vbCrLf & _
    Err.Number & " " & Err.Description, vbCritical
    Resume Exit_launchDosApp
    End Function
    '----

    наверх

    Есть ли диск в устройстве

    Автор:     Шаронов Игорь Александрович

    Добавьте на форму элемент DriveListBox и элемент CommandButton. Запустите программу. Выбирая в элементе DriveListBox любое устройство (дисковод или привод CD-Rom) и нажимая на кнопку вы узнаете, находится ли дискетка или лазерный диск в устройстве. Добавьте следующий код:

    Private Declare Function GetVolumeInformation Lib "kernel32" Alias_
    "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal_
    lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long,_
    lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long,_
    lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String,_
    ByVal nFileSystemNameSize As Long) As Long

    Private Sub Command1_Click()
    erg& = GetVolumeInformation(Drive1.Drive, VolName$, 127&, VolNumber&, MCM&, FSF&, FSys$, 127&)
    If erg& = 0 Then
    MsgBox "Ничего в текущем устройстве нет"
    Else
    MsgBox "В текущем устройстве присутствует диск"
    End If
    End Sub

    наверх

    Определение високосного года

    Те, кто думают, что високосный год - это тот, который делится без остатка начетыре, глубоко заблуждаются. Так определяется високосный год в Юлианскомкалендаре (старый стиль). А вот в Григорианском (новый стиль) - дляустранения несоответствия календарного и солнечного (астрономического) года100-й год не считается високосным, но каждый 400-й - считается. Ошибкасредней продолжительности года в этом алгоритме составляет всего 26 секунд. Таким образом, алгоритм определения високосного года выглядит следующимобразом:

    Public Function IsLeapYear(iYear As Integer)' Проверка високосного года
    If (iYear Mod 4 = 0) And _((iYear Mod 100 > 0) Or (iYear Mod 400 = 0)) Then
    IsLeapYear = True ' високосный
    Else
    IsLeapYear = False ' не високосный
    End If
    End Function

    Hо можно придумать алгоритм гораздо проще. Еще раз -- что такое високосный год? Правильно, тот, который имеет дату 29 февраля. А значит, работает такой алгоритм:

    Function IsLeap (sYear As String) As Integer
    IsLeap = FalseIf IsDate ("02/29/" & sYear) Then
    IsLeap = True
    End Function

    Данный алгоритм определения високосного года можно применять только к Григорианскому календарю, который был введен в действие в 1582 году. А до этого момента следует использовать правило Юлианского календаря.

    наверх

    Оторбражет диалог выбора папки и открытия/сохранения файла

    Автор     Белодед М Ю

    Type OPENFILENAME
    longStructSize As Long
    hwndOwner As Long
    hInstance As Long
    strFilter As String
    strCustomFilter As String
    intMaxCustFilert As Long
    intFilterIndex As Long
    strFile As String
    intMaxFile As Long
    strFileTitle As String
    intMaxFileTitle As Long
    strInitialDir As String
    strTitle As String
    lngFlags As Long
    intFileOffset As Integer
    intFileExtention As Integer
    strDefExt As String
    lngCustData As Long
    lngfnHook As Long
    strTemlplateName As String
    End Type

    Type BROWSEINFO
    hOwner As Long
    pidlRoot As Long
    pszDisplayName As String
    lpszTitle As String
    ulFlags As Long
    lpfn As Long
    lParam As Long
    iImage As Long
    End Type

    ' дя работы с окнами файлов
    Declare Function GetOpenFileName Lib "comdlg32.dll" _
    Alias "GetOpenFileNameA" (ofn As OPENFILENAME) As Boolean
    Declare Function GetSaveFileName Lib "comdlg32.dll" _
    Alias "GetSaveFileNameA" (ofn As OPENFILENAME) As Boolean
    Declare Function GetActiveWindow Lib "User32.dll" () As Long
    'для каталогов
    Declare Function SHGetPathFromIDList Lib "shell32.dll" _
    Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
    Declare Function SHBrowseForFolder Lib "shell32.dll" _
    Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long

    Const OFN_READONLY = 1
    Const OFN_OVERWRITEPROMPT = 2
    Const OFN_HIDEREADONLY = 4
    Const OFN_NOCHANGEDIR = 8
    Const OFN_SHOWHELP = 16
    Const OFN_ENABLEHOOK = 32
    Const OFN_ENABLETEMPLATE = 64
    Const OFN_ENABLETEMPLATEHANDLE = 128
    Const OFN_NOVALIDATE = 256
    Const OFN_ALLOWMULTISELECT = 512
    Const OFN_EXTENSIONDIFFERENT = 1024
    Const OFN_PATHMUSTEXIST = 2048
    Const OFN_FILEMUSTEXIST = 4096
    Const OFN_CREATEPROMPT = 8192
    Const OFN_SHAREAWARE = 16384
    Const OFN_NOREADONLYRETURN = 32768
    Const OFN_NOTESTFILECREATE = 65536
    Const OFN_NONETWORKBUTTON = 131072
    Const OFN_NOLONGNAMES = 262144 'force no long names for 4.x modules
    Const OFN_EXPLORER = 524288 'new look commdlg
    Const OFN_NODEREFERENCELINKS = 1048576
    Const OFN_LONGNAMES = 2097152 'force long names for 3.x modules
    Const OFN_ENABLEINCLUDENOTIFY = 4194304 'send include message to callback
    Const OFN_ENABLESIZING = 8388608
    Const BIF_RETURNONLYFSDIRS = &H1
    Const PI = 3.14

    'Работа с папками
    Public Function BrowseFolder(szDialogTitle As String) As String
    Dim X As Long, bi As BROWSEINFO, dwIList As Long
    Dim szPath As String, wPos As Integer

    With bi
    .hOwner = hWndAccessApp
    .lpszTitle = szDialogTitle
    .ulFlags = BIF_RETURNONLYFSDIRS
    End With

    dwIList = SHBrowseForFolder(bi)
    szPath = Space$(512)
    X = SHGetPathFromIDList(ByVal dwIList, ByVal szPath)

    If X Then
    wPos = InStr(szPath, Chr(0))
    BrowseFolder = Left$(szPath, wPos - 1)
    Else
    BrowseFolder = ""
    End If
    End Function

    'Работа с файлами
    Public Function FileDialog( _
    Optional strInitDir As String, _
    Optional strFilter As String = "Все файлы" & vbNullChar & "*.*" _
    & vbNullChar & vbNullChar, _
    Optional intFilterIndex As Integer = 1, _
    Optional strDefaultExt As String, _
    Optional strFilename As String, _
    Optional strDialogTitle As String = "Открытие файла", _
    Optional hwnd As Long = -1, _
    Optional fOpenFile As Boolean = True, _
    Optional ByRef lngFlags As Long = _
    (OFN_HIDEREADONLY + OFN_PATHMUSTEXIST + OFN_FILEMUSTEXIST)) As Variant
    'Функция вызова диалогового окна Открыть/Сохранить
    'Все аргументы необязательны. Возвращает имя файла или пустую строку ("")

    Dim ofn As OPENFILENAME
    Dim strFileTitle As String
    Dim fRezalt As Boolean
    Dim ret As String, s As String, i As Integer

    ' Заполнение пропущенных аргументов
    If strInitDir = "" Then
    strInitDir = CurDir
    End If
    If hwnd = -1 Then
    hwnd = GetActiveWindow()
    End If

    ' Установка буферов для результата
    strFilename = strFilename & String(255 - Len(strFilename), 0)
    strFileTitle = String(255, 0)

    With ofn
    .longStructSize = Len(ofn)
    .hwndOwner = hwnd
    .strFilter = strFilter
    .intFilterIndex = intFilterIndex
    .strFile = strFilename
    .intMaxFile = Len(strFilename)
    .strFileTitle = strFileTitle
    .intMaxFileTitle = Len(strFileTitle)
    .strTitle = strDialogTitle
    .lngFlags = lngFlags
    .strDefExt = strDefaultExt
    .strInitialDir = strInitDir
    .hInstance = 0
    .strCustomFilter = String(255, 0)
    .intMaxCustFilert = 255
    .lngfnHook = 0
    End With
    'Вызов - Открыть/Сохранить
    If fOpenFile Then
    fRezalt = GetOpenFileName(ofn)
    Else
    fRezalt = GetSaveFileName(ofn)
    End If

    If fRezalt Then
    FileDialog = Left(ofn.strFile, InStr(1, ofn.strFile, Chr(0)) - 1)
    Else
    FileDialog = ""
    End If

    End Function

    наверх

    Сумма прописью

    Автор     Алексей Лукин

    Dim Сумма As Currency, Остаток As Currency

    Function Десятки(Разряд As Long) As String

    Select Case Разряд
    Case 2
    Десятки = "двадцать "
    Case 3
    Десятки = "тридцать "
    Case 4
    Десятки = "сорок "
    Case 5
    Десятки = "пятьдесят "
    Case 6
    Десятки = "шестьдесят "
    Case 7
    Десятки = "семьдесят "
    Case 8
    Десятки = "восемьдесят "
    Case 9
    Десятки = "девяносто "
    End Select

    End Function

    Function Единицы(Разряд As Long, Род As String) As String

    Select Case Разряд
    Case 1
    If Род = "Мужской" Then
    Единицы = "один "
    Else
    Единицы = "одна "
    End If
    Case 2
    If Род = "Мужской" Then
    Единицы = "два "
    Else
    Единицы = "две "
    End If
    Case 3
    Единицы = "три "
    Case 4
    Единицы = "четыре "
    Case 5
    Единицы = "пять "
    Case 6
    Единицы = "шесть "
    Case 7
    Единицы = "семь "
    Case 8
    Единицы = "восемь "
    Case 9
    Единицы = "девять "
    Case 10
    Единицы = "десять "
    Case 11
    Единицы = "одиннадцать "
    Case 12
    Единицы = "двенадцать "
    Case 13
    Единицы = "тринадцать "
    Case 14
    Единицы = "четырнадцать "
    Case 15
    Единицы = "пятнадцать "
    Case 16
    Единицы = "шестнадцать "
    Case 17
    Единицы = "семнадцать "
    Case 18
    Единицы = "восемнадцать "
    Case 19
    Единицы = "девятнадцать "

    End Select

    End Function

    Function Миллионы(Разряд As Long) As String

    If Разряд = 1 Then
    Миллионы = "миллион "
    ElseIf Разряд > 1 And Разряд < 5 Then
    Миллионы = "миллиона "
    Else
    Миллионы = "миллионов "
    End If

    End Function

    Function Рубли(Разряд As Long) As String

    If Разряд = 1 Then
    Рубли = "рубль"
    ElseIf Разряд > 1 And Разряд < 5 Then
    Рубли = "рубля"
    Else
    Рубли = "рублей"
    End If

    End Function

    Function Сотни(Разряд As Long) As String

    Select Case Разряд
    Case 1
    Сотни = "сто "
    Case 2
    Сотни = "двести "
    Case 3
    Сотни = "триста "
    Case 4
    Сотни = "четыреста "
    Case 5
    Сотни = "пятьсот "
    Case 6
    Сотни = "шестьсот "
    Case 7
    Сотни = "семьсот "
    Case 8
    Сотни = "восемьсот "
    Case 9
    Сотни = "девятьсот "
    End Select

    End Function

    Function СуммаПрописью(СуммаСчета As Double) As String
    ' Параметры: Используются глобальные параметры
    ' Сумма, Остаток и Подпись
    ' Назначение: Перевод СуммыСчета в строковую константу
    ' Возвращает: СуммуПрописью

    Dim Группа As Long, Разряд As Long, Длина As Integer
    Dim Пропись As String
    Dim cents As String
    Dim cent As Long
    cent = Format(CInt((СуммаСчета - Fix(СуммаСчета)) * 100))
    Сумма = СуммаСчета
    If Сумма < CLng(Сумма) Then Сумма = Сумма - 1
    Остаток = Сумма

    Группа = Остаток \ 1000000
    If Группа <> 0 Then
    Разряд = Группа \ 100
    Пропись = Пропись & Сотни(Разряд)
    Остаток = Остаток - Разряд * 100 * 1000000
    Группа = Группа - Разряд * 100

    If Группа > 19 Then
    Разряд = Группа \ 10
    Пропись = Пропись & Десятки(Разряд)
    Остаток = Остаток - Разряд * 10 * 1000000
    Группа = Группа - Разряд * 10
    End If

    Разряд = Группа
    Пропись = Пропись & Единицы(Разряд, "Мужской")
    Остаток = Остаток - Разряд * 1000000

    Пропись = Пропись & Миллионы(Разряд)
    End If

    Группа = Остаток \ 1000
    If Группа <> 0 Then
    Разряд = Группа \ 100
    Пропись = Пропись & Сотни(Разряд)
    Остаток = Остаток - Разряд * 100 * 1000
    Группа = Группа - Разряд * 100

    If Группа > 19 Then
    Разряд = Группа \ 10
    Пропись = Пропись & Десятки(Разряд)
    Остаток = Остаток - Разряд * 10 * 1000
    Группа = Группа - Разряд * 10
    End If

    Разряд = Группа
    Пропись = Пропись & Единицы(Разряд, "Женский")
    Остаток = Остаток - Разряд * 1000

    Пропись = Пропись & Тысячи(Разряд)
    End If

    Группа = Остаток
    If Группа <> 0 Then
    Разряд = Группа \ 100
    Пропись = Пропись & Сотни(Разряд)
    Остаток = Остаток - Разряд * 100
    Группа = Группа - Разряд * 100

    If Группа > 19 Then
    Разряд = Группа \ 10
    Пропись = Пропись & Десятки(Разряд)
    Остаток = Остаток - Разряд * 10
    Группа = Группа - Разряд * 10
    End If

    Разряд = Группа
    Пропись = Пропись & Единицы(Разряд, "Мужской")
    Остаток = Остаток - Разряд

    Пропись = Пропись & Рубли(Разряд)
    End If

    Длина = Len(Пропись)
    If IsNull(Длина) Then
    Exit Function
    End If

    Пропись = UCase(Mid(Пропись, 1, 1)) & (Mid(Пропись, 2, Длина))

    If cent < 20 Then
    cents = Единицы(cent, "Женский")
    Else
    cents = Десятки(CInt(cent / 10))
    cents = cents & Единицы(CInt(cent - (CInt(cent / 10) * 10)), "Женский")
    End If

    СуммаПрописью = Пропись & " " & cents & "коп."

    End Function

    Function Тысячи(Разряд As Long) As String

    If Разряд = 1 Then
    Тысячи = "тысяча "
    ElseIf Разряд > 1 And Разряд < 5 Then
    Тысячи = "тысячи "
    Else
    Тысячи = "тысяч "
    End If

    End Function

    наверх

    Книги

    ADO и Visual Basic. Руководство разработчика
    В книге описано использование технологии доступа к данным (ADO) с помощью основного инструмента разработки приложений Microsoft - Visual Basic 6.0.
    Из книги вы узнаете, как можно исследовать источники данных при помощи окна Data View, как создавать формы для ввода и запроса данных, используя связанные элементы управления, и подсоединяться к источникам данных со сложной иерархической структурой средствами Data Environment. Далее вы изучите, как можно, используя Data Report, представлять информацию в форме, подходящей для печати, или как следует исполнять некоторые, наиболее широко распространенные задачи, связанные с обработкой данных, используя ADO внутри кода Visual Basic. В последних главах книги рассмотрены дополнительные операции, используемые в коде, в том числе формирование данных, для создания иерархических наборов записей, применение ADO в сети Internet и даже создание собственных источников данных.
    Чтобы боле полно использовать средства ADO для извлечения информации из различных источников, в приложении к книге вы найдете справочник по языку SQL, в котором обсуждаются основы работы с оператором SQL SELECT.

    Гандерлой М., "Бином" - 2001, 336 стр.
    Стоимость: 169 р.
    Переплет: нет данных

    VBA 2000 самоучитель
    В книге содержится краткий курс по использованию языка и системы VBA для Word и Excel 2000. Книга предназначена для начинающих программировать в среде Windows 95/9S с использованием в качестве базовых таких объектов Word и Excel, как документы, рабочие книги, листы и так далее.
    Материала книги достаточно для создания как простых макросов, помогающих автоматизировать рутинную повторяющуюся работу над документами и электронными таблицами, так и для разработки достаточно сложных приложений, обрабатывающих данные в диалоговых окнах, обеспечивающих пользователя самыми современными интерфейсными средствами.

    Кузьменко В.Г., "Бином" - 2000, 408 стр.
    Стоимость: 111,26 р.
    Формат книги: 70х100/16
    Переплет: мягкий

    VBA в Office 2000 учебный курс
    В этой книге описывается Visual Basic for Applications — подмножество популярнейшего языка программирования Visual Basic. Изучив ее материал, вы сможете создавать собственные интегрированные приложения, которые используют как объектные модели стандартных приложений MS Office, так и объектные модели ADO и DAO.
    Книга предназначена для всех пользователей MS Office 2000 —независимо от степени их владения программированием.

    Васильев А., Андреев А., "Питер" - 2000, 432 стр.
    Стоимость: 102,19 р.
    Формат книги: 70х100/16
    Переплет: нет данных

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

    наверх

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

    Хостинг. Где лучше?

    Ну, сделал ты свою страничку. А дальше? Выбираешь хостинг-провайдера и заливаешь ее для всеобщего обозрения. И тут тебя ждет сюрприз — через неделю пропадает связь с сервером, и на твой сайт уже никто попасть не может. Судорожно летишь останавливать показ баннеров. Через неделю повторяется то же самое. Начинаешь задумываться о смене провайдера, но как же выбрать, чтоб опять не ошибиться?

    Подписаться

    Сервисы в интернете

    Интернет — это не только сайты с анекдотами и новостями. Интернет — это еще и море всевозможных и разнообразных услуг, платных и бесплатных. А что, вы о них знаете? Ааа… знаете? Тогда поделитесь с другими. А если не знаете — спросите.

    Подписаться

    Интернет-программирование

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

    Подписаться

    Графика

    Вам нравиться рисовать? Надо обработать фотографии? Создать баннер или логотип? У вас есть опыт работы с рисунками, и вы хотите с ним поделиться? У вас нет опыта, но вы горите желанием научиться? Тогда вам сюда. В группе обсуждаются все вопросы, связанные с двухмерной графикой.

    Подписаться

    Информатика в школе

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

    Подписаться

    наверх

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

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

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

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

    Требуется человек, знающий HTML для работы с сайтом группы СооБчаVB. Вопросы и предложения по этому адресу

    наверх

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

    BalloonMessage for MS Agent

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

    Подробнее...

    наверх

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

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

    Вопросы:

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

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

    Как на Visual'е можно подключить базу данных, если эта база данных находится на сервере. Имя сервера неизвестно.

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

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

    Мне необходимо создать activeX.dll с какой-то вложенной функцией и передавать из программы (основной - возможно на другом языке Visual С++ или делфи) массив данных для обработки моей dll, и соответственно его возвращать. Другой вариант - мой dll сам создаёт какой-то массив данных и мне его нужно отдавать внешней программе по запросу. Подскажите как это реализовать. Несколько переменных я могу передать(вернуть) по отдельности каждую, а массив как-то не получается.

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

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

    Как из VB6 изменить пути к таблицам dbf в CrystalReport? Возможно, я неправильно пользуюсь SetTableLocation?

    Автор вопроса: Анучин А.Н.

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

    Подскажите, пожалуйста, как подлючить к VB-программе подпрограмму на языке ассемблера.

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

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

    Подскажите пожалуйста как сделать Репорт на основе данных массива.

    Ответы:

    Вопрос:

    Напроглал на VB программу,но она не со всеми комьютрами работает (веяде 98винд 97офис), испольяуент она ADO к БД Акцессу(..Adodc1.Recordset.AddNew "myField","ssss") - то проблема : на моем компе прога естественно пашет на другом где не стоит VB она тоже пашет а на еще другом компе выдает сообщение "runtime error испольяуйте обновляемый яапрос". В чем проблема, вроде ОФИС веяде 97 (Может влияют раные библиотеки версий офиса 97 )?

    ps Думается если янал бы VC то не янал бы хлопот с офисом если конечно это ия-яа него, в VC наверняка встроенные библиотеки, и не обяяательно вообще ставить офис?

    Ответ:

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

    Попробуй в дистрибутив включить DCOM, это библиотеки для доступа к базам данных Access, и проги будут работать даже там, где Оффиса нет вообще.

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

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

    наверх

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

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


Выпуск 18.

VB Студия
  • Статьи - 33
  • Контролы - 12
  • Примеры - 48
  • Хитрости - 32
  • Куски кодов - 23
  • Windows Api - 27
  • FAQ
VB Line
  • Статьи
  • ActiveX
  • Примеры
  • Советы
  • Windows Api
Голосование:

Ваш голос отсылается по 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 - мания
  • VB по русски
  • Snoozex Design
            • Несколько слов от автора:

    В этом выпуске поставил описание системы Эксперт. Обязательно прочитайте.
    Читайте!

    Содержание выпуска
    • О системе Эксперт

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

    • Сумма прописью
    • Функция преобразования переменной типа Byte в двоичное число
    • Аналог функции Split
    • Сумма прописью (ещё один вариант)
    • Как "вытащить" картинки (BMP) из файлов AVI

    • Книги

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

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

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

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

    • 30 ноября 2001 года - В разделе Утилиты появилась новая версия программы Crimson Help.

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

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

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

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

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

    • 28 ноября 2001 года - Выложил новые примеры.
      Открыт новый раздел Юмор. В нём расположены анекдоты и юмористические рассказы на компьютерную тематику.
    • 25 ноября 2001 года - Выложил в раздел статьи 4 статьи о Winsock control.
    • 23 ноября 2001 года - Появился раздел книги. Там можно приобрести книги от магазина Колибри. По соглашению проекта СообЧа и магазина Колибри на все представленные в этом разделе книги предоставляется скидка в размере 5% от стоимости книги.

    наверх

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

    24 ноября 2001 г. Вы уже заметили небольшое изменение дизайна сайта? Так лучше? Предложения и замечания присылайте мне shatrykin@mail.ru. В разделе Примеры положил интересную работу Беляева Данилы, программа выводит список всех запущенных программ и может их "убивать". Там же, очень интересная DLL-ка с примером для работы с LPT портами. И еще, нашел в сети очень забавный пример: игра типа морского боя, принцип простой, плывет корабль, а Вы его ракетами... в общем играл я в нее и время кончилось, поэтому и обновлений маловато.
    12 ноября 2001 г. Решил, что Вам будет интересно узнать, кто сюда ходит и какова аудитория сайта. Все данные оформил в читаемом виде и положил сюда. Смотрите, читайте и изучайте. Конечно, немного, но все же статистика.
    11 ноября 2001 г. Ну вот, 7 ноября мне стукнуло 27 лет. Эх.. время. Ну да ладно, в Примеры положил интересную работу Андрея Перминова - добавление заголовка в обычное меню, думаю, что это будет интересно многим. Наконец-то появился новый совет, все наверное видели окна с недоступной кнопкой закрытия окна, а вот как это сделать, думаю, знают не все. Скажу сразу, что автор мне неизвестен, поэтому, если что, то пишите мне shatrykin@mail.ru. И, напоследок, хочу пожаловаться: что-то Вы мне маловато материала присылаете. Активнее надо быть!
    05 ноября 2001 г. Во-первых, я получил сертификат "Visual Basic Programmer" уровня Master от eCertification.com. Поздравления принимаются по прежнему адресу shatrykin@mail.ru.Во-вторых, на сайте есть одна "обновка". Stas(Sheff) Vorobiov прислал интересный пример игры с использованием DirectX.

    наверх

    Сумма прописью

    Автор     Конурин А. Ю.

    Public Function PropisChisla(A As String) As String
    Dim Rubli As String, Kop As String, i As Integer, D(3) As String
    If Len(A) < 3 Then GoTo Err_dlina
    i = InStr(A, ",")
    If i = 0 Then
    Rubli = A
    Kop = "00"
    Else
    Rubli = Left(A, i - 1)
    Kop = Right("0" + Mid(A, i + 1), 2)
    End If
    If Len(Rubli) > 9 Then
    Err_dlina:
    PropisChisla = "Слишком большое (маленькое) число"
    Exit Function
    End If
    If Rubli = "0" Then PropisChisla = "Ноль рублей": GoTo Kopeiki
    Select Case Len(Rubli)
    Case 1 To 3: D(1) = Rubli
    Case 4 To 6
    D(1) = Right(Rubli, 3)
    D(2) = Left(Rubli, Len(Rubli) - 3)
    Case 7 To 9
    D(1) = Right(Rubli, 3)
    D(2) = Mid(Rubli, Len(Rubli) - 5, 3)
    D(3) = Left(Rubli, Len(Rubli) - 6)
    End Select
    If Val(D(3)) <> 0 Then
    Tmp = D(3)
    GoSub 10
    If Mid(Tmp, 2, 1) <> "1" Then
    GoSub 20
    Select Case Val(Right(Tmp, 1))
    Case 1: PropisChisla = PropisChisla + " миллион"
    Case 2 To 4: PropisChisla = PropisChisla + " миллиона"
    Case Else: PropisChisla = PropisChisla + " миллионов"
    End Select
    Else
    PropisChisla = PropisChisla + " миллионов"
    End If
    End If
    If Val(D(2)) <> 0 Then
    Tmp = D(2)
    GoSub 10
    If Mid(Tmp, 2, 1) <> "1" Then
    Select Case Val(Right(Tmp, 1))
    Case 1: PropisChisla = PropisChisla + " одна"
    Case 2: PropisChisla = PropisChisla + " две"
    Case 3: PropisChisla = PropisChisla + " три"
    Case 4: PropisChisla = PropisChisla + " четыре"
    Case 5: PropisChisla = PropisChisla + " пять"
    Case 6: PropisChisla = PropisChisla + " шесть"
    Case 7: PropisChisla = PropisChisla + " семь"
    Case 8: PropisChisla = PropisChisla + " восемь"
    Case 9: PropisChisla = PropisChisla + " девять"
    End Select
    Select Case Val(Right(Tmp, 1))
    Case 1: PropisChisla = PropisChisla + " тысяча"
    Case 2 To 4: PropisChisla = PropisChisla + " тысячи"
    Case Else: PropisChisla = PropisChisla + " тысяч"
    End Select
    Else
    PropisChisla = PropisChisla + " тысяч"
    End If
    End If
    Tmp = D(1)
    GoSub 10
    If Mid(Tmp, 2, 1) <> "1" Then
    GoSub 20
    Select Case Val(Right(Tmp, 1))
    Case 1: PropisChisla = PropisChisla + " рубль"
    Case 2 To 4: PropisChisla = PropisChisla + " рубля"
    Case Else: PropisChisla = PropisChisla + " рублей"
    End Select
    Else
    PropisChisla = PropisChisla + " рублей"
    End If
    Kopeiki:
    PropisChisla = PropisChisla + " " + Kop
    If Left(Kop, 1) <> "1" Then
    Select Case Val(Right(Kop, 1))
    Case 1: PropisChisla = PropisChisla + " копейка"
    Case 2 To 4: PropisChisla = PropisChisla + " копейки"
    Case Else: PropisChisla = PropisChisla + " копеек"
    End Select
    Else
    PropisChisla = PropisChisla + " копеек"
    End If
    PropisChisla = Trim(PropisChisla)
    i = InStr(PropisChisla, " ")
    PropisChisla = StrConv(Left(PropisChisla, i - 1), vbProperCase) _
    + Mid(PropisChisla, i)
    Exit Function
    10:
    Tmp = Right("00" + Tmp, 3)
    Select Case Val(Left(Tmp, 1))
    Case 1: PropisChisla = PropisChisla + " cто"
    Case 2: PropisChisla = PropisChisla + " двести"
    Case 3: PropisChisla = PropisChisla + " триста"
    Case 4: PropisChisla = PropisChisla + " четыреста"
    Case 5: PropisChisla = PropisChisla + " пятьсот"
    Case 6: PropisChisla = PropisChisla + " шестьсот"
    Case 7: PropisChisla = PropisChisla + " семьсот"
    Case 8: PropisChisla = PropisChisla + " восемьсот"
    Case 9: PropisChisla = PropisChisla + " девятьсот"
    End Select
    Select Case Val(Mid(Tmp, 2, 1))
    Case 1
    Select Case Val(Right(Tmp, 1))
    Case 0: PropisChisla = PropisChisla + " десять"
    Case 1: PropisChisla = PropisChisla + " одиннадцать"
    Case 2: PropisChisla = PropisChisla + " двенадцать"
    Case 3: PropisChisla = PropisChisla + " тринадцать"
    Case 4: PropisChisla = PropisChisla + " четырнадцать"
    Case 5: PropisChisla = PropisChisla + " пятнадцать"
    Case 6: PropisChisla = PropisChisla + " шестнадцать"
    Case 7: PropisChisla = PropisChisla + " семнадцать"
    Case 8: PropisChisla = PropisChisla + " восемнадцать"
    Case 9: PropisChisla = PropisChisla + " девятнадцать"
    End Select
    Case 2: PropisChisla = PropisChisla + " двадцать"
    Case 3: PropisChisla = PropisChisla + " тридцать"
    Case 4: PropisChisla = PropisChisla + " сорок"
    Case 5: PropisChisla = PropisChisla + " пятьдесят"
    Case 6: PropisChisla = PropisChisla + " шестьдесят"
    Case 7: PropisChisla = PropisChisla + " семдесят"
    Case 8: PropisChisla = PropisChisla + " восемдесят"
    Case 9: PropisChisla = PropisChisla + " девяносто"
    End Select
    Return
    20:
    Select Case Val(Right(Tmp, 1))
    Case 1: PropisChisla = PropisChisla + " один"
    Case 2: PropisChisla = PropisChisla + " два"
    Case 3: PropisChisla = PropisChisla + " три"
    Case 4: PropisChisla = PropisChisla + " четыре"
    Case 5: PropisChisla = PropisChisla + " пять"
    Case 6: PropisChisla = PropisChisla + " шесть"
    Case 7: PropisChisla = PropisChisla + " семь"
    Case 8: PropisChisla = PropisChisla + " восемь"
    Case 9: PropisChisla = PropisChisla + " девять"
    End Select
    Return
    End Function

    наверх

    Функция преобразования переменной типа Byte в двоичное число

    Function ByteToBin(ByVal ByteVal As Byte) As String
    Dim a As Integer
    Dim b As String
    Dim i As Integer
    Dim c As String
    Dim d As Integer

    a = CInt(ByteVal)
    Do While a <> 0
    If a / 2 = Int(a / 2) Then
    b = b & "0"
    Else
    b = b & "1"
    End If
    a = Int(a / 2)
    Loop
    d = 8 - Len(b)
    If d <> 0 Then
    For i = 1 To d
    b = b & "0"
    Next
    End If
    b = StrReverse(b)
    ByteToBin = b
    End Function

    наверх

    Аналог функции Split

    Функция Split появилась в VB6. Для пользователей VB5 и ниже функция, идентичная функции Split.

    Public Function MySplit(Expression As String, Splitter As String) As Variant
    Dim pos As Long
    Dim posit As Long
    Dim n As Long
    Dim temp As String
    Dim Split_() As String
    Dim dowas As Boolean
    pos = 1
    posit = InStr(pos, Expression, Splitter)
    Do While posit <> 0
    dowas = True
    n = n + 1
    temp = Mid$(Expression, pos, posit - pos)
    ReDim Preserve Split_(n + 1)
    Split_(n) = temp
    pos = posit + Len(Splitter)
    posit = InStr(pos, Expression, Splitter)
    Loop
    If dowas = True Then
    temp = Mid$(Expression, pos, Len(Expression) - pos + 1)
    Split_(n + 1) = temp
    Else
    ReDim Split_ (1)
    Split_ (1) = Expression
    End If
    MySplit = Split_
    End Function

    наверх

    Сумма прописью (ещё один вариант)

    'Параметры: 1-сумма
    ' 2-вывод руб.коп.: 0-нет;1-сокращенно;2-полностью
    ' 3-копейки: 0-нет;1-есть;2-авто
    ' 4-текст в конце
    Public Function СуммаПрописью(ByVal Sm As Currency, Optional ByVal P_s As Variant, Optional ByVal Cop As Variant, Optional ByVal aft As Variant) As String
    Dim im As Integer, Smt As String, smti As String, out As String
    Dim zt As Integer, z2 As Integer, z3 As Integer, i As Integer, j As Integer

    If IsMissing(aft) Then aft = "": If IsMissing(Cop) Then Cop = 2: If IsMissing(P_s) Then P_s = 1
    Smt = Int(Sm): im = (Len(Smt) + 2) / 3: Smt = String$(im * 3 - Len(Smt), "0") & Smt
    For i = 1 To im
    smti = Mid$(Smt, 3 * i - 2, 3): z2 = Mid$(smti, 2, 1): z3 = Right$(smti, 1)
    For j = 1 To 3
    zt = Mid$(smti, j, 1)
    Select Case j
    Case 1
    out = out & Choose(zt, "сто ", "двести ", "триста ", "четыреста ", "пятьсот ", "шестьсот ", "семьсот ", "восемьсот ", "девятьсот ")
    Case 2
    If z2 = 1 Then
    out = out & Choose(z3 + 1, "десять ", "одиннадцать ", "двенадцать ", "тринадцать ", "четырнадцать ", "пятнадцать ", "шестнадцать ", "семнадцать ", "восемнадцать ", "девятнадцать ")
    Else
    out = out & Choose(zt, "десять ", "двадцать ", "тридцать ", "сорок ", "пятьдесят ", "шестьдесят ", "семьдесят ", "восемьдесят ", "девяносто ")
    End If
    Case 3
    If z2 <> 1 Then
    out = out & Choose(zt, "од", "дв", "три ", "четыре ", "пять ", "шесть ", "семь ", "восемь ", "девять ")
    Select Case zt
    Case 1
    out = out & IIf(im - i = 1, "на ", "ин ")
    Case 2
    out = out & IIf(im - i = 1, "е ", "а ")
    End Select
    End If
    End Select
    Next
    Select Case im - i
    Case 1
    out = out & IIf(smti <> 0, "тысяч" & IIf(z3 = 0 Or z3 > 4 Or z2 = 1, " ", IIf(z3 > 1 And z3 < 5, "и ", "а ")), "")
    Case 2, 3, 4
    out = out & IIf(smti <> 0, Choose(im - 1 - i, "миллион", "миллиард", "триллион") & IIf(z3 = 0 Or z3 > 4 Or z2 = 1, "ов ", IIf(z3 > 1 And z3 < 5, "а ", " ")), "")
    End Select
    Next
    If out = "" Then out = "ноль "
    If P_s > 0 Then out = out & IIf(P_s = 1, "руб.", "рубл" & IIf(z3 = 0 Or z3 > 4 Or z2 = 1, "ей", IIf(z3 > 1 And z3 < 5, "я", "ь")))
    smti = Format$((Sm - Int(Sm)) * 100, "00")
    If (P_s > 0 And Cop = 1) Or (P_s > 0 And Cop = 2 And smti <> "00") Then
    z2 = Left$(smti, 1): z3 = Right$(smti, 1)
    out = out & " " & smti & IIf(P_s = 1, " коп.", " копе" & IIf(z3 = 0 Or z3 > 4 Or z2 = 1, "ек", IIf(z3 > 1 And z3 < 5, "йки", "йка")))
    End If
    Mid$(out, 1, 1) = UCase$(Left$(out, 1))
    СуммаПрописью = out & aft
    End Function

    наверх

    Как "вытащить" картинки (BMP) из файлов AVI

    Автор     Рукавишников

    Dim Det As New MediaDet
    Const VideoGUID As String = "{73646976-0000-0010-8000-00AA00389B71}"
    bFoundVidStream = False

    Det.FileName = "C:\Media\Example.avi" 'файл, из которого будут извлекаться картинки

    ' Поиск видео.
    For i = 0 To Det.OutputStreams - 1
    Det.CurrentStream = i
    StreamType = Det.StreamTypeB
    If StrComp(StreamType, VideoGUID, vbTextCompare) = 0 Then
    bFoundVidStream = True
    Exit For
    End If
    Next

    If bFoundVidStream Then
    ' Обновление текста метки с именем VideoInfo на Вашей форме.
    VideoInfo.Caption = Det.FileName + ": " + Str(Det.StreamLength) + "
    seconds"

    ' Помещение кадра в файл C:\Temp.bmp
    TempFile = "C:\Temp.bmp"
    Preview.ScaleMode = vbPixels ' Задаем ScaleMode для Picture Box с именем Preview на Вашей форме.
    'Кадр, соответствующий моменту времени 0, помещается в файл C:\Temp.bmp
    Det.WriteBitmapBits 0, Preview.ScaleWidth, Preview.ScaleHeight, TempFile

    Preview.Picture = LoadPicture(TempFile) ' Кадр появляется в Picture Box с именем Preview
    End If

    *******************
    Вместо 0 можете указать любое время до Det.StreamLength

    Только не забудьте перед использованием создать пару контролов:
    1. VideoInfo - Label (или Form);
    2. Preview - Picture Box

    наверх

    Книги

    Visual Basic 6 Desktor экзамен 70-176
    Книги серии "Экзамен — экстерном" представляют собой удобные, сжатые, хорo шо структурированные конспекты для подготовки к сдаче сертификационных экзаменов на звание Microsoft Certified Solution Developer. Книга "Visual Basic 6.0 Desktop. Экзамен— экстерном (экзамен 70-176)" содержит только действительно необходимый материал, типовые вопросы с ответами и пример экзамена. Возможно, некоторые подходы, применяемые автором, покажутся вам не совсем привычными — не удивляйтесь: это не учебник по Visual Basic; организация материала в этой книге призвана максимально облегчить задачу экзаменуемого. Учтите, что в ряде случаев экзаменационные вопросы выходят за рамки тем, отраженных в документации no Visual Basic, а иной раз правильные ответы на них даже входят в противоречие с "официальной" информацией.

    Макдоналд М., "Питер" - 2001, 608 стр.
    Стоимость: 130,83 р.
    Формат книги: 60х90/16
    Переплет: нет данных

    Visual Basic 6 Distributed (экзамен 70-175)
    Книги серии "Экзамен — экстерном" представляют собой удобные, сжатые, хорошо структурированные конспекты для подготовки к сдаче сертификационных экзаменов на звание Microsoft Certified Solution Developer. Книга "Visual Basic 6 Distributed (экзамен 70-175)" не содержит ничего лишнего, только то, что действительно необходимо: фактический материал, типовые экзаменационные вопросы с разбором ответов и тестовый экзамен для самопроверки. Кроме того, вы найдете в н8й советы по стратегии и тактике сдачи экзамена.
    Серия "Экзамен — экстерном" — настоящая находка для преподавателей, которые смогут рекомендовать ее слушателям в качестве пособия для самостоятельной работы и тренировки. Книга не потеряет актуальности и после успешной сдачи экзамена: она поможет в нужный момент освежить в памяти необходимые сведения.
    Книги серии "Экзамен — экстерном" рекомендованы представительством корпорации "Майкрософт" в Москве в качестве учебного пособия для подготовки к экзаменам на звание MCSD.

    Томас М., Фокс Д., "Питер" - 2001, 592 стр.
    Стоимость: 130,83 р.
    Формат книги: 60х90/16
    Переплет: нет данных

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

    Коннэлл Дж., "ДМК" - 2000, 720 стр.
    Стоимость: 207,86 р.
    Формат книги: 70х100/16
    Переплет: нет данных

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

    наверх

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

    Игры

    Работа, работа, работа — документы, базы, отчеты… Ну все пора расслабиться: работа не волк — в лес не убежит! Представь себе, у нас есть группа, которая поможет тебе скрасить тяжелые рабочие будни — мы помогаем друг другу играть!!! Обсуждаем все вопросы, которые только могут появиться у любителя игр: к примеру, как поиграть в StarCraft по сети или как написать свой конфиг к QUAKE III, и обсудим еще многое-многое-многое… Новости, ссылки на демки, патчи, обзоры и прохождение игр — все это у нас есть! Есть вопросы — ответим, есть новенький секрет — расскажем! Ну, а если ты супер-геймер, сам бог тебе велел быть с нами!

    Подписаться

    Шифрование

    Встречались ли вы в своей жизни с компьютерными пиратами? Одной из сфер их деятельности является перехват любой информации во время ее пересылки в просторах сети и воровство данных прямо с вашего компьютера. Даже если хакеру и удастся завладеть секретными данными — каково же будет его разочарование, когда он не сможет их прочесть! Давайте же поговорим о шифровании данных с помощью PGP и других алгоритмов...

    Подписаться

    Все о Linux

    Конференция, посвященная ОС Linux, которую имеете или будете иметь вы, а не она вас. Чем больше будет задано вопросов, тем больше будет получено ответов. Количество как известно перерастает в качество... И что приятно, ответы не канут в лету, их всегда можно будет найти в архиве нашей группы... Добро пожаловать!

    Подписаться

    Всё, что связано с пакетом программ MS Office

    Вы хотели создать красивый документ в Word, но не знаете как форматировать текст? Или же в Excel вам нужно создать сложнейший и, в тоже время, красивый отчет, содержащий тысячи цифр, и вам не хватает для этого возможностей программы? Вам нужно создать базу данных в Access и по ней составлять отчеты или вы не знаете как послать письмо из Oulook? Всё это - от основ форматирования текста до сложнейших работ в таких программах, как MS Access и MS Publisher, - вы можете узнать в нашей группе Soobcha_Office.

    Подписаться

    Мощь и красота С++

    С++ является одним из самых гибких языков программирования. Сочетание низкоуровневых и высокоуровневых средств делает его сильным инструментом в руках программиста. Данная группа призвана помочь программирующим на Си и просто их сблизить. Давайте будем решать проблемы вместе!!!

    Подписаться

    наверх

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

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

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

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

    Требуется человек, знающий HTML для работы с сайтом группы СооБчаVB. Вопросы и предложения по этому адресу

    наверх

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

    BalloonMessage for MS Agent

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

    Подробнее...

    наверх

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

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

    Вопросы:

    Автор вопроса:     Peter Salmin

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

    Создал на VB6 приложение для работы с БД в локальной сети. Работает, честно говоря, медленно. Друзья говорят, напиши в Delphi - работать будет быстрее. Действительно ли это так, или это дело вкуса, в чем писать?

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

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

    Как заполнять поле с датой с помощью выпадающего календаря? В MS Access

    Автор вопроса: Alexandr Ignatchenko

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

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

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

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

    Можно ли в чужую программу, которая написана на VB, вставить свой тулбар в котором данные будут браться из основного меню этой проги. Например, есть пункт меню "Выход" в котором есть два подпункта "Сейчас" и "Завтра". Я делаю кнопку на своем тулбаре при нажатии на которую выпадает меню с "Сейчас" и "Завтра".

    Ответы:

    Вопрос:

    Мне необходимо создать activeX.dll с какой-то вложенной функцией и передавать из программы (основной - возможно на другом языке Visual С++ или делфи) массив данных для обработки моей dll, и соответственно его возвращать. Другой вариант - мой dll сам создаёт какой-то массив данных и мне его нужно отдавать внешней программе по запросу. Подскажите как это реализовать. Несколько переменных я могу передать(вернуть) по отдельности каждую, а массив как-то не получается.

    Ответ:

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

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

    Вопрос:

    Как из VB6 изменить пути к таблицам dbf в CrystalReport? Возможно, я неправильно пользуюсь SetTableLocation?

    Ответ:

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

    Sorry, eto ne FOX, no mne kagetsia, chto
    eto dolgno rabotat.
    Smeni LS.mdb na imia foldera gde legat FoxPro files...

    CrystRep.DataFiles(0) = "C:\Mdb\LS.mdb"
    CrystRep.ReportFileName = "C:\"Report\InputReport.rpt"
    CrystRep.SelectionFormula = ""
    CrystRep.PrintReport

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

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

    наверх

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

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


Выпуск 19.

VB Студия
  • Статьи - 37
  • Контролы - 13
  • Примеры - 47
  • Хитрости - 32
  • Куски кодов - 23
  • Windows Api - 27
  • FAQ
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
VB Line
  • Статьи
  • ActiveX
  • Примеры
  • Советы
  • Windows Api
Голосование:

Ваш голос отсылается по 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
            • Несколько слов от автора:

    Не вижу Вашей активности в форуме.
    Теперь в каждом выпуске рассылки Вы сможете узнать новости ещё одного сайта - VBMania.
    Читайте!

    Содержание выпуска
    • О системе Эксперт

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

    • Преобразование таблицы из базы данных в HTML файл
    • Используйте оператор With
    • Методика обработки ошибок в программах
    • Перекодировка текста из DOS в Windows формат
    • Как узнать положение каретки в RTF или TextBox

    • Книги

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

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

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

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

    • 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 года - Выложил новые примеры.
      Открыт новый раздел Юмор. В нём расположены анекдоты и юмористические рассказы на компьютерную тематику.
    • 25 ноября 2001 года - Выложил в раздел статьи 4 статьи о Winsock control.

    наверх

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

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

    наверх

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

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

    наверх

    Преобразование таблицы из базы данных в HTML файл

    Автор Vincent Zack

    Const T1 = vbTab
    Const T2 = T1 & T1
    Const TR = T1 & "<TR>"
    Const TD = "<TD>"
    Const TDEND = "</TD>"
    Const TABLESTART = "<TABLE BORDER WIDTH=100%>"
    Const TABLEEND = "</TABLE>"

    Function HTMLTable(dbRecord As Recordset) As String

    Dim strReturn As String
    Dim Fld As Field
    On Error Goto Return_Zero
    strReturn = strReturn & TABLESTART & vbCrLf
    strReturn = strReturn & TR

    For Each Fld In dbRecord.Fields
    strReturn = strReturn & TD & Fld.Name & TDEND
    Next Fld

    strReturn = strReturn & vbCrLf
    dbRecord.MoveFirst

    While Not dbRecord.EOF
    strReturn = strReturn & TR

    For Each Fld In dbRecord.Fields
    strReturn = strReturn & TD & Fld.Value & TDEND
    Next Fld

    strReturn = strReturn & vbCrLf
    dbRecord.MoveNext
    Wend

    strReturn = strReturn & TABLEEND
    Return_Zero:
    HTMLTable = strReturn
    End Function

    наверх

    Используйте оператор With

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

    MSAgent.Characters("Default").Commands.Caption = "MSAgent Commands"

    MSAgent.Characters("Default").Commands.Visible = True

    MSAgent.Characters("Default").Commands.Voice = "MSAgent Commands"

    MSAgent.Characters("Default").Commands.Add "Bye bye", "Bye bye", "... bye bye ...", True, True

    MSAgent.Characters("Default").Commands.Add "Down", "Down", "... down ...", True, True

    MSAgent.Characters("Default").Commands.Add "Happy", "Happy", "... happy ...", True, True

    MSAgent.Characters("Default").Commands.Add "Hello", "Hello", "Hello Merlin", True, True

    MSAgent.Characters("Default").Commands.Add "Left", "Left", "... left ...", True, True

    MSAgent.Characters("Default").Commands.Add "Move", "Move", "... move ...", True, True

    MSAgent.Characters("Default").Commands.Add "Right", "Right", "... right ...", True, True

    MSAgent.Characters("Default").Commands.Add "Sad", "Sad", "... sad ...", True, True

    MSAgent.Characters("Default").Commands.Add "Up", "Up", "... up ...", True, True

    Ну как? Все разобрались? Думаю, что этот код очень сложно читать. А вот если Вы примените оператор With, то тот же код можно записать в следующем виде:

    With MSAgent.Characters("Default").Commands

    .Caption = "MSAgent Commands"

    .Visible = True

    .Voice = "MSAgent Commands"

    .Add "Bye bye", "Bye bye", "... bye bye ...", True, True

    .Add "Down", "Down", "... down ...", True, True

    .Add "Happy", "Happy", "... happy ...", True, True

    .Add "Hello", "Hello", "Hello Merlin", True, True

    .Add "Left", "Left", "... left ...", True, True

    .Add "Move", "Move", "... move ...", True, True

    .Add "Right", "Right", "... right ...", True, True

    .Add "Sad", "Sad", "... sad ...", True, True

    .Add "Up", "Up", "... up ...", True, True

    End With

    Да, и не забудьте сделать отступы, это сделает Ваш код лучше. Кроме улучшения читаемости кода, оператор With дает ещё одно преимущество: код, при достаточной вложенности, быстрее выполняется. Это происходит потому, что VB кэширует объект и ему не приходится каждый раз просматривать все объекты. Однако, не всё так просто! Я заметил, что если вложенность маленькая два, три объекта, то этот метод может дать и отрицательный результат в производительности. Но, думаю, что преимущество лёгкости чтения должно пересилить соблазн поддаться более производительному коду.

    наверх

    Методика обработки ошибок в программах

    В данном контексте ошибками я буду называть истинные ошибки, т.е. то, что может случиться, а не "жучки" (bags) - вот их то не должно быть. Итак, ошибка это примерно следующее - Вы своей своей процедуре ожидаете параметр X от 1 до 100, а пользователь передает туда число 500, с которым Вы ничего не можете сделать (может Вы ожидаете проценты?). Так вот, что же делать? Существует несколько путей, по которым можно пойти:

    - Первый путь я бы назвал "Да пошли Вы всё к чёрту", немного грубовато, но зато точнее не скажешь. Идя по этому пути мы ничего не делаем, в Visual Basic есть своя система обработки ошибок и мы полностью ей доверяем. Но не думайте, что это кому-то может понравиться. Дело в том, что пользователь, который сделал что-то не так, увидит весьма ясное сообщение о том, что же он сделал, но и программа завершится, а с ней и, может быть, чей-то целый день работы пойдет "коту под хвост". Ну как? Вы еще не передумали следовать этой стратегии? Тогда и флаг Вам в руки, пользуйтесь сами своими программами!

    - Второй путь это запрет ошибок. А что? Вы думаете не пойдёт? Ещё как пойдёт. Если Вам глубоко наплевать что Вам передают, и Вы абсолютно уверены, что ничего плохого не произойдёт с программой, то можно придерживаться этой стратегии. Только не переусердствуйте. Пользователи они ведь бывают умными и смеются над нами, программистами, когда видят на прогресс-баре 102%.

    - Третий путь это стратегия Windows API. Не секрет, что многие (пожалуй половина) функций API возвращают код ошибки. Путь неплохой, но и в нём есть некоторые ограничения - возвращаемое значение всегда зарезервировано под код ошибки. Можно, конечно, возвращать, например, при нормальном завершении нужный результат, а при ошибке код возникшей ошибки как отрицательное число. Если Вас это устроит, то, пожалуйста, используйте этот путь.

    - Четвертый путь также активно применяется в API это передача кода ошибки через специальное свойство (функцию). Для этого, например, в классе объявите свойство, например GetLastMyError, и передавайте туда код ошибки. Если кому-то нужно узнать какая же ошибка произошла в действительности, то пускай получают описание через это свойство. Ну а для того, чтобы сообщить что ошибка произошла, возвращайте всеми своими функциями признак ошибки, например 0.

    - Есть ещё одна очень хорошая стратегия это генерация собственных ошибок. Например Вам передали 500%, вместо числа от 1 до 100? Смело генерируйте ошибку следующим кодом:

    Err.Raise vbObjectError + 1001, "Progress bar generator", "Разве проценты могут быть больше 100?"

    А что это за константа такая vbObjectError? Советую её Вам использовать, и не спрашивайте меня почему, я толком и вам не знаю!

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

    наверх

    Перекодировка текста из DOS в Windows формат

    Демин Антон [http://www.demin52.com] прислал новый совет. Он пишет, что если Вам нужно конвертировать текст формата DOS в Windows (1251), то в API есть на этот случай хорошая функция: OemToChar.

    Объявляется она так:

    Public Declare Function OemToChar Lib "user32" Alias "OemToCharA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long

    Используют её следующим образом:

    Dim l_lReturn as Long

    Dim l_sSource as String

    Dim l_sDestination as String

    l_lReturn = oemtochar(l_sSource, l_sDestination)

    Кроме этой полезной функции в API имеется и обратная её функция: CharToOem. Она служит для выполнения той же работы, только наоборот, т.е.Windows (1251) в DOS.

    Declare Function CharToOem Lib "user32" Alias "CharToOemA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long

    наверх

    Как узнать положение каретки в RTF или TextBox

    Этот совет снова от     Демина Антона [http://www.demin52.com]. Он посвящен методу определения текущего положения каретки в текстовом окне или RTF. Итак, ниже представлен код, который при каждом нажатии кнопки показывает текущее положение курсора:

    Для начала объявите функцию GetCaretPos и тип POINTAPI для неё.

    Private Type POINTAPI

    X As Long

    Y As Long

    End Type

    Private Declare Function GetCaretPos Lib"user32" (lpPoint As POINTAPI) As Long

    Поместите на форму TextBox1 и в событие KeyPress впишите:

    Private Sub Text1_KeyPress(KeyAscii As Integer)

    Dim XPos As Long

    Dim YPos As Long

    XPos = GetTCursX

    YPos = GetTCursY

    Me.Caption = "X: " & XPos & " Y: " & YPos

    End Sub

    А это, собственно, код, отвечающий за выдачу нужных нам данных:

    Public Function GetTCursX() As Long

    Dim pt As POINTAPI

    GetCaretPos pt

    GetTCursX = pt.X

    End Function

    Public Function GetTCursY() As Long

    Dim pt As POINTAPI

    GetCaretPos pt

    GetTCursY = pt.Y

    End Function

    наверх

    Книги

    Visual Basic 6 для Web
    Предлагаемая книга предназначена для начинающих и профессиональных разработчиков мощных приложений для использования в среде WWW и корпоративных сетях. Содержит введение в интегрированную среду разработки Web-приложений Visual InterDev, подробное описание языка VBScript и принципов его применения при работе с броузером. Изложены методы повышения интерактивности и привлекательности Web-узла с помощью элементов управления ActiveX и технологии Active Server Scripting; большое внимание уделяется средствам доступа к данным из Web-приложений посредством объектов ADO.

    Уильам Мартинер, "BHV-Kиeв" - 2000, 384 стр.
    Стоимость: 104,71 р.
    Формат книги: 70х100/1
    Переплет: нет данных

    Visual Basic 6 приложение
    Книга состоит из 3 частей (34 главы) и предметного указателя. Написанная живо и доходчиво, она позволит освоить множество полезных приемов программирования, в том числе объектно-ориентированного, и научит, как создавать 32-разрядные приложения для Windows 95/98 и Windows NT — от экранных заставок до программ, ориентированных на Интернет. Кроме того, Вы узнаете, как расширить возможности языка за счет функций Win32 API и воспользоваться преимуществами технологии ActiveX.
    Книга предназначена всем программистам, которые имеют базовые знания по элементам языка Visual Basic, желают изучить Visual Basic версии 6.0 и стремятся повысить квалификацию. Она в полной мере оправдывает свое название — это действительно "мастерская разработчика".

    Нет данных по автору(ам), "Русская редакция" - 2001
    Стоимость: 250,93 р.
    Формат книги: нет данных
    Переплет: нет данных

    Visual Basic 6 разработка приложений + приложение
    Данная книга является наиболее полным практическим руководством по конструированию современных полнофункциональных Windows-приложений на базе Visual Basic 6.0.
    В книге рассматриваются основные понятия и приемы программирования на Visual Basic, принципы разработки приложений с помощью методов объектно-ориентированного программирования. Большое внимание уделено работе с базами данных, использованию ActiveX-технологии и средств Windows API и OLE Automation, финансовому анализу, программированию игр, мультипликации. Имеется ряд упражнений повышенного уровня сложности, решение которых Позволит приобрести устойчивые практические навыки.

    Гарнаев А.Ю., "BHV-Санкт-Петербург" - 2001, 448 стр.
    Стоимость: 138,98 р.
    Формат книги: 70х100/16
    Переплет: нет данных

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

    наверх

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

    Старые игры

    Давным давно, когда компьютеры были большими, а игры - маленькими... Стоп, а как же называлась моя старая игра, в которую я часами играл с друзьями? Да, да, еще с VGA-шной графикой и PC-спикером в качестве звука! Вспомнили? В этой группе вам помогут это вспомнить. Обсуждения старых игр, вопросы их прохождения, секреты и коды - список тем самый разнообразный! Ведь только в старых играх осталась та крупица геймплея, которой так не хватает сегодняшним играм... 1994, 1993, 1992... - отсчет назад пошел, присоединяйся!!!

    Подписаться

    FAQ от системы Эксперт

    Теперь каждую пару «вопрос-ответ» система Эксперт отправляет в эту группу. Любой и каждый может свободно сказать: «Здесь в ответе неточность. Здесь нужно вот так…». Иначе сказать, подписавшись на сообщения этой эхо-конференции, вы сможете не только быть в курсе всех без исключения FAQ, формируемых системой, но и откорректировать ответ, поправить и даже открыть обсуждение по его поводу. Следовательно, отныне у вас будет наиболее полные и точные ответы на вопросы, проходящие через систему.

    Подписаться

    Виртуальная гостиная "По Душам"

    Виртуальная гостиная, где можно найти друзей или просто поговорить о жизни за чашкой чая или кружкой пива, при этом невзначай оказавшись в Королевстве Амбер, где можно запросто пообщаться с его королем — Рэндомом, попытаться расспросить у кавалера Ордена Бойцового Кота — КоТа про интереснейшую жизнь Васи сНежного, узнать — кто такие «мамонты», полюбоваться видами Байкала и вулкана, попробовать стряпню Бера (если вам удастся уговорить его отложить любимый меч ненадолго в сторонку), и не только это...

    Подписаться

    Почтовые рассылки и конференции

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

    Подписаться

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

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

    Подписаться

    наверх

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

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

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

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

    наверх

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

    BalloonMessage for MS Agent

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

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

    наверх

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

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

    Вопросы:

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

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

    Esli cto sharit v DirectDraw .Pomogite kak mogno zapolnit' surface iz gif fila ???

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

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

    Est' array tipa Byte soderjashiy v sebe kakoyto gif file , kak etot array zakinut' v picture box ????

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

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

    Есть необходимость запускать и модифицировать документы Word & Excel 95 из-под VB. Но MS Word (Excel) 8.0 Object Library не дает такой возможности ("Run-time error 429. ActiveX Component cannot create object.")
    Можно ли это дело объехать?
    Или, может, кто встречал библиотеки MSWORD7.OLB и WSEXCEL7.OLB?

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

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

    Еть массив Arrray(100). Как можно удалить срез массива, например, с 40 по 70 элементы.

    Автор вопроса: Анатолий

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

    Как программно получить явуки определ?нной длительности и частоты в VB?

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

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

    U menyia programma na Access. V programme (form) forma dla usera . V etoye forme est knopka ili icon katoraya vidiot k kakomu-to destviye ili k drugoye forme. Kak mojna sdelat password dla etoye knopki, to est esli user najimaet knopku poyavitsa obyavlenie vadi vash parol (enter your password).

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

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

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

    Ответы:

    Вопрос:

    Создал на VB6 приложение для работы с БД в локальной сети. Работает, честно говоря, медленно. Друзья говорят, напиши в Delphi - работать будет быстрее. Действительно ли это так, или это дело вкуса, в чем писать?

    Ответ:

    Автор ответа: Шатрыкин Иван

    А еще говорят, что нужно использовать ADO, который быстрее в сети на порядок. Кроме того, бывают случаи, когда DAO 3.51медленно работает из-за каких то внутренних проблем драйвера на некоторых машинах. Проблема решается использованием DAO 3.6, которая значительно шустрее именно в локальной сети. По поводу Delphi - чушь, дело в том, что в любом случае будут использоваться одни и те же библиотеки DAO или ADO.

    Вопрос:

    Создал на VB6 приложение для работы с БД в локальной сети. Работает, честно говоря, медленно. Друзья говорят, напиши в Delphi - работать будет быстрее. Действительно ли это так, или это дело вкуса, в чем писать?

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Често говоря, мне это кажется странным. Нет, я не буду спорить с тем человеком, который перепишет ЭТО на VC++, но на Delphi?......
    Вообще, я имею некоторую неприязнь к продуктам Borland (простите употребление устаревших названий :)). Видел, как тормозил тандем C++ Builder5 и MSSQL7. Жутое зрелише. Нет, возможно задержка в 1 сек. на одном запросе для кого-то покажется нормальной, но на VB за это время благополучно
    исполняется 10 запросов!!!

    Я думаю, что Ваша проблема связана с одной из следующих причин:
    1) что-то не то с самой базой
    2) что-то не так написано на VB.

    Для того, чтобы дать совет в Вашей ситуации, расскажите, плз., какую базу Вы используете, какие таблицы и взаимосязи, какие запросы. Что Вы понимаете под "сетевой" базой: какой-нибудь сервер БД или линкованые таблицы MS Access? Какую технологию доступа к данным Вы используете: DAO, ODBC, ADO, RDO etc.?
    Ну вот, получился не ответ, а множество вопросов. Может, это хоть немного Вам поможет, заставит задуматься, поискать и попробовать различные пути. Если нужна более подробная информация - подробнее опишите Вашу задачу. Одно могу сказать точно, т.к. проверено на личном опыте: с Майкрософтовскими БД лучше работать через Майкрософтовскую софту. Я не сторонник шнурков разного цвета.

    Вопрос:

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

    Ответ:

    Автор ответа: Шатрыкин Иван

    У немя есть програмка, которая это делает:
    Вот кусочек кода для получения данных:

    'ссылка на объект
    Set XLApp = GetObject(, "Excel.Application")
    'переключиться в Excel
    XLApp.Visible = True
    'сообщение пользователю
    MsgBox "Выделите область с данными и нажмите Ok"
    'значение из таблицы
    DataExcel = XLApp.Application.Selection.Value

    Переменная DataExcel будет иметь вид обычного массива данных.

    Вопрос:

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

    Ответ:

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

    Чтобы читать и писать данные в файлах Excel из VB можно подключить к проекту библиотеку Excel (Project->References..., библиотека Microsoft Excel x.0 Object Library), потом создать переменную типа Excel.Application и работать с помощью этой переменной как в Excel VBA
    Примерно это может выглядеть так:

    Dim xlApp As Excel.Application
    Dim uniVar As Variant

    On Error Resume Next
    ' если Excel уже запущен, будем использовать его
    Set xlApp = GetObject(, "Excel.Application")
    If Err.Number <> 0 Then Set xlApp = CreateObject("Excel.Application")
    ' если произошла ошибка (Excel не был запущен) запускаем Excel сами
    On Error GoTo 0

    With xlApp
    uniVar = .GetOpenFilename("Excel Workbook (*.xls), *.xls", , "Open file for ...")
    If uniVar = False Then GoTo ExitNode
    .Workbooks.Open FileName:=uniVar
    Set uniVar = .ActiveWorkbook.ActiveSheet
    uniVar.Range("A1").Value = "Huray! This cell filled by VB!"
    ' do some stuff ...
    End With

    ExitNode:
    uniVar = Empty
    xlApp.Quit
    Set xlApp = Nothing

    Единственное ограничение: код будет работать только на машине с установленным Excel'ем.
    Еще можно заморочиться, раздобыть описание формата Excel'евских файлов и написать алгоритм чтения этих файлов самому, но стоит ли так морочиться?

    Вопрос:

    Подскажите пожалуйста как сделать Репорт на основе данных массива.

    Ответ:

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

    Просто на просто запусти вложенный цикл:

    Dim Mas(1 to 10;1 to 10)

    for i=0 to ubound(mas,1)
    for j= ubound(mas,2)
    text1.text= text1.text & mas(i,j) & chr(13) & chr(10)
    next
    nex

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

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

    наверх

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

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


Выпуск 20.

VB Студия
  • Статьи - 37
  • Контролы - 13
  • Примеры - 47
  • Хитрости - 32
  • Куски кодов - 23
  • Windows Api - 27
  • FAQ
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
VB Line
  • Статьи
  • ActiveX
  • Примеры
  • Советы
  • Windows Api
Голосование:

Ваш голос отсылается по 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
            • Несколько слов от автора:

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

    Содержание выпуска
    • О системе Эксперт

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

    • Набор телефонного номера
    • Поиск строки в полях списков ListBox и ComboBox
    • Как изменить системное меню
    • Повторный запуск программы - тактика поведения
    • Как скрыть все окошки одного из проектов в среде разработки

    • Книги

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

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

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

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

    наверх

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

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


Выпуск 21.

VB Студия
  • Статьи - 37
  • Контролы - 13
  • Примеры - 47
  • Хитрости - 32
  • Куски кодов - 23
  • Windows Api - 27
  • FAQ
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
VB Line
  • Статьи
  • ActiveX
  • Примеры
  • Советы
  • Windows Api
Голосование:

Ваш голос отсылается по 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
            • Несколько слов от автора:

    Очередной 21-й выпуск рассылки вышел. Присылайте материал.
    Читайте!

    Содержание выпуска
    • О системе Эксперт

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

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

    наверх

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

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

    наверх

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

    16 декабря 2001 г. В прошлый раз я предложил создать новый раздел ЖЗП. Ну и где Ваши истории? Пришло куча писем - "классный раздел, будет интересно", но НИКТО не решился написать о себе. Я обиделся... Еще вот что, каждый день на сайт приходит более 130 посетителей, которые, как я понимаю, являются программистами или считают себя таковыми. Так вот если каждый из Вас хотя бы раз в месяц пришлет на сайт пример, совет, контрол или что-нибудь еще, то будет очень много материала. Вам же будет лучше и легче программировать! Присылайте, жду. Ну да ладно, Новоселов А.Г. (интересно, а как же его зовут) прислал свой контрол, для решения задачки по запихиванию иконки в сис.трей (там где часики). И еще в разделе Статьи, добавил интересную статью Армена Мнацаканяна посвященную FSO - объектной модели файловой ситемы.
    10 декабря 2001 г. Сегодня всего одно обновление от Беляева Данилы контрол, эмулирующий работу обычного списка. Проект интересен чисто с технической точки зрения. Посмотрите. Теперь о некотором расширении сайта. Игорь прислал предложение создать новый раздел сайта ЖЗП (Жизнь Замечательных Программистов), в котором каждый сможет рассказать о себе. Пишите свою историю, как работаете, чем занимаетесь и т.д. Можно присылать истории своих друзей.
    02 декабря 2001 г. Зима пришла, у нас снегу уже море... Итак, обновления, начнем пожалуй с раздела VB хитрости, там работа Игоря Малиновского, она касается тех, кто хочет устанавливать новые шрифты в систему, в общем, их надо не просто копировать в специальную папку, но и регистрировать, хитрость публикуется с примером. Stas(Sheff) Vorobiov прислал новый пример, и он очень интересный, пример показывает как манипулировать окнами в системе: закрывать, менять заголовки, рисовать на них и т.д. Ну и на закуску пример от Дещенко Дмитрия по поводу Alpha Blending. Да, чуть не забыл, Alex Murygin прислал новый код для совета про кнопку закрытия окна. Он пишет, что его код работает более корректно

    наверх

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

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

    наверх

    Изменение высоты выпадающего окна ComboBox'а

    Подгоняет высоту выпадающего окна ComboBox'а к высоте имеющихся строк. Видоизменив процедуру можно изменять размер окна как Вам вздумается.

    Private Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long

    Public Sub ResizeCbo(cbo As ComboBox)
    Counter = cbo.ListCount
    cboLeft = cbo.Left / Screen.TwipsPerPixelX
    cboTop = cbo.Top / Screen.TwipsPerPixelY
    cboWidth = cbo.Width / Screen.TwipsPerPixelX
    cboHeight = cbo.Height / Screen.TwipsPerPixelX * Counter
    MoveWindow cbo.hwnd, cboLeft, cboTop, cboWidth, cboHeight, 1
    End Sub

    наверх

    Как создать фон с плавным переходом из синего в черный

    В режиме 256 цветов плавный переход от светло-синего к черного требует использования так называемых составных цветов (dithering colors). Метод line в Vsual Basic не позволяет прочерчивать прямые линии составным цветом, но разрешает заполнять таким цветом прямоугольники. При этом свойтсво DrawStyle формы надо установить как vbInvisible, а ее же свойство ScaleMode - как vbPixels. Свойство DrawStyle определяет стиль линий ( значение vbInvisible не дает обводить черным контуром каждый синий прямоугольник). Значение vbPixels свойства ScaleMode позволяет вычислять размеры прямоугольников в пикселях, избегая ошибок округления: благодаря этому прямоугольники располагаются точно один под дргим - без зазоров или наложения.
    Поместить на форму:

    Option Explicit

    Private Sub Form_Paint()
    Dim lY As Long
    Dim lScaleHeight As Long
    Dim lScaleWidth As Long
    ScaleMode = vbPixels
    lScaleHeight = ScaleHeight
    lScaleWidth = ScaleWidth
    DrawStyle = vbInvisible
    FillStyle = vbFSSolid
    For lY = 0 To lScaleHeight
    FillColor = RGB(0, 0, 255 - (lY * 255) \ lScaleHeight)
    Line (-1, lY - 1)-(lScaleWidth, lY + 1), , B
    Next lY
    End Sub

    наверх

    Изменения пути по умолчанию в диалоге открытия файла в VB

    Итак, никого не донимало поведение VB - когда при открытии каждого проекта
    он предлагает сделать это прямо из фолдера VB? После этого приходится долго выбираться
    "на поверхность" , а потом указывать путь к вашему каталогу с исходниками.

    А ведь это легко лечится. Просто в свойствах ярлыка, которым вы запускаете VB ,
    укажите точный путь к каталогу ваших рабочих проектов. Сделать это надо в текстбоксе "Рабочая папка" ("Start in")

    Если путь содержит пробелы - заключите его весь в кавычки.

    наверх

    Как узнать разделитель даты, времени и десятичной точки

    Существует простейший способ как узнать разделители даты, времени и десятичной точки в Windows, не обращаясь при этом к функциям API. Он основан на функции Mid$. Принцип такой, берем строку текста содержащую разделитель, и проверяем что это за символ.

    DateDelimiter = Mid$(Format(Date, "General Date"), 3, 1)
    TimeDelimiter = Mid$(Format(0.5, "Long Time"), 3, 1)
    DecimalDelimiter = Mid$(Format(1.1, "General Number"), 2, 1)

    В общем, всё очень даже просто.

    наверх

    Как узнать, когда запущенная Вами программа завершится

    Как дождаться завершения запущенной Вами программы? Ну для начала её надо запустить. Сделаем это так:

    'запустить программу
     hProg = Shell(App.Path & "\RunMe.exe", vbNormal)

    Сохраним hProg, этот описатель нам ещё пригодится. Теперь, с помощью функции IsRunning можно определить, работает программа или нет. Функция выглядит так (вместе с нужными объявлениями):

    Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
    Public Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
    Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

    Const STILL_ACTIVE = 259
    Const PROCESS_QUERY_INFORMATION = 1024

    Public hProg As Long

    Function IsRunning(idProg As Long) As Boolean
    Dim hProc As Long, iRet As Long

    hProc = OpenProcess(PROCESS_QUERY_INFORMATION, False, idProg)
    If hProc <> vbNull Then GetExitCodeProcess hProc, iRet
    IsRunning = (iRet = STILL_ACTIVE)
    CloseHandle hProc
    End Function

    Итак, передаем IsRunning описатель запущенной программы hProg и, если программа все еще работает, то она возвратит True, если работа завершена, то False. Я не советую Вам делать для проверки IsRunning цикл Do Loop с телом DoEvents, это отнимает много ресурсов. Проверку лучше всего делать по таймеру, установив интервал в 1-2 секунду.

    наверх

    Книги

    Visual Basic 6.0 for application
    Книга является систематизированным справочником по всем элементам языка программирования Visual Basic (VB), входящим, как в автономную версию VB, так и в основные реализации Visual Basic for Applications.
    Помимо тех официальных сведений, которые можно найти в документации и в справочной системе, книга содержит конкретные примеры, рекомендации и маленькие хитрости программиста, а также поправки к справочной системе, которая, увы, не без ошибок.
    Книга предназначена для всех специалистов, занимающихся разработкой приложений с применением Visual Basic и Visual Basic for Applications.

    Король В.И., "КУДИЦ-Образ" - 2000, 448 стр.
    Стоимость: 113,87 р.
    Формат книги: 70х100/16
    Переплет: мягкий

    Win32 API и Visual Basic. / Для профессионалов /
    Книга является сборником полезных советов и приемов, хотя в ней, вероятно, описаны тысячи разных приемов. Она не была задумана как энциклопедия самостоятельных фрагментов программного кода, которые бездумно подключаются к приложению - хотя многие ее примеры можно использовать подобным образом.

    Д. Эпплман, "Питер" - 2001, 1120 стр.
    Стоимость: 489,08 р.
    Формат книги: нет данных
    Переплет: нет данных

    Азбука программирования в Windows 32 API
    Изложены вопросы создания программных приложений для Window95 и Windows NT. Описаны основные типы переменных, макросов, функций. Материал книги иллюстрируется многочисленными примерами. 1 Настоящее издание (второе вышло в 2000 г.) дополнено описанием тех возможностей Windows, которые не были упомянуты в предыдущих изданиях.

    Румянцев П.В., "Радио и связь" - 2001, 312 стр.
    Стоимость: 85,00 р.
    Формат книги: 60х88/16
    Переплет: нет данных

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

    наверх

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

    Группа по вирусам

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

    Подписаться

    Трехмерное моделирование

    Хочешь создать свою вселенную, но не знаешь как, чем и где? Заходи, разберёмся... Свободное общение людей так или иначе связанных с 3D графикой. Здесь вы можете задать любые вопросы. Присоединяйтесь :)

    Подписаться

    Программирование на Visual Basic

    Всю жизнь мечтали программировать на Visual Basic? Приходите, получите бесценный опыт и очень полезные навыки в программировании. Напишем программу вместе — СообЧа. Ну, и, конечно, ответим на ваши вопросы.

    Подписаться

    Почта в интернете

    Эл. группа, предназначенная для обсуждения почтовых сервисов в интернете, а так же всех известных почтовых программ.

    Подписаться

    Заработок в сети

    Как вы относитесь к заработку в сети? Думаете ли вы, что все это ловкий обман или вы вообще ничего об этом не знаете? Хотите поделиться опытом, послушать других или просто выговориться?

    Подписаться

    наверх

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

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

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

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

    наверх

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

    BalloonMessage for MS Agent

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

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

    наверх

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

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

    Вопросы:

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

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

    Как с помощью VB и API функции получить полный список процессов Windows?

    Автор вопроса: ДЕНИС

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

    ГДЕ ВЗЯТЬ API ДЛЯ WIN 2000 PROF?

    Автор вопроса: Artomonova, Galina

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

    Kak sdelat' Gantt (v VB6) ili gde vzyat' activX dlya nego? Nahozu vezde ssylku na ADDsoft.com, no tam tol'ko kitajskaja erunda. Help!!!

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

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

    Как сделать такую вещь: программа в процессе работы должна сделать паузу, ну скажем, на 2 сек. и в это время НИЧЕГО НЕ ДЕЛАТЬ! То есть просто подождать и продолжать выполнение работы.

    Автор вопроса: Peter Salmin

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

    Моя программа (кроме всего прочего) экспортирует данные из таблицы Access97 в Excel. Помимо того, что не копируется автоинкрементное поле счетчика (для его создания в Excel у меня имеется отдельная процедура) - за один проход в цикле for; ещё пока не знаю как оформить названия столбцов Excel (т. н. "шапка") по имени полей в Access'овской таблице. Если у кого-то есть готовое решение, пришлите. Всем ответившим заранее благодарен.

    Автор вопроса: Peter Salmin

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

    У меня установлен MSVB6 отдельно от VisualStudio6 (пиратский CD по 70р.). Программы работают, компилятся, запаковываются в дистрибутив c помощью Package and Deployment Wizard, который говорит, что не нашёл зависимостей (Missing Dependency Information) с библиотеками msado20.tlb и msstdfmt.dll. Как итог - дистрибутив не ставится на удаленном компьютере, выдавая ошибку при инсталляции. Помогите разобраться, в чем дело?

    Автор вопроса: Илья

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

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

    Private Sub Command1_Click()
    Open C:\windows\desktop\cool proga.exe 'или htm, jpg
    End Sub

    Или чето типа того, я не знаю.
    Цель: сделать autorun на диск в виде простой VB-формы с кнопками.

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

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

    можно ли ияменить цвет активной строки в самом интерфейсе EXCEL, чтобы было видно всю активную строку таблицы?

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

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

    Есть текстовые данные,вываливающиеся в Excel в таблицу. Нужно анализировать строки таблицы пусто/заполнено и сортировать заполненные в определ. порядке (сверху вниз подряд без пропусков)Где про это прочитать? Пример есть у кого-нить?

    Ответы:

    Вопрос:

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

    Ответ:

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

    VB 5.0
    Для шаблонов используй Masked Edit Control 5.0 - msmask32.ocx
    В этом контроле можно сделать любой шаблон .

    Например для даты , в поле MASK надо вписать '##/##/####'

    В help`е есть вся информация .

    Вопрос:

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

    Ответ:

    Автор ответа: Иван Есаулков

    В конструкторе выбираеш сойства>данные>маска ввода и вводиш \ 999\ 999\ 999\ 900;0, сохраняя пробелы после слеша.

    Вопрос:

    Еть массив Arrray(100). Как можно удалить срез массива, например, с 40 по 70 элементы.

    Ответ:

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

    Воспользоваться недокументированной ф-цией VB TruncateArray(Arrray,40,70).
    А если серьезно то просто переписать элементы с 70 на 100 на место удаляемых:
    For lIdx = 71 To 100
    Arrray(lIdx-31)= Arrray(lIdx)
    Next
    redim preserve Arrray(69)

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

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

    наверх

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

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


Новогодний выпуск 22.

VB Студия
  • Статьи - 42
  • Контролы - 13
  • Примеры - 71
  • Хитрости - 32
  • Куски кодов - 25
  • Windows Api - 27
  • FAQ
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
VB Line
  • Статьи
  • ActiveX
  • Примеры
  • Советы
  • Windows Api
Голосование:

Ваш голос отсылается по 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
            • Несколько слов от автора:

    Это новогдний выпуск рассылки. Через несколько дней Новый год. В этом выпуске определяется победитель в конкурсе на лучший баннер, а также будут награждены самые активные участники раздела "Вопрос/ответ".
    Читайте!

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

    • Citycat by Email

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

    • Вывод свойства Caption у контрола одновременно с вводом текста
    • Как узнать описание ошибки, возвращенной функцией API
    • Именование закрытых переменных
    • Как показать стандартный диалог выбора папки
    • Используя ListView восстанавливайте ширину каждой колонки

    • Книги

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

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

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

    Конкурсы
    В десятом номере рассылки был объявлен конкурс на лучший баннер. Представлены 3 работы двух создателей. Это анимированные gif кнопки. Мы распределили места так:
    I место:
    Автор - Назаров Евгений
    II место поделили две кнопки:
    Автор - Anton B. Lozovski
    Автор - Anton B. Lozovski

    Главным критерием при присуждени мест был размер баннера.
    Назаров Евгений получает 5000 показов баннерообменной системы TLE.RU. Anton B. Lozovski получает 4000 показов сети TLE.RU. Все участники конкурса получают возможность разместить кнопку 88x31 на главной странице сайта VBСтудия.

    Также я решил наградить самых активных участников раздела "Вопрос/Ответ". Вот трое самых активных на мой взгляд участников:

  • Sergey Y. Tkachev
  • Кононенко Роман
  • Kirill

    • Они прислали больше всех ответов на вопросы. Но это не главное. Главное то, что они присылали грамотные, полные ответы.
    Sergey Y. Tkachev, Кононенко Роман и Kirill получают возможность разместить кнопку 88x31 на главной странице сайта VBСтудия

    наверх

    Citycat by Email

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

    наверх

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

    • 27 декабря 2001 года - Поздравляю Вас всех с Новым годом. Ну и как раз по поводу этого великого праздника сегодня большое, если не сказать огромное, обновление. Значительно пополнился раздел Юмор. Теперь количество анекдотов там превышает 50 и будет постоянно увеличиваться. В разделе Примеры добавлено 15 примеров. Большую часть из них прислал Беляев Данила, за что ему огромное спасибо. Ну а главное - добавлен раздел Игры. Там будут расположены игры, написанные на Visual Basic с исходниками. Уже имеется 7 игр.
    • 23 декабря 2001 года - Каждый день на сайт приходит более 150 посетителей, которые, как я понимаю, являются программистами или считают себя таковыми. Так вот если каждый из Вас хотя бы раз в месяц пришлет на сайт пример, совет, контрол или что-нибудь еще, то будет очень много материала. Вам же будет лучше и легче программировать!
      Присылайте, жду. Выложил 5 новых примеров.
      Выложил один код в библиотеку кодов.
    • 21 декабря 2001 года - Написал новую статью. Называется - "Программное создание базы данных".
    • 17 декабря 2001 года - Последнюю неделю не было ни одного обновления - их не было по одной важной причине: не было времени. Как видите, я поменял дизайн сайта. Я счиаю, что так будет удобнее. Пока возможны небольшие неполадки в работе сайта, но максимум через неделю я их исправлю. Никаких новых материалов пока не добавлено.
    • 8 декабря 2001 года - Один новый контрол. Он позволяет преобразовать сумму в пропись.
      В разделе Юмор добавлен новый рассказ.

    наверх

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

    23 декабря 2001 г. Ну вот, так то лучше! Мой почтовый ящик за последние дни принял множество интересных примеров, статей и контролов. Итак, с сегодняшнего обновления, я буду их выкладывать на сайт. Не обижайтесь, если Ваш код появится не самым первым, а, например, к Новому году. Новоселов Андрей порадовал нас очень качественным и полезным контролом DublWindow. Контрол предназначен для отслеживания запущенных копий одной и той же программы и имеет множество интересных возможностей. Например, Вы можете обмениваться информацией между разными копиями и т.д. Рекомендую всем. Ковалев Сергей прислал контрол FlexGridPlus, созданный на основе всем известного FlexGrid, но имеющий несколько новых полезных свойств: TextEdit = true позволяет вводить текст в ячейки, свойство FormatString позволяет задать формат вводимого текста, если FormatString=1, то в ячейки можно вводить только числа и десятичные точки, а также рад других нужных свойств. Ну и напоследок еще два примера от SeRg, Сергей очень порадовал и прислал множество своих примеров, контролов. Большое ему спасибо. Итак, на сегодня я выбрал два примера: работа с FSO библиотекой и красивые стрелочные часики. Ну и на закуску новый сайт про ЭТО VBasic. Фууух, ну на сегодня хватит обновлений.
    16 декабря 2001 г. В прошлый раз я предложил создать новый раздел ЖЗП. Ну и где Ваши истории? Пришло куча писем - "классный раздел, будет интересно", но НИКТО не решился написать о себе. Я обиделся... Еще вот что, каждый день на сайт приходит более 130 посетителей, которые, как я понимаю, являются программистами или считают себя таковыми. Так вот если каждый из Вас хотя бы раз в месяц пришлет на сайт пример, совет, контрол или что-нибудь еще, то будет очень много материала. Вам же будет лучше и легче программировать! Присылайте, жду. Ну да ладно, Новоселов А.Г. (интересно, а как же его зовут) прислал свой контрол, для решения задачки по запихиванию иконки в сис.трей (там где часики). И еще в разделе Статьи, добавил интересную статью Армена Мнацаканяна посвященную FSO - объектной модели файловой ситемы.

    наверх

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

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

    наверх

    Вывод свойства Caption у контрола одновременно с вводом текста

    Это совет     Михаила Эскина с сайта http://www.mik.h1.ru. Вы, наверно, неоднократно замечали что у стандартных контролов Label или TextBox при изменении свойства, отвечающего за вывод текста (Caption или Text соответственно) изменения на контроле происходят одномоментно с введением текста в окне свойств. У созданных Вами контролов такое изменение текста на контроле происходит только после подтверждения ввода клавишей ENTER. Однако VB позволяет исправить это положение.

    Создайте контрол, установите свойство AutoRedraw=True, а затем скопируйте нижеуказанный код. Ничего сложного в нем нет - просто создается одно свойство Caption, которое печатается на контроле.

    Option Explicit
    Const m_def_Caption = "TestControl"
    Dim m_Caption As String

    Public Property Get Caption() As String
    Caption = m_Caption
    End Property

    Public Property Let Caption(ByVal New_Caption As String)
    m_Caption = New_Caption
    Draw m_Caption
    PropertyChanged "Caption"
    End Property

    Private Sub UserControl_InitProperties()
    m_Caption = m_def_Caption
    End Sub

    Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
    m_Caption = PropBag.ReadProperty("Caption", m_def_Caption)
    End Sub

    Private Sub UserControl_Show()
    Draw m_Caption
    End Sub

    Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
    Call PropBag.WriteProperty("Caption", m_Caption, m_def_Caption)
    End Sub

    Private Sub Draw(str As String)
    UserControl.Cls
    UserControl.Print str
    End Sub

    На тестировочной форме отобразите Ваш контрол и попытайтесь изменить его свойство Caption. Все происходит обычным порядком, т.е. текст обновляется только по нажатии ENTER.

    Перейдите в контрол и выберите меню Tools/Procedure Attributes ..., нажмите кнопку Advanced>> и для свойства Caption в выпадающем списке Procedure ID - выберите так же Caption. Нажмите ОК. Если сейчас в тестировочной форме вы попробуете изменить данное свойство контрола, то увидите, что это происходит одновременно и на самом контроле.

    Такая ситуация характерна не только для контролов, созданных с "нуля", но и для контролов, использующих готовые элементы управления (например Label). Если используете TextBox, то, соответственно, необходимо выбрать Procedure ID = Text.

    Из недостатков этого метода можно отметить два:

    1. Если данное свойство используется по умолчанию (Procedure ID = Default), то второе ID ему присвоить уже нельзя. Хотя, в VB.Net свойств по умолчанию, вроде бы, не предвидится.

    2. Если Вы используете, допустим, 2 или более Label, Caption которых имеют самостоятельные свойства. В данной ситуации Вы сможете такую манипуляцию провести только у одного из них.

    наверх

    Как узнать описание ошибки, возвращенной функцией API

    Если Вы используете API, то Вам пригодится следующий совет. Функции API, обычно возвращают код ошибки, а нам бы хотелось ещё узнать и ее описание. Оказывается сделать это не сложно. Нужно обратиться к функции FormatMessage из API. Она возвратит Вам описание любой ошибки по ее номеру, причем описание зависит от языка операционной системы, т.е. если у Вас установлена русская версия Windows, то и описание Вы получите на руссом языке. Ниже приведена функция, которая облегчает работу с FormatMessage.

    Private Function ApiErrorText(ByVal ErrNum As Long) As String
    Dim msg As String
    Dim nRet As Long

    msg = Space$(1024)
    nRet = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, ByVal 0&, ErrNum, 0&, msg, Len(msg), ByVal 0&)
    If nRet Then
    ApiErrorText = Left$(msg, nRet - 2)
    Else
    ApiErrorText = ""
    End If
    End Function

    Private Declare Function FormatMessage Lib "kernel32" Alias "FormatMessageA" (ByVal _
    dwFlags As Long, lpSource As Any, ByVal dwMessageId As Long, ByVal dwLanguageId _
    As Long, ByVal lpBuffer As String, ByVal nSize As Long, Arguments As Long) As Long

    Private Const FORMAT_MESSAGE_FROM_SYSTEM As Long = &H1000

    наверх

    Именование закрытых переменных

    На каком бы объектно-ориентированном языке Вы ни программировали, наверняка сталкивались с проблемой именования переменных. Переменным, представляющим одно и то же значение, приходится присваивать разные имена. Допустим, Вы определили свойство FileName В программе имеется переменная с именем файла, и ее значение надо присвоить этому свойству. Программист, который придерживается венгерского именования, может назвать переменную как sFileName. Значение, присваиваемое свойству, на самом деле передается как аргумент в процедуру Property Let. Вы должны как-то назвать параметр, принимающий имя файла, на ум сразу приходит sFileName Теперь это же значение надо хранить внутри процедуры — и снова подходит sFileName. А как насчет самого свойства? Извне оно и выглядит, и пахнет как переменная, да и на вкус такое же. Что, опять sFileName.

    На практике совпадение имен внешней и внутренней переменных проблем не создает. У внешней своя область видимости, отличная от остальных, и в этом случае одинаковые имена допустимы. И все же лучше не применять венгерского именования в именах свойств, а не то Ваш код станет похож на бормотание индюка. thgMyThing.nMyCollection.iProperty. Кроме того, Вы сильно разойдетесь со схемой именования, принятой в элементах управления, формах и других предопределенных объектах. Да и неприлично это — навязывать другим свою схему именования.

    Остается конфликт между именем параметра в процедуре Property Let и именем внутренней переменной. Вы должны как-то различать их, даже если они относятся к одному и тому же. Имя внутренней переменной можно подправить двумя способами Например, в библиотеке MFC в таких ситуациях перед именем элемента класса всегда ставится префикс т_ (m_sFileName). При этом модификация имен не сказывается на процедурах

    Вот так то, это совет не от меня - его автор замечательный программист Брюс Мак Кинни. Так что слушайтесь его, он плохого не посоветует!

    наверх

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

    Вы уже неоднократно видели в различных программах окно выбора папки. А вот как его показать, ведь в Visual Basic такого элемента управления нет. Для этого воспользуйтесь нижеследующим кодом.

    Public Const MAX_PATH = 260 'Максимальное число символов в наименовании папки

    Type BROWSEINFO
    hOwner As Long
    pidlRoot As Long
    pszDisplayName As String
    lpszTitle As String
    ulFlags As Long
    lpfn As Long
    lParam As Long
    iImage As Long
    End Type

    Public Declare Function SHBrowseForFolder Lib "Shell32" Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
    Public Declare Function SHGetPathFromIDList Lib "Shell32" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
    Public Declare Function SHSimpleIDListFromPath Lib "Shell32" Alias "#162" (ByVal szPath As String) As Long
    Public Declare Sub CoTaskMemFree Lib "ole32" (ByVal pv As Long)

    Function SelectFolder() As String
    Dim bi As BROWSEINFO 'структура для SHBrowseForFolder
    Dim sPath As String 'переменная под имя папки
    Dim pID As Long 'переменная для PIDL

    bi.hOwner = Me.hwnd 'описатель вызывающего окна для правильного отображения в ZOrder
    bi.pszDisplayName = String$(MAX_PATH, 0) 'буфер под имя папки
    bi.lpszTitle = "Выберите папку..." 'заголовак окна
    'функции передается не имя начальной папки
    'а её PIDL (Point to ID list), т.е. указатель
    'в системном списке. Его получам от спец. функции
    'bi.pidlRoot = SHSimpleIDListFromPath("c:\") 'диск С должен быть у всех
    'если оставить это поле пустым, то начальная папка "Рабочий стол"
    'передаем начальную информацию в SHBrowseForFolder и
    'от неё получаем выбранную пользователем папку
     pID = SHBrowseForFolder(bi)
    'создаем буфер под имя возвращаемой папки
    sPath = String$(MAX_PATH, 0)
    If SHGetPathFromIDList(ByVal pID, ByVal sPath) Then
    'приводим имя папки в нормальный вид, т.е. отсекаем нули
    sPath = StrZToStr(sPath)
    End If
    'обязательно почистите память
    Call CoTaskMemFree(pID)
    SelectFolder = sPath 'возвращаем имя выбранной папки
    End Function

    наверх

    Используя ListView восстанавливайте ширину каждой колонки

    Если в своих программах Вы используете элемент управления ListView, то пользователь может менять ширину каждого его столбца. По правилам "хорошего тона" Вы просто обязаны сохранять эти значения в реестре, а затем, при следующем запуске программы, восстановить их. Для этого не следует изобретать "велосипед", а лучше всего воспользоваться моим кодом.

    Итак, воспользуйтесь двумя нижеследующими процедурами. Первая сохраняет, а вторая восстанавливает нужные значения. Каждая процедура имеет два параметра: ей передается ListView и имя секции в реестре, в которой будем сохранять значения (имя может быть любое). Кроме того если Вы читали мой совет №2 (на сайте), то Вам уже известны константы APP_NAME, KEY_SET. К ним прибавляется ещё одна COLUMN_WIDTH. В общем смысле эти константы задают имя ключа в реестре Windows, в котором хранятся настройки Вашей программы.

    Public Const COLUMN_WIDTH = "ColumnWidth" 'ширина колонок
    Public Const APP_NAME = "FTP Manager" 'Наименование программы
    Public Const KEY_SET = "Setting" 'Общие настройки

    'сохраняем ширину колонок таблиц в реестре
    Sub SaveColumns(lv As ListView, name As String)
    Dim KEY_STRING As String
    Dim i As Long

    'Сохраняем ширину колонок в реестре Windows
     KEY_STRING = APP_NAME & "\" & KEY_SET & "\" & name
    For i = 1 To lv.ColumnHeaders.Count
    SaveSetting KEY_STRING, COLUMN_WIDTH, i, lv.ColumnHeaders(i).Width
    Next i
    End Sub

    'восстанавливаем ширину колонок
    Sub LoadColumns(lv As ListView, name As String)
    Dim KEY_STRING As String
    Dim i As Long

    'Восстанавливаем ширину колонок
     KEY_STRING = APP_NAME & "\" & KEY_SET & "\" & name
    For i = 1 To lv.ColumnHeaders.Count
    lv.ColumnHeaders(i).Width = GetSetting(KEY_STRING, COLUMN_WIDTH, i, 700)
    Next i
    End Sub

    Для сохранения ширины колонок в событие Unload формы (на которой находится ListView) впишите:

    SaveColumns Me.ListView1, "Table1"

    Для восстановления параметров в событие Load впишите вызов процедуры LoadColumns с пеми же параметрами. Вот, собственно и все.

    наверх

    Книги

    Использование Visual Basic 6. Специальное издание
    В книге описана новая версия популярной системы программирования Visual Basic 6. Изложение материала построено по принципу "от простого к сложному". Первые главы этой книги адресованы новичкам, из которых они смогут почерпнуть основы языка Visual Basic и описание его стандартных компонентов. Для подготовленных пользователей будет интересен раздел, посвященный специальным методам программирования с использованием стандартных компонентов Windows, элементов управления ActiveX, ADO. RDO и др. В отдельную часть вынесены вопросы, связанные с разработкой приложений баз данных на Visual Basic и работе в Internet. Автор не обошел также вниманием различные версии языка Visual Basic - VBA и VBScript. В приложениях приведен обзор интегрированной среды разработки Visual Basic, а также краткий справочник по SQL.
    Книга рассчитана на широкий круг читателей.

    Сайлер Б., Споттс Дж., "Вильямс" - 1999, 832 стр.
    Стоимость: 244,02 р.
    Тираж: 4000 экз.
    Формат книги: 70х100/16
    Переплет: твёрдый

    Обработка баз данных на Visual Basic 6 + CD
    Сердцем многих приложении, работающих в сфере бизнеса, являются базы данных. Своим широким распространением они обязаны возможности централизованного доступа к информации. который характеризуется последовательностью, эффективностью и относительной простотой создания и поддержки. В книге "Обработка баз данных на Visual Basic 6" описываются все технологии доступа к базам данных с помощью Visual Basic. Приведенные в этой книге примеры взяты из реальной жизни, поэтому, ознакомившись с ними, вы узнаете, как можно использовать базы данных для принятия решений в сфере бизнеса. Если вы еще не готовы перейти к версии Visual Basic 6, это вовсе не значит, что данная книга вам не подходит. Практически 95% материала этой книги удовлетворит в равной степени пользователей как пятой, так и шестой версий Visual Basic.
    Книга рассчитана на программистов средней и высокой квалификации.

    Мак-Манус Дж.П., "Вильямс" - 1999, 672 стр.
    Стоимость: 310,17 р.
    Скидка: 5%
    Итого: 294,66
    Тираж: 3000 экз.
    Формат книги: 70х100/16
    Переплет: твёрдый

    ADO и Visual Basic. Руководство разработчика
    В книге описано использование технологии доступа к данным (ADO) с помощью основного инструмента разработки приложений Microsoft - Visual Basic 6.0.
    Из книги вы узнаете, как можно исследовать источники данных при помощи окна Data View, как создавать формы для ввода и запроса данных, используя связанные элементы управления, и подсоединяться к источникам данных со сложной иерархической структурой средствами Data Environment. Далее вы изучите, как можно, используя Data Report, представлять информацию в форме, подходящей для печати, или как следует исполнять некоторые, наиболее широко распространенные задачи, связанные с обработкой данных, используя ADO внутри кода Visual Basic. В последних главах книги рассмотрены дополнительные операции, используемые в коде, в том числе формирование данных, для создания иерархических наборов записей, применение ADO в сети Internet и даже создание собственных источников данных.
    Чтобы боле полно использовать средства ADO для извлечения информации из различных источников, в приложении к книге вы найдете справочник по языку SQL, в котором обсуждаются основы работы с оператором SQL SELECT.

    Гандерлой М., "Бином" - 2001, 336 стр.
    Стоимость: 169 р.
    Переплет: нет данных

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

    наверх

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

    Хостинг. Где лучше?

    Ну, сделал ты свою страничку. А дальше? Выбираешь хостинг-провайдера и заливаешь ее для всеобщего обозрения. И тут тебя ждет сюрприз — через неделю пропадает связь с сервером, и на твой сайт уже никто попасть не может. Судорожно летишь останавливать показ баннеров. Через неделю повторяется то же самое. Начинаешь задумываться о смене провайдера, но как же выбрать, чтоб опять не ошибиться?

    Подписаться

    Сервисы в интернете

    Интернет — это не только сайты с анекдотами и новостями. Интернет — это еще и море всевозможных и разнообразных услуг, платных и бесплатных. А что, вы о них знаете? Ааа… знаете? Тогда поделитесь с другими. А если не знаете — спросите.

    Подписаться

    Интернет-программирование

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

    Подписаться

    Графика

    Вам нравиться рисовать? Надо обработать фотографии? Создать баннер или логотип? У вас есть опыт работы с рисунками, и вы хотите с ним поделиться? У вас нет опыта, но вы горите желанием научиться? Тогда вам сюда. В группе обсуждаются все вопросы, связанные с двухмерной графикой.

    Подписаться

    Информатика в школе

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

    Подписаться

    наверх

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

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

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

    наверх

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

    BalloonMessage for MS Agent

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

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

    наверх

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

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

    Вопросы:

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

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

    Как подгружать на RunTime картинку(bmp)в приложение из файла mdb? Картинка линкуется в филде не из готового файла,а через Create New.

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

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

    Создание ярлыка.
    Из программы требуется создать ярлык на имеющийся файл (и поместить его в другую папку).

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

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

    На VBA никогда не программировал. Вопрос: в некой директории содержатся некоторое количество поддиректорий, в каждой поддиректории файлы с расширением rtf. Нужно написать макрос, чтобы эти файлы быстро сохранить в формате *.txt. Бегло изучив Help по VBA нашел как это делать с ActiveDocument, но не открывать же вручную все файлы.

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

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

    Нужно перебрать файлы из директории по маске. Столкнулся с таким глюком (стандартный exampl в хелпе на FileName): При вызове поиска без маски, т.е. (.FileName = "") выводит все файлы. Когда маска не пустая и по маске найдены фаилы (должны быть найдены)- вызывается ошибка выполнения '5'(Недопустимый вызов процедуры или аргумент). Если же под маску файлы не попадают, тогда выводит сообщение, что таких файлов нету.

    Вопрос простой - где грабли

    Процедура в полном тексте:

    Sub CommandButton2_Click()
    With Application.FileSearch
    .NewSearch
    .LookIn = CommandButton1.Caption
    .FileName = "cmd*"
    If .Execute() > 0 Then
    MsgBox "There were " & .FoundFiles.Count & _
    " file(s) found."
    For i = 1 To .FoundFiles.Count
    MsgBox .FoundFiles(i)
    Next i
    Else
    MsgBox "There were no files found."
    End If
    End With
    End Sub

    Автор вопроса: Андрей Юрьевич

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

    Вопрос вот в чем. Я хочу создать е-майл сообщение и отправить его из своей формы.Пишу как обычно:

    Dim out As Object
    Set out = CreateObject("Outlook.Application")

    Но на это обработчик ошибок мне выдает, что ActivX компонент не может создать объект,ошибка 429. Подскажите пожалуйста, как быть?

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

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

    Если есть у кого-нибудь пример как делат из VB в 3Д график.
    Импорт dxf фајла в VB пројецт.

    Мя руский очен лучший
    Поздрављайет рускою

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

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

    Во-первых, всех читателей рассылки - с наступающим Новым Годом!
    Во-вторых, скажите мне - обычному бизнесмену, пытающемуся использовать VB (и очень недавно) для решения прикладных задач, ЧТО ТАКОЕ MSDN, С ЧЕМ ЕГО ЕДЯТ и КАК ЕГО УСТАНОВИТЬ? Все, наверное, поняли, что я не могу запустить справку в VB6 Prof. Буду очень и очень благодарен если кто-нибудь разъяснит мне это.

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

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

    Я хочу чтобы моя прога сохраняла текст из формы в текстовый файл после нажатия кнопки при помощи Microsoft Dialog Control 6.0, тоесть стандартного окна сохранения Виндоуз. Как мне это сделать?

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

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

    Как можно ия VB работать с портами ввода-вывода по их фияическому адресу?

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

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

    Люди добрые, помогите!!! Как сделать так, чтобы при вводе данных в БД в DBList набранное сортировалось по алфавиту, только на русском языке.

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

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

    Моё почтение! Ввиду моего дилетанства ,заранее приношу извинения за возможные некорректные формулировки аспектов вопроса.
    Ситуация. Моё приложение на VB 6 использует файл Access 2000. В полях таблицы этого файла,имеющих тип Text ,я без проблем пишу по-русски (весь "офис" у меня с русской поддержкой). Но при "вытаскивании" содержимого этих полей в TextBox-ы приложения ,получаю лишь набор ????? и т.д.
    На машине у меня 98-й windows(английский). Помогите ,пожалуйста, разобраться в причине проблемы.По-возможности, пример разрешения подобной ситуации,

    Ответы:

    Вопрос:

    Как сделать такую вещь: программа в процессе работы должна сделать паузу, ну скажем, на 2 сек. и в это время НИЧЕГО НЕ ДЕЛАТЬ! То есть просто подождать и продолжать выполнение работы.

    Ответ:

    Автор ответа: Александр

    Я использую API но можно и без нее использовать функцию Time это у меня кусок от класса для замера быстродействия так что я непеределывал ничего. Работает нормально

    Вызов Sleep(5)

    'возвращает время в милисекундах
    Private Declare Function timeGetTime Lib "winmm.dll" () As Long
    Sub Sleep(dblSecond As Double)
    'dblSecond- время в секундах на которое нужно подождать
    Dim lngTimeEnd As Long
    Dim lngTimeCur As Long

    lngTimeEnd = timeGetTime + (dblSecond * 1000)
    lngTimeCur = 0
    Do While lngTimeEnd > lngTimeCur
    lngTimeCur = timeGetTime
    DoEvents
    Loop

    End Sub

    Вопрос:

    Как сделать такую вещь: программа в процессе работы должна сделать паузу, ну скажем, на 2 сек. и в это время НИЧЕГО НЕ ДЕЛАТЬ! То есть просто подождать и продолжать выполнение работы.

    Ответ:

    Автор ответа: Игорь

    Для начала нужно объявить в форме или в модуле (тогда печатать Private или Public соответственно) в разделе "(Generals)" объявить API-функцию Sleep следующим образом:

    Public Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)

    Теперь вызвать эту функцию: Sleep(количество миллисекунд), где количество милисекунд это число от 1 до ~64000. Для справки: 1 минута = 1000 миллисекунд.

    Вопрос:

    Как сделать такую вещь: программа в процессе работы должна сделать паузу, ну скажем, на 2 сек. и в это время НИЧЕГО НЕ ДЕЛАТЬ! То есть просто подождать и продолжать выполнение работы.

    Ответ:

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

    На примере я покажу, как можно реализовать функцию ожидания в VB. Вначале помести на форму таймер и установи его свойство Интервал = 1 и свойство Enable = False, две метки (Label1 и Label2) и кнопку. Напишите следуйщую подпрограмму и код события Таймер для таймера:

    Public Sub Wait(seconds)
    `включение таймера
    Timer1.enable = True
    `установка интервала таймера
    Timer1.interval = 1000 * seconds
    While Timer.Interval > 1
    DoEvents
    Wend
    `выключение таймера
    Timer1.Enable = False
    End Sub

    Private Sub Timer1_Timer()
    Timer1.Interval = 0
    End Sub

    Теперь можете использовать функцию Wait везде, где требуется какая либо задержка, например:

    Private Sub Command_Click()
    Label1.Caption = Now
    Wait (5)
    Label2.Caption = Now
    End Sub

    Вот и всё :)

    Вопрос:

    У меня установлен MSVB6 отдельно от VisualStudio6 (пиратский CD по 70р.). Программы работают, компилятся, запаковываются в дистрибутив c помощью Package and Deployment Wizard, который говорит, что не нашёл зависимостей (Missing Dependency Information) с библиотеками msado20.tlb и msstdfmt.dll. Как итог - дистрибутив не ставится на удаленном компьютере, выдавая ошибку при инсталляции. Помогите разобраться, в чем дело?

    Ответ:

    Автор ответа: Mihail Bykov

    Package and Deployment Wizard вообще по сути своей глючен. Как откомпилишь - возьми где-нить MSInstaller и запакуй все сам. Там мона и связи библиотек указывать и какие библиотеки в реестре регестрировать и как шареные их делать или как приватные. Деинсталлятор создает. Строка для поиска: isetup-2.0.17.exe
    Лично я ей только и пользуюсь... Вот и все. Можешь попробовать LSB02bt9.exe - она покруче, но посложнее в подготовке пакета.

    Вопрос:

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

    Private Sub Command1_Click()
    Open C:\windows\desktop\cool proga.exe 'или htm, jpg
    End Sub

    Или чето типа того, я не знаю.
    Цель: сделать autorun на диск в виде простой VB-формы с кнопками.

    Ответ:

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

    Для запуска программы используется функцияShell с таким синтаксисом:

    Shell(Имя_Файла_программы[, Тип_Окна])

    В следуйщем фрагменте кода с помощю функции Shell запускается калькулятор:

    Private Sub Command1_Click()
    Shell (C:\windows\calk.exe, vbNormalFocus)
    End Sub

    Вопрос:

    Есть текстовые данные,вываливающиеся в Excel в таблицу. Нужно анализировать строки таблицы пусто/заполнено и сортировать заполненные в определ. порядке (сверху вниз подряд без пропусков)Где про это прочитать? Пример есть у кого-нить?

    Ответ:

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

    Первый же ответный вопрос -- в каком виде данные представлены в текстовом файле и как из этого текстового файла берутся? (можно ведь открывать текстовый файл с разделителями колонок как Excel'ный, или открывать как файл для последовательного чтения). У меня, собственно, куча самых разных примеров на эту тему (работа такая), все зависит от того, что надо. Анализировать же можно довольно просто -- при занесении данных в таблицу:

    Dim emptyRow As Boolean
    Dim i As Integer ' для нумерации строк исходного файла
    Dim j As Integer ' для нумерации столбцов
    Dim k As Integer ' для нумерации строк в выходном файле
    Dim dataStr As String
    '...
    'цикл заполнения соотв. ячеек значениями
    For i = 1 To
    emptyRow = True
    For j = 1 To
    'dataStr = Trim(...)
    If dataStr <> "" Then
    Cells(k, j).Value = dataStr
    emptyRow = False
    End If
    Next j
    If Not emptyRow Then k = k + 1 ' если строка не пустая увеличиваем счетчик строк в выходном файле
    Next i

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

    Range(Cells(<N_перв_строки>, 1), Cells(<N_посл_строки>, <N_посл_столбц>)).Sort Columns(1)
    ' сортировка области ячеек по первому столбцу этой области

    Вопрос:

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

    Ответ:

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

    Зайди сюда(это не реклама) www.ufa.com.ua - и найди какойнить конвертор.

    Вопрос:

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

    Ответ:

    Автор ответа: Кирилл Братищев

    IconEdit Pro V5.0. Попробуй - мне нравится (она там еще много чего умеет).

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

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

    наверх

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

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


Выпуск 23.

VB Студия
  • Статьи - 42
  • Контролы - 13
  • Примеры - 71
  • Хитрости - 32
  • Куски кодов - 25
  • Windows Api - 27
  • FAQ
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
VB Line
  • Статьи
  • ActiveX
  • Примеры
  • Советы
  • Windows Api
Голосование:

Ваш голос отсылается по 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.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

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

    Первый выпуск рассылки в новом 2002 году.
    Читайте!

    Содержание выпуска
    • Citycat by Email

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

    • Как добавить сайт в папку Избранное?
    • Как создать ярлык страницы в Интернет?
    • Сравнение файлов на идентичность
    • Как сменить разрешение экрана
    • По поводу батареек ноутбука

    • Книги

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

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

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

    Citycat by Email

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

    наверх

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

    • 1 января 2001 года - Во-первых сегодня замечательный день. У сайта VBСтудия сегодня день рождения. Ровно год назад первого января он был открыт. Во-вторых сегодня открылся ещё один VB сайт. Это VBPlanet. Обязательно посетите его. Там есть, что посмотреть. Теперь о новых поступлениях на сайт. Добавлено 5 примеров.
    • 27 декабря 2001 года - Поздравляю Вас всех с Новым годом. Ну и как раз по поводу этого великого праздника сегодня большое, если не сказать огромное, обновление. Значительно пополнился раздел Юмор. Теперь количество анекдотов там превышает 50 и будет постоянно увеличиваться. В разделе Примеры добавлено 15 примеров. Большую часть из них прислал Беляев Данила, за что ему огромное спасибо. Ну а главное - добавлен раздел Игры. Там будут расположены игры, написанные на Visual Basic с исходниками. Уже имеется 7 игр.
    • 23 декабря 2001 года - Каждый день на сайт приходит более 150 посетителей, которые, как я понимаю, являются программистами или считают себя таковыми. Так вот если каждый из Вас хотя бы раз в месяц пришлет на сайт пример, совет, контрол или что-нибудь еще, то будет очень много материала. Вам же будет лучше и легче программировать!
      Присылайте, жду. Выложил 5 новых примеров.
      Выложил один код в библиотеку кодов.
    • 21 декабря 2001 года - Написал новую статью. Называется - "Программное создание базы данных".
    • 17 декабря 2001 года - Последнюю неделю не было ни одного обновления - их не было по одной важной причине: не было времени. Как видите, я поменял дизайн сайта. Я счиаю, что так будет удобнее. Пока возможны небольшие неполадки в работе сайта, но максимум через неделю я их исправлю. Никаких новых материалов пока не добавлено.

    наверх

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

    01 января 2002 г. Ну вот и Новый год. Вначале о приятном. Вы стати намного активнее и присылаете мне свои примеры. Это хорошо! Итак, Данила Беляев прислал свою коллекцию примеров. Начинаем публиковать с очень интересного, на мой взгляд, примера работы с Direct Music. Пример называется RealMid и предназначен для прослушивания Midi файлов через DirectX. Скажу сразу, что получается довольно круто, в смысле очень качественно, так как используется программный синтезатор и качество звучания мало зависит от качества звуковой карты. И еще один пример от Данилы Беляева - оригинальное всплывающее меню. Гриневич Дмитрий прислал пример программы для работы с Midi файлами, программа называется KaraokeSystem. Продолжаем публикацию примеров от SeRg, сегодня хочу предложить Вам посмотреть пример на тему выключения компьютера, т.е. как можно программным способом выключить компьютер. Теперь о грустном. В связи с предстоящим переездом у меня стало совсем мало времени, так что придется пока пожертвовать рассылкой, она пока будет выходить в режиме новостей, т.е. пока в ней будут только новости.
    23 декабря 2001 г. Ну вот, так то лучше! Мой почтовый ящик за последние дни принял множество интересных примеров, статей и контролов. Итак, с сегодняшнего обновления, я буду их выкладывать на сайт. Не обижайтесь, если Ваш код появится не самым первым, а, например, к Новому году. Новоселов Андрей порадовал нас очень качественным и полезным контролом DublWindow. Контрол предназначен для отслеживания запущенных копий одной и той же программы и имеет множество интересных возможностей. Например, Вы можете обмениваться информацией между разными копиями и т.д. Рекомендую всем. Ковалев Сергей прислал контрол FlexGridPlus, созданный на основе всем известного FlexGrid, но имеющий несколько новых полезных свойств: TextEdit = true позволяет вводить текст в ячейки, свойство FormatString позволяет задать формат вводимого текста, если FormatString=1, то в ячейки можно вводить только числа и десятичные точки, а также рад других нужных свойств. Ну и напоследок еще два примера от SeRg, Сергей очень порадовал и прислал множество своих примеров, контролов. Большое ему спасибо. Итак, на сегодня я выбрал два примера: работа с FSO библиотекой и красивые стрелочные часики. Ну и на закуску новый сайт про ЭТО VBasic. Фууух, ну на сегодня хватит обновлений.

    наверх

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

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

    наверх

    Как добавить сайт в папку Избранное?

    По материалам сайта     VBcode.FAQ
    Option Explicit
    Public Enum SpecialShellFolderIDs
    CSIDL_DESKTOP = &H0
    CSIDL_INTERNET = &H1
    CSIDL_PROGRAMS = &H2
    CSIDL_CONTROLS = &H3
    CSIDL_PRINTERS = &H4
    CSIDL_PERSONAL = &H5
    CSIDL_FAVORITES = &H6
    CSIDL_STARTUP = &H7
    CSIDL_RECENT = &H8
    CSIDL_SENDTO = &H9
    CSIDL_BITBUCKET = &HA
    CSIDL_STARTMENU = &HB
    CSIDL_DESKTOPDIRECTORY = &H10
    CSIDL_DRIVES = &H11
    CSIDL_NETWORK = &H12
    CSIDL_NETHOOD = &H13
    CSIDL_FONTS = &H14
    CSIDL_TEMPLATES = &H15
    CSIDL_COMMON_STARTMENU = &H16
    CSIDL_COMMON_PROGRAMS = &H17
    CSIDL_COMMON_STARTUP = &H18
    CSIDL_COMMON_DESKTOPDIRECTORY = &H19
    CSIDL_APPDATA = &H1A
    CSIDL_PRINTHOOD = &H1B
    CSIDL_ALTSTARTUP = &H1D
    CSIDL_COMMON_ALTSTARTUP = &H1E
    CSIDL_COMMON_FAVORITES = &H1F
    CSIDL_INTERNET_CACHE = &H20
    CSIDL_COOKIES = &H21
    CSIDL_HISTORY = &H22
    End Enum
    Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
    Private Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" (ByVal hwndOwner As Long, ByVal nFolder As SpecialShellFolderIDs, pidl As Long) As Long
    Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal pv As Long)
    Public Function AddFavorite(SiteName As String, URL As String) As Boolean
    'SiteName - название сайта, URL - адрес сайта в Инете
    Dim pidl As Long
    Dim psFullPath As String
    Dim iFile As Integer
    On Error GoTo ErrorHandler
    iFile = FreeFile
    psFullPath = Space(255)
    If SHGetSpecialFolderLocation(0, CSIDL_FAVORITES, pidl) = 0 Then
    If pidl Then
    If SHGetPathFromIDList(pidl, psFullPath) Then
    psFullPath = TrimWithoutPrejudice(psFullPath)
    If Right(psFullPath, 1) <> "\" Then psFullPath = psFullPath & "\"
    psFullPath = psFullPath & SiteName & ".URL"
    Open psFullPath For Output As #iFile
    Print #iFile, "[InternetShortcut]"
    Print #iFile, "URL=" & URL
    Close #iFile
    End If
    CoTaskMemFree pidl
    AddFavorite = True
    End If
    End If
    ErrorHandler:
    End Function
    Public Function TrimWithoutPrejudice(ByVal InputString As String) As String
    Dim sAns As String
    Dim sWkg As String
    Dim sChar As String
    Dim lLen As Long
    Dim lCtr As Long
    sAns = InputString
    lLen = Len(InputString)
    If lLen > 0 Then
    For lCtr = 1 To lLen
    sChar = Mid(sAns, lCtr, 1)
    If Asc(sChar) > 32 Then Exit For
    Next
    sAns = Mid(sAns, lCtr)
    lLen = Len(sAns)
    If lLen > 0 Then
    For lCtr = lLen To 1 Step -1
    sChar = Mid(sAns, lCtr, 1)
    If Asc(sChar) > 32 Then Exit For
    Next
    End If
    sAns = Left$(sAns, lCtr)
    End If
    TrimWithoutPrejudice = sAns
    End Function

    Private Sub Form_Load()
    AddFavorite "Сайт VBcode.FAQ", "http://sharig.webzone.ru"
    End Sub

    наверх

    Как создать ярлык страницы в Интернет?

    По материалам сайта     VBcode.FAQ
    Sub CreateInternetShortCut(URLFile As String, URLTarget As String)
    Dim intFreeFile As Integer
    intFreeFile = FreeFile
    Open URLFile For Output As intFreeFile
    Print #intFreeFile, "[InternetShortcut]"
    Print #intFreeFile, "URL=" & URLTarget
    Close intFreeFile
    End Sub

    Private Sub Form_Load()
    CreateInternetShortCut "C:\WIN\Рабочий стол\test.url", "http://sharig.webzone.ru"
    End Sub

    наверх

    Сравнение файлов на идентичность

    Private Sub Form_Load()
    'замените пути файлов, которые вы хотите сравнить
    Open "C:\1\convert1bmp.htm" For Binary As #1
    Open "C:\1\convert2bmp.htm" For Binary As #2
    issame% = True
    If LOF(1) > LOF(2) Then
    issame% = False
    Else
    whole& = LOF(1) \ 10000
    part& = LOF(1) Mod 10000
    buffer1$ = String$(10000, 0)
    buffer2$ = String$(10000, 0)
    start& = 1
    For X& = 1 To whole&
    Get #1, start&, buffer1$
    Get #2, start&, buffer2$
    If buffer1$ > buffer2$ Then
    issame% = False
    Exit For
    End If
    start& = start& + 10000
    Next
    buffer1$ = String$(part&, 0)
    buffer2$ = String$(part&, 0)
    Get #1, start&, buffer1$
    Get #2, start&, buffer2$
    If buffer1$ > buffer2$ Then issame% = False
    End If
    Close
    If issame% Then
    MsgBox "Файлы идентичны", 64, "Info"
    Else
    MsgBox "Файлы НЕ идентичны", 16, "Info"
    End If
    End Sub

    наверх

    Как сменить разрешение экрана

    Иногда в программе необходимо сменить разрешение экрана. Как же это сделать. В Win API существует функция ChangeDisplaySettings, которая может нам помочь.

    Итак, для работы нам потребуется эта функция, структура типа DEVMODE и несколько флагов DM_PELSWIDTH, DM_PELSHEIGHT, DM_BITSPERPEL. Ниже представлена функция, которая служить для смена текущего разрешения экрана и глубины цвета.

    'ширина, высота экрана и глубина цвета
    Public Sub SetVideoMode(scWidth As Long, scHeight As Long, scDepth As Long)
    Dim dm As DEVMODE

    dm.dmPelsWidth = scWidth
    dm.dmPelsHeight = scHeight
    dm.dmBitsPerPel = scDepth
    dm.dmSize = Len(dm) 'длина структура (не забывайте!!!)
    dm.dmFields = DM_PELSWIDTH + DM_PELSHEIGHT + DM_BITSPERPEL 'флаги, указывающие что сменить
    ChangeDisplaySettings dm, 0
    End Sub

    Const DM_BITSPERPEL = &H40000
    Const DM_PELSWIDTH = &H80000
    Const DM_PELSHEIGHT = &H100000
    Const CCHDEVICENAME = 32
    Const CCHFORMNAME = 32

    Private Type DEVMODE
    dmDeviceName As String * CCHDEVICENAME
    dmSpecVersion As Integer
    dmDriverVersion As Integer
    dmSize As Integer
    dmDriverExtra As Integer
    dmFields As Long
    dmOrientation As Integer
    dmPaperSize As Integer
    dmPaperLength As Integer
    dmPaperWidth As Integer
    dmScale As Integer
    dmCopies As Integer
    dmDefaultSource As Integer
    dmPrintQuality As Integer
    dmColor As Integer
    dmDuplex As Integer
    dmYResolution As Integer
    dmTTOption As Integer
    dmCollate As Integer
    dmFormName As String * CCHFORMNAME
    dmUnusedPadding As Integer
    dmBitsPerPel As Integer
    dmPelsWidth As Long
    dmPelsHeight As Long
    dmDisplayFlags As Long
    dmDisplayFrequency As Long
    End Type

    Private Declare Function ChangeDisplaySettings Lib "user32.dll" Alias "ChangeDisplaySettingsA" _
    (lpDevMode As DEVMODE, ByVal dwFalgs As Long) As Long

    Вот, собственно и всё. Пользуйтесь!

    наверх

    По поводу батареек ноутбука

    Одним из наиболее неиспользуемых компонентов в VB, пишет     Антон Демин, является Microsoft SysInfo Control, который между тем, позволяет получить множество полезной для приложения информации - данных об ОС, событиях plug-n-play, системных событиях и т.д. В этом примере показывается вариант получения информации об источнике питания ноутбука.

    Select Case SysInfo1.ACStatus
    Case 0
    MsgBox "Not using AC power"
    Case 1
    MsgBox "Using AC power"
    Case 255
    MsgBox "Unknown AC power status"
    End Select

    Свойство BatteryLifePercent показывает процент зарядки батареи ноутбука:

    Dim PerCentLeft As String
    If SysInfo1.BatteryLifePercent <> 255 Then
    PerCentLeft = SysInfo1.BatteryLifePercent
    MsgBox PerCentLeft & "%"
    Else
    MsgBox "Battery charge status not known"
    End If

    Также, если ноутбук работает от батареи, то можно определить сколько времени можно работать еще без подзарядки:

    If SysInfo1.BatteryLifeTime <> &HFFFFFFFF Then
    MsgBox Format((TimeSerial(0, 0, _
    SysInfo1.BatteryLifeTime)), "h:mm")
    Else
    MsgBox "Cannot determine remaining battery time"
    End If

    наверх

    Книги

    VBA 2000 самоучитель
    В книге содержится краткий курс по использованию языка и системы VBA для Word и Excel 2000. Книга предназначена для начинающих программировать в среде Windows 95/9S с использованием в качестве базовых таких объектов Word и Excel, как документы, рабочие книги, листы и так далее.
    Материала книги достаточно для создания как простых макросов, помогающих автоматизировать рутинную повторяющуюся работу над документами и электронными таблицами, так и для разработки достаточно сложных приложений, обрабатывающих данные в диалоговых окнах, обеспечивающих пользователя самыми современными интерфейсными средствами.

    Кузьменко В.Г., "Бином" - 2000, 408 стр.
    Стоимость: 111,26 р.
    Формат книги: 70х100/16
    Переплет: мягкий

    VBA в Office 2000 учебный курс
    В этой книге описывается Visual Basic for Applications — подмножество популярнейшего языка программирования Visual Basic. Изучив ее материал, вы сможете создавать собственные интегрированные приложения, которые используют как объектные модели стандартных приложений MS Office, так и объектные модели ADO и DAO.
    Книга предназначена для всех пользователей MS Office 2000 —независимо от степени их владения программированием.

    Васильев А., Андреев А., "Питер" - 2000, 432 стр.
    Стоимость: 102,19 р.
    Формат книги: 70х100/16
    Переплет: нет данных

    Visual Basic 6 Desktor экзамен 70-176
    Книги серии "Экзамен — экстерном" представляют собой удобные, сжатые, хорo шо структурированные конспекты для подготовки к сдаче сертификационных экзаменов на звание Microsoft Certified Solution Developer. Книга "Visual Basic 6.0 Desktop. Экзамен— экстерном (экзамен 70-176)" содержит только действительно необходимый материал, типовые вопросы с ответами и пример экзамена. Возможно, некоторые подходы, применяемые автором, покажутся вам не совсем привычными — не удивляйтесь: это не учебник по Visual Basic; организация материала в этой книге призвана максимально облегчить задачу экзаменуемого. Учтите, что в ряде случаев экзаменационные вопросы выходят за рамки тем, отраженных в документации no Visual Basic, а иной раз правильные ответы на них даже входят в противоречие с "официальной" информацией.

    Макдоналд М., "Питер" - 2001, 608 стр.
    Стоимость: 130,83 р.
    Формат книги: 60х90/16
    Переплет: нет данных

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

    наверх

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

    Игры

    Работа, работа, работа — документы, базы, отчеты… Ну все пора расслабиться: работа не волк — в лес не убежит! Представь себе, у нас есть группа, которая поможет тебе скрасить тяжелые рабочие будни — мы помогаем друг другу играть!!! Обсуждаем все вопросы, которые только могут появиться у любителя игр: к примеру, как поиграть в StarCraft по сети или как написать свой конфиг к QUAKE III, и обсудим еще многое-многое-многое… Новости, ссылки на демки, патчи, обзоры и прохождение игр — все это у нас есть! Есть вопросы — ответим, есть новенький секрет — расскажем! Ну, а если ты супер-геймер, сам бог тебе велел быть с нами!

    Подписаться

    Шифрование

    Встречались ли вы в своей жизни с компьютерными пиратами? Одной из сфер их деятельности является перехват любой информации во время ее пересылки в просторах сети и воровство данных прямо с вашего компьютера. Даже если хакеру и удастся завладеть секретными данными — каково же будет его разочарование, когда он не сможет их прочесть! Давайте же поговорим о шифровании данных с помощью PGP и других алгоритмов...

    Подписаться

    Все о Linux

    Конференция, посвященная ОС Linux, которую имеете или будете иметь вы, а не она вас. Чем больше будет задано вопросов, тем больше будет получено ответов. Количество как известно перерастает в качество... И что приятно, ответы не канут в лету, их всегда можно будет найти в архиве нашей группы... Добро пожаловать!

    Подписаться

    Всё, что связано с пакетом программ MS Office.

    Вы хотели создать красивый документ в Word, но не знаете как форматировать текст? Или же в Excel вам нужно создать сложнейший и, в тоже время, красивый отчет, содержащий тысячи цифр, и вам не хватает для этого возможностей программы? Вам нужно создать базу данных в Access и по ней составлять отчеты или вы не знаете как послать письмо из Oulook? Всё это - от основ форматирования текста до сложнейших работ в таких программах, как MS Access и MS Publisher, - вы можете узнать в нашей группе Soobcha_Office.

    Подписаться

    Мощь и красота С++

    С++ является одним из самых гибких языков программирования. Сочетание низкоуровневых и высокоуровневых средств делает его сильным инструментом в руках программиста. Данная группа призвана помочь программирующим на Си и просто их сблизить. Давайте будем решать проблемы вместе!!!

    Подписаться

    наверх

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

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

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

    наверх

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

    BalloonMessage for MS Agent

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

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

    наверх

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

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

    Вопросы:

    Автор вопроса:     Михаил

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

    Можно ли и как общаться ия VB со явуковой картой? Конкретно: необходимо с яаданным тактом определять среднее яначение сигнала в яаданном отреяке времени.
    PS: С Новым Годом !! Успехов!!!

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

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

    Пользователь в поля вбивает координаты и размеры заготовок (досок толщ. 16 мм.) а прога должна их показать в два и трухмерном пространстве (выполнить так сказать чертеж и распечатать). Вот не знаю как сделать (проще). Мои варианты: создать свой трех движок, найти чужой, подключать МАХ, остыть и заняться чем нибудь другим - ). Можете что посоветовать?

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

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

    Народ, а где можно достать инфу по работе с DirectX в VB?

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

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

    Подскажите как в textbox получить текстовую информацию страницы загруженной в WebBrowser или хотябы ее HTML код.

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

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

    Лююди! Как проигрывать MP3 файлы на VB? Использовать MCI или можно через WinAPI???

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

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

    Как на VB организовать перехват событий печати из досовских программ? Подойдет любая информация или исходник на любом языке.

    Ответы:

    Вопрос:

    Как подгружать на RunTime картинку(bmp)в приложение из файла mdb? Картинка линкуется в филде не из готового файла,а через Create New.

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Только что прочитал одну рассылку, в которой приведен пример работы с картинками в базе данных http://msa.km.ru/msa/vb/article.asp?id=324. Всё очень просто - функция для чтения, ф-ция для записи. Если же речь идет об mdb, то отобразить картинку из базы данных в простейшем виде можно при помощи Picture Box или Image, которые привязаны на Data Control или ADO Data Control

    Сам же я, когда работаю с MS SQL7, то применяю следующую ф-цию для записи изображения:

    Function AddLongRaw(ByVal strFileName As String, ByRef objRecSet As
    ADODB.Recordset, ByVal strFieldName As String) As Boolean
    On Error GoTo ERRHANDLER
    AddLongRaw = False
    Dim objStream As Stream
    Set objStream = New ADODB.Stream
    objStream.Type = adTypeBinary
    objStream.Open
    objStream.LoadFromFile strFileName

    objRecSet.Fields(strFieldName).Value = objStream.Read
    objStream.Close
    Set objStream = Nothing
    AddLongRaw = True
    Exit Function
    ERRHANDLER:
    AddLongRaw = False
    Set objStream = Nothing
    End Function

    Для считывания изображения предпочитаю пользоваться завязанным на дату пикчером

    Вопрос:

    Вопрос вот в чем. Я хочу создать е-майл сообщение и отправить его из своей формы.Пишу как обычно:

    Dim out As Object
    Set out = CreateObject("Outlook.Application")

    Но на это обработчик ошибок мне выдает, что ActivX компонент не может создать объект,ошибка 429. Подскажите пожалуйста, как быть?

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Честно говоря, я не вижу особого смысла городить огород подобным образом.
    Раз Microsoft Outlook, значит MAPI. Так почему бы не использовать Microsoft
    MAPI Controls? Это самый простой и самый удобный и вообще, самый-самый
    способ посылать или читать почту. Кроме того, можно работать и с адресной
    книгой. В MSDN примеров - море. В самом примитивном виде это может выглядеть
    вот так:

    MAPISession.UserName = ""
    MAPISession.Password = ""
    MAPISession.SignOn

    MAPIMessages.SessionID = MAPISession.SessionID
    MAPIMessages.Compose
    MAPIMessages.RecipDisplayName = strNameToDisplay
    MAPIMessages.RecipAddress = strAddress
    MAPIMessages.MsgSubject = "MySubject"
    MAPIMessages.MsgNoteText = "Test Message"
    MAPIMessages.AttachmentPathName = strFileToAttach
    MAPIMessages.sEnd False

    Вопрос:

    Во-первых, всех читателей рассылки - с наступающим Новым Годом!
    Во-вторых, скажите мне - обычному бизнесмену, пытающемуся использовать VB (и очень недавно) для решения прикладных задач, ЧТО ТАКОЕ MSDN, С ЧЕМ ЕГО ЕДЯТ и КАК ЕГО УСТАНОВИТЬ? Все, наверное, поняли, что я не могу запустить справку в VB6 Prof. Буду очень и очень благодарен если кто-нибудь разъяснит мне это.

    Ответ:

    Автор ответа: Артем Меняйленко

    MSDN (MicroSoft Developers Network вроде так) это огромная база данных по программированию и вообще по мелко-мягким продуктам. Дистрибутив можно купить на рынках (3 полных компакта) или скачать с microsoft.com/msdn, что при наших линиях малореально. Вот в состав этого MSDN и входит справка, примеры по ВБ6 и еще много полезных статей и информации. А установка обычным Setupом.

    Вопрос:

    Во-первых, всех читателей рассылки - с наступающим Новым Годом!
    Во-вторых, скажите мне - обычному бизнесмену, пытающемуся использовать VB (и очень недавно) для решения прикладных задач, ЧТО ТАКОЕ MSDN, С ЧЕМ ЕГО ЕДЯТ и КАК ЕГО УСТАНОВИТЬ? Все, наверное, поняли, что я не могу запустить справку в VB6 Prof. Буду очень и очень благодарен если кто-нибудь разъяснит мне это.

    Ответ:

    Автор ответа: Shemyakin, Dmitry

    MSDN - в том понимании как вы спрашиваете это справка по всем основным продуктам MS(!) Состоит из четырех компакт дисков (3 CD + 1 DVD), имеет мощную систему поиска. Есть пиратская версия :)) А если взять шире - это подписка для разработчиков, в которую кроме вышеозначеных дисков входят все продукты MS(!) включая релизы(беты, демы и т.п.). Можно найти даже японский виндовс :)

    Вопрос:

    Я хочу чтобы моя прога сохраняла текст из формы в текстовый файл после нажатия кнопки при помощи Microsoft Dialog Control 6.0, тоесть стандартного окна сохранения Виндоуз. Как мне это сделать?

    Ответ:

    Автор ответа: Sergey Y. Tkachev

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

    Private Sub Command1_Click()
    Dim strFileName As String
    Dim FileNumber As Integer

    CommonDialog1.ShowSave
    strFileName = CommonDialog1.FileName
    FileNumber = FreeFile
    Open strFileName For Output As #FileNumber
    Print #FileNumber, Text1.Text
    Close #FileNumber

    End Sub

    Наслаждайтесь! Читайте MSDN

    Вопрос:

    Люди добрые, помогите!!! Как сделать так, чтобы при вводе данных в БД в DBList набранное сортировалось по алфавиту, только на русском языке.

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Честно говоря фраза "при вводе данных в БД в DBList" мне не очень понятна, но если нужно заполнить DBList из БД, то просто SELECT {ListOfFields} FROM {TableName} ORDER BY FieldName. Ребята, читайте MSDN!!!!!!!!!!!!!!!!!!!

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

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

    наверх

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

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


Выпуск 24.

VB Студия
  • Статьи - 42
  • Контролы - 13
  • Примеры - 71
  • Хитрости - 32
  • Куски кодов - 25
  • Windows Api - 27
  • FAQ
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
VB Line
  • Статьи
  • ActiveX
  • Примеры
  • Советы
  • Windows Api
Голосование:

Ваш голос отсылается по 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.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

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

    Материал кончается! Присылайте материал!!!
    Читайте!

    Содержание выпуска
    • Citycat by Email

    • Новости сайта VB Студия
    • Новости сайта VBLine
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Если риложение не закрывается
    • Определение типа клавиатуры
    • Изменение внешнего вида кнопки ПУСК
    • ASP: Предварительный просмотр
    • Как открыть CD-ROM

    • Книги

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

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

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

    Citycat by Email

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

    наверх

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

    • 6 января 2001 года - Добавлено 3 примера. Первый пример - за курсором мыши по экрану бегает красный шарик. Второй пример - программное создание таймера. И третий пример - это универсальный проигрователь.
    • 1 января 2001 года - Во-первых сегодня замечательный день. У сайта VBСтудия сегодня день рождения. Ровно год назад первого января он был открыт. Во-вторых сегодня открылся ещё один VB сайт. Это VBPlanet. Обязательно посетите его. Там есть, что посмотреть. Теперь о новых поступлениях на сайт. Добавлено 5 примеров.
    • 27 декабря 2001 года - Поздравляю Вас всех с Новым годом. Ну и как раз по поводу этого великого праздника сегодня большое, если не сказать огромное, обновление. Значительно пополнился раздел Юмор. Теперь количество анекдотов там превышает 50 и будет постоянно увеличиваться. В разделе Примеры добавлено 15 примеров. Большую часть из них прислал Беляев Данила, за что ему огромное спасибо. Ну а главное - добавлен раздел Игры. Там будут расположены игры, написанные на Visual Basic с исходниками. Уже имеется 7 игр.
    • 23 декабря 2001 года - Каждый день на сайт приходит более 150 посетителей, которые, как я понимаю, являются программистами или считают себя таковыми. Так вот если каждый из Вас хотя бы раз в месяц пришлет на сайт пример, совет, контрол или что-нибудь еще, то будет очень много материала. Вам же будет лучше и легче программировать!
      Присылайте, жду. Выложил 5 новых примеров.
      Выложил один код в библиотеку кодов.
    • 21 декабря 2001 года - Написал новую статью. Называется - "Программное создание базы данных".

    наверх

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

    01 января 2002 г. Ну вот и Новый год. Вначале о приятном. Вы стати намного активнее и присылаете мне свои примеры. Это хорошо! Итак, Данила Беляев прислал свою коллекцию примеров. Начинаем публиковать с очень интересного, на мой взгляд, примера работы с Direct Music. Пример называется RealMid и предназначен для прослушивания Midi файлов через DirectX. Скажу сразу, что получается довольно круто, в смысле очень качественно, так как используется программный синтезатор и качество звучания мало зависит от качества звуковой карты. И еще один пример от Данилы Беляева - оригинальное всплывающее меню. Гриневич Дмитрий прислал пример программы для работы с Midi файлами, программа называется KaraokeSystem. Продолжаем публикацию примеров от SeRg, сегодня хочу предложить Вам посмотреть пример на тему выключения компьютера, т.е. как можно программным способом выключить компьютер. Теперь о грустном. В связи с предстоящим переездом у меня стало совсем мало времени, так что придется пока пожертвовать рассылкой, она пока будет выходить в режиме новостей, т.е. пока в ней будут только новости.
    23 декабря 2001 г. Ну вот, так то лучше! Мой почтовый ящик за последние дни принял множество интересных примеров, статей и контролов. Итак, с сегодняшнего обновления, я буду их выкладывать на сайт. Не обижайтесь, если Ваш код появится не самым первым, а, например, к Новому году. Новоселов Андрей порадовал нас очень качественным и полезным контролом DublWindow. Контрол предназначен для отслеживания запущенных копий одной и той же программы и имеет множество интересных возможностей. Например, Вы можете обмениваться информацией между разными копиями и т.д. Рекомендую всем. Ковалев Сергей прислал контрол FlexGridPlus, созданный на основе всем известного FlexGrid, но имеющий несколько новых полезных свойств: TextEdit = true позволяет вводить текст в ячейки, свойство FormatString позволяет задать формат вводимого текста, если FormatString=1, то в ячейки можно вводить только числа и десятичные точки, а также рад других нужных свойств. Ну и напоследок еще два примера от SeRg, Сергей очень порадовал и прислал множество своих примеров, контролов. Большое ему спасибо. Итак, на сегодня я выбрал два примера: работа с FSO библиотекой и красивые стрелочные часики. Ну и на закуску новый сайт про ЭТО VBasic. Фууух, ну на сегодня хватит обновлений.

    наверх

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

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

    наверх

    Новости сайта Азбука VB

    • 10 января 2001 года
      Интересный пример создания popMenu используя API функции CreatePopupMenu, AppendMenu, DestroyMenu, TrackPopupMenu и GetCursorPos.
      Пример показывает, как можно отлавливать события при нажатии на кнопках в заголовке формы. В примере использовались API функции - CallWindowProc и SetWindowLong.
    • 7 января 2001 года
      RealMid - уникальный пример воспроизведения миди файлов через Direct Sound, при этом звук не зависит от качества звуковой карты.
      Пример проигрывания mp3, wave, midi файлов с ускорением/замедлением скорости средствами библиотеки ActiveMovi входящей в состав Windows.
      Пример программного генерирования миди комманд

    наверх

    Если риложение не закрывается

    Какие-то объекты не выгружены из памяти. Если вы используете DAO для доступа к базе данных, то вам не повредит такой код
    Private Sub Form_Unload(Cancel As Integer)

    On Error Resume Next

    Dim ws As Workspace
    Dim db As Database
    Dim rs As Recordset

    For Each ws In Workspaces
    For Each db In ws.Databases
    For Each rs In db.Recordsets
    rs.Close
    Set rs = Nothing
    Next
    db.Close
    Set db = Nothing
    Next
    ws.Close
    Set ws = Nothing
    Next
    '
    End Sub

    наверх

    Определение типа клавиатуры

    По материалам сайта     VBcode.FAQ
    Private Declare Function GetKeyboardType Lib "user32" (ByVal nTypeFlag As Long) As Long
    Private Sub Form_Load()
    Dim t As String
    Dim k As Long
    k = GetKeyboardType(0)
    If k = 1 Then t = "PC or compatible 83-key keyboard"
    If k = 2 Then t = "Olivetti 102-key keyboard"
    If k = 3 Then t = "AT or compatible 84-key keyboard"
    If k = 4 Then t = "Enhanced(IBM) 101-102-key keyboard"
    If k = 5 Then t = "Nokia 1050 keyboard"
    If k = 6 Then t = "Nokia 9140 keyboard"
    If k = 7 Then t = "Japanese keyboard"
    MsgBox "Type of keyboard : " & t
    End Sub

    наверх

    Изменение внешнего вида кнопки ПУСК

    По материалам сайта     VBcode.FAQ
    Для изменения внешнего вида кнопки ПУСК вам нужна любая картинка размером 55 пикс * 22 пикс. под именем temp.bmp

    Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
    End Type

    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
    Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long
    Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
    Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
    Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
    Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
    Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
    Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long

    Const SRCCOPY = &HCC0020

    Dim hwndTB As Long ' handle taskbar'а
    Dim hWndSB As Long ' handle окна кнопки ПУСК
    Dim hDcSB As Long ' handle содержимого кнопки ПУСК
    Dim mRect As RECT ' координаты кнопки ПУСК
    Dim hDcTmp As Long ' handle новой картинки
    Dim hBmpTmp As Long ' временная картинка
    Dim hBmpTmp2 As Long ' временная картинка
    Dim nWidth As Long ' ширина кнопки ПУСК
    Dim nHeight As Long ' высота кнопки ПУСК
    Dim sPath As String ' путь к картинке

    Private Sub Form_Load()
    ' получить handle taskbar и кнопки ПУСК
    hwndTB = FindWindow("Shell_TrayWnd", "")
    hWndSB = FindWindowEx(hwndTB, 0, "button", vbNullString)
    ' получить dc кнопки ПУСК
    hDcSB = GetWindowDC(hWndSB)
    ' получить координаты кнопки ПУСК
    Call GetWindowRect(hWndSB, mRect)
    ' ширина и высота
    nWidth = mRect.Right - mRect.Left
    nHeight = mRect.Bottom - mRect.Top
    hDcTmp = CreateCompatibleDC(hDcSB)
    hBmpTmp = CreateCompatibleBitmap(hDcTmp, nWidth, nHeight)
    ' установить путь для загрузки картинки
    sPath = App.Path & "\temp.bmp"
    hBmpTmp2 = SelectObject(hDcTmp, LoadPicture(sPath))
    End Sub

    Private Sub tmrPaint_Timer()
    ' рисовать кнопку ПУСК
    Call BitBlt(hDcSB, 0, 0, nWidth, nHeight, hDcTmp, 0, 0, SRCCOPY)
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    ' очистить кнопку ПУСК
    hBmpTmp = SelectObject(hDcTmp, hBmpTmp2)
    DeleteObject hBmpTmp
    DeleteDC hDcTmp
    End Sub

    наверх

    ASP: Предварительный просмотр

    Информация взята с сайта     prosto.pp.ru
    При подготовке информации перед записью полезно проверить как она будет выглядеть при отображении. Это особенно актуально, если в тексте содержатся теги HTML. С другой стороны при использовании для ввода тега может неоднозначно трактоваться перевод строки.
    Ниже приводится текст модуля PreView.asp позволяющего произвести предварительный просмотр.

    <%@Language=VBScript%>
    <%Option Explicit%>
    <%Response.Expires=0%>

    <%
    ' Высвечивает документ для предварительного просмотра
    ' Form - имя формы
    ' Field - имя поля формы
    ' ----------------------------------------------------------------
    Dim sForm,sField
    Dim sStart,sBr

    sForm=Trim(Request.QueryString("Form"))
    sField=Trim(Request.QueryString("Field"))
    %>
    <html>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <TITLE>Предварительный просмотр</TITLE>
    <head>
    <SCRIPT LANGUAGE=javascript>
    <!--
    self.focus();
    //-->
    </SCRIPT>
    </head>
    <body>
    <%
    ' Определить замену начала и перевода строки
    sStart=" "
    sBr="<br> "
    %>
    <script LANGUAGE="javascript">
    <!--
    var b,n,k,s;
    s="<%=sStart%>";
    var str=opener.<%=sForm%>.<%=sField%>.value;
    k=str.length;
    b=true;
    while((n=str.indexOf("\n"))>-1)
    {
    document.write(s+str.substring(0,n-1));
    str=str.substring(n+1,k);
    s="<%=sBr%>";
    b=false;
    }
    if (b=true) document.write(s+str);
    //-->
    </script>
    </body>
    </html>

    Здесь внедрен механизм образования красной строки (переменная sStart) и замены перевода строк на тег
    (переменная sBr). При желании этот механизм легко модернизируется.

    Для вызова модуля, в форме для которой требуется проверка поля, можно использовать, например, такую запись:

    <FORM Name="frmDocum">
    <TEXTAREA Name="DocumText" rows="3" cols="5">Исх. текст</TEXTAREA>
    <input TYPE="button" VALUE="Предварительный просмотр"
    onClick="javascript:window.open("PreView.asp? Form=frmDocum&Field=DocumText" ,"toolbar=no,scrollbars=yes,resizable=yes");">
    </FORM>

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

    наверх

    Как открыть CD-ROM

    Многие из Вас не раз задумывались над тем, как программно открыть CD-ROM. Это настолько элементарно, что я решил рассказать Вам об этом. Итак, нам потребуется всего одна функция Win32 API:

    Private Declare Function mciSendString Lib "winmm.dll" _
    Alias "mciSendStringA" _
    (ByVal lpstrCommand As String, _
    ByVal lpstrReturnString As String, _
    ByVal uReturnLength As Long, _
    ByVal hwndCallback As Long) As Long

    Теперь для открытия CD-ROM вызовите эту функцию с такими параметрами:
    Call mciSendString("Set CDAudio Door Open Wait", 0&, 0&, 0&)

    а ее для закрытия:
    Call mciSendString("Set CDAudio Door Closed Wait", 0&, 0&, 0&)

    Ну вот я же говорил, что это очень просто.

    наверх

    Книги

    VBA 2000 самоучитель
    В книге содержится краткий курс по использованию языка и системы VBA для Word и Excel 2000. Книга предназначена для начинающих программировать в среде Windows 95/9S с использованием в качестве базовых таких объектов Word и Excel, как документы, рабочие книги, листы и так далее.
    Материала книги достаточно для создания как простых макросов, помогающих автоматизировать рутинную повторяющуюся работу над документами и электронными таблицами, так и для разработки достаточно сложных приложений, обрабатывающих данные в диалоговых окнах, обеспечивающих пользователя самыми современными интерфейсными средствами.

    Кузьменко В.Г., "Бином" - 2000, 408 стр.
    Стоимость: 111,26 р.
    Формат книги: 70х100/16
    Переплет: мягкий

    VBA в Office 2000 учебный курс
    В этой книге описывается Visual Basic for Applications — подмножество популярнейшего языка программирования Visual Basic. Изучив ее материал, вы сможете создавать собственные интегрированные приложения, которые используют как объектные модели стандартных приложений MS Office, так и объектные модели ADO и DAO.
    Книга предназначена для всех пользователей MS Office 2000 —независимо от степени их владения программированием.

    Васильев А., Андреев А., "Питер" - 2000, 432 стр.
    Стоимость: 102,19 р.
    Формат книги: 70х100/16
    Переплет: нет данных

    Visual Basic 6 Desktor экзамен 70-176
    Книги серии "Экзамен — экстерном" представляют собой удобные, сжатые, хорo шо структурированные конспекты для подготовки к сдаче сертификационных экзаменов на звание Microsoft Certified Solution Developer. Книга "Visual Basic 6.0 Desktop. Экзамен— экстерном (экзамен 70-176)" содержит только действительно необходимый материал, типовые вопросы с ответами и пример экзамена. Возможно, некоторые подходы, применяемые автором, покажутся вам не совсем привычными — не удивляйтесь: это не учебник по Visual Basic; организация материала в этой книге призвана максимально облегчить задачу экзаменуемого. Учтите, что в ряде случаев экзаменационные вопросы выходят за рамки тем, отраженных в документации no Visual Basic, а иной раз правильные ответы на них даже входят в противоречие с "официальной" информацией.

    Макдоналд М., "Питер" - 2001, 608 стр.
    Стоимость: 130,83 р.
    Формат книги: 60х90/16
    Переплет: нет данных

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

    наверх

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

    Игры

    Работа, работа, работа — документы, базы, отчеты… Ну все пора расслабиться: работа не волк — в лес не убежит! Представь себе, у нас есть группа, которая поможет тебе скрасить тяжелые рабочие будни — мы помогаем друг другу играть!!! Обсуждаем все вопросы, которые только могут появиться у любителя игр: к примеру, как поиграть в StarCraft по сети или как написать свой конфиг к QUAKE III, и обсудим еще многое-многое-многое… Новости, ссылки на демки, патчи, обзоры и прохождение игр — все это у нас есть! Есть вопросы — ответим, есть новенький секрет — расскажем! Ну, а если ты супер-геймер, сам бог тебе велел быть с нами!

    Подписаться

    Шифрование

    Встречались ли вы в своей жизни с компьютерными пиратами? Одной из сфер их деятельности является перехват любой информации во время ее пересылки в просторах сети и воровство данных прямо с вашего компьютера. Даже если хакеру и удастся завладеть секретными данными — каково же будет его разочарование, когда он не сможет их прочесть! Давайте же поговорим о шифровании данных с помощью PGP и других алгоритмов...

    Подписаться

    Все о Linux

    Конференция, посвященная ОС Linux, которую имеете или будете иметь вы, а не она вас. Чем больше будет задано вопросов, тем больше будет получено ответов. Количество как известно перерастает в качество... И что приятно, ответы не канут в лету, их всегда можно будет найти в архиве нашей группы... Добро пожаловать!

    Подписаться

    Всё, что связано с пакетом программ MS Office.

    Вы хотели создать красивый документ в Word, но не знаете как форматировать текст? Или же в Excel вам нужно создать сложнейший и, в тоже время, красивый отчет, содержащий тысячи цифр, и вам не хватает для этого возможностей программы? Вам нужно создать базу данных в Access и по ней составлять отчеты или вы не знаете как послать письмо из Oulook? Всё это - от основ форматирования текста до сложнейших работ в таких программах, как MS Access и MS Publisher, - вы можете узнать в нашей группе Soobcha_Office.

    Подписаться

    Мощь и красота С++

    С++ является одним из самых гибких языков программирования. Сочетание низкоуровневых и высокоуровневых средств делает его сильным инструментом в руках программиста. Данная группа призвана помочь программирующим на Си и просто их сблизить. Давайте будем решать проблемы вместе!!!

    Подписаться

    наверх

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

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

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

    наверх

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

    BalloonMessage for MS Agent

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

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

    наверх

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

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

    Вопросы:

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

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

    Как создать файл сохронения для программы?

    Автор вопроса: Юля

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

    Подскажите, пожалуйста, как сделать так, что бы событие возникало при нажатие трех клавиш. Например: shift+ctrl+m.

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

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

    Скажите, пожалуйста, у меня есть основная форма, как мне по нажатию какой-нибудь функциональной клавиши (например F3) запускалась другая форма?

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

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

    У меня вот что за проблема: я написал программу (в VB6, когда её запускаещь, она работает превосходно). После её компиляции и запуске при нажатии на кнопку "Открыть" (должно вызваться стандартное окно открытия Windows), она выдаёт ошибку: "Run-time error "401". Can't show non-madal form when modal form is displeyed." И дальше перестаёт работать.

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

    Ответ ожидается по этому адресу

    Как можно добавить имя Data Base в DNS через VB6 ???

    Автор вопроса: Иван

    Ответ ожидается по этому адресу

    Считывание реестра вот таким кодом,он считывает только строковой параметр реестра,а как сделать чтобы считывался двоичный параметр реестра.
    Вот код:
    Dim Variable As Variant
    Variable = QueryValue(HKEY_LOCAL_MACHINE, "VB6", "Program")
    ну там еще прилагается модуль.

    Автор вопроса: RaPToR

    Ответ ожидается по этому адресу

    Я хочу чтобы после закрытия формы,текст в textbox автоматически сохранялся в каком-нибудь файле

    Автор вопроса: Sfagnum

    Ответ ожидается по этому адресу

    Такая проблемка, как из Excel'я табличку в Access перекинуть, лучше Range'м, а так хоть поячеечно, а также как искать данные в field'е, желательно и что я с поиска могу в result получить
    Пишу на VBA в Excel

    Ответы:

    Вопрос:

    Пользователь в поля вбивает координаты и размеры заготовок (досок толщ. 16 мм.) а прога должна их показать в два и трухмерном пространстве (выполнить так сказать чертеж и распечатать). Вот не знаю как сделать (проще). Мои варианты: создать свой трех движок, найти чужой, подключать МАХ, остыть и заняться чем нибудь другим - ). Можете что посоветовать?

    Ответ:

    Автор ответа: Shemyakin, Dmitry

    Я бы попробовал автоматизировать Autocad. Благо в нем есть возможность поддержки VBA.

    Вопрос:

    Пользователь в поля вбивает координаты и размеры заготовок (досок толщ. 16 мм.) а прога должна их показать в два и трухмерном пространстве (выполнить так сказать чертеж и распечатать). Вот не знаю как сделать (проще). Мои варианты: создать свой трех движок, найти чужой, подключать МАХ, остыть и заняться чем нибудь другим - ). Можете что посоветовать?

    Ответ:

    Автор ответа: Александр Подмогильный

    Свой движок это интересно, но довольно хлопотно. Найти чужой и припаять к себе не знаю таких движков (к сожалению). MAX- из пушки по воробьям. Прочие произведения Автодеска-тяжелая артилерия, разве что AutoCad Lite. ИМХО вот "Компас" на это стоит обратить внимание. В далекие DOS времена из вего CAD зверинца я для себя ставил его на первое место по соотношению простота использования/возможности, но использовал Dragon.

    Вопрос:

    Народ, а где можно достать инфу по работе с DirectX в VB?

    Ответ:

    Автор ответа: Maxim

    Информацию о DirectX можете посмотреть на www.vbstreets.ru.

    Вопрос:

    Подскажите как в textbox получить текстовую информацию страницы загруженной в WebBrowser или хотябы ее HTML код.

    Ответ:

    Автор ответа: DmitryK1

    Text1 = webbrowser.Document.documentElement.outerHTML

    Вопрос:

    Подскажите как в textbox получить текстовую информацию страницы загруженной в WebBrowser или хотябы ее HTML код.

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Положите на форму TextBox, CommandButton и Inet control (находится в Microsoft Internet Controls)
    Ставьте следующий код:

    Private Sub Command1_Click()
    Dim httpDoc As String
    Inet1.URL = "www.microsoft.com"
    httpDoc = Inet1.OpenURL("www.microsoft.com")
    Text1.Text = httpDoc
    End Sub

    Нажмте F5, чтобы запустить проект, затем нажмите кнопку.

    Вопрос:

    Лююди! Как проигрывать MP3 файлы на VB? Использовать MCI или можно через WinAPI???

    Ответ:

    Автор ответа: Шатрыкин Иван

    В Windows API нет функций для работы со звуковыми файлами, сжатыми по стандарту MP3. Но... Есть замечательный компонент, который называется Windows Media Player, вот он может помочь. Положите на форму контрол Windows Media Player, свойство AutoStart поставьте в True. Теперь для воспроизведения установите в свойство FileName, во время выполнения программы, имя файла для воспроизведения. И все...
    Вообще-то, существуют различные OCX, которые могут воспроизвести mp3, но зачем они, если практически у всех есть Media Player.

    Вопрос:

    На VBA никогда не программировал. Вопрос: в некой директории содержатся некоторое количество поддиректорий, в каждой поддиректории файлы с расширением rtf. Нужно написать макрос, чтобы эти файлы быстро сохранить в формате *.txt. Бегло изучив Help по VBA нашел как это делать с ActiveDocument, но не открывать же вручную все файлы.

    Ответ:

    Автор ответа: Sfagnum

    Всё просто просматриваешь каталог по маске, нужные файлы открываешь делаешь ActiveDocument'у SaveAs, затем ActiveDocument.Close и удаляешь *.rtf если надо.

    Вопрос:

    Моё почтение! Ввиду моего дилетанства ,заранее приношу извинения за возможные некорректные формулировки аспектов вопроса.
    Ситуация. Моё приложение на VB 6 использует файл Access 2000. В полях таблицы этого файла,имеющих тип Text ,я без проблем пишу по-русски (весь "офис" у меня с русской поддержкой). Но при "вытаскивании" содержимого этих полей в TextBox-ы приложения ,получаю лишь набор ????? и т.д.
    На машине у меня 98-й windows(английский). Помогите ,пожалуйста, разобраться в причине проблемы.По-возможности, пример разрешения подобной ситуации,

    Ответ:

    Автор ответа: VMJ

    По всей виимости собака зарыта в шрмфте TextBoxа. Попробуйте в явном виде задать для него "Кириличный" шрифт.

    Вопрос:

    Как с помощью VB сфотопрафировать экран(как PrintScreen)?

    Ответ:

    Автор ответа: Рафис

    Для того чтобы с помощью VB сделать скринщот экрана надо всего лишь воспользоваться несколькими функциями Win32 API
    .
    Private Declare Function GetDestktopWindow_
    Lib "user32" () as Long
    Private Declare Function GetDC_
    Lib "user32" (ByVal hwnd as Long) as Long
    (Эти 2 функции позволяют считать поверхность экрана)
    Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long,
    ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc
    As Long, ByVal dwRop As Long) As Long
    И в Form Load написать:
    dwRop = &HCC0020
    hSrcDC = GetDC(hwndSrc)
    Call BitBlt(hDC, 0, 0, ScaleWidth, ScaleHeight, hSrcDC, 0, 0, dwRop)
    Show

    И самое главное не забутьте AutoRedraw поставить равным true.
    Вот и всЁ.

    Вопрос:

    Подскажите плз, как програмно поменять ориентацию бумаги в принтере по умолчанию, а то у мена DataReport не хочет отображать отчёты в ориентации Ландшафт?

    Ответ:

    Автор ответа: Владимир Тюльпа

    printer.Orientation=1 - Книжная ориентация
    printer.Orientation=2 - Альбомная

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:

             Сурменок Павел и Шатрыкин Иван


Выпуск 25.

VBNet
  • Статьи
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Subscribe.Ru увеличило максимальный размер рассылки до 100 кб. В связи с этим вопрос:
Какого размера Вы хотели бы получать рассылку?
Менее 20 кб
От 20 до 40 кб
От 40 до 60 кб
От 60 до 80 кб
Выше 80 кб

В какой день (дни) недели Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."?
Понедельник
Вторник
Среда
Четверг
Пятница
Суббота
Воскресение

С какой периодичностью Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."?
Каждый день
2 раза в неделю
Раз в неделю
Раз в две недели
Раз в месяц
Реже

Результаты голосования
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • VB Line
  • Азбука VB
  • VB на русском
  • Улицы VB
  • VB - шаг за шагом
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
    • Несколько слов от автора:

    Внимание!!! Сайты VBСтудия и VBLine объединились. 14 января был открыт сайт VBNet. Появился удобный форум, транслируемый на других VB сайтах. Обязательно зайдите!
    Читайте!

    Содержание выпуска
    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Определение типа рисунка и его размеров
    • Пример, как можно вытащить все иконки из файла и нарисовать их на форме
    • Получить список запущенных приложений
    • ASP: Короткий оператор If
    • Как сделать кнопку закрытия окна недоступной

    • Книги

    • Вопрос/Ответ

    • Анонсы эхо-конференций СообЧа

    • Доска объявлений

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 17.01.2002 19:32 | Раздел: Примеры кода | Автор: Оловянников Аркадий

    cDlgEx - Класс включает функции для отображения наиболее доступных диалогов Windows, включая обычно вызываются из VB (например, Открытие Файла, Сохранение Файла, Печать) и некоторых других, недоступных из VB

    Дата: 17.01.2002 09:41 | Раздел: Примеры кода | Автор: Неизвестный автор

    IconExtractor - Пример программы для просмотра и сохранения Icon из исполняемых файлов. Автор, к сожалению мне не известен, однако комментарии на английском языке подразумевают, что автор не из России.

    Дата: 16.01.2002 18:20 | Раздел: Примеры кода | Автор: Withers Mark

    CyberCript - Пример архиватора на Visual Basic! Имеет несколько степеней сжатия, отличный интерфейс. Архивы создает в своём формате

    Дата: 16.01.2002 16:30 | Раздел: Примеры кода | Автор: Беляев Данила

    Msg - Пример на тему отправки e-mail сообщений. Используется библиотека WinSock. Очень хороший пример, на основе которого можно создать свою почтовую программу.

    Дата: 16.01.2002 09:06 | Раздел: Статьи по VB | Автор: Сурменок Павел

    Программное создание базы данных - Часто нужно создать новую базу данных по ходу выполнения программы. Как же это сделать? Об этом будет рассказано в статье. Создание базы данных производится с помощью библиотеки DAO. Для начала нужно подключить эту библиотеку. Для этого в меню Project|References отметьте пункт "Microsoft DAO 3.6 Objects Library". В составе Visual Basic 6.0 поставляется библиотека версии 3.6. Если у Вас более ранняя версия - отметьте её, особых различий нет...

    Дата: 15.01.2002 09:36 | Раздел: Статьи по VB | Автор: Беляев Данила

    База данных в простом файле и класс для её обработки - Обычно, если вам нужно создать например базу данных MDB с одной таблицей, то лучше всего создать простой класс, чем использовать контрол “Data”. Для базы данных сначала необходимо создать алгоритм разделения записей, мы возьмём самый малоиспользуемый символ chr(0). Также нам потребуется не только класс для работы с файлом, но и класс для хранения, редактирования, удаления записей.

    Дата: 14.01.2002 18:18 | Раздел: Примеры кода | Автор: Weidmann Philipp

    MultiThreading - Пример демонстрирует работу многопоточного приложения. В архив входит описание принципов многопоточности.

    Дата: 14.01.2002 11:34 | Раздел: Примеры кода | Автор: Vorobiov Stas(Sheff)

    StringDump - Интересный пример, показывающий, как можно вытащить из файла строковые ресурсы. Теоретически их же можно туда и запихнуть обратно уже в измененином виде. Но это уже другая история.

    Дата: 14.01.2002 09:14 | Раздел: Статьи по VB | Автор: Кононенко Роман

    Взаимодействие ADO Data Control и DataGrid ActiveX Control - Начнем с того, что я расскажу чем я занимаюсь, а занимаюсь я тем, что пишу бухгалтерские проги для малого частного бизнеса под заказ. Почему для малого, потому что не веду план счетов в проге, от этого прога становится легче и дешевле. Хотя мне разницы нет. И вот по роду работы я очень часто использую DataGrid, и всегда Access совские базы данных. Почему Access, да потому что легче всего её конструировать. А так как данных в таблицах очень много, и за разный период, то отображаю я это всё на экране при помощи DataGrid, и изучил я его очень хорошо. И так начнем.

    Дата: 13.01.2002 16:49 | Раздел: Примеры кода | Автор: Миллер С.

    CaretWdth - Вы наверное уже не раз возмущались тем, что стандартное текстовое окно не позволяет сменить курсор? Этот пример показывает как можно обойти это ограничение.

    Дата: 13.01.2002 16:23 | Раздел: Контролы | Автор: Беляев Данила

    Killer - Интересный пример, программа выводит список всех окон в системе и может закрыть любое из них. Однако осторожней с этом примером, можно "обжечься".

    Дата: 12.01.2002 16:25 | Раздел: Примеры кода | Автор: Axelson Jan

    Inpout32 - DLL и пример работы с ней. Библиотека Inpout32.dll была разработана, чтобы получить доступ к параллельным портам и другим портам на заказных аппаратных средствах, но Вы можете использовать ее, чтобы пытаться обращаться к любым аппаратным средствам, которые отображены как порт Ввода - вывода.

    Дата: 11.01.2002 19:30 | Раздел: Примеры кода | Автор: Оловянников Аркадий

    FindWindow - Демонстрация, как искать описатель окна в системе, на основе его заголовка. Строка поиска может включать групповые символы *, ?.

    наверх

    Новости сайта VBMania

    • 17.12 - В связи с тем что форум не горел желаением вести себя так, как должен обычный, порядочный форум, мы его прикрыли для проведения разъяснительных мероприятий. Надеемся, что они не затянутся и форум образумится.
    • 06.12 - С сегодняшнего дня все желающие могут добавлять свои новости и статьи в наши архивы.
      Да здраствует открытость!
    • 27.11 - Наконец-то, после долгих дней и бессонных ночей это свершилось! Сайт объявляется открытым! Непременно прочитайте первый номер нашего журнала. Оцените наши дополнительные проекты. И конечно мы ждем ваших откликов в гостевой книге и по почте.
    • 01.12 - Произошло несколько косметических улучшений, касающихся исключительно удобства работы с сайтом. Во-первых, можно видеть количество записей обсуждения новостей на главной странице; а во-вторых чуточку подправились директории.
      Оценяйте!
    • 02.12 - Наконец-то исправлена ошибка в Моей Мании, которая проявлялась исключительно в Windows XP. Теперь все работает как надо!

    наверх

    Новости сайта Азбука VB

    • 10 января 2001 года
      Интересный пример создания popMenu используя API функции CreatePopupMenu, AppendMenu, DestroyMenu, TrackPopupMenu и GetCursorPos.
      Пример показывает, как можно отлавливать события при нажатии на кнопках в заголовке формы. В примере использовались API функции - CallWindowProc и SetWindowLong.
    • 7 января 2001 года
      RealMid - уникальный пример воспроизведения миди файлов через Direct Sound, при этом звук не зависит от качества звуковой карты.
      Пример проигрывания mp3, wave, midi файлов с ускорением/замедлением скорости средствами библиотеки ActiveMovi входящей в состав Windows.
      Пример программного генерирования миди комманд

    наверх

    Определение типа рисунка и его размеров

    По материалам сайта     VBcode.FAQ
    Данный пример позволяет узнать такие параметры файла рисунка в формате GIF или JPG как: тип картинки, размер по ширине и размер по высоте
    Private Type ThePicInfo
    Type As String
    Width As Long
    Height As Long
    End Type

    Private Function CheckPicSpecs(TheFile) As ThePicInfo
    Dim TheContent, TheImageInfo As ThePicInfo, TheVar, TheFreeFile
    TheFreeFile = FreeFile
    Open TheFile For Binary As TheFreeFile
    TheContent = Input(10, TheFreeFile)
    Close TheFreeFile
    If Mid(TheContent, 7, 4) = "JFIF" Then
    TheImageInfo.Type = "JPG"
    Open TheFile For Binary As TheFreeFile
    TheContent = Input(167, TheFreeFile)
    Close TheFreeFile
    TheImageInfo.Height = Asc(Mid(TheContent, 165, 1)) + 256 * Asc(Mid(TheContent, 164, 1))
    TheImageInfo.Width = Asc(Mid(TheContent, 167, 1)) + 256 * Asc(Mid(TheContent, 166, 1))
    End If
    If Mid(TheContent, 1, 3) = "GIF" Then
    TheImageInfo.Type = "GIF"
    TheImageInfo.Width = Asc(Mid(TheContent, 7, 1)) + 256 * Asc(Mid(TheContent, 8, 1))
    TheImageInfo.Height = Asc(Mid(TheContent, 9, 1)) + 256 * Asc(Mid(TheContent, 10, 1))
    End If
    CheckPicSpecs = TheImageInfo
    End Function

    Private Sub Command1_Click()
    Dim a As ThePicInfo
    'в качестве параметра функции CheckPicSpecs установите путь к вашей картинке
    a = CheckPicSpecs("D:\garbage\way2house.gif")
    MsgBox a.Type
    MsgBox a.Width
    MsgBox a.Height
    End Sub

    наверх

    Пример, как можно вытащить все иконки из файла и нарисовать их на форме

    По материалам сайта     VBcode.FAQ
    Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long
    Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hicon As Long) As Long
    Private Declare Function DestroyIcon Lib "user32" (ByVal hicon As Long) As Long
    Dim hicon As Long
    Dim rval As Long
    Dim index As Long

    Private Sub Command1_Click()
    Form1.WindowState = vbMaximized
    Form1.Cls
    Dim i
    Dim x, y
    y = 0
    x = -10
    For i = 0 To 100
    If i / 10 = Int(i / 10) Then
    y = y + 40
    x = x + 10
    End If
    'далее должна быть правильно указана директория Windows
    hicon = ExtractIcon(App.hInstance, "C:\WIN\SYSTEM\SHELL32.DLL", i)
    rval = DrawIcon(Form1.hdc, (i - x) * 40, y, hicon)
    rval = DestroyIcon(hicon)
    Next
    End Sub

    наверх

    Получить список запущенных приложений

    По материалам сайта     VBcode.FAQ
    Расположите на форме элемент CommandButton и элемент ListBox.
    Const TH32CS_SNAPPROCESS As Long = 2&
    Const MAX_PATH As Integer = 260
    Private Type PROCESSENTRY32
    dwSize As Long
    cntUsage As Long
    th32ProcessID As Long
    th32DefaultHeapID As Long
    th32ModuleID As Long
    cntThreads As Long
    th32ParentProcessID As Long
    pcPriClassBase As Long
    dwFlags As Long
    szExeFile As String * MAX_PATH
    End Type
    Private Declare Function CreateToolhelpSnapshot Lib "Kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
    Private Declare Function ProcessFirst Lib "Kernel32" Alias "Process32First" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
    Private Declare Function ProcessNext Lib "Kernel32" Alias "Process32Next" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
    Private Declare Sub CloseHandle Lib "Kernel32" (ByVal hPass As Long)

    Private Sub Command1_Click()
    List1.Clear
    Dim hSnapShot As Long
    Dim uProcess As PROCESSENTRY32
    Dim r As Long
    hSnapShot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0&)
    If hSnapShot = 0 Then
    Exit Sub
    End If
    uProcess.dwSize = Len(uProcess)
    r = ProcessFirst(hSnapShot, uProcess)
    Do While r
    List1.AddItem uProcess.szExeFile
    r = ProcessNext(hSnapShot, uProcess)
    Loop
    Call CloseHandle(hSnapShot)
    End Sub

    наверх

    ASP: Короткий оператор If

    Информация взята с сайта     prosto.pp.ru
    Конструкция If Then при частом выполнении простых выборов значений в коде программы делает текст растянутым, а следовательно плохо читаемым.
    Для повышения наглядности кода можно применить следующую функцию:

    ' Короткий опереатор If
    ' Value1 - Первое значение для сравнения
    ' Value2 - Второе значение для сравнения
    ' sTrue - Строка возврата при равенстве
    ' sFalse - Строка возврата при неравенстве
    Function IfThen(Value1,Value2,sTrue,sFalse)
    If Trim(Value1)=Trim(Value2) Then IfThen=sTrue Else IfThen=sFalse
    End Function

    Пример применения.

    Dim n,aValue(10)
    aValue(0)=...
    ...
    aValue(3)="Value3"
    ...
    aValue(9)=...
    <SELECT>
    <%For n=0 To 9%>
    <OPTION VALUE="<%=aValue(n)%>"

    <%=IfThen(aValue(n),"Value3","SELECTED","")%>><%=aValue(n)%></OPTION>
    <%NEXT%<
    </SELECT>

    Кстати, не все знакомы со следующей формой записи оператора сравнения:

    Dim sA,sB,b
    sA="Value1"
    sB="Value2"
    b=(sA=sB) ' False
    sB=sA
    b=(sA=sB) ' True

    If (sA=sB)=True Then ... ' Тоже рабочий вариант

    наверх

    Как сделать кнопку закрытия окна недоступной

    Все, наверное, видели окна с недоступной кнопкой закрытия окна. А как это сделать? Все не так уж и сложно, если обратиться к Windows API. К сожалению автор этого кода мне неизвестен, поэтому все "шишки" мне     shatrykin@mail.ru.

    Нам потребуются всего две константы и четыре функции:

    Const MF_BYPOSITION = &H400
    Const MF_REMOVE = &H1000

    Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
    Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
    Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long

    А вот, собственно, и процедура, которая все сделает.

    Public Sub Disable_Close(Form_hWnd As Long)
    Dim Menu_hWnd, Number_Of_MenuItems As Long 'Декларируем переменных
    Menu_hWnd = GetSystemMenu(Form_hWnd, 0) 'Получения описателя системного меню
    If Menu_hWnd Then 'Если получилось получить описатель системного меню, то выполнять код
    Number_Of_MenuItems = GetMenuItemCount(Menu_hWnd) 'Получение количества пунктов меню
    Call RemoveMenu(Menu_hWnd, Number_Of_MenuItems - 1, MF_BYPOSITION) 'Удаление меню Закрыть
    Call RemoveMenu(Menu_hWnd, Number_Of_MenuItems - 2, MF_REMOVE)
    Call DrawMenuBar(Form_hWnd) 'Перерисовка системного меню
    End If 'Если не получилось получить описатель системного меню, то ничего не происходит
    End Sub

    Ну вот, а Вы боялись! ;-)

    Недавно появилось некоторое изменение для такого кода. Alex Murygin пишет, что этот код в некоторых ситуациях работает не совсем корректно и предлагает другое решение проблемы:

    Private Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
    Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) _
    As Long
    Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As _
    Long, ByVal wFlags As Long) As Long
    Private Declare Function EnableMenuItem Lib "user32" (ByVal hMenu As Long, ByVal _
    wIDEnableItem As Long, ByVal wEnable As Long) As Long
    Private Declare Function RegisterServiceProcess Lib "kernel32" (ByVal dwProcessID As Long, ByVal dwType _
    As Long) As Long
    Public Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwprocessid As Long) _
    As Long

    'Menu item constants.
    Private Const SC_CLOSE As Long = &HF060&
    'SetMenuItemInfo fState constants.
    Private Const MFS_GRAYED As Long = &H3&
    Const MF_BYPOSITION = &H400
    Const MF_REMOVE = &H1000

    Private Sub Disable_Close(Form_hWnd As Long)
    Dim Menu_hWnd, Number_Of_MenuItems As Long
    Dim tt As Long

    Menu_hWnd = GetSystemMenu(Form_hWnd, False)
    'Если изменить False на True, то меню восстановится
    If Menu_hWnd Then
    Number_Of_MenuItems = GetMenuItemCount(Menu_hWnd)
    For tt = Number_Of_MenuItems To 5 Step -1
    RemoveMenu Menu_hWnd, tt, MF_BYPOSITION
    Next
    EnableMenuItem Menu_hWnd, SC_CLOSE, MFS_GRAYED
    End If
    On Error Resume Next
    'работает только в WIN95/98
    RegisterServiceProcess ProcIDFromWnd(Form_hWnd), 1
    'если 1 поменять на 0 то процесс появится в списке задач
    On Error GoTo 0
    End Sub

    Private Function ProcIDFromWnd(ByVal hwnd As Long) As Long
    Dim idProc As Long

    'Get PID for this HWnd
     GetWindowThreadProcessId hwnd, idProc
    'Return PID
     ProcIDFromWnd = idProc
    End Function

    наверх

    Книги

    VBA 2000 самоучитель
    В книге содержится краткий курс по использованию языка и системы VBA для Word и Excel 2000. Книга предназначена для начинающих программировать в среде Windows 95/9S с использованием в качестве базовых таких объектов Word и Excel, как документы, рабочие книги, листы и так далее.
    Материала книги достаточно для создания как простых макросов, помогающих автоматизировать рутинную повторяющуюся работу над документами и электронными таблицами, так и для разработки достаточно сложных приложений, обрабатывающих данные в диалоговых окнах, обеспечивающих пользователя самыми современными интерфейсными средствами.

    Кузьменко В.Г., "Бином" - 2000, 408 стр.
    Стоимость: 111,26 р.
    Формат книги: 70х100/16
    Переплет: мягкий

    VBA в Office 2000 учебный курс
    В этой книге описывается Visual Basic for Applications — подмножество популярнейшего языка программирования Visual Basic. Изучив ее материал, вы сможете создавать собственные интегрированные приложения, которые используют как объектные модели стандартных приложений MS Office, так и объектные модели ADO и DAO.
    Книга предназначена для всех пользователей MS Office 2000 —независимо от степени их владения программированием.

    Васильев А., Андреев А., "Питер" - 2000, 432 стр.
    Стоимость: 102,19 р.
    Формат книги: 70х100/16
    Переплет: нет данных

    Visual Basic 6 Desktor экзамен 70-176
    Книги серии "Экзамен — экстерном" представляют собой удобные, сжатые, хорo шо структурированные конспекты для подготовки к сдаче сертификационных экзаменов на звание Microsoft Certified Solution Developer. Книга "Visual Basic 6.0 Desktop. Экзамен— экстерном (экзамен 70-176)" содержит только действительно необходимый материал, типовые вопросы с ответами и пример экзамена. Возможно, некоторые подходы, применяемые автором, покажутся вам не совсем привычными — не удивляйтесь: это не учебник по Visual Basic; организация материала в этой книге призвана максимально облегчить задачу экзаменуемого. Учтите, что в ряде случаев экзаменационные вопросы выходят за рамки тем, отраженных в документации no Visual Basic, а иной раз правильные ответы на них даже входят в противоречие с "официальной" информацией.

    Макдоналд М., "Питер" - 2001, 608 стр.
    Стоимость: 130,83 р.
    Формат книги: 60х90/16
    Переплет: нет данных

    Остальные книги о VB из магазина Колибри можно найти     здесь.

    наверх

    Анонсы эхо-конференций СообЧа

    Игры

    Работа, работа, работа — документы, базы, отчеты… Ну все пора расслабиться: работа не волк — в лес не убежит! Представь себе, у нас есть группа, которая поможет тебе скрасить тяжелые рабочие будни — мы помогаем друг другу играть!!! Обсуждаем все вопросы, которые только могут появиться у любителя игр: к примеру, как поиграть в StarCraft по сети или как написать свой конфиг к QUAKE III, и обсудим еще многое-многое-многое… Новости, ссылки на демки, патчи, обзоры и прохождение игр — все это у нас есть! Есть вопросы — ответим, есть новенький секрет — расскажем! Ну, а если ты супер-геймер, сам бог тебе велел быть с нами!

    Подписаться

    Шифрование

    Встречались ли вы в своей жизни с компьютерными пиратами? Одной из сфер их деятельности является перехват любой информации во время ее пересылки в просторах сети и воровство данных прямо с вашего компьютера. Даже если хакеру и удастся завладеть секретными данными — каково же будет его разочарование, когда он не сможет их прочесть! Давайте же поговорим о шифровании данных с помощью PGP и других алгоритмов...

    Подписаться

    Все о Linux

    Конференция, посвященная ОС Linux, которую имеете или будете иметь вы, а не она вас. Чем больше будет задано вопросов, тем больше будет получено ответов. Количество как известно перерастает в качество... И что приятно, ответы не канут в лету, их всегда можно будет найти в архиве нашей группы... Добро пожаловать!

    Подписаться

    Всё, что связано с пакетом программ MS Office.

    Вы хотели создать красивый документ в Word, но не знаете как форматировать текст? Или же в Excel вам нужно создать сложнейший и, в тоже время, красивый отчет, содержащий тысячи цифр, и вам не хватает для этого возможностей программы? Вам нужно создать базу данных в Access и по ней составлять отчеты или вы не знаете как послать письмо из Oulook? Всё это - от основ форматирования текста до сложнейших работ в таких программах, как MS Access и MS Publisher, - вы можете узнать в нашей группе Soobcha_Office.

    Подписаться

    Мощь и красота С++

    С++ является одним из самых гибких языков программирования. Сочетание низкоуровневых и высокоуровневых средств делает его сильным инструментом в руках программиста. Данная группа призвана помочь программирующим на Си и просто их сблизить. Давайте будем решать проблемы вместе!!!

    Подписаться

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Алексей

    Ответ ожидается по этому адресу

    Как можно при вызове моей программы получить аргументы из командной строки?

    Автор вопроса: Дмитрий

    Ответ ожидается по этому адресу

    Может ли кто подскаяать, как раявернуть картинку *.bmp или *.jpg ия поля OLE объекта в таблице баяы *.mdb(LONGBINARY) в image, бея испольяования OLE контейнера(картинка была вставлена в это поле черея OLE контейнер). Интересен также и обратный процесс: как свернуть картинку в это поле так чтобы содержимое поля было совместимо с OLE контейнером.

    Автор вопроса: Константин

    Ответ ожидается по этому адресу

    Вопрос по VB-6, как мне вставить объект OLE Automation на Rich Textbox(Форматированный текстовый блок).

    Автор вопроса: Андрей

    Ответ ожидается по этому адресу

    Скжите как в VB-5 cделать так, чтоб например при нажатии на клавишу Enter, курсор переходил из отного окна TextBox в другое?

    Автор вопроса: Андрей

    Ответ ожидается по этому адресу

    Подскажите пожалуйста как в VBA, открыть нужный текстовой файл, и данные фала отобразить в TextBox?

    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

    Как сформировать popup menu?

    Автор вопроса: Islentyev Dmitri

    Ответ ожидается по этому адресу

    Можно ли в принципе на VB писать DLL с экспортируемыми функциями? Если да, то КАК????? Может есть в VB какой-то спецификатор импорта, типа _declspec(dllexport) ?

    Автор вопроса: Cheremisinov

    Ответ ожидается по этому адресу

    Кто знает как вставить новую строку в ADODB.RecordSet, открытый как adCmdTableDirect, если там( в table) есть поле IDENTITY(счетчик) и в него надо вставить свое значение. При вызове .addnew и присвоении этому полю значения - он ругается.

    Автор вопроса: Проскурин

    Ответ ожидается по этому адресу

    Я работаю над созданием программы на VB 6.0. Как сделать так, чтобы текст из текстового файла копировался в буфер обмена ?

    Автор вопроса: Владимир

    Ответ ожидается по этому адресу

    1.Как из базы данных на основе Excel осуществлять поиск в VB автоподстановкой?
    2.Тот же самый поиск по ближайшим значениям(т.е. даны 100,200,300... введено 187 ;ответ- 100,200
    3.Как производить вычисления в той же форме? скажем перемножить индексы в трех полях?

    Автор вопроса: Vladimir Ivanov

    Ответ ожидается по этому адресу

    Нужно вставить таймер в Excel , т.е. чтобы через нужное время вызывалась определенная процедура VBA (типа автосохранения).

    Автор вопроса: Evgeniy

    Ответ ожидается по этому адресу

    Подскажите пожалуйста, как сделать закачку файла на FTP с progressbar.

    Ответы:

    Вопрос:

    Подскажите, пожалуйста, как сделать так, что бы событие возникало при нажатие трех клавиш. Например: shift+ctrl+m.

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Обработайте событие Form_KeyDown формы, предварительно установив свойство KeyPreview этой формы в True.

    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

    По поводу параметра Shift MSDN говорит следующее:

    An integer that corresponds to the state of the SHIFT, CTRL, and ALT keys at the time of the event. The shift argument is a bit field with the least-significant bits corresponding to the SHIFT key (bit 0), the CTRL key (bit 1), and the ALT key (bit 2 ). These bits correspond to the values 1, 2, and 4, respectively. Some, all, or none of the bits can be set, indicating that some, all, or none of the keys are pressed. For example, if both CTRL and ALT are pressed, the value of shift is 6.

    Ну а KeyCode - это код нажатой клавиши
    Например: shift+ctrl+m.

    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If Shift = 3 And KeyCode = vbKeyM Then Do_MySub
    End Sub

    Вопрос:

    Подскажите, пожалуйста, как сделать так, что бы событие возникало при нажатие трех клавиш. Например: shift+ctrl+m.

    Ответ:

    Автор ответа: Vamp

    Создаешь процедуру MouseDown( мышь ) или KeyDown( клава ) для нужного объекта
    Например для формы ( свойство формы "KeyPreview" должно быть "True" ) :

    Мышь :
    Sub Form_MouseDown (Button As Integer, Shift As Integer, x As Single, y As Single)
    ' Button это код нажатой на мышке клавиши
    ' 1 - левая кнопка
    ' 2 - правая кнопка
    ' 4 - средняя кнопка
    ' Shift это код нажатой на клавиатуре клавиши
    ' 1 - Shift
    ' 2 - Ctrl
    ' 4 - Alt
    If Button = 2 And Shift = 6 Then frmAbout.Show vbModal
    ' Если над формой нажать правую мышки , Ctrl и Alt ( 2+4=6), то откроется форма
    End sub

    Клава :
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    ' KeyCode это код нажатой клавиши
    ' vbKeyF1 - "F1"
    ' vbKeyF2 - "F2"
    ' vbKeyM - "M"
    ' vbKeyX - "X"
    ' и так далее
    ' Shift это код нажатой на клавиатуре клавиши
    ' 1 - Shift
    ' 2 - Ctrl
    ' 4 - Alt
    If KeyCode= vbKeyM And Shift = 6 Then frmAbout.Show vbModal
    " Если над формой нажать "M" , Ctrl и Alt ( 2+4=6), то откроется форма
    End Sub

    Вопрос:

    Скажите, пожалуйста, у меня есть основная форма, как мне по нажатию какой-нибудь функциональной клавиши (например F3) запускалась другая форма?

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyF3 Then NewForm.Show
    End Sub

    Вопрос:

    У меня вот что за проблема: я написал программу (в VB6, когда её запускаещь, она работает превосходно). После её компиляции и запуске при нажатии на кнопку "Открыть" (должно вызваться стандартное окно открытия Windows), она выдаёт ошибку: "Run-time error "401". Can't show non-madal form when modal form is displeyed." И дальше перестаёт работать.

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Что-то я не заню, что это такое: стандартное окно открытия "виндомс". Это окно, из которого "виндомс" открывается? :)
    Может, это диалог OpenFile?
    Ну, а насчет вопроса, Действительно, никогда не откроешь немодальное окно (все равно что), если открыто модальное. Так что, придется открывать как модальное

    Вопрос:

    Пользователь в поля вбивает координаты и размеры заготовок (досок толщ. 16 мм.) а прога должна их показать в два и трухмерном пространстве (выполнить так сказать чертеж и распечатать). Вот не знаю как сделать (проще). Мои варианты: создать свой трех движок, найти чужой, подключать МАХ, остыть и заняться чем нибудь другим - ). Можете что посоветовать?

    Ответ:

    Автор ответа: Vadim Kotryaga

    Еще вариант: использовать MSGraph-диаграмму, это смотря какую картинку тебе надо.

    Вопрос:

    Моё почтение! Ввиду моего дилетанства ,заранее приношу извинения за возможные некорректные формулировки аспектов вопроса.
    Ситуация. Моё приложение на VB 6 использует файл Access 2000. В полях таблицы этого файла,имеющих тип Text ,я без проблем пишу по-русски (весь "офис" у меня с русской поддержкой). Но при "вытаскивании" содержимого этих полей в TextBox-ы приложения ,получаю лишь набор ????? и т.д.
    На машине у меня 98-й windows(английский). Помогите ,пожалуйста, разобраться в причине проблемы.По-возможности, пример разрешения подобной ситуации,

    Ответ:

    Автор ответа: Vadim Kotryaga

    Возможно, в проге VB в TextBox используется не русский шрифт. Поменяй например на Arial CYR.

    Вопрос:

    Не могу толком разобраться с построением отчетов мне нужно вот такую штуку. вывести данные в несколько столбцов причем заранее кол-во столбцов неизвестно. Подробней: Есть расписание уроков по дням допустим на 20 групп. они выводятся так,одна группа один столбец. при выводе пользователь отмечает какие группы нужно выводить на принтер, а какие нет. Я пробовал но выводятся все сразу группы. как на лету управлять непонятно ?!

    Ответ:

    Автор ответа: Vadim Kotryaga

    Если все описанное происходит в MS Acceess, то стоит воспользоваться сводной таблицей как источником для отчета.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:

             Сурменок Павел


Выпуск 26.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Subscribe.Ru увеличило максимальный размер рассылки до 100 кб. В связи с этим вопрос:
Какого размера Вы хотели бы получать рассылку?
Менее 20 кб
От 20 до 40 кб
От 40 до 60 кб
От 60 до 80 кб
Выше 80 кб

В какой день (дни) недели Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."?
Понедельник
Вторник
Среда
Четверг
Пятница
Суббота
Воскресение

С какой периодичностью Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."?
Каждый день
2 раза в неделю
Раз в неделю
Раз в две недели
Раз в месяц
Реже

Результаты голосования
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • VB - шаг за шагом
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый 26 выпуск рассылки.
    Читайте!

    Содержание выпуска
    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Как программно вставить рисунок в RichTextBox
    • Получение полного пути exe-файла из его хэндла
    • Как вытащить все ссылки из htm-страницы
    • ASP: Работа с датой
    • Как установить новый шрифт в систему

    • Книги

    • Вопрос/Ответ

    • Анонсы эхо-конференций СообЧа

    • Доска объявлений

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 25.01.2002 05:42 | Раздел: Примеры кода | Автор: SerG

    NetCQ - Давно мечтали написать свой чат? Вот пример, который делает ЭТО! Чат ведется в локальной сети. Ну очень крутой примерчик, на основе которого, можно написать свой чат. Пробуйте, тестируйте. Кстати, обратите внимание на красивое окно About, использующее флеш-анимацию.

    Дата: 25.01.2002 05:34 | Раздел: Статьи по VB | Автор: Appleman Daniel

    Сетевые функции Windows - Начиная писать статью рассказывающую о средствах Windows, для работы с сетью. Я не мог не упомянуть тот факт, что изначально Windows не была сетевой операционной системой. Во времена выхода Windows 1.0 сети ещё не были распространены и не оправдывали своей стоимости. Однако, к появлению Windows 2.0 сети уже стали распространённей, но их работа была основана на DOS. И только после появления Windows for Workgroups и Windows NT, Windows можно считать сетевой операционной системой. Но за это время появилось множество других сетевых операционных систем и каждая из них обладала собственным набором функций API.

    Дата: 24.01.2002 05:41 | Раздел: Примеры кода | Автор: Демин Владимир

    EternalCalendar - Календарь, который не только покажет вам в какой день недели Вы родились, но и нарисует еще и какой была луна! Вы же подозревали, что кто-то из Ваших знакомых родился в полнолуние 13-го в пятницу? Страшно? Пример не до конца написан, но его уже можно использовать в качестве основы для большого приложения на эту тему.

    Дата: 23.01.2002 05:44 | Раздел: Примеры кода | Автор: SerG

    Packager - Вы хотите сделать свой упаковщик для программ? Пример показывает, как можно собрать две программы в один файл без потери работоспособности обеих! Запуств полученный файл Вы запустите все упакованные в него программы!!!

    Дата: 23.01.2002 05:33 | Раздел: VB хитрости | Автор: Шаронов Игорь

    Поиск установленных приложений из пакета MS Office - Иногда для работы вашего приложения требуется знать, какие программы из пакета Microsoft Office уже установлены на клиентском компьютере. Приведенный ниже пример показывает как это сделать средствами Visual Basic.

    Дата: 22.01.2002 05:39 | Раздел: Примеры кода | Автор: Беляев Данила

    CD Player - Проигрыватель CD дисков, сидящий в систрее. Обязательно посмотрите! В состав входит очень интересный OCX компонент для замены стандартного TitleBar. Лично мне пример понравился тем, что музыка играет, а экран не загромождается.

    Дата: 22.01.2002 05:37 | Раздел: Статьи по VB | Автор: Шатрыкин Иван

    Передача файлов через интернет - Internet - одно из самых выдающихся открытий 20 века. В развитых странах мира большинство людей получают самую последнюю информацию из этой сети. Так для чего же нужен Internet? Самое главное предназначение этой сети - передача информации от одного компьютера к другому. Сегодня я хочу рассказать Вам, как можно с помощью стандартных средств Visual Basic получать и передавать информацию через Internet.

    Дата: 20.01.2002 21:15 | Раздел: Статьи по VB | Автор: Сурменок Павел

    Основы SQL - SQL – Structured Query Language (Структурированный язык запросов). Язык SQL - наиболее распространённый язык управления базами данных типа клиент – сервер. Существует несколько разновидностей SQL. Между ними есть небольшие различия, но основа одна и та же...

    Дата: 20.01.2002 08:53 | Раздел: VB хитрости | Автор: Шаронов Игорь

    Изменение свойства Style (стиль) элемента OptionButton - Если вы попытаетесь изменить свойство Style элементов OptionButton и CheckBox во время выполнения программы, вы получите сообщение об ошибке can't assign to read-only property. Для решения этой проблемы вы можете воспользоваться

    Дата: 18.01.2002 16:34 | Раздел: Примеры кода | Автор: Lorang Bart

    MultiUndo - Пример как сделать в своем редакторе неограниченные Undo и Redo. Хорошее решение, лично мне понравился такой конструктивный подход к этой проблеме.

    Дата: 18.01.2002 12:52 | Раздел: Примеры кода | Автор: Беляев Данила

    Basic - Вводите текст, а программа подсвечивает ключевые слова VB

    Дата: 18.01.2002 10:14 | Раздел: Статьи по VB | Автор: Сурменок Павел

    MsFlexGrid - MSFlexGrid контрол используется для вывода табличных данных. Об этом контроле пойдёт речь в этой статье. Контрол MSFlexGrid допускает форматирование текста внутри ячеек и вставка в таблицу картинок. Возможна связь контрола с базой данных. Для подключения контрола MSFlexGrid к проекту откройте меню Project|Components и отметьте пункт “Microsoft FlexGrid control”.

    Последние 20 тем форума на VBNet.Ru:

    05:11 / 25 янв. Чат на этом сайте. (Вопрос ко всем) | Ответов: 0
    03:43 / 25 янв. Примеры условных выражений.Функция IIf. | Ответов: 1
    21:26 / 24 янв. Снова классы и "друзья"... | Ответов: 0
    17:12 / 24 янв. События & Collection | Ответов: 1
    16:44 / 24 янв. Package Wizard! | Ответов: 1
    15:38 / 24 янв. Использование таблиц Access2000 | Ответов: 0
    14:53 / 24 янв. Упаковка (сжатие) файлов | Ответов: 1
    14:20 / 24 янв. Печать документа | Ответов: 1
    14:13 / 24 янв. Перекачка файлов | Ответов: 1
    10:16 / 24 янв. Запуск приложения с AcniveX | Ответов: 1
    01:44 / 24 янв. Новое сообщение без темы | Ответов: 0
    00:36 / 24 янв. Avi на VB | Ответов: 1
    20:22 / 23 янв. параметры в Visual Basic | Ответов: 1
    20:19 / 23 янв. клиент-сервер и media player | Ответов: 0
    20:17 / 23 янв. выполнение команд вне программы | Ответов: 0
    19:39 / 23 янв. Чтение из файла. | Ответов: 2
    18:11 / 23 янв. ЗДРАВСТВУЙТЕ ЛЮДИ ДОБРЫЕ ... | Ответов: 1
    12:01 / 23 янв. Замена строчных букв на заглавные | Ответов: 2
    04:02 / 23 янв. Корень в энной степени, помогите! | Ответов: 1
    00:09 / 23 янв. Новое сообщение без темы | Ответов: 0

    наверх

    Новости сайта VBMania

    • 22.12 - 22 января вышел второй номер он-лайн журнала о Visual Basic 'VB Мания'. В нем можно почитать авторские статьи в уже устоявшихся разделах: Технологии, Система, Графика, Профессия, Человечество и Юмор. Так же не обошлось без новшеств: появился новый раздел dotNET и особенно рецензии ActiveX-компонентов. Обязательно заходите.
    • 17.12 - В связи с тем что форум не горел желаением вести себя так, как должен обычный, порядочный форум, мы его прикрыли для проведения разъяснительных мероприятий. Надеемся, что они не затянутся и форум образумится.
    • 06.12 - С сегодняшнего дня все желающие могут добавлять свои новости и статьи в наши архивы.
      Да здраствует открытость!
    • 27.11 - Наконец-то, после долгих дней и бессонных ночей это свершилось! Сайт объявляется открытым! Непременно прочитайте первый номер нашего журнала. Оцените наши дополнительные проекты. И конечно мы ждем ваших откликов в гостевой книге и по почте.
    • 01.12 - Произошло несколько косметических улучшений, касающихся исключительно удобства работы с сайтом. Во-первых, можно видеть количество записей обсуждения новостей на главной странице; а во-вторых чуточку подправились директории.
      Оценяйте!

    наверх

    Новости сайта Азбука VB

    • 10 января 2001 года
      Интересный пример создания popMenu используя API функции CreatePopupMenu, AppendMenu, DestroyMenu, TrackPopupMenu и GetCursorPos.
      Пример показывает, как можно отлавливать события при нажатии на кнопках в заголовке формы. В примере использовались API функции - CallWindowProc и SetWindowLong.
    • 7 января 2001 года
      RealMid - уникальный пример воспроизведения миди файлов через Direct Sound, при этом звук не зависит от качества звуковой карты.
      Пример проигрывания mp3, wave, midi файлов с ускорением/замедлением скорости средствами библиотеки ActiveMovi входящей в состав Windows.
      Пример программного генерирования миди комманд

    наверх

    Как программно вставить рисунок в RichTextBox

    По материалам сайта     VBcode.FAQ
    Данный пример покажет, как можно программно вставить графический файл в элемент RichTextBox. Наличие событий Form_Load и Form_QueryUnload обязательно, иначе ваш VB-проект просто-напросто "рухнет".

    Private Sub Command1_Click()
    a = RichTextBox1.SelStart
    RichTextBox1.OLEObjects.Add , , "D:\4\add_pictures_to_richtextbox\smile.bmp"
    RichTextBox1.SelStart = a + 1
    RichTextBox1.SetFocus
    End Sub
    Private Sub Form_Load()
    RichTextBox1.OLEObjects.Clear
    End Sub
    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    RichTextBox1.OLEObjects.Clear
    End Sub

    наверх

    Получение полного пути exe-файла из его хэндла

    По материалам сайта     VBcode.FAQ
    Const TH32CS_SNAPPROCESS As Long = 2&
    Const MAX_PATH As Long = 260

    Private Type PROCESSENTRY32
    dwSize As Long
    cntUsage As Long
    th32ProcessID As Long
    th32DefaultHeapID As Long
    th32ModuleID As Long
    cntThreads As Long
    th32ParentProcessID As Long
    pcPriClassBase As Long
    dwflags As Long
    szexeFile As String * MAX_PATH
    End Type

    Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
    Private Declare Function CreateToolhelpSnapshot Lib "Kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlgas As Long, ByVal lProcessID As Long) As Long
    Private Declare Function ProcessFirst Lib "Kernel32" Alias "Process32First" (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
    Private Declare Function ProcessNext Lib "Kernel32" Alias "Process32Next" (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
    Private Declare Sub CloseHandle Lib "Kernel32" (ByVal hPass As Long)

    Public Function GetExeFromHandle(hwnd As Long) As String
    Dim threadID As Long, processID As Long, hSnapshot As Long
    Dim uProcess As PROCESSENTRY32, rProcessFound As Long
    Dim i As Integer, szExename As String
    ' Get ID for window thread
    threadID = GetWindowThreadProcessId(hwnd, processID)
    ' Check if valid
    If threadID = 0 Or processID = 0 Then Exit Function
    ' Create snapshot of current processes
    hSnapshot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0&)
    ' Check if snapshot is valid
    If hSnapshot = -1 Then Exit Function
    'Initialize uProcess with correct size
    uProcess.dwSize = Len(uProcess)
    'Start looping through processes
    rProcessFound = ProcessFirst(hSnapshot, uProcess)
    Do While rProcessFound
    If uProcess.th32ProcessID = processID Then
    'Found it, now get name of exefile
    i = InStr(1, uProcess.szexeFile, Chr(0))
    If i > 0 Then szExename = Left$(uProcess.szexeFile, i - 1)
    Exit Do
    Else
    'Wrong ID, so continue looping
    rProcessFound = ProcessNext(hSnapshot, uProcess)
    End If
    Loop
    Call CloseHandle(hSnapshot)
    GetExeFromHandle = szExename
    End Function

    Private Sub Command1_Click()
    'снимите комментарий, если вы добавили модуль из предыдущего примера
    MsgBox GetExeFromHandle(Me.hwnd)
    End Sub

    наверх

    Как вытащить все ссылки из htm-страницы

    По материалам сайта     VBcode.FAQ
    Нажатие на первую кнопку покажет, как можно вытащить все ссылки из файла, а нажатие на вторую кнопку - как можно вытащить ссылки только определенного типа.
    Но для начала вам надо установить через меню Project | References ссылку на Microsoft Internet Control.
    Также вам необходимо расположить на форме 2 элемента CommandButton и элемент ListBox.

    Private IEBroj1 As SHDocVw.InternetExplorer
    Private Sub Form_Load()
    Set IEBroj1 = New SHDocVw.InternetExplorer
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    IEBroj1.Quit
    Set IEBroj1 = Nothing
    End
    End Sub

    Function Delay(Pause As Single)
    Dim Start As Single
    Start = Timer
    Do While Timer < Start + Pause
    DoEvents
    Loop
    End Function

    Private Sub Command1_Click()
    List1.Clear
    Dim x
    IEBroj1.Navigate "C:\1\index.htm"
    Delay 3 'задержа необходима для загрузки страницы
    'иногда требуется увеличить время загрузки до 30 секунд.
    For i = 1 To IEBroj1.Document.links.length - 1
    List1.AddItem IEBroj1.Document.links(i).href
    Next
    End Sub

    Private Sub Command2_Click()
    List1.Clear
    Dim x
    IEBroj1.Navigate "C:\1\index.htm"
    Delay 3
    For i = 1 To IEBroj1.Document.links.length - 1
    If InStr(1, IEBroj1.Document.links(i).href, ".asp") <> 0 Or InStr(1, IEBroj1.Document.links(i).href, ".htm") <> 0 Then
    List1.AddItem IEBroj1.Document.links(i).href
    End If
    Next
    End Sub

    наверх

    ASP: Работа с датой

    Информация взята с сайта     prosto.pp.ru
    При проверке ввода значения даты на стороне клиента можно использовать функцию JavaScript:

    function CheckDate(str)
    {
    var VEK="20"
    var slen=str.length;
    var begpos=0;
    var yy="", mm="", dd="";
    var year=0, mon=0, day=0, maxday;

    if (slen == 0) return true;

    for(var i=0; i < slen; i++)
    if ((str.charAt(i)<'0' || str.charAt(i)>'9') && str.charAt(i)!='.') return false
    else
    if (str.charAt(i)=='.')
    {
    if (begpos==i)return false;
    if (dd.length==0) { dd=str.substring(begpos,i); begpos=i+1; }
    else
    if (mm.length==0) { mm=str.substring(begpos,i); begpos=i+1; }
    else
    return false;
    }

    if (begpos>=slen) return false;
    yy=str.substring(begpos,slen);
    if (dd.length>2 || dd.length<1) return false;
    if (mm.length>2 || mm.length<1) return false;
    if (yy.length!=4 && yy.length!=2) return false;

    day=dd; mon=mm; year=yy;

    if (mon<1 || mon>12) return false;
    if (day<1 || day>31) return false;
    if (year<1 || year>9999) return false;
    if (yy.length==2) year=VEK+yy;
    if (mon==2)
    {
    maxday=28;
    if (year%400==0 || (year%4==0 && year%100>0)) maxday=29;
    }
    else
    {
    maxday=31;
    if (mon==2) maxday=28;
    if (mon==4 || mon==6 || mon==9 || mon==11) maxday=30;
    }
    if (day>maxday) return false;
    return true;
    }

    При работе с датой в коде ASP-модуля полезными могут оказаться следующие функции:

    ' Преобразует заданную дату в вид: XX <месяц> XXXX года
    Function TextDate(sDate)
    Dim aMonth
    aMonth=Array("января","февраля","марта", _
    "апреля","мая","июня", _
    "июля","августа","сентября", _
    "октября","ноября","декабря")
    TextDate=""
    If IsDate(sDate) Then TextDate=Day(sDate) & " " _
    & aMonth(Month(sDate)-1) & " " _
    & Year(sDate) & " года"
    End Function

    ' Преобразование даты в русский вид представления dd.mm.yyyy [hh:mm:ss]
    ' sDate - значение даты для преобразования
    ' bTime - True - добавлять время при преобразовании
    Function Show_Date(sDate,bTime)
    Show_Date="" ' При неудаче вернет пустую строку
    If IsDate(sDate) Then
    Show_Date=Right("0" & Day(sDate),2) & "." _
    & Right("0" & Month(sDate),2) & "." _
    & Year(sDate)
    If bTime=True Then ' Добавить время
    Show_Date=Show_Date & " " _
    & Right("0" & Hour(sDate),2) & ":" _
    & Right("0" & Minute(sDate),2) & ":" _
    & Right("0" & Second(sDate),2)
    End If
    End If
    End Function

    ' Преобразование даты в американский вид представления mm/dd/yyyy [hh:mm:ss]
    ' strDate - строка со значением даты в русском представлении dd.mm.yyyy [hh:mm:ss]
    ' для преобразования
    Function Conv_To_Eng_Date(strDate)
    Dim n,k,z(3),s
    s=strDate
    z(0)=s
    n=0
    While s<>""
    k=InStr(s,".")
    If k>0 And n<2 Then
    z(n)=Mid(s,1,k-1)
    s=Mid(s,k+1)
    n=n+1
    Else
    z(n)=s
    s=""
    End If
    WEnd
    If n=2 Then
    Conv_To_Eng_Date=Trim(z(1) & "/" & z(0) & "/" & z(2))
    Else
    Conv_To_Eng_Date=Replace(strDate,".","/")
    End If
    End Function

    Функции TextDate() и Show_Date() используем при выводе значения даты на страницу для показа клиенту.
    Функция Conv_To_Eng_Date() полезна при подстановке значения даты в SQL-запрос

    strSQL="SELECT * FROM Users WHERE RegDate>'<%=Conv_To_Eng_Date(strDate)%>'"

    или прямом вводе значения в запись БД

    rs("NewsDate")=DateValue(Conv_To_Eng_Date(sNewsDate))

    В Windows-программировании, существует понятие системной локали. Что такое локаль? В практическом плане это регионозависимый способ представления даты, времени, валют и некоторых других значений в родном для пользователя виде.
    Для локалей существует уникальный идентификатор - LCID. Списки идентификаторов LCID можно найти в MSDN. Например, русская локаль - LCID = 1049, американская - LCID = 1033. Есть также некий буквенный идентификатор, совпадающий порой с ISO-639-2 Alpha-2 (например, 'ru'), а порой и не совпадающий ('us-en'). Этот идентификатор иногда используется вместо числового.
    Что такое MS Office? Это приложение, имеющее ряд настроек для используемых системных локалей. Для русской версии MS Office по дефолту обычно поддерживаются 1033, 1034, 1036, 1049. Полный список можно наблюдать по названиям каталогов, заглянув в Program Files\Microsoft Office\Office.
    Почему версия MS Office не имеет никакого отношения к поддержке локалей в вебсистемах? Потому что используется только ODBC-драйвер, который работает с любыми локалями, задействованными в системе.
    Как устанавливается локаль в вебприложении и БД? Для Access и других "плоских" Jet-баз локаль устанавливается синхронно. То есть пишем

    Session.LCID = 1033 '(US-English)
    или
    Session.LCID = 1049 '(Russian)

    и Access начинает принимать за правильные в первом случае даты формата MM/DD/YYYY, во втором - DD.MM.YYYY. Для SQL Server все несколько сложнее - у него собственная система локалей. Для первого случая в сессии нам пришлось бы в теле запроса написать

    SET LANGUAGE english
    во втором -
    SET LANGUAGE russian

    Самый простой способ вставить дату - это написать 'DD.MM.YYYY'. Такое значение автоматически преобразуется по синхронным локалям в формат datetime непосредственно СУБД (или ее суррогатом под названием MS Jet).
    Пример, иногда встречающийся на иностранных сайтах:
    #MM/DD/YYYY#

    Если мы заглянем чуть глубже в документацию к Microsoft Access, то обнаружим, что это специальный "оригинальный" формат даты и времени, который всегда являет собой US EN (LCID=1033) и не использует синхронных правил преобразования.
    Таким образом, для российских сайтов наилучшим решением является прописывание

    Session.LCID = 1049 '(Russian)

    и использование одинарных апострофов, предполагающих синхронное конвертирование.
    Дополнение: в Script engine 5.5 для чтения и установки локалей можно использовать функции GetLocale и SetLocale. Теперь это работает и в WSH.

    наверх

    Как установить новый шрифт в систему

    Бывает необходимо добавить в систему шрифт. Для его использования не достаточно просто скопировать файл шрифта в C:\WINDOWS\Fonts.

    Необходимо инсталлировать, это выполняет функция API AddFontResource, которая объявляется так:

    Declare Function AddFontResource& Lib "gdi32" Alias "AddFontResourceA" (ByVal lpFileName As String)

    Использование:

    1.Можно файлы шрифтов включить в дистрибутив с помощью встроенных
    возможностей Package & Deployment Wizard .
    В форме:
    2.Потом с, помощью MyFile = Dir("C:\WINDOWS\Fonts\Helvenlt.ttf"),
    проверяем из своей программы, наличие файла в системе:

    If MyFile = "Helvenlt.ttf" Then
    Exit Sub
    Else 'если его нет, то копируем и устанавливаем шрифт.
    'Копируем шрифт в систему
    FileCopy App.Path & "\Helveblt.TTF", "C:\WINDOWS\Fonts\Helvenlt.ttf" 'Необходимо скопировать шрифт в систему
    'Устанавливаем шрифт
    Call AddFontResource("Helvenlt.ttf") 'Команда устанавливает шрифты в систему
    End If
    Текст1.FontName = "HelveticaLT" 'Используем шрифт

    Игорь Малиновский

    наверх

    Книги

    VBA 2000 самоучитель
    В книге содержится краткий курс по использованию языка и системы VBA для Word и Excel 2000. Книга предназначена для начинающих программировать в среде Windows 95/9S с использованием в качестве базовых таких объектов Word и Excel, как документы, рабочие книги, листы и так далее.
    Материала книги достаточно для создания как простых макросов, помогающих автоматизировать рутинную повторяющуюся работу над документами и электронными таблицами, так и для разработки достаточно сложных приложений, обрабатывающих данные в диалоговых окнах, обеспечивающих пользователя самыми современными интерфейсными средствами.

    Кузьменко В.Г., "Бином" - 2000, 408 стр.
    Стоимость: 111,26 р.
    Формат книги: 70х100/16
    Переплет: мягкий

    VBA в Office 2000 учебный курс
    В этой книге описывается Visual Basic for Applications — подмножество популярнейшего языка программирования Visual Basic. Изучив ее материал, вы сможете создавать собственные интегрированные приложения, которые используют как объектные модели стандартных приложений MS Office, так и объектные модели ADO и DAO.
    Книга предназначена для всех пользователей MS Office 2000 —независимо от степени их владения программированием.

    Васильев А., Андреев А., "Питер" - 2000, 432 стр.
    Стоимость: 102,19 р.
    Формат книги: 70х100/16
    Переплет: нет данных

    Visual Basic 6 Desktor экзамен 70-176
    Книги серии "Экзамен — экстерном" представляют собой удобные, сжатые, хорo шо структурированные конспекты для подготовки к сдаче сертификационных экзаменов на звание Microsoft Certified Solution Developer. Книга "Visual Basic 6.0 Desktop. Экзамен— экстерном (экзамен 70-176)" содержит только действительно необходимый материал, типовые вопросы с ответами и пример экзамена. Возможно, некоторые подходы, применяемые автором, покажутся вам не совсем привычными — не удивляйтесь: это не учебник по Visual Basic; организация материала в этой книге призвана максимально облегчить задачу экзаменуемого. Учтите, что в ряде случаев экзаменационные вопросы выходят за рамки тем, отраженных в документации no Visual Basic, а иной раз правильные ответы на них даже входят в противоречие с "официальной" информацией.

    Макдоналд М., "Питер" - 2001, 608 стр.
    Стоимость: 130,83 р.
    Формат книги: 60х90/16
    Переплет: нет данных

    Остальные книги о VB из магазина Колибри можно найти     здесь.

    наверх

    Анонсы эхо-конференций СообЧа

    Игры

    Работа, работа, работа — документы, базы, отчеты… Ну все пора расслабиться: работа не волк — в лес не убежит! Представь себе, у нас есть группа, которая поможет тебе скрасить тяжелые рабочие будни — мы помогаем друг другу играть!!! Обсуждаем все вопросы, которые только могут появиться у любителя игр: к примеру, как поиграть в StarCraft по сети или как написать свой конфиг к QUAKE III, и обсудим еще многое-многое-многое… Новости, ссылки на демки, патчи, обзоры и прохождение игр — все это у нас есть! Есть вопросы — ответим, есть новенький секрет — расскажем! Ну, а если ты супер-геймер, сам бог тебе велел быть с нами!

    Подписаться

    Шифрование

    Встречались ли вы в своей жизни с компьютерными пиратами? Одной из сфер их деятельности является перехват любой информации во время ее пересылки в просторах сети и воровство данных прямо с вашего компьютера. Даже если хакеру и удастся завладеть секретными данными — каково же будет его разочарование, когда он не сможет их прочесть! Давайте же поговорим о шифровании данных с помощью PGP и других алгоритмов...

    Подписаться

    Все о Linux

    Конференция, посвященная ОС Linux, которую имеете или будете иметь вы, а не она вас. Чем больше будет задано вопросов, тем больше будет получено ответов. Количество как известно перерастает в качество... И что приятно, ответы не канут в лету, их всегда можно будет найти в архиве нашей группы... Добро пожаловать!

    Подписаться

    Всё, что связано с пакетом программ MS Office.

    Вы хотели создать красивый документ в Word, но не знаете как форматировать текст? Или же в Excel вам нужно создать сложнейший и, в тоже время, красивый отчет, содержащий тысячи цифр, и вам не хватает для этого возможностей программы? Вам нужно создать базу данных в Access и по ней составлять отчеты или вы не знаете как послать письмо из Oulook? Всё это - от основ форматирования текста до сложнейших работ в таких программах, как MS Access и MS Publisher, - вы можете узнать в нашей группе Soobcha_Office.

    Подписаться

    Мощь и красота С++

    С++ является одним из самых гибких языков программирования. Сочетание низкоуровневых и высокоуровневых средств делает его сильным инструментом в руках программиста. Данная группа призвана помочь программирующим на Си и просто их сблизить. Давайте будем решать проблемы вместе!!!

    Подписаться

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Alexey Yermakov

    Ответ ожидается по этому адресу

    Не могу подобрать событие по которому запускать процедуру. У меня есть файл в Excel-e и в нем сделана WebQuery. Необходимо отслеживать изменеие данных на странице и как только происходит измение запускать процедуру. Событи измение данных не работает при изменении на странице через WebQery, но при этом чудестно отрабатывет при изменеии любой ячейки вручную. Может кто знает, какое событие отвечает за данный тип изменений.

    Автор вопроса: Vlad

    Ответ ожидается по этому адресу

    Подскажите пожалуйста как прочитать содежимое Inbox в MS Outlook. Не могу понять кодировку.

    Автор вопроса: Пётр

    Ответ ожидается по этому адресу

    Возможно ли на VB при помощи какой либо API или функции произвести конвертацию файла из JPG в BMP? Заранее спасибо.

    Автор вопроса: Владимир Капустин

    Ответ ожидается по этому адресу

    Может кто-нибудь подскажет как в VBDOS запрограммировать работу в сети для PCI Lucent Win Modem.

    Автор вопроса: Владимир Капустин

    Ответ ожидается по этому адресу

    1. При установке любой программы (после её закабинечивания мастером упаковки) пишет "неверные линии" в файле Setup.LST как раз там, где указан путь распаковываемых файлов. После сообщения о фатальной ошибке установка ПО прекращается. Пришлось выделить 600 метров диска для установки ещё одной версии Windows SE и VB5. Последняя создаёт нормальную установку, но она не делает кабинетов а файлы *.EX_. Может у кого-нибудь ещё была такая проблема?

    2. Как сделать, что прогамма, выполняющая например 2+2 не занимала 5-7 Мб установки.

    Автор вопроса: Владимир Капустин

    Ответ ожидается по этому адресу

    Как сделать некоторые участки формы прозрачными (что-бы через них можно было видеть Рабочий стол) в VB 3-6.
    Можно ли подключать какие-нибудь скины в программу ?

    Ответы:

    Вопрос:

    Как можно при вызове моей программы получить аргументы из командной строки?

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Можно, и очень просто

    Private Sub Main()
    Dim strArg As String

    strArg = Command()
    End Sub

    вот и все.
    Пример подразумевает, что Main - это стартовая процедура проекта, ну а сами аргументы в переменной strArg. И помните, что в окне свойств проекта Вы можете задавать параметры запуска для отладки в среде.

    Вопрос:

    Как можно при вызове моей программы получить аргументы из командной строки?

    Ответ:

    Автор ответа: Шатрыкин Иван

    Есть замечательная функция:

    Command

    Именно она возвращает строку запуска Вашей программы. Только учтите, что при отладке в IDE она Вам возвратит то, что Вы введете в "command line arguments" в окне "Project Properties / Make". А вот при запуске откомпилированной версии будет все Ok!

    Вопрос:

    Скжите как в VB-5 cделать так, чтоб например при нажатии на клавишу Enter, курсор переходил из отного окна TextBox в другое?

    Ответ:

    Автор ответа: Stasila

    Не знаю как в VB5, а в VB6 работает. Вообщем ставишь на форму 2 текстбокса и в коде формы пишешь:

    Private Sub Text1_KeyPress(KeyAscii As Integer)
    If KeyAscii = vbKeyReturn Then Text2.SetFocus
    End Sub

    Вопрос:

    Скжите как в VB-5 cделать так, чтоб например при нажатии на клавишу Enter, курсор переходил из отного окна TextBox в другое?

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    По-моему, это так. Если нет - читайте описание SendKeys в MSDN или Хелпе.

    If KeyAscii = 13 Then SendKey "{TAB}"

    Вставьте ЭТО в процедуру обработки KeyPress контрола, либо формы, предварительно установив KeyPreview = True.

    Вопрос:

    Скжите как в VB-5 cделать так, чтоб например при нажатии на клавишу Enter, курсор переходил из отного окна TextBox в другое?

    Ответ:

    Автор ответа: Шатрыкин Иван

    Я сделал так:

    Private Sub txtCountry_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then Me.chkNDS.SetFocus
    End Sub

    Если нажата ENTER, то переход на следующий элемент формы, в данном случае это CheckBox под названием chkNDS. Также я осуществляю переход и от других элементов - не только TextBox-ов.
    Есть одно условие - на форме не должно быть никаких кнопок по умолчанию! Т.е. у всех кнопок формы свойство Default в False.

    Вопрос:

    Подскажите пожалуйста как в VBA, открыть нужный текстовой файл, и данные фала отобразить в TextBox?

    Ответ:

    Автор ответа: Дмитрий Данелия

    Dim iFileNo As Integer
    Dim sFileName As String ' помещаешь сюда имя файла

    iFileNo = FreeFile
    Open sFileName For Input As fileno
    Text1.Text = Input(LOF(fileno), fileno)
    Close fileno

    В TextBox не может помещаться больше 64 К. Для больших файлов надо использовать RichTextBox, к тому же он позволяет форматировать, выделять, подчеркивать, раскаршивать, но, естественно, больше весит.

    Вопрос:

    Подскажите пожалуйста как в VBA, открыть нужный текстовой файл, и данные фала отобразить в TextBox?

    Ответ:

    Автор ответа: Stas

    В свойствах TextBox' а меняеш MultiLine на True и ScrollBars на fm ScrollBarsBoth.
    Далее вставляеш код:

    Open "C:\Мои документы\Text.txt" For Input As #1
    Dim nSim As Integer
    nSim = LOF(1)
    TextBox1.Text = Input(nSim, #1)
    Close #1
    Где: "C:\Мои документы\Text.txt" - путь к файлу.

    Вопрос:

    Как сформировать popup menu?

    Ответ:

    Автор ответа: Дмитрий Данелия

    Делаешь элемент меню верхнего уровня MyPopupMenu - снимаешь галочку с опции Visible (оно должно быть невидимым). В этом, невидимом пункте делаешь свое меню, какое тебе нужно. Например, надо вызвать меню по клику правой кнопкой мыши на форме:

    Private Sub Form1_MouseUp(Button As Integer, Shift As Integer, X As Single,
    Y As Single)
    If Button = vbRightButton Then
    PopupMenu MyPopupMenu
    End If
    End Sub

    Вопрос:

    Как сформировать popup menu?

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Создай обычное меню, только верхний уровень сделай невидимым (Visible = False)

    Ну, а по событию MouseUp проверь, какая кнопка мыши нажата, и напиши
    Me.PopUpMenu MyMenu, где MyMenu - имя твоего меню:

    If Button = vbRightButton Then Me.PopupMenu mnuFile

    Вопрос:

    Можно ли в принципе на VB писать DLL с экспортируемыми функциями? Если да, то КАК????? Может есть в VB какой-то спецификатор импорта, типа _declspec(dllexport) ?

    Ответ:

    Автор ответа: Artem

    Вообще-то можно, но они получатся такие тормозные.
    Лучше изучай VC++ и пиши на нем :)

    Вопрос:

    Кто знает как вставить новую строку в ADODB.RecordSet, открытый как adCmdTableDirect, если там( в table) есть поле IDENTITY(счетчик) и в него надо вставить свое значение. При вызове .addnew и присвоении этому полю значения - он ругается.

    Ответ:

    Автор ответа: Шатрыкин Иван

    Ну здрасте я Ваша бабушка ;-). РАЗВЕ можно что-то вставить в поле типа СЧЕТЧИК? Это поле должно формироваться АВТОМАТИЧЕСКИ. ADO его само поставит. И вообще, как Вы можете сами его ставить, если оно должно быть уникально для каждой записи? Если хотите сами делать счетчик, то не просите об этом ADO, сделайте этому полю тип, например, Long, и сами им занимайтесь.

    Вопрос:

    Кто знает как вставить новую строку в ADODB.RecordSet, открытый как adCmdTableDirect, если там( в table) есть поле IDENTITY(счетчик) и в него надо вставить свое значение. При вызове .addnew и присвоении этому полю значения - он ругается.

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Мужик, ты че, с ума сошел???? А ты в Аксесе автонамбер поменять можешь???
    Нет? Так вот и в Айдентити не суйся!!!! (Насколько я понял, это что-то типа MS SQL)

    Вопрос:

    Я работаю над созданием программы на VB 6.0. Как сделать так, чтобы текст из текстового файла копировался в буфер обмена ?

    Ответ:

    Автор ответа: Дмитрий Данелия

    Dim sFileName As String, sText As String
    Dim iFileNo As Integer

    Private Sub Form_Load()
    sFileName = "c:\config.sys"
    iFileNo = FreeFile
    Open sFileName For Input As iFileNo
    sText = Input(LOF(iFileNo), iFileNo)
    Close iFileNo
    Clipboard.SetText sText
    End Sub

    ' Получить текст из Буфера Обмена
    Private Sub Form_Click()
    Text1.Text = Clipboard.GetText
    End Sub

    Вопрос:

    Я работаю над созданием программы на VB 6.0. Как сделать так, чтобы текст из текстового файла копировался в буфер обмена ?

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Есть такой объект, называется Clipboard.
    Есть методы SetText и GetText, ну, и конечно же Clear. Открой свой файл как текстовый, можешь читать хоть построчно, слей в переменную, желательно строковую :) , а потом напиши

    Clipboard.SetText strMyString

    Вопрос:

    Я работаю над созданием программы на VB 6.0. Как сделать так, чтобы текст из текстового файла копировался в буфер обмена ?

    Ответ:

    Автор ответа: Владимир Капустин

    Откройте текстовый файл как Binary (Random) и скачайте из него информацию.
    OPEN UserFile FOR BINARY AS #1
    FileLength = LOF(1)
    VariableString$ = STRING$(FileLength, " ")
    GET #1, 1, VariableString$
    CLOSE 1
    2. Скопируйте её в буфер
    ClipBoard.SetText VariableString$

    Вопрос:

    Я работаю над созданием программы на VB 6.0. Как сделать так, чтобы текст из текстового файла копировался в буфер обмена ?

    Ответ:

    Автор ответа: Шатрыкин Иван

    Очистить буфер - Clipboard.Clear
    Положить текст в буфер - Clipboard.SetText Text1.Text
    Вставить текст из буфера - Text1.Text = Clipboard.GetText
    Положить картинку в буфер - Clipboard.SetData Picture1.Picture
    Вставить картинку из буфера - Picture1.Picture = Clipboard.GetData

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 27.

VBNet
  • Библиотека кодов
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Subscribe.Ru увеличило максимальный размер рассылки до 100 кб. В связи с этим вопрос:
Какого размера Вы хотели бы получать рассылку?
Менее 20 кб
От 20 до 40 кб
От 40 до 60 кб
От 60 до 80 кб
Выше 80 кб

В какой день (дни) недели Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."?
Понедельник
Вторник
Среда
Четверг
Пятница
Суббота
Воскресение

С какой периодичностью Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."?
Каждый день
2 раза в неделю
Раз в неделю
Раз в две недели
Раз в месяц
Реже

Результаты голосования
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • VB - шаг за шагом
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Внимание!!! Частота выхода рассылки увеличилась! Теперь рассылка будет выходить два раза в неделю по понедельникам и пятницам. В пятничном выпуске будут размещаться примеры, советы и раздел Вопрос/Ответ. Количество публикуемого материала увеличится. А в понедельник в рассылке будут публиковаться новости VB-сайтов, новые темы форума VBNet, анонсы новых книг на VBNet и т.д.
    Читайте!

    Содержание выпуска
    • Пример использования (вызова) файла HTML Help из программы на Visual Basic
    • Определение "ухода" и "возвращения" в программу
    • Условная компиляция
    • ASP: Особенности передачи параметров в формах
    • Как данные из файла перекинуть в массив
    • Проверка на наличие некорректных символов

    • Вопрос/Ответ

    Пример использования (вызова) файла HTML Help из программы на Visual Basic

    Данный пример довольно прост - имеет всего три шага, но довольно часто задается нашими читателями, создающими справочные файлы для своих приложений. Итак, вот что нужно для отображения в вашей программе файла Справки myfile.chm:

    'Объявим переменную.
    Const HH_DISPLAY_TOPIC = &H0
    'Объявим API-функцию HtmlHelp.
    Declare Function HtmlHelp Lib "hhctrl.ocx" Alias "HtmlHelpA" (ByVal hwndCaller As Long, ByVal pszFile As String, ByVal uCommand As Long, ByVal dwData As Long) As Long
    'Создадим вызов HtmlHelp
    Private Sub HH_DISPLAY_Click()
    Dim hwndHelp As Long
    'hWnd - переменная типа Long, содержащая указатель формы,
    'которое будет родительским к окну справки
    'hwndHelp - будет содержать указатель созданного окна Справки
    hwndHelp = HtmlHelp(hWnd, "myfile.chm", HH_DISPLAY_TOPIC, 0)
    End Sub

    наверх

    Определение "ухода" и "возвращения" в программу

    Иногда требуется определить, когда ваша программа потеряла фокус, то есть стала неактивной в данной момент программой. Также этот пример показывает момент активизации вашей программы.
    В данном примере вам обязательно потребуется дополнительный модуль, в который вы должны вписать следующий код:

    Private Const WM_ACTIVATEAPP = &H1C
    Private Const GWL_WNDPROC = (-4)
    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Private m_lWndProc As Long
    Public Sub WindowHook(hWnd As Long)
    m_lWndProc = SetWindowLong(hWnd, GWL_WNDPROC, AddressOf MessageCenter)
    End Sub
    Public Sub WindowFree(hWnd As Long)
    SetWindowLong hWnd, GWL_WNDPROC, m_lWndProc
    End Sub
    Private Function MessageCenter(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    If Msg = WM_ACTIVATEAPP Then
    If wParam Then
    Form1.OnAppActivate
    Else
    Form1.OnAppDeActivate
    End If
    End If
    MessageCenter = CallWindowProc(m_lWndProc, hWnd, Msg, wParam, lParam)
    End Function

    А в события формы впишите следующий код

    Private Sub Form_Load()
    WindowHook hWnd
    End Sub
    Public Sub OnAppActivate()
    MsgBox "Добро пожаловать назад!"
    End Sub
    Public Sub OnAppDeActivate()
    MsgBox "Покидаете программу?"
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    WindowFree hWnd
    End Sub

    наверх

    Условная компиляция

    Решил донести до вас правду об условной компиляции.
    Есть в бэйсике такая штука. Удобная временами.
    Что означает условная и для чего это надо в принципе?
    Например, у вас есть программа, которая должна работать как демо-версия и как полная версия.
    Прекрасно, вы можете распространять полный код, делая в нем проверку, какой тип версии сейчас запущен. Однако вам боязно: вдруг сломают? Условная компиляция - это возможность не включать в код ненужные блоки. Или, более приближенный к боевым условиям пример: В программе полно отладочной информации - не тащить же ее в реальный проект. Убрать - раз плюнуть, но в какой-то момент может и пригодится.
    Условная компиляция дает нам возможность избежать хранения отдельных версий в виде разных проектов.
    Вот вам для начала пример.
    В модуле создаем паблик-процедуру:

    Public Sub WriteLog(MSG As String)
    Dim iFileNum As Long
    const LogName = "AppLog" ' эту константу стоит убрать в область деклараций модуля
    iFileNum = FreeFile
    Open App.Path & "\" & LogName For Append As iFileNum
    Print #iFileNum, Format(Now, "mm/dd hh:nn:ss") & " " & MSG
    Close #iFileNum
    End Sub

    Процедура делает элементарные вещи. Открывает файл для записи и пишет туда что попросили. Штука полезная для программ, работающих самостоятельно, без участия человека.
    Как будем ее вызывать:

    #if isLog then
    writelog "Сообщение для записи"
    # endif

    После чего идем в свойства проекта и в закладке Make ищем поле для записи, обозначенное как Conditional Compilation Arguments и вписываем туда

    islog = 1

    В этом случае после компиляции код будет содержать вызов процедуры для записи в лог-файл. Если же перед компиляцией изменить настройки

    islog = 0,

    код вызова включен не будет.

    Можно писать туда несколько переменных islog (под любым именем), разделяя каждую двоеточием :

    наверх

    ASP: Особенности передачи параметров в формах

    Информация взята с сайта     prosto.pp.ru
    При обработке параметров форм возникает особая ситуация, когда передаваемые значения содержат символы "(кавычки) и/или '(апостроф).
    Пусть, для примера, форма имеет вид:

    <%' принятое значение%>
    <%sTest=Request.QueryString("Test")%>
    <FORM>
    <INPUT TYPE="Text" NAME="Test"
    VALUE="<%=sTest%>">
    <INPUT TYPE="Submit" VALUE="Тест">
    </FORM>

    Т.е. форма получает параметр сама от себя. Все будет хорошо, пока введенная строка не содержит символа "(кавычки). Считанный параметр Test приведет к тому, что тег Test примет вид типа

    <INPUT TYPE="Text" NAME="Test" VALUE="aaa"bbb">

    Как видно налицо разрушение значения VALUE - бровзер отобразит только aaa - в результате параметр станет неверен. Такая же ситуация возможна при использовании символа '(апостроф) для задания значения (VALUE='').
    Для исключения подобных эффектов можно применить следующие функции:

    ' Замена в строке " на кавычки("); ' на апостроф(')
    Function Repl_Load_HTML(str)
    Repl_Load_HTML=Replace(str&"",""","""")
    Repl_Load_HTML=Replace(Repl_Load_HTML,"'","'")
    End Function

    ' Замена в строке кавычек(") на " амперсанда(') на #39;
    Function Repl_Teg_HTML(str)
    Repl_Teg_HTML=Replace(str&"","""",""")
    Repl_Teg_HTML=Replace(Repl_Teg_HTML,"'","'")
    End Function

    При их использовании форма приобретает вид:

    <%' принятое значение%>
    <%sTest=Repl_Load_HTML(Request.QueryString("Test"))%>
    <FORM>
    <INPUT TYPE="Text" NAME="Test"
    VALUE="<%=Repl_Teg_HTML(sTest)%>">
    <INPUT TYPE="Submit" VALUE="Тест">
    </FORM>

    Полезными для при решении подобных проблем можут оказаться методы Server.HTMLEnCode и Server.URLEnCode. При работе с JavaScript на стороне клиента - escape и unescape.

    наверх

    Как данные из файла перекинуть в массив

    Очень часто я сталкиваюсь с такой ситуацией, когда нужно данные из файла или длинной переменной разбить на отдельные составляющие, одновременно "загоняя" эти данные в массив данных. На самом деле, решение такой проблемы очень простое: открыть файл, присвоить переменной содержимое файла и с помощью функции SPLIT разбить переменную на отдельные элементы.

    Private Sub Command1_Click()
    Dim txt
    Dim FN As Integer
    FN = FreeFile
    Dim FName As String
    FName = "D:\1.txt"
    'открыть файл
    Open FName For Input As #FN
    'присвоить переменной содержимое файла
    txt = Input(LOF(FN), #FN)
    'закрыть файл
    Close #FN
    'создать нулевой массив
    Dim str1() As String
    'создать отдельные элементы массива
    'вместо постоянной vbCrLf можно использовать любой разделить
    str1 = Split(txt, vbCrLf)
    'перебор элементов массива идет от 0 до n-1
    For i = 0 To UBound(str1()) - 1
    'вот, собстенно, и проверка
    MsgBox str1(i)
    Next
    End Sub

    наверх

    Проверка на наличие некорректных символов

    Данный пример проверяет строковую переменную на наличие в ней определенных символов. Добавьте на форму CommandButton и TextBox. Вы можете определить те символы, наличие которых вы хотите проверить в строковой переменной в переменной BadChars$.

    Function IsValidString(StringToTest As String, Invalid As String)
    For X = 1 To Len(Invalid)
    If InStr(1, StringToTest, Mid$(Invalid, X, 1), 0) Then
    IsValidString = False
    Exit Function
    End If
    Next X
    IsValidString = True
    End Function

    Private Sub Command1_Click()
    Dim MyString As String
    MyString = Text1.Text
    'Замените '@#$%^&' теми символами, которые вы хотите проверить
    BadChars$ = "@#$%^&"
    X = IsValidString(MyString, BadChars$)
    If X Then
    MsgBox "Это нормальная переменная"
    Else
    MsgBox "Это НЕнормальная переменная"
    End If
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Мунгалов Андрей

    Ответ ожидается по этому адресу

    В программах 1С очень удобные отчеты. можно ли их прицепить к своей программе на VB. и можно ли их таскать со свой программой (без установки всего предприятия). Я пробовал добавить ссылку на Moxel.dll, ругается.

    Автор вопроса: sewa

    Ответ ожидается по этому адресу

    Как вывести результаты расчета из программы в текстовый файл с расположением данных по горизонтали (в ряд через промежуток) и добавлением записи в конец файл после уже существующих записей?

    Автор вопроса: Лися aka FOX

    Ответ ожидается по этому адресу

    Подскажите где можно скачать толковую книгу по VB или VBA, а желательно две,по ним обоим.

    Автор вопроса: Константин

    Ответ ожидается по этому адресу

    Подскажите, как программно позвонить по телефону?

    Ответы:

    Вопрос:

    1. При установке любой программы (после её закабинечивания мастером упаковки) пишет "неверные линии" в файле Setup.LST как раз там, где указан путь распаковываемых файлов. После сообщения о фатальной ошибке установка ПО прекращается. Пришлось выделить 600 метров диска для установки ещё одной версии Windows SE и VB5. Последняя создаёт нормальную установку, но она не делает кабинетов а файлы *.EX_. Может у кого-нибудь ещё была такая проблема?

    2. Как сделать, что прогамма, выполняющая например 2+2 не занимала 5-7 Мб установки.

    Ответ:

    Автор ответа: Шатрыкин Иван

    1. Одно из решений проблемы - при создании дистрибутива измените системные
    чзыковые настройки Windows на американский формат. Второе решение - почитать
    статью "Package & Deployment Wizard. Досадная ошибка" на сайте www.vbnet.ru

    2. Нельзя! Не будет работать.

    Вопрос:

    Как сделать некоторые участки формы прозрачными (что-бы через них можно было видеть Рабочий стол) в VB 3-6.
    Можно ли подключать какие-нибудь скины в программу ?

    Ответ:

    Автор ответа: Шатрыкин Иван

    Устал повторять, что на сайте www.vbnet.ru есть моя статья про создание таких окон.
    http://www.vbnet.ru/articles/showarticle.asp?id=22
    Почитайте! Там все рассказывается.

    Вопрос:

    Кто знает как вставить новую строку в ADODB.RecordSet, открытый как adCmdTableDirect, если там( в table) есть поле IDENTITY(счетчик) и в него надо вставить свое значение. При вызове .addnew и присвоении этому полю значения - он ругается.

    Ответ:

    Автор ответа: Дмитрий Данелия

    Во-первых, если Recordset создается программно, то такая вставка делается любым способом:
    Есть База - c:\temp\db1.mdb, в ней таблица Tabl, а в ней два поля: f1 - счетчик и f2 - строка

    Dim rs As ADODB.Recordset
    Dim cn As ADODB.Connection
    Dim com As ADODB.Command

    Private Sub Form1_Load()
    Set cn = New ADODB.Connection
    Set rs = New ADODB.Recordset
    Set com = New ADODB.Command

    cn.CursorLocation = adUseClient
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=c:\temp\db1.mdb", "Admin", ""

    ' хоть с помощью ADODB.COMMAND
    With com
    .ActiveConnection = cn
    .CommandText = "INSERT INTO Tabl (f2) VALUES ('Запись2')"
    .Execute
    End With

    ' хоть с помощью ADODB.RECORDSET
    With rs
    .ActiveConnection = cn
    .LockType = adLockOptimistic
    .Source = "SELECT * FROM Tabl"
    .Open

    .AddNew
    .Fields(0) = 3
    .Fields(1) = "Запись3"
    .Update
    .Close
    End With

    Set com = Nothing
    Set rs = Nothing
    Set cn = Nothing

    End Sub

    Если же у тебя на форме висит ADODC-контрол, с чьим Recordset-ом ты работаешь, то тут у меня получается интересная штука - если на форме только один ADODC - не получается, но если я кладу на форму TextBox и устанавливаю его свойства
    DataSource = Adodc1
    DataField = f2 (а можно и f1), то добавление происходит без проблем
    With Adodc1.Recordset
    .AddNew
    .Fields(0) = 4
    .Fields(1) = "Запись4"
    .Update
    End With

    Естественно, если ты задаешь значение для поля Счетчик, то оно должно быть уникальным - это уже ложится на тебя, ну а если не задаешь, то не очем беспокоиться, Microsoft Jet сам присвоит ему уникальный номер.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 28.

VBNet
  • Библиотека кодов
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Subscribe.Ru увеличило максимальный размер рассылки до 100 кб. В связи с этим вопрос:
Какого размера Вы хотели бы получать рассылку?
Менее 20 кб
От 20 до 40 кб
От 40 до 60 кб
От 60 до 80 кб
Выше 80 кб

В какой день (дни) недели Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."?
Понедельник
Вторник
Среда
Четверг
Пятница
Суббота
Воскресение

С какой периодичностью Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."?
Каждый день
2 раза в неделю
Раз в неделю
Раз в две недели
Раз в месяц
Реже

Результаты голосования
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый 8 выпуск рассылки.
    Читайте!

    Содержание выпуска
    • Citycat by Email

    • Новости сайта VBNet
    • Библиотека кодов
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Книги

    • Анонсы эхо-конференций СообЧа

    • Доска объявлений

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 02.02.2002 13:11 | Раздел: Статьи по VB | Автор: Эскин Михаил

    Обзор некоторых особенностей элементов управления библиотеки FM20.DLL - В данной статье я хочу познакомить Вас с библиотекой FM20.DLL. Не то чтобы Вы ее не знали, скорее всего, открывали, видели, что она повторяет стандартные элементы управления, и забывали про нее.

    Дата: 01.02.2002 09:38 | Раздел: Статьи по VB | Автор: Шатрыкин Иван

    Работа с Microsoft Agent в Visual Basic - Многим из вас, наверное, уже приглянулся один из персонажей Microsoft Agent. Agent, на мой взгляд - это достаточно любопытное нововведение фирмы Microsoft, а стандартная поставка ядра Agent с Windows 2000, Me и XP делает использование этой технологии в ваших программах перспективным. На сайте Microsoft доступен бесплатный редактор для создания новых персонажей Agent, а в интернете появляются сайты, на которых представлены большие коллекции персонажей. Что же мешает программистам более активно использовать Agent в своих разработках? Скорее всего, незнание этого замечательного компонента. В этой статье я попытаюсь рассказать о работе с ним.

    Дата: 01.02.2002 06:52 | Раздел: Статьи по VB | Автор: Эскин Михаил

    Visual Basic позволяет использовать Текстовый файл, как база данных. - Довольно часто случается, что в программе необходима маленькая база данных (записей на 50-200, не более). Так что же? Брать mdb-шный файл (что само по себе "кусаемо" по объемам) плюс привязывать к нему для работы библиотеки ADO (или DAO). Не слишком ли "жирно" для 50 записей?

    Дата: 31.01.2002 04:04 | Раздел: Статьи по VB | Автор: Сартин Вячеслав

    Введение в ADO+ (FAQ) - ADO+ - это новое поколение технологии доступа к данным от Microsoft. ADO+ была разработана с учетом распределенных и интернет приложений. ADO+ обеспечивает мощную поддержку XML и автономную обработку данных. В этой статье пойдёт речь о ADO+.

    Дата: 30.01.2002 15:17 | Раздел: Статьи по VB | Автор: Сартин Вячеслав

    Использование ADODC совместно с DBGrid - Настало время рассмотреть и самый важный для программистов баз данных контрол - Data Grid. Все данные в базе данных хранятся в виде таблиц, вследствие этого, работа с ними выглядит более естественной, если мы представляем их в качестве таблицы. Классическим примером грида может служить Excel. Преимущество использования гридов для отображения данных неоспоримо, но в большинстве случаев его используют из-за возможности компактного просмотра огромного массива данных. За сим вступительную часть будем считать законченной и приступаем непосредственно к изучению, входящего в стандартную поставку от Microsoft грида - Data Grid.

    Дата: 29.01.2002 06:34 | Раздел: Статьи по VB | Автор: Сурменок Павел

    Работа с массивами - В Visual Basic, как и в других языках программирования можно использовать массивы. Об основах работы с массивами и пойдёт речь в данной статье.

    Дата: 26.01.2002 05:46 | Раздел: Примеры кода | Автор: Беляев Данила

    Titler - Множество возможностей в одном примере: как сделать градиентную заливку в заголовке окна, как сделать такую же заливку для Progress Bar! Все скомпановано в виде контролов с исходниками. Мне пример понравился, не знаю как Вам.

    Дата: 26.01.2002 05:45 | Раздел: Примеры кода | Автор: Беляев Данила

    Telephone Book - Телефонная книжка! Сохраняет данные в обычном текстовом файле. Встроена возможность набора номера для выбранной записи. В комплекте три интересных OCX с исходниками. Сделано просто, но с большой любовью ;-)

    Последние 20 тем форума на VBNet.Ru:

    02:56 / 3 фев. Вызов процедуры | Ответов: 0
    21:53 / 2 фев. Кому нужна прога? | Ответов: 3
    21:19 / 2 фев. Параметры Access'а | Ответов: 0
    20:23 / 2 фев. Подключение к Интернету | Ответов: 1
    20:23 / 2 фев. Подключение к Интернету | Ответов: 1
    12:25 / 2 фев. Как изменить значение перем-й чужой проги? | Ответов: 1
    11:33 / 2 фев. Помогите - Swiftsoft Multimedia !!! | Ответов: 0
    11:12 / 2 фев. Как сделать паузу в проге не используя Timer | Ответов: 1
    00:19 / 2 фев. Новое сообщение без темы | Ответов: 1
    17:07 / 1 фев. открытие файлов | Ответов: 1
    16:59 / 1 фев. Titler Gluks | Ответов: 1
    16:35 / 1 фев. MS Office : Помощник | Ответов: 1
    10:46 / 1 фев. Как отследить запуск программ? | Ответов: 2
    09:58 / 1 фев. как найти текст в рекордсете | Ответов: 1
    23:56 / 31 янв. привязка ПРОГИ к тачке !!! Помогите плиз!!! | Ответов: 2
    21:59 / 31 янв. Работа с панелью управления | Ответов: 1
    19:25 / 31 янв. Source Code | Ответов: 1
    07:10 / 31 янв. Помогите, кто знает !!! | Ответов: 1
    21:20 / 30 янв. Зжатие | Ответов: 1
    16:52 / 30 янв. gethostbyaddr - как использовать? | Ответов: 1

    наверх

    Библиотека кодов

    С вами Игорь Шаронов, ведущий раздела "Библиотека кодов" сайта VBnet.RU

    Предлагаю вашему вниманию полный список всех примеров из этого раздела. Хочу сразу отметить, что данный раздел представляет текстовые версии примеров программирования на VB. Все примеры разбиты по категориям, так что разобраться где-что не составит труда. На данный момент в разделе 238 примеров на все случаи жизни. На подходе еще около 100 примеров по использованию контролов и элементов управления. Раздел обновляется раз в неделю, количество необработанного материала еще велико. О появлении нового материала вы будете узнавать из рассылки.

    Вы всегда сами можете получить список всех примеров раздела, зайдя на страницу полного списка примеров.

    Вот, пожалуй, и все! Заходите, смотрите, пользуйтесь. По всем вопросам размещения новых примеров, пишите мне или любому модератору сайта.

    Работа с контролами

    Стандартные свойства любого контрола
    Добавить контрол во время выполнения программы
    Отцентрировать контрол на форме
    Создание формы или контрола произвольной формы

    Работа с меню

    Выравнивание меню направо/налево
    Переключение между пунктами подменю
    Добавить 3D-Line под Меню
    Положить картинку в меню
    Изменить цвет фона меню
    Динамическое создание PopupMenu
    Положить разделить в меню

    Работа с формой

    Прилипание формы к границам экрана
    Различный вид формы
    Размещение окна у основания Панели задач
    Эффекты при закрытии формы
    Использование InputBox для ввода секретной информации
    Основы работы с формой
    Заблокировать кнопку X на форме
    Как заблокировать действия кнопок управления формой
    Сделать вашу форм поверх всех
    Прорисовка системных иконок на форме
    Затемнение кнопки 'закрыть' и одновременное удаление системного меню
    Как перетаскивать форму за любое место
    Создание всплывающей панели
    Создать градиент-форму #2
    Ограничить перемещение одной формы в пределах другой
    Выравнивание формы относительно экрана
    Определить, загружена ли форма
    Спрятать/показать панель заголовка
    Создать Gradient-форму (с использованием API)
    Создать градиент-Title Bar

    Мышь и клавиатура

    Как определить, какая клавиша нажата?
    Как сэмулировать нажатия определенных клавиш
    Подсчет нажатий на кнопки мыши
    Тип клавиатуры
    Переключение раскладки клавиатуры (Ru-En)
    Какая раскладка клавиатуры включена в данный момент
    Как сэмулировать нажатия определенных клавиш
    Как сэмулировать блокировку клавиатуры
    Определить, какие клавиши мыши нажаты
    Одновременное нажатие нескольких клавиш
    Состояние функциональных клавиш
    Поменять программно кнопки мыши
    Получить количество кнопок мыши
    Проверить, существует ли мышь
    Получить координаты курсора
    Получить скорость повтора ввода символов
    "Заморозить"/"Разморозить" курсор мыши
    Курсор: Перемещение, центрирование, имитация нажатия
    Скрыть/показать курсор мыши
    Получить время двойного клика
    Использование анимационного курсора
    Центрирование курсора на элементе
    Определить над каким элементом находится курсор мыши
    Как показать песочные часы во время работы программы
    Ограничить передвижение мыши

    Переменные, массивы, числа

    Как передать функции массив
    Формирование из числа его "строковое" представление
    Генерация последовательности чисел от n до n+m
    Как сгенерировать n-значное число
    Как поменять местами значение двух переменных
    Проверка на наличие некорректных символов
    Смена значения булевой переменной на противоположное
    Как перевести числовое значение типа Byte в тип Binary
    Как данные из файла перекинуть в массив
    Как объявлять массивы (глобально и локально)

    Работа с текстом, датами

    Операции "копировать", "вырезать", "вставить".
    Сравнение текстовых строк
    Конвертирование текста в верхний/нижний регистр
    Поиск и замена
    Определить кодировку текста (Dos или Win)
    Подсчитать количество определенных символов в тексте
    Примеры работы с датами
    Форматирование числа при выводе (заполнение до определенной длины)
    Захват текста из любого текстового поля
    Послать строковое сообщение в другую программу
    Перекодировка текста из DOS в Windows формат
    Перевод текста ANSI -> OEM
    Убрать двойные пробелы во всем тексте

    Окна и операции с ними

    Заблокировать/Разблокировать любое окно в Win95/98/NT
    Переключение в определенное окно
    Изменение заголовка любого окна
    Автоматическое закрытие окна
    Поменять заголовки всех активных окон
    Найти любое окно
    Поиск hwnd процесса на панели задач
    Получение полного пути exe-файла из его хэндла
    Нахождение hwnd чужих окон
    Получение имен классов и всех заголовков активных окон

    Работа с файлами/директориями

    Найти TEMP-директорию и создать новый .tmp-файл
    Три пути создания папки
    Как проверить, существует ли директория?
    Функция удаления директории со всем содержимым
    Установить папку, открываемую "по умолчанию"
    Удаление папки с помощью API функции RemoveDirectory
    Получение сведений о папке (с использованием FileSystemObject)
    Получение даты последней коррекции файла
    Рекурсивный перебор все подпапок в указанной папке
    Получить размер файла
    Сравнить два файла на идентичность
    Копирование, перемещение, удаление файла
    Сохранение rtf-файла в htm-файл
    Получить DOS-имя файла
    Использование функции SHGetFileInfo
    Удаление файла в корзину
    Получение сведений о файле
    Изменение атрибутов файла (GetFileAttributes)
    Как программно вызвать окно свойств (Properties) файла
    Получить атрибуты файла (GetFileAttributes)
    Создание индекса htm-файлов
    Конвертация размера файла (байты в кило-, мегабайты)
    Изменение атрибутов файла
    Изменить дату последней модификации файла
    Изменение расширений всех файлов в папке
    Как получить имя файла или его расширение, зная полный путь файла
    Получить размер директории
    Существует ли файл?

    Базы данных (DAO, ADO, ODBC)

    Вариант решения проблемы NULL
    Программное сжатие базы данных
    Создание базы данных (*.mdb)
    Сохранение файла в БД и получение его обратно из БД
    Пример создания базы данных кодом

    Общие вопросы работы с программой

    Программа удаляет себя сама
    Как убрать программу из списка Ctrl+Alt+Del
    Открытие приложения на весь экран (full screen mode)
    Запустить программу и дождаться завершения его работы
    Подсчитать количество копий запущенной программы
    Как узнать, когда завершилось запущенное приложение
    Как разместить иконку программы в TrayBar
    Старт(удаление) приложения при запуске Windows
    Спрятать программу из Панели Задач
    Использование функции MessageBox в программе
    Пример вызова справки из вашего приложения
    Связать расширение файла с приложением
    Условная компиляция
    Как в программе переждать паузу между выполнениями команд
    Требовать подтверждения при выходе из программы
    Активация ранее запущенной этой же программы
    Обрушить вашу программу
    Установить горячие клавиши для вызова программы
    Запретить запуск двух копий программы
    Проверка новых версий программы через Интернет
    Использование текста в качестве кода программы
    Определение "ухода" и "возвращения" в программу
    Работа с командной строкой в программе
    Запустить приложение, ассоциированное с расширением файла

    Информация о компьютере

    Вызвать окно "Форматирование: Диск А:"
    Функции для работы с памятью компьютера
    Примеры работы с BIOS
    Установить новую дату и время на компьютере
    Определение появления и изымания компакт-диска
    Вызов окна "Свойство COM1" и "Настройка параллельного порта"
    Сколько цветов может отобразить видеокарта
    Получить список доступных портов
    Проверить наличие дискеты или CD-Rom'а в устройстве
    Получить количество заданий принтера
    Узнать количество свободного места на диске
    Открыть/закрыть CD-ROM
    Просмотреть все устройства и определить их тип
    Изменить метку диска/устройства
    Получить сведений о любом диске: Floppy Disk/CD/Hard Drive
    Определить количество процессоров в компьютере
    Как определить серийный номер для диска
    Получить имя принтера по умолчанию

    Мультимедиа (звук, видео и т.д.)

    Проиграть Avi-файл в Picture Box
    Как воспроизвести звук и видео
    Получить информацию из тэга MP3-файла
    Как изменить разрешение экрана
    Функции для работы с джойстиком

    Работа с WINDOWS

    Получить список запущенных процессов
    Получить имя компьютера и имя текущего пользователя
    Установить скорость выпадания меню кнопки ПУСК
    Включить/выключить панель задач Windows
    Очистить/показать содержимое корзины
    Как узнать значения кодовых таблиц
    Как узнать, какая операционная система установлена: Win98 или NT
    Определить, как долго запущена Windows
    Определить способ запуска Windows
    Определение рабочей области Windows
    Выключение/перезагрузка Windows
    "Заморозить" Windows
    Добавить ссылку или удалить все ссылки в меню Пуск|Документы
    Спрятать/Показать кнопку "Пуск"
    Возвращение путей различных каталогов
    Определение местоположение TaskBar
    Запуск сервисов Панели Управления
    Минимизировать все окна
    Примеры по работе с хранителем экрана
    Получение сведений о зарегистрированных типах файлов в системе
    Получение списка расширений, зарегистрированных в системе файлов
    Получить описание любого файла: exe, dll или…
    Использование специальной клавиши клавиатуры
    Определить, использует ли компьютер большие или маленькие шрифты
    Получить имя шрифта заголовка активного окна
    Получить список запущенных приложений
    Использование функции Environ
    Как заблокировать сочетания клавиш Ctrl+Alt+Del и Alt+Tab
    Местоположение системных папок
    Изменение внешнего вида кнопки ПУСК
    Разложить все иконки на рабочем столе по порядку (один за другим)
    Включен ли активный рабочий стол
    Как сменить рисунок рабочего стола
    Скрыть/показать иконки рабочего стола
    Получение информации о Windows, используя GetSystemInfo.
    Заблокировать кнопку ПУСК

    Интернет/Почта/Сеть

    Как загрузить файл из интернета
    Получение сведений из web-страницы
    Запуск почты и web-узла
    Имя текущего соединения с инетом
    Получение списка всех интернет-соединений
    Интернет: онлайн или офлайн
    Где в реестре хранятся все интернет-соединения
    Определить дату изменения web-страницы
    Получить IP адрес
    Как программно отсоединиться от Интернета
    Вызвать окно "Установка связи с Интернетом"
    Подключение/отключение сетевого диска
    Является ли строковая переменная e-mail-адресом
    Определение имени или IP-адреса удаленного компьютера в сети
    Создать ссылку на страницу в Интернете
    Определение имени текущего домена и имени пользователя
    Запрещение запуска дополнительных окон IE
    Автозавершение набора URL
    Получение URL из адресной строки Microsoft Internet Explorer
    Добавить сайт в список "Избранное"
    Практические советы по использованию компонента WebBrowser
    Как вытащить все ссылки из htm-страницы
    Как сохранить содержимое web-страницы на диск
    Напечатать Web-страницу

    Работа с MsOffice + VBA

    Поиск установленных приложений из пакета MS Office
    VBA | Word
    VBA | Excel

    Работа с Common Dialog

    Дополнение: Открытие стандартного окна выбора папок/файлов
    Диалог "Открытие файла" без использования OCX
    Работа с элементами CommonDialog библиотеки Comdlg32.dll
    Открытие стандартного окна выбора папок/файлов

    наверх

    Новости сайта VBMania

    • 25.01 - Сегодня открылся новый раздел, в котором вы можете найти ссылки на целую кучу книг по тематике VB и около него.
    • 22.01 - 22 января вышел второй номер он-лайн журнала о Visual Basic 'VB Мания'. В нем можно почитать авторские статьи в уже устоявшихся разделах: Технологии, Система, Графика, Профессия, Человечество и Юмор. Так же не обошлось без новшеств: появился новый раздел dotNET и особенно рецензии ActiveX-компонентов. Обязательно заходите.
    • 17.12 - В связи с тем что форум не горел желаением вести себя так, как должен обычный, порядочный форум, мы его прикрыли для проведения разъяснительных мероприятий. Надеемся, что они не затянутся и форум образумится.
    • 06.12 - С сегодняшнего дня все желающие могут добавлять свои новости и статьи в наши архивы.
      Да здраствует открытость!
    • 27.11 - Наконец-то, после долгих дней и бессонных ночей это свершилось! Сайт объявляется открытым! Непременно прочитайте первый номер нашего журнала. Оцените наши дополнительные проекты. И конечно мы ждем ваших откликов в гостевой книге и по почте.
    • 01.12 - Произошло несколько косметических улучшений, касающихся исключительно удобства работы с сайтом. Во-первых, можно видеть количество записей обсуждения новостей на главной странице; а во-вторых чуточку подправились директории.
      Оценяйте!

    наверх

    Новости сайта Азбука VB

    • 10 января 2001 года
      Интересный пример создания popMenu используя API функции CreatePopupMenu, AppendMenu, DestroyMenu, TrackPopupMenu и GetCursorPos.
      Пример показывает, как можно отлавливать события при нажатии на кнопках в заголовке формы. В примере использовались API функции - CallWindowProc и SetWindowLong.
    • 7 января 2001 года
      RealMid - уникальный пример воспроизведения миди файлов через Direct Sound, при этом звук не зависит от качества звуковой карты.
      Пример проигрывания mp3, wave, midi файлов с ускорением/замедлением скорости средствами библиотеки ActiveMovi входящей в состав Windows.
      Пример программного генерирования миди комманд

    наверх

    Книги

    Microsoft Visual Basic 6.0. Мастерская разработчика (+ CD-ROM)

     Книга состоит из 3 частей (34 главы) и предметного указателя. Написанная живо и доходчиво, она позволит освоить множество полезных приемов программирования, в том числе объектно-ориентированного, и научит, как создавать 32-разрядные приложения для Windows 95/98 и Windows NT — от экранных заставок до программ, ориентированных на Интернет. Кроме того, Вы узнаете, как расширить возможности языка за счет функций Win32 API и воспользоваться преимуществами технологии ActiveX.

    Автор: Джон Кларк Крейг, Джефф Уэбб
    Издательсвто: Русская Редакция
    Год издания: 2001
    Кол-во страниц: 720
    Стоимость: 272 р.
    Формат: 70х100/16
    Переплёт: твёрдый

    VB Script и ActiveX

     Книга предназначена для разработчиков Web - приложений на языке VBScript, желающих повысить свой профессиональный уровень и стать экспертами в этой области. В ней подробно рассказывается о новых возможностях VBScript, включая использование именованных констант, функций, переменных и коллекций, приводится вся необходимая информация о технологии ActiveX, принципах взаимодействия VBScript и Visual Basic при создании приложений, работающих на сервере. Прочитав эту книгу, вы научитесь использовать звуковые эффекты, создавать анимированную графику, строить формы для ввода данных, узнаете, как с помощью VBScript создать в Web электронный магазин и отслеживать число посетителей и деланные ими покупки. Вы даже сумеете написать увлекательную мультимедийную игру для Web.

    Автор: Скотт Палмер
    Издательсвто: Питер
    Год издания: 1999
    Кол-во страниц: 368
    Стоимость: 94 р.
    Формат: 70х100/16
    Переплёт: мягкий

    VBA 2000. Самоучитель

     В книге содержится краткий курс по использованию языка и системы VBA для Word и Excel 2000. Книга предназначена для начинающих программировать в среде Windows 95/98 с использованием в качестве базовых таких объектов Word и Excel, как документы, рабочие книги, листы и так далее. Материала книги достаточно для создания как простых макросов, помогающих автоматизировать рутинную повторяющуюся работу над документами и электронными таблицами, так и для разработки достаточно сложных приложений, обрабатывающих данные в диалоговых окнах, обеспечивающих пользователя самыми современными интерфейсными средствами.

    Автор: Кузьменко В
    Издательсвто: Бином
    Год издания: 2000
    Кол-во страниц: 416
    Стоимость: 116 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Visual Basic 6 Desktop. Экзамен 70-176

     Книги серии Экзамен – экстерном представляют собой удобные, сжатые, хорошо структурированные конспекты для подготовки к сдаче сертификационных экзаменов на звание Microsoft Certified Solution Developer. Книга Visual Basic 6.0 Desktop. Экзамен 70-176 содержит только действительно необходимый материал, типовые вопросы с ответами и пример экзамена. Возможно, некоторые подходы, применяемые автором, покажутся вам не совсем привычными - не удивляйтесь: это не учебник по Visual Basic; организация материала в этой книге призвана максимально облегчить задачу экзаменуемого. Учтите, что в ряде случаев экзаменационные вопросы выходят за рамки тем, отраженных в документации по Visual Basic, а иной раз правильные ответы на них даже входят в противоречие с официальной информацией.

    Автор: Майкл Макдоналд
    Издательсвто: Питер
    Год издания: 2001
    Кол-во страниц: 608
    Стоимость: 123 р.
    Формат: 60x90/16
    Переплёт: мягкий

    Visual Basic 6. Руководство разработчика (+ CD-ROM)

     Эта книга, написанная известным специалистом и неутомимым пропагандистом Visual Basic, представляет собой прекрасный путеводитель по одному из наиболее популярных визуальных средств разработки Windows-приложений. Подробно освещаются такие ключевые темы программирования на Visual Basic, как проектирование и использование элементов ActiveX, программирование баз данных и разработка Web-приложений. Несомненный интерес представляют главы, посвященные работе с графикой. Большое количество тщательно продуманных примеров облегчает восприятие материала. Подбор материала и стиль изложения делают издание интересным и полезным для программистов разных уровней.

    Автор: Евангелос Петрусос
    Издательсвто: BHV, Ирина, SYBEX Inc
    Год издания: 2000
    Кол-во страниц: 1072
    Стоимость: 267 р.
    Формат: 70x100/32
    Переплёт: твёрдый

    Остальные книги о VB из магазина Колибри можно найти     здесь.

    наверх

    Анонсы эхо-конференций СообЧа

    Игры

    Работа, работа, работа — документы, базы, отчеты… Ну все пора расслабиться: работа не волк — в лес не убежит! Представь себе, у нас есть группа, которая поможет тебе скрасить тяжелые рабочие будни — мы помогаем друг другу играть!!! Обсуждаем все вопросы, которые только могут появиться у любителя игр: к примеру, как поиграть в StarCraft по сети или как написать свой конфиг к QUAKE III, и обсудим еще многое-многое-многое… Новости, ссылки на демки, патчи, обзоры и прохождение игр — все это у нас есть! Есть вопросы — ответим, есть новенький секрет — расскажем! Ну, а если ты супер-геймер, сам бог тебе велел быть с нами!

    Подписаться

    Шифрование

    Встречались ли вы в своей жизни с компьютерными пиратами? Одной из сфер их деятельности является перехват любой информации во время ее пересылки в просторах сети и воровство данных прямо с вашего компьютера. Даже если хакеру и удастся завладеть секретными данными — каково же будет его разочарование, когда он не сможет их прочесть! Давайте же поговорим о шифровании данных с помощью PGP и других алгоритмов...

    Подписаться

    Все о Linux

    Конференция, посвященная ОС Linux, которую имеете или будете иметь вы, а не она вас. Чем больше будет задано вопросов, тем больше будет получено ответов. Количество как известно перерастает в качество... И что приятно, ответы не канут в лету, их всегда можно будет найти в архиве нашей группы... Добро пожаловать!

    Подписаться

    Всё, что связано с пакетом программ MS Office.

    Вы хотели создать красивый документ в Word, но не знаете как форматировать текст? Или же в Excel вам нужно создать сложнейший и, в тоже время, красивый отчет, содержащий тысячи цифр, и вам не хватает для этого возможностей программы? Вам нужно создать базу данных в Access и по ней составлять отчеты или вы не знаете как послать письмо из Oulook? Всё это - от основ форматирования текста до сложнейших работ в таких программах, как MS Access и MS Publisher, - вы можете узнать в нашей группе Soobcha_Office.

    Подписаться

    Мощь и красота С++

    С++ является одним из самых гибких языков программирования. Сочетание низкоуровневых и высокоуровневых средств делает его сильным инструментом в руках программиста. Данная группа призвана помочь программирующим на Си и просто их сблизить. Давайте будем решать проблемы вместе!!!

    Подписаться

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Выпуск подготовили:


Выпуск 29.

VBNet
  • Библиотека кодов
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Subscribe.Ru увеличило максимальный размер рассылки до 100 кб. В связи с этим вопрос:
Какого размера Вы хотели бы получать рассылку?
Менее 20 кб
От 20 до 40 кб
От 40 до 60 кб
От 60 до 80 кб
Выше 80 кб

В какой день (дни) недели Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."?
Понедельник
Вторник
Среда
Четверг
Пятница
Суббота
Воскресение

С какой периодичностью Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."?
Каждый день
2 раза в неделю
Раз в неделю
Раз в две недели
Раз в месяц
Реже

Результаты голосования
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Это 29 выпуск рассылки. Возможно по техническим причинам несколько следующих выпусков задержутся.
    Читайте!

    Содержание выпуска
    • О VB.NET
    • Перебор кликом трех стостояний Чекбокса
    • Как избавится от Null при получении оного из базы данных
    • ASP: Повышение наглядности кода генерации страниц
    • Поиск в DBCombo по первым введенным буквам
    • Решение системы линейных уравнений

    • Вопрос/Ответ

    О VB.Net

    По материалам сайта vbrussian.com

    Информация, датированная концом мая месяца 2001 года, VBITS, презентация от David Mendlen, Microsoft Visual Basic Product Planner

    Была показана предварительная (даже не альфа)версия VB7, входящая в состав новой Вижуал Студии.

    Микрософт позиционирует этот продукт следующим образом :
    - Visual Basic - продуктивный инструмент разработки приложений
    - Visual C++ - наиболее полный и мощный (power) инструмент
    - Visual InterDev - Инструмент для создания WEB приложений

    Основной целью выпуска VS7 было декларировано: "упрощение создания WEB приложений серьезного уровня (уровня предприятий)" Итак, WEB теперь тоже находится в сфере интересов программистов на Visual Studio. Visual InterDev является частью интергрированной среды. Естественно, будет работать HTML IntelliSense (подсветка синтакстиса функций, методов и свойств) и завершение ввода тэгов.

    По сведениям Микрософт 90 процентов web программистов используют также VBScript, соотвественно VI 7 будет поддерживать все VB-языки.

    Был продемонстрирован новый VB menu editor. Участники VBITS в Сан-Франциско, кто "поторогал" новый редактор единодушны в своем мнении - новый редактор много лучше предыдущего и наконец "сделан правильно". Теперь создание меню может быть выполнено визуально - путем перетаскивания MainMenu контрола на форму, и выбора его свойств.

    Что же еще:
    Новая версия OptionExplicit, названная "OptionStrict," Эта опция требует строгого использования типов.(По моему давно пора) Наследование визуальных характристик, больше похоже на user interfaice теперь работает и для контролов
    Осталось неясным, как WebClasses будут поддерживаться в VB7. Mendlen обьяснил это тем, что WebClasses - its "generic technology." Не было показано, так же, как будет поддерживаться синхронизация между потоками.

    По прежнему покрыта мраком дата выхода Visual Basic 7 и Visual Studio 7 Microsoft предпологает выпустить альфа-весию летом, а бетту - осенью.

    По результатам обсуждения в группах я вычитал в адрес VB7 следующее:
    - можно будет создавать консольные приложения MS по прежнему рекомендует использовать VC++ для этого, однако VB сможет создавать NT сервися, причем темплэйт для этого будет включен в поставку.
    - вы получите больший контроль над процессом линковки. Линковка многоязычых модулей станет обычным делом
    - будут добавлены некоторые новые опции для оптимизации. Что-то типа поддержки новых фич процессоров.
    - наконец, начтоящее наследование. Причем будет поддерживаться наследования компонентов, для которых у вас есть исходные коды на VB или VC++. Откомпилированные компоненты уже не смогут быть унаследованы.

    По материалам превью VB7 на VBITS Chicago.
    Хорошая новость - теперь VB7 сможет использовать Windows Foundation Classes (WFC)
    VB 7 обещает стать объектно - ориентированным языком, в полном смысле этого слова. Несколько слов об этих возможностях:

    Constructors: Когда объект создается - весьма неплохо иметь вохможность передать ему некоторые данные для инициализации. Сейчас это невозможно, и вы вынужденны создавать специальные инициализационные методы, и после создания их вызывать (я, например этим сильно недоволен). В VB 7 конструкторы обьетов смогут принимать параметры, это упростит жизнь простым программистам :-)

    Encapsulation: Идея - вы можете создать ряд процедур(методов или свойств) Другой код может использовать эти методы, абсолютно не вдаваясь в подробности, что происходит внутри. Этот код просто внедряется в проект

    Free-threaded: Многопоточность - это комплексная концепция.Free-threading базируется на идее иметь возмоможность выполнять более одного потока в одно время. Например, печать документа в фоне, пока пользователь набирает новый документ. Free-threaded очень важен для создания масштабируемых server-side компонент, так же он может быть полезен и при создании интерактивного юэер - интерфейса.

    Inheritance: Наследование - Куча копий сломано по этому поводу - вкратце - возможность использования свойств и поведения чужого объекта, возможность расширения поведения этого объекта. Я могу создать объект Товар, на основе его создать объект Пищевой товар, и Промышленный товар. Оба будут наследовать свойства и поведение от объекта Товар. При этом в любой момент вы можете расширить или изменить поведение наследующего объекта.

    Initializers: Сегодня в VB вы объявляете переменные и потом присваиваете им значения - т.е. 2 строки кода. Инициализаторы позволяют декларировать и присваивать значения в одном стэйтменте.

    Object-based: Это сравнительно легко для любого языка - называться object-based. Можно назвать так любой язык легко взаимодействующий с объектами. Visual Basic имеет такую функциональность начиная с третьей версии, а сейчас (vb6) - DAO objects, ActiveX контролы, RDO, ADO и многие другие.

    Object-oriented: Для того, чтобы называться объектно-ориентированным, язык должен удовлетворять трем критериям:
    1- Он должен поддерживать инкапсуляцию(encapsulation). VB делает это с 4 версии
    2 - Обязн поддерживать наследование(inheritance). VB 7 будет иметь полноценное наследование.
    3 - Ну и поддержка полиморфизма(polymorphism). В VB это работает с 4 версии. Итак, в 7 версия будет вполне удовлетворять этим критериям.

    Overloading: Объекты частo выполняют одинаковые действия с похожими типами данных. Например, требуется добавить в обьект Заказ элемент Продукт и элемент Сервис. Легко, добавляем методы AddService и AddProduct в объект Order, и готово. Используя overloading мы можем использовать метод Add для каждого случая, позволяя VB автоматически вызывать правильный метод в зависимости от передаваемых данных.

    Overriding: Когда мы используем наследование, наш новый класс получает все методы от родительского класса. Однако может быть необходимим изменить какие либо из этих методов.Вы можете Переписать эти методы используя Overriding В тоже время VB7 будет позволять импользовать и оригинальный метод родительского объекта, используя ключевое слово MyBase (MyBase.methodname).

    Polymorphism: Просто возможность иметь 2 различных объекта, разного типа. При этим, каждый из них может может поддерживать одинаковые методы. Это позволяет нам писать код, вызывающий нужный метод в зависимости от типа объекта, используемого в данный момент.

    Shared Members: По другому(в С языке) называемый статический член класса, - метод или переменная, одинакого доступная для всех экземпляров класса. Каждый порожденный объект, базирующийся на данном классе будет иметь доступ к такой переменной или методу. Таким манером легко создавать счетчики экземпляров класса

    Structured Exception Handling: Обработка исключений. Взамен древнего, и нередко абсолютно негибкого On Error Goto выражения, мы имеем новую структуру для обработки ошибок. Это блок, содержащий Try, Catch, Finally ключевые слова. Код между Try и Catch является защищенным, и если ошибка случается выполняется Catch блок. После выполнения Catch блока выполняется код из Finally блока. Собственно, это стуктура, принятая во всех современных языках.

    Type Safety: Visual Basic сегодня преобразовывает типы автоматически. Нередко эти приводит к странностям в поведении программы. Используя type safety мы сможем заставить Vb избегать автоматического преобразования типов. Хотя эти и заставит программиста думать перед присвоением переменной одного типа другому, но при этом позволит избежать ошибок.

    User Interface Inheritance: Наследования в языке недостаточно! VB 7 будет включать наследовние форм. Это означает, что вы сможете создать шаблон формы, положить на нее тулбар, лого, установить цвета, и после этого создавать остальные формы, базируясь на этой, базовой. Все последующие будут наследовать внешний вид и код. И, главное - изменения в базовой форме будут автоматичемки приводить к изменениям в дочерних. Останется только перекомпилировать проект. Неплохо, а?!

    Так же из нового: WebForms и Web Services, не буду об этом писать, так как самому пока не вполне ясна функциональность этих элементов.

    наверх

    Перебор кликом трех стостояний Чекбокса

    Влад Помелов

    Чтобы заставить CheckBox последовательными нажатиями именно ЛЕВОЙ (да и правой тоже) кнопки мыши переключаться во все три состояния ("выключен": CheckBox.Value=0, потом "затемнен": CheckBox.Value=2, а потом "включен": CheckBox.Value=1)
    придется схитрить:

    'завести дополнительную переменную
    Private CheckFlag as Integer

    'запомнить текущее состояние CheckBox-а
    Private Sub CheckBox_MouseDown(Button As Integer, Shift As Integer, X
    As Single, Y As Single)
    CheckFlag = CheckBox.Value
    End Sub

    'и только после окончания события CheckBox_Click, которое происходит между CheckBox_MouseDown и CheckBox_MouseUp
    'переключаем CheckBox в нужное состояние
    Private Sub CheckBox_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If CheckFlag = 0 Then
    CheckBox.Value = 2
    Exit Sub
    ElseIf CheckFlag = 2 Then
    CheckBox.Value = 1
    Exit Sub
    ElseIf CheckFlag = 1 Then
    CheckBox.Value = 0
    Exit Sub
    End If
    End Sub

    наверх

    Как избавится от Null при получении оного из базы данных

    Игорь П.

    text1 = rs!Phone & ""
    Так, и не нужно лишних проверок, если телефон не введен

    Этот совет хорош только при работе с MDB базой. При работе с DBF, NULL может встречаться не только в текстовых, но и в числовых полях. При этом Ваш совет не работает. Я пишу следующее:

    text1=vbNullString
    If Not IsNull(rs!Phone) Then text1 = rs!Phone

    наверх

    ASP: Повышение наглядности кода генерации страниц

    Информация взята с сайта     prosto.pp.ru
    Пусть для генерации формы применен следующий код:

    <FORM>
    <TABLE>
    <TR>
    <TD>
    Значение 1
    </TD>
    <TD>
    <INPUT Name="Value1" Value="1" Size=10 Maxlength=10>
    </TD>
    </TR>
    <TR>
    <TD>
    Значение 2
    </TD>
    <TD>
    <INPUT Name="Value2" Value="2" Size=10 Maxlength=10>
    </TD>
    </TR>
    </TABLE>
    </FORM>

    При создании формы было поля ввода Value2 создаются копированием кода относящегося к Value1 с последующей заменой сответствующих значений. Однако при таком подходе большая форма будет занимать много места и работа с ней станет не совсем удобной.
    Генерация страниц с применением процедур позволяет поднять наглядность получаемого программного кода.
    Попробуем переписать код генерации формы в виде:

    <FORM>
    <TABLE>
    <%Call Put_Param("Значение 1","Value1","1",10,10,"",True)%>
    <%Call Put_Param("Значение 2","Value2","2",10,10,"",True)%>
    </TABLE>
    </FORM>

    ' Вывод поля ввода
    Sub Put_Param(sName,sFieldName,sValue,sSize,sMaxLength,onScript,bInput)
    Response.Write("<TR><TD>" & sName & ": </TD><TD>")
    If bInput=True Then ' Вывод поля ввода
    Response.Write(" <INPUT Name='" & sFieldName & "'" _
    & " Value='" & sValue & "'" _
    & " Size=" & sSize _
    & " MaxLength=" & sMaxLength _
    & " " & onScript & ">")
    Else ' Вывод значения для просмотра
    Response.Write(sValue)
    End If
    Response.Write("</TD></TR>")
    End Sub

    Как видно собственно код формы стал более компактен и обозрим.
    О процедуре Put_Param() следует сказать отдельно. Если в различных модулях требуется формировать похожие поля форм, то процедуру Put_Param() целесообразно поместить в файл Include.
    Процедура Put_Param() имеет параметры:

    sName - Название поля
    sFieldName - идентификатор поля
    sValue - значение
    sSize - размер поля ввода
    sMaxLength - максимальное число символов в поле
    onScript - подстановка скрипта для проверки вводимых значений

    Концентрация в одном месте тегов, отображающих структуру страницы, и вынос деталей генерации кода в процедуры и функции может заметно упростить разработку и сопровождение программ.

    наверх

    Поиск в DBCombo по первым введенным буквам

    Васильев Виктор

    Теперь корректно обрабатывает BackSpace и Del,чего раньше, к сожалению, не было. Ну и работает с ADO-DataCombo.

    Dim n%
    Select Case KeyCode
    Case Is >= 48
    DataCombo1.SelStart = Len(DataCombo1.Text) - DataCombo1.SelLength + 1
    n = DataCombo1.SelStart
    Adodc1.Recordset.Find "[Фамилия] LIKE '" & DataCombo1.Text & "*'"
    If Adodc1.Recordset.EOF Then
    MsgBox "Записи не найдены", vbExclamation + vbOKOnly, "ОШИБКА" ' По желанию Adodc1.Recordset.MoveFirst
    End If
    DataCombo1.SelStart = n
    DataCombo1.SelLength = Len(DataCombo1.Text) - n
    End Select

    наверх

    Решение системы линейных уравнений

    Владимир Мизгулин

    Sub Eq_Sol(a() As Double, b() As Double, x() As Double, n As Integer)
    ' Решение системы линейных уравнений AX = B
    ' методом Халецкого (http://www.chat.ru/~alglib/).
    ' Обращение:
    ' Call (A(),B(),X(),N)
    ' где N - кол-во уравнений (неизвестных), A - матица коэффициентов (N*N),
    ' B - столбец (N), X - решение системы (N).
    ' Метод: матрицу A можно представить в виде A = L*R,
    ' где L - левая (нижняя) треугольная матрица,
    ' R - правая (верхняя) треугольная матрица с единицами по диагонали,
    ' тогда AX = LRX = L(RX) = LY = B,
    ' т.е. надо решить две простые системы LY = B и затем RX = Y
    ' Перед обращением следет проверить, что A(1,1) <> 0.
    ' Имеет ли система решение прграмма не проверяет.

    Dim L(1 To 20, 1 To 20), R(1 To 20, 1 To 20), Y(1 To 20)
    Dim i As Integer, j As Integer, k As Integer
    For i = 1 To n
    L(i, 1) = a(i, 1)
    R(1, i) = a(1, i) / a(1, 1)
    Next i
    Y(1) = b(1) / a(1, 1)
    For i = 2 To n
    R(i, i) = 1
    j = 2
    Do
    L(i, j) = a(i, j)
    R(i, j) = 0
    For k = 1 To j - 1
    L(i, j) = L(i, j) - L(i, k) * R(k, j)
    Next
    j = j + 1
    Loop Until j > i
    R(i, i) = 1
    Do
    L(i, j) = 0
    R(i, j) = a(i, j)
    Y(i) = b(i)
    For k = 1 To i - 1
    R(i, j) = R(i, j) - L(i, k) * R(k, j)
    Y(i) = Y(i) - L(i, k) * Y(k)
    Next
    R(i, j) = R(i, j) / L(i, i)
    Y(i) = Y(i) / L(i, i)
    j = j + 1
    Loop Until j > n
    Next
    x(n) = Y(n)
    For i = n - 1 To 1 Step -1
    x(i) = Y(i)
    For k = i + 1 To n
    x(i) = x(i) - R(i, k) * x(k)
    Next
    Next
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     knyazmail

    Ответ ожидается по этому адресу

    У Вас есть исходник проги, которая тырит инфу биоса функцией GetMem ! Но вот эта функция, понятное дело, не пашет в 2000 маздае ! Как ее заставить работать, или какие есть аналоги этой функции, работающие на всех маздаях ???

    Автор вопроса: Кузин Константин

    Ответ ожидается по этому адресу

    Народ, подскажите кто-нить, почему API функция ExitWindowsEx не завершает работу или не выключает комп, а завершает сеанс данного юзера и предлагает войти под новым именем ?

    Автор вопроса: Luka

    Ответ ожидается по этому адресу

    Пожалуйста подскажите, как загрузить в ListView текст из файла?

    Автор вопроса: Sem

    Ответ ожидается по этому адресу

    Подскажите где можна скачать MSDN для VB6, бея справочника долго нужно париться над ним.

    Автор вопроса: Артём

    Ответ ожидается по этому адресу

    Как сделать чтобы форма была всегда поверх всех окон?

    Автор вопроса: Анастасия

    Ответ ожидается по этому адресу

    А можно ли менять прозрачность всех окон в системе с помощью API? Если да, то как??

    Автор вопроса: Анастасия

    Ответ ожидается по этому адресу

    А как с помощью API вызвать диалоговое окно выбора цвета и сохранить новые значения??

    Автор вопроса: Тёмыч

    Ответ ожидается по этому адресу

    Я пишу софтину на VB (проигрывание явуковых MIDI файлов). Я подключаю к проекту библиотеку Windows Media Player. объявляю глобяльную переменную:
    dim MP as MediaPlayer.MediaPlayer
    Мне нужно ияменить громкость воспроияведения. Я пишу: MP.volume=Value и получаю сообщение об ошибке. Может кто-то подскаяать, что нужно сделать, чтоб софтина яаработала?

    Автор вопроса: Tolic

    Ответ ожидается по этому адресу

    Подскажите пожалуйста! Как на VB установить шрифты в систему. Пробовал использовать API функцию AddFontResource. Она устанавливает вибраний шрифт в систему, только после перезагрузки шрифт удаляется из системы.

    Автор вопроса: VC

    Ответ ожидается по этому адресу

    Есть переменная WindowsDirectory и я всегда ее использовал для временных файлов, так стабильнее чем Temp но вдруг мне пришло письмо что моя программа не работет в W2k Server так как он не распознает эту переменную и пишет файл куда хочет, а когда его нужно прочитать то читает тоже откуда хочет и эти папки не сходятся. Отсюда информация не теряется, а просто пишется в одно месте, а читается из другого места - т.е. файла нулевого!
    Стандартные переменные $System_Root$ VB не понимает!

    P.S. В W2K Proffesional все работает!

    Автор вопроса: Spart51

    Ответ ожидается по этому адресу

    как расположить несколько чисел в порядке воярастания?

    Ответы:

    Вопрос:

    В программах 1С очень удобные отчеты. можно ли их прицепить к своей программе на VB. и можно ли их таскать со свой программой (без установки всего предприятия). Я пробовал добавить ссылку на Moxel.dll, ругается.

    Ответ:

    Автор ответа: Шатрыкин Иван

    Знаешь, я видел на сайте Микрософта в разделе Office Extensions (конкурс там такой) модуль, который позволяет читать данные 1C в Excel. Сходи, погляди, может быть он там еще есть? Думаю, что должно помочь.

    Вопрос:

    В программах 1С очень удобные отчеты. можно ли их прицепить к своей программе на VB. и можно ли их таскать со свой программой (без установки всего предприятия). Я пробовал добавить ссылку на Moxel.dll, ругается.

    Ответ:

    Автор ответа: Malikov

    По-моему это просто надстройка над Crystal Reports. Поставь их себе и попробуй поработать.

    Вопрос:

    1. При установке любой программы (после её закабинечивания мастером упаковки) пишет "неверные линии" в файле Setup.LST как раз там, где указан путь распаковываемых файлов. После сообщения о фатальной ошибке установка ПО прекращается. Пришлось выделить 600 метров диска для установки ещё одной версии Windows SE и VB5. Последняя создаёт нормальную установку, но она не делает кабинетов а файлы *.EX_. Может у кого-нибудь ещё была такая проблема?

    2. Как сделать, что прогамма, выполняющая например 2+2 не занимала 5-7 Мб установки.

    Ответ:

    Автор ответа: Roman Panyshev

    Перед упаковкой файлов зайди в Настройка>Панель управления>Язык и стандарты и переключи Региональные настройки на Английский. После перезапуска компа спокойно упаковывай файлы. Затем можешь вернуть все на место. Инсталятор будет работать прекрасно.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 30.

VBNet
  • Библиотека кодов
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Subscribe.Ru увеличило максимальный размер рассылки до 100 кб. В связи с этим вопрос:
Какого размера Вы хотели бы получать рассылку?
Менее 20 кб
От 20 до 40 кб
От 40 до 60 кб
От 60 до 80 кб
Выше 80 кб

В какой день (дни) недели Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."?
Понедельник
Вторник
Среда
Четверг
Пятница
Суббота
Воскресение

С какой периодичностью Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."?
Каждый день
2 раза в неделю
Раз в неделю
Раз в две недели
Раз в месяц
Реже

Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Этот 30 выпуск рассылки можно назвать юбилейным!.
    Читайте!

    Содержание выпуска
    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    ADO и Visual Basic. Руководство разработчика

     В книге описано использование технологии доступа к данным (ADO) с помощью основного инструмента разработки приложений Microsoft - Visual Basic 6.0.
    Из книги вы узнаете, как можно исследовать источники данных при помощи окна Data View, как создавать формы для ввода и запроса данных, используя связанные элементы управления, и подсоединяться к источникам данных со сложной иерархической структурой средствами Data Environment. Далее вы изучите, как можно, используя Data Report, представлять информацию в форме, подходящей для печати, или как следует исполнять некоторые, наиболее широко распространенные задачи, связанные с обработкой данных, используя ADO внутри кода Visual Basic. В последних главах книги рассмотрены дополнительные операции, используемые в коде, в том числе формирование данных, для создания иерархических наборов записей, применение ADO в сети Internet и даже создание собственных источников данных.
    Чтобы боле полно использовать средства ADO для извлечения информации из различных источников, в приложении к книге вы найдете справочник по языку SQL, в котором обсуждаются основы работы с оператором SQL SELECT.

    Автор: Гандерлой М.
    Издательсвто: Бином
    Год издания: 2001
    Кол-во страниц: 336
    Стоимость: 169 р.
    Формат: 70х100/16
    Переплёт: нет данных

    VBA 2000 самоучитель

     В книге содержится краткий курс по использованию языка и системы VBA для Word и Excel 2000. Книга предназначена для начинающих программировать в среде Windows 95/9S с использованием в качестве базовых таких объектов Word и Excel, как документы, рабочие книги, листы и так далее.
    Материала книги достаточно для создания как простых макросов, помогающих автоматизировать рутинную повторяющуюся работу над документами и электронными таблицами, так и для разработки достаточно сложных приложений, обрабатывающих данные в диалоговых окнах, обеспечивающих пользователя самыми современными интерфейсными средствами.

    Автор: Кузьменко В.Г.
    Издательсвто: Бином
    Год издания: 2000
    Кол-во страниц: 408
    Стоимость: 111,26 р.
    Формат: 70х100/16
    Переплёт: мягкий

    VBA в Office 2000 учебный курс

     В этой книге описывается Visual Basic for Applications — подмножество популярнейшего языка программирования Visual Basic. Изучив ее материал, вы сможете создавать собственные интегрированные приложения, которые используют как объектные модели стандартных приложений MS Office, так и объектные модели ADO и DAO.
    Книга предназначена для всех пользователей MS Office 2000 —независимо от степени их владения программированием.

    Автор: Васильев А., Андреев А.
    Издательсвто: Питер
    Год издания: 2000
    Кол-во страниц: 432
    Стоимость: 102,19 р.
    Формат: 70х100/16
    Переплёт: нет данных

    Visual Basic 6 Desktor экзамен 70-176

     Книги серии "Экзамен — экстерном" представляют собой удобные, сжатые, хорo шо структурированные конспекты для подготовки к сдаче сертификационных экзаменов на звание Microsoft Certified Solution Developer. Книга "Visual Basic 6.0 Desktop. Экзамен— экстерном (экзамен 70-176)" содержит только действительно необходимый материал, типовые вопросы с ответами и пример экзамена. Возможно, некоторые подходы, применяемые автором, покажутся вам не совсем привычными — не удивляйтесь: это не учебник по Visual Basic; организация материала в этой книге призвана максимально облегчить задачу экзаменуемого. Учтите, что в ряде случаев экзаменационные вопросы выходят за рамки тем, отраженных в документации no Visual Basic, а иной раз правильные ответы на них даже входят в противоречие с "официальной" информацией.

    Автор: Макдоналд М.
    Издательсвто: Питер
    Год издания: 2001
    Кол-во страниц: 608
    Стоимость: 130,83 р.
    Формат: 60х90/16
    Переплёт: нет данных

    Visual Basic 6 Distributed (экзамен 70-175)

     Книги серии "Экзамен — экстерном" представляют собой удобные, сжатые, хорошо структурированные конспекты для подготовки к сдаче сертификационных экзаменов на звание Microsoft Certified Solution Developer. Книга "Visual Basic 6 Distributed (экзамен 70-175)" не содержит ничего лишнего, только то, что действительно необходимо: фактический материал, типовые экзаменационные вопросы с разбором ответов и тестовый экзамен для самопроверки. Кроме того, вы найдете в н8й советы по стратегии и тактике сдачи экзамена.
    Серия "Экзамен — экстерном" — настоящая находка для преподавателей, которые смогут рекомендовать ее слушателям в качестве пособия для самостоятельной работы и тренировки. Книга не потеряет актуальности и после успешной сдачи экзамена: она поможет в нужный момент освежить в памяти необходимые сведения.
    Книги серии "Экзамен — экстерном" рекомендованы представительством корпорации "Майкрософт" в Москве в качестве учебного пособия для подготовки к экзаменам на звание MCSD.

    Автор: Томас М., Фокс Д.
    Издательсвто: Питер
    Год издания: 2001
    Кол-во страниц: 592
    Стоимость: 130,83 р.
    Формат: 60х90/16
    Переплёт: нет данных

    Остальные книги о VB из магазина Колибри можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 10.02.2002 05:28 | Раздел: Примеры кода | Автор: SerG

    Lens - Вы видели в стандартных программах Windows программу Линза? А никто не задумывался как она сделана? Это не очень сложно если посмотреть этот пример. Кроме изучения принципа действия "линзы" Вы изучите еще несколько полезных функций WinAPI.

    Дата: 09.02.2002 12:03 | Раздел: Статьи по VB | Автор: Эскин Михаил

    Элемент управления Microsoft Hierarchical FlexGrid - В VB 6.0 появился новый элемент управления, который пришел на замену MS FlexGrid. И хотя, MS FlexGrid остался - новый контрол, по своим возможностям, целиком и полностью вытеснил его. Это MS Hierarchical FlexGrid (таблица, с возможностью иерархического отображения данных). К большому сожалению, многие не пользуются им, или пользуются в ограниченных рамках, просто-напросто не зная всех его возможностей. Поэтому я хочу представить Вашему вниманию отрывок из книги (посвященный данному контролу) "Visual Basic 6.0 - Наиболее полное руководство для профессиональной работы в среде Visual Basic 6.0"

    Дата: 09.02.2002 05:57 | Раздел: ActiveX контролы | Автор: SerG

    MousePos - OCX предназначенный для определения текущей позиции курсора мышки. Если Вам нужно что-то подобное, то этот OCX специально для Вас! Он может многое! Определить текущую позицию? Пожалуйста! Переместить курсор мыши в определенное место! Да! И при этом с определенной скоростью? Нет проблем! Рекомендую всем.

    Дата: 09.02.2002 05:53 | Раздел: Примеры кода | Автор: Беляев Данила

    Background - Отличный пример замощения формы рисунком, т.е. создание фона формы с помощью АПИ, при ресайзе потери производительности нет! Если Вы уже раньше пытались это сделать, то Вы поймете для чего здесь API.

    Дата: 09.02.2002 05:43 | Раздел: Примеры кода | Автор: Беляев Данила

    TextCoder - Шифруем текст, но ключом является позиция символа, т.е. к ASC маске прибавляется позиция этого символа и всё это дело переводится в двоичную систему счисления - для непосвященных это будет тяжело сломать... В комплекте и алгоритм расшифровки конечно!

    Дата: 08.02.2002 05:26 | Раздел: Примеры кода | Автор: SerG

    DragFiles - Drag&Drop в Вашей программе? Нет ничего проще! Пример показывает как это нужно делать. Изюминка примера - он может "на ходу" переключать режим "прием файлов" и "отсутствие приема". Посмотрите - это интересно.

    Дата: 07.02.2002 05:53 | Раздел: ActiveX контролы | Автор: Эскин Михаил

    Pulse - Красивый OCX, предназначенный для "анимации" текста. Текст выводится как бы пульсирующим т.е. увеличивается в размере, потом уменьшается, и так далее. Мне понравилось. Посмотрите, красивый эффект.

    Дата: 05.02.2002 05:29 | Раздел: ActiveX контролы | Автор: Эскин Михаил

    DblListbox - Очень интересный контрол, который эмулирует двойной список. Имеет множество настроек. Например, цвет текста и фона. В общем, может быть кому пригодится. Написан признанным мастером Visual Basic - Михаилом Эскиным.

    Дата: 04.02.2002 08:37 | Раздел: Статьи по VB | Автор: Евдокимов Михаил

    Visual Basic + HTML = VBScript - Данная статья предназначена тем, кто хотел бы получить представление о программировании на Visual Basic Script, подмножестве языка Visual Basic. VBScript позволяет решать задачи, связанные с Internet, а именно создавать сценарии (или скрипты) управления объектами (кнопками, списками, ниспадающими меню и т. д.) на Web-страничках. Для понимания этого материала нужно иметь представление о структуре HTML-документа, а также основах программирования на Visual Basic. Описанные в статье сценарии могут быть использованы в браузере Microsoft Internet Explorer 3.0.

    Дата: 04.02.2002 06:04 | Раздел: ActiveX контролы | Автор: Эскин Михаил

    Reg 2.6 - Новая версия популярной утилиты для регистрации OCX и DLL. Данная утилита создана как альтернатива файлу Regsvr32.exe, и служит для регистрации и снятия регистрации ActiveX Control (файлы *.OCX) или динамических библиотек, написанных на VB (файлы *.DLL). Ведет журнал регистрации. В новой версии 2.6 программы устранены мелкие недочеты и ошибки. Во всех отношениях полезная программа.

    Дата: 03.02.2002 08:34 | Раздел: Статьи по VB | Автор: Дёмин Антон

    Отправка GET-форм из программы на VB - Почти на всех сайтах в интернете есть формы, т.е. определённые текстовые поля, CheckBox'ы (множественный выбор), кнопки и т.д. Примером формы может служить форма для отправки сообщения, например, в службу поддержки какого-то сайта. Для этой формы необходимо текстовое поле с именем автора, с его обратным e-mail'ом, с сообщением, а также кнопка для отправки сообщения. После того, как пользователь нажимает на эту кнопку, в браузере загружается страница с подтверждением отправки письма.

    Последние 20 тем форума на VBNet.Ru:

    22:11 / 9 фев. модератору: Зделайте пожалуйста чат! | Ответов: 1
    22:06 / 9 фев. 3dgraphics | Ответов: 0
    18:46 / 9 фев. Структура файлов *.lnk | Ответов: 0
    18:23 / 9 фев. Как открыть фолдер из программы? | Ответов: 2
    17:47 / 9 фев. Поиск | Ответов: 1
    21:56 / 8 фев. Installable ISAM?????? | Ответов: 0
    20:15 / 8 фев. Новое сообщение без темы | Ответов: 0
    14:43 / 8 фев. VB6 не опознает формат database Access2000 | Ответов: 1
    10:43 / 8 фев. Скрытие чужого окна... | Ответов: 2
    08:17 / 8 фев. Метаданные из базы Access | Ответов: 0
    01:52 / 8 фев. Не работает ExitWindowsEx | Ответов: 1
    21:57 / 7 фев. Для Сергея: Автоматическая прокрутка ListBox | Ответов: 0
    18:56 / 7 фев. VB and SQL Server 7.0 (выполнение запросов) | Ответов: 0
    16:38 / 7 фев. Кто знает? | Ответов: 1
    14:23 / 7 фев. Автоматическая прокрука ListBox | Ответов: 1
    14:21 / 7 фев. Вопрос по MSCOMM | Ответов: 0
    11:57 / 7 фев. VBScript & база данных... | Ответов: 1
    08:09 / 7 фев. Как определить раскладку клавы активного окна | Ответов: 1
    16:24 / 6 фев. ActivX | Ответов: 3
    11:29 / 6 фев. Где достать Конвертер VB->C++ или др.? | Ответов: 1

    Последние поступления в Библиотеку кодов:

    Использование API при работе с TextBox'ом (15)
    Перебор массива TextBox'ов (9)
    Как изменить цвет фона при изменении зн... (7)
    Описание элементов VScrollBar/HScrollBar (11)
    Контекстное меню. Практикум по созданию. (14)
    Размножить на форме картинку (13)
    Использование Images вместо CommandButton (7)
    Разноцветный баттон (10)
    Изменение длины ComboBox (8)
    Определить количество строк в ComboBox (7)
    Определение координат позиции курсора в... (12)
    Как сделать первую букву каждого слова ... (16)
    Скролинг текста (18)
    Получение содержимого n-ой строки в Mul... (13)
    Как спрятать данные за звездочками боле... (18)
    Как узнать данные, скрытые за звездочками (21)
    Проверка орфографии (11)
    Скрыть/показать мигающий курсор в Text Box (9)
    Определить количество строк в TextBox'е (9)
    Как уместить в Text Box больше 64 kb те... (9)
    Как быстро выделить текст для события G... (10)
    Как реализовать режим замены в текстово... (10)
    Проверить тип вводимой информации (9)
    Добавить новую линию в существующий тек... (9)
    Как очистить все TextBox'ы на форме (11)
    Как вернуться на то же место, при потер... (9)
    Запретить ввод определенных символов (9)
    Изменение вида каретки (10)
    Как заблокировать стандартное контекстн... (11)
    Загрузить/Сохранить текстовой файл из T... (10)
    3D-текст на форме (11)
    Удалить повторящиеся элементы (25)
    Поменять местами два рядом стоящих элем... (23)
    Сохранение данных из ListBox'а в виде п... (21)
    Сколько элементов выделено (18)
    Какой элемент выделен? (по номеру) (21)
    Автоматическое выделение элемента в Lis... (24)
    Пример поиска в ListBox'е (16)
    Сканировать ListBox в поисках элемента (13)
    Определение, какая item находится под к... (16)
    Как скопировать данные из одного ListBo... (17)
    Выделение элемента в ListBox'е при нажа... (14)
    Выделение всех элементов в ListBox'е (15)
    Как выравнять элементы ListBox'а вправо (17)
    Как автоматически скролить элемент List... (25)
    Описание элемента ListBox (19)
    Описание элемента TabStrip (46)
    Динамическое добавление панелей (41)
    Как определить, какая из панелей кликнута (35)
    Описание элемента Slider (38)
    Динамическое добавление в ImageList кар... (34)
    Word: Получение статистики открытого файла (40)
    Элемент управления Timer (56)
    Автоматический просмотр текущего значен... (43)
    Изменение свойства Style (стиль) элемен... (39)
    Вертикальное/горизонтальное написание в... (43)
    Создать анимированный Label (39)
    Создание 3D Text на Label (43)
    Выравнивание надписи на кнопке (33)
    Создайте свой 3D-Button (35)
    Добавление элемента CheckBox в элемент ... (34)
    Быстрый поиск элемента в списке (38)
    Как сделать первую букву каждого слова ... (27)
    Установить ширину ниспадающей части Com... (29)
    Как программно открыть/закрыть ComboBox (36)
    Изменилось ли содержимое ComboBox (28)
    Изменение высоты выпадающей части комбо... (30)
    Как установить количество открываемых с... (30)
    Изменение высоты выпадающей части комбо... (29)
    Изменение свойства Style (стиль) (46)
    Шифровка/расшифровка текста с использов... (65)
    Перекодировка текста: Rus-Lat (58)
    Получение всех параметров командной строки (54)
    Форма, реагирующая на события (min,max,... (60)
    Создание формы произвольных размеров (54)

    наверх

    Новости сайта VBMania

    • 25.01 - Сегодня открылся новый раздел, в котором вы можете найти ссылки на целую кучу книг по тематике VB и около него.
    • 22.01 - 22 января вышел второй номер он-лайн журнала о Visual Basic 'VB Мания'. В нем можно почитать авторские статьи в уже устоявшихся разделах: Технологии, Система, Графика, Профессия, Человечество и Юмор. Так же не обошлось без новшеств: появился новый раздел dotNET и особенно рецензии ActiveX-компонентов. Обязательно заходите.
    • 17.12 - В связи с тем что форум не горел желаением вести себя так, как должен обычный, порядочный форум, мы его прикрыли для проведения разъяснительных мероприятий. Надеемся, что они не затянутся и форум образумится.
    • 06.12 - С сегодняшнего дня все желающие могут добавлять свои новости и статьи в наши архивы.
      Да здраствует открытость!
    • 27.11 - Наконец-то, после долгих дней и бессонных ночей это свершилось! Сайт объявляется открытым! Непременно прочитайте первый номер нашего журнала. Оцените наши дополнительные проекты. И конечно мы ждем ваших откликов в гостевой книге и по почте.
    • 01.12 - Произошло несколько косметических улучшений, касающихся исключительно удобства работы с сайтом. Во-первых, можно видеть количество записей обсуждения новостей на главной странице; а во-вторых чуточку подправились директории.
      Оценяйте!

    наверх

    Новости сайта Азбука VB

    • 10 января 2001 года
      Интересный пример создания popMenu используя API функции CreatePopupMenu, AppendMenu, DestroyMenu, TrackPopupMenu и GetCursorPos.
      Пример показывает, как можно отлавливать события при нажатии на кнопках в заголовке формы. В примере использовались API функции - CallWindowProc и SetWindowLong.
    • 7 января 2001 года
      RealMid - уникальный пример воспроизведения миди файлов через Direct Sound, при этом звук не зависит от качества звуковой карты.
      Пример проигрывания mp3, wave, midi файлов с ускорением/замедлением скорости средствами библиотеки ActiveMovi входящей в состав Windows.
      Пример программного генерирования миди комманд

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Bob

    Ответ ожидается по этому адресу

    Почему исполнение в MS Word любого польяовательского макроса на VB, даже не очень объемного, яанимает слишком много времени. Причем это происходит только при первом его яапуске. В дальнейшем работа любого существующего макроса происходит с яавидной скоростью.

    Здесь же хотел бы спросить почему иногда происходит яаметное яамедление яакрытия и открытия несложных документов в MS Word. Если кто-нибудь с этим уже сталкивался - поясните.

    Автор вопроса: Шевченко Александр Викторович

    Ответ ожидается по этому адресу

    Подскажите, как можно сделать, чтобы у тебя был анимированный рисунок на форме, не могу найти нужный контейнер для воспроизведения, скажем *.gif файлов.

    Автор вопроса: Проскурин

    Ответ ожидается по этому адресу

    Мне срочно нужно писать прог для оценки автомобилей (вводишь марку, год и т. д. (ведение базы данных)). Помогите чем можете - статьями, в инете, исходниками ....

    Автор вопроса: Stas

    Ответ ожидается по этому адресу

    Как на VB6 сделать чтобы текст типа 5x-2y введеный в TextBox присвоился переменной не как текст, а как уравнение с неизвесными?

    Ответы:

    Вопрос:

    Народ, подскажите кто-нить, почему API функция ExitWindowsEx не завершает работу или не выключает комп, а завершает сеанс данного юзера и предлагает войти под новым именем ?

    Ответ:

    Автор ответа: Sobic

    Наверное потому, что ты не ту константу используешь.
    Вот описание ExitWindowsEx

    Declare Function ExitWindowsEx Lib "user32" Alias "ExitWindowsEx"
    (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
    uFlags
    Определяет тип выключения. Этот параметр должен быть некоторой комбинацией следующих величин:
    EWX_FORCE = 4
    Заставляет процессы завершиться. Когда этот флаг установлен, Windows не посылается сообщения WM_QUERYENDSESSION и WM_ENDSESSION в работающие в системе приложения. Это может стать причиной потери приложениями данных. Следовательно, Вы должны использовать этот флаг только в аварийной ситуации.
    EWX_LOGOFF = 0
    Отключает все процессы работая в контексте безопасности процесса,который вызвал функцию ExitWindowsEx. Затем он завершает сеанс данного юзера.
    EWX_POWEROFF
    Завершает работу и выключает питание. Система должна поддержать автоотключение питания.
    Windows NT: Вызывающий процесс должен иметь привилегию SE_SHUTDOWN_NAME.
    Windows 95: Привилегии Безопасности не поддерживаются или не требуются.
    EWX_REBOOT = 2
    Завершает работу системы и перезагружает компьютер.
    Windows NT: Вызывающий процесс должен иметь привилегию SE_SHUTDOWN_NAME.
    Windows 95: Привилегии Безопасности не поддерживаются или не требуются.
    EWX_SHUTDOWN = 1
    Завершает работу системы и подготовит к отключению питания. Все файловые буферы будут сброшены на диск, и все процессы завершатся.
    Windows NT: Вызывающий процесс должен иметь привилегию SE_SHUTDOWN_NAME.
    Windows 95: Привилегии Безопасности не поддерживаются или не требуются.

    · dwReserved
    Зарезервировано; Этот параметр игнорируется.

    Данные из API-Guide 3.6 http://www.allapi.net (отличный справочник по WinAPI с примерами на VB, рекомендую), перевод мой+ socrat 97(чур не бить)

    Вопрос:

    Пожалуйста подскажите, как загрузить в ListView текст из файла?

    Ответ:

    Автор ответа: Игорь

    При условии, что файл текстовый, то есть нормально прослеживается EOF, сделай так:
    Dim Str As String
    Open "C:\autoexec.bat" For Input As 1 'вместо autoexec.bat указывается свой файл
    Do Until EOF(1)
    Input #1, Str
    ListView1.ListItems.Add , , Str
    Loop
    Чтобы было красивее, можно вставить ListView1.View=2. Тогда все данные будут выводиться как список.

    Вопрос:

    Подскажите где можна скачать MSDN для VB6, бея справочника долго нужно париться над ним.

    Ответ:

    Автор ответа: Игорь

    Вообще-то MSDN можно скачать с официального сайта www.microsoft.com, но вся эта система помощи занимает около 3 Гб. Лучше ищи переводы ее частей MSDN на русский.

    Вопрос:

    Подскажите где можна скачать MSDN для VB6, бея справочника долго нужно париться над ним.

    Ответ:

    Автор ответа: slavik

    У меня MSDN занимает два диска, долго тебе придется качать.
    Попробуй кликнуть по ссылке в самом начале:
    Господа!!! читайте MSDN!!! [http://msdn.microsoft.com/library]

    Вопрос:

    Как сделать чтобы форма была всегда поверх всех окон?

    Ответ:

    Автор ответа: b17

    Делается это очень просто.

    Засунь это в модуль:
    Public Declare Function SetWindowPos Lib "user32" _
    (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
    ByVal X As Long, ByVal Y As Long, ByVal cx As Long, _
    ByVal cy As Long, ByVal wFlags As Long) As Long
    Public Const HWND_NOTOPMOST = -2
    Public Const HWND_TOPMOST = -1
    Public Const SWP_NOACTIVATE = &H10
    Public Const SWP_NOMOVE = &H2
    Public Const SWP_NOSIZE = &H1

    Public Sub SetFormPosition(frmHandl As Long, TopPosition As Boolean)
    If TopPosition Then
    SetWindowPos frmHandl, HWND_TOPMOST, 0, 0, 0, 0, _
    SWP_NOACTIVATE Or SWP_NOSIZE Or SWP_NOMOVE
    Else
    SetWindowPos frmHandl, HWND_NOTOPMOST, 0, 0, 0, 0, _
    SWP_NOSIZE Or SWP_NOMOVE
    End If
    End Sub

    Это сунь в любом месте формы:
    call SetFormPosition(Me.hwnd, True)

    Комментарий:
    "Это работает точно по WINDOWS 98 и под WINDOWS 98 SE, под другие операционки не пробовалось, проблемы есть точно в WIN XP."

    Вопрос:

    Как сделать чтобы форма была всегда поверх всех окон?

    Ответ:

    Автор ответа: Igor

    Вот здесь: http://vbnet.ru/http://vbnet.ru/faq/showtopic.asp?id=46

    Вопрос:

    А как с помощью API вызвать диалоговое окно выбора цвета и сохранить новые значения??

    Ответ:

    Автор ответа: SC

    Private Type ChooseColor
    lStructSize As Long
    hwndOwner As Long
    hInstance As Long
    rgbResult As Long
    lpCustColors As String
    flags As Long
    lCustData As Long
    lpfnHook As Long
    lpTemplateName As String
    End Type

    Private Declare Function ChooseColor Lib "comdlg32.dll" Alias "ChooseColorA" (pChoosecolor As CHOOSECOLOR) As Long
    Private Sub Command1_Click()
    Dim cc As ChooseColor
    Dim ret as long

    cc.lStructSize = Len(cc)
    'При указании хендела доступ к форме временно блокируется, до закрытия вызванного диалога(выбор цвета).
    cc.hwndOwner = Form1.hWnd 'Хендел вызывающей формы.
    cc.hInstance = App.hInstance
    cc.flags = 0 'Состояния вызываемого окна. 0-default state. (0-14) шагом = 2
    cc.lpCustColors = String$(16 * 4, 0)

    ret = ChooseColor(cc) 'Вызываем диалог

    If (ret) Then 'Если была нажата кнопка ОК
    BackColor = cc.rgbResult 'Меняем цвет фона формы на выбранный нами цвет
    Else
    MsgBox "Действие отменено"
    End If
    End Sub

    Вопрос:

    Подскажите пожалуйста! Как на VB установить шрифты в систему. Пробовал использовать API функцию AddFontResource. Она устанавливает вибраний шрифт в систему, только после перезагрузки шрифт удаляется из системы.

    Ответ:

    Автор ответа: Игорь

    Нужно сначала скопировать файл в папку Fonts, а затем использовать AddFontResource.

    Вопрос:

    Подскажите пожалуйста! Как на VB установить шрифты в систему. Пробовал использовать API функцию AddFontResource. Она устанавливает вибраний шрифт в систему, только после перезагрузки шрифт удаляется из системы.

    Ответ:

    Автор ответа: slavik

    Бывает необходимо добавить в систему шрифт. Для его использования не достаточно просто скопировать файл шрифта в C:\WINDOWS\Fonts.

    Необходимо инсталлировать, это выполняет функция API AddFontResource, которая объявляется так:

    Declare Function AddFontResource& Lib "gdi32" Alias "AddFontResourceA" (ByVal lpFileName As String)

    Использование:

    1.Можно файлы шрифтов включить в дистрибутив с помощью встроенных возможностей Package & Deployment Wizard .
    В форме:
    2.Потом с, помощью MyFile = Dir("C:\WINDOWS\Fonts\Helvenlt.ttf"), проверяем из своей программы, наличие файла в системе:

    If MyFile = "Helvenlt.ttf" Then
    Exit Sub
    Else 'если его нет, то копируем и устанавливаем шрифт.
    'Копируем шрифт в систему
    FileCopy App.Path & "\Helveblt.TTF", "C:\WINDOWS\Fonts\Helvenlt.ttf" 'Необходимо скопировать шрифт в систему
    'Устанавливаем шрифт
    Call AddFontResource("Helvenlt.ttf") 'Команда устанавливает шрифты в систему
    End If
    Текст1.FontName = "HelveticaLT" 'Используем шрифт

    Вопрос:

    Подскажите пожалуйста! Как на VB установить шрифты в систему. Пробовал использовать API функцию AddFontResource. Она устанавливает вибраний шрифт в систему, только после перезагрузки шрифт удаляется из системы.

    Ответ:

    Автор ответа: K. Igor

    О каких шрифтах идет речь. Если это обычные, то они просто переписываются в папку C:\windows\fonts, на VB можно с помощью copy.

    Вопрос:

    Есть переменная WindowsDirectory и я всегда ее использовал для временных файлов, так стабильнее чем Temp но вдруг мне пришло письмо что моя программа не работет в W2k Server так как он не распознает эту переменную и пишет файл куда хочет, а когда его нужно прочитать то читает тоже откуда хочет и эти папки не сходятся. Отсюда информация не теряется, а просто пишется в одно месте, а читается из другого места - т.е. файла нулевого!
    Стандартные переменные $System_Root$ VB не понимает!

    P.S. В W2K Proffesional все работает!

    Ответ:

    Автор ответа: SC

    Попробуй воспользоваться API функцией GetTempPath.

    Private Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long

    Помести куда нужно:

    Dim szTempPath As String * 100
    GetTempPath 100, szTempPath

    ВСЁ. Теперь переменная будет содержать путь Темп директории 8)

    Вопрос:

    как расположить несколько чисел в порядке воярастания?

    Ответ:

    Автор ответа: K. Igor

    Смотря какие числа. Если надо, что бы при вводе 5 чисел они располагались по возрастанию, то через функцию if/then/else это можно выполнить.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 31.

VBNet
  • Библиотека кодов
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Subscribe.Ru увеличило максимальный размер рассылки до 100 кб. В связи с этим вопрос:
Какого размера Вы хотели бы получать рассылку?
Менее 20 кб
От 20 до 40 кб
От 40 до 60 кб
От 60 до 80 кб
Выше 80 кб

В какой день (дни) недели Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."?
Понедельник
Вторник
Среда
Четверг
Пятница
Суббота
Воскресение

С какой периодичностью Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."?
Каждый день
2 раза в неделю
Раз в неделю
Раз в две недели
Раз в месяц
Реже

Результаты голосования
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Недавно я зарегистрировал эту рассылку на американском сервисе ListPower. Пожалуйста, заполните расположенную ниже форму. Никаких последствий для Вас не будет. Рассылка будет продолжать выходить на Subscribe.ru с той же периодичностью.
    Имя
    E-mail

    Читайте!

    Содержание выпуска
    • Книги

    • Стандартные свойства любого контрола
    • Добавить контрол во время выполнения программы
    • Отцентрировать контрол на форме
    • Создание формы или контрола произвольной формы
    • Работа с элементами CommonDialog библиотеки Comdlg32.dll
    • Диалог "Открытие файла" без использования OCX

    • Вопрос/Ответ

    Книги

    Microsoft Visual Basic 6.0. Мастерская разработчика (+ CD-ROM)

     Книга состоит из 3 частей (34 главы) и предметного указателя. Написанная живо и доходчиво, она позволит освоить множество полезных приемов программирования, в том числе объектно-ориентированного, и научит, как создавать 32-разрядные приложения для Windows 95/98 и Windows NT — от экранных заставок до программ, ориентированных на Интернет. Кроме того, Вы узнаете, как расширить возможности языка за счет функций Win32 API и воспользоваться преимуществами технологии ActiveX.

    Автор: Джон Кларк Крейг, Джефф Уэбб
    Издательство: Русская Редакция
    Год издания: 2001
    Кол-во страниц: 720
    Стоимость: 272 р.
    Формат: 70х100/16
    Переплёт: твёрдый

    VB Script и ActiveX

     Книга предназначена для разработчиков Web - приложений на языке VBScript, желающих повысить свой профессиональный уровень и стать экспертами в этой области. В ней подробно рассказывается о новых возможностях VBScript, включая использование именованных констант, функций, переменных и коллекций, приводится вся необходимая информация о технологии ActiveX, принципах взаимодействия VBScript и Visual Basic при создании приложений, работающих на сервере. Прочитав эту книгу, вы научитесь использовать звуковые эффекты, создавать анимированную графику, строить формы для ввода данных, узнаете, как с помощью VBScript создать в Web электронный магазин и отслеживать число посетителей и деланные ими покупки. Вы даже сумеете написать увлекательную мультимедийную игру для Web.

    Автор: Скотт Палмер
    Издательство: Питер
    Год издания: 1999
    Кол-во страниц: 368
    Стоимость: 94 р.
    Формат: 70х100/16
    Переплёт: мягкий

    VBA 2000. Самоучитель

     В книге содержится краткий курс по использованию языка и системы VBA для Word и Excel 2000. Книга предназначена для начинающих программировать в среде Windows 95/98 с использованием в качестве базовых таких объектов Word и Excel, как документы, рабочие книги, листы и так далее. Материала книги достаточно для создания как простых макросов, помогающих автоматизировать рутинную повторяющуюся работу над документами и электронными таблицами, так и для разработки достаточно сложных приложений, обрабатывающих данные в диалоговых окнах, обеспечивающих пользователя самыми современными интерфейсными средствами.

    Автор: Кузьменко В
    Издательство: Бином
    Год издания: 2000
    Кол-во страниц: 416
    Стоимость: 116 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Visual Basic 6 Desktop. Экзамен 70-176

     Книги серии `Экзамен – экстерном` представляют собой удобные, сжатые, хорошо структурированные конспекты для подготовки к сдаче сертификационных экзаменов на звание Microsoft Certified Solution Developer. Книга `Visual Basic 6.0 Desktop. Экзамен 70-176` содержит только действительно необходимый материал, типовые вопросы с ответами и пример экзамена. Возможно, некоторые подходы, применяемые автором, покажутся вам не совсем привычными - не удивляйтесь: это не учебник по Visual Basic; организация материала в этой книге призвана максимально облегчить задачу экзаменуемого. Учтите, что в ряде случаев экзаменационные вопросы выходят за рамки тем, отраженных в документации по Visual Basic, а иной раз правильные ответы на них даже входят в противоречие с `официальной` информацией.

    Автор: Майкл Макдоналд
    Издательство: Питер
    Год издания: 2001
    Кол-во страниц: 608
    Стоимость: 123 р.
    Формат: 60x90/16
    Переплёт: мягкий

    Visual Basic 6. Руководство разработчика (+ CD-ROM)

     Эта книга, написанная известным специалистом и неутомимым пропагандистом Visual Basic, представляет собой прекрасный путеводитель по одному из наиболее популярных визуальных средств разработки Windows-приложений. Подробно освещаются такие ключевые темы программирования на Visual Basic, как проектирование и использование элементов ActiveX, программирование баз данных и разработка Web-приложений. Несомненный интерес представляют главы, посвященные работе с графикой. Большое количество тщательно продуманных примеров облегчает восприятие материала. Подбор материала и стиль изложения делают издание интересным и полезным для программистов разных уровней.

    Автор: Евангелос Петрусос
    Издательство: BHV, Ирина, SYBEX Inc
    Год издания: 2000
    Кол-во страниц: 1072
    Стоимость: 267 р.
    Формат: 70x100/32
    Переплёт: твёрдый

    Остальные книги о VB можно найти     здесь.

    наверх

    Стандартные свойства любого контрола

    ZOrder - отвечает за программное переключение Send To Back, Send To Front?
    Что это такое? К примеру, вы располагаете на форме два различных элемента один над другим. Так вот если вы нажмете правой клавишой мыши на любом из этих элементов вы можете установить, какой их элементов будет поверх другого. Синтаксис использования свойства ZOrder прост:

    object.ZOrder position

    где position определяет уровень (0 - самый верхний уровень)

    наверх

    Добавить контрол во время выполнения программы

    Добавьте TextBox на форму
    В свойствах TextBox'а измените Index на 0
    Этот пример покажет, как добавить TextBox'ы во время выполнения программы
    Вы получите новый TextBox под именем Text1(1).
    Вместо TextBox, конечно, можно использовать и другие контролы

    Private Sub Form_Load()
    Load Text1(1)
    Text1(1).Left = 400
    Text1(1).Top = 400
    Text1(1).Visible = True
    'Для того, чтобы добавить еще textbox, просто добавьте:
    'Load Text1(2)
    'Text1(2).Left = 400
    'Text1(2).Top = 200
    'Text1(2).Visible = True
    End Sub

    наверх

    Отцентрировать контрол на форме

    Добавьте 1 CommandButton. При нажатии на кнопку, она переместится в центр вашей формы

    Private Sub Command1_Click()
    'Replace all the 'Command1' below with the name of the control you want to center.
    Command1.Left = (Form1.Width - Command1.Width) / 2
    Command1.Top = (Form1.Height / 2 - Command1.Height)
    End Sub

    наверх

    Создание формы или контрола произвольной формы

    Добавьте на форму 3 CommandButton. Запустите проект и поочередно нажимайте на кнопки

    Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
    Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
    Private Declare Function Polyline Lib "gdi32" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long
    Private Type POINTAPI
    X As Long
    Y As Long
    End Type
    Dim Result As Long
    'замените цифру '4' ниже на то количество углов, которое вы хотите получить при создании формы
    Dim Points(1 To 4) As POINTAPI
    Private Sub Command1_Click()
    'демонстрация того, как изменится форма
    Call Polyline(Form1.hdc, Points(1), 4)
    End Sub
    Private Sub Command2_Click()
    'создание произвольной формы
    hRgn = CreatePolygonRgn(Points(1), 4, 1)
    'Если вы хотите создать произвольную форму любому контролу, замените, к примеру Form1.hWnd на Command1.hWnd
    'вместо Command1 вы можете использовать любой контрол, имеющий .hWnd
    Result = SetWindowRgn(Form1.hWnd, hRgn, True)
    End Sub
    Private Sub Command3_Click()
    'восстановить оригинальные значения формы
    Result = SetWindowRgn(Form1.hWnd, 0, True)
    End Sub
    Private Sub Form_Load()
    Points(1).X = 500
    Points(1).Y = 500
    Points(2).X = 0
    Points(2).Y = 0
    Points(3).X = 1000
    Points(3).Y = 0
    Points(4).X = 500
    Points(4).Y = 500
    End Sub

    наверх

    Работа с элементами CommonDialog библиотеки Comdlg32.dll

    1. Создайте новый проект Microsoft Visual Basic 6.0.
    2. Добавьте на форму элемент CommandButton.
    3. Добавьте в проект модуль.

    Далее в событии Command1_Click() снимаете комментарий с необходимого вам события CommonDialog и пользуетесь.

    'КОД ФОРМЫ

    Private Sub Command1_Click()
    Module1.ShowAbout 'вызвать окно "О программе"
    'Module1.ShowColor 'вызвать окно выбора цвета
    'Module1.ShowFindFiles 'вызвать окно "Поиск файлов и папок"
    'Module1.ShowFont 'вызвать окно "Выбор шрифта"
    'Module1.ShowFormat 'вызвать окно "Форматирование дискеты"
    'Module1.ShowHelp 'скорее всего, вызов помощи в программе
    'Module1.ShowIcon 'выбор иконки для вашего приложения
    'Module1.ShowObjectProp 'вызов окна "Свойство: Система"
    'Module1.ShowOpen 'вызов окна "Открытие файла"
    'Module1.ShowPrinter 'вызов окна "Печать"
    'Module1.ShowRestart 'вызов окна "Перезарузить сейчас: ДА | НЕТ"
    'Module1.ShowRun 'вызов окна "Запустить программу" (Меню ПУСК | ВЫПОЛНИТЬ)
    'Module1.ShowSave 'вызов окна "Сохранение файла"
    'Module1.ShowShutDown 'вызов окна "Завершение работы Windows"
    'Module1.ShowFolder 'на моем компьютере данная функция "Вызвала недопустимую опреацию"
    End Sub

    'КОД МОДУЛЯ

    Private Type BROWSEINFO
    hOwner As Long
    pidlRoot As Long
    pszDisplayName As String
    lpszTitle As String
    ulFlags As Long
    lpfn As Long
    lParam As Long
    iImage As Long
    End Type

    Private Type OPENFILENAME
    lStructSize As Long
    hwndOwner As Long
    hInstance As Long
    lpstrFilter As String
    lpstrCustomFilter As String
    nMaxCustFilter As Long
    nFilterIndex As Long
    lpstrFile As String
    nMaxFile As Long
    lpstrFileTitle As String
    nMaxFileTitle As Long
    lpstrInitialDir As String
    lpstrTitle As String
    flags As Long
    nFileOffset As Integer
    nFileExtension As Integer
    lpstrDefExt As String
    lCustData As Long
    lpfnHook As Long
    lpTemplateName As String
    End Type

    Private Type CHOOSECOLOR
    lStructSize As Long
    hwndOwner As Long
    hInstance As Long
    RGBResult As Long
    lpCustColors As String
    flags As Long
    lCustData As Long
    lpfnHook As Long
    lpTemplateName As String
    End Type

    Const LF_FACESIZE = 32
    Private Type LOGFONT
    lfHeight As Long
    lfWidth As Long
    lfEscapement As Long
    lfOrientation As Long
    lfWeight As Long
    lfItalic As Byte
    lfUnderline As Byte
    lfStrikeOut As Byte
    lfCharSet As Byte
    lfOutPrecision As Byte
    lfClipPrecision As Byte
    lfQuality As Byte
    lfPitchAndFamily As Byte
    lfFaceName(LF_FACESIZE) As Byte
    End Type

    Private Type ChooseFont
    lStructSize As Long
    hwndOwner As Long
    hdc As Long
    lpLogFont As Long
    iPointSize As Long
    flags As Long
    rgbColors As Long
    lCustData As Long
    lpfnHook As Long
    lpTemplateName As String
    hInstance As Long
    lpszStyle As String
    nFontType As Integer
    MISSING_ALIGNMENT As Integer
    nSizeMin As Long
    nSizeMax As Long
    End Type

    Const CF_INITTOLOGFONTSTRUCT = &H40&
    Const SCREEN_FONTTYPE = &H2000
    Const BOLD_FONTTYPE = &H100
    Const FW_BOLD = 700
    Const LOGPIXELSY = 90

    Private Type PrintDlg
    lStructSize As Long
    hwndOwner As Long
    hDevMode As Long
    hDevNames As Long
    hdc As Long
    flags As Long
    nFromPage As Integer
    nToPage As Integer
    nMinPage As Integer
    nMaxPage As Integer
    nCopies As Integer
    hInstance As Long
    lCustData As Long
    lpfnPrintHook As Long
    lpfnSetupHook As Long
    lpPrintTemplateName As String
    lpSetupTemplateName As String
    hPrintTemplate As Long
    hSetupTemplate As Long
    End Type

    Const CCHDEVICENAME = 32
    Const CCHFORMNAME = 32
    Private Type DEVMODE
    dmDeviceName As String * CCHDEVICENAME
    dmSpecVersion As Integer
    dmDriverVersion As Integer
    dmSize As Integer
    dmDriverExtra As Integer
    dmFields As Long
    dmOrientation As Integer
    dmPaperSize As Integer
    dmPaperLength As Integer
    dmPaperWidth As Integer
    dmScale As Integer
    dmCopies As Integer
    dmDefaultSource As Integer
    dmPrintQuality As Integer
    dmColor As Integer
    dmDuplex As Integer
    dmYResolution As Integer
    dmTTOption As Integer
    dmCollate As Integer
    dmFormName As String * CCHFORMNAME
    dmUnusedPadding As Integer
    dmBitsPerPel As Integer
    dmPelsWidth As Long
    dmPelsHeight As Long
    dmDisplayFlags As Long
    dmDisplayFrequency As Long
    End Type

    Private Type DEVNAMES
    wDriverOffset As Integer
    wDeviceOffset As Integer
    wOutputOffset As Integer
    wDefault As Integer
    extra As String * 100
    End Type

    Const DM_DUPLEX = &H1000&
    Const DM_ORIENTATION = &H1&
    Const GMEM_MOVEABLE = &H2
    Const GMEM_ZEROINIT = &H40

    Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
    Private Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long
    Private Declare Function ChooseColorAPI Lib "comdlg32.dll" Alias "ChooseColorA" (pChoosecolor As CHOOSECOLOR) As Long
    Private Declare Function ChooseFont Lib "comdlg32.dll" Alias "ChooseFontA" (pChoosefont As ChooseFont) As Long
    Private Declare Function PrintDlg Lib "comdlg32.dll" Alias "PrintDlgA" (pPrintdlg As PrintDlg) As Long
    Private Declare Function WinHelp Lib "user32" Alias "WinHelpA" (ByVal hOwner As Long, ByVal lpHelpFile As String, ByVal wCommand As Long, ByVal dwData As Long) As Long
    Private Declare Function SHShutDownDialog Lib "Shell32" Alias "#60" (ByVal YourGuess As Long) As Long
    Private Declare Function SHRestartSystem Lib "Shell32" Alias "#59" (ByVal hOwner As Long, ByVal sPrompt As String, ByVal uFlags As Long) As Long
    Private Declare Function SHRunDialog Lib "Shell32" Alias "#61" (ByVal hOwner As Long, ByVal hIcon As Long, ByVal sDir As Long, ByVal szTitle As String, ByVal szPrompt As String, ByVal uFlags As Long) As Long
    Private Declare Function SHFormatDrive Lib "Shell32" (ByVal hwndOwner As Long, ByVal iDrive As Long, ByVal iCapacity As Long, ByVal iFormatType As Long) As Long
    Private Declare Function SHBrowseForFolder Lib "Shell32" Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
    Private Declare Function SHChangeIconDialog Lib "Shell32" Alias "#62" (ByVal hOwner As Long, ByVal szFilename As String, ByVal Reserved As Long, lpIconIndex As Long) As Long
    Private Declare Function SHObjectProperties Lib "Shell32" Alias "#178" (ByVal hOwner As Long, ByVal uFlags As Long, ByVal sName As String, ByVal sParam As String) As Long
    Private Declare Function SHAbout Lib "Shell32" Alias "ShellAboutA" (ByVal hOwner As Long, ByVal sAppName As String, ByVal sPrompt As String, ByVal hIcon As Long) As Long
    Private Declare Function SHFindFiles Lib "Shell32" Alias "#90" (ByVal pidlRoot As Long, ByVal pidlSavedSearchas As Long) As Boolean
    Private Declare Function SHSimpleIDListFromPath Lib "Shell32" Alias "#162" (ByVal szPath As String) As Long
    Private Declare Function SHGetPathFromIDList Lib "Shell32" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
    Private Declare Function SHFree Lib "Shell32" Alias "#196" ()
    Private Declare Function ILFree Lib "Shell32" Alias "#195" (ByVal pidlFree As Long)
    Private Declare Sub CoTaskMemFree Lib "ole32" (ByVal pv As Long)
    Private Declare Function DestroyIcon Lib "user32" (ByVal hIcon As Long) As Long
    Private Declare Function CopyIcon Lib "user32" (ByVal hIcon As Long) As Long
    Private Declare Function ExtractIconEx Lib "Shell32" Alias "ExtractIconExA" (ByVal lpszFile As String, ByVal nIconIndex As Long, phiconLarge As Long, phiconSmall As Long, ByVal nIcons As Long) As Long
    Private Declare Function CreateFontIndirect Lib "gdi32" Alias "CreateFontIndirectA" (lpLogFont As LOGFONT) As Long
    Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
    Private Declare Function GetTextFace Lib "gdi32" Alias "GetTextFaceA" (ByVal hdc As Long, ByVal nCount As Long, ByVal lpFacename As String) As Long
    Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long
    Private Declare Function GetDC Lib "user32" (ByVal hOwner As Long) As Long
    Private Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (p1 As Any, p2 As Any) As Long
    Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long
    Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As Long
    Private Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As Long) As Long
    Private Declare Function GlobalFree Lib "kernel32" (ByVal hMem As Long) As Long
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)

    Public Enum CommonDialog_Actions
    cdlgOpen = 1
    cdlgSave = 2
    cdlgColor = 3
    cdlgFont = 4
    cdlgPrinter = 5
    cdlgHelp = 6
    cdlgAbout = 7
    cdlgFolder = 8
    cdlgFormat = 9
    cdlgIcon = 10
    cdlgObjectProp = 11
    cdlgRestart = 12
    cdlgRun = 13
    cdlgShutDown = 14
    End Enum

    Public Enum CommonDialog_IconSize
    IconSizeSmall = 16
    IconSizeLarge = 32
    End Enum

    Public Enum CommonDialog_Flags
    cdlOFNAllowMultiselect = &H200
    cdlOFNCreatePrompt = &H2000
    cdlOFNExplorer = &H80000
    cdlOFNExtensionDifferent = &H400
    cdlOFNFileMustExist = &H1000
    cdlOFNHelpButton = &H10
    cdlOFNHideReadOnly = &H4
    cdlOFNLongNames = &H200000
    cdlOFNNoChangeDir = &H8
    cdlOFNNoDereferenceLinks = &H100000
    cdlOFNNoLongNames = &H40000
    cdlOFNNoReadOnlyReturn = &H8000
    cdlOFNNoValidate = &H100
    cdlOFNOverwritePrompt = &H2
    cdlOFNPathMustExist = &H800
    cdlOFNReadOnly = &H1
    cdlOFNShareAware = &H4000
    cdlCCFullOpen = &H2
    cdlCCHelpButton = &H8
    cdlCCPreventFullOpen = &H4
    cdlCCRGBInit = &H1
    cdlPDAllPages = &H0
    cdlPDCollate = &H10
    cdlPDDisablePrintToFile = &H80000
    cdlPDHelpButton = &H800
    cdlPDHidePrintToFile = &H100000
    cdlPDNoPageNums = &H8
    cdlPDNoSelection = &H4
    cdlPDNoWarning = &H80
    cdlPDPageNums = &H2
    cdlPDPrintSetup = &H40
    cdlPDPrintToFile = &H20
    cdlPDReturnDC = &H100
    cdlPDReturnDefault = &H400
    cdlPDReturnIC = &H200
    cdlPDSelection = &H1
    cdlPDUseDevModeCopies = &H40000
    cdlCFANSIOnly = &H400
    cdlCFApply = &H200
    cdlCFBoth = &H3
    cdlCFEffects = &H100
    cdlCFFixedPitchOnly = &H4000
    cdlCFForceFontExist = &H10000
    cdlCFHelpButton = &H4
    cdlCFLimitSize = &H2000
    cdlCFNoFaceSel = &H80000
    cdlCFNoSimulations = &H1000
    cdlCFNoSizeSel = &H200000
    cdlCFNoStyleSel = &H100000
    cdlCFNoVectorFonts = &H800
    cdlCFPrinterFonts = &H2
    cdlCFScalableOnly = &H20000
    cdlCFScreenFonts = &H1
    cdlCFTTOnly = &H40000
    cdlCFWYSIWYG = &H8000
    Restart_Logoff = &H0
    Restart_ShutDown = &H1
    Restart_Reboot = &H2
    Restart_Force = &H4
    Run_NoBrowse = &H10
    Run_NoDefault = &H20
    Run_CalcDir = &H40
    Run_NoLable = &H80
    ObjProp_System = &H0
    ObjProp_Printer = &H100
    ObjProp_File = &H200
    ObjProp_Mouse = &H300
    ObjProp_Locale = &H400
    ObjProp_MMedia = &H500
    ObjProp_TimeDate = &H600
    ObjProp_Network = &H700
    ObjProp_Screen = &H800
    ObjProp_Internet = &H900
    Folder_COMPUTER = &H1000
    Folder_PRINTER = &H2000
    Folder_INCLUDEFILES = &H4001
    End Enum
    Public Enum CommonDialog_HelpCommand
    HelpCommandHelp = &H102&
    HelpContents = &H3&
    HelpContext = &H1
    HelpContextPOPUP = &H8&
    HelpForceFile = &H9&
    HelpHelpOnHelp = &H4
    HelpIndex = &H3
    HelpKeyHelp = &H101
    HelpPartialKey = &H105&
    HelpQuit = &H2
    HelpSetContents = &H5&
    HelpSetIndex = &H5
    HelpMultiKey = &H201&
    HelpSetWinPos = &H203&
    End Enum

    Private RetValue As Long
    Const MAX_PATH = 260
    Private OFN As OPENFILENAME
    Private mFileName As String
    Private mFileTitle As String
    Private mhOwner As Long
    Private mDialogTitle As String
    Private mFilter As String
    Private mInitDir As String
    Private mDefaultExt As String
    Private mFilterIndex As Long
    Private mHelpFile As String
    Private mHelpCommand As CommonDialog_HelpCommand
    Private mHelpKey As Long
    Private mRGBResult As Long
    Private mItalic As Boolean
    Private mUnderline As Boolean
    Private mStrikethru As Boolean
    Private mFontName As String
    Private mFontSize As Long
    Private mBold As Boolean
    Private mDialogPrompt As String
    Private mFlags As CommonDialog_Flags
    Private mCancelError As Boolean
    Private mhIcon As Long
    Private mAppName As String
    Private mIconSize As CommonDialog_IconSize
    Public Property Let Action(ByVal New_Action As CommonDialog_Actions)
    Select Case New_Action
    Case 1
    ShowOpen
    Case 2
    ShowSave
    Case 3
    ShowColor
    Case 4
    ShowFont
    Case 5
    ShowPrinter
    Case 6
    ShowHelp
    Case 7
    ShowAbout
    Case 8
    ShowFolder
    Case 9
    ShowFormat
    Case 10
    ShowIcon
    Case 11
    ShowObjectProp
    Case 12
    ShowRestart
    Case 13
    ShowRun
    Case 14
    ShowShutDown
    Case Else
    End Select
    End Property

    Public Property Let CancelError(ByVal vData As Boolean)
    mCancelError = vData
    End Property

    Public Property Get CancelError() As Boolean
    CancelError = mCancelError
    End Property

    Public Property Get hOwner() As Long
    hOwner = mhOwner
    End Property

    Public Property Let hOwner(ByVal New_hOwner As Long)
    mhOwner = New_hOwner
    End Property

    Public Property Get flags() As CommonDialog_Flags
    flags = mFlags
    End Property

    Public Property Let flags(ByVal New_Flags As CommonDialog_Flags)
    mFlags = New_Flags
    End Property

    Public Property Get DialogTitle() As String
    DialogTitle = mDialogTitle
    End Property

    Public Property Let DialogTitle(sTitle As String)
    mDialogTitle = sTitle
    End Property

    Public Property Get DialogPrompt() As String
    DialogPrompt = mDialogPrompt
    End Property

    Public Property Let DialogPrompt(ByVal New_Prompt As String)
    mDialogPrompt = New_Prompt
    End Property

    Public Property Get AppName() As String
    AppName = mAppName
    End Property

    Public Property Let AppName(ByVal New_AppName As String)
    mAppName = New_AppName
    End Property

    Public Property Let hIcon(ByVal vData As Long)
    mhIcon = vData
    End Property

    Public Property Get hIcon() As Long
    hIcon = mhIcon
    End Property
    Public Property Get Bold() As Boolean
    Bold = mBold
    End Property

    Public Property Let Bold(bBold As Boolean)
    mBold = bBold
    End Property

    Public Property Get FontName() As String
    FontName = mFontName
    End Property

    Public Property Let FontName(sName As String)
    mFontName = sName
    End Property

    Public Property Get FontSize() As Long
    FontSize = mFontSize
    End Property

    Public Property Let FontSize(lSize As Long)
    mFontSize = lSize
    End Property

    Public Property Get Italic() As Boolean
    Italic = mItalic
    End Property

    Public Property Let Italic(BItalic As Boolean)
    mItalic = BItalic
    End Property

    Public Property Get StrikeThru() As Boolean
    StrikeThru = mStrikethru
    End Property

    Public Property Let StrikeThru(bStrikethru As Boolean)
    mStrikethru = bStrikethru
    End Property

    Public Property Get Underline() As Boolean
    Underline = mUnderline
    End Property

    Public Property Let Underline(bUnderline As Boolean)
    mUnderline = bUnderline
    End Property
    Public Property Get DefaultExt() As String
    DefaultExt = mDefaultExt
    End Property

    Public Property Let DefaultExt(sDefExt As String)
    mDefaultExt = DefaultExt
    End Property

    Public Property Get FileName() As String
    FileName = mFileName
    End Property

    Public Property Let FileName(sFileName As String)
    mFileName = sFileName
    End Property

    Public Property Get FileTitle() As String
    FileTitle = mFileTitle
    End Property

    Public Property Let FileTitle(sTitle As String)
    mFileTitle = sTitle
    End Property

    Public Property Get Filter() As String
    Filter = mFilter
    End Property

    Public Property Let Filter(sFilter As String)
    mFilter = sFilter
    End Property

    Public Property Get FilterIndex() As Long
    FilterIndex = mFilterIndex
    End Property

    Public Property Let FilterIndex(lIndex As Long)
    mFilterIndex = lIndex
    End Property

    Public Property Get InitDir() As String
    InitDir = mInitDir
    End Property

    Public Property Let InitDir(sDir As String)
    mInitDir = sDir
    End Property

    Public Property Get IconSize() As CommonDialog_IconSize
    If mIconSize <> IconSizeLarge And mIconSize <> IconSizeSmall Then mIconSize = IconSizeLarge
    IconSize = mIconSize
    End Property

    Public Property Let IconSize(nSize As CommonDialog_IconSize)
    If nSize <> IconSizeLarge And nSize <> IconSizeSmall Then nSize = IconSizeLarge
    mIconSize = nSize
    End Property
    Public Property Get HelpCommand() As CommonDialog_HelpCommand
    HelpCommand = mHelpCommand
    End Property

    Public Property Let HelpCommand(lCommand As CommonDialog_HelpCommand)
    mHelpCommand = lCommand
    End Property

    Public Property Get HelpFile() As String
    HelpFile = mHelpFile
    End Property

    Public Property Let HelpFile(sFile As String)
    mHelpFile = sFile
    End Property

    Public Property Get HelpKey() As Long
    HelpKey = mHelpKey
    End Property

    Public Property Let HelpKey(sKey As Long)
    mHelpKey = sKey
    End Property
    Public Property Get RGBResult() As Long
    RGBResult = mRGBResult
    End Property

    Public Property Let RGBResult(lValue As Long)
    mRGBResult = lValue
    End Property

    Public Function ShowShutDown()
    SHShutDownDialog mhOwner
    End Function
    Public Function ShowRestart()
    Dim uFlag As Long
    uFlag = mFlags And (&H0 Or &H1 Or &H2 Or &H4)
    SHRestartSystem mhOwner, mDialogPrompt, uFlag
    End Function
    Public Function ShowRun()
    Dim uFlag As Long
    uFlag = mFlags And (&H10 Or &H20 Or &H40 Or &H80)
    uFlag = uFlag / 16
    SHRunDialog mhOwner, mhIcon, 0, mDialogTitle, mDialogPrompt, uFlag
    End Function
    Public Function ShowFormat(Optional ByVal iDrive As Long, Optional ByVal iCapacity As Long, Optional ByVal iFormatType As Long) As Long
    ShowFormat = SHFormatDrive(mhOwner, iDrive, iCapacity, iFormatType)
    End Function
    Public Function ShowIcon()
    Dim nIconIdx As Long, OldFileName As String
    Dim hSmallIcon As Long, hLargeIcon As Long, NewIcon As Long
    If Right(mFileName, 1) = "\" Then Exit Function
    OldFileName = mFileName
    mFileName = mFileName & String$(MAX_PATH - Len(mFileName), 0) 'FileName must be maximum lenth
    If SHChangeIconDialog(0, mFileName, 0, nIconIdx) Then
    If ExtractIconEx(mFileName, nIconIdx, hLargeIcon, hSmallIcon, 1) > 0 Then
    NewIcon = IIf(mIconSize - 32, hSmallIcon, hLargeIcon)
    mhIcon = CopyIcon(NewIcon)
    DestroyIcon hSmallIcon
    DestroyIcon hLargeIcon
    End If
    End If
    mFileName = OldFileName
    End Function
    Public Function ShowFolder() As String
    On Error GoTo errhan
    Dim bi As BROWSEINFO
    Dim pidl As Long, path As String, pos As Integer, uFlag As Long
    TopFolder = TopFolder & Chr$(0)
    SelFolder = SelFolder & Chr$(0)
    bi.hOwner = mhOwner
    bi.pidlRoot = SHSimpleIDListFromPath(mInitDir)
    bi.lpszTitle = mDialogPrompt

    uFlag = mFlags And (&H1000 Or &H2000 Or &H4001)
    If uFlag < Folder_COMPUTER Then
    bi.ulFlags = &H1
    Else
    bi.ulFlags = uFlag
    End If
    pidl = SHBrowseForFolder(bi)
    path = String$(MAX_PATH, 0)
    If SHGetPathFromIDList(ByVal pidl, ByVal path) Then
    pos = InStr(path, Chr$(0))
    InitDir = Left(path, pos - 1)
    End If
    Call CoTaskMemFree(pidl)
    Exit Sub
    errhan:
    End Function

    Public Function ShowObjectProp(Optional ByVal sObjectName As String, Optional ByVal sTab As String)
    Dim uFlag As Long, sObj As String
    Dim sPath As String
    uFlag = mFlags And (&H100 Or &H200 Or &H300 Or &H400 Or &H500 Or &H600 Or &H700 Or &H800 Or &H900)
    uFlag = uFlag / 256
    Select Case uFlag
    Case 1, 2
    sObj = sObjectName
    Case 3
    uFlag = 0
    Call Shell("rundll32.exe shell32.dll,Control_RunDLL main.cpl,,0", vbNormalFocus)
    Case 4
    uFlag = 0
    Call Shell("rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,0", vbNormalFocus)
    Case 5
    uFlag = 0
    Call Shell("rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,0", vbNormalFocus)
    Case 6
    uFlag = 0
    Call Shell("rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,0", vbNormalFocus)
    Case 7
    uFlag = 0
    Call Shell("rundll32.exe shell32.dll,Control_RunDLL netcpl.cpl,,0", vbNormalFocus)
    Case 8
    uFlag = 0
    Call Shell("rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0", vbNormalFocus)
    Case 9
    uFlag = 0
    Call Shell("rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl,,0", vbNormalFocus)
    Case Else
    uFlag = 2
    sObj = ""
    End Select
    If uFlag > 0 Then SHObjectProperties mhOwner, uFlag, sObj, sTab
    End Function
    Public Function ShowAbout()
    If mAppName = "" Then mAppName = Chr$(0)
    SHAbout mhOwner, mAppName, mDialogPrompt, mhIcon
    End Function
    Public Sub ShowOpen()
    Dim iDelim As Integer
    InitOFN
    RetValue = GetOpenFileName(OFN)
    If RetValue > 0 Then
    iDelim = InStr(OFN.lpstrFileTitle, vbNullChar)
    If iDelim Then mFileTitle = Left$(OFN.lpstrFileTitle, iDelim - 1)
    iDelim = InStr(OFN.lpstrFile, vbNullChar)
    If iDelim Then mFileName = Left$(OFN.lpstrFile, iDelim - 1)
    Else
    If mCancelError Then Err.Raise 0
    End If
    End Sub
    Public Sub ShowSave()
    Dim iDelim As Integer
    InitOFN
    RetValue = GetSaveFileName(OFN)
    If RetValue > 0 Then
    iDelim = InStr(OFN.lpstrFileTitle, vbNullChar)
    If iDelim Then mFileTitle = Left$(OFN.lpstrFileTitle, iDelim - 1)
    iDelim = InStr(OFN.lpstrFile, vbNullChar)
    If iDelim Then mFileName = Left$(OFN.lpstrFile, iDelim - 1)
    Else
    If mCancelError Then Err.Raise 0
    End If
    End Sub
    Private Sub InitOFN()
    Dim sTemp As String, i As Integer
    Dim uFlag As Long
    uFlag = mFlags And (&H1 Or &H2 Or &H4 Or &H8 Or &H10 Or &H100 Or &H200 Or &H400 Or &H800 Or &H1000 Or &H2000 Or &H4000 Or &H8000 Or &H40000 Or &H80000 Or &H100000 Or &H200000)
    With OFN
    .lStructSize = Len(OFN)
    .hwndOwner = mhOwner
    .flags = uFlag
    .lpstrDefExt = mDefaultExt
    sTemp = mInitDir
    If sTemp = "" Then sTemp = App.path
    .lpstrInitialDir = sTemp
    sTemp = mFileName
    .lpstrFile = sTemp & String$(255 - Len(sTemp), 0)
    .nMaxFile = 255
    .lpstrFileTitle = String$(255, 0)
    .nMaxFileTitle = 255
    sTemp = mFilter
    For i = 1 To Len(sTemp)
    If Mid(sTemp, i, 1) = "|" Then
    Mid(sTemp, i, 1) = vbNullChar
    End If
    Next
    sTemp = sTemp & String$(2, 0)
    .lpstrFilter = sTemp
    .nFilterIndex = mFilterIndex
    .lpstrTitle = mDialogTitle
    .hInstance = App.hInstance
    End With
    End Sub
    Public Sub ShowHelp()
    RetValue = WinHelp(mhOwner, mHelpFile, mHelpCommand, mHelpKey)
    End Sub
    Public Sub ShowColor()
    Dim CC As CHOOSECOLOR
    Dim CustomColors() As Byte
    Dim uFlag As Long
    ReDim CustomColors(0 To 16 * 4 - 1) As Byte
    For i = LBound(CustomColors) To UBound(CustomColors)
    CustomColors(i) = 255
    Next i
    uFlag = mFlags And (&H1 Or &H2 Or &H4 Or &H8)
    With CC
    .lStructSize = Len(CC)
    .hwndOwner = mhOwner
    .hInstance = App.hInstance
    .lpCustColors = StrConv(CustomColors, vbUnicode)
    .flags = uFlag
    .RGBResult = mRGBResult
    RetValue = ChooseColorAPI(CC)
    If RetValue = 0 Then
    If mCancelError Then Err.Raise (RetValue)
    Else
    CustomColors = StrConv(.lpCustColors, vbFromUnicode)
    mRGBResult = .RGBResult
    End If
    End With
    End Sub
    Public Sub ShowFont()
    Dim CF As ChooseFont
    Dim LF As LOGFONT
    Dim TempByteArray() As Byte
    Dim ByteArrayLimit As Long
    Dim OldhDC As Long
    Dim FontToUse As Long
    Dim tbuf As String * 80
    Dim x As Long
    Dim uFlag As Long
    uFlag = mFlags And (&H1 Or &H2 Or &H3 Or &H4 Or &H100 Or &H200 Or &H400 Or &H800 Or &H1000 Or &H2000 Or &H4000 Or &H8000 Or &H10000 Or &H20000 Or &H40000 Or &H80000 Or &H100000 Or &H200000)
    TempByteArray = StrConv(mFontName & vbNullChar, vbFromUnicode)
    ByteArrayLimit = UBound(TempByteArray)
    With LF
    For x = 0 To ByteArrayLimit
    .lfFaceName(x) = TempByteArray(x)
    Next
    .lfHeight = mFontSize / 72 * GetDeviceCaps(GetDC(mhOwner), LOGPIXELSY)
    .lfItalic = mItalic * -1
    .lfUnderline = mUnderline * -1
    .lfStrikeOut = mStrikethru * -1
    If mBold Then .lfWeight = FW_BOLD
    End With
    With CF
    .lStructSize = Len(CF)
    .hwndOwner = mhOwner
    .hdc = GetDC(mhOwner)
    .lpLogFont = lstrcpy(LF, LF)
    If Not uFlag Then
    .flags = cdlCFScreenFonts
    Else
    .flags = uFlag Or cdlCFWYSIWYG
    End If
    .flags = .flags Or cdlCFEffects Or CF_INITTOLOGFONTSTRUCT
    .rgbColors = mRGBResult
    .lCustData = 0
    .lpfnHook = 0
    .lpTemplateName = 0
    .hInstance = 0
    .lpszStyle = 0
    .nFontType = SCREEN_FONTTYPE
    .nSizeMin = 0
    .nSizeMax = 0
    .iPointSize = mFontSize * 10
    End With
    RetValue = ChooseFont(CF)
    If RetValue = 0 Then
    If mCancelError Then Err.Raise (RetValue)
    Else
    With LF
    mItalic = .lfItalic * -1
    mUnderline = .lfUnderline * -1
    mStrikethru = .lfStrikeOut * -1
    End With
    With CF
    mFontSize = .iPointSize \ 10
    mRGBResult = .rgbColors
    If .nFontType And BOLD_FONTTYPE Then
    mBold = True
    Else
    mBold = False
    End If
    End With
    FontToUse = CreateFontIndirect(LF)
    If FontToUse = 0 Then Exit Sub
    OldhDC = SelectObject(CF.hdc, FontToUse)
    RetValue = GetTextFace(CF.hdc, 79, tbuf)
    mFontName = Mid$(tbuf, 1, RetValue)
    End If
    End Sub
    Public Sub ShowPrinter()
    Dim PD As PrintDlg
    Dim DM As DEVMODE
    Dim DN As DEVNAMES
    Dim lpDevMode As Long, lpDevName As Long
    Dim objPrinter As Printer, NewPrinterName As String
    Dim strSetting As String
    Dim uFlag As Long
    uFlag = mFlags And (&H0 Or &H1 Or &H2 Or &H4 Or &H8 Or &H10 Or &H20 Or &H40 Or &H80 Or &H100 Or &H200 Or &H400 Or &H800 Or &H40000 Or &H80000 Or &H100000)
    With PD
    .lStructSize = Len(PD)
    .hwndOwner = mhOwner
    .hdc = GetDC(mhOwner)
    .flags = uFlag
    End With
    On Error GoTo ErrorHandler
    With DM
    .dmDeviceName = Printer.DeviceName
    .dmSize = Len(DM)
    .dmFields = DM_ORIENTATION Or DM_DUPLEX
    .dmOrientation = Printer.Orientation
    On Error Resume Next
    .dmDuplex = Printer.Duplex
    On Error GoTo 0
    End With
    PD.hDevMode = GlobalAlloc(GMEM_MOVEABLE Or GMEM_ZEROINIT, Len(DM))
    lpDevMode = GlobalLock(PD.hDevMode)
    If lpDevMode > 0 Then
    CopyMemory ByVal lpDevMode, DM, Len(DM)
    RetValue = GlobalUnlock(lpDevMode)
    End If
    With DN
    .wDriverOffset = 8
    .wDeviceOffset = .wDriverOffset + 1 + Len(Printer.DriverName)
    .wOutputOffset = .wDeviceOffset + 1 + Len(Printer.Port)
    .wDefault = 0
    End With
    With Printer
    DN.extra = .DriverName & vbNullChar & .DeviceName & vbNullChar & .Port & vbNullChar
    End With
    PD.hDevNames = GlobalAlloc(GMEM_MOVEABLE Or GMEM_ZEROINIT, Len(DN))
    lpDevName = GlobalLock(PD.hDevNames)
    If lpDevName > 0 Then
    CopyMemory ByVal lpDevName, DN, Len(DN)
    RetValue = GlobalUnlock(lpDevName)
    End If
    RetValue = PrintDlg(PD)
    If RetValue = 0 Then
    If mCancelError Then Err.Raise (RetValue)
    Else
    mhOwner = PD.hdc
    lpDevName = GlobalLock(PD.hDevNames)
    CopyMemory DN, ByVal lpDevName, 45
    RetValue = GlobalUnlock(lpDevName)
    GlobalFree PD.hDevNames
    lpDevMode = GlobalLock(PD.hDevMode)
    CopyMemory DM, ByVal lpDevMode, Len(DM)
    RetValue = GlobalUnlock(PD.hDevMode)
    GlobalFree PD.hDevMode
    NewPrinterName = UCase$(Left(DM.dmDeviceName, InStr(DM.dmDeviceName, vbNullChar) - 1))
    If Printer.DeviceName <> NewPrinterName Then
    For Each objPrinter In Printers
    If UCase$(objPrinter.DeviceName) = NewPrinterName Then
    Set Printer = objPrinter
    End If
    Next
    End If
    On Error Resume Next

    With Printer
    .Copies = DM.dmCopies
    .Duplex = DM.dmDuplex
    .Orientation = DM.dmOrientation
    End With
    On Error GoTo 0
    End If
    ExitSub:
    Exit Sub
    ErrorHandler:
    MsgBox Err.Description, vbExclamation, "Printer Error"
    Resume ExitSub
    End Sub

    Public Sub ShowFindFiles()
    SHFindFiles 0, 0
    End Sub
    Private Sub UserControl_Resize()
    With UserControl
    .Width = 555
    .Height = 540
    .ScaleLeft = 0
    .ScaleHeight = 540
    .ScaleWidth = 555
    End With
    End Sub

    наверх

    Диалог "Открытие файла" без использования OCX

    Данный пример покажет, как можно вывести диалог "Открытие файла" без использования OCX. Таких, к примеру, как библиотека Microsoft Common Dialog Control 6.0

    Private Type OPENFILENAME
    lStructSize As Long
    hwndOwner As Long
    hInstance As Long
    lpstrFilter As String
    lpstrCustomFilter As String
    nMaxCustFilter As Long
    nFilterIndex As Long
    lpstrFile As String
    nMaxFile As Long
    lpstrFileTitle As String
    nMaxFileTitle As Long
    lpstrInitialDir As String
    lpstrTitle As String
    flags As Long
    nFileOffset As Integer
    nFileExtension As Integer
    lpstrDefExt As String
    lCustData As Long
    lpfnHook As Long
    lpTemplateName As String
    End Type

    Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long

    Private Sub Command1_Click()
    Dim ofn As OPENFILENAME
    ofn.lStructSize = Len(ofn)
    ofn.hwndOwner = Form1.hWnd
    ofn.hInstance = App.hInstance
    ofn.lpstrFilter = "Text Files (*.txt)" + Chr$(0) + "*.txt" + Chr$(0) + "Rich Text Files (*.rtf)" + Chr$(0) + "*.rtf" + Chr$(0)
    ofn.lpstrFile = Space$(254)
    ofn.nMaxFile = 255
    ofn.lpstrFileTitle = Space$(254)
    ofn.nMaxFileTitle = 255
    ofn.lpstrInitialDir = CurDir
    ofn.lpstrTitle = "Our File Open Title"
    ofn.flags = 0
    Dim a
    a = GetOpenFileName(ofn)

    If (a) Then
    MsgBox "File to Open: " + Trim$(ofn.lpstrFile)
    Else
    MsgBox "Cancel was pressed"
    End If
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Анастасия

    Ответ ожидается по этому адресу

    А как в Win'2000 изменить цвет названия иконок на рабочем столе??? Например: надпись "Корзина" написана белым цветом на синем раочем столе, а я хочу чтобы надпись была чёрной.

    Автор вопроса: Вадим Александрович Ярошенко

    Ответ ожидается по этому адресу

    Подскажите как можно в VB работать с BTrieve - файлами.

    Автор вопроса: Анастасия

    Ответ ожидается по этому адресу

    А как в Win'2000 измерить загруженность процессора???

    Автор вопроса: Alex

    Ответ ожидается по этому адресу

    VB6 не понимает никаких БД, кроме DataAcces,после установки Office2000, хотя раньше брал Excel97, Access97...

    Автор вопроса: СаНеК

    Ответ ожидается по этому адресу

    Допустим у меня есть форма на которой есть Textbox и 2 кнопки. По нажатию 1 кнопки нужно прочитать из файла NN.nn первые х строк и вывести их в textbox, а по нажатию второй сохранить эти строки в NN.nn на то же место. Пожалуйста помогите

    Автор вопроса: Виктор Владимирович

    Ответ ожидается по этому адресу

    Подскажите как путём перестановки всех цифр в числе получить все возможные числа.

    Автор вопроса: Юрий Чернов

    Ответ ожидается по этому адресу

    Встречал ли кто-либо ActiveX для работы с USB-портом (аналог MsComm32.ocx для COM-порта)?

    Ответы:

    Вопрос:

    Почему исполнение в MS Word любого польяовательского макроса на VB, даже не очень объемного, яанимает слишком много времени. Причем это происходит только при первом его яапуске. В дальнейшем работа любого существующего макроса происходит с яавидной скоростью.

    Здесь же хотел бы спросить почему иногда происходит яаметное яамедление яакрытия и открытия несложных документов в MS Word. Если кто-нибудь с этим уже сталкивался - поясните.

    Ответ:

    Автор ответа: Shemyakin, Dmitry

    Дело в том, что при первом запуске код макроса предварительно компилируется и храниться в так называемом пи-коде. Это и требует некоторого времени. В дальнейшем используется только этот скомпилированный код. Когда кто либо вносит изменения в макрос, код перекомпилируется.

    Вопрос:

    Подскажите, как можно сделать, чтобы у тебя был анимированный рисунок на форме, не могу найти нужный контейнер для воспроизведения, скажем *.gif файлов.

    Ответ:

    Автор ответа: CaHeK

    Это связано со спецификой Word. Ты на верное замечал что даже не очень большой текст по размеру файла становится весомым. Это потому что Word в файлы кладет свою информацию (шрифт и т.д), а при загрузке он её анализирует, этим и обуславливается задержка

    Вопрос:

    Как на VB6 сделать чтобы текст типа 5x-2y введеный в TextBox присвоился переменной не как текст, а как уравнение с неизвесными?

    Ответ:

    Автор ответа: Shemyakin, Dmitry

    с неизвестными? что то новенькое :)
    Надо писать парсер. А дело это не из простых, тем более, что нужно будет самому программировать весь математический аппарат, который умеет оперировать с уравнениями.

    Вопрос:

    Народ, подскажите кто-нить, почему API функция ExitWindowsEx не завершает работу или не выключает комп, а завершает сеанс данного юзера и предлагает войти под новым именем ?

    Ответ:

    Автор ответа: Игорь

    Возможно, что у тебя используется константа = 0 (см. ниже), она равносильна входу в систему под другим именем.
    Нужно делать так:
    Private EWX_LOGOFF = 0 'Входит в систему под другим именем.
    Private EWX_SHUTDOWN = 1 'Завершает работу и выключает питание
    Private EWX_REBOOT = 2 'Перезагружает компьютер
    Private EWX_FORCE = 4 'Закрывает все программы не сохраняя файлы
    Private EWX_POWEROFF = 8 'Завершает работу системы и если есть возможность выключает компьютер
    Пример:
    Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long

    Form_Load
    ExitWindowsEx EWX_REBOOT 'Перезагружаем компьютер
    End Sub
    Вот и все.

    Вопрос:

    Народ, подскажите кто-нить, почему API функция ExitWindowsEx не завершает работу или не выключает комп, а завершает сеанс данного юзера и предлагает войти под новым именем ?

    Ответ:

    Автор ответа: Владимир Капустин

    Может попробуете функцию ExitWindows ?

    Public Declare Function ExitWindows Lib "user32" Alias "ExitWindows" (ByVal dwReserved As Long, ByVal
    uReturnCode As Long) As Long
    ' MyExit - любая переменная
    1.Перезагрузить Windows
    MyExit = ExitWindows(dwReserved,&H42)
    2.Выйти в DOS(VB3) или Выключить Питание(VB6)
    MyExit = ExitWindows(dwReserved,0)
    3. Перезагрузить ЭВМ
    MyExit = ExitWindows(dwReserved,&H43)

    Если не сработает, тогда попробуйте подставить вместо 16-ричных значений эти константы (они взяты из API TEXT Viewer для 6.0 про(рус)).
    Public Const EWX_FORCE = 4
    Public Const EWX_LOGOFF = 0
    Public Const EWX_REBOOT = 2
    Public Const EWX_SHUTDOWN = 1

    К сожелению проверить их не могу, так как тяжело подключится к Интернет после перезагрузки. Если это не сработает, напишите мне. Я сделаю пример.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 32.

VBNet
  • Библиотека кодов
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Subscribe.Ru увеличило максимальный размер рассылки до 100 кб. В связи с этим вопрос:
Какого размера Вы хотели бы получать рассылку?
Менее 20 кб
От 20 до 40 кб
От 40 до 60 кб
От 60 до 80 кб
Выше 80 кб

В какой день (дни) недели Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."?
Понедельник
Вторник
Среда
Четверг
Пятница
Суббота
Воскресение

С какой периодичностью Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."?
Каждый день
2 раза в неделю
Раз в неделю
Раз в две недели
Раз в месяц
Реже

Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Очередной 32 выпуск рассылки.
    Читайте!

    Содержание выпуска
    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Microsoft Visual Basic 6.0. Мастерская разработчика (+ CD-ROM)

     Книга состоит из 3 частей (34 главы) и предметного указателя. Написанная живо и доходчиво, она позволит освоить множество полезных приемов программирования, в том числе объектно-ориентированного, и научит, как создавать 32-разрядные приложения для Windows 95/98 и Windows NT — от экранных заставок до программ, ориентированных на Интернет. Кроме того, Вы узнаете, как расширить возможности языка за счет функций Win32 API и воспользоваться преимуществами технологии ActiveX.

    Автор: Джон Кларк Крейг, Джефф Уэбб
    Издательство: Русская Редакция
    Год издания: 2001
    Кол-во страниц: 720
    Стоимость: 272 р.
    Формат: 70х100/16
    Переплёт: твёрдый

    VB Script и ActiveX

     Книга предназначена для разработчиков Web - приложений на языке VBScript, желающих повысить свой профессиональный уровень и стать экспертами в этой области. В ней подробно рассказывается о новых возможностях VBScript, включая использование именованных констант, функций, переменных и коллекций, приводится вся необходимая информация о технологии ActiveX, принципах взаимодействия VBScript и Visual Basic при создании приложений, работающих на сервере. Прочитав эту книгу, вы научитесь использовать звуковые эффекты, создавать анимированную графику, строить формы для ввода данных, узнаете, как с помощью VBScript создать в Web электронный магазин и отслеживать число посетителей и деланные ими покупки. Вы даже сумеете написать увлекательную мультимедийную игру для Web.

    Автор: Скотт Палмер
    Издательство: Питер
    Год издания: 1999
    Кол-во страниц: 368
    Стоимость: 94 р.
    Формат: 70х100/16
    Переплёт: мягкий

    VBA 2000. Самоучитель

     В книге содержится краткий курс по использованию языка и системы VBA для Word и Excel 2000. Книга предназначена для начинающих программировать в среде Windows 95/98 с использованием в качестве базовых таких объектов Word и Excel, как документы, рабочие книги, листы и так далее. Материала книги достаточно для создания как простых макросов, помогающих автоматизировать рутинную повторяющуюся работу над документами и электронными таблицами, так и для разработки достаточно сложных приложений, обрабатывающих данные в диалоговых окнах, обеспечивающих пользователя самыми современными интерфейсными средствами.

    Автор: Кузьменко В
    Издательство: Бином
    Год издания: 2000
    Кол-во страниц: 416
    Стоимость: 116 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Visual Basic 6 Desktop. Экзамен 70-176

     Книги серии `Экзамен – экстерном` представляют собой удобные, сжатые, хорошо структурированные конспекты для подготовки к сдаче сертификационных экзаменов на звание Microsoft Certified Solution Developer. Книга `Visual Basic 6.0 Desktop. Экзамен 70-176` содержит только действительно необходимый материал, типовые вопросы с ответами и пример экзамена. Возможно, некоторые подходы, применяемые автором, покажутся вам не совсем привычными - не удивляйтесь: это не учебник по Visual Basic; организация материала в этой книге призвана максимально облегчить задачу экзаменуемого. Учтите, что в ряде случаев экзаменационные вопросы выходят за рамки тем, отраженных в документации по Visual Basic, а иной раз правильные ответы на них даже входят в противоречие с `официальной` информацией.

    Автор: Майкл Макдоналд
    Издательство: Питер
    Год издания: 2001
    Кол-во страниц: 608
    Стоимость: 123 р.
    Формат: 60x90/16
    Переплёт: мягкий

    Visual Basic 6. Руководство разработчика (+ CD-ROM)

     Эта книга, написанная известным специалистом и неутомимым пропагандистом Visual Basic, представляет собой прекрасный путеводитель по одному из наиболее популярных визуальных средств разработки Windows-приложений. Подробно освещаются такие ключевые темы программирования на Visual Basic, как проектирование и использование элементов ActiveX, программирование баз данных и разработка Web-приложений. Несомненный интерес представляют главы, посвященные работе с графикой. Большое количество тщательно продуманных примеров облегчает восприятие материала. Подбор материала и стиль изложения делают издание интересным и полезным для программистов разных уровней.

    Автор: Евангелос Петрусос
    Издательство: BHV, Ирина, SYBEX Inc
    Год издания: 2000
    Кол-во страниц: 1072
    Стоимость: 267 р.
    Формат: 70x100/32
    Переплёт: твёрдый

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 17.02.2002 06:50 | Раздел: Примеры кода | Автор: JEDI

    CoolExplorer - Пример на тему открытия окна Internet Explorer. Здесь сделано так, что окно как бы раскрывается... т.е. плавно "выезжает" сверху экрано. Все очень просто, без API и фичей. Может быть кому-то пригодится такой и пример.

    Дата: 16.02.2002 06:56 | Раздел: Примеры кода | Автор: Половый Александр

    NetMsg - Предлагаю еще одну программку NetMsg она работает только в NT/2000 предназначена для отправки сообщений по сети (должна быть включена служба сообщений). Поставляется, естественно, в исходниках и может быть изменена под Ваши нужды.

    Дата: 14.02.2002 06:10 | Раздел: Примеры кода | Автор: Беляев Данила

    Pos - Вы мечтали создать свою линейку прокрутки? Вот основы создания линейки прокрутки стандартным VB кодом! Без всяких сложностей API, все очень просто и доступно!

    Дата: 13.02.2002 05:58 | Раздел: Примеры кода | Автор: Беляев Данила

    Shadow - Как сделать тень от Вашей формы на другие? Это же просто! Вот пример, который покажет как это можно сделать.

    Дата: 13.02.2002 05:49 | Раздел: Примеры кода | Автор: Беляев Данила

    ProgressBar - Основы создания прогрессбара, получился очень понятный и интересный пример, а с помощью DrawMode выводим и инвертируем процент выполнения работы... Если хотите сами сделать ProgressBar, то этот пример для Вас.

    Дата: 12.02.2002 06:40 | Раздел: Статьи по VB | Автор: Юрий Гвоздев

    Использование контролов из комплекта Olectra Resizer при построении пользовательского интерфейса программ Visual Basic - Обычная, встречающаяся ежедневно ситуация: средствами Visual Basic вы создали пользовательский интерфейс, выровняли кнопочки и надписи, подобрали шрифт, и.т.д. Однако теперь стоит изменить размеры той или иной формы, и ее вид перестает вас удовлетворять. Сразу все куда-то съезжает, нарушаются пропорции. Единственное, что предлагает в данной ситуации Visual Basic - прописать вручную поведение каждого элемента на форме в событии Resize. Некоторые программисты стараются не связываться с этим событием и создают интерфейс с формами фиксированного размера. Лень - двигатель прогресса, и конечно, хотелось бы вместо утомительного написания кода задать поведение элементов формы простым движением мышки (программирование-то у нас визуальное). Программа, позволяющая это сделать, существует. Это программа Olectra Resizer канадской фирмы KL Group (http://www.klg.com/). Автору известны две ее версии: 1.1.1 и 2.0.2. Обе версии очень похожи, но версия 2.0.2 имеет дополнительные возможности. Данная статья, в основном, описывает обе версии. Об отличиях версии 2.0.2 будет оговорено особо.

    Дата: 11.02.2002 06:36 | Раздел: Статьи по VB | Автор: AntiLoop

    Зачем нужен DirectX 7 в VB? - Статья об испоьзовании DirectX в VB.

    Дата: 11.02.2002 05:47 | Раздел: Примеры кода | Автор: Беляев Данила

    Rich - Очень интересный пример - наводишь на ссылку в RichEdit'е а курсор меняется на руку(как в IE), ну и попутно - как отградить вставку в RichEdit всякого мусора(картинки, html, rtf), кроме нормального текста...

    Дата: 11.02.2002 05:39 | Раздел: Примеры кода | Автор: Половый Александр

    Coder - Программа "Кодировщик" заменяет в тексте буквы кириллицы на латинские и наоборот русские слова, написанные латинскими буквами заменяет на кириллицу. Настройки кодирования содержаться в файле KODI.CHR По умолчанию взяты настройки SMS-сообщений фирмы МТС.

    Дата: 10.02.2002 05:28 | Раздел: Примеры кода | Автор: SerG

    Lens - Вы видели в стандартных программах Windows программу Линза? А никто не задумывался как она сделана? Это не очень сложно если посмотреть этот пример. Кроме изучения принципа действия "линзы" Вы изучите еще несколько полезных функций WinAPI.

    Последние 20 тем форума на VBNet.Ru:

    11:51 / 17 фев. Движение объекта | Ответов: 0
    07:23 / 17 фев. Подскажите как сохранить текст в виде картинки. | Ответов: 0
    04:34 / 17 фев. Создание файла | Ответов: 1
    04:33 / 17 фев. HELP | Ответов: 1
    21:34 / 16 фев. Где взять Crystal Reports? | Ответов: 0
    20:23 / 16 фев. KeyCode (oem, ansi etc) | Ответов: 0
    21:33 / 15 фев. Для знатаков | Ответов: 2
    19:15 / 15 фев. Помошник для Office 2000 | Ответов: 1
    15:39 / 15 фев. Срочно: E-mail | Ответов: 1
    12:56 / 15 фев. Помогите с прогрессом! | Ответов: 1
    01:46 / 15 фев. Listview - поиск | Ответов: 1
    20:05 / 14 фев. Сайт по программирования на VB | Ответов: 2
    19:58 / 14 фев. ListView - автопрокрутка | Ответов: 3
    17:31 / 14 фев. Помогите срочно!!!!!!!!!!!!!!! | Ответов: 1
    14:29 / 14 фев. DataGrid | Ответов: 0
    07:30 / 14 фев. Помогите!!! Запуск ЕХЕ файла. | Ответов: 2
    02:43 / 14 фев. "Говорящие" компоненты для VB | Ответов: 0
    02:41 / 14 фев. Дырочка в форуме есть (админам)... | Ответов: 1
    23:08 / 13 фев. Помогите если сможете. | Ответов: 2
    21:42 / 13 фев. Реестр | Ответов: 2

    Последние поступления в Библиотеку кодов:

    Определение типа рисунка и его размеров (40)
    Скопировать содержимое PictureBox в буф... (30)
    Функция для изменения размеров картинки (33)
    Изменение цвета отдельного пикселя в эл... (29)
    Как осуществить скролинг картинки (24)
    Получить размеры картинки (29)
    Выделить кусок картинки (25)
    Сохранение файла из Интернета на жестки... (72)
    Как вставить рисунок (87)
    Выделить цветом определенное слово во в... (101)
    Как снять форматирование при вставке те... (37)
    Как сохранить RTF-файл в виде простого ... (36)
    Включить/выключить перенос по словам (40)
    Как включить прокрутку по горизонтали (29)
    Какое слово под курсором мыши (45)
    Основы элемента RichTextBox (53)
    Автоскролинг текста (42)
    Добавить горизонтальную прокрутку в Lis... (50)
    Использование API при работе с TextBox'ом (96)
    Перебор массива TextBox'ов (56)
    Как изменить цвет фона при изменении зн... (57)
    Описание элементов VScrollBar/HScrollBar (58)
    Контекстное меню. Практикум по созданию. (121)
    Размножить на форме картинку (74)
    Использование Images вместо CommandButton (67)
    Разноцветный баттон (71)
    Изменение длины ComboBox (52)
    Определить количество строк в ComboBox (59)

    наверх

    Новости сайта VBMania

    • 25.01 - Сегодня открылся новый раздел, в котором вы можете найти ссылки на целую кучу книг по тематике VB и около него.
    • 22.01 - 22 января вышел второй номер он-лайн журнала о Visual Basic 'VB Мания'. В нем можно почитать авторские статьи в уже устоявшихся разделах: Технологии, Система, Графика, Профессия, Человечество и Юмор. Так же не обошлось без новшеств: появился новый раздел dotNET и особенно рецензии ActiveX-компонентов. Обязательно заходите.
    • 17.12 - В связи с тем что форум не горел желаением вести себя так, как должен обычный, порядочный форум, мы его прикрыли для проведения разъяснительных мероприятий. Надеемся, что они не затянутся и форум образумится.
    • 06.12 - С сегодняшнего дня все желающие могут добавлять свои новости и статьи в наши архивы.
      Да здраствует открытость!
    • 27.11 - Наконец-то, после долгих дней и бессонных ночей это свершилось! Сайт объявляется открытым! Непременно прочитайте первый номер нашего журнала. Оцените наши дополнительные проекты. И конечно мы ждем ваших откликов в гостевой книге и по почте.
    • 01.12 - Произошло несколько косметических улучшений, касающихся исключительно удобства работы с сайтом. Во-первых, можно видеть количество записей обсуждения новостей на главной странице; а во-вторых чуточку подправились директории.
      Оценяйте!

    наверх

    Новости сайта Азбука VB

    • 10 января 2001 года
      Интересный пример создания popMenu используя API функции CreatePopupMenu, AppendMenu, DestroyMenu, TrackPopupMenu и GetCursorPos.
      Пример показывает, как можно отлавливать события при нажатии на кнопках в заголовке формы. В примере использовались API функции - CallWindowProc и SetWindowLong.
    • 7 января 2001 года
      RealMid - уникальный пример воспроизведения миди файлов через Direct Sound, при этом звук не зависит от качества звуковой карты.
      Пример проигрывания mp3, wave, midi файлов с ускорением/замедлением скорости средствами библиотеки ActiveMovi входящей в состав Windows.
      Пример программного генерирования миди комманд

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Snak

    Ответ ожидается по этому адресу

    Как имея в массиве определенное количество чисел расположить их в порядке вояростания.

    Автор вопроса: Luka

    Ответ ожидается по этому адресу

    Пожалуста подскажите, как из выбранного меню ListView, записать текст подменю в TextBox.
    Примечание: в ListView установлено view=3-lvwReport.

    Ответы:

    Нет ответов.
    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 33.

VBNet
  • Библиотека кодов
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Subscribe.Ru увеличило максимальный размер рассылки до 100 кб. В связи с этим вопрос:
Какого размера Вы хотели бы получать рассылку?
Менее 20 кб
От 20 до 40 кб
От 40 до 60 кб
От 60 до 80 кб
Выше 80 кб

В какой день (дни) недели Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."?
Понедельник
Вторник
Среда
Четверг
Пятница
Суббота
Воскресение

С какой периодичностью Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."?
Каждый день
2 раза в неделю
Раз в неделю
Раз в две недели
Раз в месяц
Реже

Результаты голосования
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Поздравляю всех с натупающим праздником! Читайте!

    Содержание выпуска
    • Книги

    • Получить размер директории
    • Три пути создания папки
    • Как проверить, существует ли директория?
    • Функция удаления директории со всем содержимым
    • Установить папку, открываемую "по умолчанию"
    • Удаление папки с помощью API функции RemoveDirectory

    • Вопрос/Ответ

    Книги

    Visual Basic 6. Специальный справочник

     Это издание поможет читателю освоить инструменты и средства Visual Basic. Здесь вы найдете описание элементов языка, библиотечных функций, SQL-операторов, элементов управления. Особое внимание уделено различным мастерам, предназначенным для решения стандартных задач. В каждой главе содержится информация по созданию приложения определенной направленности: пошаговое описание операций, синтаксис необходимых операторов и подробно разобранные примеры. Для облегчения поиска можно воспользоваться алфавитным указателем, размещенным в конце книги. Предлагаемый справочник будет полезен не только пользователям, активно работающим с Visual Basic 6, но и начинающим программистам, желающим перейти к профессиональной разработке приложений с наименьшими затратами времени.

    Автор: Карпов Борис
    Издательство: Питер
    Год издания: 2000
    Кол-во страниц: 416
    Стоимость: 84 р.
    Формат: 84x108/32
    Переплёт: мягкий

    Visual Basic 6.0 для приложений

     В книге приведены справочные сведения по программированию на языке Visual Basic 6.0 для приложений (VBA 6.0) в рамках Microsoft Office 2000. Подробно описаны объекты, их свойства и методы, операторы, функции, типы данных. Отдельная глава посвящена проектированию меню, панелей и форм. Описание иллюстрировано примерами. Сведения структурированы по приложениям, входящим в состав Microsoft Office 2000: Word, Excel, PowerPoint, Access. Предметный указатель позволяет быстро найти необходимую информацию.

    Автор: Гюнтер Штайнер
    Издательство: Лаборатория Базовых Знаний
    Год издания: 2000
    Кол-во страниц: 832
    Стоимость: 88 р.
    Формат: 70x100/32
    Переплёт: твёрдый

    Visual Basic 6.0, Visual Basic for Applications 6.0

     Книга является систематизированным справочником по всем элементам языка программирования Visual Basic (VВ), входящим, как в автономную версию VB, так и в основные реализации Visual Basic for Applications. Помимо тех официальных сведений, которые можно найти в документации и в справочной системе, книга содержит конкретные примеры, рекомендации и маленькие хитрости программиста, а также поправки к справочной системе, которая, увы, не без ошибок. Книга предназначена для всех специалистов, занимающихся разработкой приложений с применением Visual Basic for Applications.

    Автор: Король В
    Издательство: КУДИЦ - ОБРАЗ
    Год издания: 2000
    Кол-во страниц: 448
    Стоимость: 129 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Visual Basic 6.0. Наиболее полное руководство для профессиональной работы в среде Visual Basic 6.0

     Язык программирования Visual Basic - мощный инструмент разработки приложений для 32 - разрядных систем Windows 95 и Windows NT. В книге рассматриваются как фундаментальные понятия и темы: от установки продукта на компьютер пользователя и описания интегрированной среды разработки до изложения основ техники программирования на Visual Basic , так и сложные вопросы, адресованные профессиональным программистам: создание интерфейса пользователя, применение стандартных элементов управления, в том числе и для работы с базами данных, программирование компонентов ActiveX, описание технологии OLE drag - and - drop, объектная модель FSO, функции работы с файлами, отладка и оптимизация программ, локализация и распространение готовых приложений.

    Автор: нет данных
    Издательство: BHV - Санкт - Петербург
    Год издания: 2000
    Кол-во страниц: 992
    Стоимость: 217 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Visual Basic 6.0. Практика использования

     Книга представляет собой идеальное учебное пособие для тех, кто изучает Visual Basic 6.0. В ней подробно описываются интегрированная среда разработки, основные элементы управления Visual Basic 6.0 и приемы работы с ними, различные возможности ввода и вывода информации. Особое внимание уделяется инструментам разработки и отладки проектов, организации обмена данными между приложениями, классам, элементам управления ActiveX и средствам разработки приложений для локальных и распределенных баз данных. Книга рассчитана на широкий круг читателей, - как начинающих, так и подготовленных разработчиков приложений.

    Автор: Титаренко Григорий
    Издательство: BHV - Киев
    Год издания: 2001
    Кол-во страниц: 416
    Стоимость: 96 р.
    Формат: 60x90/16
    Переплёт: твёрдый

    Остальные книги о VB можно найти     здесь.

    наверх

    Получить размер директории

    Пример 1 основан на применении FileSystemObject. Для использования этого примера установите ссылку на Microsoft Scripting Runtime через меню Project | References.

    'Пример 1

    Dim FSys As New FileSystemObject
    Private Sub Command1_Click()
    'Не забудьте указать свою директорию для проверки примера
    Set qn = FSys.GetFolder("D:\2\attributes\")
    MsgBox "Размер папки " & qn.Size / 1024 & " килобайт"
    End Sub

    'Пример 2

    Const MAX_PATH = 260
    Private Type FILETIME
    dwLowDateTime As Long
    dwHighDateTime As Long
    End Type
    Private Type WIN32_FIND_DATA
    dwFileAttributes As Long
    ftCreationTime As FILETIME
    ftLastAccessTime As FILETIME
    ftLastWriteTime As FILETIME
    nFileSizeHigh As Long
    nFileSizeLow As Long
    dwReserved0 As Long
    dwReserved1 As Long
    cFileName As String * MAX_PATH
    cAlternate As String * 14
    End Type
    Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
    Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
    Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long

    Public Function SizeOf(ByVal DirPath As String) As Double
    Dim hFind As Long
    Dim fdata As WIN32_FIND_DATA
    Dim dblSize As Double
    Dim sName As String
    Dim x As Long
    On Error Resume Next
    x = GetAttr(DirPath)
    If Err Then SizeOf = 0: Exit Function
    If (x And vbDirectory) = vbDirectory Then
    dblSize = 0
    Err.Clear
    sName = Dir$(EndSlash(DirPath) & "*.*", vbSystem Or vbHidden Or vbDirectory)
    If Err.Number = 0 Then
    hFind = FindFirstFile(EndSlash(DirPath) & "*.*", fdata)
    If hFind = 0 Then Exit Function
    Do
    If (fdata.dwFileAttributes And vbDirectory) = vbDirectory Then
    sName = Left$(fdata.cFileName, InStr(fdata.cFileName, vbNullChar) - 1)
    If sName <> "." And sName <> ".." Then
    dblSize = dblSize + SizeOf(EndSlash(DirPath) & sName)
    End If
    Else
    dblSize = dblSize + fdata.nFileSizeHigh * 65536 + fdata.nFileSizeLow
    End If
    DoEvents
    Loop While FindNextFile(hFind, fdata) <> 0
    hFind = FindClose(hFind)
    End If
    Else
    On Error Resume Next
    dblSize = FileLen(DirPath)
    End If
    SizeOf = dblSize
    End Function
    Private Function EndSlash(ByVal PathIn As String) As String
    If Right$(PathIn, 1) = "\" Then
    EndSlash = PathIn
    Else
    EndSlash = PathIn & "\"
    End If
    End Function

    Private Sub Form_Load()
    'Замените 'D:\Basic' той директорией, размер которой хотите узнать
    MsgBox SizeOf("D:\Basic") / 1000000
    End Sub

    наверх

    Три пути создания папки

    Разместите на форме элемент CommandButton

    '1 ВАРИАНТ

    Private Type SECURITY_ATTRIBUTES
    nLength As Long
    lpSecurityDescriptor As Long
    bInheritHandle As Long
    End Type
    Private Declare Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryA" (ByVal lpPathName As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long
    Public Sub CreateNewDirectory(NewDirectory As String)
    Dim sDirTest As String
    Dim SecAttrib As SECURITY_ATTRIBUTES
    Dim bSuccess As Boolean
    Dim sPath As String
    Dim iCounter As Integer
    Dim sTempDir As String
    iFlag = 0
    sPath = NewDirectory
    If Right(sPath, Len(sPath)) <> "\" Then
    sPath = sPath & "\"
    End If
    iCounter = 1
    Do Until InStr(iCounter, sPath, "\") = 0
    iCounter = InStr(iCounter, sPath, "\")
    sTempDir = Left(sPath, iCounter)
    sDirTest = Dir(sTempDir)
    iCounter = iCounter + 1
    'create directory
    SecAttrib.lpSecurityDescriptor = &O0
    SecAttrib.bInheritHandle = False
    SecAttrib.nLength = Len(SecAttrib)
    bSuccess = CreateDirectory(sTempDir, SecAttrib)
    Loop
    End Sub

    Private Sub Form_Load()
    Call CreateNewDirectory("c:\123\456\789\")
    End Sub

    '2 ВАРИАНТ

    Private Declare Function MakeSureDirectoryPathExists Lib "IMAGEHLP.DLL" (ByVal DirPath As String) As Long
    Sub CreateFolder(ByVal DestPath As String)
    If Right(DestPath, 1) <> "\" Then DestPath = DestPath & "\"
    If MakeSureDirectoryPathExists(DestPath) = 0 Then
    MsgBox "Ошибка в создании папки: " & DestPath
    End If
    End Sub
    Public Function FileName(FilePath As String)
    Dim strArray() As String
    strArray = Split(FilePath, "\")
    FileName = strArray(UBound(strArray))
    End Function
    Private Sub Form_Load()
    CreateFolder ("c:\123\456\789")
    End Sub

    '3 ВАРИАНТ

    Private Sub Command1_Click()
    On Error GoTo errorfolder:
    Dim fso
    Set fso = CreateObject("Scripting.FileSystemObject")
    fso.CreateFolder "c:\new_folder"
    errorfolder:
    If Err = 58 Then MsgBox "File already exists"
    Exit Sub
    End Sub

    наверх

    Как проверить, существует ли директория?

    Иногда необходимо проверить, существует ли папка. Данная функция возвращает True - если папка существует, и False - если такой папки на компьютере нет. В данную функцию передается строковая переменная, содержащая полный путь к директории(папке).

    Public Function FolderExists(ByVal strPathName As String) As Boolean
    Dim DirectoryFound As String
    Const errPathNotFound As Integer = 76
    On Error GoTo 0
    DirectoryFound = Dir(strPathName, vbDirectory)
    If (Len(DirectoryFound) = 0 Or Err = errPathNotFound) Then
    FolderExists = False
    Else
    FolderExists = True
    End If
    End Function
    Private Sub Command1_Click()
    'MsgBox FolderExists("D:\Basic")
    If FolderExists("D:\Basic\Module1") = False Then
    MsgBox "Такая папка не существует"
    Else
    MsgBox "Такая папка существует"
    End If
    End Sub

    наверх

    Функция удаления директории со всем содержимым

    Private Sub Form_Load()
    'замените путь 'D:\vbcode1\Category\_vti_cnf' на ваш
    x = DelTree("D:\vbcode1\Category\_vti_cnf")
    Select Case x
    Case 0: MsgBox "Deleted"
    Case -1: MsgBox "Invalid Directory"
    Case Else: MsgBox "An Error was occured"
    End Select
    End Sub

    Function DelTree(ByVal strDir As String) As Long
    Dim x As Long
    Dim intAttr As Integer
    Dim strAllDirs As String
    Dim strFile As String
    DelTree = -1
    On Error Resume Next
    strDir = Trim$(strDir)
    If Len(strDir) = 0 Then Exit Function
    If Right$(strDir, 1) = "\" Then strDir = Left$(strDir, Len(strDir) - 1)
    If InStr(strDir, "\") = 0 Then Exit Function
    intAttr = GetAttr(strDir)
    If (intAttr And vbDirectory) = 0 Then Exit Function
    strFile = Dir$(strDir & "\*.*", vbSystem Or vbDirectory Or vbHidden)
    Do While Len(strFile)
    If strFile <> "." And strFile <> ".." Then
    intAttr = GetAttr(strDir & "\" & strFile)
    If (intAttr And vbDirectory) Then
    strAllDirs = strAllDirs & strFile & Chr$(0)
    Else
    If intAttr <> vbNormal Then
    SetAttr strDir & "\" & strFile, vbNormal
    If Err Then DelTree = Err: Exit Function
    End If
    Kill strDir & "\" & strFile
    If Err Then DelTree = Err: Exit Function
    End If
    End If
    strFile = Dir$
    Loop
    Do While Len(strAllDirs)
    x = InStr(strAllDirs, Chr$(0))
    strFile = Left$(strAllDirs, x - 1)
    strAllDirs = Mid$(strAllDirs, x + 1)
    x = DelTree(strDir & "\" & strFile)
    If x Then DelTree = x: Exit Function
    Loop
    RmDir strDir
    If Err Then
    DelTree = Err
    Else
    DelTree = 0
    End If
    End Function

    наверх

    Установить папку, открываемую "по умолчанию"

    Копаясь как-то в библиотеке kernel32.dll, наткнулся на API-функцию SetCurrentDirectory. Некоторое время я думал, как можно использовать эту функцию, и вот вам небольшой пример. Наверняка, эту функцию можно использовать и еще как-то, вот тут-то и открывается простор для вашей деятельности.

    Как всегда в моих примерах, не забудьте расположить на форме элемент CommandButton.

    Private Declare Function SetCurrentDirectory Lib "kernel32" Alias "SetCurrentDirectoryA" (ByVal lpPathName As String) As Long
    Private Sub Command1_Click()
    SetCurrentDirectory ("d:\1")
    Dim FN As Integer
    FN = FreeFile
    Dim FName As String
    'Использование функции SetCurrentDirectory позволяет не вводить полный путь файла.
    'Без использования функции SetCurrentDirectory следующая строчка выглядела бы как:
    'Open "D:\1\1.txt" For Input As #FN
    Open "1.txt" For Input As #FN
    ddd = Input(LOF(FN), #FN)
    Close #FN
    MsgBox ddd
    'Module1.ShowOpen
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Rafis

    Ответ ожидается по этому адресу

    Подскажите мне, пожалуйста, как определить попал ли элемент упр. в границы другого эл.упр. Допустим shape задел другой shape, причём оба shape-а движутся.Лучше без определения Left и top.

    Автор вопроса: Павел

    Ответ ожидается по этому адресу

    Не могу разобраться с сетью!!

    Как получить список машин в сети?
    И как пересылать данные через WinSoket если он все время обьединяет переменные при частой передаче пакетов или что можно использовать вместо него? Я видел не мало программ для управления сетевой машиной которые не требовали установки Client-а на удаленной машине, может кто нибудь подскажит в чем прикол или лудьше скинет исходничек?

    !! Если можно подскажите хорошую литературу и где ее можно найти?

    Автор вопроса: Вадим Александрович Ярошенко

    Ответ ожидается по этому адресу

    Подскажите, как работать с БД Betrive.

    Ответы:

    Вопрос:

    как расположить несколько чисел в порядке воярастания?

    Ответ:

    Автор ответа: Кривокрисенко Артём

    Можно сделать это следующим образом (данный код необходимо разместить в любом модуле)

    Option Explicit

    ' Этот тип данных можно было не создавать,
    ' но я не нашёл другого способа делать ссылки на
    ' массив
    ' В этом случае можно ссылаться на массив по
    ' индексу переменной SArr

    Private Type SortArray
    A() As Double
    End Type
    Dim SArr(1 To 2) As SortArray

    Public Sub Sort(SortArr() As Double, ReadyArr() As Double)
    ' Данные берутся из массива SortArr и помещаются
    ' в массив ReadyArr

    ReDim SArr(1).A(UBound(SortArr)) 'Главный массив
    ReDim SArr(2).A(UBound(SortArr)) 'Временный массив

    Dim int1 As Integer
    Dim int2 As Integer
    For int1 = 1 To 2
    For int2 = 0 To UBound(SortArr)
    SArr(int1).A(int2) = SortArr(int2)
    Next int2
    Next int1
    ' Сначала временный и главный массивы содержат
    ' одинаковые данные
    JoinSort 0, UBound(SortArr), 1, 2 'Сортируем
    For int2 = 0 To UBound(SArr(1).A)
    ReadyArr(int2) = SArr(1).A(int2)
    Next int2
    End Sub

    Private Sub JoinSort(p As Integer, r As Integer, _
    arr1 As Integer, arr2 As Integer)
    Dim Q As Integer
    ' p-начало сортируемого массива
    ' r-его конец
    ' arr1 и arr2 - это ссылки на главный
    ' и временный массивы
    ' Q-середина массива

    ' Если массив состоит из одного элемента
    ' или он пустой, выходим
    If p >= r Then Exit Sub

    ' Находим середину массива
    Q = Int((p + r) / 2)
    ' Сортируем левую часть
    JoinSort p, Q, arr2, arr1

    ' Сортируем правую часть
    JoinSort Q + 1, r, arr2, arr1

    ' Объединяем обе части
    SortCon p, Q, r, arr2, arr1

    End Sub

    Private Sub SortCon(p As Integer, Q As Integer, r As Integer, _
    arr As Integer, Result As Integer)
    'p-начало сортируемого массива
    'Q-середина сортируемого массива
    'r-конец сортируемого массива
    'arr-ссылка на массив с данными
    'Result-ссылка на массив, куда будут помещены данные

    Dim i As Integer, j As Integer, k As Integer
    i = p 'индекс, следящий за левой частью
    j = Q + 1 'индекс, следящий за правой частью
    k = p 'индекс, следящий за позицией в массиве-приёмнике

    ' Пока одна из частей не закончилась
    While i <= Q And j <= r

    ' Если значение в левой части меньше
    If SArr(arr).A(i) < SArr(arr).A(j) Then

    ' помещаем его в массив-приёмник
    ' и увеличиваем левый индекс на 1
    SArr(Result).A(k) = SArr(arr).A(i)
    i = i + 1

    ' иначе помещаем в массив-приёмник правое значение
    ' и увеличиваем правый индекс на 1
    Else
    SArr(Result).A(k) = SArr(arr).A(j)
    j = j + 1
    End If

    ' увеличиваем на 1 индекс массива-приёмника
    k = k + 1
    Wend

    ' Здесь одна из частей закончилась.
    ' Просто переписываем значения из оставшейся части
    ' в массив-приёмеик

    ' Если остались данные в левом массиве
    While i <= Q

    ' переписываем их, увеличивая каждый раз левый индекс
    ' и индекс массива-приёмника
    SArr(Result).A(k) = SArr(arr).A(i)
    i = i + 1
    k = k + 1
    Wend

    ' иначе проделываем тоже самое с провой частью
    While j <= r
    SArr(Result).A(k) = SArr(arr).A(j)
    j = j + 1
    k = k + 1
    Wend
    End Sub

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 34.

VBNet
  • Библиотека кодов
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Subscribe.Ru увеличило максимальный размер рассылки до 100 кб. В связи с этим вопрос:
Какого размера Вы хотели бы получать рассылку?
Менее 20 кб
От 20 до 40 кб
От 40 до 60 кб
От 60 до 80 кб
Выше 80 кб

В какой день (дни) недели Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."?
Понедельник
Вторник
Среда
Четверг
Пятница
Суббота
Воскресение

С какой периодичностью Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."?
Каждый день
2 раза в неделю
Раз в неделю
Раз в две недели
Раз в месяц
Реже

Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Очередной 34 выпуск рассылки.
    Посмотрел результаты голосования в рассылке. И вот что получается:
    Частота выхода рассылки:
    Раз в день | 46
2 раза в неделю | 22
Раз в неделю | 29
Раз в две недели | 6
Раз в месяц | 2
Реже | 1

    День (дни) выхода рассылки:
    Monday | 43
Tuesday | 31
Wednesday | 37
Thursday | 34
Friday | 43
Saturday | 31
Sunday | 29

    Ну и размер рассылки (кб):
    Меньше 20 | 3
От 20 до 40 | 3
От 40 до 60 | 7
От 60 до 80 | 5
Больше 80 | 43

    Теперь разбираемся. Большинство явно придерживается мнения "чем чаще и больше тем лучше". Я бы рад, но две проблемы: как всегда нету времени и мало материала (в нынешнем темпе его хватает, но если раз в день, то ...). Присылайте материал, а также пишите мне о том, что бы вы хотели увидеть в рассылке.
    Читайте!

    Содержание выпуска
    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Visual Basic 6. Специальный справочник

     Это издание поможет читателю освоить инструменты и средства Visual Basic. Здесь вы найдете описание элементов языка, библиотечных функций, SQL-операторов, элементов управления. Особое внимание уделено различным мастерам, предназначенным для решения стандартных задач. В каждой главе содержится информация по созданию приложения определенной направленности: пошаговое описание операций, синтаксис необходимых операторов и подробно разобранные примеры. Для облегчения поиска можно воспользоваться алфавитным указателем, размещенным в конце книги. Предлагаемый справочник будет полезен не только пользователям, активно работающим с Visual Basic 6, но и начинающим программистам, желающим перейти к профессиональной разработке приложений с наименьшими затратами времени.

    Автор: Карпов Борис
    Издательство: Питер
    Год издания: 2000
    Кол-во страниц: 416
    Стоимость: 84 р.
    Формат: 84x108/32
    Переплёт: мягкий

    Visual Basic 6.0 для приложений

     В книге приведены справочные сведения по программированию на языке Visual Basic 6.0 для приложений (VBA 6.0) в рамках Microsoft Office 2000. Подробно описаны объекты, их свойства и методы, операторы, функции, типы данных. Отдельная глава посвящена проектированию меню, панелей и форм. Описание иллюстрировано примерами. Сведения структурированы по приложениям, входящим в состав Microsoft Office 2000: Word, Excel, PowerPoint, Access. Предметный указатель позволяет быстро найти необходимую информацию.

    Автор: Гюнтер Штайнер
    Издательство: Лаборатория Базовых Знаний
    Год издания: 2000
    Кол-во страниц: 832
    Стоимость: 88 р.
    Формат: 70x100/32
    Переплёт: твёрдый

    Visual Basic 6.0, Visual Basic for Applications 6.0

     Книга является систематизированным справочником по всем элементам языка программирования Visual Basic (VВ), входящим, как в автономную версию VB, так и в основные реализации Visual Basic for Applications. Помимо тех официальных сведений, которые можно найти в документации и в справочной системе, книга содержит конкретные примеры, рекомендации и маленькие хитрости программиста, а также поправки к справочной системе, которая, увы, не без ошибок. Книга предназначена для всех специалистов, занимающихся разработкой приложений с применением Visual Basic for Applications.

    Автор: Король В
    Издательство: КУДИЦ - ОБРАЗ
    Год издания: 2000
    Кол-во страниц: 448
    Стоимость: 129 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Visual Basic 6.0. Наиболее полное руководство для профессиональной работы в среде Visual Basic 6.0

     Язык программирования Visual Basic - мощный инструмент разработки приложений для 32 - разрядных систем Windows 95 и Windows NT. В книге рассматриваются как фундаментальные понятия и темы: от установки продукта на компьютер пользователя и описания интегрированной среды разработки до изложения основ техники программирования на Visual Basic , так и сложные вопросы, адресованные профессиональным программистам: создание интерфейса пользователя, применение стандартных элементов управления, в том числе и для работы с базами данных, программирование компонентов ActiveX, описание технологии OLE drag - and - drop, объектная модель FSO, функции работы с файлами, отладка и оптимизация программ, локализация и распространение готовых приложений.

    Автор: нет данных
    Издательство: BHV - Санкт - Петербург
    Год издания: 2000
    Кол-во страниц: 992
    Стоимость: 217 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Visual Basic 6.0. Практика использования

     Книга представляет собой идеальное учебное пособие для тех, кто изучает Visual Basic 6.0. В ней подробно описываются интегрированная среда разработки, основные элементы управления Visual Basic 6.0 и приемы работы с ними, различные возможности ввода и вывода информации. Особое внимание уделяется инструментам разработки и отладки проектов, организации обмена данными между приложениями, классам, элементам управления ActiveX и средствам разработки приложений для локальных и распределенных баз данных. Книга рассчитана на широкий круг читателей, - как начинающих, так и подготовленных разработчиков приложений.

    Автор: Титаренко Григорий
    Издательство: BHV - Киев
    Год издания: 2001
    Кол-во страниц: 416
    Стоимость: 96 р.
    Формат: 60x90/16
    Переплёт: твёрдый

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 22.02.2002 09:45 | Раздел: Примеры кода | Автор: Беляев Данила

    ButtonAPI - Вам нужно создать новую кнопку? И при этом Вы не хотите размещать ее сразу на форме? Воспользуйтесь API и создайте кнопку, о которой Visual Basic ничего не будет знать! Но, раз Вы не хотите ему об этом говорить, то события от этой новоявленной кнопочки обрабатывайте сами. Кроме кнопок, вы можете создавть так же любые другие стандартные элементы управления, поддерживаемые Windows.

    Дата: 21.02.2002 06:44 | Раздел: Примеры кода | Автор: SerG

    VBKeyb - На форуме был задан вопрос: как переключить клавиатуру с одного языка на другой. SeRg написал два примера на эту тему. Как говорится - два в одном ;-). Переключение раскладки осуществляется с помощью функций Win32 API. Примеры работают в любых Windows NT/2000/ME/9x.

    Дата: 20.02.2002 06:47 | Раздел: Примеры кода | Автор: Беляев Данила

    Tree - Как сохранить содержимое TreeView? И где? Вы уже, конечно же, мучались с таким вопросом! В примере показан один из способов решения данной проблемы. Все сохраняется в обычном текстовом файле.

    Дата: 19.02.2002 06:51 | Раздел: Примеры кода | Автор: Половый Александр

    Ruler - Линейка, которая всегда на экране. Может быть горизонтальной или вертикальной, шкала может быть в сантиметрах, дюймах, твипах и других единицых. Масштаб изменяется от 1 до 999%. В общем-то программка может быть кому и пригодится. Посмотрите.

    Дата: 19.02.2002 06:38 | Раздел: ActiveX контролы | Автор: Эскин Михаил

    FigureControl - Как сделать прозрачный контрол? Это очень просто. В этом примере показано как это можно сделать без лишних усилий. В принципе, уже все за Вас сделали - остается только взять этот код и все! Ну а Автор контрола гарантирует, что код будет работать правильно и Вы получите то, что хотели получить. Вперед!

    Дата: 19.02.2002 06:24 | Раздел: ActiveX контролы | Автор: Беляев Данила

    ListBox - Расширенный ListBox. Вы можете добавлять в него практически любые типы данных, удалять любой элемент списка, выравнивать их по левому, правому краю или по центру. И самое главное, что размер списка ограничен только объемом свободной памяти на Вашем компьютере. В общем, во всех отношениях полезный контрол.

    Дата: 18.02.2002 16:23 | Раздел: Примеры кода | Автор: Перминов Андрей

    SystemPower - Небольшой модуль для работы питанием компьютера. Причиной написания стало то, что все примеры выключения или перезагрузки компьютера не работают под NT. Так же в примере расматривается как можно заставить компьютер "заснуть". Конечно, возможно что-то в нем не доработано, но я думаю он будет интересен.

    Дата: 18.02.2002 06:58 | Раздел: Примеры кода | Автор: SerG

    RotateText - Как написать на форме текст под нужным углом? Visual Basic нам здесь, конечно же, не поможет, но вот и запретить не сможет также. Пример, для написания нужного текста использует практически безграничные возможности Win32 API. Если Вам это нужно, то этот пример для Вас, так как в нем нет ничего лишнего.

    Дата: 17.02.2002 06:50 | Раздел: Примеры кода | Автор: JEDI

    CoolExplorer - Пример на тему открытия окна Internet Explorer. Здесь сделано так, что окно как бы раскрывается... т.е. плавно "выезжает" сверху экрано. Все очень просто, без API и фичей. Может быть кому-то пригодится такой и пример.

    Последние 20 тем форума на VBNet.Ru:

    10:10 / 24 фев. Всех С прошедшим 23 февраля | Ответов: 0
    09:57 / 24 фев. Как прогр. увеличить громкость WAV файла? | Ответов: 0
    08:44 / 24 фев. Обнуленние базе данных | Ответов: 0
    08:26 / 24 фев. Как свернуть окно? | Ответов: 1
    04:00 / 24 фев. Помогите разобраться с дозвоном | Ответов: 1
    21:20 / 23 фев. Проигрывание файлов MIDI WAVE и MP3 | Ответов: 1
    11:04 / 23 фев. ЕСТЬ предложение поповоду ЧАТА, для АДМИНОВ | Ответов: 2
    20:53 / 22 фев. Считывание данных из текстового окошка | Ответов: 3
    20:22 / 22 фев. Для JEDI | Ответов: 3
    17:23 / 22 фев. Пожалуйста подскажите ... | Ответов: 1
    15:46 / 22 фев. Вопрос | Ответов: 4
    10:39 / 22 фев. Как програмно увеличить громкость WAV файла? | Ответов: 1
    07:14 / 22 фев. О музыкальных возможностях VB | Ответов: 1
    23:36 / 21 фев. Предложение админам по работе форума... | Ответов: 1
    17:17 / 21 фев. Новое сообщение без темы | Ответов: 0
    14:48 / 21 фев. Excel, listbox with picture elements | Ответов: 0
    10:19 / 21 фев. Excel | Ответов: 1
    21:25 / 20 фев. Сеть | Ответов: 0
    21:00 / 20 фев. Компиляция... | Ответов: 1
    14:57 / 20 фев. add ActivX | Ответов: 0

    Последние поступления в Библиотеку кодов:

    Элементы {Drive | Dir | File} ListBox. ... (89)
    Получение содержимого целой строки в эл... (55)
    Получение длинного и короткого имени фа... (55)
    Определение соответствия имени файла маске (49)
    Установить высоту выпадающего окна Comb... (41)
    Получение имен всех логических дисков (42)
    Хотите знать, какие файлы скопированы в... (50)
    Определение, виден ли СкроллБар у элемента (41)
    CommonDialog: Выбор нескольких файлов д... (59)

    наверх

    Новости сайта VBMania

    • 25.01 - Сегодня открылся новый раздел, в котором вы можете найти ссылки на целую кучу книг по тематике VB и около него.
    • 22.01 - 22 января вышел второй номер он-лайн журнала о Visual Basic 'VB Мания'. В нем можно почитать авторские статьи в уже устоявшихся разделах: Технологии, Система, Графика, Профессия, Человечество и Юмор. Так же не обошлось без новшеств: появился новый раздел dotNET и особенно рецензии ActiveX-компонентов. Обязательно заходите.
    • 17.12 - В связи с тем что форум не горел желаением вести себя так, как должен обычный, порядочный форум, мы его прикрыли для проведения разъяснительных мероприятий. Надеемся, что они не затянутся и форум образумится.
    • 06.12 - С сегодняшнего дня все желающие могут добавлять свои новости и статьи в наши архивы.
      Да здраствует открытость!
    • 27.11 - Наконец-то, после долгих дней и бессонных ночей это свершилось! Сайт объявляется открытым! Непременно прочитайте первый номер нашего журнала. Оцените наши дополнительные проекты. И конечно мы ждем ваших откликов в гостевой книге и по почте.
    • 01.12 - Произошло несколько косметических улучшений, касающихся исключительно удобства работы с сайтом. Во-первых, можно видеть количество записей обсуждения новостей на главной странице; а во-вторых чуточку подправились директории.
      Оценяйте!

    наверх

    Новости сайта Азбука VB

    • 19 февраля 2001 года
      Интервью с Арменом Мнацаканяном.
      Как определить, является ли символ буквой или цифрой? Когда нужно убедиться, что данный символ — буква (а не цифра, знак препинания, специальный символ и т.д.), то первое, что приходит в голову, — проверить, попадает ли он в диапазон A-Z или a-z. Это ошибочно по двум причинам.
      Как сделать, что бы Photoshop понимал русские буквы.
      Как сделать ссылку в RichEdit'е. Спасибо Арташесу за пример MousinRTF, благодаря этому примеру я написал свой, очень интересный пример - наводишь на ссылку в RichEdit'е а курсор меняется на руку(как в IE), ну и попутно - как отградить вставку в RichEdit всякого мусора(картинки, html, rtf), кроме нормального текста.
      Создание отсоединенного набора записей используя объкт АДО. На примере показано, как создать отсоединенный набор данных, произвести изменения и вновь подключить его.
    • 10 января 2001 года
      Интересный пример создания popMenu используя API функции CreatePopupMenu, AppendMenu, DestroyMenu, TrackPopupMenu и GetCursorPos.
      Пример показывает, как можно отлавливать события при нажатии на кнопках в заголовке формы. В примере использовались API функции - CallWindowProc и SetWindowLong.

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Василий

    Ответ ожидается по этому адресу

    Как кодом скомпилить .MDE файл?

    Автор вопроса: Wind

    Ответ ожидается по этому адресу

    1 - как отправлять Post и Get формы черея Winsock (не испольяуя яапроса на html страницу).
    2 - как Winstock подключить черея прокси?или хотябы принимать html страницы черея прокси сервер.

    Автор вопроса: Шевченко Александр Викторович

    Ответ ожидается по этому адресу

    Очень хочу узнать с помощью чего можно отобразить у себя на форме амимацию.

    Автор вопроса: Алексей Митрохин

    Ответ ожидается по этому адресу

    Хочу, чтобы из моей программы можно было послать электронное письмо (пользователь задает адрес, текст и т.д.) Как это сделать?

    Ответы:

    Нет ответов.
    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 35.

VBNet
  • Библиотека кодов
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Поздравляю всех с официальным наступлением весны!
    Читайте!

    Содержание выпуска
    • Книги

    • Дополнение: Открытие стандартного окна выбора папок/файлов
    • Получение сведений о папке (с использованием FileSystemObject)
    • Открытие стандартного окна выбора папок/файлов
    • Как программно вызвать окно свойств (Properties) файла
    • Получение даты последней коррекции файла
    • Существует ли файл?

    • Вопрос/Ответ

    Книги

    Visual Basic 6.0. Разработка приложений (+ дискета)

     Данная книга является наиболее полным практическим руководством по конструированию современных полнофункциональных Windows - приложений на базе Visual Basic 6.0. В книге рассматриваются основные понятия и приемы программирования на Visual Basic, принципы разработки приложений с помощью методов объектно - ориентированного программирования. Большое внимание уделено работе с базами данных, использованию ActiveX - технологии и средств Windows API и OLE Automation, финансовому анализу, программированию игр, мультипликации. Имеется ряд упражнений повышенного уровня сложности, решение которых позволит приобрести устойчивые практические навыки.

    Автор: Гарнаев А
    Издательство: BHV - Санкт - Петербург
    Год издания: 2000
    Кол-во страниц: 448
    Стоимость: 159 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Visual Basic 6.0. Учебное пособие для высших учебных заведений

     В систематизированном виде излагаются основы программирования в среде одного из наиболее популярных визуальных средств разработки Windows-приложений. Рассмотрены фундаментальные понятия, использование графики и анимации, программирование баз данных, основы проектирования пользовательского интерфейса. Для студентов, обучающихся по направлению 654600 `Информатика и вычислительная техника`, может быть полезна начинающим программистам.

    Автор: Литвиненко Т
    Издательство: Горячая Линия - Телеком
    Год издания: 2001
    Кол-во страниц: 144
    Стоимость: 51 р.
    Формат: 60x88/16
    Переплёт: мягкий

    Visual Basic для школьников. Первое знакомство. Рабочая тетрадь 1

     Рабочая тетрадь `Первое знакомство с Visual Basic` предназначена для обучения детей, начиная с седьмого класса и старше основам проектирования в среде Visual Basic. Этот небольшой (32-часовой курс) знакомит школьников с основными понятиями объектно-ориентированного программирования такими, как форма, элементы управления, свойства, методы и др. На каждом занятии ученики кроме освоения понятийного материала делают небольшие проекты на компьютере в среде Visual Basic. Завершается курс созданием собственного проекта с элементами анимации. В дальнейшем автор тетради имеет ввиду издавать рабочие тетради по развитию этого курса в углублении знаний и навыков детей по освоению среды Visual Basic. Тетрадь может быть использована на уроках информатики, на факультативных занятиях в школе и для домашней индивидуальной работы детей с родителями и самостоятельной работы. В тетради использованы материалы отечественных и переводных книг по Visual Basic, автором обобщен опыт его практической работы в УВК № 1628 г. Москвы.

    Автор: Истомина Т
    Издательство: Дограф
    Год издания: 2000
    Кол-во страниц: 64
    Стоимость: 42 р.
    Формат: 70x108/16
    Переплёт: мягкий

    Visual Basic. Самоучитель для начинающих

     Самоучитель написан так, что после его изучения, можно будет самостоятельно составлять программы на Visual Basic и выполнять их на компьютере. Материал изложен простым и доступным языком. Все объясняется на примерах. Метод изложения - от частного к общему. Рассмотрение почти каждой темы заканчивается задачами на составление программы (всего таких задач - 132). Подавляющее большинство задач снабжено ответами, так что читатель может эффективно контролировать усвоение материала.

    Автор: Лукин С
    Издательство: Диалог - МИФИ
    Год издания: 2001
    Кол-во страниц: 544
    Стоимость: 123 р.
    Формат: 60x84/16
    Переплёт: мягкий

    Бейсик в задачах и примерах. Более 200 задач

     Книга представляет собой сборник примеров и задач по программированию на языке Бейсик. В доступной форме рассматриваются ключевые понятия программирования: алгоритм, переменные, массивы, операторы, подпрограммы. Большое внимание уделено работе с графикой, что особенно понравится школьникам. Немаловажной является тема о файловом вводе/выводе. Для некоторых упражнений приведены решения. Помимо задач и примеров книга содержит справочник по языку программирования Qbasic. Может использоваться в качестве задачника для учеников 8-11 классов, изучающих программирование в школе.

    Автор: Сафронов И
    Издательство: BHV - Санкт - Петербург
    Год издания: 2000
    Кол-во страниц: 224
    Стоимость: 62 р.
    Формат: 60x90/16
    Переплёт: мягкий

    Остальные книги о VB можно найти     здесь.

    наверх

    Дополнение: Открытие стандартного окна выбора папок/файлов

    Данный пример является дополнением к "    Открытие стандартного окна выбора папок/файлов", но обеспечивает дополнительную возможность выбора только "Сетевого Окружения", а также папок ПРОГРАММЫ и ГЛАВНОЕ МЕНЮ

    Вам понадобится элемент CommandButton

    Private Type BrowseInfo
    hWndOwner As Long
    pIDLRoot As Long
    pszDisplayName As Long
    lpszTitle As Long
    ulFlags As Long
    lpfnCallback As Long
    lParam As Long
    iImage As Long
    End Type

    Public Enum BrowseType
    BrowseForFolders = &H1
    BrowseForComputers = &H1000
    BrowseForPrinters = &H2000
    BrowseForEverything = &H4000
    End Enum

    Public Enum FolderType
    CSIDL_BITBUCKET = 10
    CSIDL_CONTROLS = 3
    CSIDL_DESKTOP = 0
    CSIDL_DRIVES = 17
    CSIDL_FONTS = 20
    CSIDL_NETHOOD = 18
    CSIDL_NETWORK = 19
    CSIDL_PERSONAL = 5
    CSIDL_PRINTERS = 4
    CSIDL_PROGRAMS = 2
    CSIDL_RECENT = 8
    CSIDL_SENDTO = 9
    CSIDL_STARTMENU = 11
    End Enum

    Private Const MAX_PATH = 260
    Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)
    Private Declare Function lstrcat Lib "kernel32.dll" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
    Private Declare Function SHBrowseForFolder Lib "shell32.dll" (lpbi As BrowseInfo) As Long
    Private Declare Function SHGetPathFromIDList Lib "shell32.dll" (ByVal pidList As Long, ByVal lpBuffer As String) As Long
    Private Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" (ByVal hWndOwner As Long, ByVal nFolder As Long, ListId As Long) As Long

    Public Function BrowseFolders(hWndOwner As Long, sMessage As String, Browse As BrowseType, ByVal RootFolder As FolderType) As String
    Dim Nullpos As Integer
    Dim lpIDList As Long
    Dim res As Long
    Dim sPath As String
    Dim BInfo As BrowseInfo
    Dim RootID As Long
    SHGetSpecialFolderLocation hWndOwner, RootFolder, RootID
    BInfo.hWndOwner = hWndOwner
    BInfo.lpszTitle = lstrcat(sMessage, "")
    BInfo.ulFlags = Browse
    If RootID <> 0 Then BInfo.pIDLRoot = RootID
    lpIDList = SHBrowseForFolder(BInfo)
    If lpIDList <> 0 Then
    sPath = String(MAX_PATH, 0)
    res = SHGetPathFromIDList(lpIDList, sPath)
    Call CoTaskMemFree(lpIDList)
    Nullpos = InStr(sPath, vbNullChar)
    If Nullpos <> 0 Then
    sPath = Left(sPath, Nullpos - 1)
    End If
    End If
    BrowseFolders = sPath
    End Function

    Private Sub Command1_Click()
    'следующие вызовы функции сработали нормально
    MsgBox BrowseFolders(hWnd, "Select a Folder", BrowseForFolders, CSIDL_DESKTOP) '+весь компьютер
    'MsgBox BrowseFolders(hWnd, "Select a Folder", BrowseForFolders, CSIDL_DRIVES) '+только устройства
    'MsgBox BrowseFolders(hWnd, "Select a Folder", BrowseForFolders, CSIDL_NETHOOD) '+только сеть
    'MsgBox BrowseFolders(hWnd, "Select a Folder", BrowseForFolders, CSIDL_PROGRAMS) '+папка Программы
    'MsgBox BrowseFolders(hWnd, "Select a Folder", BrowseForFolders, CSIDL_STARTMENU) '+Главное меню

    'результат действия следующих кодов вызвал недоумение...
    'MsgBox BrowseFolders(hWnd, "Select a Folder", BrowseForFolders, CSIDL_BITBUCKET) '-корзина
    'MsgBox BrowseFolders(hWnd, "Select a Folder", BrowseForFolders, CSIDL_CONTROLS) '-панель управления
    'MsgBox BrowseFolders(hWnd, "Select a Folder", BrowseForFolders, CSIDL_FONTS) '-папка со шрифтами
    'MsgBox BrowseFolders(hWnd, "Select a Folder", BrowseForFolders, CSIDL_NETWORK) '-NetHood
    'MsgBox BrowseFolders(hWnd, "Select a Folder", BrowseForFolders, CSIDL_PERSONAL) '-Мои документы
    'MsgBox BrowseFolders(hWnd, "Select a Folder", BrowseForFolders, CSIDL_PRINTERS) '-Принтеры
    'MsgBox BrowseFolders(hWnd, "Select a Folder", BrowseForFolders, CSIDL_RECENT) '-RECENT
    'MsgBox BrowseFolders(hWnd, "Select a Folder", BrowseForFolders, CSIDL_SENDTO) '-SENDTO
    End Sub

    наверх

    Получение сведений о папке (с использованием FileSystemObject)

    В данном примере вы можете узнать о том, как можно получить сведения о папке с использованием FileSystemObject. Для использования этого примера установите ссылку на Microsoft Scripting Runtime через меню Project | References.

    И не забудьте расположить на форме элемент ListBox

    В этом примере вы можете узнать: Имя папки, Полный путь, Дата создания, Размер папки

    Dim FSys As New FileSystemObject
    Private Sub Form_Load()
    Set qn = FSys.GetFolder("D:\2\attribute\")
    List1.AddItem "Имя папки " & qn.Name
    List1.AddItem "Полный путь " & qn.Path
    List1.AddItem "Дата создания " & qn.DateCreated
    List1.AddItem "Размер папки " & qn.Size
    End Sub

    наверх

    Открытие стандартного окна выбора папок/файлов

    Расположите на форме TextBox и CommandButton. При нажатии на кнопку вы получите доступ ко всем папкам и файлам компьютера. Вы можете ограничить возможность выбирать только папки. Наличие BIF-констант в вызываемой функции и определяет такие возможности по выбору.

    Option Explicit
    Private Type BrowseInfo
    hWndOwner As Long
    pIDLRoot As Long
    pszDisplayName As Long
    lpszTitle As Long
    ulFlags As Long
    lpfnCallback As Long
    lParam As Long
    iImage As Long
    End Type

    Private Enum WhatBrowse
    BIF_RETURNONLYFSDIRS = &H1
    BIF_BROWSEINCLUDEFILES = &H1 Or &H4000
    BIF_BROWSEFORCOMPUTER = &H1000
    BIF_BROWSEFORPRINTER = &H2000
    End Enum

    Private Const MAX_PATH = 260
    Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)
    Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
    Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
    Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long

    Public Function fBrowseForFolder(hWndOwner As Long, sPrompt As String, WhatBr) As String
    Dim iNull As Integer
    Dim lpIDList As Long
    Dim lResult As Long
    Dim sPath As String
    Dim udtBI As BrowseInfo
    With udtBI
    .hWndOwner = hWndOwner
    .lpszTitle = lstrcat(sPrompt, "")
    .ulFlags = WhatBr
    End With
    lpIDList = SHBrowseForFolder(udtBI)
    If lpIDList Then
    sPath = String$(MAX_PATH, 0)
    lResult = SHGetPathFromIDList(lpIDList, sPath)
    Call CoTaskMemFree(lpIDList)
    iNull = InStr(sPath, vbNullChar)
    If iNull Then sPath = Left$(sPath, iNull - 1)
    End If
    fBrowseForFolder = sPath
    End Function

    Private Sub Command1_Click()
    Dim sStr As String
    'вместо входящего параметра BIF_BROWSEINCLUDEFILES вы можете использовать одну из
    'BIF-констант, описанных строчкой Private Enum WhatBrowse (смотри в разделе General_Declarations)
    sStr = fBrowseForFolder(hWnd, "Выберите папку, файл, принтер или компьютер", BIF_BROWSEINCLUDEFILES)
    Text1.Text = sStr
    End Sub

    наверх

    Как программно вызвать окно свойств (Properties) файла

    Private Declare Function ShellExecuteEX Lib "shell32.dll" Alias "ShellExecuteEx" (SEI As SHELLEXECUTEINFO) As Long
    Const SEE_MASK_INVOKEIDLIST = &HC
    Const SEE_MASK_NOCLOSEPROCESS = &H40
    Const SEE_MASK_FLAG_NO_UI = &H400
    Private Type SHELLEXECUTEINFO
    cbSize As Long
    fMask As Long
    hwnd As Long
    lpVerb As String
    lpFile As String
    lpParameters As String
    lpDirectory As String
    nShow As Long
    hInstApp As Long
    lpIDList As Long
    lpClass As String
    hkeyClass As Long
    dwHotKey As Long
    hIcon As Long
    hProcess As Long
    End Type

    Public Sub ShowProps(FileName As String, OwnerhWnd As Long)
    Dim SEI As SHELLEXECUTEINFO
    Dim r As Long
    With SEI
    .cbSize = Len(SEI)
    .fMask = SEE_MASK_NOCLOSEPROCESS Or _
    SEE_MASK_INVOKEIDLIST Or SEE_MASK_FLAG_NO_UI
    .hwnd = OwnerhWnd
    .lpVerb = "properties"
    .lpFile = FileName
    .lpParameters = vbNullChar
    .lpDirectory = vbNullChar
    .nShow = 0
    .hInstApp = 0
    .lpIDList = 0
    End With
    r = ShellExecuteEX(SEI)
    End Sub

    Private Sub Form_Load()
    Call ShowProps("C:\AUTOEXEC.BAT", Me.hwnd)
    End Sub

    наверх

    Получение даты последней коррекции файла

    Для работы иногда полезно получить данные о дате создания или последней коррекции файла. Для этого можно использовать функцию FileDateTime(ИмяФайла), например:

    Dim MyDateTime As Date
    MyDateTime = FileDateTime("D:\Calc.bas)

    С помощью этой же функции можно определить время создания каталога, но следует иметь в виду, что имя каталога в данном случае не должно заканчиваться на обратную косую черту:

    MyDateTime = FileDateTime("D:\TMP\") ' имя каталога задано неверно
    MyDateTime = FileDateTime("D:\TMP") ' имя каталога задано правильно

    Но получить дату создания корневого каталога (то есть диска) с использование FileDateTime нельзя.

    Источник: http://www.relib.com/code.asp?id=377

    наверх

    Существует ли файл?

    1. Возвращает 1(файл существует) или 0 (файла нет)

    Private Declare Function PathFileExists Lib "shlwapi.dll" Alias "PathFileExistsA" (ByVal pszPath As String) As Long
    MsgBox PathFileExists("c:\autoexec.bat")

    2. Возвращает True(файл существует) или False(файла нет)

    Private Declare Function PathFileExists Lib "shlwapi.dll" Alias "PathFileExistsA" (ByVal pszPath As String) As Long
    Public Function DoesFileExist(ByVal strPath As String) As Boolean
    DoesFileExist = PathFileExists(strPath)
    End Function
    MsgBox DoesFileExist("c:\autoexec.bat")

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Георгий

    Ответ ожидается по этому адресу

    Кто янает, ДЛЯ КАКОЙ цели в CommonDialog есть вояможность яадавать .Action = 1, 2, 3 ? Свойство .Action = 2 не работает, а только соядает ВИДИМОСТЬ Save As.
    Вопрос: А ЗАЧЕМ КОЗЕ БАЯН!? Или я не прав?

    Автор вопроса: Александр

    Ответ ожидается по этому адресу

    Подскажите пожалуйста как в Excel создать свою форму для ввода данных, подобной той которая имется в Excel? А то создал лист с формулами и для заполнения нужно всего 3-4 ячейки в строке,а строк очень много. стандартная встроенная форма не работает ,так как очень много ячеек в строке да и они ненужны для ввода данных и если есть такая возвожность то пришлите пож. исходники.

    Автор вопроса: Журавлев Д.В.

    Ответ ожидается по этому адресу

    Реально ли вообще для команды print задать место вывода текста? Тесть сделать эффект печатающей машинки, или "текущее значение= Х" где Х меняется. Ну и естественно чтоб это было в одной строчке. Применение Label нежелательно.

    Ответы:

    Вопрос:

    Хочу, чтобы из моей программы можно было послать электронное письмо (пользователь задает адрес, текст и т.д.) Как это сделать?

    Ответ:

    Автор ответа: Сергей Гуров

    Для отправки письма, кликаешь по кнопке или метке (вообще по чему хочешь (и лучше над этим объектом менять курсор)) и запускается почтовик установленный по умолчанию с указанными параметрами через API, остается только отправить мыло. Параметры можешь определить чем хочешь: списком, текстовым полем и т.д. помогаю.
    -----------------
    Private Declare Function ShellExecute& Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long)
    Private Declare Function GetDesktopWindow Lib "user32" () As Long

    Private Sub Label1_Click()
    'Вызываем маил с адресом
    Call ShellExecute(0&, "Open", "mailto:" + "ЛОГИН@СЕРВЕР.ru" + "?Subject=" + "'Здесь описана тема...'", "", "", SW_SHOWNORMAL)
    End Sub
    ------------------
    Вот и все.

    Вопрос:

    Народ, а где можно достать инфу по работе с DirectX в VB?

    Ответ:

    Автор ответа: Кривокрисенко Артём

    Инфу эту можно достать на 4-х дисковом MSDN(Январь, 2001). Весь четвёртый компакт полностью посвящён DirextX. Купил я этот компакт в Киеве на книжном рынке возле метро Петровка. Если живёшь далеко от Киева (как и я), то полазь по www.msdn.microsoft.com. Думаю, там что-нибудь найдёшь.

    Вопрос:

    Лююди! Как проигрывать MP3 файлы на VB? Использовать MCI или можно через WinAPI???

    Ответ:

    Автор ответа: Кривокрисенко Артём

    ожно проигрывать эти файлы, подключив к проекту библиотеку Windows Media Player

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 36.

VBNet
  • Библиотека кодов
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Очередной 36 выпуск рассылки.
    Читайте!

    Содержание выпуска
    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Visual Basic 6.0. Разработка приложений (+ дискета)

     Данная книга является наиболее полным практическим руководством по конструированию современных полнофункциональных Windows - приложений на базе Visual Basic 6.0. В книге рассматриваются основные понятия и приемы программирования на Visual Basic, принципы разработки приложений с помощью методов объектно - ориентированного программирования. Большое внимание уделено работе с базами данных, использованию ActiveX - технологии и средств Windows API и OLE Automation, финансовому анализу, программированию игр, мультипликации. Имеется ряд упражнений повышенного уровня сложности, решение которых позволит приобрести устойчивые практические навыки.

    Автор: Гарнаев А
    Издательство: BHV - Санкт - Петербург
    Год издания: 2000
    Кол-во страниц: 448
    Стоимость: 159 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Visual Basic 6.0. Учебное пособие для высших учебных заведений

     В систематизированном виде излагаются основы программирования в среде одного из наиболее популярных визуальных средств разработки Windows-приложений. Рассмотрены фундаментальные понятия, использование графики и анимации, программирование баз данных, основы проектирования пользовательского интерфейса. Для студентов, обучающихся по направлению 654600 `Информатика и вычислительная техника`, может быть полезна начинающим программистам.

    Автор: Литвиненко Т
    Издательство: Горячая Линия - Телеком
    Год издания: 2001
    Кол-во страниц: 144
    Стоимость: 51 р.
    Формат: 60x88/16
    Переплёт: мягкий

    Visual Basic для школьников. Первое знакомство. Рабочая тетрадь 1

     Рабочая тетрадь `Первое знакомство с Visual Basic` предназначена для обучения детей, начиная с седьмого класса и старше основам проектирования в среде Visual Basic. Этот небольшой (32-часовой курс) знакомит школьников с основными понятиями объектно-ориентированного программирования такими, как форма, элементы управления, свойства, методы и др. На каждом занятии ученики кроме освоения понятийного материала делают небольшие проекты на компьютере в среде Visual Basic. Завершается курс созданием собственного проекта с элементами анимации. В дальнейшем автор тетради имеет ввиду издавать рабочие тетради по развитию этого курса в углублении знаний и навыков детей по освоению среды Visual Basic. Тетрадь может быть использована на уроках информатики, на факультативных занятиях в школе и для домашней индивидуальной работы детей с родителями и самостоятельной работы. В тетради использованы материалы отечественных и переводных книг по Visual Basic, автором обобщен опыт его практической работы в УВК № 1628 г. Москвы.

    Автор: Истомина Т
    Издательство: Дограф
    Год издания: 2000
    Кол-во страниц: 64
    Стоимость: 42 р.
    Формат: 70x108/16
    Переплёт: мягкий

    Visual Basic. Самоучитель для начинающих

     Самоучитель написан так, что после его изучения, можно будет самостоятельно составлять программы на Visual Basic и выполнять их на компьютере. Материал изложен простым и доступным языком. Все объясняется на примерах. Метод изложения - от частного к общему. Рассмотрение почти каждой темы заканчивается задачами на составление программы (всего таких задач - 132). Подавляющее большинство задач снабжено ответами, так что читатель может эффективно контролировать усвоение материала.

    Автор: Лукин С
    Издательство: Диалог - МИФИ
    Год издания: 2001
    Кол-во страниц: 544
    Стоимость: 123 р.
    Формат: 60x84/16
    Переплёт: мягкий

    Бейсик в задачах и примерах. Более 200 задач

     Книга представляет собой сборник примеров и задач по программированию на языке Бейсик. В доступной форме рассматриваются ключевые понятия программирования: алгоритм, переменные, массивы, операторы, подпрограммы. Большое внимание уделено работе с графикой, что особенно понравится школьникам. Немаловажной является тема о файловом вводе/выводе. Для некоторых упражнений приведены решения. Помимо задач и примеров книга содержит справочник по языку программирования Qbasic. Может использоваться в качестве задачника для учеников 8-11 классов, изучающих программирование в школе.

    Автор: Сафронов И
    Издательство: BHV - Санкт - Петербург
    Год издания: 2000
    Кол-во страниц: 224
    Стоимость: 62 р.
    Формат: 60x90/16
    Переплёт: мягкий

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 04.03.2002 05:29 | Раздел: Примеры кода | Автор: Беляев Данила

    Mover - Прилипание формы к краю экрана? И Вы тоже мучались с этой проблемой? Вот пример, который может Вам помочь. Все сделано с использованием API с метода создания подкласа окна. Пример стоит того, чтобы обратить на него внимание.

    Дата: 01.03.2002 06:42 | Раздел: Статьи по VB | Автор: Гриненко Виталий

    Моё первое впечатление о VB7 - Первые впечатления о VB7 - краткий обзор новой версии Visual Basic. Полное разочарование возникло у меня в конце первого дня знакомства с Visual Basic 7.0 из нового пакета Visual Studio.net. На утро второго дня я написал эту статью. Но это всё конечно эмоции,... а теперь давайте все по порядку.

    Дата: 28.02.2002 06:19 | Раздел: Примеры кода | Автор: JEDI

    AntiLamo - Как защитить программу от ламеров? Ясно, что это должно быть просто и доступно, но как? В примере показано, как можно закрыть доступ из своей программы к некоторым папкам компьютера. Конечно, закроется доступ только из вашей программы, а Проводник и другие будут так же иметь туда доступ, но все же пример можно взять за основу ограничения доступа к избранным функциям в вашей программе.

    Дата: 27.02.2002 06:20 | Раздел: ActiveX контролы | Автор: JEDI

    ProgressBar - Еще один прогресс бар. Все в исходниках и сделано очень просто. В этом OCX нет никаких излишеств и настроек. Все по спартански - метод DrawProgress и событие OnEnd при достижении 100%. Вот в принципе и все...

    Дата: 27.02.2002 06:18 | Раздел: Примеры кода | Автор: Половый Александр

    Календарь - Простенький Календарик, который находится в системном трее. Возможеность выбора даты: от 1 января 1900 года до 31 декабря 2100 года. По кнопке сегодня выбирается текущая дата. Выделенную дату можно скопировать в буффер обмена (меню "Копировать" по правой кнопки мыши).

    Дата: 26.02.2002 06:16 | Раздел: Примеры кода | Автор: Рахимов Рафис

    Сапер - Пример одной из самых известных игр - Сапер, из комплекта операционной системы Windows. Между ними есть только одно отличие - язык программирования. В общем-то, очень хороший клон. Глюков не заметил...

    Последние 20 тем форума на VBNet.Ru:

    03:39 / 4 мар. Вопрос о контекстном меню | Ответов: 1
    02:06 / 4 мар. Новое сообщение без темы | Ответов: 1
    01:56 / 4 мар. Повернуть Image на плоскости. | Ответов: 0
    01:00 / 4 мар. Несколько вопрос по VB | Ответов: 1
    22:04 / 3 мар. достать модуль из access`а | Ответов: 1
    21:40 / 3 мар. Временной счётчик | Ответов: 1
    20:29 / 3 мар. Text box | Ответов: 1
    19:37 / 3 мар. Все приглашаются в Чат | Ответов: 0
    19:28 / 3 мар. Требуется помощ | Ответов: 1
    08:32 / 3 мар. Shut Down | Ответов: 2
    01:14 / 3 мар. Обращение к базе данных в локальной сети | Ответов: 0
    00:38 / 3 мар. небольшая программа | Ответов: 2
    21:07 / 2 мар. Как добавить ярлык в Пуск\Программы и на р/стол | Ответов: 1
    20:56 / 2 мар. Клава | Ответов: 1
    19:14 / 2 мар. определить наличие файла... | Ответов: 2
    17:45 / 2 мар. Media Player | Ответов: 0
    17:36 / 2 мар. Приглашения... | Ответов: 1
    17:08 / 2 мар. Rus or Lat | Ответов: 0
    16:29 / 2 мар. Стиль формы | Ответов: 0
    15:49 / 2 мар. Комбинирование картинок | Ответов: 1

    Последние поступления в Библиотеку кодов:

    Нет.

    наверх

    Новости сайта VBMania

    • 25.01 - Сегодня открылся новый раздел, в котором вы можете найти ссылки на целую кучу книг по тематике VB и около него.
    • 22.01 - 22 января вышел второй номер он-лайн журнала о Visual Basic 'VB Мания'. В нем можно почитать авторские статьи в уже устоявшихся разделах: Технологии, Система, Графика, Профессия, Человечество и Юмор. Так же не обошлось без новшеств: появился новый раздел dotNET и особенно рецензии ActiveX-компонентов. Обязательно заходите.
    • 17.12 - В связи с тем что форум не горел желаением вести себя так, как должен обычный, порядочный форум, мы его прикрыли для проведения разъяснительных мероприятий. Надеемся, что они не затянутся и форум образумится.
    • 06.12 - С сегодняшнего дня все желающие могут добавлять свои новости и статьи в наши архивы.
      Да здраствует открытость!
    • 27.11 - Наконец-то, после долгих дней и бессонных ночей это свершилось! Сайт объявляется открытым! Непременно прочитайте первый номер нашего журнала. Оцените наши дополнительные проекты. И конечно мы ждем ваших откликов в гостевой книге и по почте.
    • 01.12 - Произошло несколько косметических улучшений, касающихся исключительно удобства работы с сайтом. Во-первых, можно видеть количество записей обсуждения новостей на главной странице; а во-вторых чуточку подправились директории.
      Оценяйте!

    наверх

    Новости сайта Азбука VB

    • 19 февраля 2001 года
      Интервью с Арменом Мнацаканяном.
      Как определить, является ли символ буквой или цифрой? Когда нужно убедиться, что данный символ — буква (а не цифра, знак препинания, специальный символ и т.д.), то первое, что приходит в голову, — проверить, попадает ли он в диапазон A-Z или a-z. Это ошибочно по двум причинам.
      Как сделать, что бы Photoshop понимал русские буквы.
      Как сделать ссылку в RichEdit'е. Спасибо Арташесу за пример MousinRTF, благодаря этому примеру я написал свой, очень интересный пример - наводишь на ссылку в RichEdit'е а курсор меняется на руку(как в IE), ну и попутно - как отградить вставку в RichEdit всякого мусора(картинки, html, rtf), кроме нормального текста.
      Создание отсоединенного набора записей используя объкт АДО. На примере показано, как создать отсоединенный набор данных, произвести изменения и вновь подключить его.
    • 10 января 2001 года
      Интересный пример создания popMenu используя API функции CreatePopupMenu, AppendMenu, DestroyMenu, TrackPopupMenu и GetCursorPos.
      Пример показывает, как можно отлавливать события при нажатии на кнопках в заголовке формы. В примере использовались API функции - CallWindowProc и SetWindowLong.

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Николай

    Ответ ожидается по этому адресу

    Возможна ли одновременная работа в одной программе двух Winsock ,один работает на приём сообщений (так сказать в режиме ожидания сообщений)а второй на отправку сообщений ?

    Автор вопроса: НикАндр

    Ответ ожидается по этому адресу

    КАК МОЖНО ПОМЕНЯТЬ КАРТИНКУ ПЕРЕЗАГРУЗКИ WINDOWS своей а ?

    Автор вопроса: НикАндр

    Ответ ожидается по этому адресу

    КАК СДЕЛАТЬ ТАК ЧТОБЫ ФАИЛ НЕЛЬЗЯ БЫЛО УДАЛИТЬ (ну там при удалении копировал сам себя в эту же папку...) и если можно так сделать КАК ЕГО УДАЛИТЬ ???

    Автор вопроса: НикАндр

    Ответ ожидается по этому адресу

    КАК СДЕЛАТЬ ЧТОБЫ КОПИРОВАЛСЯ ФАИЛ (который яапустил) В ВЫБРАННУЮ ДИРЕКТОРИЮ или КАК ЗАСУНУТЬ В АВТОЗАПУСК ??

    Автор вопроса: НикАндр

    Ответ ожидается по этому адресу

    ПОДСКАЖИТЕ КАК МОЖНО УДАЛИТЬ НЕ ОТДЕЛЬНЫЙ ФАИЛ А ПАПКУ ПОЛНОСТЬЮ НЕ ПЕРЕМЕЩАЯ В КАРЗИНУ? (типо KILL'ера)

    Автор вопроса: Константин

    Ответ ожидается по этому адресу

    Люди! Где почитать про систему DataReport в VB6? Желательно на русском! И еще, у кого нибудь есть опыт работы в Rational Rose? Нужна информация по этой проге!

    Автор вопроса: Петроченко Иван

    Ответ ожидается по этому адресу

    Как определить пояицию курсора в Windows?

    Автор вопроса: Олег

    Ответ ожидается по этому адресу

    Как сумировать ячейки в таблице Exel которые выделены к примеру красным цветом, тоесть не сама ячейка красная а шрифт?

    Автор вопроса: Праздникоа Светлана

    Ответ ожидается по этому адресу

    Подскажите, как мне перемешать элементы на форме в раяличном порядке? (В Turbo Pascale есть функция Randomise, а в VB?)

    Автор вопроса: DDT

    Ответ ожидается по этому адресу

    Как можно вставить в форму excel-диаграмму и при этом изменять в ней данные программно, а не руками.
    В принципе, я не против и MsChart'а, но она не дает мне точного отбражения графика - искаженый он какой-то (не такой как надо) :(

    Автор вопроса: Виктор

    Ответ ожидается по этому адресу

    Как мне из моей проги открыть excel, добавить в него новую таблицу, а в нее уже добавить некоторые данные (числа, текст).
    Я пока вишу только на добавлении новой таблицы - т.е. excel он мне открывает, но на этом все, дальше не могу. Вот мой исходник:

    Option Explicit

    Private exapp As Excel.Application

    Private Sub Комманда1_Click()
    Set exapp = New Excel.Application
    ' WordApp.Visible = True
    exapp.Visible = True
    'Set exapp = Nothing
    End Sub

    Дальше не знаю как - помогите ПЛЗ :)

    Ответы:

    Вопрос:

    Кто янает, ДЛЯ КАКОЙ цели в CommonDialog есть вояможность яадавать .Action = 1, 2, 3 ? Свойство .Action = 2 не работает, а только соядает ВИДИМОСТЬ Save As.
    Вопрос: А ЗАЧЕМ КОЗЕ БАЯН!? Или я не прав?

    Ответ:

    Автор ответа: Игорь

    CommonDialog имеет 4 action'а: сохранение файла, открытие файла, выбор шрифта и печать. В зависимости от того, какой action ты вызываешь, появляется нужный тебе диалог.

    Вопрос:

    Кто янает, ДЛЯ КАКОЙ цели в CommonDialog есть вояможность яадавать .Action = 1, 2, 3 ? Свойство .Action = 2 не работает, а только соядает ВИДИМОСТЬ Save As.
    Вопрос: А ЗАЧЕМ КОЗЕ БАЯН!? Или я не прав?

    Ответ:

    Автор ответа: Сергей

    Как пишут в умных книжках в CommonDialog "Open" и "Save As" различаются только надписью в заголовке формы и надписью на кнопке, а результатом работы данного контрола есть свойство .FileName ( .Font, .Color, .FromPage, .ToPage, .Copies, .Orientation) в котором хранится имя файла (шрифт, цвет, параметры бумаги), над которым ты будешь издеваться, так что ты отчасти прав, сохранять придется своими ручками. Но мне кажется, что от этого контрола больше пользы чем вреда: 4-10 строчек и не нужно самому никаких окон придумывать.

    Вопрос:

    Реально ли вообще для команды print задать место вывода текста? Тесть сделать эффект печатающей машинки, или "текущее значение= Х" где Х меняется. Ну и естественно чтоб это было в одной строчке. Применение Label нежелательно.

    Ответ:

    Автор ответа: Владимир Капустин

    Для демонстрации создайте на форме:
    Text1,Text2 и Command1
    После запуска введите точки отступа сверху и слева в текстовых окнах (Text1 - Х, Text2 - Y) и нажмите На Command1 мышью.
    В процедуре Command1 вставьте:

    Sub Command1_Click ()
    ipX = screen.TwipsPerPixelX
    ipY = screen.TwipsPerPixelY
    Cls
    autoredraw = True
    currentx = Val(Text1.Text) * ipX
    currentY = Val(Text2.Text) * ipY
    Me.Print "!"
    End Sub

    Вопрос:

    Реально ли вообще для команды print задать место вывода текста? Тесть сделать эффект печатающей машинки, или "текущее значение= Х" где Х меняется. Ну и естественно чтоб это было в одной строчке. Применение Label нежелательно.

    Ответ:

    Автор ответа: Rafis

    Задать координаты вывода текста и не только, можно при помощи свойств CurrentX и CurrentY, где CurrentX-координата верхнего угла(относительно формы), а CurrentY-координата левого угла(относительно формы).
    Вот,пример, использующий эти свойства:

    Private Sub Form_Load()
    Show
    CurrentX = 0
    CurrentY = 1500
    Print "Rafis"
    End Sub

    Вопрос:

    Очень хочу узнать с помощью чего можно отобразить у себя на форме амимацию.

    Ответ:

    Автор ответа: Jumanjee

    Проигрывать файлы типа avi на форме можно с помощью элемента Animation находится в библиотеке Microsoft Windows Common Controls-2 6.0

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 37.

VBNet
  • Библиотека кодов
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Поздравляю всех женщин с Международным женским днём!!!
    Читайте!

    Содержание выпуска
    • Книги

    • Получить размер файла
    • Сравнить два файла на идентичность
    • Копирование, перемещение, удаление файла
    • Как получить имя файла или его расширение, зная полный путь файла
    • Сохранение rtf-файла в htm-файл
    • Изменение атрибутов файла

    • Вопрос/Ответ

    Книги

    Занимательное программирование. Visual Basic

     Книга адресована школьникам 12-15 лет, желающим обучиться составлению программ для персонального компьютера. Прочитав ее, школьник узнает основные понятия программирования, поймет принципы хранения и преобразования данных, освоит стандартные приемы программирования. В качестве языка и среды программирования избрана система Visual Basic, как наиболее доступная и простая в изучении. Книга рассчитана на самостоятельную работу школьника, не имеющего преподавателя или опытного наставника. Авторы заранее предусмотрели ответы на вопросы, наиболее часто возникающие на ранних этапах обучения. Главная задача книги - увлечь читателя интересными примерами и подвести его к уровню, после которого он сможет расширять знания с помощью учебных и справочных пособий.

    Автор: Симонович С, Евсеев Г
    Издательство: АСТ-Пресс, Инфорком - Пресс
    Год издания: 2001
    Кол-во страниц: 320
    Стоимость: 61 р.
    Формат: 60x90/16
    Переплёт: твёрдый

    Информатика в задачах, примерах, алгоритмах/Visual Basic for Application

     Настоящий сборник задач представляет собой практическое пособие для учащихся средних и высших учебных заведений, изучающих информатику. Особенность сборника в том, что он позволяет научиться создавать собственные алгоритмы решения задач, а также дает возможность преподавателю информатики в процессе обучения использовать индивидуальный подход к ученикам без дополнительных затрат времени. Автор сознательно приводит в качестве ответов только численные значения, так как существует множество алгоритмов решения каждой задачи. Читатель может использовать в процессе работы с задачником любые языки программирования. В частности, решение задач из сборника поможет приобрести практические навыки написания макросов в приложениях `Microsoft Office` на языке Visual Basic Application.

    Автор: Алиев В
    Издательство: Солон - Р
    Год издания: 2001
    Кол-во страниц: 144
    Стоимость: 41 р.
    Формат: 60x88/16
    Переплёт: мягкий

    Использование Visual Basic 6. Специальное издание

     В книге описана новая версия популярной системы программирования Visual Basic 6. Изложение материала построено по принципу `от простого к сложному`. Первые главы этой книги адресованы новичкам, из которых они смогут почерпнуть основы языка Visual Basic и описание его стандартных компонентов. Для подготовленных пользователей будет интересен раздел, посвященный специальным методам программироваия с использованием стандартных компонентов Windows, элементов управления ActiveX, ADO, RDO и др. В отдельную часть вынесены вопросы, связанные с разработкой приложений баз данных на Visual Basic и работе в Internet. Автор не обошел также вниманием различные версии языка Visual Basic - VRA и VBScript. В приложениях приведен обзор интегрированной среды разработки Visual Basic, а также краткий справочник по SQL. Книга рассчитана на широкий круг читателей.

    Автор: Брайан Сайлер, Джефф Споттс
    Издательство: Вильямс
    Год издания: 2000
    Кол-во страниц: 832
    Стоимость: 280 р.
    Формат: 70x100/16
    Переплёт: твёрдый

    Обработка баз данных на Visual Basic 6 (+ CD - ROM)

     Сердцем многих приложений, работающих в сфере бизнеса, являются базы данных. Своим широким распространением они обязаны возможности централизованного доступа к информации, который характеризуется последовательностью, эффективностью и относительной простотой создания и поддержки. В книге «Обработка баз данных на Visual Basic 6» описываются все технологии доступа к базам данных с помощью Visual Basic. Приведенные в этой книге примеры взяты из реальной жизни, поэтому, ознакомившись с ними, вы узнаете, как можно использовать базы данных для принятия решений в сфере бизнеса. Если вы еще не готовы перейти к версии Visual Basic 6, это вовсе не значит, что данная книга вам не подходит. Практически 95% материала этой книги удовлетворит в равной степени пользователей как пятой, так и шестой версии Visual Basic. Книга рассчитана на программистов средней и высокой квалификации.

    Автор: Джеффри П. Мак - Манус
    Издательство: Вильямс
    Год издания: 2001
    Кол-во страниц: 672
    Стоимость: 330 р.
    Формат: 70x100/16
    Переплёт: твёрдый

    Практика программирования: Бейсик, Си, Паскаль (+ дискета). Самоучитель

     Содержится более 130 готовых к исполнению программ, большинство из которых представлено на трех алгоритмических языках - Бейсике, Си и Паскале. Все разделы предваряются описанием соответствующих конструкций каждого алгоритмического языка. При этом особое внимание обращается на общность языковых средств рассматриваемых систем программирования - QBasic, Turbo С (Borland C++) и Turbo Pascal. Текстам программ предшествуют советы по их разработке с учетом специфики того или иного алгоритмического языка и описание наиболее характерных особенностей.

    Автор: Кетков Александр, Кетков Юлий
    Издательство: БХВ - Петербург
    Год издания: 2001
    Кол-во страниц: 480
    Стоимость: 131 р.
    Формат: 70x100/16
    Переплёт: мягкий

    Остальные книги о VB можно найти     здесь.

    наверх

    Получить размер файла

    Получить размер файлаРазмер файла можно определить двумя путями:

    1. Если файл можно открыть функцией OPEN, то можно воспользоваться функцией LOF

    Dim FileFree As Integer
    Dim FileSize As Long
    FileFree = FreeFile
    Open "C:\WIN\GENERAL.TXT" For Input As FileFree
    FileSize = LOF(FileFree)
    Close FileFree

    2. Используя функцию FileLen

    Dim lFileSize As Long
    FileSize = FileLen("C:\WIN\GENERAL.TXT")

    3. Используя FileSystemObject

    Для использования этого примера установите ссылку на Microsoft Scripting Runtime через меню Project | References.

    Dim FSys As New FileSystemObject
    Private Sub Command1_Click()
    'Не забудьте установить ссылку на свой файл
    Set qn = FSys.GetFile("D:\2\attributes\FileAtribs2.vbp")
    MsgBox "Размер файла " & qn.Size / 1024 & " килобайт"
    End Sub

    наверх

    Сравнить два файла на идентичность

    Private Sub Form_Load()
    'замените пути файлов, которые вы хотите сравнить
    Open "C:\1\convert1bmp.htm" For Binary As #1
    Open "C:\1\convert2bmp.htm" For Binary As #2
    issame% = True
    If LOF(1) <> LOF(2) Then
    issame% = False
    Else
    whole& = LOF(1) \ 10000
    part& = LOF(1) Mod 10000
    buffer1$ = String$(10000, 0)
    buffer2$ = String$(10000, 0)
    start& = 1
    For X& = 1 To whole&
    Get #1, start&, buffer1$
    Get #2, start&, buffer2$
    If buffer1$ <> buffer2$ Then
    issame% = False
    Exit For
    End If
    start& = start& + 10000
    Next
    buffer1$ = String$(part&, 0)
    buffer2$ = String$(part&, 0)
    Get #1, start&, buffer1$
    Get #2, start&, buffer2$
    If buffer1$ <> buffer2$ Then issame% = False
    End If
    Close
    If issame% Then
    MsgBox "Файлы идентичны", 64, "Info"
    Else
    MsgBox "Файлы НЕ идентичны", 16, "Info"
    End If
    End Sub

    наверх

    Копирование, перемещение, удаление файла

    'Копирование файла

    Private Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long

    Private Sub Form_Load()
    'Этот пример скопирует файл 'C:\1\conv.htm' в директорию 'C:\1\2\'.
    'Если файл существует, то он будет перезаписан новым файлом.
    'Если вы хотите, чтобы новый файл не записывался на место старого, замените 'False' на 'True'
    A = CopyFile("C:\1\conv.htm", "C:\1\1\conv.htm", False)
    If A Then
    MsgBox "Файл скопирован"
    Else
    MsgBox "Ошибка. Файл НЕ скопирован"
    End If
    End Sub

    'Перемещение файла

    Private Declare Function MoveFile Lib "kernel32" Alias "MoveFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String) As Long
    Private Sub Command1_Click()
    'перемещение файла из одной папки в другую
    MoveFile "C:\1\conv.htm", "C:\1\1\conv.htm"
    End Sub

    'Удаление файла

    Private Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long
    Private Sub Command1_Click()
    DeleteFile "C:\1\1\conv.htm"
    End Sub

    наверх

    Как получить имя файла или его расширение, зная полный путь файла

    Использование функции простое. В качестве переменной sFullPath задается полный путь файла, в качестве point задается разделитель: "\" - если вы хотите получить имя файла, "." - если вы хотите получить расширение файла.

    Private Function Spliting(sFullPath As String, point As String)
    Dim str1() As String
    str1 = Split(sFullPath, point)
    Spliting = str1(UBound(str1))
    End Function

    наверх

    Сохранение rtf-файла в htm-файл

    Расположите на форме элемент RichTextBox (подключается через меню Project | Components - Microsoft Rich Textbox Control 6.0) а также CommandButton.

    Private Sub Command1_Click()
    'присваиваем переменной содержимое RichTextBox1
    Dim txt As String
    txt = RichTextBox1.Text
    'переменная для хранения htm-файла
    Dim a As String
    a = "<html>" & vbCrLf & "<head>" & vbCrLf & "<title>Заголовок</title>" & vbCrLf & "</head>" & vbCrLf & "<body>"
    a = a & vbCrLf & "<pre>" & txt & "</pre>" & vbCrLf & "</body>" & vbCrLf & "</html>"
    'сохранение в htm-файл
    Dim FN As Integer
    FN = FreeFile
    Dim FName As String
    FName = "C:\index.htm"
    Open FName For Output As #FN
    Print #FN, a
    Close #FN
    End Sub
    Private Sub Form_Load()
    'загрузка файла
    RichTextBox1.FileName = "C:\Мои документы\1.rtf"
    End Sub

    наверх

    Изменение атрибутов файла

    Далее следуют несколько примеров с изменением атрибутов файла "Только чтение" и "Архивный".

    Переменная strFileName содержит полный путь к файлу

    'Очистить атрибут "Только чтение"

    SetAttr strFileName, GetAttr(strFileName) And (Not vbReadOnly)

    'Очистить атрибут "Архивный"

    SetAttr strFileName, GetAttr(strFileName) And (Not vbArchive)

    'Поставить атрибут "Только чтение"

    SetAttr strFileName, vbReadOnly

    'Поставить атрибут "Архивный"

    SetAttr strFileName, vbArchive

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Dmitriy S.

    Ответ ожидается по этому адресу

    У меня 2 вопроса:
    1.Подскажите, как на VB определить папку(путь), где стоит система?
    2.Можно ли на VB отключать яаставку Windows в свойствах экрана?

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Где взять книгу по API функциям Или хороший материалл с примерами хорошо бы все это на русском языке

    Автор вопроса: Лозовой Александр

    Ответ ожидается по этому адресу

    Как с помощью API функций определить текущую(не 14400,28600 или 33600, а именно точную) скорость интернета?

    Автор вопроса: A.C.

    Ответ ожидается по этому адресу

    Создается удаленная компонента ActiveX (сервер) Xserver, состоящая из одного класса Xclass, при инициализации которого создается ссылка на существующий экземпляр Excel(открытый пользователем файл) для "отлова" событий:

    Private WithEvents A As Excel.Application
    Private Sub Class_Initialize()
    Set A = GetObject(, "Excel.Application")
    End Sub

    Инициализация производится удаленно клиентом:

    Dim Obj As Object
    Private Sub Command1_Click()
    Set Obj = CreateObject(" Xserver.Xclass", "Myserver")
    End Sub

    На одном компе все без изменений работает!! Но при удаленной инициализации строка

    Set A = GetObject(, "Excel.Application")

    говорит "Error 91". Если к примеру, добавить перед ней

    Dim B As Excel.Application
    Set B = New Excel.Application

    то все в порядке, но не то, что нужно, т.к это ссылка на созданый нами экземпляр, а не на внешний! В чем проблема? Удаленный сервер не видит процесс Excel-я?
    Почему на одном компе все работает а в сети нет?

    Автор вопроса: Олег Веретенников

    Ответ ожидается по этому адресу

    Необходимо построить граф по данным корреляционной матрицы и отобразить его на экране в виде вершин и ребер.
    Нужен алгоритм или идеи, как это сделать.

    Автор вопроса: CD

    Ответ ожидается по этому адресу

    Подскажите, как засунуть картинки в DLL и как с ними потом работать (т.е.выдёргивать из этой же DLL-ки).

    Автор вопроса: selja obltv

    Ответ ожидается по этому адресу

    Надо в MS Flex Grid сделать авто скрол (текущая позиция всегда видна).

    Ответы:

    Вопрос:

    Возможна ли одновременная работа в одной программе двух Winsock ,один работает на приём сообщений (так сказать в режиме ожидания сообщений)а второй на отправку сообщений ?

    Ответ:

    Автор ответа: Игорь

    В принципе да, но если они настроены на одинаковый порт, могут возникнуть сбои.

    Вопрос:

    Возможна ли одновременная работа в одной программе двух Winsock ,один работает на приём сообщений (так сказать в режиме ожидания сообщений)а второй на отправку сообщений ?

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Слушай, а что тебе мешает???
    Прочитай самое-самое начало любого выпуска рассылки. Там написано: Господа, читайте MSDN!!!

    Вот выдержка (Благополучно работают два сокета):

    To create a TCP server
    Create a new Standard EXE project.
    Change the name of the default form to frmServer.
    Change the caption of the form to "TCP Server."
    Draw a Winsock control on the form and change its name to tcpServer.
    Add two TextBox controls to the form. Name the first txtSendData, and the second txtOutput.

    Add the code below to the form.
    Private Sub Form_Load()
    ' Set the LocalPort property to an integer.
    ' Then invoke the Listen method.
    tcpServer.LocalPort = 1001
    tcpServer.Listen
    frmClient.Show ' Show the client form.
    End Sub

    Private Sub tcpServer_ConnectionRequest _
    (ByVal requestID As Long)
    ' Check if the control's State is closed. If not,
    ' close the connection before accepting the new
    ' connection.
    If tcpServer.State <> sckClosed Then _
    tcpServer.Close
    ' Accept the request with the requestID
    ' parameter.
    tcpServer.Accept requestID
    End Sub

    Private Sub txtSendData_Change()
    ' The TextBox control named txtSendData
    ' contains the data to be sent. Whenever the user
    ' types into the textbox, the string is sent
    ' using the SendData method.
    tcpServer.SendData txtSendData.Text
    End Sub

    Private Sub tcpServer_DataArrival _
    (ByVal bytesTotal As Long)
    ' Declare a variable for the incoming data.
    ' Invoke the GetData method and set the Text
    ' property of a TextBox named txtOutput to
    ' the data.
    Dim strData As String
    tcpServer.GetData strData
    txtOutput.Text = strData
    End Sub

    The procedures above create a simple server application. However, to complete the scenario, you must also create a client application.

    To create a TCP client Add a new form to the project, and name it frmClient. Change the caption of the form to TCP Client. Add a Winsock control to the form and name it tcpClient. Add two TextBox controls to frmClient. Name the first txtSend, and the second txtOutput. Draw a CommandButton control on the form and name it cmdConnect. Change the caption of the CommandButton control to Connect. Add the code below to the form. Important Be sure to change the value of the RemoteHost property to the friendly name of your computer.

    Private Sub Form_Load()
    ' The name of the Winsock control is tcpClient.
    ' Note: to specify a remote host, you can use
    ' either the IP address (ex: "121.111.1.1") or
    ' the computer's "friendly" name, as shown here.
    tcpClient.RemoteHost = "RemoteComputerName"
    tcpClient.RemotePort = 1001
    End Sub

    Private Sub cmdConnect_Click()
    ' Invoke the Connect method to initiate a
    ' connection.
    tcpClient.Connect
    End Sub

    Private Sub txtSendData_Change()
    tcpClient.SendData txtSend.Text
    End Sub

    Private Sub tcpClient_DataArrival _
    (ByVal bytesTotal As Long)
    Dim strData As String
    tcpClient.GetData strData
    txtOutput.Text = strData
    End Sub

    The code above creates a simple client-server application. To try the two together, run the project, and click Connect. Then type text into the txtSendData TextBox on either form, and the same text will appear in the txtOutput TextBox on the other form.

    Вопрос:

    КАК МОЖНО ПОМЕНЯТЬ КАРТИНКУ ПЕРЕЗАГРУЗКИ WINDOWS своей а ?

    Ответ:

    Автор ответа: Сергей Гуров

    За инфу не ручаюсь, не проверял
    Цитирую и даю ссылку:

    Анимированная картинка, которая выводится при загрузке Windows (на фоне голубых облачков написано Windows 95(98)), в Windows 95 находится в файле logo.sys в корневом каталоге, а в Windows 98 эта картинка, если не ошибаюсь, "вшита" в файл command.com Меняя этот файл (logo.sys) на любой файл формата BMP (соответствующих размеров и 256 цветов), можно поменять скушную картинку при загрузке. А в Windows 98 можно просто поместить файл logo.sys в корневой каталог - эффект тот же самый. Аналогично, в каталоге WINDOWS есть ещё 2 файла - logos.sys и logow.sys. Они "отвечают" за сообщения "Теперь питание..." и "Подождите, идет подготовка...". Формат тот же.
    Владимир Ротин (vovka@mail.tp.ru 2:5061/104.10@FidoNet)

    Вопрос:

    Как определить пояицию курсора в Windows?

    Ответ:

    Автор ответа: Kirill

    Можно воспользоваться Win32API:

    Public Type POINTAPI
    x As Long
    y As Long
    End Type
    Public Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long

    Соответственно в переменной типа POINTAPI вернутся текущие координаты курсора.

    Вопрос:

    Как определить пояицию курсора в Windows?

    Ответ:

    Автор ответа: Игорь

    Следующим образом:
    Объяви функцию и тип:

    Private Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long

    Private Type POINTAPI
    x As Long
    y As Long
    End Type
    Dim A as POINTAPI

    Теперь вызови эту функцию

    GetCursorPos A
    MsgBox A.x & " " & A.y

    Значения будут возвращаться в поинтах (точках). Если тебе нужно в твипах, вызывай функцию так:

    GetCursorPos A
    MsgBox A.x * Screen.TwipsPerPixelX & " " & A.y * Screen.TwipsPerPixelY

    Вопрос:

    Как определить пояицию курсора в Windows?

    Ответ:

    Автор ответа: Владимир Капустин

    1. Создайте модуль и в нём запишите:
    Public Type POINTAPI
    x As Long
    y As Long
    End Type
    Public Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long
    2. Создайте форму и таймер(интервал>0)
    Пример:
    Private Sub Timer1_Timer()
    Dim tmpPA As POINTAPI
    Dim tmpFR As Long
    tmpFR = GetCursorPos(tmpPA)
    Me.Caption = tmpPA.x & "," & tmpPA.y
    End Sub

    Вопрос:

    Как определить пояицию курсора в Windows?

    Ответ:

    Автор ответа: Ivan

    Позицию курсора можно определить с помощью API функции GetCursorPos
    Объявление:

    Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
    Private Type POINTAPI
    x As Long
    y As Long
    End Type
    Private g As Long' Любая переменная типа Long
    Private Position As POINTAPI ' Любая переменная типа POINTAPI

    Применение:

    Private Sub Form_Load()
    g = GetCursorPos(Position)
    MsgBox "Позиция по Х: " & Position.x
    MsgBox "Позиция по Y: " & Position.y
    End Sub

    Вопрос:

    Как сумировать ячейки в таблице Exel которые выделены к примеру красным цветом, тоесть не сама ячейка красная а шрифт?

    Ответ:

    Автор ответа: Kirill

    Можно использовать такую схему:

    ' отобранные ячейки для суммирования
    Dim sumRange As Range
    ' отдельная проверямая ячейка
    Dim rCell As Range

    ' просматриваем диапазон ячеек
    For Each rCell In Range("A1:D5").Cells
    ' проверяем цвет шрифта в ячейке
    If rCell.Font.Color = RGB(255, 0, 0) Then
    ' если набор ячеек еще не инициализирован
    If sumRange Is Nothing Then
    ' инициализируем набор первой найденной ячейкой
    Set sumRange = rCell
    Else
    ' или добавляем очередную ячейку к уже найденным
    Set sumRange = Union(sumRange, rCell)
    End If
    End If
    Next rCell

    ' записываем результат, используя для суммирования
    ' встроенную функцию Excel'я
    Range("A7").Value = Application.Sum(sumRange)

    Вопрос:

    Подскажите, как мне перемешать элементы на форме в раяличном порядке? (В Turbo Pascale есть функция Randomise, а в VB?)

    Ответ:

    Автор ответа: Игорь

    В VB есть функция Rnd. Она возвращает случайные значения. А для того, чтобы в произвольном порядке расположи на форме несколько элементов и вставь следующий код:

    Private Sub Form_Load()
    On Error Resume Next
    For Each obj In Me.Controls
    Randomize Timer
    RndLeft = Int((Me.Width - obj.Width) * Rnd(1))
    RndTop = Int((Me.Height - obj.Height) * Rnd(1))
    obj.Left = RndLeft
    obj.Top = RndTop
    Next
    End Sub

    Вопрос:

    Как мне из моей проги открыть excel, добавить в него новую таблицу, а в нее уже добавить некоторые данные (числа, текст).
    Я пока вишу только на добавлении новой таблицы - т.е. excel он мне открывает, но на этом все, дальше не могу. Вот мой исходник:

    Option Explicit

    Private exapp As Excel.Application

    Private Sub Комманда1_Click()
    Set exapp = New Excel.Application
    ' WordApp.Visible = True
    exapp.Visible = True
    'Set exapp = Nothing
    End Sub

    Дальше не знаю как - помогите ПЛЗ :)

    Ответ:

    Автор ответа: Иван

    Совета и ответ на вопрос про Ёксель

    1. Встаку таблицы данных лучше производить через
    приравнивание
    xo.activesheet.range(xo.cells(Row,Col), xo.cells(Row, Col))
    и вариантного двухмерного массива.
    Чтоб не пробегать циклом все ячейки.
    Получается намного быстрее!
    2.Самый полезный совет:
    Если не знаешь как что делать из ВБ в ёкселе или ворде, а читать MSDN неохота Запиши макрос в ёкселе/ворде где делаешь, что нужно (думаю проблем у тебя таких нет) потом посмотри получившийся код, и прибавь ко всем функциям в начале "exapp." и пользуйся!!!
    3.Читайте MSDN.
    4.Не забывайте про обработку ошибок
    ===============================
    Я использовал такие функции:
    (повырезал из своей рабочей проги)

    'запускал так, потому что типы excel не хотелось подключать
    'но разницы никакой нет
    Set exapp = CreateObject("Excel.Application")
    exapp.Visible = True

    'открыть новую книгу
    exapp.workbooks.Add

    'выйти
    exapp.Quit

    'загрузить книгу-шаблон
    exapp.workbooks.Open txtRepTemplate.Text

    'открыть лист в активной книге
    exapp.worksheets("Parameters").Activate

    'вытянуть значение из ячейки
    Value = exapp.cells(1, 2).Value

    'вставить данные в нужную ячейку активной книги
    exapp.cells(Row, Col) = value

    'вставка пустой строки
    exapp.Rows(CStr(Row1) & ":" & CStr(Row1)).Select
    exapp.Selection.Insert Shift:=-4121 'xlDown

    'вставка блока со сдвигом вниз
    exapp.activesheet.range(exapp.cells(Row1,Col1), exapp.cells(Row2, Col2)).Select
    exapp.Selection.Insert Shift:=-4121 'xlDown

    'сохранение под заданным именем
    exapp.workbooks(1).SaveAs FileName:=txtRepFile.Text

    'вставка нового листа в активную книгу
    exapp.worksheets.Add

    Вопрос:

    Как мне из моей проги открыть excel, добавить в него новую таблицу, а в нее уже добавить некоторые данные (числа, текст).
    Я пока вишу только на добавлении новой таблицы - т.е. excel он мне открывает, но на этом все, дальше не могу. Вот мой исходник:

    Option Explicit

    Private exapp As Excel.Application

    Private Sub Комманда1_Click()
    Set exapp = New Excel.Application
    ' WordApp.Visible = True
    exapp.Visible = True
    'Set exapp = Nothing
    End Sub

    Дальше не знаю как - помогите ПЛЗ :)

    Ответ:

    Автор ответа: Владимир Капустин

    Ответ немного не в тему.
    Не знаю как открывать документ Excel. Мне кажется это немного непрактичным. Есть другой вариант - открытие Excel как базы данных, используя контроль Data.

    Вопрос:

    Как мне из моей проги открыть excel, добавить в него новую таблицу, а в нее уже добавить некоторые данные (числа, текст).
    Я пока вишу только на добавлении новой таблицы - т.е. excel он мне открывает, но на этом все, дальше не могу. Вот мой исходник:

    Option Explicit

    Private exapp As Excel.Application

    Private Sub Комманда1_Click()
    Set exapp = New Excel.Application
    ' WordApp.Visible = True
    exapp.Visible = True
    'Set exapp = Nothing
    End Sub

    Дальше не знаю как - помогите ПЛЗ :)

    Ответ:

    Автор ответа: Kirill

    В принципе начало правильное, насколько я понимаю проблема в незнании объектов Excel VBA, но это как раз дело поправимое :)

    Option Explicit

    Private exapp As Excel.Application

    Private Sub Комманда1_Click()
    Dim wBook As Excel.Workbook ' чтобы обращаться к созданной таблице
    ' здесь я бы сделал не так:
    ' Set exapp = New Excel.Application
    ' а добавил бы возможность использовать запущенное приложение
    Dim StartedNew As Boolean ' поставим в True, если сами запустим Excel
    StartedNew = False
    On Error Resume Next
    Set exapp = GetObject(, "Excel.Application")
    If Err.Number <> 0 Then ' если нет запущенного Excel'я
    Set exapp = CreateObject("Excel.Application")
    StartedNew = True
    End If
    On Error GoTo 0
    exapp.Visible = True
    ' создаем новую таблицу
    Set wBook = exapp.Workbooks.Add
    ' издеваемся над созанной таблицей :)
    wBook.Sheets(1).Name = "MyResult"
    wBook.Sheets(1).Range("A1").Value = "это ячейка A1"
    wBook.Sheets("MyResult").Cell(4, 2).Value = InputBox("Впиши что хочешь", "текст для ячейки B4", "filled from VB")
    ' сохраняем таблицу
    wBook.Save "c:\my_table.xls"
    wBook.Close
    Set wBook = Nothing
    ' если Excel запускали мы, то надо бы его закрыть
    If StartedNew Then
    exapp.Quit
    End If
    Set exapp = Nothing
    End Sub

    Вопрос:

    Кто янает, ДЛЯ КАКОЙ цели в CommonDialog есть вояможность яадавать .Action = 1, 2, 3 ? Свойство .Action = 2 не работает, а только соядает ВИДИМОСТЬ Save As.
    Вопрос: А ЗАЧЕМ КОЗЕ БАЯН!? Или я не прав?

    Ответ:

    Автор ответа: Kirill

    Совершенно однозначно ты неправ. CommonDialog не призван решать твои проблемы по сохранению файлов -- это уж будь добр пиши сам, а диалог просто для того, чтоб юзеру было привычней при сохранении файла видеть знакомое окно. Диалог возвращает тебе имя, под которым юзер захотел сохранить файл, дальше -- сам придумывай, как тебе файл на диск писать.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 38.

VBNet
  • Библиотека кодов
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    У меня сейчас небольшие технические проблемы. Поставил Win XP, нет IIS. Так что раздел Книги остался таким же, как и в прошлый раз, а в связи с нехваткой времени раздел Вопрос-ответ остался пустым...
    Читайте!

    Содержание выпуска
    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Visual Basic 6.0. Разработка приложений (+ дискета)

     Данная книга является наиболее полным практическим руководством по конструированию современных полнофункциональных Windows - приложений на базе Visual Basic 6.0. В книге рассматриваются основные понятия и приемы программирования на Visual Basic, принципы разработки приложений с помощью методов объектно - ориентированного программирования. Большое внимание уделено работе с базами данных, использованию ActiveX - технологии и средств Windows API и OLE Automation, финансовому анализу, программированию игр, мультипликации. Имеется ряд упражнений повышенного уровня сложности, решение которых позволит приобрести устойчивые практические навыки.

    Автор: Гарнаев А
    Издательство: BHV - Санкт - Петербург
    Год издания: 2000
    Кол-во страниц: 448
    Стоимость: 159 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Visual Basic 6.0. Учебное пособие для высших учебных заведений

     В систематизированном виде излагаются основы программирования в среде одного из наиболее популярных визуальных средств разработки Windows-приложений. Рассмотрены фундаментальные понятия, использование графики и анимации, программирование баз данных, основы проектирования пользовательского интерфейса. Для студентов, обучающихся по направлению 654600 `Информатика и вычислительная техника`, может быть полезна начинающим программистам.

    Автор: Литвиненко Т
    Издательство: Горячая Линия - Телеком
    Год издания: 2001
    Кол-во страниц: 144
    Стоимость: 51 р.
    Формат: 60x88/16
    Переплёт: мягкий

    Visual Basic для школьников. Первое знакомство. Рабочая тетрадь 1

     Рабочая тетрадь `Первое знакомство с Visual Basic` предназначена для обучения детей, начиная с седьмого класса и старше основам проектирования в среде Visual Basic. Этот небольшой (32-часовой курс) знакомит школьников с основными понятиями объектно-ориентированного программирования такими, как форма, элементы управления, свойства, методы и др. На каждом занятии ученики кроме освоения понятийного материала делают небольшие проекты на компьютере в среде Visual Basic. Завершается курс созданием собственного проекта с элементами анимации. В дальнейшем автор тетради имеет ввиду издавать рабочие тетради по развитию этого курса в углублении знаний и навыков детей по освоению среды Visual Basic. Тетрадь может быть использована на уроках информатики, на факультативных занятиях в школе и для домашней индивидуальной работы детей с родителями и самостоятельной работы. В тетради использованы материалы отечественных и переводных книг по Visual Basic, автором обобщен опыт его практической работы в УВК № 1628 г. Москвы.

    Автор: Истомина Т
    Издательство: Дограф
    Год издания: 2000
    Кол-во страниц: 64
    Стоимость: 42 р.
    Формат: 70x108/16
    Переплёт: мягкий

    Visual Basic. Самоучитель для начинающих

     Самоучитель написан так, что после его изучения, можно будет самостоятельно составлять программы на Visual Basic и выполнять их на компьютере. Материал изложен простым и доступным языком. Все объясняется на примерах. Метод изложения - от частного к общему. Рассмотрение почти каждой темы заканчивается задачами на составление программы (всего таких задач - 132). Подавляющее большинство задач снабжено ответами, так что читатель может эффективно контролировать усвоение материала.

    Автор: Лукин С
    Издательство: Диалог - МИФИ
    Год издания: 2001
    Кол-во страниц: 544
    Стоимость: 123 р.
    Формат: 60x84/16
    Переплёт: мягкий

    Бейсик в задачах и примерах. Более 200 задач

     Книга представляет собой сборник примеров и задач по программированию на языке Бейсик. В доступной форме рассматриваются ключевые понятия программирования: алгоритм, переменные, массивы, операторы, подпрограммы. Большое внимание уделено работе с графикой, что особенно понравится школьникам. Немаловажной является тема о файловом вводе/выводе. Для некоторых упражнений приведены решения. Помимо задач и примеров книга содержит справочник по языку программирования Qbasic. Может использоваться в качестве задачника для учеников 8-11 классов, изучающих программирование в школе.

    Автор: Сафронов И
    Издательство: BHV - Санкт - Петербург
    Год издания: 2000
    Кол-во страниц: 224
    Стоимость: 62 р.
    Формат: 60x90/16
    Переплёт: мягкий

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 10.03.2002 06:02 | Раздел: Примеры кода | Автор: Оловянников Аркадий

    NotifyAsync - Пример слежения за реестром системы, конкретнее за любым ключом реестра. Если кто-то изменит реестр, то вы об этом узнаете раньше него ;-) Этот пример из серии примеров Аркадия Оловянникова для слежения за системными событиями. Еще раз преклоняюсь над профессионализмом этого автора.

    Дата: 08.03.2002 06:42 | Раздел: Статьи по VB | Автор: Иноземцев Руслан

    Программное создание базы данных с помощью ADOX - В данной статье будут рассмотрены приемы программного создание баз данных с помошью библиотек ADOX.

    Дата: 06.03.2002 05:31 | Раздел: Примеры кода | Автор: Черенков Дмитрий

    Timer - Как выключить компьютер? Есть несколько методик для выполнения этой операции. Одна из них показана в этом примере. Честно говоря я так до конца и не понял откуда автор "откопал" этот метод (я не нашел его в официальных описаниях), но метод работает. Кроме того, вместо отключения можно сделать "засыпание" и "перезагрузку" (посмотрите методы объекта OpSysSet при пошаговом выполении).

    Дата: 04.03.2002 05:29 | Раздел: Примеры кода | Автор: Беляев Данила

    Mover - Прилипание формы к краю экрана? И Вы тоже мучались с этой проблемой? Вот пример, который может Вам помочь. Все сделано с использованием API с метода создания подкласа окна. Пример стоит того, чтобы обратить на него внимание.

    Последние 20 тем форума на VBNet.Ru:

    14:21 / 10 мар. ftp команды | Ответов: 0
    11:50 / 10 мар. Исходники | Ответов: 0
    09:04 / 10 мар. UserControls | Ответов: 0
    00:31 / 10 мар. VB & MSIE | Ответов: 0
    15:51 / 9 мар. Текстовые строки | Ответов: 1
    18:34 / 8 мар. Значения цветов для GradientFillRect | Ответов: 3
    14:44 / 8 мар. проблемы с Thread | Ответов: 3
    14:34 / 8 мар. DirectX/Direct3D | Ответов: 0
    14:31 / 8 мар. VB.NET IntPtr | Ответов: 1
    10:02 / 8 мар. Media player | Ответов: 1
    05:59 / 8 мар. как юзать user32.dll??????? | Ответов: 1
    22:42 / 7 мар. win reboot, shutdown,... | Ответов: 2
    21:34 / 7 мар. Загрузка ОС | Ответов: 2
    18:15 / 7 мар. Чё такое USER32 и с чем его едят!!!!! | Ответов: 2
    14:34 / 7 мар. Как изменить стиль кнопки? | Ответов: 1
    14:24 / 7 мар. Новое сообщение без темы | Ответов: 1
    10:32 / 7 мар. Как отловить системные сообщения окон в виндах | Ответов: 2
    09:53 / 7 мар. Справочник по командам Vb6.0 | Ответов: 2
    09:19 / 7 мар. захват текста из DOS окна | Ответов: 0
    23:09 / 6 мар. Порты | Ответов: 0

    Последние поступления в Библиотеку кодов:

    Получить цвет пикселя вне формы (43)
    Изменение набора изображений в элементе... (38)
    Определить текущее разрешение экрана (52)
    windows: Возвращение глубины цвета (27)
    Работа с CommonDialog без ocx: ShowColo... (47)
    Пример, характеризующий работу элемента... (29)
    Cкриншот экрана, формы или контрола (55)
    Cкриншот экрана, активного окна, печать... (44)

    наверх

    Новости сайта VBMania

    • 25.01 - Сегодня открылся новый раздел, в котором вы можете найти ссылки на целую кучу книг по тематике VB и около него.
    • 22.01 - 22 января вышел второй номер он-лайн журнала о Visual Basic 'VB Мания'. В нем можно почитать авторские статьи в уже устоявшихся разделах: Технологии, Система, Графика, Профессия, Человечество и Юмор. Так же не обошлось без новшеств: появился новый раздел dotNET и особенно рецензии ActiveX-компонентов. Обязательно заходите.
    • 17.12 - В связи с тем что форум не горел желаением вести себя так, как должен обычный, порядочный форум, мы его прикрыли для проведения разъяснительных мероприятий. Надеемся, что они не затянутся и форум образумится.
    • 06.12 - С сегодняшнего дня все желающие могут добавлять свои новости и статьи в наши архивы.
      Да здраствует открытость!
    • 27.11 - Наконец-то, после долгих дней и бессонных ночей это свершилось! Сайт объявляется открытым! Непременно прочитайте первый номер нашего журнала. Оцените наши дополнительные проекты. И конечно мы ждем ваших откликов в гостевой книге и по почте.
    • 01.12 - Произошло несколько косметических улучшений, касающихся исключительно удобства работы с сайтом. Во-первых, можно видеть количество записей обсуждения новостей на главной странице; а во-вторых чуточку подправились директории.
      Оценяйте!

    наверх

    Новости сайта Азбука VB

    • 19 февраля 2001 года
      Интервью с Арменом Мнацаканяном.
      Как определить, является ли символ буквой или цифрой? Когда нужно убедиться, что данный символ — буква (а не цифра, знак препинания, специальный символ и т.д.), то первое, что приходит в голову, — проверить, попадает ли он в диапазон A-Z или a-z. Это ошибочно по двум причинам.
      Как сделать, что бы Photoshop понимал русские буквы.
      Как сделать ссылку в RichEdit'е. Спасибо Арташесу за пример MousinRTF, благодаря этому примеру я написал свой, очень интересный пример - наводишь на ссылку в RichEdit'е а курсор меняется на руку(как в IE), ну и попутно - как отградить вставку в RichEdit всякого мусора(картинки, html, rtf), кроме нормального текста.
      Создание отсоединенного набора записей используя объкт АДО. На примере показано, как создать отсоединенный набор данных, произвести изменения и вновь подключить его.
    • 10 января 2001 года
      Интересный пример создания popMenu используя API функции CreatePopupMenu, AppendMenu, DestroyMenu, TrackPopupMenu и GetCursorPos.
      Пример показывает, как можно отлавливать события при нажатии на кнопках в заголовке формы. В примере использовались API функции - CallWindowProc и SetWindowLong.

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Нет вопросов.

    Ответы:

    Нет ответов.
    Можете заполнить эту форму, либо отослать вопрос     СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 39.

VBNet
  • Библиотека кодов
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    По-прежнему "висит" раздел Книги. Больше ничего нового не произошло.
    Читайте!

    Содержание выпуска
    • Книги

    • Изменить дату последней модификации файла
    • Изменение расширений всех файлов в папке
    • Получить DOS-имя файла
    • Конвертация размера файла (байты в кило-, мегабайты)
    • Создание индекса htm-файлов
    • Получить атрибуты файла (GetFileAttributes)

    • Вопрос/Ответ

    Книги

    Занимательное программирование. Visual Basic

     Книга адресована школьникам 12-15 лет, желающим обучиться составлению программ для персонального компьютера. Прочитав ее, школьник узнает основные понятия программирования, поймет принципы хранения и преобразования данных, освоит стандартные приемы программирования. В качестве языка и среды программирования избрана система Visual Basic, как наиболее доступная и простая в изучении. Книга рассчитана на самостоятельную работу школьника, не имеющего преподавателя или опытного наставника. Авторы заранее предусмотрели ответы на вопросы, наиболее часто возникающие на ранних этапах обучения. Главная задача книги - увлечь читателя интересными примерами и подвести его к уровню, после которого он сможет расширять знания с помощью учебных и справочных пособий.

    Автор: Симонович С, Евсеев Г
    Издательство: АСТ-Пресс, Инфорком - Пресс
    Год издания: 2001
    Кол-во страниц: 320
    Стоимость: 61 р.
    Формат: 60x90/16
    Переплёт: твёрдый

    Информатика в задачах, примерах, алгоритмах/Visual Basic for Application

     Настоящий сборник задач представляет собой практическое пособие для учащихся средних и высших учебных заведений, изучающих информатику. Особенность сборника в том, что он позволяет научиться создавать собственные алгоритмы решения задач, а также дает возможность преподавателю информатики в процессе обучения использовать индивидуальный подход к ученикам без дополнительных затрат времени. Автор сознательно приводит в качестве ответов только численные значения, так как существует множество алгоритмов решения каждой задачи. Читатель может использовать в процессе работы с задачником любые языки программирования. В частности, решение задач из сборника поможет приобрести практические навыки написания макросов в приложениях Microsoft Office на языке Visual Basic Application.

    Автор: Алиев В
    Издательство: Солон - Р
    Год издания: 2001
    Кол-во страниц: 144
    Стоимость: 41 р.
    Формат: 60x88/16
    Переплёт: мягкий

    Использование Visual Basic 6. Специальное издание

     В книге описана новая версия популярной системы программирования Visual Basic 6. Изложение материала построено по принципу от простого к сложному. Первые главы этой книги адресованы новичкам, из которых они смогут почерпнуть основы языка Visual Basic и описание его стандартных компонентов. Для подготовленных пользователей будет интересен раздел, посвященный специальным методам программироваия с использованием стандартных компонентов Windows, элементов управления ActiveX, ADO, RDO и др. В отдельную часть вынесены вопросы, связанные с разработкой приложений баз данных на Visual Basic и работе в Internet. Автор не обошел также вниманием различные версии языка Visual Basic - VRA и VBScript. В приложениях приведен обзор интегрированной среды разработки Visual Basic, а также краткий справочник по SQL. Книга рассчитана на широкий круг читателей.

    Автор: Брайан Сайлер, Джефф Споттс
    Издательство: Вильямс
    Год издания: 2000
    Кол-во страниц: 832
    Стоимость: 280 р.
    Формат: 70x100/16
    Переплёт: твёрдый

    Обработка баз данных на Visual Basic 6 (+ CD - ROM)

     Сердцем многих приложений, работающих в сфере бизнеса, являются базы данных. Своим широким распространением они обязаны возможности централизованного доступа к информации, который характеризуется последовательностью, эффективностью и относительной простотой создания и поддержки. В книге «Обработка баз данных на Visual Basic 6» описываются все технологии доступа к базам данных с помощью Visual Basic. Приведенные в этой книге примеры взяты из реальной жизни, поэтому, ознакомившись с ними, вы узнаете, как можно использовать базы данных для принятия решений в сфере бизнеса. Если вы еще не готовы перейти к версии Visual Basic 6, это вовсе не значит, что данная книга вам не подходит. Практически 95% материала этой книги удовлетворит в равной степени пользователей как пятой, так и шестой версии Visual Basic. Книга рассчитана на программистов средней и высокой квалификации.

    Автор: Джеффри П. Мак - Манус
    Издательство: Вильямс
    Год издания: 2001
    Кол-во страниц: 672
    Стоимость: 330 р.
    Формат: 70x100/16
    Переплёт: твёрдый

    Практика программирования: Бейсик, Си, Паскаль (+ дискета). Самоучитель

     Содержится более 130 готовых к исполнению программ, большинство из которых представлено на трех алгоритмических языках - Бейсике, Си и Паскале. Все разделы предваряются описанием соответствующих конструкций каждого алгоритмического языка. При этом особое внимание обращается на общность языковых средств рассматриваемых систем программирования - QBasic, Turbo С (Borland C++) и Turbo Pascal. Текстам программ предшествуют советы по их разработке с учетом специфики того или иного алгоритмического языка и описание наиболее характерных особенностей.

    Автор: Кетков Александр, Кетков Юлий
    Издательство: БХВ - Петербург
    Год издания: 2001
    Кол-во страниц: 480
    Стоимость: 131 р.
    Формат: 70x100/16
    Переплёт: мягкий

    Остальные книги о VB можно найти     здесь.

    наверх

    Изменить дату последней модификации файла

    Расположите на форме элемент CommandButton. Замените путь к файлу "C:\1.txt" на путь к вашему файлу. В Проводнике нажмите правой клавишей мыши на вашем файле и посмотрите дату, когда файл был "Изменен:". Запустие нижеприведенный код на выполнение и снова посмотрите на дату изменения файла.

    Option Explicit
    Private Type FILETIME
    dwLowDate As Long
    dwHighDate As Long
    End Type
    Private Type SYSTEMTIME
    wYear As Integer
    wMonth As Integer
    wDayOfWeek As Integer
    wDay As Integer
    wHour As Integer
    wMinute As Integer
    wSecond As Integer
    wMillisecs As Integer
    End Type
    Private Const OPEN_EXISTING = 3
    Private Const FILE_SHARE_READ = &H1
    Private Const FILE_SHARE_WRITE = &H2
    Private Const GENERIC_WRITE = &H40000000
    Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, _
    ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
    Private Declare Function LocalFileTimeToFileTime Lib "kernel32" (lpLocalFileTime As FILETIME, lpFileTime As FILETIME) As Long
    Private Declare Function SetFileTime Lib "kernel32" (ByVal hFile As Long, ByVal MullP As Long, ByVal NullP2 As Long, lpLastWriteTime As FILETIME) As Long
    Private Declare Function SystemTimeToFileTime Lib "kernel32" (lpSystemTime As SYSTEMTIME, lpFileTime As FILETIME) As Long
    Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
    Public Function SetFileDateTime(ByVal FileName As String, ByVal TheDate As String) As Boolean
    'параметры: TheDate - дата последней модификации файла
    'FileName - имя файла
    'функция возвращает: True в случае успеха, False - в обратном случае
    If Dir(FileName) = "" Then Exit Function
    If Not IsDate(TheDate) Then Exit Function
    Dim lFileHnd As Long
    Dim lRet As Long
    Dim typFileTime As FILETIME
    Dim typLocalTime As FILETIME
    Dim typSystemTime As SYSTEMTIME
    With typSystemTime
    .wYear = Year(TheDate)
    .wMonth = Month(TheDate)
    .wDay = Day(TheDate)
    .wDayOfWeek = Weekday(TheDate) - 1
    .wHour = Hour(TheDate)
    .wMinute = Minute(TheDate)
    .wSecond = Second(TheDate)
    End With
    lRet = SystemTimeToFileTime(typSystemTime, typLocalTime)
    lRet = LocalFileTimeToFileTime(typLocalTime, typFileTime)
    lFileHnd = CreateFile(FileName, GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, 0, 0)
    lRet = SetFileTime(lFileHnd, ByVal 0&, ByVal 0&, typFileTime)
    CloseHandle lFileHnd
    SetFileDateTime = lRet > 0
    End Function

    Private Sub Command1_Click()
    Dim a As Boolean
    a = SetFileDateTime("c:\1.txt", Now)
    'или: Call SetFileDateTime("c:\1.txt", "21/01/1998")
    End Sub

    наверх

    Изменение расширений всех файлов в папке

    Прежде всего установите ссылку на Microsoft Scripting Runtime через меню Project | References.
    Вызов функции прост: ChangeExtension "путь к папке", "новое_расширение_файла", ""
    Пример: ChangeExtension "D:\1\2", "htm", ""
    В данном примере используются     функции определения имени файла с расширением и без.

    Public Function ChangeExtension(ByVal FolderName As String, ByVal NewExtension As String, OldExtension As String) As Boolean
    Dim oFso As New FileSystemObject
    Dim oFolder As Folder
    Dim oFile As File
    Dim sOldName As String
    Dim sNewName As String
    Dim iCtr As Long
    Dim iDotPosition As Integer
    Dim sWithoutExt As String
    Dim sFolderName As String
    sFolderName = FolderName
    If Right(sFolderName, 1) <> "\" Then sFolderName = sFolderName & "\"
    Set oFolder = oFso.GetFolder(FolderName)
    'перебор каждого файла в указанной папке
    For Each oFile In oFolder.Files
    sOldName = sFolderName & oFile.Name 'старый путь/имя файла
    sNewName = sFolderName & Spliting1(Spliting(oFile.Name, "\"), ".") & "." & NewExtension 'новое имя файла
    'файл с новым именем уже может существовать
    On Error Resume Next
    Name sOldName As sNewName
    Err.Clear
    On Error GoTo ErrorHandler
    Next
    ChangeExtension = True
    ErrorHandler:
    Set oFile = Nothing
    Set oFolder = Nothing
    Set oFso = Nothing
    End Function

    'функция Spliting определяет
        полное имя файла
'функция Spliting1 определяет только имя файла
Private Function Spliting(sFullPath As String, point As String)
Dim str1() As String
str1 = Split(sFullPath, point)
Spliting = str1(UBound(str1))
End Function
Private Function Spliting1(sFullPath As String, point As String)
Dim str1() As String
str1 = Split(sFullPath, point)
Spliting1 = str1(0)
End Function

    Private Sub Command1_Click()
    'ChangeExtension "D:\1\2", "htm", "txt"
    ChangeExtension "D:\1\2", "htm", ""
    End Sub

    наверх

    Получить DOS-имя файла

    Функция GetShortName в качестве входного параметра принимает длинное имя файла и возвращает DOS-имя файла

    Private Declare Function GetShortPathName Lib "kernel32.dll" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
    Private Function GetShortName(lName As String) As String
    Dim DosName As String
    Dim LenOfDosName As Long
    DosName = Space(256)
    LenOfDosName = GetShortPathName(lName, DosName, 256)
    GetShortName = Left$(DosName, LenOfDosName)
    End Function

    Private Sub Form_Load()
    Dim LongName As String
    LongName = "C:\Program Files\Internet Explorer\Iexplore.exe"
    MsgBox GetShortName(LongName)
    End Sub

    наверх

    Конвертация размера файла (байты в кило-, мегабайты)

    Очень хороший пример при работе с текстовыми файлами. При загрузке файла вы передаете в функцию полное имя файла и получаете "удобоваримое" обозначение размера файла. В данном примере ссылка на файл уже расположена в функции.

    Dim FileSize1 As String
    Dim FileSize2 As String
    Private Function FileSize()
    Static xx
    FileSize1 = FileLen("C:\Мои документы\courier.txt")
    xx = FileSize1 / 1024
    If Len(FileSize1) >= 7 Then
    FileSize2 = Format((xx / 1024), "0.00")
    FileSize2 = FileSize2 & " MB"
    ElseIf Len(FileSize1) >= 4 Then
    xx = Format((FileSize1 / 1024), "0.00")
    FileSize2 = xx & " K"
    Else
    FileSize2 = FileSize1 & " Bytes"
    End If
    Print "File: " & "C:\Мои документы\courier.txt " & vbCrLf & "Old Size: "; FileSize1 & vbCrLf & "New Size: " & FileSize2
    Me.Caption = "C:\Мои документы\courier.txt " & " - Size: " & FileSize2
    End Function

    Private Sub Command1_Click()
    Call FileSize
    End Sub

    наверх

    Создание индекса htm-файлов

    Данный пример позволяет создать в одном htm-файле ссылки на все htm-файлы, находящиеся в одной директории

    Расположите на форме элемент CommandButton и элемент FileListBox

    Option Explicit
    Dim h, h1 As Integer

    Private Sub Command1_Click()
    StartIndex ("D:\vbcode") 'путь к папке индексации файлов
    End Sub

    Public Function StartIndex(fPath As String)
    h = 0
    On Error GoTo ErrorHandler
    File1.Path = fPath
    Dim FileName As String 'имя файла для индекса
    FileName = fPath & "\sharig.htm"
    Dim fr
    fr = FreeFile()

    Open FileName For Output As #fr
    Print #fr, "<html>"
    Print #fr, "<head>"
    Print #fr, "<title>Индексация файлов</title>"
    Print #fr, "</head>"
    Print #fr, "<body>"
    Dim i As Integer
    For i = 0 To File1.ListCount - 1
    On Error Resume Next
    Dim FNum As Integer
    Dim txt As String
    FNum = FreeFile
    Open fPath & "\" & File1.List(i) For Input As #FNum
    txt = Input(LOF(FNum), #FNum)
    Close #FNum
    Dim s() As String
    Dim s1 As String
    s = Split(txt, vbCrLf)
    Dim d As Integer
    d = 0
    For h = 0 To UBound(s)
    d = InStr(1, s(h), "<title>")
    If d <> 0 Then Exit For
    Next
    If d = 0 Then
    MsgBox "У файла --" & File1.List(i) & "-- нет заголовка"
    h = 1: s(h) = "<title>" & "Временный заголовок" & "</title>": d = 1
    End If
    s1 = Mid(s(h), d + 7)
    h = InStr(1, s1, "</title>")
    s1 = Mid(s1, 1, h - 1)
    Print #fr, "<p>" & "<a href=" & Chr(34) & File1.List(i) & Chr(34) & ">" & s1 & "</a></p>"
    Next
    Print #fr, "</body>"
    Print #fr, "</html>"
    Close #fr
    StartIndex = FileName
    Exit Function

    ErrorHandler:
    MsgBox FileName, , "Имя файла"
    End Function

    Public Function Splitting(s As String, s1 As String)
    Dim ass() As String
    Dim as1 As String
    as1 = s
    ass = Split(as1, s1)
    Splitting = ass(1)
    End Function

    наверх

    Получить атрибуты файла (GetFileAttributes)

    Получение атрибутов файла с помощью API-функции GetFileAttributes

    Const READONLY = &H1
    Const HIDDEN = &H2
    Const SYSTEM = &H4
    Const DIRECTORY = &H10
    Const ARCHIVE = &H20
    Const NORMAL = &H80
    Const COMPRESSED = &H800
    Private Declare Function GetFileAttributes Lib "kernel32.dll" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long

    Private Sub Command1_Click()
    Dim val As String
    Dim attr As Long
    attr = GetFileAttributes("C:\MSDOS.SYS")
    If (attr And &H1) = &H1 Then
    val = " 'Только для чтения',"
    End If
    If (attr And &H2) = &H2 Then
    val = val & " 'Скрытый',"
    End If
    If (attr And &H4) = &H4 Then
    val = val & " 'Системный',"
    End If
    If (attr And &H20) = &H20 Then
    val = val & " 'Архивный',"
    End If
    If (attr And &H80) = &H80 Then
    val = val & " 'Нормальный',"
    End If
    If (attr And &H800) = &H800 Then
    val = val & " 'Компрессированный',"
    End If
    val = Left(val, Len(val) - 1)
    If (attr And &H10) = &H10 Then
    MsgBox "Данная папка имеет атрибуты " & val
    Else
    MsgBox "Данный файл имеет атрибуты " & val
    End If
    End
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Владимир Капустин

    Ответ ожидается по этому адресу

    Раз уж в прошлом номере вообще не было вопросов, то рискну задать несколько вопросов по VB3.

    1. Как различить и закрыть приложение MS DOS в Win 3.
    2. Как найти путь(приложения) или значок окна, зная его ручку (hWnd).

    Автор вопроса: Игорь Куз

    Ответ ожидается по этому адресу

    Как на форме VB6 создать подчинённую форму для отображения данных из таблицы связанной с главной отношением "один-ко-многим"? (Наподобие подчинённой формы в ACCESS)

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Что бы послать почту с моей Form пишу:

    Private Declare Function ShellExecute& Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long)
    Private Declare Function GetDesktopWindow Lib "user32" () As Long

    Private Sub Label1_Click()
    'Выяываем маил с адресом
    Call ShellExecute(0&, "Open", "mailto:" + "ЛОГИН@СЕРВЕР.ru" + "?Subject=" + "'Здесь описана тема...'" + "?body=" + "'Сдесь
    нужно написать сообщение'", "", "", SW_SHOWNORMAL)
    End Sub

    Но в почтовой программе текст 'Сдесь нужно написать сообщение' выводится там где вводится тема. Помогите сделать так чтобы в текстовом поле ияображалать текст

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Как уянать какая клавеша нажата если forma не активна. Например: в каком либо редакторе нажимается какая либо кнопка а Forma обрабатывает это нажатие

    Автор вопроса: Сергей Кузичев

    Ответ ожидается по этому адресу

    Есть форма с MSHFlexGrid к которой подсоединен рекордсет с иерархическим рекордсетом. Как сделать так, чтобы при открытии формы FlexGrid покаяывал подчиненный рекордсет в свернутом виде.

    Автор вопроса: Мунгалов АВ

    Ответ ожидается по этому адресу

    Если на VB написать прогу и записать на болванку, чтобы она запускалась при запуске сидюка. Понятно в основном. так а если на машине не библиотек VB она же не запуститься? проверку можно сделать и если нет библиотек, то их копирнуть тут же. во как завернул?

    Автор вопроса: Сергей Копистинский

    Ответ ожидается по этому адресу

    Как, например, по нажатии кнопки, запускался файл .mp3

    Автор вопроса: Николай

    Ответ ожидается по этому адресу

    Как на VB программно соединиться с базой ORACLE?
    Я попытался это сделать, но в DataGrid отображаются только заголовки полей...

    Автор вопроса: DarXeth

    Ответ ожидается по этому адресу

    Как сохранить картинку в JPG или GIF ?

    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

    Подскажите пожалуйста как использовать ресурсы (диалоги, строки, графику и т.д.) DLL файлов. И где можно найти статью как писать DLL'ы на VB.

    Автор вопроса: Koksu RUT

    Ответ ожидается по этому адресу

    Как зделать так, что бы при клике по записи во флексгриде запись отображалась в тектовом поле?

    Ответы:

    Вопрос:

    У меня 2 вопроса:
    1.Подскажите, как на VB определить папку(путь), где стоит система?
    2.Можно ли на VB отключать яаставку Windows в свойствах экрана?

    Ответ:

    Автор ответа: K. Igor

    Пример показывает как при помощи использования функции API GetSystemDirectory получить имя системного каталога Windows.

    Текст:

    Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

    Function GetSysDir() As String

    Dim strBuffer As String
    Dim ret As Long

    strBuffer = Space$(1024)
    ret = GetSystemDirectory(strBuffer, 1024)
    GetSysDir = Trim$(Left$(strBuffer, ret))

    End Function

    Вопрос:

    У меня 2 вопроса:
    1.Подскажите, как на VB определить папку(путь), где стоит система?
    2.Можно ли на VB отключать яаставку Windows в свойствах экрана?

    Ответ:

    Автор ответа: SC

    1.
    Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
    'Получение директории C:\WINDOWS\SYSTEM

    Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
    'Директория "C:\WINDOWS"
    Private Function GetSysDir() As String
    Dim szBuffer As String * 50
    Dim lngRet As Long

    lngRet = GetSystemDirectory(szBuffer, 50)
    GetSysDir = Left$(szBuffer, lngRet)
    If Right(GetSysDir, 1) <> "\" Then GetSysDir = GetSysDir & "\"
    End Function

    Private Function GetWinDir() As String
    Dim szBuffer As String * 50
    Dim lngRet As Long

    lngRet = GetWindowsDirectory(szBuffer, 50)
    GetWinDir = Left$(szBuffer, lngRet)
    If Right(GetWinDir, 1) <> "\" Then GetWinDir = GetWinDir & "\"
    End Function

    'Использование
    Private Sub Form_Load()
    MsgBox GetWinDir
    MsgBox GetSysDir
    End Sub

    или объединяем наши 2 функции:

    Private Function GetDirectory(szDirName As String) As String
    Dim szBuffer As String * 50
    Dim lngRet As Long

    If LCase(szDirName) = "sys" then
    lngRet = GetSystemDirectory(szBuffer, 50)
    ElseIf LCase(szDirName) = "win" then
    lngRet = GetWindowsDirectory(szBuffer, 50)
    End If
    GetDirectory = Left$(szBuffer, lngRet)
    If Right(GetDirectory, 1) <> "\" Then GetDirectory = GetDirectory & "\"
    End Function

    'Использование
    Private Sub Form_Load()
    MsgBox GetDirectory("win")
    MsgBox GetDirectory("sys")
    End Sub

    2.
    Можно, в файле System.ini, который храниться в каталоге WINDOWS есть ссылка на имя текущей заставки и если её удалить, то и заставки не будет.
    Сделать это можно так:

    Private Sub SwitchOffScreenSaver()
    Dim FileNoRd As Integer
    Dim FileNoWr As Integer
    Dim WinDir As String
    Dim szData As String
    Dim szExample As String

    szExample = "SCRNSAVE.EXE"
    WinDir = GetWinDir 'Используем нашу новую функцию для получения каталога Windows (см. выше)
    FileNoWr = FreeFile 'Получаем свободный номер для записи
    'открываем временный файл для построчного сохранения данных.
    Open "C:\mytemp.tmp" For Output As #FileNoWr
    FileNoRd = FreeFile 'Получаем свободный номер для чтения
    'открываем рабочий файл для анализа и изменения
    Open WinDir & "System.ini" For Input As #FileNoRd
    Do Until EOF(FileNoRd)
    Line Input #FileNoRd, szData
    'Если мы находим в файле наш пример и его длина совпадает,
    If Mid(szData, 1, Len(szExample)) = szExample Then
    'то очищаем значения найденной строки для _
    отключения заставки.
    szData = szExample & "="
    End If
    Print #FileNoWr, szData
    Loop
    Close 'Закрываем все открытые файлы
    'Копируем новые данные из временного файла в System.ini
    FileCopy "C:\mytemp.tmp", WinDir & "System.ini"
    Kill "C:\mytemp.tmp" 'Удаляем временный файл
    End Sub

    Вопрос:

    Подскажите, как засунуть картинки в DLL и как с ними потом работать (т.е.выдёргивать из этой же DLL-ки).

    Ответ:

    Автор ответа: SC

    В начале заходим в меню Add-Ins, затем Add-In Meneger... .Там находим строчку Visual Basic 6 Resource Editor и справа от описания есть флажки, устанавливаем Loaded/Unloaded и Load on StartUp. На стандартной панели инструментов должнен появиться VB Resource Editor. Запускаем и добовляем всё что душе угодно. Всё наши картинки там.

    Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long
    Private Declare Function ExtractIconEx Lib "shell32.dll" Alias "ExtractIconExA" (ByVal lpszFile As String, ByVal nIconIndex As Long, phiconLarge As Long, phiconSmall As Long, ByVal nIcons As Long) As Long

    Private Sub Command1_Click()
    Dim hIcon As Long

    ExtractIconEx "C:\my.dll", 0, hIcon, 0, 1
    DrawIcon Form1.hdc, 0, 0, hIcon
    End Sub

    У формы свойство ScaleMode должно быть 3 - Pixel

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 40.

VBNet
  • Библиотека кодов
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый сороковой выпуск рассылки.
    Читайте!

    Содержание выпуска
    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    ADO и Visual Basic. Руководство разработчика

     В книге описано использование технологии доступа к данным (ADO) с помощью основного инструмента разработки приложений Microsoft - Visual Basic 6.0. Из книги вы узнаете, как можно исследовать источники данных при помощи окна Data View, как создавать формы для ввода и запроса данных, используя связанные элементы управления, и подсоединяться к источникам данных со сложной иерархической структурой средствами Data Environment. Далее вы изучите, как можно, используя Data Report, представлять информацию в форме, подходящей для печати, или как следует исполнять некоторые, наиболее широко распространенные задачи, связанные с обработкой данных, используя ADO внутри кода Visual Basic. В последних главах книги рассмотрены дополнительные операции, используемые в коде, в том числе формирование данных, для создания иерархических наборов записей, применение ADO в сети Internet и даже создание собственных источников данных. Чтобы более полно использовать средства ADO для извлечения информации из различных источников, в приложении к книге вы найдете справочник по языку SQL, в котором обсуждаются основы работы с оператором SQL SELECT.

    Автор: Гандерлой М.
    Издательсвто: Энтроп, Век
    Год издания: 2001
    Кол-во страниц: 336
    Стоимость: 177 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Excel, VBA, Internet в экономике и финансах

     Книга является руководством по использованию Microsoft Excel, разработке офисных бизнес-приложений средствами VBA и конструированию Web-страниц на базе DHTML и VBScript. Рассматриваются приемы создания отчетной финансовой и экономической документации средствами MS Excel, способы анализа и обработки собранной информации для принятия на ее основе оптимального решения; даются ответы на вопросы, которые возникают у программиста при разработке автоматизированных и интегрированных систем с помощью VBA; описываются особенности конструирования пользовательских элементов управления ActiveX, а также написания Windows-сценариев. Большое внимание уделено принципам создания интерактивных Web-страниц, виртуальных каталогов и магазинов. Книга содержит уникальную коллекцию типичных примеров. Почти каждая глава заканчивается списком упражнений, способствующих закреплению материала

    Автор: Гарнаев А
    Издательсвто: BHV - Санкт - Петербург
    Год издания: 2001
    Кол-во страниц: 816
    Стоимость: 230 р.
    Формат: 70х100/16
    Переплёт: мягкий

    MCSD. Сертификационный экзамен 70-175. Разработка распределенных приложений на Visual Basic 6.0. Учебный курс (+ CD-ROM)

     Настоящий учебный курс рекомендован корпорацией Microsoft как официальное пособие для подготовки к экзамену 70-175 «Designing and Implementing Distributed Applications with Microsoft Visual Basic 6.0» по программе сертификации разработчиков программных решений на основе продуктов Microsoft (Microsoft Certified Solutions Developer, MCSD). Эта книга познакомит Вас с основными понятиями, концепциями и методами, необходимыми для разработок распределенных программных решений на базе Visual Basic 6.0.

    Автор: MCSD Training Kit
    Издательсвто: Русская Редакция
    Год издания: 2000
    Кол-во страниц: 400
    Стоимость: 272 р.
    Формат: 70х100/1670х100/16
    Переплёт: мягкий

    Microsoft Visual Basic 5.0

     В книге рассматривается новая пятая версия Microsoft Visual Basic - языка программирования, являющегося фактическим стандартом визуального проектирования приложений. Описываются общие черты Visual Basic, реализованные в нем концепции объектно-ориентированного программирования, среда разработки (IDE). Далее рассматривается объектно-ориентированная модель Visual Basic и доступные разработчику объектные компоненты. Подробно описываются технологии программирования на языке Visual Basic и SQL, отладка и оптимизация кода приложения, вопросы компиляции исполняемых модулей. В последующих главах освещаются практические вопросы построения приложений - работа с текстом и графикой, механизмы доступа и управления данными, работа с внешними базами данных и создание приложений клиент/сервер. Книга предназначена для широкого круга программистов, работающих в области обработки данных и информационных систем.

    Автор: Шмидт В
    Издательсвто: ABF
    Год издания: 1997
    Кол-во страниц: 688
    Стоимость: 85 р.
    Формат: 84x108/16
    Переплёт: мягкий

    Microsoft Visual Basic 6.0

     Нет описания

    Автор: Лабор В, Макарчук Д
    Издательсвто: нет данных
    Год издания: 2001
    Кол-во страниц: 160
    Стоимость: 60 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Microsoft Visual Basic 6.0. Мастерская разработчика (+ CD-ROM)

     Книга состоит из 3 частей (34 главы) и предметного указателя. Написанная живо и доходчиво, она позволит освоить множество полезных приемов программирования, в том числе объектно-ориентированного, и научит, как создавать 32-разрядные приложения для Windows 95/98 и Windows NT — от экранных заставок до программ, ориентированных на Интернет. Кроме того, Вы узнаете, как расширить возможности языка за счет функций Win32 API и воспользоваться преимуществами технологии ActiveX.

    Автор: Джон Кларк Крейг, Джефф Уэбб
    Издательсвто: Русская Редакция
    Год издания: 2001
    Кол-во страниц: 720
    Стоимость: 272 р.
    Формат: 70х100/16
    Переплёт: твёрдый

    VB Script и ActiveX

     Книга предназначена для разработчиков Web - приложений на языке VBScript, желающих повысить свой профессиональный уровень и стать экспертами в этой области. В ней подробно рассказывается о новых возможностях VBScript, включая использование именованных констант, функций, переменных и коллекций, приводится вся необходимая информация о технологии ActiveX, принципах взаимодействия VBScript и Visual Basic при создании приложений, работающих на сервере. Прочитав эту книгу, вы научитесь использовать звуковые эффекты, создавать анимированную графику, строить формы для ввода данных, узнаете, как с помощью VBScript создать в Web электронный магазин и отслеживать число посетителей и деланные ими покупки. Вы даже сумеете написать увлекательную мультимедийную игру для Web.

    Автор: Скотт Палмер
    Издательсвто: Питер
    Год издания: 1999
    Кол-во страниц: 368
    Стоимость: 94 р.
    Формат: 70х100/16
    Переплёт: мягкий

    VBA 2000. Самоучитель

     В книге содержится краткий курс по использованию языка и системы VBA для Word и Excel 2000. Книга предназначена для начинающих программировать в среде Windows 95/98 с использованием в качестве базовых таких объектов Word и Excel, как документы, рабочие книги, листы и так далее. Материала книги достаточно для создания как простых макросов, помогающих автоматизировать рутинную повторяющуюся работу над документами и электронными таблицами, так и для разработки достаточно сложных приложений, обрабатывающих данные в диалоговых окнах, обеспечивающих пользователя самыми современными интерфейсными средствами.

    Автор: Кузьменко В
    Издательсвто: Бином
    Год издания: 2000
    Кол-во страниц: 416
    Стоимость: 116 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Visual Basic 6 Desktop. Экзамен 70-176

     Книги серии `Экзамен – экстерном` представляют собой удобные, сжатые, хорошо структурированные конспекты для подготовки к сдаче сертификационных экзаменов на звание Microsoft Certified Solution Developer. Книга `Visual Basic 6.0 Desktop. Экзамен 70-176` содержит только действительно необходимый материал, типовые вопросы с ответами и пример экзамена. Возможно, некоторые подходы, применяемые автором, покажутся вам не совсем привычными - не удивляйтесь: это не учебник по Visual Basic; организация материала в этой книге призвана максимально облегчить задачу экзаменуемого. Учтите, что в ряде случаев экзаменационные вопросы выходят за рамки тем, отраженных в документации по Visual Basic, а иной раз правильные ответы на них даже входят в противоречие с `официальной` информацией.

    Автор: Майкл Макдоналд
    Издательсвто: Питер
    Год издания: 2001
    Кол-во страниц: 608
    Стоимость: 123 р.
    Формат: 60x90/16
    Переплёт: мягкий

    Visual Basic 6. Руководство разработчика (+ CD-ROM)

     Эта книга, написанная известным специалистом и неутомимым пропагандистом Visual Basic, представляет собой прекрасный путеводитель по одному из наиболее популярных визуальных средств разработки Windows-приложений. Подробно освещаются такие ключевые темы программирования на Visual Basic, как проектирование и использование элементов ActiveX, программирование баз данных и разработка Web-приложений. Несомненный интерес представляют главы, посвященные работе с графикой. Большое количество тщательно продуманных примеров облегчает восприятие материала. Подбор материала и стиль изложения делают издание интересным и полезным для программистов разных уровней.

    Автор: Евангелос Петрусос
    Издательсвто: BHV, Ирина, SYBEX Inc
    Год издания: 2000
    Кол-во страниц: 1072
    Стоимость: 267 р.
    Формат: 70x100/32
    Переплёт: твёрдый

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 16.03.2002 14:49 | Раздел: Примеры кода | Автор: Беляев Данила

    ScinsClock - Скины - как много в этом звуке... в последнее время тема шкурок настолько актуальна, что Данила решил написать свой пример на эту тему. Пример получился очень хорошим. Если Вы изучите его код, то сможете применить его в своих программах.

    Дата: 14.03.2002 05:59 | Раздел: Примеры кода | Автор: Оловянников Аркадий

    SysHookDll - Программа за слежением за клавиатурой и мышкой. Вы будете первым кто узнает о нажатии на кнопочку ;-) Этот пример - продолжает серию примеров Аркадия Оловянникова за системными событиями.

    Дата: 13.03.2002 05:56 | Раздел: Примеры кода | Автор: Оловянников Аркадий

    MouseMeter - Пример работы с мышью. Программа использует API для слежения за курсором мыши. Возможностей в ней реализовано - целая куча! Это и подсчет кликов и подсчет "пробега" мышки и слежение над каким окном она проезжает. В общем, во всех отношениях полезный пример.

    Дата: 12.03.2002 05:49 | Раздел: Примеры кода | Автор: Suk Yong Kim

    MultiDownloader - Прекрасный пример загрузки файлов из Интернета! Все написано в использованием API. Программа поддерживает докачку и может одновременно закачивать до 20 различных файлов. В общем, мне понравился пример, кто будет писать свой download, тот может его использовать в качестве основы.

    Дата: 11.03.2002 05:28 | Раздел: Примеры кода | Автор: Гриневич Дмитрий

    RunStart - Пример на тему запуска программ. Фактически программка является аналогом элемента "Выполнить" в меню "Пуск" Windows. Посмотрите, может быть кому-то понадобится.

    Дата: 10.03.2002 06:02 | Раздел: Примеры кода | Автор: Оловянников Аркадий

    NotifyAsync - Пример слежения за реестром системы, конкретнее за любым ключом реестра. Если кто-то изменит реестр, то вы об этом узнаете раньше него ;-) Этот пример из серии примеров Аркадия Оловянникова для слежения за системными событиями. Еще раз преклоняюсь над профессионализмом этого автора.

    Последние 20 тем форума на VBNet.Ru:

    23:53 / 16 мар. Api | Ответов: 1
    22:19 / 16 мар. Курсовая горит | Ответов: 1
    21:59 / 16 мар. Новое сообщение без темы | Ответов: 1
    23:14 / 15 мар. Как свернуть чужую прогу(игру)??? | Ответов: 1
    23:07 / 15 мар. Помогите!!! | Ответов: 0
    22:15 / 15 мар. audio | Ответов: 1
    22:13 / 15 мар. Audio | Ответов: 1
    20:51 / 15 мар. декомпилятор | Ответов: 0
    15:56 / 15 мар. inpout.dll - помогите делетанту в vb | Ответов: 0
    11:56 / 15 мар. Есть ли контрол для визуализации графа? | Ответов: 1
    09:31 / 15 мар. Поле Runtime | Ответов: 0
    06:22 / 15 мар. сохранение bmp | Ответов: 1
    06:20 / 15 мар. Новое сообщение без темы | Ответов: 1
    01:07 / 15 мар. ВСЕМ !!! найдена прикольная прога ! | Ответов: 1
    21:47 / 14 мар. Удаление из ListBox | Ответов: 1
    18:19 / 14 мар. Преоброзование типа данных | Ответов: 1
    16:32 / 14 мар. проблема решена, всем спасибо =)) | Ответов: 0
    16:31 / 14 мар. AutoCad & Visual Basic | Ответов: 1
    15:44 / 14 мар. из Listbox'а в массив | Ответов: 0
    15:37 / 14 мар. помощь по lpt порту | Ответов: 1

    Последние поступления в Библиотеку кодов:

    Нет новых кодов.

    наверх

    Новости сайта VBMania

    • 25.01 - Сегодня открылся новый раздел, в котором вы можете найти ссылки на целую кучу книг по тематике VB и около него.
    • 22.01 - 22 января вышел второй номер он-лайн журнала о Visual Basic 'VB Мания'. В нем можно почитать авторские статьи в уже устоявшихся разделах: Технологии, Система, Графика, Профессия, Человечество и Юмор. Так же не обошлось без новшеств: появился новый раздел dotNET и особенно рецензии ActiveX-компонентов. Обязательно заходите.
    • 17.12 - В связи с тем что форум не горел желаением вести себя так, как должен обычный, порядочный форум, мы его прикрыли для проведения разъяснительных мероприятий. Надеемся, что они не затянутся и форум образумится.
    • 06.12 - С сегодняшнего дня все желающие могут добавлять свои новости и статьи в наши архивы.
      Да здраствует открытость!
    • 27.11 - Наконец-то, после долгих дней и бессонных ночей это свершилось! Сайт объявляется открытым! Непременно прочитайте первый номер нашего журнала. Оцените наши дополнительные проекты. И конечно мы ждем ваших откликов в гостевой книге и по почте.
    • 01.12 - Произошло несколько косметических улучшений, касающихся исключительно удобства работы с сайтом. Во-первых, можно видеть количество записей обсуждения новостей на главной странице; а во-вторых чуточку подправились директории.
      Оценяйте!

    наверх

    Новости сайта Азбука VB

    • 19 февраля 2001 года
      Интервью с Арменом Мнацаканяном.
      Как определить, является ли символ буквой или цифрой? Когда нужно убедиться, что данный символ — буква (а не цифра, знак препинания, специальный символ и т.д.), то первое, что приходит в голову, — проверить, попадает ли он в диапазон A-Z или a-z. Это ошибочно по двум причинам.
      Как сделать, что бы Photoshop понимал русские буквы.
      Как сделать ссылку в RichEdit'е. Спасибо Арташесу за пример MousinRTF, благодаря этому примеру я написал свой, очень интересный пример - наводишь на ссылку в RichEdit'е а курсор меняется на руку(как в IE), ну и попутно - как отградить вставку в RichEdit всякого мусора(картинки, html, rtf), кроме нормального текста.
      Создание отсоединенного набора записей используя объкт АДО. На примере показано, как создать отсоединенный набор данных, произвести изменения и вновь подключить его.
    • 10 января 2001 года
      Интересный пример создания popMenu используя API функции CreatePopupMenu, AppendMenu, DestroyMenu, TrackPopupMenu и GetCursorPos.
      Пример показывает, как можно отлавливать события при нажатии на кнопках в заголовке формы. В примере использовались API функции - CallWindowProc и SetWindowLong.

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Вася

    Ответ ожидается по этому адресу

    Подскажите пожалуйста, вояможно ли вообще в MS Access 2000 программно ия .mdb сделать .mde файл баяы данных? И если можно, то как?

    Автор вопроса: НикАндр

    Ответ ожидается по этому адресу

    как сделать что бы в text1.text происходил поиск слов которые ты написал и изменялся, например цвет, размер итд в нём же самом для создания HTML редактора

    Автор вопроса: Ewgeniy

    Ответ ожидается по этому адресу

    Существует ли декомпилятор для Visual Basica?

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Когда яапускаешь программу под Dos. Открывается окно Dos и пишутся раяличные надписи (у большенства программ) Как сделать так что бы эти яаписи были на TextBox.

    Автор вопроса: Андрей

    Ответ ожидается по этому адресу

    В Excel 2000 при копировании листа
    Sheets("Name").Copy After:="NameA"
    где-то на 26-31-й копии возникает ошибка #1004 и лист не копируется. Что это за глюк? Как с ним бороться? Пока обхожу его так: в обработчике ошибки всавляю новый лист, переношу на него все данные, задаю нужные параметры печати. Но это требует НА ПОРЯДОК БОЛЬШЕ ВРЕМЕНИ!

    Автор вопроса: Tibor

    Ответ ожидается по этому адресу

    Ноты!!!
    как через Win32Api в VB6 прописать звук?
    Длительность, тональность, и т.п. и т.д.

    Автор вопроса: Алексей

    Ответ ожидается по этому адресу

    Допустим, я взял какую-то картинку и поместил её в Picture Box. Допустим, она может быть значительно больше этого самого окошка Picture. Допустим, я реализовал скроллы, фреймы и всякие инструменты для интерактивной обработки. Всё нормально и работает. Но вопрос - как можно получить информацию о скрытых частях картинки. Метод Point работает только для видимой части картинки и формы, а нужно иметь инфо о любой точке изображения. Ответ, конечно, прост - параллельно с выводом в PictureBox считывать информацию прямо из файла. А потом во время работы это дело коррелировать. Вопрос, существуют ли какие-нибудь доступные прилады и библиотеки для чтения файлов в различных граф. форматах, чтобы можно было получить попиксельную информацию? Или есть методы в VB, с помощью которых можно обойти это дело? Или что-то третье?

    Автор вопроса: Андрей Щёкин

    Ответ ожидается по этому адресу

    1. Спрашивается, как работать с RAS ?
    2. Для работы с сервисами NT(XP) в MSDN есть такой кусок.

    hNextUnreadEntry = 0

    '*
    lngResult = EnumServicesStatus(hSCM, SERVICE_WIN32, SERVICE_ACTIVE, ByVal &H0, _
    &H0, lngBytesNeeded, lngServicesReturned, hNextUnreadEntry)
    'We should receive MORE_DATA error.
    If Not Err.LastDllError = ERROR_MORE_DATA Then
    MsgBox "LastDLLError = " & CStr(Err.LastDllError)
    Exit Sub
    End If
    'Calculate the number of structures needed.
    lngStructsNeeded = lngBytesNeeded / Len(lpEnumServiceStatus(0)) + 1
    'Redimension the array according to our calculation.
    ReDim lpEnumServiceStatus(lngStructsNeeded - 1)
    'Get buffer size in bytes.
    lngServiceStatusInfoBuffer = lngStructsNeeded * Len(lpEnumServiceStatus(0))
    'Get services information starting entry 0.
    hNextUnreadEntry = 0

    '**
    lngResult = EnumServicesStatus(hSCM, SERVICE_WIN32, SERVICE_ACTIVE, lpEnumServiceStatus(0), lngServiceStatusInfoBuffer, lngBytesNeeded, lngServicesReturned, hNextUnreadEntry)

    Но в таком виде первый EnumServicesStatus (*) выдаёт ошибку на ByVal &H0 - User-defined type can't be passed ByVal. Если создать второе обьявление той же функции с Long в этом месте, то прога (вместе с VB) вылетает на вызове исходной (**). В чём дело ?

    Автор вопроса: Spart51

    Ответ ожидается по этому адресу

    Как сделать, чтобы программа добавлялась в автозагрузку(не через меню "Автозагрузка", а в реестре)?

    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

    Как можно на VB, если можно, использовать ресурсы динамических библиотек (DLL файлов), например: иконки, диалоги, меню, и т.д.
    Да, подскажите пожалуйста где можно найти статью по созданию DLL на VB6.

    Ответы:

    Вопрос:

    Как на форме VB6 создать подчинённую форму для отображения данных из таблицы связанной с главной отношением "один-ко-многим"? (Наподобие подчинённой формы в ACCESS)

    Ответ:

    Автор ответа: Shemyakin, Dmitry

    К сожалению в ВБ все придется делать ручками. Если нужно подчиненную таблицу представить в табличной форме - все достаточно просто - используй подходящий контрол list или grid. Если нужно самому оформлять таблицу, со всевозсожными контролами - надо заморачиваться и писать код, динамически добавляющий контролы на форму.

    Вопрос:

    Что бы послать почту с моей Form пишу:

    Private Declare Function ShellExecute& Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long)
    Private Declare Function GetDesktopWindow Lib "user32" () As Long

    Private Sub Label1_Click()
    'Выяываем маил с адресом
    Call ShellExecute(0&, "Open", "mailto:" + "ЛОГИН@СЕРВЕР.ru" + "?Subject=" + "'Здесь описана тема...'" + "?body=" + "'Сдесь
    нужно написать сообщение'", "", "", SW_SHOWNORMAL)
    End Sub

    Но в почтовой программе текст 'Сдесь нужно написать сообщение' выводится там где вводится тема. Помогите сделать так чтобы в текстовом поле ияображалать текст

    Ответ:

    Автор ответа: Михаил Ю. Белодед

    Call ShellExecute(0&, "Open", "mailto:" + "ЛОГИН@СЕРВЕР.ru" + "?Subject=" + "'Здесь описана тема...'" + "&body=" + "'Сдесь нужно написать сообщение'", "", "", SW_SHOWNORMAL)

    Вопрос:

    Что бы послать почту с моей Form пишу:

    Private Declare Function ShellExecute& Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long)
    Private Declare Function GetDesktopWindow Lib "user32" () As Long

    Private Sub Label1_Click()
    'Выяываем маил с адресом
    Call ShellExecute(0&, "Open", "mailto:" + "ЛОГИН@СЕРВЕР.ru" + "?Subject=" + "'Здесь описана тема...'" + "?body=" + "'Сдесь
    нужно написать сообщение'", "", "", SW_SHOWNORMAL)
    End Sub

    Но в почтовой программе текст 'Сдесь нужно написать сообщение' выводится там где вводится тема. Помогите сделать так чтобы в текстовом поле ияображалать текст

    Ответ:

    Автор ответа: Александр

    Все дело в том что у вас получается след вызываемая комманда:
    mailto:ЛОГИН@СЕРВЕР.ru?Subject=описана тема...?body=Сдесь нужно написать сообщение между subj и body должен быть знак (& - амперсанд) иначе ничего работать небудет!

    Вопрос:

    Как уянать какая клавеша нажата если forma не активна. Например: в каком либо редакторе нажимается какая либо кнопка а Forma обрабатывает это нажатие

    Ответ:

    Автор ответа: Kirill

    Абсолютно исчерпывающий ответ можно найти здесь:
    http://www.vbrussian.com/Tricks/API.asp#a1

    Вопрос:

    Если на VB написать прогу и записать на болванку, чтобы она запускалась при запуске сидюка. Понятно в основном. так а если на машине не библиотек VB она же не запуститься? проверку можно сделать и если нет библиотек, то их копирнуть тут же. во как завернул?

    Ответ:

    Автор ответа: Иван

    Проще сделать по другому:
    На диске создаёшь файл Autorun.inf, пишешь туда текст:

    [autorun]
    OPEN=/путь/файл.exe

    В папку путь положи свой проект вместе с библиотеками и всё будет работать.

    Вопрос:

    Если на VB написать прогу и записать на болванку, чтобы она запускалась при запуске сидюка. Понятно в основном. так а если на машине не библиотек VB она же не запуститься? проверку можно сделать и если нет библиотек, то их копирнуть тут же. во как завернул?

    Ответ:

    Автор ответа: Sobic

    Надо просто пихнуть все необходимые библиотеки в корневой каталог твоего CD. Ведь как ты проверишь есть ли библиотеки на машине? Напишешь другую прогу на другом языке программирования?

    Вопрос:

    Как, например, по нажатии кнопки, запускался файл .mp3

    Ответ:

    Автор ответа: Иван

    В разделе формы General Declarations объявляем следующую API-функцию:

    Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long

    'чтобы воспроизвести файл
    Private Sub Command2_Click()
    Call mciExecute("play d:\Music01.mp3")
    End Sub

    'чтобы закрыть файл
    Private Sub Command1_Click()
    Call mciExecute("close d:\Music\01.mp3")
    End Sub

    Вопрос:

    Как, например, по нажатии кнопки, запускался файл .mp3

    Ответ:

    Автор ответа: Post

    Можно воспользоваться Windows Media Player.
    Помещаешь его на форму (components ---> Windows Media Player)
    В процедуре обработки нажатия вводишь код

    Private Sub Комманда1_Click()
    MediaPlayer1.FileName = "полный путь к mp3"
    MediaPlayer1.Play
    End Sub

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 41.

VBNet
  • Библиотека кодов
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Выпуск номер 41.
    Читайте!

    Содержание выпуска
    • Книги

    • Изменение атрибутов файла (SetFileAttributes)
    • Получение сведений о файле
    • Удаление файла в корзину
    • Использование функции SHGetFileInfo
    • Найти TEMP-директорию и создать новый .tmp-файл
    • Рекурсивный перебор все подпапок в указанной папке

    • Вопрос/Ответ

    Книги

    ADO и Visual Basic. Руководство разработчика

     В книге описано использование технологии доступа к данным (ADO) с помощью основного инструмента разработки приложений Microsoft - Visual Basic 6.0. Из книги вы узнаете, как можно исследовать источники данных при помощи окна Data View, как создавать формы для ввода и запроса данных, используя связанные элементы управления, и подсоединяться к источникам данных со сложной иерархической структурой средствами Data Environment. Далее вы изучите, как можно, используя Data Report, представлять информацию в форме, подходящей для печати, или как следует исполнять некоторые, наиболее широко распространенные задачи, связанные с обработкой данных, используя ADO внутри кода Visual Basic. В последних главах книги рассмотрены дополнительные операции, используемые в коде, в том числе формирование данных, для создания иерархических наборов записей, применение ADO в сети Internet и даже создание собственных источников данных. Чтобы более полно использовать средства ADO для извлечения информации из различных источников, в приложении к книге вы найдете справочник по языку SQL, в котором обсуждаются основы работы с оператором SQL SELECT.

    Автор: Гандерлой М.
    Издательсвто: Энтроп, Век
    Год издания: 2001
    Кол-во страниц: 336
    Стоимость: 177 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Excel, VBA, Internet в экономике и финансах

     Книга является руководством по использованию Microsoft Excel, разработке офисных бизнес-приложений средствами VBA и конструированию Web-страниц на базе DHTML и VBScript. Рассматриваются приемы создания отчетной финансовой и экономической документации средствами MS Excel, способы анализа и обработки собранной информации для принятия на ее основе оптимального решения; даются ответы на вопросы, которые возникают у программиста при разработке автоматизированных и интегрированных систем с помощью VBA; описываются особенности конструирования пользовательских элементов управления ActiveX, а также написания Windows-сценариев. Большое внимание уделено принципам создания интерактивных Web-страниц, виртуальных каталогов и магазинов. Книга содержит уникальную коллекцию типичных примеров. Почти каждая глава заканчивается списком упражнений, способствующих закреплению материала

    Автор: Гарнаев А
    Издательсвто: BHV - Санкт - Петербург
    Год издания: 2001
    Кол-во страниц: 816
    Стоимость: 230 р.
    Формат: 70х100/16
    Переплёт: мягкий

    MCSD. Сертификационный экзамен 70-175. Разработка распределенных приложений на Visual Basic 6.0. Учебный курс (+ CD-ROM)

     Настоящий учебный курс рекомендован корпорацией Microsoft как официальное пособие для подготовки к экзамену 70-175 «Designing and Implementing Distributed Applications with Microsoft Visual Basic 6.0» по программе сертификации разработчиков программных решений на основе продуктов Microsoft (Microsoft Certified Solutions Developer, MCSD). Эта книга познакомит Вас с основными понятиями, концепциями и методами, необходимыми для разработок распределенных программных решений на базе Visual Basic 6.0.

    Автор: MCSD Training Kit
    Издательсвто: Русская Редакция
    Год издания: 2000
    Кол-во страниц: 400
    Стоимость: 272 р.
    Формат: 70х100/1670х100/16
    Переплёт: мягкий

    Microsoft Visual Basic 5.0

     В книге рассматривается новая пятая версия Microsoft Visual Basic - языка программирования, являющегося фактическим стандартом визуального проектирования приложений. Описываются общие черты Visual Basic, реализованные в нем концепции объектно-ориентированного программирования, среда разработки (IDE). Далее рассматривается объектно-ориентированная модель Visual Basic и доступные разработчику объектные компоненты. Подробно описываются технологии программирования на языке Visual Basic и SQL, отладка и оптимизация кода приложения, вопросы компиляции исполняемых модулей. В последующих главах освещаются практические вопросы построения приложений - работа с текстом и графикой, механизмы доступа и управления данными, работа с внешними базами данных и создание приложений клиент/сервер. Книга предназначена для широкого круга программистов, работающих в области обработки данных и информационных систем.

    Автор: Шмидт В
    Издательсвто: ABF
    Год издания: 1997
    Кол-во страниц: 688
    Стоимость: 85 р.
    Формат: 84x108/16
    Переплёт: мягкий

    Microsoft Visual Basic 6.0

     Нет описания

    Автор: Лабор В, Макарчук Д
    Издательсвто: нет данных
    Год издания: 2001
    Кол-во страниц: 160
    Стоимость: 60 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Microsoft Visual Basic 6.0. Мастерская разработчика (+ CD-ROM)

     Книга состоит из 3 частей (34 главы) и предметного указателя. Написанная живо и доходчиво, она позволит освоить множество полезных приемов программирования, в том числе объектно-ориентированного, и научит, как создавать 32-разрядные приложения для Windows 95/98 и Windows NT — от экранных заставок до программ, ориентированных на Интернет. Кроме того, Вы узнаете, как расширить возможности языка за счет функций Win32 API и воспользоваться преимуществами технологии ActiveX.

    Автор: Джон Кларк Крейг, Джефф Уэбб
    Издательсвто: Русская Редакция
    Год издания: 2001
    Кол-во страниц: 720
    Стоимость: 272 р.
    Формат: 70х100/16
    Переплёт: твёрдый

    VB Script и ActiveX

     Книга предназначена для разработчиков Web - приложений на языке VBScript, желающих повысить свой профессиональный уровень и стать экспертами в этой области. В ней подробно рассказывается о новых возможностях VBScript, включая использование именованных констант, функций, переменных и коллекций, приводится вся необходимая информация о технологии ActiveX, принципах взаимодействия VBScript и Visual Basic при создании приложений, работающих на сервере. Прочитав эту книгу, вы научитесь использовать звуковые эффекты, создавать анимированную графику, строить формы для ввода данных, узнаете, как с помощью VBScript создать в Web электронный магазин и отслеживать число посетителей и деланные ими покупки. Вы даже сумеете написать увлекательную мультимедийную игру для Web.

    Автор: Скотт Палмер
    Издательсвто: Питер
    Год издания: 1999
    Кол-во страниц: 368
    Стоимость: 94 р.
    Формат: 70х100/16
    Переплёт: мягкий

    VBA 2000. Самоучитель

     В книге содержится краткий курс по использованию языка и системы VBA для Word и Excel 2000. Книга предназначена для начинающих программировать в среде Windows 95/98 с использованием в качестве базовых таких объектов Word и Excel, как документы, рабочие книги, листы и так далее. Материала книги достаточно для создания как простых макросов, помогающих автоматизировать рутинную повторяющуюся работу над документами и электронными таблицами, так и для разработки достаточно сложных приложений, обрабатывающих данные в диалоговых окнах, обеспечивающих пользователя самыми современными интерфейсными средствами.

    Автор: Кузьменко В
    Издательсвто: Бином
    Год издания: 2000
    Кол-во страниц: 416
    Стоимость: 116 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Visual Basic 6 Desktop. Экзамен 70-176

     Книги серии `Экзамен – экстерном` представляют собой удобные, сжатые, хорошо структурированные конспекты для подготовки к сдаче сертификационных экзаменов на звание Microsoft Certified Solution Developer. Книга `Visual Basic 6.0 Desktop. Экзамен 70-176` содержит только действительно необходимый материал, типовые вопросы с ответами и пример экзамена. Возможно, некоторые подходы, применяемые автором, покажутся вам не совсем привычными - не удивляйтесь: это не учебник по Visual Basic; организация материала в этой книге призвана максимально облегчить задачу экзаменуемого. Учтите, что в ряде случаев экзаменационные вопросы выходят за рамки тем, отраженных в документации по Visual Basic, а иной раз правильные ответы на них даже входят в противоречие с `официальной` информацией.

    Автор: Майкл Макдоналд
    Издательсвто: Питер
    Год издания: 2001
    Кол-во страниц: 608
    Стоимость: 123 р.
    Формат: 60x90/16
    Переплёт: мягкий

    Visual Basic 6. Руководство разработчика (+ CD-ROM)

     Эта книга, написанная известным специалистом и неутомимым пропагандистом Visual Basic, представляет собой прекрасный путеводитель по одному из наиболее популярных визуальных средств разработки Windows-приложений. Подробно освещаются такие ключевые темы программирования на Visual Basic, как проектирование и использование элементов ActiveX, программирование баз данных и разработка Web-приложений. Несомненный интерес представляют главы, посвященные работе с графикой. Большое количество тщательно продуманных примеров облегчает восприятие материала. Подбор материала и стиль изложения делают издание интересным и полезным для программистов разных уровней.

    Автор: Евангелос Петрусос
    Издательсвто: BHV, Ирина, SYBEX Inc
    Год издания: 2000
    Кол-во страниц: 1072
    Стоимость: 267 р.
    Формат: 70x100/32
    Переплёт: твёрдый

    Остальные книги о VB можно найти     здесь.

    наверх

    Изменение атрибутов файла (SetFileAttributes)

    Изменение атрибутов файла с помощью API-функции SetFileAttributes

    Const READONLY = &H1
    Const HIDDEN = &H2
    Const SYSTEM = &H4
    Const ARCHIVE = &H20
    Const NORMAL = &H80
    Private Declare Function SetFileAttributes Lib "kernel32.dll" Alias "SetFileAttributesA" (ByVal lpFileName As String, ByVal dwFileAttributes As Long) As Long

    Private Sub Command1_Click()
    Dim attr As Long
    Dim rval As Long
    attr = READONLY + SYSTEM + HIDDEN
    rval = SetFileAttributes("D:\garbage\top_spylog.Txt", attr)
    End
    End Sub

    наверх

    Получение сведений о файле

    В данном примере вы можете узнать о том, как можно получить сведения о файле с использованием FileSystemObject. Для использования этого примера установите ссылку на Microsoft Scripting Runtime через меню Project | References.

    И не забудьте расположить на форме элемент ListBox!

    В этом примере вы можете узнать: Имя файла, Полный путь, Дата создания, Дата модификации, Дата последнего доступа, Размер файла

    Dim FSys As New FileSystemObject
    Private Sub Form_Load()
    Set qn = FSys.GetFile("D:\2\attributes\FileAtribs2.vbp")
    List1.AddItem "Имя файла " & qn.Name
    List1.AddItem "Полный путь " & qn.Path
    List1.AddItem "Дата создания " & qn.DateCreated
    List1.AddItem "Дата модификации " & qn.DateLastModified
    List1.AddItem "Дата последнего доступа " & qn.DateLastAccessed
    List1.AddItem "Размер файла " & qn.Size
    End Sub

    наверх

    Удаление файла в корзину

    Если у вас в опциях корзины Windows не стоит галочка "Уничтожать файлы сразу после удаления", то данный пример удалит созданные вами файлы в корзину.

    Private Type SHFILEOPSTRUCT
    hwnd As Long
    wFunc As Long
    pFrom As String
    pTo As String
    fFlags As Integer
    fAnyOperationsAborted As Long
    hNameMappings As Long
    lpszProgressTitle As Long
    End Type
    Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
    Private Const FO_DELETE = &H3
    Private Const FOF_ALLOWUNDO = &H40
    Private Const FOF_NOCONFIRMATION = &H10
    Private Const FOF_SILENT = &H4

    Sub SendFileToRecycleBin(FileName As String, Optional Confirm As Boolean = True, Optional Silent As Boolean = False)
    Dim FileOp As SHFILEOPSTRUCT
    With FileOp
    .wFunc = FO_DELETE
    .pFrom = FileName
    .fFlags = FOF_ALLOWUNDO
    If Not Confirm Then .fFlags = .fFlags + FOF_NOCONFIRMATION
    If Silent Then .fFlags = .fFlags + FOF_SILENT
    End With
    SHFileOperation FileOp
    End Sub

    Private Sub Command1_Click()
    SendFileToRecycleBin "C:\1.txt", False
    SendFileToRecycleBin "C:\11.txt", True
    End Sub

    Private Sub Form_Load()
    Dim FN As Integer
    FN = FreeFile
    Dim FName As String
    FName = "C:\1.txt"
    Open FName For Output As #FN
    Print #FN, ""
    Close #FN
    FName = "C:\11.txt"
    Open FName For Output As #FN
    Print #FN, ""
    Close #FN
    End Sub

    наверх

    Использование функции SHGetFileInfo

    Данный пример позволяет из пути к файлу узнать имя файла, а также описание типа зарегистрированного файла, и еще 3 параметра, смысл которых я не уловил. Вам и карты в руки, если вы узанаете смысл получаемых параметров, напишите.

    Const MAX_PATH = 260
    Private Type SHFILEINFO
    hIcon As Long ' out: icon
    iIcon As Long ' out: icon index
    dwAttributes As Long ' out: SFGAO_ flags
    szDisplayName As String * MAX_PATH ' out: display name (or path)
    szTypeName As String * 80 ' out: type name
    End Type
    Private Enum SHGFI_FLAGS
    SHGFI_LARGEICON = &H0 ' sfi.hIcon is large icon
    SHGFI_SMALLICON = &H1 ' sfi.hIcon is small icon
    SHGFI_OPENICON = &H2 ' sfi.hIcon is open icon
    SHGFI_SHELLICONSIZE = &H4 ' sfi.hIcon is shell size (not system size), rtns BOOL
    SHGFI_PIDL = &H8 ' pszPath is pidl, rtns BOOL
    SHGFI_USEFILEATTRIBUTES = &H10 ' pretend pszPath exists, rtns BOOL
    SHGFI_ICON = &H100 ' fills sfi.hIcon, rtns BOOL, use DestroyIcon
    SHGFI_DISPLAYNAME = &H200 ' isf.szDisplayName is filled, rtns BOOL
    SHGFI_TYPENAME = &H400 ' isf.szTypeName is filled, rtns BOOL
    SHGFI_ATTRIBUTES = &H800 ' rtns IShellFolder::GetAttributesOf SFGAO_* flags
    SHGFI_ICONLOCATION = &H1000 ' fills sfi.szDisplayName with filename containing the icon, rtns BOOL
    SHGFI_EXETYPE = &H2000 ' rtns two ASCII chars of exe type
    SHGFI_SYSICONINDEX = &H4000 ' sfi.iIcon is sys il icon index, rtns hImagelist
    SHGFI_LINKOVERLAY = &H8000 ' add shortcut overlay to sfi.hIcon
    SHGFI_SELECTED = &H10000 ' sfi.hIcon is selected icon
    End Enum
    Private Declare Function SHGetFileInfo Lib "shell32.dll" Alias "SHGetFileInfoA" (ByVal pszPath As String, ByVal dwFileAttributes As Long, psfi As SHFILEINFO, ByVal cbFileInfo As Long, ByVal uFlags As Long) As Long
    Private Const BASIC_SHGFI_FLAGS = SHGFI_TYPENAME Or SHGFI_SHELLICONSIZE Or SHGFI_SYSICONINDEX Or SHGFI_DISPLAYNAME Or SHGFI_EXETYPE Or SHGFI_ICON

    Private Sub Command1_Click()
    Dim hFile As Long, nRet As Long
    Dim nSize As Long, cCount As Long
    Dim sTmp As String
    Dim shfi As SHFILEINFO
    sPath = "C:\AUTOEXEC.BAT"
    nRet = SHGetFileInfo(sPath, 0&, shfi, Len(shfi), BASIC_SHGFI_FLAGS)
    MsgBox shfi.dwAttributes
    MsgBox shfi.hIcon
    MsgBox shfi.iIcon
    MsgBox shfi.szDisplayName
    MsgBox shfi.szTypeName
    End Sub

    наверх

    Найти TEMP-директорию и создать новый .tmp-файл

    Как найти временную папку Windows используя (1) функцию ENVIRON или (2) используя Win32 API GetTempPath. Эта программа покажет, как сгенерировать новое временное имя, используя GetTempFileName. Добавьте на форму CommandButton и Label

    Private Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
    Private Declare Function GetTempFileName Lib "kernel32" Alias "GetTempFileNameA" (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As Long

    Private Sub Command1_Click()
    Dim ls_TempPath As String
    Dim ll_Buffer As Long
    Dim ls_TempFileName As String
    ll_Buffer = 255
    ls_TempPath = Space(255)
    If GetTempPath(ll_Buffer, ls_TempPath) = 0 Then
    MsgBox "API Failed!"
    Else
    ls_TempPath = Left(ls_TempPath, ll_Buffer)
    End If
    ls_TempFileName = Space(255)
    ll_Buffer = GetTempFileName(ls_TempPath, "xxx", 0, ls_TempFileName)
    'xxx is a three letter prefix - can be anything you want.
    '3rd parameter (0 above) is uUnique...If uUnique is nonzero, the function appends the hexadecimal string to lpPrefixString to form the temporary filename. In this case, the function does not create the specified file, and does not test whether the filename is unique.
    'If uUnique is zero, the function uses a hexadecimal string derived from the current system time. In this case, the function uses different values until it finds a unique filename, and then it creates the file in the lpPathName directory.
    If ll_Buffer = 0 Then
    MsgBox "API Failed!"
    Else
    ls_TempFileName = Left(ls_TempFileName, ll_Buffer)
    MsgBox "Created temporary file :" & ls_TempFileName
    End If
    End Sub

    Private Sub Form_Load()
    Dim ls_TempPath As String
    Dim ll_Buffer As Long
    Dim li_Length As Integer
    ll_Buffer = 255
    ls_TempPath = Space(255)
    li_Length = GetTempPath(ll_Buffer, ls_TempPath)
    If li_Length = 0 Then
    MsgBox "API Failed!"
    Else
    ls_TempPath = Left(ls_TempPath, li_Length)
    Label1 = "Temporary Directory is " & ls_TempPath
    End If
    'Or Using environment variables.
    'To see your environment variables go to the system icon in control panel and click on the environment tab. You can get the value of these variables from VB using the command ENVIRON. e.g.
    'Label1 = Environ("TEMP")
    'Label1 = Environ("TMP")

    End Sub

    наверх

    Рекурсивный перебор все подпапок в указанной папке

    Данный пример позволяет "перебрать" все подпапки одной определенной директории. К примеру, вам необходимо в каждой подпапке подсчитать количество файлов, или выполнить стандартную процедуру над каждым файлом, да мало ли какое применение. Данный код я использую в своей программе FPkiller. Разместите на форме элементы FileListBox, DirListBox, DriveListBox а также элемент CommandButton.

    Затем вставьте следующий код, и ваша программа заработает. Все необходимые, на мой взгляд, пояснения даны в примере. Как вы понимаете, в данном примере основной процедурой является процедура ScanFolders(). Ваш код для обработки каждой папки должен помещаться между /// и \\\.

    Dim InitialFolder
    Dim OldDrive As String
    Dim TotalDir 'переменная для обозначение общего количества папок

    Private Sub Command1_Click()
    ChDrive Drive1.Drive
    ChDir Dir1.Path
    InitialFolder = CurDir
    ScanFolders
    End Sub

    Sub ScanFolders()
    Dim SubFolders As Integer
    '///начало обращения к внешней процедуре
    'в данный блок вы можете вставить любую процедуру обработки текущей папки
    'MsgBox CurrentFolder(Dir1.Path) 'просмотр текущей папки
    'снимите маркер, если хотите получить общее количество папок, включая начальную
    'TotalDir = TotalDir + 1

    '\\\конец обращения к внешней процедуре
    SubFolders = Dir1.ListCount
    If SubFolders > 0 Then
    For i = 0 To SubFolders - 1
    ChDir Dir1.List(i)
    Dir1.Path = Dir1.List(i)
    File1.Path = Dir1.List(i)
    Form1.Refresh
    ScanFolders
    Next
    End If
    File1.Path = Dir1.Path
    MoveUp
    End Sub

    Sub MoveUp()
    If Dir1.List(-1) <> InitialFolder Then
    ChDir Dir1.List(-2)
    Dir1.Path = Dir1.List(-2)
    End If
    End Sub
    Private Sub Dir1_Change()
    ChDir Dir1.Path
    File1.Path = Dir1.Path
    End Sub
    Private Sub Dir1_Click()
    With Dir1
    .Path = .List(.ListIndex)
    End With
    End Sub
    Private Sub Drive1_Change()
    On Error GoTo ErrHan
    ChDrive Dir1.Path
    Dir1.Path = Drive1.Drive
    Dir1.Refresh
    'присвоение этой переменной значение Drive1.Drive для исключения ошибки
    OldDrive = Drive1.Drive
    Exit Sub
    ErrHan:
    Drive1.Drive = OldDrive
    End Sub
    Private Sub Form_Load()
    ChDrive App.Path
    ChDir App.Path
    End Sub
    Private Function CurrentFolder(sFolderPath)
    Dim str1() As String
    str1 = Split(sFolderPath, "\")
    CurrentFolder = str1(UBound(str1))
    End Function

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Роман

    Ответ ожидается по этому адресу

    В VB пытаюсь сделать текстовый редактор. Посоветуйте, как сделать, чтобы по нажатии на кнопку BOLD(жирный), жирным становился не весь текст, а только выделенный. Я написал так:

    Case "Bold"
    With txtBox
    If .FontBold = True Then
    .FontBold = False
    Else
    .FontBold = True
    End If
    End With

    Автор вопроса: Тимур

    Ответ ожидается по этому адресу

    В Excel написал программу, реагирующую на ияменение данных на странице. Но эта программа сама меняет данные на той же станице и тоже на это реагирует. В реяультате программа выяывает сама себя и яацикливается. Знает ли кто-нибудь как отключить реакцию на событие WorkSheet_Change на время выполнения процедуры. Сейчас я выкручиваюсь так: в начале прогаммы ставлю флажок, что программа в стадии выполнения и по нему делаю Exit.

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Как проиграть телефонный раяговор черея явуковую карту?

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Как при помощи VB и API переделать BMP в GIF (Раяумеется не просто поменять раширение)?

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    На каких платформах работают программы написанные на VB6?

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Как перекодировать ия какой либо кодировки в другую при помощи VB. (Только не Win в Дос)

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Как исправить текст находящийся вне формы ?

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Можно ли удалить файл так что бы его нельяя было востановить даже unerase или undelete.

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Можно ли востановить удаленные файлы при помощи VB (удаленные не яначит в коряине).

    Автор вопроса: hotmail

    Ответ ожидается по этому адресу

    Люди! Каким образом средствами VBA for EXEL97 получить список файлов в указанной папке, причем с определенный символом в начале имени и указанным расширением? И как после этого оргпнизовать последовательное открытие каждого из них? (все файлы .xls)

    Автор вопроса: CaHeK

    Ответ ожидается по этому адресу

    Как мне «воткнуть» файл в программу (музыкальный) чтобы от туда же его использовать…или воспроизводить его в нужный момент, но путь целиком не указывать (на случай если папку с прогой переместят)… + как заставить объект типа Picture по нажатии кнопки влево, двигаться влево, и т.д…прошу написать поподробнее…+как при определенном условии создавать объект (Picture), а при ненадобности его удалять (советы с visible не присылать, таких объектов за раз может быть много, а код компактен должен быть)…+как откомпилять EXEшник, чтоб он потом не требовал библиотек (VB6)

    Автор вопроса: DDT

    Ответ ожидается по этому адресу

    Народ, отзовитесь, кто работал гокда-нибудь с диаграммой Excel. Мне нужно внести в нее исходные данные для построения графика, но не вручную, а программно. Но какие свойства и методы надо использовать я не знаю.

    Автор вопроса: Николай

    Ответ ожидается по этому адресу

    Работа с базой данных.

    Расклад такой:
    Таблица - "А"
    Поля - "Дата Продажи"
    "Наименование Товара"
    "Стоимость"
    Как должен выглядеть SQL запрос чтобы вывести данные о количестве записей из поля"Наименование Товара",общей суммы из поля"Стоимость" на конкретную дату"Дата Продажи" из таблицы"А". Причём должна быть возможность делать выборку на дату задаваемую пользователем,в отдельном Text.Box. Пример: 17.03.02 было проданно 15 наименований товара на сумму 1500 рублей.

    "VB 6.0" ,база данных "ACCESS" , контрол "DATA"

    Автор вопроса: ComputerDestroyer

    Ответ ожидается по этому адресу

    Кто знает, как програмно создать кнопку али др. элемент упраления ?

    Автор вопроса: Luka

    Ответ ожидается по этому адресу

    Как добавить свою кнопку в любом окне windows, рядом с кнопками: Свернуть, Развернуть, Закрыть?

    Ответы:

    Вопрос:

    как сделать что бы в text1.text происходил поиск слов которые ты написал и изменялся, например цвет, размер итд в нём же самом для создания HTML редактора

    Ответ:

    Автор ответа: Roman 'Devil' Yuakovlev

    Можно... только нужно юзать richtextbox

    Вопрос:

    Когда яапускаешь программу под Dos. Открывается окно Dos и пишутся раяличные надписи (у большенства программ) Как сделать так что бы эти яаписи были на TextBox.

    Ответ:

    Автор ответа: P@Ssword

    Пример взял из API-Guide, инструкция прилагается. Пользуйся!

    'Redirects output from console program to textbox.
    'Requires two textboxes and one command button.
    'Set MultiLine property of Text2 to true.
    '
    'Original bcx version of this program was made by
    ' dl
    'VB port was made by Jernej Simoncic
    'Visit Jernejs site at http://www2.arnes.si/~sopjsimo/
    '
    'Note: don't run plain DOS programs with this example
    'under Windows 95,98 and ME, as the program freezes when
    'execution of program is finnished.

    Option Explicit
    Private Declare Function CreatePipe Lib "kernel32" (phReadPipe As Long, phWritePipe As Long, lpPipeAttributes As SECURITY_ATTRIBUTES, ByVal nSize As Long) As Long
    Private Declare Sub GetStartupInfo Lib "kernel32" Alias "GetStartupInfoA" (lpStartupInfo As STARTUPINFO)
    Private Declare Function CreateProcess Lib "kernel32" Alias "CreateProcessA" (ByVal lpApplicationName As String, ByVal lpCommandLine As String, lpProcessAttributes As Any, lpThreadAttributes As Any, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, lpEnvironment As Any, ByVal lpCurrentDriectory As String, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long
    Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long
    Private Declare Function ReadFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As Any) As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

    Private Type SECURITY_ATTRIBUTES
    nLength As Long
    lpSecurityDescriptor As Long
    bInheritHandle As Long
    End Type

    Private Type PROCESS_INFORMATION
    hProcess As Long
    hThread As Long
    dwProcessId As Long
    dwThreadId As Long
    End Type

    Private Type STARTUPINFO
    cb As Long
    lpReserved As Long
    lpDesktop As Long
    lpTitle As Long
    dwX As Long
    dwY As Long
    dwXSize As Long
    dwYSize As Long
    dwXCountChars As Long
    dwYCountChars As Long
    dwFillAttribute As Long
    dwFlags As Long
    wShowWindow As Integer
    cbReserved2 As Integer
    lpReserved2 As Byte
    hStdInput As Long
    hStdOutput As Long
    hStdError As Long
    End Type

    Private Type OVERLAPPED
    ternal As Long
    ternalHigh As Long
    offset As Long
    OffsetHigh As Long
    hEvent As Long
    End Type

    Private Const STARTF_USESHOWWINDOW = &H1
    Private Const STARTF_USESTDHANDLES = &H100
    Private Const SW_HIDE = 0
    Private Const EM_SETSEL = &HB1
    Private Const EM_REPLACESEL = &HC2

    Private Sub Command1_Click()
    Command1.Enabled = False
    Redirect Text1.Text, Text2
    Command1.Enabled = True
    End Sub
    Private Sub Form_Load()
    Text1.Text = "ping"
    End Sub
    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    If Command1.Enabled = False Then Cancel = True
    End Sub

    Sub Redirect(cmdLine As String, objTarget As Object)
    Dim i%, t$
    Dim pa As SECURITY_ATTRIBUTES
    Dim pra As SECURITY_ATTRIBUTES
    Dim tra As SECURITY_ATTRIBUTES
    Dim pi As PROCESS_INFORMATION
    Dim sui As STARTUPINFO
    Dim hRead As Long
    Dim hWrite As Long
    Dim bRead As Long
    Dim lpBuffer(1024) As Byte
    pa.nLength = Len(pa)
    pa.lpSecurityDescriptor = 0
    pa.bInheritHandle = True

    pra.nLength = Len(pra)
    tra.nLength = Len(tra)

    If CreatePipe(hRead, hWrite, pa, 0) <> 0 Then
    sui.cb = Len(sui)
    GetStartupInfo sui
    sui.hStdOutput = hWrite
    sui.hStdError = hWrite
    sui.dwFlags = STARTF_USESHOWWINDOW Or STARTF_USESTDHANDLES
    sui.wShowWindow = SW_HIDE
    If CreateProcess(vbNullString, cmdLine, pra, tra, True, 0, Null, vbNullString, sui, pi) <> 0 Then
    SetWindowText objTarget.hwnd, ""
    Do
    Erase lpBuffer()
    If ReadFile(hRead, lpBuffer(0), 1023, bRead, ByVal 0&) Then
    SendMessage objTarget.hwnd, EM_SETSEL, -1, 0
    SendMessage objTarget.hwnd, EM_REPLACESEL, False, lpBuffer(0)
    DoEvents
    Else
    Exit Do
    End If
    CloseHandle hWrite
    Loop
    CloseHandle hRead
    End If
    End If
    End Sub

    Вопрос:

    В Excel 2000 при копировании листа
    Sheets("Name").Copy After:="NameA"
    где-то на 26-31-й копии возникает ошибка #1004 и лист не копируется. Что это за глюк? Как с ним бороться? Пока обхожу его так: в обработчике ошибки всавляю новый лист, переношу на него все данные, задаю нужные параметры печати. Но это требует НА ПОРЯДОК БОЛЬШЕ ВРЕМЕНИ!

    Ответ:

    Автор ответа: zhebelev

    Используй следующий метод: не Sheets("Name").Copy, а ActiveSheet.Copy

    str1 = ActiveSheet.Name + "_svod"
    ActiveSheet.Name = "proverka"
    ActiveSheet.Copy before:=Workbooks(WBN).Worksheets("START")
    ActiveSheet.Copy before:=Worksheets(Worksheets.Count)

    Вопрос:

    Как сделать, чтобы программа добавлялась в автозагрузку(не через меню "Автозагрузка", а в реестре)?

    Ответ:

    Автор ответа: Иван

    Для этого необходимо создать в разделе реестра HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run строковый параметр. В значении параметра установить путь программы.
    В модуле пишешь:

    Option Explicit
    Public Const REG_SZ As Long = 1
    Public Const REG_DWORD As Long = 4
    Public Const HKEY_LOCAL_MACHINE = &H80000002
    Public Const HKEY_CLASSES_ROOT = &H80000000
    Public Const HKEY_CURRENT_USER = &H80000001
    Public Const HKEY_USERS = &H80000003
    Public Const ERROR_NONE = 0
    Public Const ERROR_BADDB = 1
    Public Const ERROR_BADKEY = 2
    Public Const ERROR_CANTOPEN = 3
    Public Const ERROR_CANTREAD = 4
    Public Const ERROR_CANTWRITE = 5
    Public Const ERROR_OUTOFMEMORY = 6
    Public Const ERROR_INVALID_PARAMETER = 7
    Public Const ERROR_ACCESS_DENIED = 8
    Public Const ERROR_INVALID_PARAMETERS = 87
    Public Const ERROR_NO_MORE_ITEMS = 259
    Public Const KEY_ALL_ACCESS = &H3F
    Public Const REG_OPTION_NON_VOLATILE = 0
    Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
    Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByVal lpSecurityAttributes As Long, phkResult As Long, lpdwDisposition As Long) As Long
    Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
    Declare Function RegQueryValueExString Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, ByVal lpData As String, lpcbData As Long) As Long
    Declare Function RegQueryValueExLong Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Long, lpcbData As Long) As Long
    Declare Function RegQueryValueExNULL Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, ByVal lpData As Long, lpcbData As Long) As Long
    Declare Function RegSetValueExString Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpValue As String, ByVal cbData As Long) As Long
    Declare Function RegSetValueExLong Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpValue As Long, ByVal cbData As Long) As Long
    Declare Function RegDeleteKey& Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String)
    Declare Function RegDeleteValue& Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String)

    'Создание нового ключа (подключа)
    Public Function CreateNewKey(lPredefinedKey As Long, sNewKeyName As String)
    Dim hNewKey As Long
    Dim lRetVal As Long
    lRetVal = RegCreateKeyEx(lPredefinedKey, sNewKeyName, 0&, vbNullString, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0&, hNewKey,
    lRetVal)
    RegCloseKey (hNewKey)
    End Function

    'Запись данных в ключ
    Public Function SetKeyValue(lPredefinedKey As Long, sKeyName As String, sValueName As String, vValueSetting As Variant, lValueType As Long)
    Dim lRetVal As Long
    Dim hKey As Long
    lRetVal = RegOpenKeyEx(lPredefinedKey, sKeyName, 0, KEY_ALL_ACCESS, hKey)
    lRetVal = SetValueEx(hKey, sValueName, lValueType, vValueSetting)
    RegCloseKey (hKey)
    End Function
    Public Function SetValueEx(ByVal hKey As Long, sValueName As String, lType As Long, vValue As Variant) As Long
    Dim lValue As Long
    Dim sValue As String
    Select Case lType
    Case REG_SZ
    sValue = vValue
    SetValueEx = RegSetValueExString(hKey, sValueName, 0&, lType, sValue, Len(sValue))
    Case REG_DWORD
    lValue = vValue
    SetValueEx = RegSetValueExLong(hKey, sValueName, 0&, lType, lValue, 4)

    End Select
    End Function

    'Возвращает значения записанные в ключе
    Public Function QueryValue(lPredefinedKey As Long, sKeyName As String, sValueName As String)

    Dim lRetVal As Long
    Dim hKey As Long
    Dim vValue As Variant

    lRetVal = RegOpenKeyEx(lPredefinedKey, sKeyName, 0, KEY_ALL_ACCESS, hKey)
    lRetVal = QueryValueEx(hKey, sValueName, vValue)
    QueryValue = vValue
    RegCloseKey (hKey)
    End Function

    Function QueryValueEx(ByVal lhKey As Long, ByVal szValueName As String, vValue As Variant) As Long
    Dim a As Integer
    Dim cch As Long
    Dim lrc As Long
    Dim lType As Long
    Dim lValue As Long
    Dim sValue As String

    On Error GoTo QueryValueExError

    'Определение размера и типа считываемых данных
    lrc = RegQueryValueExNULL(lhKey, szValueName, 0&, lType, 0&, cch)
    If lrc <> ERROR_NONE Then a = 0

    Select Case lType
    'Для символьных
    Case REG_SZ:
    sValue = String(cch, 0)
    lrc = RegQueryValueExString(lhKey, szValueName, 0&, lType, sValue, cch)
    If lrc = ERROR_NONE Then
    vValue = Left$(sValue, cch)
    Else
    vValue = Empty
    End If

    'Для числовых
    Case REG_DWORD:
    lrc = RegQueryValueExLong(lhKey, szValueName, 0&, lType, lValue, cch)
    If lrc = ERROR_NONE Then vValue = lValue
    'Для остальных не поддержанных типов данных
    Case Else
    lrc = -1
    End Select

    QueryValueExExit:
    QueryValueEx = lrc
    Exit Function

    QueryValueExError:
    Resume QueryValueExExit
    End Function

    'Удаление значений ключа

    Public Function DeleteValue(lPredefinedKey As Long, sKeyName As String, sValueName As String)

    Dim lRetVal As Long
    Dim hKey As Long

    lRetVal = RegOpenKeyEx(lPredefinedKey, sKeyName, 0, KEY_ALL_ACCESS, hKey)
    lRetVal = RegDeleteValue(hKey, sValueName)
    RegCloseKey (hKey)
    End Function

    'Удаление ключа
    Public Function DeleteKey(lPredefinedKey As Long, sKeyName As String)
    Dim lRetVal As Long
    lRetVal = RegDeleteKey(lPredefinedKey, sKeyName)
    End Function

    В примере написан полный код работы с реестром, если необходимо только записать данные, то лишнее можно убрать.

    Применение:
    Private Sub Command1_Click()
    Dim path As String
    path = "Software\Microsoft\Windows\CurrentVersion\Run"
    CreateNewKey HKEY_LOCAL_MACHINE, path
    SetKeyValue HKEY_LOCAL_MACHINE, path, "Назавание программы", "здесь пишешь полный путь программы", REG_SZ
    End Sub

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 42.

VBNet
  • Библиотека кодов
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Наконец-то каникулы!!! Времени много свободного!
    Читайте!

    Содержание выпуска
    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Visual Basic 6. Мастер. Руководство для профессионалов

     Язык программирования Visual Basic - мощный инструмент разработки приложений для 32-разрядных систем Windows 95 и Windows NT. В книге рассматриваются как фундаментальные понятия и темы: от установки продукта на компьютер пользователя и описания интегрированной среды разработки до изложения основ техники программирования на Visual Basic, так и сложные вопросы, адресованные профессиональным программистам: создание интерфейса пользователя, применение стандартных элементов управления, в том числе и для работы с базами данных, программирование компонентов ActiveX, описание технологии OLE drag-and-drop, объектная модель FSO, функции работы с файлами, отладка и оптимизация программ, локализация и распространение готовых приложений.

    Автор: нет даных
    Издательсвто: нет данных
    Год издания: 1998
    Кол-во страниц: 992
    Стоимость: 112,48 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Visual Basic 6. Специальный справочник

     Главная цель этого справочника - научить читателя использовать инструменты и средства Visual Basic, позволяющие значительно облегчить и ускорить процесс создания приложений. Здесь вы найдете описание элементов языка, библиотечных функций и SQL-операторов. Особое внимание уделено различным мастерам, предназначенным для решения стандартных задач. Весь справочный материал в книге разбит на главы, в каждой из которых вы найдете информацию по созданию приложения определенной направленности. Разделы в главе содержат пошаговое описание операций, которые нужно выполнить для решения поставленной задачи, синтаксис необходимых операторов, а также подробно разобранные примеры. Предлагаемый справочник будет полезен не только пользователям, активно работающим с Visual Basic 6, но и начинающим программистам, желающим перейти к профессиональной разработке приложений с наименьшими затратами времени на изучение новой среды программирования.

    Автор: Б. Карпов
    Издательсвто: Питер
    Год издания: 2000
    Кол-во страниц: 416
    Стоимость: 70,78 р.
    Формат: 84х108/32
    Переплёт: нет данных

    Visual Basic 6.0 for application

     Книга является систематизированным справочником по всем элементам языка программирования Visual Basic (VB), входящим, как в автономную версию VB, так и в основные реализации Visual Basic for Applications.
    Помимо тех официальных сведений, которые можно найти в документации и в справочной системе, книга содержит конкретные примеры, рекомендации и маленькие хитрости программиста, а также поправки к справочной системе, которая, увы, не без ошибок.
    Книга предназначена для всех специалистов, занимающихся разработкой приложений с применением Visual Basic и Visual Basic for Applications.

    Автор: Король В.И.
    Издательсвто: КУДИЦ-Образ
    Год издания: 2000
    Кол-во страниц: 448
    Стоимость: 113,87 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Win32 API и Visual Basic. / Для профессионалов /

     Книга является сборником полезных советов и приемов, хотя в ней, вероятно, описаны тысячи разных приемов. Она не была задумана как энциклопедия самостоятельных фрагментов программного кода, которые бездумно подключаются к приложению - хотя многие ее примеры можно использовать подобным образом.

    Автор: Д. Эпплман
    Издательсвто: Питер
    Год издания: 2001
    Кол-во страниц: 1120
    Стоимость: 489,08 р.
    Формат: нет данных
    Переплёт: нет данных

    Азбука программирования в Windows 32 API

     Изложены вопросы создания программных приложений для Window95 и Windows NT. Описаны основные типы переменных, макросов, функций. Материал книги иллюстрируется многочисленными примерами. 1 Настоящее издание (второе вышло в 2000 г.) дополнено описанием тех возможностей Windows, которые не были упомянуты в предыдущих изданиях.

    Автор: Румянцев П.В.
    Издательсвто: Радио и связь
    Год издания: 2001
    Кол-во страниц: 312
    Стоимость: 85 р.
    Формат: 60х88/16
    Переплёт: нет данных

    Использование Visual Basic 6. Специальное издание

     В книге описана новая версия популярной системы программирования Visual Basic 6. Изложение материала построено по принципу "от простого к сложному". Первые главы этой книги адресованы новичкам, из которых они смогут почерпнуть основы языка Visual Basic и описание его стандартных компонентов. Для подготовленных пользователей будет интересен раздел, посвященный специальным методам программирования с использованием стандартных компонентов Windows, элементов управления ActiveX, ADO. RDO и др. В отдельную часть вынесены вопросы, связанные с разработкой приложений баз данных на Visual Basic и работе в Internet. Автор не обошел также вниманием различные версии языка Visual Basic - VBA и VBScript. В приложениях приведен обзор интегрированной среды разработки Visual Basic, а также краткий справочник по SQL.
    Книга рассчитана на широкий круг читателей.

    Автор: Сайлер Б., Споттс Дж.
    Издательсвто: Вильямс
    Год издания: 1999
    Кол-во страниц: 832
    Стоимость: 244,02 р.
    Формат: 70х100/16
    Переплёт: твёрдый

    Обработка баз данных на Visual Basic 6 + CD

     Сердцем многих приложении, работающих в сфере бизнеса, являются базы данных. Своим широким распространением они обязаны возможности централизованного доступа к информации. который характеризуется последовательностью, эффективностью и относительной простотой создания и поддержки. В книге "Обработка баз данных на Visual Basic 6" описываются все технологии доступа к базам данных с помощью Visual Basic. Приведенные в этой книге примеры взяты из реальной жизни, поэтому, ознакомившись с ними, вы узнаете, как можно использовать базы данных для принятия решений в сфере бизнеса. Если вы еще не готовы перейти к версии Visual Basic 6, это вовсе не значит, что данная книга вам не подходит. Практически 95% материала этой книги удовлетворит в равной степени пользователей как пятой, так и шестой версий Visual Basic.
    Книга рассчитана на программистов средней и высокой квалификации.

    Автор: Мак-Манус Дж.П.
    Издательсвто: Вильямс
    Год издания: 1999
    Кол-во страниц: 672
    Стоимость: 294,66 р.
    Формат: 70х100/16
    Переплёт: твёрдый

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 23.03.2002 15:18 | Раздел: Примеры кода | Автор: Неизвестный автор

    MailChecker - Продолжаем публикацию примеров по работе с Winsock компонентом. На этот раз пример демонстрирует возможность проверки почты в Вашем почтовом ящике. А потом можно и свою почтовую программу написать! И зачем нам Outlook?

    Дата: 23.03.2002 13:19 | Раздел: Примеры кода | Автор: Неизвестный автор

    MailSender - Продолжаем публикацию примеров по работе с Winsock компонентом. Пример может посылать почтовые сообщения. Все очень просто и понятно.

    Дата: 21.03.2002 05:13 | Раздел: ActiveX контролы | Автор: Вадим Андриян

    SetCapsMode - Как сделать так, чтобы в текстовае окно можно было ввести только заглавный буквы? А как, чтобы только прописные? Не знаете, тогда посмотрите этот пример, в котором можно это все сделать

    Дата: 20.03.2002 05:22 | Раздел: Примеры кода | Автор: ВлаДимир

    AgentVB - Ms Agent один из наиболее интересных нововведений Microsoft за последнее время. Эти забавные персонажи умеют разговаривать, могут понимать речь (пока только английскую), они имеют много интересной и забавной анимации. Если Вы хотите научиться работать с этим компонентом, то посмотрите этот пример.

    Дата: 19.03.2002 14:11 | Раздел: Примеры кода | Автор: Беляев Данила

    MP3 Tags - Многие спрашивают как отредактировать ID3v1 запись в файле MP3. Вот Данила взял и написал специальный редактор тэгов. Пока только для версии 1. Кстати, все до гениальности просто и понятно. Пара функций API для чтения определенной области файла, хорошие мозги, кофе и всего одна ночь ;-)

    Дата: 19.03.2002 07:22 | Раздел: ActiveX контролы | Автор: Неизвестный автор

    TaSplit - Сплиттер - это такой разделитель окна - берешь за него и тащишь. И при этом размеры соседних окошечек изменяются соответственно ... Нужен? Тогда этот контрол специально для Вас.

    Дата: 18.03.2002 07:51 | Раздел: Примеры кода | Автор: Гриневич Дмитрий

    FileProperties - Если Вам в своей программе необходимо предоставить пользователю стандартное окно свойств файла, то только в этом примере Вы сможете понять как это можно сделать.

    Дата: 18.03.2002 05:17 | Раздел: Примеры кода | Автор: Вадим Андриян

    WinsockControl - Как работать с компонентом Winsock? Здесь реализованы основные возможности этого замечательного компонента Visual Basic. Вы сможете подключиться к серверу, посылать ему команды и смотреть что при этом происходит ;-)

    Последние 20 тем форума на VBNet.Ru:

    09:35 / 24 мар. ещё один глюк... | Ответов: 1
    05:23 / 24 мар. Как избежать повторной компилляции | Ответов: 1
    21:49 / 23 мар. глюки... | Ответов: 1
    15:31 / 23 мар. zapusk ishodnikov s neta | Ответов: 1
    09:27 / 23 мар. Error: Logon session doesn't exist | Ответов: 0
    03:21 / 23 мар. Перекодировка текста WIN/DOS | Ответов: 1
    03:03 / 23 мар. эй тут есть крутые или нет? | Ответов: 1
    22:33 / 22 мар. Как минимизировать любое окно проги (игры)???? | Ответов: 1
    20:59 / 22 мар. Outlook отправка почты | Ответов: 1
    17:59 / 22 мар. Сортировка таблицы в базе данных | Ответов: 1
    19:58 / 21 мар. Печать рисунка | Ответов: 1
    14:32 / 21 мар. Точка и восклицательный знак | Ответов: 1
    13:44 / 21 мар. Запуск Access'a из VB без лого !!! | Ответов: 1
    12:50 / 21 мар. Доступ к ресурсам ЛВС с пом. FileSystemObject | Ответов: 0
    12:31 / 21 мар. Ну кто нибудь знает ???????????????????? | Ответов: 1
    02:50 / 21 мар. при проигрывание звука все отстанавливается ! | Ответов: 1
    18:54 / 20 мар. Массив Элементов... | Ответов: 1
    18:11 / 20 мар. Split | Ответов: 1
    11:42 / 20 мар. Помогите!!! | Ответов: 1
    08:14 / 20 мар. Вопрос по DBF | Ответов: 0

    Последние поступления в Библиотеку кодов:

    Нет новых кодов.

    наверх

    Новости сайта VBMania

    • 25.01 - Сегодня открылся новый раздел, в котором вы можете найти ссылки на целую кучу книг по тематике VB и около него.
    • 22.01 - 22 января вышел второй номер он-лайн журнала о Visual Basic 'VB Мания'. В нем можно почитать авторские статьи в уже устоявшихся разделах: Технологии, Система, Графика, Профессия, Человечество и Юмор. Так же не обошлось без новшеств: появился новый раздел dotNET и особенно рецензии ActiveX-компонентов. Обязательно заходите.
    • 17.12 - В связи с тем что форум не горел желаением вести себя так, как должен обычный, порядочный форум, мы его прикрыли для проведения разъяснительных мероприятий. Надеемся, что они не затянутся и форум образумится.
    • 06.12 - С сегодняшнего дня все желающие могут добавлять свои новости и статьи в наши архивы.
      Да здраствует открытость!
    • 27.11 - Наконец-то, после долгих дней и бессонных ночей это свершилось! Сайт объявляется открытым! Непременно прочитайте первый номер нашего журнала. Оцените наши дополнительные проекты. И конечно мы ждем ваших откликов в гостевой книге и по почте.
    • 01.12 - Произошло несколько косметических улучшений, касающихся исключительно удобства работы с сайтом. Во-первых, можно видеть количество записей обсуждения новостей на главной странице; а во-вторых чуточку подправились директории.
      Оценяйте!

    наверх

    Новости сайта Азбука VB

    • 19 февраля 2001 года
      Интервью с Арменом Мнацаканяном.
      Как определить, является ли символ буквой или цифрой? Когда нужно убедиться, что данный символ — буква (а не цифра, знак препинания, специальный символ и т.д.), то первое, что приходит в голову, — проверить, попадает ли он в диапазон A-Z или a-z. Это ошибочно по двум причинам.
      Как сделать, что бы Photoshop понимал русские буквы.
      Как сделать ссылку в RichEdit'е. Спасибо Арташесу за пример MousinRTF, благодаря этому примеру я написал свой, очень интересный пример - наводишь на ссылку в RichEdit'е а курсор меняется на руку(как в IE), ну и попутно - как отградить вставку в RichEdit всякого мусора(картинки, html, rtf), кроме нормального текста.
      Создание отсоединенного набора записей используя объкт АДО. На примере показано, как создать отсоединенный набор данных, произвести изменения и вновь подключить его.
    • 10 января 2001 года
      Интересный пример создания popMenu используя API функции CreatePopupMenu, AppendMenu, DestroyMenu, TrackPopupMenu и GetCursorPos.
      Пример показывает, как можно отлавливать события при нажатии на кнопках в заголовке формы. В примере использовались API функции - CallWindowProc и SetWindowLong.

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Roman 'Devil' Yuakovlev

    Ответ ожидается по этому адресу

    Дайте плиз полную декларацию GetDiskFreeSpaceEx с флажками, константами etc... Тяжело жить без msdn... Btw, в apitextviewer упоминается large_integer... что это, Double?

    Автор вопроса: Deull

    Ответ ожидается по этому адресу

    Как сохранить графические данные в буфере обмена в BMP - файл?

    Автор вопроса: Владимир Капустин

    Ответ ожидается по этому адресу

    Как связать файл с программой и присвоить ему значок через реестр или любым другим способом (без прописки в WIN.INI).

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Три вопроса о манипуляторах.
    1. Можно ли манипулировать джойсиком с помощью клавиатуры.
    2. Если не джойсика можно его с эмитировать.
    3. Можно ли соядать две мыши одна на COM1 управляется клавеатурой другая на COM2 управляется самой мышью

    Автор вопроса: Миша

    Ответ ожидается по этому адресу

    Вопрос свяяан с Excel. Как сделать что бы события реагировали на скролинг страницы. т.е. Сдвинул скролинг проияошло событие

    Автор вопроса: Роман

    Ответ ожидается по этому адресу

    1) Как в ListBox вставить содержимое базы данных, не набирая его вручную.
    2) Можно ли работать с базами данных не используя элемент Data.

    Автор вопроса: P@Ssword

    Ответ ожидается по этому адресу

    Как перехватывать обращения к файлам (как антивирусные мониторы) и в случае чего блокировать к ним доступ?

    Автор вопроса: Samit

    Ответ ожидается по этому адресу

    Visual Basic 6.0 как нибудь может общаться с портами LPT или COM, если да, то как? И как сделать так, чтобы я нажимал выключатель и запускался ну например таймер? Пожалуюста укажите Web-страницы, где об этом можно прочитать!

    Автор вопроса: Андрей Тюрин

    Ответ ожидается по этому адресу

    Как на Ваське работать с портами, принимать и отправлять информацию, в каком она формате. Интересуют КОМ-порты.

    Автор вопроса: Alex

    Ответ ожидается по этому адресу

    Как передать данные запроса на удаленное устройство после получения от модема сообщения "CONNECT ..."?

    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

    Как зделать установачный пакет (что бы моя программа заносилось в список "Установка и удоления программ")

    Автор вопроса: Вячеслав

    Ответ ожидается по этому адресу

    Как можно програмно на VB, в Access найти и заменить в полях букву на другую, по всей базе?

    Автор вопроса: Юрий

    Ответ ожидается по этому адресу

    Доброго времени суток! У меня следующий вопрос. Для вывода данных в виде таблицы испольяуется MSFlexGrid control. Для редактирования данных испольяуются EditBox и ComboBox с соответствующими обработчиками. Для редактирования данных по двойному клику на ячейке нужный элемент управления вписывается в нее и делается видимым (Visible = True). Все работает нормально, но время от времени элементы управления перестают выводиться на экран, несмотря на то, что Visible у них равен True. Если при это нажать Alt+[курсор вния], но у невидимого ComboBox'а выпадающий список появляется на экране. Кроме того, после редактирования данные ия невидимых элементов управления яаносятся в таблицу нормально. Как победить эту проблему? Испольяуется VB 6, SP 5.

    Автор вопроса: AIT

    Ответ ожидается по этому адресу

    Подскажите как сделать стикеры ("липкие листочки" на рабочем столе)? И чтобы была возможность делать настройки к ним (изменять цвет, размер фона, шрифта и т.д.).

    Автор вопроса: Владимир

    Ответ ожидается по этому адресу

    Сделал программу расч?та таблицы. При печати таблицы пришлось программировать черчение сетки для страниц командой Line. Почему-то во время отправки страниц на печать не работает простой цикл
    For a=1 to 2.
    Выдается яначение а=0. On Error не действует.
    Можно ли напечатать таблицу ия VB6 каким нибудь другим способом?

    Автор вопроса: RIO

    Ответ ожидается по этому адресу

    Как программно узнать значение поля типа "счетчик" в MDB. Примеры типа 'MoveLast' или Запрос 'Max' не подходят, т. к. последняя или последние несколько записей могут удалены пользователем а значение счетчика будет увеличено, сжатие тоже не выгодно быза очень большая и при добавлении новой записи выполняется достаточно долго, что ни есть хорошо для пользователя.

    Ответы:

    Вопрос:

    В VB пытаюсь сделать текстовый редактор. Посоветуйте, как сделать, чтобы по нажатии на кнопку BOLD(жирный), жирным становился не весь текст, а только выделенный. Я написал так:

    Case "Bold"
    With txtBox
    If .FontBold = True Then
    .FontBold = False
    Else
    .FontBold = True
    End If
    End With

    Ответ:

    Автор ответа: Rutshtein Alex

    Чтобы сделать часть текста как Bold нужно использовать компонент Microsoft Rich Textbox Control. Это такое же текстовое поле, но можно для любой части текста менять свойства.

    Вопрос:

    В VB пытаюсь сделать текстовый редактор. Посоветуйте, как сделать, чтобы по нажатии на кнопку BOLD(жирный), жирным становился не весь текст, а только выделенный. Я написал так:

    Case "Bold"
    With txtBox
    If .FontBold = True Then
    .FontBold = False
    Else
    .FontBold = True
    End If
    End With

    Ответ:

    Автор ответа: Игорь

    Для того, чтобы сделать текстовый редактор, нужно использовать элемент RichTextBox, здесь можно выделять текст и полужирным, и каким хочешь. А в обычном TextBox, изменение шрифта распространяется на весь текст. Могу быть соавтором. Обращайся если что igoryk@yandex.ru

    Вопрос:

    В VB пытаюсь сделать текстовый редактор. Посоветуйте, как сделать, чтобы по нажатии на кнопку BOLD(жирный), жирным становился не весь текст, а только выделенный. Я написал так:

    Case "Bold"
    With txtBox
    If .FontBold = True Then
    .FontBold = False
    Else
    .FontBold = True
    End If
    End With

    Ответ:

    Автор ответа: Roman 'Devil' Yuakovlev

    Использовать richtextbox и sel*

    Вопрос:

    На каких платформах работают программы написанные на VB6?

    Ответ:

    Автор ответа: Иван

    Точно работают на Win9x,Me. Но необходимо, чтобы рядом были все используемые библиотеки. В WindowsXP стандартные библиотеки не требуется.

    Вопрос:

    Как перекодировать ия какой либо кодировки в другую при помощи VB. (Только не Win в Дос)

    Ответ:

    Автор ответа: NeoLord

    Function Recode(Char As String, Src As Code, Dest As Code) As String
    'Rem Великолепная функция перекодирования, взятая мной с сайта
    'http://www.vbrussian.com'
    Const wDos As String =
    "°±ІЁґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧрЩЪЫЬЭЮЯтуфхцчшщсыьэюяШъЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬®Їабвгдежзийклмноп"
    Const wIso As String =
    "°±ІЁґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧўЩЪЫЬЭЮЯтуфхцчшщсыьэюяШъ°±ІЁґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп"
    Const wKoi As String =
    "ђ‘’Ѓ‡Іґ§¦µЎЁ®¬ѓ„‰€†ЂЉЇ°«Ґ»ё± ѕ№є¶·Є©ў¤ЅЁ…‚ЌЊЋЏ‹™“›џ—њћЈ–љќ”їј•бвчздецъйклмнопртуфхжигюыэящшьасБВЧЗДЕЦЪЙКЛМНОПРТУФХЖИГЮЫЭЯЩШЬАС"
    Const wWin As String =
    "ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬®Ї°±ІЁґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"
    Const NotRecodedChar As String = "?"

    If Src = Dest Then
    Recode = Char
    Exit Function
    End If

    Dim t As String, i As Long, tt As String, a As Long, ss As String, ch As String
    If Src = Win Then
    t = Char
    Else
    Select Case Src
    Case Koi: ss = wKoi
    Case Dos: ss = wDos
    Case Iso: ss = wIso
    End Select
    For i = 1 To Len(Char)
    ch = Mid(Char, i, 1)
    If Asc(ch) < 128 Then
    t = t & ch
    Else
    a = InStr(1, ss, ch, vbBinaryCompare)
    If a = 0 Then
    t = t & NotRecodedChar
    Else
    t = t & Mid$(wWin, a, 1)
    End If
    End If
    Next i
    End If

    If Dest = Win Then
    Recode = t
    Else
    Select Case Dest
    Case Koi: ss = wKoi
    Case Dos: ss = wDos
    Case Iso: ss = wIso
    End Select
    For i = 1 To Len(Char)
    ch = Mid(t, i, 1)
    If Asc(ch) < 128 Then
    tt = tt & ch
    Else
    a = InStr(1, wWin, ch, vbBinaryCompare)
    If a = 0 Then
    tt = tt & NotRecodedChar
    Else
    tt = tt & Mid$(ss, a, 1)
    End If
    End If
    Next i
    Recode = tt
    End If
    End Function

    Вопрос:

    Можно ли удалить файл так что бы его нельяя было востановить даже unerase или undelete.

    Ответ:

    Автор ответа: Rutshtein Alex

    'Вот как удалить файл без возможности восстановления

    Option Explicit

    Private Declare Function lcreat Lib "kernel32" Alias "_lcreat" (ByVal lpPathName As String, ByVal iAttribute As Long) As Long
    Private Declare Function lopen Lib "kernel32" Alias "_lopen" (ByVal lpPathName As String, ByVal iReadWrite As Long) As Long
    Private Declare Function lclose Lib "kernel32" Alias "_lclose" (ByVal hFile As Long) As Long
    Private Declare Function lwrite Lib "kernel32" Alias "_lwrite" (ByVal hFile As Long, ByVal lpBuffer As String, ByVal wBytes As Long) As Long
    Private Declare Function lread Lib "kernel32" Alias "_lread" (ByVal hFile As Long, lpBuffer As Any, ByVal wBytes As Long) As Long
    Private Declare Function llseek Lib "kernel32" Alias "_llseek" (ByVal hFile As Long, ByVal lOffset As Long, ByVal iOrigin As Long) As Long

    Private Sub Form_Load()

    Const BlockSize = 98304
    Dim S As String
    Dim F As String
    Dim F1 As String
    Dim F2 As String
    Dim i As Long
    Dim i1 As Long
    Dim i2 As Long
    Dim N As Integer
    Dim CurSize As Long
    Dim FAttr As Integer

    F = "C:\1.txt" 'ИМЯ ФАЙЛА
    CurSize = FileLen(F)
    i1 = CurSize \ BlockSize
    i2 = CurSize - i1 * BlockSize
    FAttr = GetAttr(F)
    SetAttr F, vbNormal
    N = lopen(F, 2)
    For i = 1 To i1 + 1
    DoEvents
    If i = i1 + 1 Then
    lwrite N, S, i2
    Else
    lwrite N, S, BlockSize
    End If
    Next
    lclose N
    N = lopen(F, 2)
    lwrite N, "", 0
    lclose N
    SetAttr F, FAttr
    Kill F
    End Sub

    Вопрос:

    Можно ли удалить файл так что бы его нельяя было востановить даже unerase или undelete.

    Ответ:

    Автор ответа: P@Ssword

    Забиваешь файл разной фигнёй и затем просто удаляешь.

    Вопрос:

    Можно ли удалить файл так что бы его нельяя было востановить даже unerase или undelete.

    Ответ:

    Автор ответа: Roman 'Devil' Yuakovlev

    Открыть бинарно, забить нулями, потом удалить...

    Вопрос:

    Как мне «воткнуть» файл в программу (музыкальный) чтобы от туда же его использовать…или воспроизводить его в нужный момент, но путь целиком не указывать (на случай если папку с прогой переместят)… + как заставить объект типа Picture по нажатии кнопки влево, двигаться влево, и т.д…прошу написать поподробнее…+как при определенном условии создавать объект (Picture), а при ненадобности его удалять (советы с visible не присылать, таких объектов за раз может быть много, а код компактен должен быть)…+как откомпилять EXEшник, чтоб он потом не требовал библиотек (VB6)

    Ответ:

    Автор ответа: Tolic

    Поставь на форму эл. Picture, а в модуль формы вставь этот кусок кода.

    Private Sub Picture1_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyUp Then Picture1.Top = Picture1.Top - 50
    If KeyCode = vbKeyDown Then Picture1.Top = Picture1.Top + 50
    If KeyCode = vbKeyLeft Then Picture1.Left = Picture1.Left - 50
    If KeyCode = vbKeyRight Then Picture1.Left = Picture1.Left + 50
    End Sub

    Вопрос:

    Как мне «воткнуть» файл в программу (музыкальный) чтобы от туда же его использовать…или воспроизводить его в нужный момент, но путь целиком не указывать (на случай если папку с прогой переместят)… + как заставить объект типа Picture по нажатии кнопки влево, двигаться влево, и т.д…прошу написать поподробнее…+как при определенном условии создавать объект (Picture), а при ненадобности его удалять (советы с visible не присылать, таких объектов за раз может быть много, а код компактен должен быть)…+как откомпилять EXEшник, чтоб он потом не требовал библиотек (VB6)

    Ответ:

    Автор ответа: Ревягин_Алексей

    Сделай на форме OLE-объект, не создавай в нём объект, потом через Explorer выдели свой файл, нажми "копировать в буфер", потом иди в окно VBasic'a там правой кнопкой мыши нажми по OLE-объекту и выбери "Paste Special". А потом впиши в нопку, при нажатии на которую будет играть музыка, в этот код:
    ole1.doverb
    таким образом этот файл будет сохранён в самом ЕХЕ-шнике.

    Чтобы объект двигался в лево на определённое расстояние при нажатии на кнопку; нужно вписать код:

    button1.left=button1.left + 10

    теперь при каждом нажатии на кнопку button1 обект будет сдвигаться влево на 10 у.е. (еденицы измерения указываются в Properties->ScaleMode)

    Создай на форме Picture-объект, потом укажи в Properties->index равный 0.
    КоД:

    Private sub LoadObject_click()
    load picture1(1)
    picture1(1).show
    end sub
    Private sub UnloadObject_click()
    unload picture1(1)
    end sub

    Вопрос:

    Как мне «воткнуть» файл в программу (музыкальный) чтобы от туда же его использовать…или воспроизводить его в нужный момент, но путь целиком не указывать (на случай если папку с прогой переместят)… + как заставить объект типа Picture по нажатии кнопки влево, двигаться влево, и т.д…прошу написать поподробнее…+как при определенном условии создавать объект (Picture), а при ненадобности его удалять (советы с visible не присылать, таких объектов за раз может быть много, а код компактен должен быть)…+как откомпилять EXEшник, чтоб он потом не требовал библиотек (VB6)

    Ответ:

    Автор ответа: Rutshtein Alex

    Не указывать путь можно так:

    MusicFile = App.Path + "\Music.wav"

    где App.Path - путь к папке с программой.

    Например, если прога в папке C:\SuperMusic, то переменная MusicFile будет равна C:\SuperMusic\Music.wav

    Насчет двигать Picture1, то

    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    Select Case KeyCode
    Case vbKeyLeft
    Picture1.Left = Picture1.Left - 50
    Case vbKeyRight
    Picture1.Left = Picture1.Left + 50
    Case vbKeyUp
    Picture1.Top = Picture1.Top - 50
    Case vbKeyDown
    Picture1.Top = Picture1.Top + 50
    End Select
    End Sub

    Не забудь указать в свойствах формы: KeyPreview = True

    Создать клон объекта можно при помощи функции Load, а выгружать объект при помощи Unload. В параметре указываешь имя объекта. Объект должен иметь св-во Index=0 или 1 или... Создается объект с тем же именем и теми же св-ми но с другим индексом. Выгружается объект по индексу.

    Никак не откомпилить, чтобы он не требовал msvbvm60.dll. Программируй в Delphi, том такой проблемы нет.

    Вопрос:

    Как мне «воткнуть» файл в программу (музыкальный) чтобы от туда же его использовать…или воспроизводить его в нужный момент, но путь целиком не указывать (на случай если папку с прогой переместят)… + как заставить объект типа Picture по нажатии кнопки влево, двигаться влево, и т.д…прошу написать поподробнее…+как при определенном условии создавать объект (Picture), а при ненадобности его удалять (советы с visible не присылать, таких объектов за раз может быть много, а код компактен должен быть)…+как откомпилять EXEшник, чтоб он потом не требовал библиотек (VB6)

    Ответ:

    Автор ответа: P@Ssword

    1) "Воткнуть"
    VB Resource Editor
    2) Воспроизводить
    Функция WinAPI sndPlaySound
    3) ... Picture по нажатии кнопки ... двигаться ...
    Сабклассинг, больше возможностей не вижу (пока что ;)
    4) ... создавать объект, а при ненадобности его удалять ...
    Либо коллекция объектов, либо ниже вопрос ComputerDestroyer'а о создании контролов, там мой ответ
    Что значит "а код компактен должен быть"?
    5) откомпилять EXEшник, чтоб он потом не требовал
    Программы PEBundle, Fusion (кажется так). Если напишешь на Е-Мыло, могу скинуть (244 Кб RAR)

    Вопрос:

    Народ, отзовитесь, кто работал гокда-нибудь с диаграммой Excel. Мне нужно внести в нее исходные данные для построения графика, но не вручную, а программно. Но какие свойства и методы надо использовать я не знаю.

    Ответ:

    Автор ответа: helaldmin

    В MS Excel включи запись макросов и построй диаграмму. После этого код макроса почитай. Там будет все необходимое.

    Вопрос:

    Работа с базой данных.

    Расклад такой:
    Таблица - "А"
    Поля - "Дата Продажи"
    "Наименование Товара"
    "Стоимость"
    Как должен выглядеть SQL запрос чтобы вывести данные о количестве записей из поля"Наименование Товара",общей суммы из поля"Стоимость" на конкретную дату"Дата Продажи" из таблицы"А". Причём должна быть возможность делать выборку на дату задаваемую пользователем,в отдельном Text.Box. Пример: 17.03.02 было проданно 15 наименований товара на сумму 1500 рублей.

    "VB 6.0" ,база данных "ACCESS" , контрол "DATA"

    Ответ:

    Автор ответа: Linas

    mySQL="SELECT A.[Дата Продажи], COUNT(A.[Наименование Товара]), SUM(A.[Стоимость]) FROM A WHERE A.[Дата Продажи]=#" + TextBox.Text + "# GROUP BY A.[Дата Продажи]"
    Set data.recordset = myDB.openrecordset(mySQL)

    esli izpolzuetsia data.databasename

    data.recordsource = mySQL
    data.refresh

    Вопрос:

    Работа с базой данных.

    Расклад такой:
    Таблица - "А"
    Поля - "Дата Продажи"
    "Наименование Товара"
    "Стоимость"
    Как должен выглядеть SQL запрос чтобы вывести данные о количестве записей из поля"Наименование Товара",общей суммы из поля"Стоимость" на конкретную дату"Дата Продажи" из таблицы"А". Причём должна быть возможность делать выборку на дату задаваемую пользователем,в отдельном Text.Box. Пример: 17.03.02 было проданно 15 наименований товара на сумму 1500 рублей.

    "VB 6.0" ,база данных "ACCESS" , контрол "DATA"

    Ответ:

    Автор ответа: Игорь Кузенков

    Private Sub Command1_Click()
    Data1.DatabaseName = App.Path & "\db4.mdb"
    Data1.RecordSource = "SELECT Дата, Count(Наименование) AS Count, Sum(Стоимость) AS Sum FROM А GROUP BY Дата HAVING Дата=#" & txtDate & "#;"
    Data1.Refresh
    Label1.Caption = Data1.Recordset.Fields(0) & " было продано " & Data1.Recordset.Fields(1) & " наименования товара на сумму " & Data1.Recordset.Fields(2) & " рублей."
    End Sub

    Может возникнуть проблема с форматом даты для SQL запроса, но для этого есть ф-ция Format().

    Вопрос:

    Работа с базой данных.

    Расклад такой:
    Таблица - "А"
    Поля - "Дата Продажи"
    "Наименование Товара"
    "Стоимость"
    Как должен выглядеть SQL запрос чтобы вывести данные о количестве записей из поля"Наименование Товара",общей суммы из поля"Стоимость" на конкретную дату"Дата Продажи" из таблицы"А". Причём должна быть возможность делать выборку на дату задаваемую пользователем,в отдельном Text.Box. Пример: 17.03.02 было проданно 15 наименований товара на сумму 1500 рублей.

    "VB 6.0" ,база данных "ACCESS" , контрол "DATA"

    Ответ:

    Автор ответа: Sergey

    Скорее всего это должно выглядеть так:
    SELECT [Дата Продажи],Count([Наименование Товара]), Sum([Стоимость]) FROM A WHERE [Дата Продажи]='17/03/2002'

    Вопрос:

    Кто знает, как програмно создать кнопку али др. элемент упраления ?

    Ответ:

    Автор ответа: Rutshtein Alex

    Создать клон (копию) можно при помощи функции Load. Выгрузить при помощи Unload. Объект должен быть с индексом.

    Вопрос:

    Кто знает, как програмно создать кнопку али др. элемент упраления ?

    Ответ:

    Автор ответа: P@Ssword

    В General Declarations пишется что-то вроде
    Dim MyCoolSuperPuperControlКоторыйВзялсяИзниоткуда As КлассКонтрола

    А в сабе, где надо создать контрол, пишем
    Set MyCoolSuperPuperControlКоторыйВзялсяИзниоткуда = ИмяФормыКудаДобавляем.Controls.Add ("ПолноеНазваниеКлассаКонтролаКоторыйХотимСоздать", "БудущееИмяКонтрола")

    Контрол создан! Теперь осталось переместить его куда надо и сделать ему... нет, не больно, а
    MyCoolSuperPuperControlКоторыйВзялсяИзниоткуда.Visible = True.

    Вопрос:

    Кто знает, как програмно создать кнопку али др. элемент упраления ?

    Ответ:

    Автор ответа: Ревягин_Алексей

    Укажи в элементе управления свойство INDEX=0, а потом пиши код:
    private sub button1_click()
    load ЭЛЕМЕНТ_УПРАВЛЕНИЯ(1)
    ЭЛЕМЕНТ_УПРАВЛЕНИЯ(1).show
    end sub

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 43.

VBNet
  • Библиотека кодов
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    У меня сегодня день рождения. Сумел всё-таки сделать этот выпуск. Сейчас пойду с друзьями отмечать.
    Читайте!

    Содержание выпуска
    • Книги

    • Выравнивание меню направо/налево
    • Переключение между пунктами подменю
    • Добавить 3D-Line под Меню
    • Изменить цвет фона меню
    • Динамическое создание PopupMenu
    • Положить разделить в меню

    • Вопрос/Ответ

    Книги

    ADO и Visual Basic. Руководство разработчика

     В книге описано использование технологии доступа к данным (ADO) с помощью основного инструмента разработки приложений Microsoft - Visual Basic 6.0. Из книги вы узнаете, как можно исследовать источники данных при помощи окна Data View, как создавать формы для ввода и запроса данных, используя связанные элементы управления, и подсоединяться к источникам данных со сложной иерархической структурой средствами Data Environment. Далее вы изучите, как можно, используя Data Report, представлять информацию в форме, подходящей для печати, или как следует исполнять некоторые, наиболее широко распространенные задачи, связанные с обработкой данных, используя ADO внутри кода Visual Basic. В последних главах книги рассмотрены дополнительные операции, используемые в коде, в том числе формирование данных, для создания иерархических наборов записей, применение ADO в сети Internet и даже создание собственных источников данных. Чтобы более полно использовать средства ADO для извлечения информации из различных источников, в приложении к книге вы найдете справочник по языку SQL, в котором обсуждаются основы работы с оператором SQL SELECT.

    Автор: Гандерлой М.
    Издательсвто: Энтроп, Век
    Год издания: 2001
    Кол-во страниц: 336
    Стоимость: 177 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Excel, VBA, Internet в экономике и финансах

     Книга является руководством по использованию Microsoft Excel, разработке офисных бизнес-приложений средствами VBA и конструированию Web-страниц на базе DHTML и VBScript. Рассматриваются приемы создания отчетной финансовой и экономической документации средствами MS Excel, способы анализа и обработки собранной информации для принятия на ее основе оптимального решения; даются ответы на вопросы, которые возникают у программиста при разработке автоматизированных и интегрированных систем с помощью VBA; описываются особенности конструирования пользовательских элементов управления ActiveX, а также написания Windows-сценариев. Большое внимание уделено принципам создания интерактивных Web-страниц, виртуальных каталогов и магазинов. Книга содержит уникальную коллекцию типичных примеров. Почти каждая глава заканчивается списком упражнений, способствующих закреплению материала

    Автор: Гарнаев А
    Издательсвто: BHV - Санкт - Петербург
    Год издания: 2001
    Кол-во страниц: 816
    Стоимость: 230 р.
    Формат: 70х100/16
    Переплёт: мягкий

    MCSD. Сертификационный экзамен 70-175. Разработка распределенных приложений на Visual Basic 6.0. Учебный курс (+ CD-ROM)

     Настоящий учебный курс рекомендован корпорацией Microsoft как официальное пособие для подготовки к экзамену 70-175 «Designing and Implementing Distributed Applications with Microsoft Visual Basic 6.0» по программе сертификации разработчиков программных решений на основе продуктов Microsoft (Microsoft Certified Solutions Developer, MCSD). Эта книга познакомит Вас с основными понятиями, концепциями и методами, необходимыми для разработок распределенных программных решений на базе Visual Basic 6.0.

    Автор: MCSD Training Kit
    Издательсвто: Русская Редакция
    Год издания: 2000
    Кол-во страниц: 400
    Стоимость: 272 р.
    Формат: 70х100/1670х100/16
    Переплёт: мягкий

    Microsoft Visual Basic 5.0

     В книге рассматривается новая пятая версия Microsoft Visual Basic - языка программирования, являющегося фактическим стандартом визуального проектирования приложений. Описываются общие черты Visual Basic, реализованные в нем концепции объектно-ориентированного программирования, среда разработки (IDE). Далее рассматривается объектно-ориентированная модель Visual Basic и доступные разработчику объектные компоненты. Подробно описываются технологии программирования на языке Visual Basic и SQL, отладка и оптимизация кода приложения, вопросы компиляции исполняемых модулей. В последующих главах освещаются практические вопросы построения приложений - работа с текстом и графикой, механизмы доступа и управления данными, работа с внешними базами данных и создание приложений клиент/сервер. Книга предназначена для широкого круга программистов, работающих в области обработки данных и информационных систем.

    Автор: Шмидт В
    Издательсвто: ABF
    Год издания: 1997
    Кол-во страниц: 688
    Стоимость: 85 р.
    Формат: 84x108/16
    Переплёт: мягкий

    Microsoft Visual Basic 6.0

     Нет описания

    Автор: Лабор В, Макарчук Д
    Издательсвто: нет данных
    Год издания: 2001
    Кол-во страниц: 160
    Стоимость: 60 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Microsoft Visual Basic 6.0. Мастерская разработчика (+ CD-ROM)

     Книга состоит из 3 частей (34 главы) и предметного указателя. Написанная живо и доходчиво, она позволит освоить множество полезных приемов программирования, в том числе объектно-ориентированного, и научит, как создавать 32-разрядные приложения для Windows 95/98 и Windows NT — от экранных заставок до программ, ориентированных на Интернет. Кроме того, Вы узнаете, как расширить возможности языка за счет функций Win32 API и воспользоваться преимуществами технологии ActiveX.

    Автор: Джон Кларк Крейг, Джефф Уэбб
    Издательсвто: Русская Редакция
    Год издания: 2001
    Кол-во страниц: 720
    Стоимость: 272 р.
    Формат: 70х100/16
    Переплёт: твёрдый

    VB Script и ActiveX

     Книга предназначена для разработчиков Web - приложений на языке VBScript, желающих повысить свой профессиональный уровень и стать экспертами в этой области. В ней подробно рассказывается о новых возможностях VBScript, включая использование именованных констант, функций, переменных и коллекций, приводится вся необходимая информация о технологии ActiveX, принципах взаимодействия VBScript и Visual Basic при создании приложений, работающих на сервере. Прочитав эту книгу, вы научитесь использовать звуковые эффекты, создавать анимированную графику, строить формы для ввода данных, узнаете, как с помощью VBScript создать в Web электронный магазин и отслеживать число посетителей и деланные ими покупки. Вы даже сумеете написать увлекательную мультимедийную игру для Web.

    Автор: Скотт Палмер
    Издательсвто: Питер
    Год издания: 1999
    Кол-во страниц: 368
    Стоимость: 94 р.
    Формат: 70х100/16
    Переплёт: мягкий

    VBA 2000. Самоучитель

     В книге содержится краткий курс по использованию языка и системы VBA для Word и Excel 2000. Книга предназначена для начинающих программировать в среде Windows 95/98 с использованием в качестве базовых таких объектов Word и Excel, как документы, рабочие книги, листы и так далее. Материала книги достаточно для создания как простых макросов, помогающих автоматизировать рутинную повторяющуюся работу над документами и электронными таблицами, так и для разработки достаточно сложных приложений, обрабатывающих данные в диалоговых окнах, обеспечивающих пользователя самыми современными интерфейсными средствами.

    Автор: Кузьменко В
    Издательсвто: Бином
    Год издания: 2000
    Кол-во страниц: 416
    Стоимость: 116 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Visual Basic 6 Desktop. Экзамен 70-176

     Книги серии `Экзамен – экстерном` представляют собой удобные, сжатые, хорошо структурированные конспекты для подготовки к сдаче сертификационных экзаменов на звание Microsoft Certified Solution Developer. Книга `Visual Basic 6.0 Desktop. Экзамен 70-176` содержит только действительно необходимый материал, типовые вопросы с ответами и пример экзамена. Возможно, некоторые подходы, применяемые автором, покажутся вам не совсем привычными - не удивляйтесь: это не учебник по Visual Basic; организация материала в этой книге призвана максимально облегчить задачу экзаменуемого. Учтите, что в ряде случаев экзаменационные вопросы выходят за рамки тем, отраженных в документации по Visual Basic, а иной раз правильные ответы на них даже входят в противоречие с `официальной` информацией.

    Автор: Майкл Макдоналд
    Издательсвто: Питер
    Год издания: 2001
    Кол-во страниц: 608
    Стоимость: 123 р.
    Формат: 60x90/16
    Переплёт: мягкий

    Visual Basic 6. Руководство разработчика (+ CD-ROM)

     Эта книга, написанная известным специалистом и неутомимым пропагандистом Visual Basic, представляет собой прекрасный путеводитель по одному из наиболее популярных визуальных средств разработки Windows-приложений. Подробно освещаются такие ключевые темы программирования на Visual Basic, как проектирование и использование элементов ActiveX, программирование баз данных и разработка Web-приложений. Несомненный интерес представляют главы, посвященные работе с графикой. Большое количество тщательно продуманных примеров облегчает восприятие материала. Подбор материала и стиль изложения делают издание интересным и полезным для программистов разных уровней.

    Автор: Евангелос Петрусос
    Издательсвто: BHV, Ирина, SYBEX Inc
    Год издания: 2000
    Кол-во страниц: 1072
    Стоимость: 267 р.
    Формат: 70x100/32
    Переплёт: твёрдый

    Остальные книги о VB можно найти     здесь.

    наверх

    Выравнивание меню направо/налево

    Добавьте на форму CommandButton и Menu

    Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
    Const MIIM_TYPE = &H10
    Const MFT_RIGHTJUSTIFY = &H4000
    Const MFT_STRING = &H0&
    Private Declare Function GetMenuItemInfo Lib "user32" Alias "GetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal b As Boolean, lpMenuItemInfo As MENUITEMINFO) As Long
    Private Declare Function SetMenuItemInfo Lib "user32" Alias "SetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal bool As Boolean, lpcMenuItemInfo As MENUITEMINFO) As Long
    Private Type MENUITEMINFO
    cbSize As Long
    fMask As Long
    fType As Long
    fState As Long
    wID As Long
    hSubMenu As Long
    hbmpChecked As Long
    hbmpUnchecked As Long
    dwItemData As Long
    dwTypeData As String
    cch As Long
    End Type
    Private Sub Command1_Click()
    Dim MnuInfo As MENUITEMINFO
    mnuH& = GetMenu(Me.hwnd)
    MnuInfo.cbSize = Len(MnuInfo)
    MnuInfo.fMask = MIIM_TYPE
    'If you want to align to right only few menus, and leave the rest in left side,
    'Replace the '0' below and the '0' two lines above the 'End Sub' with the number
    'of menus you want to leave in the left side.
    myTemp& = GetMenuItemInfo(mnuH&, 0, True, MnuInfo)
    MnuInfo.fType = MFT_RIGHTJUSTIFY Or MFT_STRING
    'Replace all 'MenuCaption' below with the caption of the first menu from left.
    MnuInfo.cch = Len("MenuCaption")
    MnuInfo.dwTypeData = "MenuCaption"
    MnuInfo.cbSize = Len(MnuInfo)
    myTemp& = SetMenuItemInfo(mnuH&, 0, True, MnuInfo)
    myTemp& = DrawMenuBar(Me.hwnd)
    End Sub

    наверх

    Переключение между пунктами подменю

    Подменю MyMenu должно содержать индекс (от 0 до...)

    Private Sub MyMenu_Click(Index As Integer)
    Static prevSelection As Integer
    MyMenu(prevSelection).Checked = False
    MyMenu(Index).Checked = True
    prevSelection = Index
    End Sub

    наверх

    Добавить 3D-Line под Меню

    Если вы хотите, чтобы ваше меню было подчеркнутым, добавьте в событие Form_Load() код 1 или 2

    '1. Добавите 1 Frame

    Private Sub Form_Load()
    Frame1.Caption = ""
    Frame1.Height = 30
    Frame1.Width = Screen.Width + 100
    Frame1.Move -50, 0
    End Sub

    '2.

    Private Sub Form_Load()
    AutoRedraw = True
    ScaleMode = 3
    Cls
    Line (0, 0)-Step(ScaleWidth, 0), QBColor(8)
    Line (0, 1)-Step(ScaleWidth, 0), QBColor(15)
    AutoRedraw = False
    End Sub

    наверх

    Положить картинку в меню

    Добавьте на форму 3 Image. Создайте меню с тремя подменю

    'функция GetMenu определяет форму с нужным меню
    Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
    'функция GetSubMenu определяет заголовок меню с которым будет идти работа
    Private Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
    'функция GetMenuItemID определяет пункт меню с которым будет идти работа
    Private Declare Function GetMenuItemID Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
    'функция SetMenuItemBitmaps приклеивает к определённому пункту меню картинку
    Private Declare Function SetMenuItemBitmaps Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal hBitmapUnchecked As Long, ByVal hBitmapChecked As Long) As Long
    'объявляется константа, о назначении которой я так и не докопался :-(
    Private Const MF_BITMAP = &H4&
    Private Sub Form_Load()
    Dim hMenu&, hSubMenu&, hMenuItem& 'объявление переменых типом Long
    'определяем на какой форме нам нужно меню
    hMenu = GetMenu(Me.hwnd)
    'определяем заголовок, если у Вас есть, например File и Edit, то индексом задаёте нужный
    hSubMenu = GetSubMenu(hMenu, 0)
    'здесь мы определяем, что работать хотим с первым пунктом меню, т.к. индекс равен 0
    hMenuItem = GetMenuItemID(hSubMenu, 0)
    '"клеим" картинку к первому пункту
    SetMenuItemBitmaps hMenu, hMenuItem, MF_BITMAP, Image1.Picture, Image1.Picture
    'здесь мы определяем, что работать хотим со вторым пунктом меню, т.к. индекс равен 1
    hMenuItem = GetMenuItemID(hSubMenu, 1)
    '"клеим" картинку ко второму пункту
    SetMenuItemBitmaps hMenu, hMenuItem, MF_BITMAP, Image2.Picture, Image2.Picture
    'здесь мы определяем, что работать хотим с третьим пунктом меню, т.к. индекс равен 2
    hMenuItem = GetMenuItemID(hSubMenu, 2)
    '"клеим" картинку к третьему пункту
    SetMenuItemBitmaps hMenu, hMenuItem, MF_BITMAP, Image3.Picture, Image3.Picture
    End Sub

    наверх

    Изменить цвет фона меню

    Option Explicit
    ' CreateBrushIndirect используется, чтобы создать фоновую кисть для меню
    Private Declare Function CreateBrushIndirect Lib "gdi32" (lpLogBrush As LOGBRUSH) As Long
    ' GetMenu используется, чтобы получить дескриптор меню
    Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
    ' GetMenuInfo используется, чтобы получить текущую информацию для меню
    Private Declare Function GetMenuInfo Lib "user32" (ByVal hMenu As Long, lpcmi As tagMENUINFO) As Long
    ' SetMenuInfo используется, чтобы установить фоновую кисть назад в меню и все подменю
    Private Declare Function SetMenuInfo Lib "user32" (ByVal hMenu As Long, lpcmi As tagMENUINFO) As Long
    ' Используется в запросах к CreateBrushIndirect
    Private Type LOGBRUSH
    lbStyle As Long ' Тип cтиля (мы только должны создать твердый фон для этого примера)
    lbColor As Long ' Установите цвет кисти
    lbHatch As Long ' Стиль штриховки (не используемый в этом примере, потому что это игнорируется для Твердого стиля)
    End Type
    ' Используется в GetMenuInfo и запросах SetMenuInfo
    Private Type tagMENUINFO
    cbSize As Long ' Размер структуры типа (используйте len, чтобы вычислить)
    fMask As Long ' Маска информации / действий, чтобы обработать
    dwStyle As Long ' Стиль меню (не используемый в этом примере)
    cyMax As Long ' Максимальная высота меню в пикселах (не используется в этом примере)
    hbrBack As Long ' Дескриптор фоновой кисти
    dwContextHelpID As Long ' ИДЕНТИФИКАТОР Справочного контекста (не используется в этом примере)
    dwMenuData As Long ' Данные меню (снова не используются в этом примере)
    End Type
    Private Const BS_SOLID = 0 ' Твердый стиль для кисти
    Private Const MIM_APPLYTOSUBMENUS = &H80000000 ' Обращение к маске подменю
    Private Const MIM_BACKGROUND = &H2 ' Фоновая маска
    Private Sub Form_Load()
    Dim ret As Long ' Переменная для удержаyия возвращаемых значения от GetMenuInfo и SetMenuInfo
    Dim hMenu As Long ' Переменная для удержания дескриптора меню
    Dim hBrush As Long ' Переменная для удержания дескриптора фоновой кисти, которую мы собираемся создавать
    Dim lbBrushInfo As LOGBRUSH ' Переменная для удержания информации CreateBrushIndirect API
    Dim miMenuInfo As tagMENUINFO ' Переменная для удержания информации меню
    lbBrushInfo.lbStyle = BS_SOLID ' Установить тип кисти
    lbBrushInfo.lbColor = vbRed ' Здесь мы устанавливаем наш цвет кисти
    lbBrushInfo.lbHatch = 0 ' Это значение игнорируется
    hBrush = CreateBrushIndirect(lbBrushInfo) ' Мы создаем нашу кисть
    hMenu = GetMenu(Me.hwnd) ' Получают дескриптор меню, которое изменяем
    miMenuInfo.cbSize = Len(miMenuInfo) ' Набор MenuInfo структурирует размер так, чтобы мы не получили ошибки
    ret = GetMenuInfo(hMenu, miMenuInfo) ' Получить фактическую информацию меню (в случае успеха возвращается 0)
    miMenuInfo.fMask = MIM_APPLYTOSUBMENUS Or MIM_BACKGROUND ' Устанавливают маску для изменений (изменение фона меню и всех подменю)
    miMenuInfo.hbrBack = hBrush ' Назначение нашей кисти для меню
    ret = SetMenuInfo(hMenu, miMenuInfo) ' Записывают нашу информацию назад в меню. Все OK (в случае успеха возвращается non-zero)
    End Sub
    Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = vbRightButton Then 'Процедура контекстного меню
    Me.PopupMenu mnuMenu
    End If
    End Sub

    наверх

    Динамическое создание PopupMenu

    Функция AppendMenu присоединяет в конец меню новый элемент, состояние которого определяется Flags

    Расположите на форме элемент CommandButton.

    Const MF_CHECKED = &H8&
    Const MF_APPEND = &H100&
    Const TPM_LEFTALIGN = &H0&
    Const MF_DISABLED = &H2&
    Const MF_GRAYED = &H1&
    Const MF_SEPARATOR = &H800&
    Const MF_STRING = &H0&
    Private Type POINTAPI
    x As Long
    y As Long
    End Type
    Private Declare Function CreatePopupMenu Lib "user32" () As Long
    Private Declare Function TrackPopupMenu Lib "user32" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal x As Long, ByVal y As Long, ByVal nReserved As Long, ByVal hwnd As Long, ByVal lprc As Any) As Long
    Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
    Private Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As Any) As Long
    Private Declare Function DestroyMenu Lib "user32" (ByVal hMenu As Long) As Long
    Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
    Dim hMenu As Long

    Private Sub Command1_Click()
    'добавляем еще один пункт меню
    AppendMenu hMenu, MF_STRING, ByVal 0&, "новое меню"
    End Sub

    Private Sub Form_Load()
    'Создаём пустое всплывающие меню
    hMenu = CreatePopupMenu()
    'Добавляем несколько пунктов в меню
    AppendMenu hMenu, MF_STRING, ByVal 0&, "Hello !"
    AppendMenu hMenu, MF_GRAYED Or MF_DISABLED, ByVal 0&, "Testing ..."
    AppendMenu hMenu, MF_SEPARATOR, ByVal 0&, ByVal 0&
    AppendMenu hMenu, MF_CHECKED, ByVal 0&, "TrackPopupMenu"
    End Sub

    Private Sub Form_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
    Dim Pt As POINTAPI
    'Получаем позицию курсора мыши
    GetCursorPos Pt
    If Button = 1 Then
    'Показываем всплывающие меню
    TrackPopupMenu hMenu, TPM_LEFTALIGN, Pt.x, Pt.y, 0, Me.hwnd, ByVal 0&
    Else
    'Показываем всплывающее меню по умолчанию
    TrackPopupMenu GetSystemMenu(Me.hwnd, False), TPM_LEFTALIGN, Pt.x, Pt.y, 0, Me.hwnd, ByVal 0&
    End If
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    'Уничтожаем наше меню
    DestroyMenu hMenu
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Spilka

    Ответ ожидается по этому адресу

    Я подключаюсь к базе данных .mdb используя ADODB. Одно из полей "word" таблицы "Catalog" содержит данные типа OLE-объект. Там находятся файлы *.doc. Каким образом я смогу получить их содержимое (хотябы добраться до Object.Words.Item(#).Text)?

    Автор вопроса: al

    Ответ ожидается по этому адресу

    Как из проги отправить сообщение по сети на конкретный комп (IP и сетевое имя известны). Желательно не писать свой клиент-сервер. Хотел попробовать в проге Winsock, а получатель - WinPopup или NWPopup. Но не смог найти форматы сообщений и используемые порты. Кто в курсе - поделитесь информацией.

    Автор вопроса: SLTK

    Ответ ожидается по этому адресу

    Вот допустим у меня есть приложение клиент на мо?м компе и приложение сервер на другом они соеденены с помощью WINSOCK по протоколу TCP... Как мне получить доступ ко всем файлам и директориям сервера и к управлению ими (удаление, копирование ко мне на комп, яапуск, редактирование)

    Автор вопроса: Владимир

    Ответ ожидается по этому адресу

    Как получить скорость процессора(системы) ?

    Автор вопроса: Rusty Angles

    Ответ ожидается по этому адресу

    1) В VB нельзя сделать ехе, который бы грузился без библиотек, но может есть перекодировшики исходного кода например в C+? для BASIC я находил, а для VB пока не встречал, мало рылся...

    2) Где бы скачать dll или ocx с описаниями или примерами, архивирования, схожестью по сжатию с WinAce2, Zip ? (или исходный код без библиотек)

    3) Как управлять звуком не используя файлы или команду beep, то есть чтобы например генерировать частоты и т.д. на SB. и др. зв. картах? При том чтобы так же можно было ловить входящие потоки с line-in, к примеру чтобы сделать осцилограф

    Автор вопроса: Brazhnik

    Ответ ожидается по этому адресу

    Подскажите, пожалуйста, как в VB6 работать с вложением (attachment) в почтовом сообщении (MAPI)? Как сохранить его в виде файла на диске?

    Автор вопроса: Белоусов Артем

    Ответ ожидается по этому адресу

    Как проверить состояние клавиатуры на нажатие какой либо клавиши и отобразить символ этой клавиши, если окно не активно. То есть как это сделано в клавиатурных шпионах.

    Ответы:

    Вопрос:

    Как сохранить графические данные в буфере обмена в BMP - файл?

    Ответ:

    Автор ответа: Игорь

    Dim ClipPicture As IPictureDisp
    'Проверка: действительно в буфере нахоится рисунок BMP?:
    If Clipboard.GetFormat(vbCFBitmap) Then
    Set ClipPicture = Clipboard.GetData(vbCFBitmap)
    SavePicture ClipPicture, "C:\11.bmp"
    End If

    Вопрос:

    1) Как в ListBox вставить содержимое базы данных, не набирая его вручную.
    2) Можно ли работать с базами данных не используя элемент Data.

    Ответ:

    Автор ответа: shuric

    Зайди в "Вид" (Project) затем выбери "Ссылки" (References), поставь крыж напротив Microsoft DAO 3.51 Object Library. Затем в форме вставь ListBox Скопируй следующий код, обращая внимание на ссылки

    Private Sub Form_Load()
    Dim wrk As Workspace
    Dim db As Database
    Dim rs As Recordset
    Set wrk = CreateWorkspace("", "admin", "", dbUseJet)
    Set db = wrk.OpenDatabase("Имя базы данных, с которой надо взять данные")
    Set rs = db.OpenRecordset("Имя таблицы")
    rs.MoveFirst
    Do While rs.EOF = False
    Me.List1.AddItem (rs.Fields("имя поля").Value)
    rs.MoveNext
    Loop
    End Sub

    Вопрос:

    1) Как в ListBox вставить содержимое базы данных, не набирая его вручную.
    2) Можно ли работать с базами данных не используя элемент Data.

    Ответ:

    Автор ответа: Евгений Колотушкин

    Я только начинающий програмист, так что хочется услышать справедливую критику :-))

    dim inum as integer

    iNum = 0
    Adodc1.Recordset.MoveLast
    iLast = Adodc1.Recordset.AbsolutePosition
    Adodc1.Recordset.MoveFirst
    For iList = 1 To iLast
    List1.AddItem Adodc1.Recordset("CompanyName")
    Adodc1.Recordset.MoveNext
    Next
    Adodc1.Recordset.MoveFirst

    Вопрос:

    Visual Basic 6.0 как нибудь может общаться с портами LPT или COM, если да, то как? И как сделать так, чтобы я нажимал выключатель и запускался ну например таймер? Пожалуюста укажите Web-страницы, где об этом можно прочитать!

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Есть такой контрол
    MS Comm

    Есть такие страницы...
    MSDN называется.

    Вопрос:

    Как зделать установачный пакет (что бы моя программа заносилось в список "Установка и удоления программ")

    Ответ:

    Автор ответа: Иван

    Существует множество программ, например Setup Generator, в которой можно добавлять программу в "Установку и удаление программ", а также есть масса других настроек.

    Вопрос:

    Подскажите как сделать стикеры ("липкие листочки" на рабочем столе)? И чтобы была возможность делать настройки к ним (изменять цвет, размер фона, шрифта и т.д.).

    Ответ:

    Автор ответа: Иван

    На форму ставишь объект TextBox, устанавливаешь свойство appearance равное 0, т.е. плоской. С формы убираешь заголовок - свойство BorderStyle устанавливаешь 0. Изменять цвет TextBox'а свойство BackColor. Программно это выгледит так: text1.backcolor=rgb(числовое значение красного цвета, зелёного, синего). Значение должно быть в пределах от 0 до 255.

    Чтобы поменять размер фона:
    Form1.Height = Значение по высоте
    Form1.Width = Значение по длине
    Text1.Height = Form1.Height
    Text1.Width = Form1.Width
    Text1.FontName = "Название шрифта"
    Text1.FontSize = "Размер шрифта"

    Полужирный
    Text1.FontBold = True

    Курсивом
    Text1.FontItalic = True

    Цвет шрифта
    Text1.ForeColor = RGB(красный, зелёный, синий)

    Вопрос:

    Сделал программу расч?та таблицы. При печати таблицы пришлось программировать черчение сетки для страниц командой Line. Почему-то во время отправки страниц на печать не работает простой цикл
    For a=1 to 2.
    Выдается яначение а=0. On Error не действует.
    Можно ли напечатать таблицу ия VB6 каким нибудь другим способом?

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Вообще-то, лучше всего печатать репорты. Я никогда не маялся тем, чтобы печатать формы из VB. Сам я использую Crystal Reports 8, но если у тебя его нет, то можно воспользоваться Data Report Designer, который входит в состав VB6 (Кстати, в состав пятого Бэйсика, а по-моему и шестого тоже, входит Crystal Reports for Visual Basic 4.5)

    Вопрос:

    В VB пытаюсь сделать текстовый редактор. Посоветуйте, как сделать, чтобы по нажатии на кнопку BOLD(жирный), жирным становился не весь текст, а только выделенный. Я написал так:

    Case "Bold"
    With txtBox
    If .FontBold = True Then
    .FontBold = False
    Else
    .FontBold = True
    End If
    End With

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Ну, вообще-то текстбокс он и в Африке текстбокс, и у тебя тоже. Он НЕ ПОЗВОЛЯЕТ форматирование отдельных элементов текста. Используй RichEdit. У него, по-моему, есть что-то вроде .SelBold = True

    Вопрос:

    Работа с базой данных.

    Расклад такой:
    Таблица - "А"
    Поля - "Дата Продажи"
    "Наименование Товара"
    "Стоимость"
    Как должен выглядеть SQL запрос чтобы вывести данные о количестве записей из поля"Наименование Товара",общей суммы из поля"Стоимость" на конкретную дату"Дата Продажи" из таблицы"А". Причём должна быть возможность делать выборку на дату задаваемую пользователем,в отдельном Text.Box. Пример: 17.03.02 было проданно 15 наименований товара на сумму 1500 рублей.

    "VB 6.0" ,база данных "ACCESS" , контрол "DATA"

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    "SELECT Count([Наименование товара]) AS ItemsCount, Sum([Стоимость]) AS ItemsTotal FROM [А] WHERE [Дата продажи] = " & Str(CLng(Cdbl(txtDate.Text)))

    Только смотри аккуратно. Дата продажи должна быть действительно датой, а не датой со временем. Если у тебя это не соблюдается, то лучше используй BETWEEN в условии WHERE

    "SELECT Count([Наименование товара]) AS ItemsCount, Sum([Стоимость]) AS ItemsTotal FROM [А] WHERE [Дата продажи] BETWEEN " & Str(CLng(Cdbl(txtDate.Text))) & " AND " & Str(CLng(Cdbl(txtDate.Text))+1)

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 44.

VBNet
  • Библиотека кодов
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Опять в школу...
    Читайте!

    Содержание выпуска
    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Visual Basic 6. Мастер. Руководство для профессионалов

     Язык программирования Visual Basic - мощный инструмент разработки приложений для 32-разрядных систем Windows 95 и Windows NT. В книге рассматриваются как фундаментальные понятия и темы: от установки продукта на компьютер пользователя и описания интегрированной среды разработки до изложения основ техники программирования на Visual Basic, так и сложные вопросы, адресованные профессиональным программистам: создание интерфейса пользователя, применение стандартных элементов управления, в том числе и для работы с базами данных, программирование компонентов ActiveX, описание технологии OLE drag-and-drop, объектная модель FSO, функции работы с файлами, отладка и оптимизация программ, локализация и распространение готовых приложений.

    Автор: нет даных
    Издательсвто: нет данных
    Год издания: 1998
    Кол-во страниц: 992
    Стоимость: 112,48 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Visual Basic 6. Специальный справочник

     Главная цель этого справочника - научить читателя использовать инструменты и средства Visual Basic, позволяющие значительно облегчить и ускорить процесс создания приложений. Здесь вы найдете описание элементов языка, библиотечных функций и SQL-операторов. Особое внимание уделено различным мастерам, предназначенным для решения стандартных задач. Весь справочный материал в книге разбит на главы, в каждой из которых вы найдете информацию по созданию приложения определенной направленности. Разделы в главе содержат пошаговое описание операций, которые нужно выполнить для решения поставленной задачи, синтаксис необходимых операторов, а также подробно разобранные примеры. Предлагаемый справочник будет полезен не только пользователям, активно работающим с Visual Basic 6, но и начинающим программистам, желающим перейти к профессиональной разработке приложений с наименьшими затратами времени на изучение новой среды программирования.

    Автор: Б. Карпов
    Издательсвто: Питер
    Год издания: 2000
    Кол-во страниц: 416
    Стоимость: 70,78 р.
    Формат: 84х108/32
    Переплёт: нет данных

    Visual Basic 6.0 for application

     Книга является систематизированным справочником по всем элементам языка программирования Visual Basic (VB), входящим, как в автономную версию VB, так и в основные реализации Visual Basic for Applications.
    Помимо тех официальных сведений, которые можно найти в документации и в справочной системе, книга содержит конкретные примеры, рекомендации и маленькие хитрости программиста, а также поправки к справочной системе, которая, увы, не без ошибок.
    Книга предназначена для всех специалистов, занимающихся разработкой приложений с применением Visual Basic и Visual Basic for Applications.

    Автор: Король В.И.
    Издательсвто: КУДИЦ-Образ
    Год издания: 2000
    Кол-во страниц: 448
    Стоимость: 113,87 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Win32 API и Visual Basic. / Для профессионалов /

     Книга является сборником полезных советов и приемов, хотя в ней, вероятно, описаны тысячи разных приемов. Она не была задумана как энциклопедия самостоятельных фрагментов программного кода, которые бездумно подключаются к приложению - хотя многие ее примеры можно использовать подобным образом.

    Автор: Д. Эпплман
    Издательсвто: Питер
    Год издания: 2001
    Кол-во страниц: 1120
    Стоимость: 489,08 р.
    Формат: нет данных
    Переплёт: нет данных

    Азбука программирования в Windows 32 API

     Изложены вопросы создания программных приложений для Window95 и Windows NT. Описаны основные типы переменных, макросов, функций. Материал книги иллюстрируется многочисленными примерами. 1 Настоящее издание (второе вышло в 2000 г.) дополнено описанием тех возможностей Windows, которые не были упомянуты в предыдущих изданиях.

    Автор: Румянцев П.В.
    Издательсвто: Радио и связь
    Год издания: 2001
    Кол-во страниц: 312
    Стоимость: 85 р.
    Формат: 60х88/16
    Переплёт: нет данных

    Использование Visual Basic 6. Специальное издание

     В книге описана новая версия популярной системы программирования Visual Basic 6. Изложение материала построено по принципу "от простого к сложному". Первые главы этой книги адресованы новичкам, из которых они смогут почерпнуть основы языка Visual Basic и описание его стандартных компонентов. Для подготовленных пользователей будет интересен раздел, посвященный специальным методам программирования с использованием стандартных компонентов Windows, элементов управления ActiveX, ADO. RDO и др. В отдельную часть вынесены вопросы, связанные с разработкой приложений баз данных на Visual Basic и работе в Internet. Автор не обошел также вниманием различные версии языка Visual Basic - VBA и VBScript. В приложениях приведен обзор интегрированной среды разработки Visual Basic, а также краткий справочник по SQL.
    Книга рассчитана на широкий круг читателей.

    Автор: Сайлер Б., Споттс Дж.
    Издательсвто: Вильямс
    Год издания: 1999
    Кол-во страниц: 832
    Стоимость: 244,02 р.
    Формат: 70х100/16
    Переплёт: твёрдый

    Обработка баз данных на Visual Basic 6 + CD

     Сердцем многих приложении, работающих в сфере бизнеса, являются базы данных. Своим широким распространением они обязаны возможности централизованного доступа к информации. который характеризуется последовательностью, эффективностью и относительной простотой создания и поддержки. В книге "Обработка баз данных на Visual Basic 6" описываются все технологии доступа к базам данных с помощью Visual Basic. Приведенные в этой книге примеры взяты из реальной жизни, поэтому, ознакомившись с ними, вы узнаете, как можно использовать базы данных для принятия решений в сфере бизнеса. Если вы еще не готовы перейти к версии Visual Basic 6, это вовсе не значит, что данная книга вам не подходит. Практически 95% материала этой книги удовлетворит в равной степени пользователей как пятой, так и шестой версий Visual Basic.
    Книга рассчитана на программистов средней и высокой квалификации.

    Автор: Мак-Манус Дж.П.
    Издательсвто: Вильямс
    Год издания: 1999
    Кол-во страниц: 672
    Стоимость: 294,66 р.
    Формат: 70х100/16
    Переплёт: твёрдый

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 30.03.2002 05:37 | Раздел: Примеры кода | Автор: Беляев Данила

    Timer - Как создать таймер с помощью API? Это можно сделать с помощью функции SetTimer. Но вот как конкретно? Пример демонстрирует методику использования этих функций.

    Дата: 29.03.2002 05:36 | Раздел: ActiveX контролы | Автор: Беляев Данила

    Windows - Как использовать мощную функцию для перечисления всех окон в системе EnumWindows? Да... тут нужна технология "обратного вызова". Что это такое? Ну тогда смотрите пример.

    Дата: 29.03.2002 03:51 | Раздел: Статьи по VB | Автор: Сурменок Павел

    Active Server Pages - При создании web-страниц можно использовать VBScript. Но у него есть некоторые недостатки. Во-первых, VBScript поддерживает не все браузеры. Во-вторых, VBScript совершенно не умеет работать с файлами и базами данных, что существенно ограничивает его сферу применения. Технология Active Server Pages была разработана Microsoft сравнительно недавно. Она поддерживает как синтаксис JScript, так и VBScript, причём по умолчанию используется VBScript. Принцип технологии простой: скрипт исполняется на сервере, а пользователю передаётся готовый HTML-файл.

    Дата: 28.03.2002 10:39 | Раздел: Примеры кода | Автор: Беляев Данила

    PlugIns - Это супер пример! Данила разработал стратегию создания plugins средствами Visual Basic. Теперь Вы можете, используя эту технологию, создавать свои plugins, точно так, как и в программах типа Photoshop, WinAmp. Каждый уважающий себя программист просто обязан посмотреть на этот пример.

    Дата: 27.03.2002 15:40 | Раздел: Примеры кода | Автор: Беляев Данила

    AnimateIcon - Вы уже знаете, что Visual Basic не поддерживает анимационные курсоры в своих программах. Ну и что? Вы же "крепкие орешки"? Вот пример, который не обращая внимания на запреты VB, использует анимационные курсоры. И не так уж тут сложно...

    Дата: 26.03.2002 05:33 | Раздел: Примеры кода | Автор: Беляев Данила

    Dj - Программа для организации "дискотек", т.е. можно выводить на звуковую карточку сразу несколько композиций. Поддерживает множество форматов, так как использует для работы Windows Media.

    Дата: 25.03.2002 05:38 | Раздел: Примеры кода | Автор: Беляев Данила

    RegServer - Если Вы пишите свою программу инсталяции, то наверняка столкнулись с проблемой регистрации компонентов в системе. В состав Windows входит маленькая программа для этого дела RegSrv.exe с помощью которой можно это сделать, но этот пример для тех, кто хочет делать все сам.

    Последние 20 тем форума на VBNet.Ru:

    22:21 / 30 мар. DataGrid | Ответов: 0
    22:16 / 30 мар. Я чат пишу... | Ответов: 0
    19:31 / 30 мар. Ещё одна проблема с ComboBox. | Ответов: 1
    19:10 / 30 мар. DirectX7... Звук и громкость | Ответов: 0
    18:19 / 30 мар. SOS!!!! Архиваторы | Ответов: 0
    18:13 / 30 мар. Функции VB | Ответов: 1
    17:29 / 30 мар. Помогите | Ответов: 1
    14:20 / 30 мар. RichTextBox | Ответов: 0
    13:03 / 30 мар. Дверца CD-ROMа | Ответов: 1
    08:30 / 30 мар. Нажатие по иконке трея | Ответов: 0
    05:26 / 30 мар. Разработчикам этого сайта | Ответов: 1
    22:00 / 29 мар. помогите с рисайзом формы | Ответов: 1
    17:00 / 29 мар. HELP!!!!!!!!!! | Ответов: 1
    16:14 / 29 мар. Загрузка & Интернет | Ответов: 2
    12:57 / 29 мар. Как вы думаете, в лан сети ,...... | Ответов: 1
    12:53 / 29 мар. Помогите решить проблему с ComboBox. | Ответов: 2
    09:50 / 29 мар. кидаться файлами по модему | Ответов: 1
    08:07 / 29 мар. Путь моего приложения | Ответов: 1
    00:01 / 29 мар. Помогите с кирилицей в VB | Ответов: 1
    23:15 / 28 мар. увеличить/уменьшить | Ответов: 1

    Последние поступления в Библиотеку кодов:

    Нет новых кодов.

    наверх

    Новости сайта VBMania

    • 25.01 - Сегодня открылся новый раздел, в котором вы можете найти ссылки на целую кучу книг по тематике VB и около него.
    • 22.01 - 22 января вышел второй номер он-лайн журнала о Visual Basic 'VB Мания'. В нем можно почитать авторские статьи в уже устоявшихся разделах: Технологии, Система, Графика, Профессия, Человечество и Юмор. Так же не обошлось без новшеств: появился новый раздел dotNET и особенно рецензии ActiveX-компонентов. Обязательно заходите.
    • 17.12 - В связи с тем что форум не горел желаением вести себя так, как должен обычный, порядочный форум, мы его прикрыли для проведения разъяснительных мероприятий. Надеемся, что они не затянутся и форум образумится.
    • 06.12 - С сегодняшнего дня все желающие могут добавлять свои новости и статьи в наши архивы.
      Да здраствует открытость!
    • 27.11 - Наконец-то, после долгих дней и бессонных ночей это свершилось! Сайт объявляется открытым! Непременно прочитайте первый номер нашего журнала. Оцените наши дополнительные проекты. И конечно мы ждем ваших откликов в гостевой книге и по почте.
    • 01.12 - Произошло несколько косметических улучшений, касающихся исключительно удобства работы с сайтом. Во-первых, можно видеть количество записей обсуждения новостей на главной странице; а во-вторых чуточку подправились директории.
      Оценяйте!

    наверх

    Новости сайта Азбука VB

    • 30 марта 2001 года
      Создания сетевого приложения на основе UDP. Небольшой примерчик для создания сетевого приложения на основе UDP протокола. Используется элемент Winsock.
      Работа с контролом TreeView - запись и чтение "деревьев" из простого файла
      Cимпатичные часики со скинами . На этом примере можете научиться делать свои скины.
      Пример программного регистрирования/дерегистрирования библиотек
      Записная книжка. Очень интересный пример. Еще один вариант реализации записной книжки.
      Будильник.
      Запись/чтение mp3 id3v1 тегов Производится считывание тегов ID3 из mp3 файлов или шх записи.
      Mover_20 . Mover_20 - это новый контрол, который с помощью сабклассинга контролирует перемещение формы за стандартный заголовок и позволяет ей прилипать к краям экрана.
      Cоздание тени у формы Показывается, как с помощью API-функций можно создать тень у простой формы.
      Добавление данных из таблицы базы в лист Excel. Использование метода Copyfromrecordset. При использование этого метода, данные добавляются несколько быстрее...

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Smael

    Ответ ожидается по этому адресу

    Подскажите как можно отправить файл через телефонную линию?

    Автор вопроса: sv

    Ответ ожидается по этому адресу

    У меня в базе данных, в одной таблице два поля. В первом названия клипов, во втором названия файлов. Первое поле выводится на ListBox. Как сделать, чтобы при двойном нажатии на какой-либо строке в поле 1, в MediaPlayer загружался файл из соответствующего поля 2?

    Автор вопроса: Славик

    Ответ ожидается по этому адресу

    Как мне соядать SETUP не более 2Мб.
    Хочу поделиться своей ОЧЕНЬ ПРРОСТОЙ программкой, которая всего лишь соядает текстовый файл, а SETUP к нему весит от 10 до 14 Мб.
    Можно как-нибудь справиться с этим?
    Понимаю, что эта тема всех достала, но еще никто мне доступно не ответил, все как-то абстрактно.

    Автор вопроса: DDT

    Ответ ожидается по этому адресу

    Подскажите плз, как мне безоговорочно переписать существующий файл.
    Вот что у меня есть:

    excelapp.Workbooks(1).SaveAs FileName:="c:\tmp.xls", AccessMode:=xlShared

    Сейчас, если файл c:\tmp.xls есть, то задается вопрос, переписать ли поверх. Мне же надо, чтобы он это не спрашивал, а сразу, молча переписывал.

    Автор вопроса: Надя

    Ответ ожидается по этому адресу

    Какие вояможности VB поддерживает VBScript? или какие не поддерживает?

    Автор вопроса: Михаил

    Ответ ожидается по этому адресу

    Помогите разобраться в функцией "open" чтения данных из файла. Я запутался с типом "input,output,random,binary" и присвоением. Подскажите где можно найти подробнее об этом операторе..

    Автор вопроса: ~<KAPMAH>~

    Ответ ожидается по этому адресу

    1)Как реально прописать прогу в реестре ?
    2)Как найти в richtextbox слова какие выберешь ну там и изменить их цвет ?
    3)Как сделать так чтоб комп проверял столкнулись объекты или нет для игры очень надо ?

    Автор вопроса: Света

    Ответ ожидается по этому адресу

    Подскажите, как отправить готовый отчет ия Access или Exele по почте (адрес всегда один и тот же)

    Ответы:

    Вопрос:

    Как из проги отправить сообщение по сети на конкретный комп (IP и сетевое имя известны). Желательно не писать свой клиент-сервер. Хотел попробовать в проге Winsock, а получатель - WinPopup или NWPopup. Но не смог найти форматы сообщений и используемые порты. Кто в курсе - поделитесь информацией.

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Вариантов, я думаю, есть очень много. Предлагаю через API обмениваться.
    Сделай формочку, нарисуй на ней кнопку и три текстбокса. Назови из txtFrom, txtText, txtMsg. Вставь следующий код. Запусти. Напиши имя отправителя, получателя и текст и нажми кнопку

    Option Explicit

    Private Declare Function NetMessageBufferSend Lib "netapi32.dll" (ByVal ServerName As String, ByVal MsgName As String, ByVal FromName As String, Buf As Any, BufLen As Long) As Long

    Private Sub Command1_Click()
    Dim sName As String, sMsg As String, sBuf As String
    Dim lLen As Long, ret As Long

    sName = StrConv(txtFrom.Text, vbUnicode)
    sMsg = StrConv(txtMsg.Text, vbUnicode)
    sBuf = StrConv(txtText.Text, vbUnicode)
    lLen = LenB(sBuf)
    ret = NetMessageBufferSend(sName, sMsg, sName, ByVal sBuf, ByVal lLen)

    End Sub

    Вопрос:

    1) В VB нельзя сделать ехе, который бы грузился без библиотек, но может есть перекодировшики исходного кода например в C+? для BASIC я находил, а для VB пока не встречал, мало рылся...

    2) Где бы скачать dll или ocx с описаниями или примерами, архивирования, схожестью по сжатию с WinAce2, Zip ? (или исходный код без библиотек)

    3) Как управлять звуком не используя файлы или команду beep, то есть чтобы например генерировать частоты и т.д. на SB. и др. зв. картах? При том чтобы так же можно было ловить входящие потоки с line-in, к примеру чтобы сделать осцилограф

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    1) Об этом уже говорилось много и везде. Я пробовал Fusion, который легко найти в сети. Работает
    2) У меня есть такие ОСХ. Могу выслать. Но, по-моему, они есть и на сайте, так как я их когда-то высылал сладельцу сайта.
    3) не знаю, не пробовал.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 45.

VBNet
  • Библиотека кодов
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Очередной 45-ый выпуск рассылки.
    Читайте!

    Содержание выпуска
    • Книги

    • Основы работы с формой
    • Заблокировать кнопку X на форме
    • Сделать вашу форм поверх всех
    • Создать градиент-Title Bar
    • Спрятать/показать панель заголовка
    • Определить, загружена ли форма

    • Вопрос/Ответ

    Книги

    ADO и Visual Basic. Руководство разработчика

     В книге описано использование технологии доступа к данным (ADO) с помощью основного инструмента разработки приложений Microsoft - Visual Basic 6.0. Из книги вы узнаете, как можно исследовать источники данных при помощи окна Data View, как создавать формы для ввода и запроса данных, используя связанные элементы управления, и подсоединяться к источникам данных со сложной иерархической структурой средствами Data Environment. Далее вы изучите, как можно, используя Data Report, представлять информацию в форме, подходящей для печати, или как следует исполнять некоторые, наиболее широко распространенные задачи, связанные с обработкой данных, используя ADO внутри кода Visual Basic. В последних главах книги рассмотрены дополнительные операции, используемые в коде, в том числе формирование данных, для создания иерархических наборов записей, применение ADO в сети Internet и даже создание собственных источников данных. Чтобы более полно использовать средства ADO для извлечения информации из различных источников, в приложении к книге вы найдете справочник по языку SQL, в котором обсуждаются основы работы с оператором SQL SELECT.

    Автор: Гандерлой М.
    Издательсвто: Энтроп, Век
    Год издания: 2001
    Кол-во страниц: 336
    Стоимость: 177 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Excel, VBA, Internet в экономике и финансах

     Книга является руководством по использованию Microsoft Excel, разработке офисных бизнес-приложений средствами VBA и конструированию Web-страниц на базе DHTML и VBScript. Рассматриваются приемы создания отчетной финансовой и экономической документации средствами MS Excel, способы анализа и обработки собранной информации для принятия на ее основе оптимального решения; даются ответы на вопросы, которые возникают у программиста при разработке автоматизированных и интегрированных систем с помощью VBA; описываются особенности конструирования пользовательских элементов управления ActiveX, а также написания Windows-сценариев. Большое внимание уделено принципам создания интерактивных Web-страниц, виртуальных каталогов и магазинов. Книга содержит уникальную коллекцию типичных примеров. Почти каждая глава заканчивается списком упражнений, способствующих закреплению материала

    Автор: Гарнаев А
    Издательсвто: BHV - Санкт - Петербург
    Год издания: 2001
    Кол-во страниц: 816
    Стоимость: 230 р.
    Формат: 70х100/16
    Переплёт: мягкий

    MCSD. Сертификационный экзамен 70-175. Разработка распределенных приложений на Visual Basic 6.0. Учебный курс (+ CD-ROM)

     Настоящий учебный курс рекомендован корпорацией Microsoft как официальное пособие для подготовки к экзамену 70-175 «Designing and Implementing Distributed Applications with Microsoft Visual Basic 6.0» по программе сертификации разработчиков программных решений на основе продуктов Microsoft (Microsoft Certified Solutions Developer, MCSD). Эта книга познакомит Вас с основными понятиями, концепциями и методами, необходимыми для разработок распределенных программных решений на базе Visual Basic 6.0.

    Автор: MCSD Training Kit
    Издательсвто: Русская Редакция
    Год издания: 2000
    Кол-во страниц: 400
    Стоимость: 272 р.
    Формат: 70х100/1670х100/16
    Переплёт: мягкий

    Microsoft Visual Basic 5.0

     В книге рассматривается новая пятая версия Microsoft Visual Basic - языка программирования, являющегося фактическим стандартом визуального проектирования приложений. Описываются общие черты Visual Basic, реализованные в нем концепции объектно-ориентированного программирования, среда разработки (IDE). Далее рассматривается объектно-ориентированная модель Visual Basic и доступные разработчику объектные компоненты. Подробно описываются технологии программирования на языке Visual Basic и SQL, отладка и оптимизация кода приложения, вопросы компиляции исполняемых модулей. В последующих главах освещаются практические вопросы построения приложений - работа с текстом и графикой, механизмы доступа и управления данными, работа с внешними базами данных и создание приложений клиент/сервер. Книга предназначена для широкого круга программистов, работающих в области обработки данных и информационных систем.

    Автор: Шмидт В
    Издательсвто: ABF
    Год издания: 1997
    Кол-во страниц: 688
    Стоимость: 85 р.
    Формат: 84x108/16
    Переплёт: мягкий

    Microsoft Visual Basic 6.0

     Нет описания

    Автор: Лабор В, Макарчук Д
    Издательсвто: нет данных
    Год издания: 2001
    Кол-во страниц: 160
    Стоимость: 60 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Microsoft Visual Basic 6.0. Мастерская разработчика (+ CD-ROM)

     Книга состоит из 3 частей (34 главы) и предметного указателя. Написанная живо и доходчиво, она позволит освоить множество полезных приемов программирования, в том числе объектно-ориентированного, и научит, как создавать 32-разрядные приложения для Windows 95/98 и Windows NT — от экранных заставок до программ, ориентированных на Интернет. Кроме того, Вы узнаете, как расширить возможности языка за счет функций Win32 API и воспользоваться преимуществами технологии ActiveX.

    Автор: Джон Кларк Крейг, Джефф Уэбб
    Издательсвто: Русская Редакция
    Год издания: 2001
    Кол-во страниц: 720
    Стоимость: 272 р.
    Формат: 70х100/16
    Переплёт: твёрдый

    VB Script и ActiveX

     Книга предназначена для разработчиков Web - приложений на языке VBScript, желающих повысить свой профессиональный уровень и стать экспертами в этой области. В ней подробно рассказывается о новых возможностях VBScript, включая использование именованных констант, функций, переменных и коллекций, приводится вся необходимая информация о технологии ActiveX, принципах взаимодействия VBScript и Visual Basic при создании приложений, работающих на сервере. Прочитав эту книгу, вы научитесь использовать звуковые эффекты, создавать анимированную графику, строить формы для ввода данных, узнаете, как с помощью VBScript создать в Web электронный магазин и отслеживать число посетителей и деланные ими покупки. Вы даже сумеете написать увлекательную мультимедийную игру для Web.

    Автор: Скотт Палмер
    Издательсвто: Питер
    Год издания: 1999
    Кол-во страниц: 368
    Стоимость: 94 р.
    Формат: 70х100/16
    Переплёт: мягкий

    VBA 2000. Самоучитель

     В книге содержится краткий курс по использованию языка и системы VBA для Word и Excel 2000. Книга предназначена для начинающих программировать в среде Windows 95/98 с использованием в качестве базовых таких объектов Word и Excel, как документы, рабочие книги, листы и так далее. Материала книги достаточно для создания как простых макросов, помогающих автоматизировать рутинную повторяющуюся работу над документами и электронными таблицами, так и для разработки достаточно сложных приложений, обрабатывающих данные в диалоговых окнах, обеспечивающих пользователя самыми современными интерфейсными средствами.

    Автор: Кузьменко В
    Издательсвто: Бином
    Год издания: 2000
    Кол-во страниц: 416
    Стоимость: 116 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Visual Basic 6 Desktop. Экзамен 70-176

     Книги серии `Экзамен – экстерном` представляют собой удобные, сжатые, хорошо структурированные конспекты для подготовки к сдаче сертификационных экзаменов на звание Microsoft Certified Solution Developer. Книга `Visual Basic 6.0 Desktop. Экзамен 70-176` содержит только действительно необходимый материал, типовые вопросы с ответами и пример экзамена. Возможно, некоторые подходы, применяемые автором, покажутся вам не совсем привычными - не удивляйтесь: это не учебник по Visual Basic; организация материала в этой книге призвана максимально облегчить задачу экзаменуемого. Учтите, что в ряде случаев экзаменационные вопросы выходят за рамки тем, отраженных в документации по Visual Basic, а иной раз правильные ответы на них даже входят в противоречие с `официальной` информацией.

    Автор: Майкл Макдоналд
    Издательсвто: Питер
    Год издания: 2001
    Кол-во страниц: 608
    Стоимость: 123 р.
    Формат: 60x90/16
    Переплёт: мягкий

    Visual Basic 6. Руководство разработчика (+ CD-ROM)

     Эта книга, написанная известным специалистом и неутомимым пропагандистом Visual Basic, представляет собой прекрасный путеводитель по одному из наиболее популярных визуальных средств разработки Windows-приложений. Подробно освещаются такие ключевые темы программирования на Visual Basic, как проектирование и использование элементов ActiveX, программирование баз данных и разработка Web-приложений. Несомненный интерес представляют главы, посвященные работе с графикой. Большое количество тщательно продуманных примеров облегчает восприятие материала. Подбор материала и стиль изложения делают издание интересным и полезным для программистов разных уровней.

    Автор: Евангелос Петрусос
    Издательсвто: BHV, Ирина, SYBEX Inc
    Год издания: 2000
    Кол-во страниц: 1072
    Стоимость: 267 р.
    Формат: 70x100/32
    Переплёт: твёрдый

    Остальные книги о VB можно найти     здесь.

    наверх

    Основы работы с формой

    Максимальные размеры формы при определенном разрешении экрана (в пикселях)

    Разрешение - Размеры: высота/ширина

    640x480 - 7200 / 9600

    800x600 - 9000 / 12000

    1024x768 - 11520 / 15360

    Форма без заголовка

    Если вы хотите, чтобы на форме отсутствовало поле заголовка, измените свойства формы:
    Caption = ""
    ControlBox = False

    Отцентрировать контрол на форме

    Добавьте 1 CommandButton. При нажатии на кнопку, она переместится в центр вашей формы. Все кнопки вы можете использовать любой контрол.

    Private Sub Command1_Click()
    'Replace all the 'Command1' below with the name of the control you want to center.
    Command1.Left = (Form1.Width - Command1.Width) / 2
    Command1.Top = (Form1.Height / 2 - Command1.Height)
    End Sub

    наверх

    Заблокировать кнопку X на форме

    'Вариант 1

    Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
    Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
    Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
    Const SC_CLOSE = &HF060
    Const MF_BYCOMMAND = &H0
    Public Sub DisableXbutton(ByVal frmHwnd As Long)
    Dim hMenu As Long
    hMenu = GetSystemMenu(frmHwnd, 0&)
    If hMenu Then
    Call DeleteMenu(hMenu, SC_CLOSE, MF_BYCOMMAND)
    DrawMenuBar (frmHwnd)
    End If
    End Sub

    Private Sub Form_Load()
    DisableXbutton (Me.hwnd)
    End Sub

    'Вариант 2

    Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
    Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
    Const MF_BYPOSITION = &H400&
    Public Sub DisableCloseButton(F As Form)
    Dim hSysMenu As Long
    hSysMenu = GetSystemMenu(F.hwnd, 0)
    RemoveMenu hSysMenu, 6, MF_BYPOSITION
    RemoveMenu hSysMenu, 5, MF_BYPOSITION
    End Sub
    Private Sub Command1_Click()
    Call DisableCloseButton(Form1)
    End Sub

    наверх

    Сделать вашу форм поверх всех

    Добавьте 2 CommandButton (под именем Command1 и Command2). Когда вы нажимаете первую кнопку, ваша форма поверх всех

    Private Declare Function SetWindowPos Lib "user32" (ByVal h%, ByVal hb%, ByVal x%, ByVal Y%, ByVal cx%, ByVal cy%, ByVal F%) As Integer
    Const SWP_NOMOVE = 2
    Const SWP_NOSIZE = 1
    Const flags = SWP_NOMOVE Or SWP_NOSIZE
    Const HWND_TOPMOST = -1
    Const HWND_NOTOPMOST = -2

    Private Sub Command1_Click()
    res = SetWindowPos(Form1.hwnd, HWND_TOPMOST, 0, 0, 0, 0, flags) 'Форма on-top
    End Sub
    Private Sub Command2_Click()
    res = SetWindowPos(Form1.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, flags) 'Форма non-on-top
    End Sub

    наверх

    Создать градиент-Title Bar

    Добавьте модуль в ваш проект

    'КОД ФОРМЫ

    Private Sub Form_Load()
    GradForceColors = True
    'Замените 'True' на 'False' если хотите получить горизонтальную прорисовку
    GradVerticalGradient = True
    'Установить цвет активного заголовка
    GradForcedText = vbWhite
    'Замените две установки цвета ниже для изменения цвета фона активного заголовка
    GradForcedFirst = &H800000
    GradForcedSecond = &H8000
    'Установить цвет неактивного заголовка
    GradForcedTextA = &HC0C0C0
    'Замените две установки цвета ниже для изменения цвета фона неактивного заголовка
    GradForcedFirstA = vbBlack
    GradForcedSecondA = vbBlue
    GradientGetCapsFont
    GradientForm Me
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    GradientReleaseForm Me
    End Sub

    'КОД МОДУЛЯ

    Public GradForceColors As Boolean
    Public GradVerticalGradient As Boolean
    Public GradForcedText As Long, GradForcedTextA As Long
    Public GradForcedFirst As Long, GradForcedSecond As Long
    Public GradForcedFirstA As Long, GradForcedSecondA As Long
    Dim GradhWnd As Long, GradIcon As Long
    Dim DrawDC As Long, tmpDC As Long
    Dim hRgn As Long
    Dim tmpGradFont As Long
    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Const GWL_WNDPROC = (-4)
    Private Const GWL_STYLE = (-16)
    Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Private Declare Function GetProp Lib "user32" Alias "GetPropA" (ByVal hWnd As Long, ByVal lpString As String) As Long
    Private Declare Function SetProp Lib "user32" Alias "SetPropA" (ByVal hWnd As Long, ByVal lpString As String, ByVal hData As Long) As Long
    Private Declare Function RemoveProp Lib "user32" Alias "RemovePropA" (ByVal hWnd As Long, ByVal lpString As String) As Long
    Private Const LF_FACESIZE = 32
    Private Type LOGFONT
    lfHeight As Long
    lfWidth As Long
    lfEscapement As Long
    lfOrientation As Long
    lfWeight As Long
    lfItalic As Byte
    lfUnderline As Byte
    lfStrikeOut As Byte
    lfCharSet As Byte
    lfOutPrecision As Byte
    lfClipPrecision As Byte
    lfQuality As Byte
    lfPitchAndFamily As Byte
    lfFaceName(1 To LF_FACESIZE) As Byte
    End Type
    Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) As Long
    Private Const SPI_GETNONCLIENTMETRICS = 41
    Private Type NONCLIENTMETRICS
    cbSize As Long
    iBorderWidth As Long
    iScrollWidth As Long
    iScrollHeight As Long
    iCaptionWidth As Long
    iCaptionHeight As Long
    lfCaptionFont As LOGFONT
    iSMCaptionWidth As Long
    iSMCaptionHeight As Long
    lfSMCaptionFont As LOGFONT
    iMenuWidth As Long
    iMenuHeight As Long
    lfMenuFont As LOGFONT
    lfStatusFont As LOGFONT
    lfMessageFont As LOGFONT
    End Type
    Dim CaptionFont As LOGFONT
    Private Declare Function CreateFontIndirect Lib "gdi32" Alias "CreateFontIndirectA" (lpLogFont As LOGFONT) As Long
    Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
    End Type
    Private Declare Function IsWindowVisible Lib "user32" (ByVal hWnd As Long) As Long
    Private Declare Function IsZoomed Lib "user32" (ByVal hWnd As Long) As Long
    Private Declare Function SetCursor Lib "user32" (ByVal hCursor As Long) As Long
    Private Declare Function LoadCursor Lib "user32" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As Long) As Long
    Private Const IDC_SIZENS = 32645&
    Private Const IDC_SIZEWE = 32644&
    Private Const IDC_SIZENWSE = 32642&
    Private Const IDC_SIZENESW = 32643&
    Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
    Private Declare Function GetWindowRect Lib "user32" (ByVal hWnd As Long, lpRect As RECT) As Long
    Private Declare Function GetActiveWindow Lib "user32" () As Long
    Private Const WS_BORDER = &H800000
    Private Const WS_CAPTION = &HC00000
    Private Const WS_DLGFRAME = &H400000
    Private Const WS_MINIMIZE = &H20000000
    Private Const WS_MAXIMIZE = &H1000000
    Private Const WS_MAXIMIZEBOX = &H10000
    Private Const WS_MINIMIZEBOX = &H20000
    Private Const WS_OVERLAPPED = &H0&
    Private Const WS_SYSMENU = &H80000
    Private Const WS_THICKFRAME = &H40000
    Private Const WS_POPUP = &H80000000
    Private Const WS_SIZEBOX = WS_THICKFRAME
    Private Const WS_TILED = WS_OVERLAPPED
    Private Const WS_VISIBLE = &H10000000
    Private Declare Function GetParent Lib "user32" (ByVal hWnd As Long) As Long
    Private Declare Function GetWindowDC Lib "user32" (ByVal hWnd As Long) As Long
    Private Declare Function ReleaseDC Lib "user32" (ByVal hWnd As Long, ByVal hDC As Long) As Long
    Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
    Private Declare Function OffsetClipRgn Lib "gdi32" (ByVal hDC As Long, ByVal x As Long, ByVal Y As Long) As Long
    Private Declare Function OffsetRect Lib "user32" (lpRect As RECT, ByVal x As Long, ByVal Y As Long) As Long
    Private Declare Function DrawIconEx Lib "user32" (ByVal hDC As Long, ByVal xLeft As Long, ByVal yTop As Long, ByVal hIcon As Long, ByVal cxWidth As Long, ByVal cyWidth As Long, ByVal istepIfAniCur As Long, ByVal hbrFlickerFreeDraw As Long, ByVal diFlags As Long) As Long
    Private Declare Function DrawText Lib "user32" Alias "DrawTextA" (ByVal hDC As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long
    Private Const DT_SINGLELINE = &H20
    Private Const DT_VCENTER = &H4
    Private Const DT_END_ELLIPSIS = &H8000&
    Private Declare Function SelectClipRgn Lib "gdi32" (ByVal hDC As Long, ByVal hRgn As Long) As Long
    Private Declare Function GetClipRgn Lib "gdi32" (ByVal hDC As Long, ByVal hRgn As Long) As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Declare Function SelectObject Lib "gdi32" (ByVal hDC As Long, ByVal hObject As Long) As Long
    Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
    Private Declare Function GetSysColor Lib "user32" (ByVal nIndex As Long) As Long
    Private Const COLOR_ACTIVECAPTION = 2
    Private Const COLOR_CAPTIONTEXT = 9
    Private Const COLOR_INACTIVECAPTION = 3
    Private Const COLOR_INACTIVECAPTIONTEXT = 19
    Private Declare Function SetBkMode Lib "gdi32" (ByVal hDC As Long, ByVal nBkMode As Long) As Long
    Private Const TRANSPARENT = 1
    Private Declare Function SetTextColor Lib "gdi32" (ByVal hDC As Long, ByVal crColor As Long) As Long
    Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
    Private Const SM_CXBORDER = 5
    Private Const SM_CXDLGFRAME = 7
    Private Const SM_CXFRAME = 32
    Private Const SM_CXICON = 11
    Private Const SM_CXSMSIZE = 30
    Private Const SM_CYBORDER = 6
    Private Const SM_CYCAPTION = 4
    Private Const SM_CYDLGFRAME = 8
    Private Const SM_CYFRAME = 33
    Private Const SM_CYICON = 12
    Private Const SM_CYMENU = 15
    Private Const SM_CYSMSIZE = 31
    Private Declare Function FillRect Lib "user32" (ByVal hDC As Long, lpRect As RECT, ByVal hBrush As Long) As Long
    Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hDC As Long) As Long
    Private Declare Function DeleteDC Lib "gdi32" (ByVal hDC As Long) As Long
    Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hDC As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
    Private Declare Function CreateRectRgnIndirect Lib "gdi32" (lpRect As RECT) As Long
    Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
    Private Declare Function ExcludeClipRect Lib "gdi32" (ByVal hDC As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
    Private Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long
    Private Declare Function DrawFrameControl Lib "user32" (ByVal hDC As Long, lpRect As RECT, ByVal un1 As Long, ByVal un2 As Long) As Long
    Private Const DFC_CAPTION = 1
    Private Const DFCS_CAPTIONRESTORE = &H3
    Private Const DFCS_CAPTIONMIN = &H1
    Private Const DFCS_CAPTIONMAX = &H2
    Private Const DFCS_CAPTIONHELP = &H4
    Private Const DFCS_CAPTIONCLOSE = &H0
    Private Const DFCS_INACTIVE = &H100
    Private Const WM_SIZE = &H5
    Private Const WM_SETCURSOR = &H20
    Private Const WM_GETICON = &H7F
    Private Const WM_SETICON = &H80
    Private Const WM_NCACTIVATE = &H86
    Private Const WM_MDIACTIVATE = &H222
    Private Const WM_KILLFOCUS = &H8
    Private Const WM_MOUSEACTIVATE = &H21
    Private Const WM_MDIGETACTIVE = &H229
    Private Const MA_ACTIVATE = 1
    Private Const WM_SETTEXT = &HC
    Private Const WM_NCPAINT = &H85
    Private Const WM_NCLBUTTONDOWN = &HA1
    Private Const WM_NCRBUTTONDOWN = &HA4
    Private Const WM_SYSCOMMAND = &H112
    Private Const WM_INITMENUPOPUP = &H117
    Private Const SC_MOUSEMENU = &HF090&
    Private Const SC_MOVE = &HF010&
    Private Const HTCAPTION = 2
    Private Const HTSYSMENU = 3
    Private Const HTLEFT = 10
    Private Const HTRIGHT = 11
    Private Const HTTOP = 12
    Private Const HTTOPLEFT = 13
    Private Const HTTOPRIGHT = 14
    Private Const HTBOTTOM = 15
    Private Const HTBOTTOMLEFT = 16
    Private Const HTBOTTOMRIGHT = 17
    Private Function LoWord(LongIn As Long) As Integer
    If (LongIn And &HFFFF&) > &H7FFF Then
    LoWord = (LongIn And &HFFFF&) - &H10000
    Else
    LoWord = LongIn And &HFFFF&
    End If
    End Function
    Private Sub GetColors(IsActive As Boolean, LColor As Long, RColor As Long)
    If IsActive Then
    If GradForceColors Then
    LColor = GradForcedFirst
    RColor = GradForcedSecond
    Else
    LColor = vbBlack
    RColor = GetSysColor(COLOR_ACTIVECAPTION)
    End If
    Else
    If GradForceColors Then
    LColor = GradForcedFirstA
    RColor = GradForcedSecondA
    Else
    LColor = vbBlack
    RColor = GetSysColor(COLOR_INACTIVECAPTION)
    End If
    End If
    End Sub

    Public Sub GradientGetCapsFont()
    Dim NCM As NONCLIENTMETRICS
    Dim lfNew As LOGFONT
    NCM.cbSize = Len(NCM)
    Call SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, NCM, 0)
    CaptionFont = NCM.lfCaptionFont
    End Sub
    Private Sub GetCaptionRect(hWnd As Long, rct As RECT)
    Dim XBorder As Long
    Dim fStyle As Long
    Dim YHeight As Long
    YHeight = GetSystemMetrics(SM_CYCAPTION)
    fStyle = GetWindowLong(hWnd, GWL_STYLE)
    Select Case fStyle And &H80
    Case &H80
    XBorder = GetSystemMetrics(SM_CXDLGFRAME)
    Case Else
    XBorder = GetSystemMetrics(SM_CXFRAME)
    End Select
    rct.Left = XBorder
    rct.Right = XBorder
    rct.Top = XBorder
    rct.Bottom = rct.Top + YHeight - 1
    End Sub
    Private Sub GradateColors(Colors() As Long, ByVal Color1 As Long, ByVal Color2 As Long)
    Dim i As Long
    Dim dblR As Double, dblG As Double, dblB As Double
    Dim addR As Double, addG As Double, addB As Double
    Dim bckR As Double, bckG As Double, bckB As Double
    dblR = CDbl(Color1 And &HFF)
    dblG = CDbl(Color1 And &HFF00&) / 255
    dblB = CDbl(Color1 And &HFF0000) / &HFF00&
    bckR = CDbl(Color2 And &HFF&)
    bckG = CDbl(Color2 And &HFF00&) / 255
    bckB = CDbl(Color2 And &HFF0000) / &HFF00&
    addR = (bckR - dblR) / UBound(Colors)
    addG = (bckG - dblG) / UBound(Colors)
    addB = (bckB - dblB) / UBound(Colors)
    For i = 0 To UBound(Colors)
    dblR = dblR + addR
    dblG = dblG + addG
    dblB = dblB + addB
    If dblR > 255 Then dblR = 255
    If dblG > 255 Then dblG = 255
    If dblB > 255 Then dblB = 255
    If dblR < 0 Then dblR = 0
    If dblG < 0 Then dblG = 0
    If dblG < 0 Then dblB = 0
    Colors(i) = RGB(dblR, dblG, dblB)
    Next
    End Sub
    Private Function DrawGradient(ByVal Color1 As Long, ByVal Color2 As Long) As Long
    Dim i As Long
    Dim DestWidth As Long, DestHeight As Long
    Dim StartPnt As Long, EndPnt As Long
    Dim PixelStep As Long, XBorder As Long
    Dim WndRect As RECT
    Dim OldFont As Long
    Dim fStyle As Long, fText As String
    Dim SMSize As Long, SMSizeY As Long
    On Error Resume Next
    SMSize = GetSystemMetrics(SM_CXSMSIZE)
    SMSizeY = GetSystemMetrics(SM_CYSMSIZE)
    GetWindowRect GradhWnd, WndRect
    With WndRect
    DestWidth = .Right - .Left
    End With
    DestHeight = GetSystemMetrics(SM_CYCAPTION)
    fText = Space$(255)
    Call GetWindowText(GradhWnd, fText, 255)
    fText = Trim$(fText)
    fStyle = GetWindowLong(GradhWnd, GWL_STYLE)
    Select Case fStyle And &H80
    Case &H80
    XBorder = GetSystemMetrics(SM_CXDLGFRAME)
    DestWidth = (DestWidth - XBorder)
    Case Else
    XBorder = GetSystemMetrics(SM_CXFRAME)
    DestWidth = DestWidth - XBorder
    End Select
    StartPnt = XBorder
    EndPnt = XBorder + DestWidth - 4
    Dim rct As RECT
    Dim hBr As Long
    With rct
    If Not GradVerticalGradient Then
    PixelStep = DestWidth \ 8
    ReDim Colors(PixelStep) As Long
    GradateColors Colors(), Color1, Color2
    .Top = XBorder
    .Left = XBorder
    .Right = XBorder + (DestWidth \ PixelStep)
    .Bottom = (XBorder + DestHeight - 1)
    If (fStyle And &H80) = &H80 Then EndPnt = EndPnt + 1
    For i = 0 To PixelStep - 1
    hBr = CreateSolidBrush(Colors(i))
    FillRect DrawDC, rct, hBr
    DeleteObject hBr
    OffsetRect rct, (DestWidth \ PixelStep), 0
    If i = PixelStep - 2 Then .Right = EndPnt
    Next
    Else
    PixelStep = DestHeight \ 1
    ReDim Colors(PixelStep) As Long
    GradateColors Colors(), Color2, Color1
    .Top = XBorder
    .Left = XBorder
    If (fStyle And &H80) = &H80 Then
    .Right = (XBorder * 2) + DestWidth + 2
    Else
    .Right = (XBorder * 2) + DestWidth
    End If
    .Bottom = XBorder + (DestHeight \ PixelStep)
    For i = 0 To PixelStep - 1
    hBr = CreateSolidBrush(Colors(i))
    FillRect DrawDC, rct, hBr
    DeleteObject hBr
    OffsetRect rct, 0, (DestHeight \ PixelStep)
    If i = PixelStep - 2 Then .Bottom = XBorder + (DestHeight - 1)
    .Bottom = XBorder + (DestHeight - 1)
    Next
    End If
    .Top = XBorder
    If GradIcon <> 0 Then
    .Left = XBorder + SMSize + 2
    DrawIconEx DrawDC, XBorder + 1, XBorder + 1, GradIcon, SMSize - 2, SMSize - 2, ByVal 0&, ByVal 0&, 2
    Else
    .Left = XBorder
    End If
    tmpGradFont = CreateFontIndirect(CaptionFont)
    OldFont = SelectObject(DrawDC, tmpGradFont)
    SetBkMode DrawDC, TRANSPARENT
    If GradForceColors Then
    If Color1 = GradForcedFirst Then
    SetTextColor DrawDC, GradForcedText
    Else
    SetTextColor DrawDC, GradForcedTextA
    End If
    Else
    If Color2 = GetSysColor(COLOR_ACTIVECAPTION) Then
    SetTextColor DrawDC, GetSysColor(COLOR_CAPTIONTEXT)
    Else
    SetTextColor DrawDC, GetSysColor(COLOR_INACTIVECAPTIONTEXT)
    End If
    End If
    .Left = .Left + 2
    .Right = .Right - 10
    DrawText DrawDC, fText, Len(fText) - 1, rct, DT_SINGLELINE Or DT_END_ELLIPSIS Or DT_VCENTER
    SelectObject DrawDC, OldFont
    DeleteObject tmpGradFont
    tmpGradFont = 0
    Dim frct As RECT
    If (fStyle And WS_SYSMENU) = WS_SYSMENU Then
    Dim CurMaxPic As Long
    If IsZoomed(GradhWnd) Then
    CurMaxPic = DFCS_CAPTIONRESTORE
    Else
    CurMaxPic = DFCS_CAPTIONMAX
    End If
    With frct
    .Right = DestWidth - 2
    .Left = .Right - SMSize + 2
    .Top = XBorder + 2
    .Bottom = .Top + (DestHeight - 5)
    End With
    DrawFrameControl DrawDC, frct, DFC_CAPTION, DFCS_CAPTIONCLOSE
    OffsetRect frct, -(SMSize), 0
    If (fStyle And WS_MAXIMIZEBOX) = WS_MAXIMIZEBOX And (fStyle And WS_MINIMIZEBOX) = WS_MINIMIZEBOX Then
    DrawFrameControl DrawDC, frct, DFC_CAPTION, CurMaxPic
    OffsetRect frct, -(SMSize) + 2, 0
    DrawFrameControl DrawDC, frct, DFC_CAPTION, DFCS_CAPTIONMIN
    ElseIf (fStyle And WS_MAXIMIZEBOX) = WS_MAXIMIZEBOX Then
    DrawFrameControl DrawDC, frct, DFC_CAPTION, CurMaxPic
    OffsetRect frct, -(SMSize) + 2, 0
    DrawFrameControl DrawDC, frct, DFC_CAPTION, DFCS_CAPTIONMIN Or DFCS_INACTIVE
    ElseIf (fStyle And WS_MINIMIZEBOX) = WS_MINIMIZEBOX Then
    DrawFrameControl DrawDC, frct, DFC_CAPTION, CurMaxPic Or DFCS_INACTIVE
    OffsetRect frct, -(SMSize) + 2, 0
    DrawFrameControl DrawDC, frct, DFC_CAPTION, DFCS_CAPTIONMIN
    End If
    End If
    .Left = XBorder
    .Right = .Right + 12
    If tmpDC <> 0 Then
    BitBlt tmpDC, .Left, .Top, .Right - .Left - 10, .Bottom - .Top, DrawDC, .Left, .Top, vbSrcCopy
    ExcludeClipRect tmpDC, XBorder, XBorder, DestWidth, XBorder(DestHeight - 1)
    End If
    End With
    End Function
    Public Function GradientCallback(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Dim OldGradProc As Long
    Dim OldBMP As Long, NewBMP As Long
    Dim rcWnd As RECT
    Dim tmpFrm As Form
    Dim tmpCol1 As Long, tmpCol2 As Long
    Static GettingIcon As Boolean
    GradhWnd = hWnd
    OldGradProc = GetProp(GradhWnd, "OldMeProc")
    If Not GettingIcon Then
    GettingIcon = True
    GradIcon = SendMessage(hWnd, WM_GETICON, 0, ByVal 0&)
    GettingIcon = False
    End If
    Select Case wMsg
    Case WM_NCACTIVATE, WM_MDIACTIVATE, WM_KILLFOCUS, WM_MOUSEACTIVATE
    GetWindowRect GradhWnd, rcWnd
    tmpDC = GetWindowDC(GradhWnd)
    DrawDC = CreateCompatibleDC(tmpDC)
    NewBMP = CreateCompatibleBitmap(tmpDC, rcWnd.Right - rcWnd.Left, 50)
    OldBMP = SelectObject(DrawDC, NewBMP)
    With rcWnd
    hRgn = CreateRectRgn(.Left, .Top, .Right, .Bottom)
    SelectClipRgn tmpDC, hRgn
    OffsetClipRgn tmpDC, -.Left, -.Top
    End With
    If wMsg = WM_KILLFOCUS And GetParent(GradhWnd) <> 0 Then
    GetColors False, tmpCol1, tmpCol2
    ElseIf wMsg = WM_NCACTIVATE And wParam And _
    (GetParent(GradhWnd) = 0) Then
    GetColors True, tmpCol1, tmpCol2
    ElseIf wMsg = WM_NCACTIVATE And wParam = 0 And (GetParent(GradhWnd) = 0) Then
    GetColors False, tmpCol1, tmpCol2
    ElseIf wParam = GradhWnd And GetParent(GradhWnd) <> 0 Then
    GetColors False, tmpCol1, tmpCol2
    ElseIf SendMessage(GetParent(GradhWnd), WM_MDIGETACTIVE, 0, 0) = GradhWnd Then
    GetColors True, tmpCol1, tmpCol2
    ElseIf GetActiveWindow() = GradhWnd Then
    GetColors True, tmpCol1, tmpCol2
    Else
    GetColors False, tmpCol1, tmpCol2
    End If
    DrawGradient tmpCol1, tmpCol2
    SelectObject DrawDC, OldBMP
    DeleteObject NewBMP
    DeleteDC DrawDC
    OffsetClipRgn tmpDC, rcWnd.Left, rcWnd.Top
    GetClipRgn tmpDC, hRgn
    If wMsg = WM_MOUSEACTIVATE Then
    GradientCallback = MA_ACTIVATE
    Else
    GradientCallback = 1
    End If
    ReleaseDC GradhWnd, tmpDC
    DeleteObject hRgn
    tmpDC = 0
    Exit Function
    Case WM_SETTEXT, WM_NCPAINT, WM_NCLBUTTONDOWN, _
    WM_NCRBUTTONDOWN, WM_SYSCOMMAND, WM_INITMENUPOPUP
    GetWindowRect GradhWnd, rcWnd
    tmpDC = GetWindowDC(GradhWnd)
    DrawDC = CreateCompatibleDC(tmpDC)
    NewBMP = CreateCompatibleBitmap(tmpDC, rcWnd.Right - rcWnd.Left, 50)
    OldBMP = SelectObject(DrawDC, NewBMP)
    With rcWnd
    hRgn = CreateRectRgn(.Left, .Top, .Right, .Bottom)
    SelectClipRgn tmpDC, hRgn
    OffsetClipRgn tmpDC, -.Left, -.Top
    End With
    If (GetActiveWindow() = GradhWnd) Then
    GetColors True, tmpCol1, tmpCol2
    ElseIf SendMessage(GetParent(GradhWnd), WM_MDIGETACTIVE, 0, 0) = GradhWnd Then
    GetColors True, tmpCol1, tmpCol2
    Else
    GetColors False, tmpCol1, tmpCol2
    End If
    DrawGradient tmpCol1, tmpCol2
    SelectObject DrawDC, OldBMP
    DeleteObject NewBMP
    DeleteDC DrawDC
    OffsetClipRgn tmpDC, rcWnd.Left, rcWnd.Top
    GetClipRgn tmpDC, hRgn
    GradientCallback = CallWindowProc(OldGradProc, hWnd, WM_NCPAINT, hRgn, lParam)
    ReleaseDC GradhWnd, tmpDC
    DeleteObject hRgn
    tmpDC = 0
    If wMsg = (WM_NCLBUTTONDOWN And wParam <> HTSYSMENU And wParam <> HTCAPTION) Or wMsg = _
    (WM_SYSCOMMAND And Not (wParam = SC_MOUSEMENU)) Then
    GetCaptionRect GradhWnd, rcWnd
    ExcludeClipRect tmpDC, rcWnd.Left, rcWnd.Top, rcWnd.Right, rcWnd.Bottom
    ElseIf wMsg = WM_NCLBUTTONDOWN And wParam = HTCAPTION Then
    If IsZoomed(GradhWnd) = 0 Then
    GradientCallback = SendMessage(GradhWnd, WM_SYSCOMMAND, SC_MOVE, ByVal 0&)
    End If
    Exit Function
    Else
    Exit Function
    End If
    Case WM_SIZE
    If hWnd = GradhWnd Then
    SendMessage GradhWnd, WM_NCPAINT, 0, 0
    End If
    Case WM_SETCURSOR
    Select Case LoWord(lParam)
    Case HTTOP, HTBOTTOM
    SetCursor LoadCursor(ByVal 0&, IDC_SIZENS)
    Case HTLEFT, HTRIGHT
    SetCursor LoadCursor(ByVal 0&, IDC_SIZEWE)
    Case HTTOPLEFT, HTBOTTOMRIGHT
    SetCursor LoadCursor(ByVal 0&, IDC_SIZENWSE)
    Case HTTOPRIGHT, HTBOTTOMLEFT
    SetCursor LoadCursor(ByVal 0&, IDC_SIZENESW)
    Case Else
    GoTo JustCallBack
    End Select
    GradientCallback = 1
    Exit Function
    End Select
    JustCallBack:
    GradientCallback = CallWindowProc(OldGradProc, hWnd, wMsg, wParam, lParam)
    End Function
    Public Sub GradientForm(frm As Form)
    Dim tmpProc As Long
    tmpProc = SetWindowLong(frm.hWnd, GWL_WNDPROC, AddressOf GradientCallback)
    SetProp frm.hWnd, "OldMeProc", tmpProc
    End Sub
    Public Sub GradientReleaseForm(frm As Form)
    Dim tmpProc As Long
    tmpProc = GetProp(frm.hWnd, "OldMeProc")
    RemoveProp frm.hWnd, "OldMeProc"
    If tmpProc = 0 Then Exit Sub
    SetWindowLong frm.hWnd, GWL_WNDPROC, tmpProc
    End Sub

    наверх

    Спрятать/показать панель заголовка

    Добавьте 2 CommandButton на форму

    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Private Const GWL_STYLE = (-16)
    Private Const WS_CAPTION = &HC00000
    Private Const WS_MAXIMIZEBOX = &H10000
    Private Const WS_MINIMIZEBOX = &H20000
    Private Const WS_SYSMENU = &H80000
    Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
    Private Enum ESetWindowPosStyles
    SWP_SHOWWINDOW = &H40
    SWP_HIDEWINDOW = &H80
    SWP_FRAMECHANGED = &H20
    SWP_NOACTIVATE = &H10
    SWP_NOCOPYBITS = &H100
    SWP_NOMOVE = &H2
    SWP_NOOWNERZORDER = &H200
    SWP_NOREDRAW = &H8
    SWP_NOREPOSITION = SWP_NOOWNERZORDER
    SWP_NOSIZE = &H1
    SWP_NOZORDER = &H4
    SWP_DRAWFRAME = SWP_FRAMECHANGED
    HWND_NOTOPMOST = -2
    End Enum
    Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
    Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
    End Type
    Private Function ShowTitleBar(ByVal bState As Boolean)
    Dim lStyle As Long
    Dim tR As RECT
    GetWindowRect Me.hwnd, tR
    lStyle = GetWindowLong(Me.hwnd, GWL_STYLE)
    If (bState) Then
    Me.Caption = Me.Tag
    If Me.ControlBox Then
    lStyle = lStyle Or WS_SYSMENU
    End If
    If Me.MaxButton Then
    lStyle = lStyle Or WS_MAXIMIZEBOX
    End If
    If Me.MinButton Then
    lStyle = lStyle Or WS_MINIMIZEBOX
    End If
    If Me.Caption = "" Then
    lStyle = lStyle Or WS_CAPTION
    End If
    Else
    Me.Tag = Me.Caption
    Me.Caption = ""
    lStyle = lStyle And Not WS_SYSMENU
    lStyle = lStyle And Not WS_MAXIMIZEBOX
    lStyle = lStyle And Not WS_MINIMIZEBOX
    lStyle = lStyle And Not WS_CAPTION
    End If
    SetWindowLong Me.hwnd, GWL_STYLE, lStyle
    SetWindowPos Me.hwnd, 0, tR.Left, tR.Top, tR.Right - tR.Left, tR.Bottom - tR.Top, SWP_NOREPOSITION Or SWP_NOZORDER Or SWP_FRAMECHANGED
    Me.Refresh
    End Function
    Private Sub Command1_Click()
    ShowTitleBar False
    End Sub
    Private Sub Command2_Click()
    ShowTitleBar True
    End Sub

    наверх

    Определить, загружена ли форма

    Добавьте 2 CommandButton и другую форму (Form 2)

    Function FormLoadedByName(FormName As String) As Boolean
    Dim i As Integer, fnamelc As String
    fnamelc = LCase$(FormName)
    FormLoadedByName = False
    For i = 0 To Forms.Count - 1
    If LCase$(Forms(i).Name) = fnamelc Then
    FormLoadedByName = True
    Exit Function
    End If
    Next
    End Function
    Private Sub Command1_Click()
    'Замените 'Form2' именем формы, про которую хотите знать...
    If FormLoadedByName("Form2") = True Then
    MsgBox "Форма загружена"
    Else
    MsgBox "Форма не загружена"
    End If
    End Sub
    Private Sub Command2_Click()
    Load Form2
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     P@Ssword

    Ответ ожидается по этому адресу

    Может, у кого есть описания протоколов SMTP и POP3? Скиньте мне, plz.

    Автор вопроса: Иван

    Ответ ожидается по этому адресу

    Я яапускаю программу EXE, сделанную во Flash таким обраяом:

    Shell App.Path & "\" & "Times.exe", vbMaximizedFocus

    Проблема в том, что данная программа не раяварачивает окно на максимальный раямер, а оставляет яаголовок. Подскажите, может кто встречался с такой проблеммой.

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Как скопировать текст находящейся вне формы.

    Автор вопроса: Velin

    Ответ ожидается по этому адресу

    Как из Excel сохранить данные в *.dbf файл, но не лист целеком (сохранить как...), а выборочно

    Автор вопроса: Samit

    Ответ ожидается по этому адресу

    Как можно непосредственно из программы отсылать письма без почтового клиента?

    Автор вопроса: Pasha

    Ответ ожидается по этому адресу

    Кто нибудь сталкивался с такой проблемой: если создается соединение между 2 компьютерами через Winsock, а потом закрыть соединение то неудастся соединиться заново пока не закроешь и не откроешь программу ?

    Автор вопроса: Xatab

    Ответ ожидается по этому адресу

    Плиз кто нибудь киньте на мыло программу перекодировщик VB в VC. Очень нужно.

    Автор вопроса: sapient

    Ответ ожидается по этому адресу

    Как средствами VBA for Excel 97 получить список файлов в папке и каким обрпзом их всех последовательно пооткрывать (все *.xls)?

    Автор вопроса: Ревягин_Алексей

    Ответ ожидается по этому адресу

    Вписал этот код:

    Option Explicit
    Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
    Private Declare Function GetMenuItemID Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
    Private Declare Function SetMenuItemBitmaps Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal hBitmapUnchecked As Long, ByVal hBitmapChecked As Long) As Long
    Private Const MF_BITMAP = &H4&
    Private Declare Function CreateBrushIndirect Lib "gdi32" (lpLogBrush As LOGBRUSH) As Long
    Private Declare Function GetMenuInfo Lib "user32" (ByVal hMenu As Long, lpcmi As tagMENUINFO) As Long
    Private Declare Function SetMenuInfo Lib "user32" (ByVal hMenu As Long, lpcmi As tagMENUINFO) As Long
    Private Type LOGBRUSH
    lbStyle As Long
    lbColor As Long
    lbHatch As Long
    End Type

    Private Type tagMENUINFO
    cbSize As Long
    fMask As Long
    dwStyle As Long
    cyMax As Long
    hbrBack As Long
    dwContextHelpID As Long
    dwMenuData As Long
    End Type

    Private Const BS_SOLID = 0
    Private Const MIM_APPLYTOSUBMENUS = &H80000000
    Private Const MIM_BACKGROUND = &H2

    Private Sub Form_Load()
    Dim ret As Long
    Dim hMenu As Long
    Dim hBrush As Long
    Dim lbBrushInfo As LOGBRUSH
    Dim miMenuInfo As tagMENUINFO
    lbBrushInfo.lbStyle = BS_SOLID
    lbBrushInfo.lbColor = <цвет>
    lbBrushInfo.lbHatch = 0
    hBrush = CreateBrushIndirect(lbBrushInfo)
    hMenu = GetMenu(Me.hwnd)
    miMenuInfo.cbSize = Len(miMenuInfo)
    ret = GetMenuInfo(hMenu, miMenuInfo)
    miMenuInfo.fMask = MIM_APPLYTOSUBMENUS Or MIM_BACKGROUND
    miMenuInfo.hbrBack = hBrush
    ret = SetMenuInfo(hMenu, miMenuInfo)
    SetMenuItemBitmaps hMenu, GetMenuItemID(GetSubMenu(hMenu, 0), 0), MF_BITMAP, LoadResPicture(101, vbResBitmap), LoadResPicture(101, vbResBitmap)
    SetMenuItemBitmaps hMenu, GetMenuItemID(GetSubMenu(hMenu, 0), 1), MF_BITMAP, LoadResPicture(104, vbResBitmap), LoadResPicture(104, vbResBitmap)
    SetMenuItemBitmaps hMenu, GetMenuItemID(GetSubMenu(hMenu, 0), 2), MF_BITMAP, LoadResPicture(107, vbResBitmap), LoadResPicture(107, vbResBitmap)
    End Sub

    1) Почему при каждом вызове PopupMenu или просто при нажатии на кнопку меню появляются разные картинки, имеющиеся у меня на форме, а не которые надо(из файла ресурсов либо с формы(например:

    SetMenuItemBitmaps hMenu, GetMenuItemID(GetSubMenu(hMenu, 0), 2), MF_BITMAP,Picture1(0).Picture),Picture1(0).Picture))).

    2)как из файла ресурсов читать: GIF'ы, JPG, EXE? (BMP в 5 раз больше по размеру чем соответстующий ему GIF или JPG)

    Автор вопроса: rul@langepas.wsnet.ru

    Ответ ожидается по этому адресу

    Подскажите пожалуйста, как в VB 3.0 использовать WinSoket. А лучше отошлите (если есть) исходничок.

    Автор вопроса: Андрей

    Ответ ожидается по этому адресу

    Пишу прогу на visual basic 5.0, сталкнулся с такой проблемой, как при нажатии на кнопку раявернуть окно выбора документов и нажатии на соответсвующий документ открыть Word.

    Автор вопроса: Андрей

    Ответ ожидается по этому адресу

    Народ требуется ХЕЛП, как в Visual Basic 5.0 сделать чтоб при нажатии, например кнопки Command1 открывалась программа Word. Если можно подробнее об этом.

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Что такое hwnd. Что можно сделать зная hwnd чужего окна.

    Ответы:

    Вопрос:

    У меня в базе данных, в одной таблице два поля. В первом названия клипов, во втором названия файлов. Первое поле выводится на ListBox. Как сделать, чтобы при двойном нажатии на какой-либо строке в поле 1, в MediaPlayer загружался файл из соответствующего поля 2?

    Ответ:

    Автор ответа: Ревягин_Алексей

    Помести но форму объект Windows MediaPlayer и обзови его так : MP1
    Помести на форму TextBox1 с Visible=false и укажи у него меню

    Properties->DataSource=ОБЪЕКТ_КОТОРЫЙ_ПРИСОЕДИНЁН К_БД (напр, Data1)
    Properties->DataField=ИМЯ_ПОЛЯ_ГДЕ_ХРАНЯТСЯ_НАЗВАНИЯ_ФАЙЛОВ

    и впиши следующий код:

    Private Sub ListBox1_dblclick()
    'так как у тебя в поле 2 хранятся названия файлов, то
    Data1.recordset.absoluteposition=listbox1.listindex
    MP1.FileName="_ПУТЬ_ДО_ПАПКИ_С_ФАЙЛАМИ_" & textbox1.text
    end sub

    Вопрос:

    Как мне соядать SETUP не более 2Мб.
    Хочу поделиться своей ОЧЕНЬ ПРРОСТОЙ программкой, которая всего лишь соядает текстовый файл, а SETUP к нему весит от 10 до 14 Мб.
    Можно как-нибудь справиться с этим?
    Понимаю, что эта тема всех достала, но еще никто мне доступно не ответил, все как-то абстрактно.

    Ответ:

    Автор ответа: Мунгалов Андрей

    проблема в том что программы написанные на VB не работают без библиотеки исполнения а она одна для VB6 весит около 1,3 мега + если используешь какие-то ActiveX компоненты они тоже прилагаются к дистрибутиву. поэтому даже если программа делает просто 2+2 она все равно будет много места занимать. выход можно попробовать такой узнать на той машине куда будешь ставить программу, есть библиотека или нет, может ее уже с другой программой ставили. тогда можно просто один EXE файл скопировать.

    Вопрос:

    Как мне соядать SETUP не более 2Мб.
    Хочу поделиться своей ОЧЕНЬ ПРРОСТОЙ программкой, которая всего лишь соядает текстовый файл, а SETUP к нему весит от 10 до 14 Мб.
    Можно как-нибудь справиться с этим?
    Понимаю, что эта тема всех достала, но еще никто мне доступно не ответил, все как-то абстрактно.

    Ответ:

    Автор ответа: Иван

    С папки System скопируй в директорию где лежит твоя программа следующие файлы: Richtx32.ocx, Msvbvm60.dll. Вот пожалуй и всё.
    Ещё очень важно, чтобы на компе, на котором будет ставиться программа, эти файлы лежали либо в одной директории с exe, либо в папке System. Да и ещё на всякий случай замечу, что всегда тебе придётся к своим проектам ложить Msvbvm60.dll, т.к. именно он отвечает за основные элементы VB. А если используешь дополнительные библиотеки, то просто необходимо посмотреть на какой ocx он ссылается. Можно обойтись и без инсталяшки, если использовать программу Fusion, но она немного замедляет работу программы.

    Вопрос:

    Подскажите плз, как мне безоговорочно переписать существующий файл.
    Вот что у меня есть:

    excelapp.Workbooks(1).SaveAs FileName:="c:\tmp.xls", AccessMode:=xlShared

    Сейчас, если файл c:\tmp.xls есть, то задается вопрос, переписать ли поверх. Мне же надо, чтобы он это не спрашивал, а сразу, молча переписывал.

    Ответ:

    Автор ответа: Kirill

    Чтоб не выводились предупреждения в офисных приложениях надо свойство DisplayAlerts установить в False:

    excelapp.DisplayAlerts = False
    ...
    excelapp.Workbooks(1).SaveAs FileName:="c:\tmp.xls", AccessMode:=xlShared
    ...
    excelapp.DisplayAlerts = True

    Вопрос:

    Подскажите плз, как мне безоговорочно переписать существующий файл.
    Вот что у меня есть:

    excelapp.Workbooks(1).SaveAs FileName:="c:\tmp.xls", AccessMode:=xlShared

    Сейчас, если файл c:\tmp.xls есть, то задается вопрос, переписать ли поверх. Мне же надо, чтобы он это не спрашивал, а сразу, молча переписывал.

    Ответ:

    Автор ответа: Ревягин_Алексей

    в модуле:
    Public Declare Function MoveFile Lib "kernel32" Alias "MoveFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String) As Long

    В процедуре перемещения

    Kill ПУТЬ_К_СТАРОМУ_ФАЙЛУ
    MoveFile ПУТЬ_К_НОВОМУ_ФАЙЛУ, ПУТЬ_К_СТАРОМУ_ФАЙЛУ

    Вопрос:

    Какие вояможности VB поддерживает VBScript? или какие не поддерживает?

    Ответ:

    Автор ответа: DeadMorozzz

    VBScript это практечески одно и тоже, что и VB. Т.е. ты можешь без проблем код из VBScript ксопировать в VB и все будет работать. А вот наоборот сложнее из-за объектов =). Короче говоря, то, что ты можешь сделать на VB, ты можешь сделать и на VBScript, за исключением, пожалуй, работы с объектами и формами, но и там можно кое-что придумать...

    Вопрос:

    Помогите разобраться в функцией "open" чтения данных из файла. Я запутался с типом "input,output,random,binary" и присвоением. Подскажите где можно найти подробнее об этом операторе..

    Ответ:

    Автор ответа: Igoryk

    В общем функция Open служит для работы с файлами.
    Open File For Output as 1 - создает файл File, а если таковой был, то очищает его.
    Open File For Append as 1 - создает файл, но если файл существует, то открывает его и добавляет в конец запись, которую ты укажешь (Print #1 или Write #1)
    Open File For Input as 1 - открывает файл для чтения из него информации.
    Open File For Random as 1 - открывает файл для чтения\записи из\в файла типы данных, например

    Type My
    a as string*4
    b as long
    End Type
    Open File For Random as 1
    Get #1,,My

    В этом случае 4 байта окажется в My.a, и 4 байта (тип Long) в My.b

    Open File For Binary as 1 - делает с файлом то же, что и Random, но используется для двоичного доступа к файлу: например, считать байт определенным номером и т.п.

    Вопрос:

    Помогите разобраться в функцией "open" чтения данных из файла. Я запутался с типом "input,output,random,binary" и присвоением. Подскажите где можно найти подробнее об этом операторе..

    Ответ:

    Автор ответа: Filippov Anton Sergeevich

    Тут все просто. Формат такой:
    open "полное_имя_файла" for <опция> as #n

    open - Команда открытия файла;

    полное_имя_файла - полное имя файла, который требуется открыть;

    <опция> - для чего открывается файл:
    input - чтение данных,
    output - перезапись файла (если он не существовал, то будет создан)
    append - устанавливает счтитывающе-записывающее устройство на конец файла, для добавления данных в конец файла.

    #n - номер от #1 до #256. Например первый файл открывается как #1, второй как #2...

    После завершения операций ввода-вывода файл следует закрыть
    close #n - для закрытия файла с номером N или close для закрытия всех открытых файлов.

    вывод:
    input #n, "куда_выводить"

    #n - номер файла, из которого выводится строка "куда_выводить" - переменная, textbox, label и т.д.

    запись:
    print #n,"строка"
    в качестве "строки" может быть конкретная строка, переменная, текстовое поле, параметр (Например Form1.caption).

    Вопрос:

    Помогите разобраться в функцией "open" чтения данных из файла. Я запутался с типом "input,output,random,binary" и присвоением. Подскажите где можно найти подробнее об этом операторе..

    Ответ:

    Автор ответа: Ревягин_Алексей

    dim FNumber as integer

    Private Sub Command1_click()
    fnumber=freefile
    open "ПУТЬ_К_НОВОМУ_ФАЙЛУ" for output as fnumber
    print #fnumber,"СТРОКИ_В_ФАЙЛЕ"
    close fnumber
    end sub

    Private Sub Command2_click()
    fnumber=freefile
    open "ПУТЬ_К_СУЩЕСТВУЮЩЕМУ_ФАЙЛУ" for input as fnumber
    line input #fnumber, "ПЕРЕМЕННАЯ_В_КОТОРУЮ_СОХРАНЯЕТСЯ_СТРОКА"
    close fnumber
    end sub

    Private Sub Command3_Click()
    fnumber=freefile
    open "ПУТЬ_К_СУЩЕСТВУЮЩЕМУ_ФАЙЛУ" for append as fnumber
    print #fnumber, "СТРОКА_КОТОРАЯ_БУДЕТ_ДОБАВЛЕНА_В_КОНЕЦ_ФАЙЛА"
    close fnumber
    end sub

    Вопрос:

    1)Как реально прописать прогу в реестре ?
    2)Как найти в richtextbox слова какие выберешь ну там и изменить их цвет ?
    3)Как сделать так чтоб комп проверял столкнулись объекты или нет для игры очень надо ?

    Ответ:

    Автор ответа: Roman 'Devil' Yuakovlev

    2) Функция instr и дальше selstart, sellenght
    3) Проверять их координаты... или заплатить мне 1000 долларов, я буду проверять за него... Конкретнее вопрос можно?

    Вопрос:

    1)Как реально прописать прогу в реестре ?
    2)Как найти в richtextbox слова какие выберешь ну там и изменить их цвет ?
    3)Как сделать так чтоб комп проверял столкнулись объекты или нет для игры очень надо ?

    Ответ:

    Автор ответа: Igoryk

    2. Ну например ищешь в тексте слово "комп", для этого используй следующий код:
    MyWord="комп" ' Это слово которое нужно найти
    MyColor=RGB(255,0,0) ' Каким цветом выделить слово
    FindText=Instr(RichTextBox1.Text,MyWord) 'Ищет слово в тексте
    If FindText<>0 Then 'Если удалось что-то найти
    RichTextBox1.SelStart = FindText 'Начинаем помечать слово
    RichTextBox1.SelLength = Len(MyWord) 'Заканчиваем
    RichTextBox1.SelColor = MyColor 'Меняем цвет текста
    RichTextBox1.SelLength = 0 'Снимаем выделение
    End IF
    3. Если я тебя правильно понял, то посмотри на http://www.igoryksoft.narod.ru/vb/vb12.htm

    Вопрос:

    1)Как реально прописать прогу в реестре ?
    2)Как найти в richtextbox слова какие выберешь ну там и изменить их цвет ?
    3)Как сделать так чтоб комп проверял столкнулись объекты или нет для игры очень надо ?

    Ответ:

    Автор ответа: Ревягин_Алексей

    dim pos as long

    Private Function _ПОИСК_СЛОВ_(slovo as string)
    With RTFBox
    if pos=0 then
    pos = .Find(slovo, 0, Len(.Text))
    else
    pos = .Find(slovo, pos + 1, Len(.Text))
    endif
    If pos = -1 Then
    pos = 0
    i = i + 1
    Else
    .SelStart = pos
    .SelLength = Len(slovo)
    .SelColor = ЦВЕТ_КАКИМ_НАДО_ВЫДЕЛИТЬ_НАЙДЕНОЕ_СЛОВО
    .SelLength=0
    End If
    End With
    End Function

    Вопрос:

    Подскажите, как отправить готовый отчет ия Access или Exele по почте (адрес всегда один и тот же)

    Ответ:

    Автор ответа: Сергей

    для отправки книги EXEL по Email пользуюсь функцией:

    Application.Dialogs(xlDialogSendMail).Show ("adress@yahoo.com")

    но при этом адрес получателя должен быть, также, записан в адресную книгу.

    Вопрос:

    Я подключаюсь к базе данных .mdb используя ADODB. Одно из полей "word" таблицы "Catalog" содержит данные типа OLE-объект. Там находятся файлы *.doc. Каким образом я смогу получить их содержимое (хотябы добраться до Object.Words.Item(#).Text)?

    Ответ:

    Автор ответа: Н. Шувалов

    Посмотри по этому адресу:
    http://vbnet.ru/faq/showtopic.asp?id=133

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 46.

VBNet
  • Библиотека кодов
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый 46-ой выпуск рассылки.
    Читайте!

    Содержание выпуска
    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Visual Basic 6. Мастер. Руководство для профессионалов

     Язык программирования Visual Basic - мощный инструмент разработки приложений для 32-разрядных систем Windows 95 и Windows NT. В книге рассматриваются как фундаментальные понятия и темы: от установки продукта на компьютер пользователя и описания интегрированной среды разработки до изложения основ техники программирования на Visual Basic, так и сложные вопросы, адресованные профессиональным программистам: создание интерфейса пользователя, применение стандартных элементов управления, в том числе и для работы с базами данных, программирование компонентов ActiveX, описание технологии OLE drag-and-drop, объектная модель FSO, функции работы с файлами, отладка и оптимизация программ, локализация и распространение готовых приложений.

    Автор: нет даных
    Издательсвто: нет данных
    Год издания: 1998
    Кол-во страниц: 992
    Стоимость: 112,48 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Visual Basic 6. Специальный справочник

     Главная цель этого справочника - научить читателя использовать инструменты и средства Visual Basic, позволяющие значительно облегчить и ускорить процесс создания приложений. Здесь вы найдете описание элементов языка, библиотечных функций и SQL-операторов. Особое внимание уделено различным мастерам, предназначенным для решения стандартных задач. Весь справочный материал в книге разбит на главы, в каждой из которых вы найдете информацию по созданию приложения определенной направленности. Разделы в главе содержат пошаговое описание операций, которые нужно выполнить для решения поставленной задачи, синтаксис необходимых операторов, а также подробно разобранные примеры. Предлагаемый справочник будет полезен не только пользователям, активно работающим с Visual Basic 6, но и начинающим программистам, желающим перейти к профессиональной разработке приложений с наименьшими затратами времени на изучение новой среды программирования.

    Автор: Б. Карпов
    Издательсвто: Питер
    Год издания: 2000
    Кол-во страниц: 416
    Стоимость: 70,78 р.
    Формат: 84х108/32
    Переплёт: нет данных

    Visual Basic 6.0 for application

     Книга является систематизированным справочником по всем элементам языка программирования Visual Basic (VB), входящим, как в автономную версию VB, так и в основные реализации Visual Basic for Applications.
    Помимо тех официальных сведений, которые можно найти в документации и в справочной системе, книга содержит конкретные примеры, рекомендации и маленькие хитрости программиста, а также поправки к справочной системе, которая, увы, не без ошибок.
    Книга предназначена для всех специалистов, занимающихся разработкой приложений с применением Visual Basic и Visual Basic for Applications.

    Автор: Король В.И.
    Издательсвто: КУДИЦ-Образ
    Год издания: 2000
    Кол-во страниц: 448
    Стоимость: 113,87 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Win32 API и Visual Basic. / Для профессионалов /

     Книга является сборником полезных советов и приемов, хотя в ней, вероятно, описаны тысячи разных приемов. Она не была задумана как энциклопедия самостоятельных фрагментов программного кода, которые бездумно подключаются к приложению - хотя многие ее примеры можно использовать подобным образом.

    Автор: Д. Эпплман
    Издательсвто: Питер
    Год издания: 2001
    Кол-во страниц: 1120
    Стоимость: 489,08 р.
    Формат: нет данных
    Переплёт: нет данных

    Азбука программирования в Windows 32 API

     Изложены вопросы создания программных приложений для Window95 и Windows NT. Описаны основные типы переменных, макросов, функций. Материал книги иллюстрируется многочисленными примерами. 1 Настоящее издание (второе вышло в 2000 г.) дополнено описанием тех возможностей Windows, которые не были упомянуты в предыдущих изданиях.

    Автор: Румянцев П.В.
    Издательсвто: Радио и связь
    Год издания: 2001
    Кол-во страниц: 312
    Стоимость: 85 р.
    Формат: 60х88/16
    Переплёт: нет данных

    Использование Visual Basic 6. Специальное издание

     В книге описана новая версия популярной системы программирования Visual Basic 6. Изложение материала построено по принципу "от простого к сложному". Первые главы этой книги адресованы новичкам, из которых они смогут почерпнуть основы языка Visual Basic и описание его стандартных компонентов. Для подготовленных пользователей будет интересен раздел, посвященный специальным методам программирования с использованием стандартных компонентов Windows, элементов управления ActiveX, ADO. RDO и др. В отдельную часть вынесены вопросы, связанные с разработкой приложений баз данных на Visual Basic и работе в Internet. Автор не обошел также вниманием различные версии языка Visual Basic - VBA и VBScript. В приложениях приведен обзор интегрированной среды разработки Visual Basic, а также краткий справочник по SQL.
    Книга рассчитана на широкий круг читателей.

    Автор: Сайлер Б., Споттс Дж.
    Издательсвто: Вильямс
    Год издания: 1999
    Кол-во страниц: 832
    Стоимость: 244,02 р.
    Формат: 70х100/16
    Переплёт: твёрдый

    Обработка баз данных на Visual Basic 6 + CD

     Сердцем многих приложении, работающих в сфере бизнеса, являются базы данных. Своим широким распространением они обязаны возможности централизованного доступа к информации. который характеризуется последовательностью, эффективностью и относительной простотой создания и поддержки. В книге "Обработка баз данных на Visual Basic 6" описываются все технологии доступа к базам данных с помощью Visual Basic. Приведенные в этой книге примеры взяты из реальной жизни, поэтому, ознакомившись с ними, вы узнаете, как можно использовать базы данных для принятия решений в сфере бизнеса. Если вы еще не готовы перейти к версии Visual Basic 6, это вовсе не значит, что данная книга вам не подходит. Практически 95% материала этой книги удовлетворит в равной степени пользователей как пятой, так и шестой версий Visual Basic.
    Книга рассчитана на программистов средней и высокой квалификации.

    Автор: Мак-Манус Дж.П.
    Издательсвто: Вильямс
    Год издания: 1999
    Кол-во страниц: 672
    Стоимость: 294,66 р.
    Формат: 70х100/16
    Переплёт: твёрдый

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 06.04.2002 12:22 | Раздел: ActiveX контролы | Автор: Борзенков Дмитрий

    UniButtonCntrl - С виду обычный CommandButton, но многоцелевой. 23 варианта использования. Помимо всего не обязательно видеть кнопочку на форме, кликать откуда душе угодно... С ее помощью можно открыть папку Принтеры, запустить форматирование диска (точнее только открыть соответствующее окошко), открыть настройки порта... в общем полезная штучка ;-).

    Дата: 05.04.2002 20:20 | Раздел: ActiveX контролы | Автор: Sky Software

    ShellLinkOCX - Хороший контрол, который позволяет создавать ярлыки в меню Windows, можно создать ярлык и на рабочем столе. В отличие от других аналогичных средств, этот OCX позволяет использовать все возможности... т.е. можно назначить рабочий каталог, горячие клавиши и т.д. Во всех отношениях полезный контрол.

    Дата: 04.04.2002 20:19 | Раздел: Примеры кода | Автор: Илья

    ListView - Простенький примерчик работы с элементом управления ListView. Все элементарно... добавляем элементы, удаляем элементы и т.д. Кому нужно - смотрите.

    Дата: 04.04.2002 03:50 | Раздел: Статьи по VB | Автор: Зимин Никита

    Настраиваемое меню инструментов - Меню "Инструменты" (Tools) делают для того, чтобы из нашей программы было легко вызвать какие-то другие утилиты, предназначенные для решения задач того же круга. Удобно, если это меню будет настраиваемым (customizeable). Попытаюсь рассказать про один из вариантов реализации такого меню.

    Дата: 03.04.2002 09:17 | Раздел: Примеры кода | Автор: Rob Wright

    ResizableSkinned - Как сделать Scin (шкурку)? Этот пример очень все просто показывает, как можно одеть шкурку на форму. Кроме того только здесь можно изучить технологию шкурок, которые можно наложить на окно с изменяемыми размерами! Пример очень хороший, всем советую.

    Дата: 01.04.2002 20:15 | Раздел: Примеры кода | Автор: Шатрыкин Иван

    CreateScinWindows - Пример показывает, как создавать окна неправильной формы на основе любого рисунка (т.е. как сделать Scin). Кроме того показывается как можно сделать динамическое изменение формы окна во время выполнения программы. Рекомендую всем познакомиться с этим примером и тогда эти наипопулярнейшие шкурки будут и в Ваших программах. Удачи!

    Последние 20 тем форума на VBNet.Ru:

    23:10 / 6 апр. Где взять Chart FX 2.0? | Ответов: 0
    20:19 / 6 апр. (*.log) | Ответов: 1
    14:11 / 6 апр. Кнопка в заголовке | Ответов: 1
    13:12 / 6 апр. Срочно! | Ответов: 1
    19:29 / 5 апр. Программа с параметрами | Ответов: 1
    18:33 / 5 апр. DirectX и громкость звука | Ответов: 0
    13:51 / 5 апр. MSFlexGrid...Срочно! плз... | Ответов: 1
    13:50 / 5 апр. Помогите | Ответов: 0
    08:46 / 5 апр. Помогите пожалуйста разобраться | Ответов: 3
    22:24 / 4 апр. Закрытие программы | Ответов: 1
    18:58 / 4 апр. Как закрываются проекты? | Ответов: 1
    16:56 / 4 апр. Как добавить компоненты на toolbox в VB | Ответов: 1
    15:41 / 4 апр. Языки | Ответов: 3
    15:11 / 4 апр. загрузка программы... | Ответов: 2
    10:23 / 4 апр. Обновление записей ADO в Oracle | Ответов: 1
    04:15 / 4 апр. Альтернативный Shell... | Ответов: 2
    21:17 / 3 апр. А как нащет Gif??? | Ответов: 1
    13:54 / 3 апр. Доступ к контролам формы Outlook на VBScript | Ответов: 0
    12:01 / 3 апр. Передача параметров EXE файлу | Ответов: 2
    05:38 / 3 апр. Загрузка приложения... | Ответов: 1

    Последние поступления в Библиотеку кодов:

    Нет новых кодов.

    наверх

    Новости сайта VBMania

    • 25.01 - Сегодня открылся новый раздел, в котором вы можете найти ссылки на целую кучу книг по тематике VB и около него.
    • 22.01 - 22 января вышел второй номер он-лайн журнала о Visual Basic 'VB Мания'. В нем можно почитать авторские статьи в уже устоявшихся разделах: Технологии, Система, Графика, Профессия, Человечество и Юмор. Так же не обошлось без новшеств: появился новый раздел dotNET и особенно рецензии ActiveX-компонентов. Обязательно заходите.
    • 17.12 - В связи с тем что форум не горел желаением вести себя так, как должен обычный, порядочный форум, мы его прикрыли для проведения разъяснительных мероприятий. Надеемся, что они не затянутся и форум образумится.
    • 06.12 - С сегодняшнего дня все желающие могут добавлять свои новости и статьи в наши архивы.
      Да здраствует открытость!
    • 27.11 - Наконец-то, после долгих дней и бессонных ночей это свершилось! Сайт объявляется открытым! Непременно прочитайте первый номер нашего журнала. Оцените наши дополнительные проекты. И конечно мы ждем ваших откликов в гостевой книге и по почте.
    • 01.12 - Произошло несколько косметических улучшений, касающихся исключительно удобства работы с сайтом. Во-первых, можно видеть количество записей обсуждения новостей на главной странице; а во-вторых чуточку подправились директории.
      Оценяйте!

    наверх

    Новости сайта Азбука VB

    • 30 марта 2001 года
      Создания сетевого приложения на основе UDP. Небольшой примерчик для создания сетевого приложения на основе UDP протокола. Используется элемент Winsock.
      Работа с контролом TreeView - запись и чтение "деревьев" из простого файла
      Cимпатичные часики со скинами . На этом примере можете научиться делать свои скины.
      Пример программного регистрирования/дерегистрирования библиотек
      Записная книжка. Очень интересный пример. Еще один вариант реализации записной книжки.
      Будильник.
      Запись/чтение mp3 id3v1 тегов Производится считывание тегов ID3 из mp3 файлов или шх записи.
      Mover_20 . Mover_20 - это новый контрол, который с помощью сабклассинга контролирует перемещение формы за стандартный заголовок и позволяет ей прилипать к краям экрана.
      Cоздание тени у формы Показывается, как с помощью API-функций можно создать тень у простой формы.
      Добавление данных из таблицы базы в лист Excel. Использование метода Copyfromrecordset. При использование этого метода, данные добавляются несколько быстрее...

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Serg

    Ответ ожидается по этому адресу

    У меня у формы BorderStyle=0, как мне программно поменять его на 1 или 2, если написать просто form1.borderstyle=1, то ничего не происходит.

    Автор вопроса: ~~

    Ответ ожидается по этому адресу

    Вот какой вопрос: надо сделать тестовую прогу очень easy,скажете вы ну я и сделал конечно J, но надо чтоб все вопросы и варианты брались из техтового документа
    Построчно: первая строка-вопрос а четыре другие-варианты и их так штук 30
    И чтоб номер строки указанный как перемнная задавал сам текст в каптионе оптиона
    И лабеле главное код а лабелу или каптиону присваиваться будет сам соображу!

    Автор вопроса: syspaval

    Ответ ожидается по этому адресу

    Кто нибудь знает альтернативный способ создания Клиент-Сервисных приложений на VB, кроме как соединения через Winsock

    Автор вопроса: DDT

    Ответ ожидается по этому адресу

    Вопрос 1:
    Допустим, что я вставил в файл excel какие-то числа. Как можно теперь по ним построить диаграмму. При том все, конечно, программно, а не руками :)

    Вопрос 2:
    Или другой вариант. Мне нужна на форме вставленная диаграмма, связанная с диаграммой в файле. Если я не могу создавать диаграмму в файле, но могу туда загонять нужные числа, то я пытаюсь в свойстве диаграммы SourceDoc написать следующее:

    C:\tmp.xls!Лист1!R1C1:R18C2

    А он мне на форме ничего не строит :(

    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

    Как ияменить дату/время соядания, дату/время последнего доступа и дату/время последней модификации файла ия программы VB?

    Автор вопроса: DiAbolico

    Ответ ожидается по этому адресу

    В Excel есть длинный столбец высотой страниц на шесть, а ширина - вполовину страницы. Как можно его порезать на кусочки, чтобы ими целиком заполнить все страницы, но по порядку - на первой странице - первых два куска, на второй - третий и четвертый и т.д.?
    (Зараметр типа worksheets.page не нашел)

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Как сделать что бы в одном контроле были и папки и файлы. Папки и фалы должны быть со яначками.

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Как соедниться с другим компьютером черея модем и что он смог видеть все файлы которые есть у меня а я которые есть у него.

    Автор вопроса: Vitali

    Ответ ожидается по этому адресу

    Можно ли созданную через встроенные средства XL панельку сделать временной (т.е. удаляющейся после закрытия файла или сессии)? Пробовал прописать .DELETE в AUTO_CLOSE, но так работает некорректно - удаляет панель на стадии начала процедуры закрытия файла (во время вывода диалогового окна о сохранении изменений - т.е. на стадии, когда закрытие еще можно прервать). Пока я пришел к выводу, что всю панель придется переписать в VB с указанием параметра Temporary, или все-таки существует вариант добавления этого параметра к уже существующей панели? Может, кто-то подскажет, где XL/VB хранят свойства созданной встроенными средствами панели?

    Ответы:

    Вопрос:

    Может, у кого есть описания протоколов SMTP и POP3? Скиньте мне, plz.

    Ответ:

    Автор ответа: Igoryk

    Посмотри на www.sources.ru

    Вопрос:

    Как скопировать текст находящейся вне формы.

    Ответ:

    Автор ответа: Ревягин_Алексей

    Данная функция получает содержимое любого дочернего окна

    Function fncCaptureText(lIndex As Integer)
    'lIndex - индекс дочерней формы
    Dim rc As Integer
    Dim wm As Integer
    Dim lm As String
    wm = 1024
    lm = Space(1024)
    rc = SendMessage(Child(lIndex).hchild, &HD, wm, lm)
    If rc <> 0 Then lm = Left(lm, rc)
    msgbox lm
    End Function

    Вопрос:

    Кто нибудь сталкивался с такой проблемой: если создается соединение между 2 компьютерами через Winsock, а потом закрыть соединение то неудастся соединиться заново пока не закроешь и не откроешь программу ?

    Ответ:

    Автор ответа: DedMorozzz

    Ничего подобного! Просто сокету на TCP/IP нужно некоторое время на установку и закрытие соединения, в течение которого, он, естественно, не будет работать. Если хочешь, чтобы все было мгновенно, используй UDP протокол.

    Вопрос:

    Как средствами VBA for Excel 97 получить список файлов в папке и каким обрпзом их всех последовательно пооткрывать (все *.xls)?

    Ответ:

    Автор ответа: Kirill

    Для последовательного открытия вполне можно и список файлов получать последовательно:

    Sub GetXLSList()
    Dim fName As String
    ' получаем первое имя файла в папке (если он есть)
    fName = Dir("c:\folder\*.xls")
    Do While fName <> ""
    Workbooks.Open fName ' открываем найденный файл
    '...
    fName = Dir ' получаем имя следующего файла
    Loop
    End Sub

    Вопрос:

    Народ требуется ХЕЛП, как в Visual Basic 5.0 сделать чтоб при нажатии, например кнопки Command1 открывалась программа Word. Если можно подробнее об этом.

    Ответ:

    Автор ответа: VMJ

    Создаешь на формме скрытый OLE - объект - докуметнт Word Записываешь нужную информацию (например текс в формате RTF ) в файл sRZV
    Далее запускаешь код:
    OLE1.Action = 10
    OLE1.SourceDoc = sRZV
    OLE1.Action = 1
    OLE1.Action = 7
    В результате файл sRzv откроется в Word

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 47.

VBNet
  • Библиотека кодов
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Поздравляю всех космонавтов с праздником!
    Читайте!

    Содержание выпуска
    • Книги

    • Выравнивание формы относительно экрана
    • Ограничить перемещение одной формы в пределах другой
    • Создать Gradient-форму (с использованием API)
    • Создать градиент-форму #2
    • Создание всплывающей панели
    • Как перетаскивать форму за любое место

    • Вопрос/Ответ

    Книги

    ADO и Visual Basic. Руководство разработчика

     В книге описано использование технологии доступа к данным (ADO) с помощью основного инструмента разработки приложений Microsoft - Visual Basic 6.0. Из книги вы узнаете, как можно исследовать источники данных при помощи окна Data View, как создавать формы для ввода и запроса данных, используя связанные элементы управления, и подсоединяться к источникам данных со сложной иерархической структурой средствами Data Environment. Далее вы изучите, как можно, используя Data Report, представлять информацию в форме, подходящей для печати, или как следует исполнять некоторые, наиболее широко распространенные задачи, связанные с обработкой данных, используя ADO внутри кода Visual Basic. В последних главах книги рассмотрены дополнительные операции, используемые в коде, в том числе формирование данных, для создания иерархических наборов записей, применение ADO в сети Internet и даже создание собственных источников данных. Чтобы более полно использовать средства ADO для извлечения информации из различных источников, в приложении к книге вы найдете справочник по языку SQL, в котором обсуждаются основы работы с оператором SQL SELECT.

    Автор: Гандерлой М.
    Издательсвто: Энтроп, Век
    Год издания: 2001
    Кол-во страниц: 336
    Стоимость: 177 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Excel, VBA, Internet в экономике и финансах

     Книга является руководством по использованию Microsoft Excel, разработке офисных бизнес-приложений средствами VBA и конструированию Web-страниц на базе DHTML и VBScript. Рассматриваются приемы создания отчетной финансовой и экономической документации средствами MS Excel, способы анализа и обработки собранной информации для принятия на ее основе оптимального решения; даются ответы на вопросы, которые возникают у программиста при разработке автоматизированных и интегрированных систем с помощью VBA; описываются особенности конструирования пользовательских элементов управления ActiveX, а также написания Windows-сценариев. Большое внимание уделено принципам создания интерактивных Web-страниц, виртуальных каталогов и магазинов. Книга содержит уникальную коллекцию типичных примеров. Почти каждая глава заканчивается списком упражнений, способствующих закреплению материала

    Автор: Гарнаев А
    Издательсвто: BHV - Санкт - Петербург
    Год издания: 2001
    Кол-во страниц: 816
    Стоимость: 230 р.
    Формат: 70х100/16
    Переплёт: мягкий

    MCSD. Сертификационный экзамен 70-175. Разработка распределенных приложений на Visual Basic 6.0. Учебный курс (+ CD-ROM)

     Настоящий учебный курс рекомендован корпорацией Microsoft как официальное пособие для подготовки к экзамену 70-175 «Designing and Implementing Distributed Applications with Microsoft Visual Basic 6.0» по программе сертификации разработчиков программных решений на основе продуктов Microsoft (Microsoft Certified Solutions Developer, MCSD). Эта книга познакомит Вас с основными понятиями, концепциями и методами, необходимыми для разработок распределенных программных решений на базе Visual Basic 6.0.

    Автор: MCSD Training Kit
    Издательсвто: Русская Редакция
    Год издания: 2000
    Кол-во страниц: 400
    Стоимость: 272 р.
    Формат: 70х100/1670х100/16
    Переплёт: мягкий

    Microsoft Visual Basic 5.0

     В книге рассматривается новая пятая версия Microsoft Visual Basic - языка программирования, являющегося фактическим стандартом визуального проектирования приложений. Описываются общие черты Visual Basic, реализованные в нем концепции объектно-ориентированного программирования, среда разработки (IDE). Далее рассматривается объектно-ориентированная модель Visual Basic и доступные разработчику объектные компоненты. Подробно описываются технологии программирования на языке Visual Basic и SQL, отладка и оптимизация кода приложения, вопросы компиляции исполняемых модулей. В последующих главах освещаются практические вопросы построения приложений - работа с текстом и графикой, механизмы доступа и управления данными, работа с внешними базами данных и создание приложений клиент/сервер. Книга предназначена для широкого круга программистов, работающих в области обработки данных и информационных систем.

    Автор: Шмидт В
    Издательсвто: ABF
    Год издания: 1997
    Кол-во страниц: 688
    Стоимость: 85 р.
    Формат: 84x108/16
    Переплёт: мягкий

    Microsoft Visual Basic 6.0

     Нет описания

    Автор: Лабор В, Макарчук Д
    Издательсвто: нет данных
    Год издания: 2001
    Кол-во страниц: 160
    Стоимость: 60 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Microsoft Visual Basic 6.0. Мастерская разработчика (+ CD-ROM)

     Книга состоит из 3 частей (34 главы) и предметного указателя. Написанная живо и доходчиво, она позволит освоить множество полезных приемов программирования, в том числе объектно-ориентированного, и научит, как создавать 32-разрядные приложения для Windows 95/98 и Windows NT — от экранных заставок до программ, ориентированных на Интернет. Кроме того, Вы узнаете, как расширить возможности языка за счет функций Win32 API и воспользоваться преимуществами технологии ActiveX.

    Автор: Джон Кларк Крейг, Джефф Уэбб
    Издательсвто: Русская Редакция
    Год издания: 2001
    Кол-во страниц: 720
    Стоимость: 272 р.
    Формат: 70х100/16
    Переплёт: твёрдый

    VB Script и ActiveX

     Книга предназначена для разработчиков Web - приложений на языке VBScript, желающих повысить свой профессиональный уровень и стать экспертами в этой области. В ней подробно рассказывается о новых возможностях VBScript, включая использование именованных констант, функций, переменных и коллекций, приводится вся необходимая информация о технологии ActiveX, принципах взаимодействия VBScript и Visual Basic при создании приложений, работающих на сервере. Прочитав эту книгу, вы научитесь использовать звуковые эффекты, создавать анимированную графику, строить формы для ввода данных, узнаете, как с помощью VBScript создать в Web электронный магазин и отслеживать число посетителей и деланные ими покупки. Вы даже сумеете написать увлекательную мультимедийную игру для Web.

    Автор: Скотт Палмер
    Издательсвто: Питер
    Год издания: 1999
    Кол-во страниц: 368
    Стоимость: 94 р.
    Формат: 70х100/16
    Переплёт: мягкий

    VBA 2000. Самоучитель

     В книге содержится краткий курс по использованию языка и системы VBA для Word и Excel 2000. Книга предназначена для начинающих программировать в среде Windows 95/98 с использованием в качестве базовых таких объектов Word и Excel, как документы, рабочие книги, листы и так далее. Материала книги достаточно для создания как простых макросов, помогающих автоматизировать рутинную повторяющуюся работу над документами и электронными таблицами, так и для разработки достаточно сложных приложений, обрабатывающих данные в диалоговых окнах, обеспечивающих пользователя самыми современными интерфейсными средствами.

    Автор: Кузьменко В
    Издательсвто: Бином
    Год издания: 2000
    Кол-во страниц: 416
    Стоимость: 116 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Visual Basic 6 Desktop. Экзамен 70-176

     Книги серии `Экзамен – экстерном` представляют собой удобные, сжатые, хорошо структурированные конспекты для подготовки к сдаче сертификационных экзаменов на звание Microsoft Certified Solution Developer. Книга `Visual Basic 6.0 Desktop. Экзамен 70-176` содержит только действительно необходимый материал, типовые вопросы с ответами и пример экзамена. Возможно, некоторые подходы, применяемые автором, покажутся вам не совсем привычными - не удивляйтесь: это не учебник по Visual Basic; организация материала в этой книге призвана максимально облегчить задачу экзаменуемого. Учтите, что в ряде случаев экзаменационные вопросы выходят за рамки тем, отраженных в документации по Visual Basic, а иной раз правильные ответы на них даже входят в противоречие с `официальной` информацией.

    Автор: Майкл Макдоналд
    Издательсвто: Питер
    Год издания: 2001
    Кол-во страниц: 608
    Стоимость: 123 р.
    Формат: 60x90/16
    Переплёт: мягкий

    Visual Basic 6. Руководство разработчика (+ CD-ROM)

     Эта книга, написанная известным специалистом и неутомимым пропагандистом Visual Basic, представляет собой прекрасный путеводитель по одному из наиболее популярных визуальных средств разработки Windows-приложений. Подробно освещаются такие ключевые темы программирования на Visual Basic, как проектирование и использование элементов ActiveX, программирование баз данных и разработка Web-приложений. Несомненный интерес представляют главы, посвященные работе с графикой. Большое количество тщательно продуманных примеров облегчает восприятие материала. Подбор материала и стиль изложения делают издание интересным и полезным для программистов разных уровней.

    Автор: Евангелос Петрусос
    Издательсвто: BHV, Ирина, SYBEX Inc
    Год издания: 2000
    Кол-во страниц: 1072
    Стоимость: 267 р.
    Формат: 70x100/32
    Переплёт: твёрдый

    Остальные книги о VB можно найти     здесь.

    наверх

    Выравнивание формы относительно экрана

    Добавьте 3 CommandButton на форму. Вставьте следующий код

    Private Sub Form_Load()
    Form1.Top = Screen.Height / 2 - Form1.Height / 2
    End Sub
    Private Sub Command1_Click()
    Form1.Left = 0
    End Sub
    Private Sub Command2_Click()
    Form1.Left = Screen.Width / 2 - Form1.Width / 2
    End Sub
    Private Sub Command3_Click()
    Form1.Left = Screen.Width - Form1.Width
    End Sub

    наверх

    Ограничить перемещение одной формы в пределах другой

    'Начните новый проект, добавьте в события формы1 (Form1) следующий код

    Private Sub Form_Load()
    Load Form2
    Form2.Show
    End Sub

    'добавьте еще одну форму (под именем Form2). Вставьте на форму2 следующий код:

    Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
    Private Sub Form_Load()
    r = SetParent(Me.hWnd, Form1.hWnd)
    End Sub

    'Запустите проект на выполнение. Данный код ограничит передвижение второй формы относительно первой формы.

    наверх

    Создать Gradient-форму (с использованием API)

    Добавьте 2 CommandButton

    Private Type TRIVERTEX
    x As Long
    y As Long
    Red As Integer
    Green As Integer
    Blue As Integer
    Alpha As Integer
    End Type
    Private Type GRADIENT_RECT
    UpperLeft As Long
    LowerRight As Long
    End Type
    Const GRADIENT_FILL_RECT_H As Long = &H0
    Const GRADIENT_FILL_RECT_V As Long = &H1
    Private Declare Function GradientFillRect Lib "msimg32" Alias "GradientFill" (ByVal hdc As Long, pVertex As TRIVERTEX, ByVal dwNumVertex As Long, pMesh As GRADIENT_RECT, ByVal dwNumMesh As Long, ByVal dwMode As Long) As Long
    Private Sub Form_Load()
    Me.ScaleMode = vbPixels
    End Sub
    Private Function LongToUShort(ULong As Long) As Integer
    LongToUShort = CInt(ULong - &H10000)
    End Function
    Private Function UShortToLong(Ushort As Integer) As Long
    UShortToLong = (CLng(Ushort) And &HFFFF&)
    End Function
    Private Sub Command2_Click()
    Cls
    End Sub
    Private Sub Command1_Click()
    Dim vert(1) As TRIVERTEX
    Dim gRect As GRADIENT_RECT
    With vert(0)
    .x = 0
    .y = 0
    .Red = 0&
    .Green = &HFF&
    .Blue = 0&
    .Alpha = 0&
    End With
    With vert(1)
    .x = Me.ScaleWidth
    .y = Me.ScaleHeight
    .Red = 0&
    .Green = LongToUShort(&HFF00&)
    .Blue = LongToUShort(&HFF00&)
    .Alpha = 0&
    End With
    gRect.UpperLeft = 1
    gRect.LowerRight = 0
    'Замените GRADIENT_FILL_RECT_H на GRADIENT_FILL_RECT_V чтобы рисовать вертикальную прорисовку
    GradientFillRect Me.hdc, vert(0), 2, gRect, 1, GRADIENT_FILL_RECT_H
    End Sub

    наверх

    Создать градиент-форму #2

    Этот пример создает Form/Picture Box с фоном, например как в инсталяционной программе
    Установите свойство формы AutoRedraw в True.

    рисунок примера

    Sub Gradient(TheObject As Object, ByVal Redval As Long, ByVal Greenval As _
    Long, ByVal Blueval As Long, ByVal Direction As Integer)
    Dim Step As Integer, Reps As Integer, FillTop As Integer
    Dim FillLeft As Integer, FillRight As Integer, FillBottom As Integer
    If Direction < 1 Or Direction > 4 Then Direction = 1
    FillTop = 0
    FillLeft = 0
    If Direction < 3 Then
    Step = (TheObject.Height / 100)
    If Direction = 2 Then FillTop = TheObject.Height - Step
    FillBottom = FillTop + Step
    FillRight = TheObject.Width
    Else
    Step = (TheObject.Width / 100)
    If Direction = 4 Then FillLeft = TheObject.Width - Step
    FillRight = FillLeft + Step
    FillBottom = TheObject.Height
    End If
    For Reps = 1 To 100
    If Direction = 2 And Reps = 100 Then FillTop = 0
    If Direction = 4 And Reps = 100 Then FillLeft = 0
    Redval = Redval - 3
    Greenval = Greenval - 3
    Blueval = Blueval - 3
    If Redval <= 0 Then Redval = 0
    If Greenval <= 0 Then Greenval = 0
    If Blueval <= 0 Then Blueval = 0
    TheObject.Line (FillLeft, FillTop)-(FillRight, FillBottom), RGB(Redval, _
    Greenval, Blueval), BF
    If Direction < 3 Then
    If Direction = 1 Then
    FillTop = FillBottom
    Else
    FillTop = FillTop - Step
    End If
    FillBottom = FillTop + Step
    Else
    If Direction = 3 Then
    FillLeft = FillRight
    Else
    FillLeft = FillLeft - Step
    End If
    FillRight = FillLeft + Step
    End If
    Next Reps
    End Sub
    Private Sub Form_Load()
    'Поэкспериментируйте над цифрами 200, 100, 300
    'Замените "1" на 2, 3 или 4
    Gradient Me, 200, 100, 300, 1
    'Gradient Picture1, 200, 100, 300, 1
    End Sub

    Private Sub Form_Resize()
    'Положите здесь те же номера, что и выше
    Gradient Me, 200, 100, 300, 1
    'Gradient Picture1, 200, 100, 300, 1
    End Sub

    наверх

    Создание всплывающей панели

    У каждого юзера, работающего в операционной системе Windows'98 есть панель задач (это панелька, на которой находится кнопка ПУСК). Некоторые любят в настройках этой панели установить значение "Автоматически убирать с экрана", и тогда панель будет автоматически убираться, когда она не активна. Так вот этот пример покажет, как можно средствами VB создать такую всплывающую справа панельку, подобную панели задач. Проект сырой, то есть вы можете его доработать, как вам заблагорасудится. Если вы что-то измените в этом проекте,     дайте мне знать.

    Создайте новый проект. Положите на форму компонент Timer. В свойствах формы укажите:
    .AutoRedraw = True
    .BorderStyle = 0
    .MinButton = False
    .MaxButton = False
    .ShowInTaskbar = False
    Вставьте следующий код:

    Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
    Private Type POINTAPI
    x As Long
    y As Long
    End Type
    Private Type Formsize
    Left As Long
    Top As Long
    Width As Long
    Height As Long
    End Type

    Private Const MaxSize = 50
    Private Const MinSize = 1
    Private Const Fade = False ' Установите данное значение либо True либо False

    Private Sub Command1_Click()
    Unload Me
    End Sub
    Private Sub Form_Load()
    Timer1.Interval = 50
    Form_Resize
    End Sub
    Private Sub Form_Resize()
    Me.Move Screen.Width - (MinSize * Screen.TwipsPerPixelX), 0, (MaxSize * Screen.TwipsPerPixelX), Screen.Height
    Me.Cls
    Me.Line (0, 0)-(0, Me.Height), &HFFFFFF
    End Sub
    Private Sub Timer1_Timer()
    Dim a As POINTAPI
    Dim Form As Formsize
    Dim CurCut As Long

    Form.Width = Me.Width / Screen.TwipsPerPixelX
    Form.Left = Me.Left / Screen.TwipsPerPixelX
    Form.Height = Me.Height / Screen.TwipsPerPixelY
    Form.Top = Me.Top / Screen.TwipsPerPixelY
    Call GetCursorPos(a)
    If a.x >= Form.Left And a.x < Form.Left + Form.Width And a.y >= Form.Top And a.y < Form.Height + Form.Top Then
    If Me.Tag <> "0" Then
    If Fade = True Then
    CurCut = 1
    Do Until Me.Left - (CurCut * Screen.TwipsPerPixelX) <= Screen.Width - (MaxSize * Screen.TwipsPerPixelX)
    Me.Left = Me.Left - (CurCut * Screen.TwipsPerPixelX)
    DoEvents
    Loop
    Me.Move Screen.Width - (MaxSize * Screen.TwipsPerPixelX), 0, (MaxSize * Screen.TwipsPerPixelX), Screen.Height
    Else
    Me.Move Screen.Width - (MaxSize * Screen.TwipsPerPixelX), 0, (MaxSize * Screen.TwipsPerPixelX), Screen.Height
    End If
    Me.Tag = "0"
    End If
    Else
    If Me.Tag <> "1" Then
    If Fade = True Then
    CurCut = 1
    Do Until Me.Left + (CurCut * Screen.TwipsPerPixelX) >= Screen.Width - (MinSize * Screen.TwipsPerPixelX)
    Me.Left = Me.Left + (CurCut * Screen.TwipsPerPixelX)
    DoEvents
    Loop
    Me.Left = Screen.Width - (MinSize * Screen.TwipsPerPixelX)
    Else
    Me.Left = Screen.Width - (MinSize * Screen.TwipsPerPixelX)
    End If
    Me.Tag = "1"
    End If
    End If
    End Sub

    наверх

    Как перетаскивать форму за любое место

    Данный пример покажет вам, как можно перетаскивать форму за любое ее место. Достаточно вставить указанный ниже код, и...

    Private Declare Function SendMessage Lib "User32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Declare Sub ReleaseCapture Lib "User32" ()
    Private Const WM_NCLBUTTONDOWN = &HA1
    Private Const HTCAPTION = 2

    Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single)
    Dim ReturnValue As Long
    If Button = 1 Then
    Call ReleaseCapture
    ReturnValue = SendMessage(Me.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&)
    End If
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Саша

    Ответ ожидается по этому адресу

    Как проиграть Gif анимацию.

    Автор вопроса: Игорь

    Ответ ожидается по этому адресу

    Набросал такой код:

    hWnd = GetDesktopWindow
    hDC = GetDC(hWnd)
    hPen = CreatePen(0, 1, RGB(255, 0, 0))
    SelectObject hDC, hPen
    GetWindowRect hWnd, lpRect
    lngStep = 10
    For lngI = lpRect.Top To lpRect.Bottom Step lngStep
    MoveToEx hDC, lpRect.Left, lngI, lpPoint
    LineTo hDC, lpRect.Right, lngI
    Next
    For lngI = lpRect.Left To lpRect.Right Step lngStep
    MoveToEx hDC, lngI, lpRect.Top, lpPoint
    LineTo hDC, lngI, lpRect.Bottom
    Next
    ReleaseDC hWnd, hDC

    Все типы и апи объявил. Код рисует сетку на рабочем столе, так вот в WIN95 это работает, а WIN98,WIN2K не работает. В чем причина конфуза?

    Автор вопроса: Smael

    Ответ ожидается по этому адресу

    Как подключиться к интернету без Winsock1.Connect

    Автор вопроса: Кирилл

    Ответ ожидается по этому адресу

    Подскажите как на VB 5.0 запустить файл (к примеру doc,xls,rar...),чтоб при этом открывалось связанное с ним приложение (WINWORD.EXE, EXCEL.EXE, WINRAR.EXE) и открывало соответствующий с ним файл (doc,xls,rar...).

    Автор вопроса: Алексей

    Ответ ожидается по этому адресу

    Если есть какой-нибудь *.dll, то как узнать какие в н?м есть функции.

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Как в DirListBox увидеть скрытые папки.

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Где можно скачать описание Function, Sub, Class и т.д. которые есть в библиотеках dll, ocx с примерами. Хотя бы тех которые устанавливаются в месте с VB

    Автор вопроса: Александр

    Ответ ожидается по этому адресу

    Какой скрипт вставляется для того,чтобы поситители сайта могли оставлять свои обьявления

    Автор вопроса: Ревягин_Алексей

    Ответ ожидается по этому адресу

    Никто не знает как сделать так, чтобы программа дописывалась сама в себя

    Автор вопроса: Ревягин_Алексей

    Ответ ожидается по этому адресу

    Народ, как вести поиск по базе данных отдельного слова (к примеру, в некоторой строке

    ("фывывф фыв ыф ыф ыф ввыф QWERTY лыфвд")

    находится слово 'QWERTY', его и надо найти )

    Автор вопроса: Ревягин_Алексей

    Ответ ожидается по этому адресу

    SetMenuItemBitmaps hMenu, GetMenuItemID(GetSubMenu(hMenu, 0), 0), MF_BITMAP, LoadResPicture(101, vbResBitmap), LoadResPicture(101, vbResBitmap)
    SetMenuItemBitmaps hMenu, GetMenuItemID(GetSubMenu(hMenu, 0), 1), MF_BITMAP, LoadResPicture(104, vbResBitmap), LoadResPicture(104, vbResBitmap)
    SetMenuItemBitmaps hMenu, GetMenuItemID(GetSubMenu(hMenu, 0), 2), MF_BITMAP, LoadResPicture(107, vbResBitmap), LoadResPicture(107, vbResBitmap)

    1) Почему при каждом вызове PopupMenu или просто при нажатии на кнопку меню появляются разные картинки, имеющиеся у меня на форме, а не которые надо(из файла ресурсов либо с формы(например:

    SetMenuItemBitmaps hMenu, GetMenuItemID(GetSubMenu(hMenu, 0), 2), MF_BITMAP,Picture1(0).Picture),Picture1(0).Picture)))

    2)как из файла ресурсов читать: GIF'ы, JPG, EXE? (BMP в 5 раз больше по размеру чем соответстующий ему GIF или JPG)

    Автор вопроса: Владимир

    Ответ ожидается по этому адресу

    Почему не соядается объект функцией GetObject, хотя функция CreateObject работает нормально? Подключаемое приложение написано на VB и имеет тип ActiveX EXE.

    Ответы:

    Вопрос:

    У меня у формы BorderStyle=0, как мне программно поменять его на 1 или 2, если написать просто form1.borderstyle=1, то ничего не происходит.

    Ответ:

    Автор ответа: Rafis

    Менять стиль(BorderStyle) формы просто присвоением своойству значения нельзя, однако другие элементы поддерживают такие операции.

    Вопрос:

    У меня у формы BorderStyle=0, как мне программно поменять его на 1 или 2, если написать просто form1.borderstyle=1, то ничего не происходит.

    Ответ:

    Автор ответа: Igoryk

    Это невозможно сделать, потому что свойство BorderStyle доступно только для чтения во время выполнения, а, следовательно, изменению не подлежит.

    Вопрос:

    Что такое hwnd. Что можно сделать зная hwnd чужего окна.

    Ответ:

    Автор ответа: Rafis

    hWnd является идентификатором окна или кокого-либо объекта.Этот параметр в основном используется при работе с API функциями.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 48.

VBNet
  • Библиотека кодов
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый 48-ой выпуск рассылки.
    Читайте!

    Содержание выпуска
    • Книги

    • Citycat by Email

    • Внимание! Конкурс!
    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Visual Basic 6. Мастер. Руководство для профессионалов

     Язык программирования Visual Basic - мощный инструмент разработки приложений для 32-разрядных систем Windows 95 и Windows NT. В книге рассматриваются как фундаментальные понятия и темы: от установки продукта на компьютер пользователя и описания интегрированной среды разработки до изложения основ техники программирования на Visual Basic, так и сложные вопросы, адресованные профессиональным программистам: создание интерфейса пользователя, применение стандартных элементов управления, в том числе и для работы с базами данных, программирование компонентов ActiveX, описание технологии OLE drag-and-drop, объектная модель FSO, функции работы с файлами, отладка и оптимизация программ, локализация и распространение готовых приложений.

    Автор: нет даных
    Издательсвто: нет данных
    Год издания: 1998
    Кол-во страниц: 992
    Стоимость: 112,48 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Visual Basic 6. Специальный справочник

     Главная цель этого справочника - научить читателя использовать инструменты и средства Visual Basic, позволяющие значительно облегчить и ускорить процесс создания приложений. Здесь вы найдете описание элементов языка, библиотечных функций и SQL-операторов. Особое внимание уделено различным мастерам, предназначенным для решения стандартных задач. Весь справочный материал в книге разбит на главы, в каждой из которых вы найдете информацию по созданию приложения определенной направленности. Разделы в главе содержат пошаговое описание операций, которые нужно выполнить для решения поставленной задачи, синтаксис необходимых операторов, а также подробно разобранные примеры. Предлагаемый справочник будет полезен не только пользователям, активно работающим с Visual Basic 6, но и начинающим программистам, желающим перейти к профессиональной разработке приложений с наименьшими затратами времени на изучение новой среды программирования.

    Автор: Б. Карпов
    Издательсвто: Питер
    Год издания: 2000
    Кол-во страниц: 416
    Стоимость: 70,78 р.
    Формат: 84х108/32
    Переплёт: нет данных

    Visual Basic 6.0 for application

     Книга является систематизированным справочником по всем элементам языка программирования Visual Basic (VB), входящим, как в автономную версию VB, так и в основные реализации Visual Basic for Applications.
    Помимо тех официальных сведений, которые можно найти в документации и в справочной системе, книга содержит конкретные примеры, рекомендации и маленькие хитрости программиста, а также поправки к справочной системе, которая, увы, не без ошибок.
    Книга предназначена для всех специалистов, занимающихся разработкой приложений с применением Visual Basic и Visual Basic for Applications.

    Автор: Король В.И.
    Издательсвто: КУДИЦ-Образ
    Год издания: 2000
    Кол-во страниц: 448
    Стоимость: 113,87 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Win32 API и Visual Basic. / Для профессионалов /

     Книга является сборником полезных советов и приемов, хотя в ней, вероятно, описаны тысячи разных приемов. Она не была задумана как энциклопедия самостоятельных фрагментов программного кода, которые бездумно подключаются к приложению - хотя многие ее примеры можно использовать подобным образом.

    Автор: Д. Эпплман
    Издательсвто: Питер
    Год издания: 2001
    Кол-во страниц: 1120
    Стоимость: 489,08 р.
    Формат: нет данных
    Переплёт: нет данных

    Азбука программирования в Windows 32 API

     Изложены вопросы создания программных приложений для Window95 и Windows NT. Описаны основные типы переменных, макросов, функций. Материал книги иллюстрируется многочисленными примерами. 1 Настоящее издание (второе вышло в 2000 г.) дополнено описанием тех возможностей Windows, которые не были упомянуты в предыдущих изданиях.

    Автор: Румянцев П.В.
    Издательсвто: Радио и связь
    Год издания: 2001
    Кол-во страниц: 312
    Стоимость: 85 р.
    Формат: 60х88/16
    Переплёт: нет данных

    Использование Visual Basic 6. Специальное издание

     В книге описана новая версия популярной системы программирования Visual Basic 6. Изложение материала построено по принципу "от простого к сложному". Первые главы этой книги адресованы новичкам, из которых они смогут почерпнуть основы языка Visual Basic и описание его стандартных компонентов. Для подготовленных пользователей будет интересен раздел, посвященный специальным методам программирования с использованием стандартных компонентов Windows, элементов управления ActiveX, ADO. RDO и др. В отдельную часть вынесены вопросы, связанные с разработкой приложений баз данных на Visual Basic и работе в Internet. Автор не обошел также вниманием различные версии языка Visual Basic - VBA и VBScript. В приложениях приведен обзор интегрированной среды разработки Visual Basic, а также краткий справочник по SQL.
    Книга рассчитана на широкий круг читателей.

    Автор: Сайлер Б., Споттс Дж.
    Издательсвто: Вильямс
    Год издания: 1999
    Кол-во страниц: 832
    Стоимость: 244,02 р.
    Формат: 70х100/16
    Переплёт: твёрдый

    Обработка баз данных на Visual Basic 6 + CD

     Сердцем многих приложении, работающих в сфере бизнеса, являются базы данных. Своим широким распространением они обязаны возможности централизованного доступа к информации. который характеризуется последовательностью, эффективностью и относительной простотой создания и поддержки. В книге "Обработка баз данных на Visual Basic 6" описываются все технологии доступа к базам данных с помощью Visual Basic. Приведенные в этой книге примеры взяты из реальной жизни, поэтому, ознакомившись с ними, вы узнаете, как можно использовать базы данных для принятия решений в сфере бизнеса. Если вы еще не готовы перейти к версии Visual Basic 6, это вовсе не значит, что данная книга вам не подходит. Практически 95% материала этой книги удовлетворит в равной степени пользователей как пятой, так и шестой версий Visual Basic.
    Книга рассчитана на программистов средней и высокой квалификации.

    Автор: Мак-Манус Дж.П.
    Издательсвто: Вильямс
    Год издания: 1999
    Кол-во страниц: 672
    Стоимость: 294,66 р.
    Формат: 70х100/16
    Переплёт: твёрдый

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Внимание! Конкурс!

    Конкурс на лучшую статью по программированию на Visual Basic

    Пресс-релиз от Web-сайта www.vbnet.ru

    Внимание! Впервые Российском Интернете Вы можете своим собственным умом заработать приз, участвуя в конкурсе! Конкурс, на лучшую статью по программированию на Visual Basic, проводится в течение двух месяцев с 1 мая по 30 июня 2002 года, к участию в конкурсе приглашаются все желающие, умеющие писать статьи. Конкурс проводится на сайте VBNet и является его интеллектуальной собственностью. Участие в конкурсе автоматически означает согласие с его условиями.

    Условия проведения конкурса. Время проведения конкурса и его ход оглашается на страницах сайта в разделе Конкурсы, а также в официальной рассылке сайта. Принять участие в конкурсе может любой желающий, согласившийся с условиями конкурса. Для того чтобы стать участником, достаточно прислать письмо на адрес администратора сервера admin@vbnet.ru. Работы на конкурс принимаются в течение одного месяца. Все присланные работы на конкурс публикуются на страницах сайта VBNet. Итоги конкурса подводятся через месяц, после окончания приема работ.

    Авторские права. По условиям конкурса, все авторы, приславшие свои работы на конкурс, передают исключительные права на публикацию присланной статьи сайту VBNet на 1 месяц, начиная с момента подведения итогов конкурса. Таким образом, публикация статьи на других сайтах возможна только по истечении 1 месяца. Сайт VBNet ни в коем случае не претендует на авторство присланных на конкурс статей, а только хочет иметь возможность публиковать их на страницах сайта. При публикации статьи указание ее автора будет обязательным.

    Требования к работам. Все работы, присланные на конкурс должны соответствовать следующим условиям:

    • работы рекомендуется присылать в формате Microsoft Word, или HTML;

    • статья должна содержать название работы и имя (псевдоним) автора;

    • объем стать должен быть не менее 10000 знаков;

    • статья должна начинаться с введения, в котором нужно кратко изложить освещаемый вопрос в статье, и заканчиваться заключением, содержащим выводы и советы читателям работы;

    • приветствуется наличие в работе иллюстраций, таблиц и графиков, помогающих разобраться в теме статьи;

    • статья, присланная на конкурс должна иметь эксклюзивный характер, т.е. должна быть написана специально для сайта VBNet;

    • при использовании в работе материалов других авторов, обязательна ссылка на них в конце статьи;

    • запрещается присылать на конкурс, в качестве работы, чужие статьи, а также переводы статей из иностранных источников.

    Оценка работ и объявление победителя. Победителем конкурса становится участник, приславший лучшую работу, по мнению авторов сайта. Критерии оценки работ устанавливаются следующие (по степени значимости):

    • новизна работы, т.е. чем меньше аналогичных работ в сети Интернет, тем она ценнее для конкурса;
    • полнота раскрытия темы, освещаемой в статье;
    • наличие полноценного примера к статье.

    Оценку работ, присланных на конкурс, будут проводить авторы сайта VBNet [1], мнение которых будет решающим при выборе победителя. На выбор победителя большое влияние могут оказать отклики посетителей сайта, присланные после публикации работы. Итоги конкурса подводятся через месяц после окончания приема работ. Устроители конкурса оставляют за собой право несколько увеличить время объявления результатов конкурса, если количество присланных работ потребует гораздо больше времени на их оценку.

    Призы. После подведения итогов конкурса и объявления победителя, начинается награждение призами. Главный приз за лучшую статью - любая [2] книга по программированию, на выбор победителя, представленная в магазине сайта VBNet. По предварительному плану доставка книги победителю будет осуществляться по почте. По желанию победителя конкурса, информация о нем может быть размещена на сайте в специальном разделе. Кроме главного приза, существует поощрительный приз - 50000 баннеров формата 120х60 на сайте VBNet, а также информация об обладателе поощрительного приза, по желанию, может быть размещена на сайте в специальном разделе. Любой участник конкурса вправе отказаться от приза либо передать его любой благотворительной организации, школе, ВУЗу или любому другому учебному заведению России.

    Отказ от проведения конкурса. Устроители конкурса оставляют за собой право в любой момент отказаться от дальнейшего проведения конкурса, если число его участников будет очень мало [3].

    Спонсорство и информационная поддержка. Любая организация России, имеющая отношение к компьютерным технологиям может выступить в качестве спонсора конкурса, либо его информационным партнером. Условия партнерства и спонсорства обсуждаются с каждым претендентом индивидуально.

    Администрация сайта VBNet [http://www.vbnet.ru]
    07 апреля 2002 года

    1 В спорных ситуациях авторы сайта оставляют за собой право обратиться к независимым экспертам для принятия решения о победителе конкурса.
    2 По условия проведения конкурса, стоимость книги не может превышать 300 рублей.
    3 Количество участников конкурса не может быть меньше, чем число учрежденных призов, увеличенное вдвое.

    наверх

    Новости сайта VBNet

    Дата: 10.04.2002 11:41 | Раздел: Примеры кода | Автор: Гриневич Дмитрий

    Timer - Пример програмки для выключения компьютера в определенное время. В текстовое окошко "Отключить питание в:" надо ввести время, в которое должен компьютер выключиться. После нажатия на кнопку "Пуск" (в программе кнопка), таймер включится и если будет...

    Дата: 09.04.2002 06:51 | Раздел: ActiveX контролы | Автор: Борзенков Дмитрий

    AniPicture - Этот контрол отвечает на довольно таки частый вопрос "А как сделать чтобы картинка тово, как живая?". В первую очередь полезен тем кто не любит рисовать анимированые гифы. Легко анимирует "неживые" файлы с эффектом прозрачности фона... Подробности в ридми и примерчике.

    Последние 20 тем форума на VBNet.Ru:

    03:49 / 14 апр. Помогите кто может | Ответов: 0
    23:19 / 13 апр. как заставить молчать OLE | Ответов: 0
    17:15 / 13 апр. Архиваторна VB | Ответов: 1
    15:46 / 13 апр. Помогите с listbox'ом... | Ответов: 0
    08:07 / 13 апр. Проблема размещения label в toolbar ... | Ответов: 1
    22:05 / 12 апр. Печать из RichTextBox! Помогите Пожалуйста... | Ответов: 2
    21:34 / 12 апр. Подскажите как ... | Ответов: 0
    17:10 / 12 апр. ODBC Data Source... | Ответов: 0
    16:33 / 12 апр. Командная строка... | Ответов: 0
    16:00 / 12 апр. (Де)Кодирование MIME.... | Ответов: 0
    15:13 / 12 апр. Манипуляции с OLEObject в RichTextBox | Ответов: 0
    14:41 / 12 апр. FSO | Ответов: 0
    10:14 / 12 апр. Как погасить монитор, причем не в режиме ожидания | Ответов: 0
    10:06 / 12 апр. Вопрос по Поиску | Ответов: 1
    09:08 / 12 апр. True DBGrid Pro 7.0 | Ответов: 0
    08:59 / 12 апр. Запись переменной в БД | Ответов: 1
    04:10 / 12 апр. FlexGridPlus problems | Ответов: 0
    23:13 / 11 апр. Помогите подключить БД | Ответов: 1
    21:34 / 11 апр. Новое сообщение без темы | Ответов: 0
    20:49 / 11 апр. Громкость звука и DirectX | Ответов: 0

    Последние поступления в Библиотеку кодов:

    Нет новых кодов.

    наверх

    Новости сайта VBMania

    • 25.01 - Сегодня открылся новый раздел, в котором вы можете найти ссылки на целую кучу книг по тематике VB и около него.
    • 22.01 - 22 января вышел второй номер он-лайн журнала о Visual Basic 'VB Мания'. В нем можно почитать авторские статьи в уже устоявшихся разделах: Технологии, Система, Графика, Профессия, Человечество и Юмор. Так же не обошлось без новшеств: появился новый раздел dotNET и особенно рецензии ActiveX-компонентов. Обязательно заходите.
    • 17.12 - В связи с тем что форум не горел желаением вести себя так, как должен обычный, порядочный форум, мы его прикрыли для проведения разъяснительных мероприятий. Надеемся, что они не затянутся и форум образумится.
    • 06.12 - С сегодняшнего дня все желающие могут добавлять свои новости и статьи в наши архивы.
      Да здраствует открытость!
    • 27.11 - Наконец-то, после долгих дней и бессонных ночей это свершилось! Сайт объявляется открытым! Непременно прочитайте первый номер нашего журнала. Оцените наши дополнительные проекты. И конечно мы ждем ваших откликов в гостевой книге и по почте.
    • 01.12 - Произошло несколько косметических улучшений, касающихся исключительно удобства работы с сайтом. Во-первых, можно видеть количество записей обсуждения новостей на главной странице; а во-вторых чуточку подправились директории.
      Оценяйте!

    наверх

    Новости сайта Азбука VB

    • 10 апреля 2001 года
      Создание простого аналога к ListView на примере Mp3 проводника!. Пример создания листа + слайдера + применение как браузера.
      Создание прогрессбара. Еще один оригинальный вариан создания своего прогрессбара.
      Сохранения данных с рабочего листа Excel в Dbase таблицу. В связи с тем, что dbase формат до сих пор очень сильно распространен, очень часто возникает необходимость сохранения данных с рабочего листа Excel в Dbase таблицу.
      Разборка форматированного текста состояшего из шести значений разделённых символом ";". Пример разборки форматированного текста состояшего из шести значений разделённых символом ";" с последуюшеё записью каждого значения в свою ячейку. Макрос также обрабатывает все непустые ячеки столбца.
      Плагины! Создание и работа с ними. На примерах показано, как создавать плагины и как с ними можно работать.
      Проверка на слэш (способ 2). Как избежать ошибки при обращении к файлу? Иногда нужно обратиться к файлу, используя три объекта: Drive (Диск), Dir (Каталоги) и File (Файлы). Drive.Drive возвращает значение равное "?:\", где ? - буква диска. Dir.Path возвращает значение равное "?:\?", где в первом случае ? - буква диска, а во втором - каталог. File.Filename же возвращает имя файла. Если нужно открыть файл на корневом каталоге (?:\), то делается это следующим образом:
      'Справочники Советов' - Пять справочников !!!. Здесь собраны и скомпилированы в Help-файлы - "Советы тем, кто программирует на VB" А. Колесова и О. Павловой. Советы разбиты на 5 файлов (по 100 штук в каждом). Советы начинаются с № 1 (еще по VB3 - 1996 г.) по 2001 год включительно, в связи с переходом на работу в другой журнал, у последних советов появился новый соавтор Малинин. В 5-й файл добавлена статья Колесова (с советами) по работе с API-функциями.

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     sv

    Ответ ожидается по этому адресу

    1) Как из VB открыть файл в MediaPlayer так, чтобы он не сворачивался, а потом MP закрыть.
    2) Как сделать тоже самое, но с WinAmp'ом.

    Автор вопроса: rul@langepas.wsnet.ru

    Ответ ожидается по этому адресу

    пОДСКАЖИТЕ ПОЖАЛУЙСА, как подсоединятся к другому компьютеру через WINSOCK?

    Автор вопроса: Igor

    Ответ ожидается по этому адресу

    Господа, как осуществить передачу данных через Winsock, в часности послать запрос и получить от сервера выборку из таблицы. Пробовал тренироваться на текстовых сообщениях - все получается, а как быть с базами данных, с чего хоть начинать?

    Автор вопроса: Serg

    Ответ ожидается по этому адресу

    Как можно ияменить стиль формы во время выполнения программы? Не было у формы бордюр, как сделать чтобы они появились и наоборот? Вояможно с помощью какой API-функции, или может можно форму переяагруяить с другим яначением BorderStyle?

    Автор вопроса: Игорь Куз

    Ответ ожидается по этому адресу

    В VB есть такой control DataRepeater. Прочитал, что его можно использовать в качестве подчинённой формы (не ленточной, а именно подчинённой, как в Access), но нет документации как это сделать. Может кто-нибудь знает?

    Ответы:

    Вопрос:

    Подскажите как на VB 5.0 запустить файл (к примеру doc,xls,rar...),чтоб при этом открывалось связанное с ним приложение (WINWORD.EXE, EXCEL.EXE, WINRAR.EXE) и открывало соответствующий с ним файл (doc,xls,rar...).

    Ответ:

    Автор ответа: Igoryk

    Очень просто. Заглянув на http://www.igoryksoft.narod.ru/vb/vbfile/vbfile3.htm ты можешь узнать два способа:
    1.
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As VbAppWinStyle) As Long

    Dim FileName As String
    FileName = "C:\windows\explorer.exe" 'Ваш файл
    X = ShellExecute(Me.hwnd, "open", FileName, "", "", vbNormalFocus)

    2. (уникальный):
    Dim FileName As String
    FileName = "C:\windows\explorer.exe" 'Ваш файл
    X=Shell ( "rundll32.exe url.dll,FileProtocolHandler" & " " & FileName, vbMaximizedFocus)

    Вопрос:

    Подскажите как на VB 5.0 запустить файл (к примеру doc,xls,rar...),чтоб при этом открывалось связанное с ним приложение (WINWORD.EXE, EXCEL.EXE, WINRAR.EXE) и открывало соответствующий с ним файл (doc,xls,rar...).

    Ответ:

    Автор ответа: Иван

    Public Declare Function ShellExecute Lib "shell32.dll" Alias _
    "ShellExecuteA" (ByVal hwnd As Long, _
    ByVal lpOperation As String, _
    ByVal lpFile As String, _
    ByVal lpParameters As String, _
    ByVal lpDirectory As String, _
    ByVal nShowCmd As Long) As Long
    ' Декларация функции для запуска файла.
    Private FN As String

    Private Sub Command1_Click()
    FN = Text1.Text
    Call ShellExecute(0, "open", FN, "", "", vbNormalFocus)
    'Call ShellExecute(0, "open", FN, "", "", SW_SHOWMAXIMIZED)
    End Sub
    ' Декларация константы для максимизирования окна открываемого приложения.

    Вопрос:

    Если есть какой-нибудь *.dll, то как узнать какие в н?м есть функции.

    Ответ:

    Автор ответа: Igoryk

    Есть такая программа - W32DASM - ее можно скачать с сайта www.smtn.satvropol.ru (см. файловая библиотека).

    Вопрос:

    Народ, как вести поиск по базе данных отдельного слова (к примеру, в некоторой строке

    ("фывывф фыв ыф ыф ыф ввыф QWERTY лыфвд")

    находится слово 'QWERTY', его и надо найти )

    Ответ:

    Автор ответа: Александр Горбылёв

    Зависит от поставленной задачи.
    Если надо создать интеллектуальную систему, то сначала надо закончить школу, а потом почитать кроме предложения SELECT ... WHERE.. в SQL ещё и основы построения лингвистических систем с уклоном в области пострения деревьев разбора, фреймов и т.д.

    Вопрос:

    Народ, как вести поиск по базе данных отдельного слова (к примеру, в некоторой строке

    ("фывывф фыв ыф ыф ыф ввыф QWERTY лыфвд")

    находится слово 'QWERTY', его и надо найти )

    Ответ:

    Автор ответа: DedMorozzz

    Используй оператор LIKE.
    Например:
    У тебя в БД есть поля Name, Fam, Tel и ты точно не знаешь, в каком поле находится искомая фраза "QWERTY".
    Создаешь критерий:
    Crit = "Name like '*QWERTY*' or Fam like '*QWERTY*' or Tel like '*QWERTY*'"
    Затем Data.Recordset.FindNext Crit. Все!
    Это простейший способ, но идея такая.

    Вопрос:

    Народ, как вести поиск по базе данных отдельного слова (к примеру, в некоторой строке

    ("фывывф фыв ыф ыф ыф ввыф QWERTY лыфвд")

    находится слово 'QWERTY', его и надо найти )

    Ответ:

    Автор ответа: Rutshtein Alex

    Добавь на форму Text1 и Command1. Вставь след. текст:

    Option Explicit

    Private Sub Command1_Click()

    Dim Position As Integer
    Dim Stroka As String
    Dim Slovo As String

    Stroka = "dfgdfgdg dfg dfg dfgdfgdfg QWERTY dfg dfgd d dfgdfg dfg"
    Text1.Text = Stroka
    Slovo = "QWERTY"
    Position = InStr(1, Stroka, Slovo)
    Text1.SelStart = Position - 1
    Text1.SelLength = Len(Slovo)

    End Sub

    Вопрос:

    Почему не соядается объект функцией GetObject, хотя функция CreateObject работает нормально? Подключаемое приложение написано на VB и имеет тип ActiveX EXE.

    Ответ:

    Автор ответа: Igoryk

    Потому что у этих команд различное назначение: CreateObject - для создание объекта, а GetObject для получения Hwnd объекта.

    Вопрос:

    Кто нибудь сталкивался с такой проблемой: если создается соединение между 2 компьютерами через Winsock, а потом закрыть соединение то неудастся соединиться заново пока не закроешь и не откроешь программу ?

    Ответ:

    Автор ответа: Sergey

    Все зависит от того, что вы понимаете под "без почтового клиента". В любом случае вам придется воспользоваться каким-то интерфесом для работы с почтой, будь то MAPI, CDO или COM.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 49.

VBNet
  • Библиотека кодов
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Очередной, ничем не отличающийся от остальных, выпуск рассылки.
    Читайте!

    Содержание выпуска
    • Книги

    • Как заблокировать действия кнопок управления формой
    • Прорисовка системных иконок на форме
    • Затемнение кнопки 'закрыть' и одновременное удаление системного меню
    • Эффекты при закрытии формы
    • Использование InputBox для ввода секретной информации
    • Прилипание формы к границам экрана

    • Вопрос/Ответ

    Книги

    ADO и Visual Basic. Руководство разработчика

     В книге описано использование технологии доступа к данным (ADO) с помощью основного инструмента разработки приложений Microsoft - Visual Basic 6.0. Из книги вы узнаете, как можно исследовать источники данных при помощи окна Data View, как создавать формы для ввода и запроса данных, используя связанные элементы управления, и подсоединяться к источникам данных со сложной иерархической структурой средствами Data Environment. Далее вы изучите, как можно, используя Data Report, представлять информацию в форме, подходящей для печати, или как следует исполнять некоторые, наиболее широко распространенные задачи, связанные с обработкой данных, используя ADO внутри кода Visual Basic. В последних главах книги рассмотрены дополнительные операции, используемые в коде, в том числе формирование данных, для создания иерархических наборов записей, применение ADO в сети Internet и даже создание собственных источников данных. Чтобы более полно использовать средства ADO для извлечения информации из различных источников, в приложении к книге вы найдете справочник по языку SQL, в котором обсуждаются основы работы с оператором SQL SELECT.

    Автор: Гандерлой М.
    Издательсвто: Энтроп, Век
    Год издания: 2001
    Кол-во страниц: 336
    Стоимость: 177 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Excel, VBA, Internet в экономике и финансах

     Книга является руководством по использованию Microsoft Excel, разработке офисных бизнес-приложений средствами VBA и конструированию Web-страниц на базе DHTML и VBScript. Рассматриваются приемы создания отчетной финансовой и экономической документации средствами MS Excel, способы анализа и обработки собранной информации для принятия на ее основе оптимального решения; даются ответы на вопросы, которые возникают у программиста при разработке автоматизированных и интегрированных систем с помощью VBA; описываются особенности конструирования пользовательских элементов управления ActiveX, а также написания Windows-сценариев. Большое внимание уделено принципам создания интерактивных Web-страниц, виртуальных каталогов и магазинов. Книга содержит уникальную коллекцию типичных примеров. Почти каждая глава заканчивается списком упражнений, способствующих закреплению материала

    Автор: Гарнаев А
    Издательсвто: BHV - Санкт - Петербург
    Год издания: 2001
    Кол-во страниц: 816
    Стоимость: 230 р.
    Формат: 70х100/16
    Переплёт: мягкий

    MCSD. Сертификационный экзамен 70-175. Разработка распределенных приложений на Visual Basic 6.0. Учебный курс (+ CD-ROM)

     Настоящий учебный курс рекомендован корпорацией Microsoft как официальное пособие для подготовки к экзамену 70-175 «Designing and Implementing Distributed Applications with Microsoft Visual Basic 6.0» по программе сертификации разработчиков программных решений на основе продуктов Microsoft (Microsoft Certified Solutions Developer, MCSD). Эта книга познакомит Вас с основными понятиями, концепциями и методами, необходимыми для разработок распределенных программных решений на базе Visual Basic 6.0.

    Автор: MCSD Training Kit
    Издательсвто: Русская Редакция
    Год издания: 2000
    Кол-во страниц: 400
    Стоимость: 272 р.
    Формат: 70х100/1670х100/16
    Переплёт: мягкий

    Microsoft Visual Basic 5.0

     В книге рассматривается новая пятая версия Microsoft Visual Basic - языка программирования, являющегося фактическим стандартом визуального проектирования приложений. Описываются общие черты Visual Basic, реализованные в нем концепции объектно-ориентированного программирования, среда разработки (IDE). Далее рассматривается объектно-ориентированная модель Visual Basic и доступные разработчику объектные компоненты. Подробно описываются технологии программирования на языке Visual Basic и SQL, отладка и оптимизация кода приложения, вопросы компиляции исполняемых модулей. В последующих главах освещаются практические вопросы построения приложений - работа с текстом и графикой, механизмы доступа и управления данными, работа с внешними базами данных и создание приложений клиент/сервер. Книга предназначена для широкого круга программистов, работающих в области обработки данных и информационных систем.

    Автор: Шмидт В
    Издательсвто: ABF
    Год издания: 1997
    Кол-во страниц: 688
    Стоимость: 85 р.
    Формат: 84x108/16
    Переплёт: мягкий

    Microsoft Visual Basic 6.0

     Нет описания

    Автор: Лабор В, Макарчук Д
    Издательсвто: нет данных
    Год издания: 2001
    Кол-во страниц: 160
    Стоимость: 60 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Microsoft Visual Basic 6.0. Мастерская разработчика (+ CD-ROM)

     Книга состоит из 3 частей (34 главы) и предметного указателя. Написанная живо и доходчиво, она позволит освоить множество полезных приемов программирования, в том числе объектно-ориентированного, и научит, как создавать 32-разрядные приложения для Windows 95/98 и Windows NT — от экранных заставок до программ, ориентированных на Интернет. Кроме того, Вы узнаете, как расширить возможности языка за счет функций Win32 API и воспользоваться преимуществами технологии ActiveX.

    Автор: Джон Кларк Крейг, Джефф Уэбб
    Издательсвто: Русская Редакция
    Год издания: 2001
    Кол-во страниц: 720
    Стоимость: 272 р.
    Формат: 70х100/16
    Переплёт: твёрдый

    VB Script и ActiveX

     Книга предназначена для разработчиков Web - приложений на языке VBScript, желающих повысить свой профессиональный уровень и стать экспертами в этой области. В ней подробно рассказывается о новых возможностях VBScript, включая использование именованных констант, функций, переменных и коллекций, приводится вся необходимая информация о технологии ActiveX, принципах взаимодействия VBScript и Visual Basic при создании приложений, работающих на сервере. Прочитав эту книгу, вы научитесь использовать звуковые эффекты, создавать анимированную графику, строить формы для ввода данных, узнаете, как с помощью VBScript создать в Web электронный магазин и отслеживать число посетителей и деланные ими покупки. Вы даже сумеете написать увлекательную мультимедийную игру для Web.

    Автор: Скотт Палмер
    Издательсвто: Питер
    Год издания: 1999
    Кол-во страниц: 368
    Стоимость: 94 р.
    Формат: 70х100/16
    Переплёт: мягкий

    VBA 2000. Самоучитель

     В книге содержится краткий курс по использованию языка и системы VBA для Word и Excel 2000. Книга предназначена для начинающих программировать в среде Windows 95/98 с использованием в качестве базовых таких объектов Word и Excel, как документы, рабочие книги, листы и так далее. Материала книги достаточно для создания как простых макросов, помогающих автоматизировать рутинную повторяющуюся работу над документами и электронными таблицами, так и для разработки достаточно сложных приложений, обрабатывающих данные в диалоговых окнах, обеспечивающих пользователя самыми современными интерфейсными средствами.

    Автор: Кузьменко В
    Издательсвто: Бином
    Год издания: 2000
    Кол-во страниц: 416
    Стоимость: 116 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Visual Basic 6 Desktop. Экзамен 70-176

     Книги серии `Экзамен – экстерном` представляют собой удобные, сжатые, хорошо структурированные конспекты для подготовки к сдаче сертификационных экзаменов на звание Microsoft Certified Solution Developer. Книга `Visual Basic 6.0 Desktop. Экзамен 70-176` содержит только действительно необходимый материал, типовые вопросы с ответами и пример экзамена. Возможно, некоторые подходы, применяемые автором, покажутся вам не совсем привычными - не удивляйтесь: это не учебник по Visual Basic; организация материала в этой книге призвана максимально облегчить задачу экзаменуемого. Учтите, что в ряде случаев экзаменационные вопросы выходят за рамки тем, отраженных в документации по Visual Basic, а иной раз правильные ответы на них даже входят в противоречие с `официальной` информацией.

    Автор: Майкл Макдоналд
    Издательсвто: Питер
    Год издания: 2001
    Кол-во страниц: 608
    Стоимость: 123 р.
    Формат: 60x90/16
    Переплёт: мягкий

    Visual Basic 6. Руководство разработчика (+ CD-ROM)

     Эта книга, написанная известным специалистом и неутомимым пропагандистом Visual Basic, представляет собой прекрасный путеводитель по одному из наиболее популярных визуальных средств разработки Windows-приложений. Подробно освещаются такие ключевые темы программирования на Visual Basic, как проектирование и использование элементов ActiveX, программирование баз данных и разработка Web-приложений. Несомненный интерес представляют главы, посвященные работе с графикой. Большое количество тщательно продуманных примеров облегчает восприятие материала. Подбор материала и стиль изложения делают издание интересным и полезным для программистов разных уровней.

    Автор: Евангелос Петрусос
    Издательсвто: BHV, Ирина, SYBEX Inc
    Год издания: 2000
    Кол-во страниц: 1072
    Стоимость: 267 р.
    Формат: 70x100/32
    Переплёт: твёрдый

    Остальные книги о VB можно найти     здесь.

    наверх

    Как заблокировать действия кнопок управления формой

    Данный пример покажет, как можно заблокировать события кнопок MinButton, MaxButton и CloseButton. Добавьте на форму 2 элемента CommandButton. Изменяя цифру в событии Command1_Click() можно запретить получать форме отклик от кнопок минимизации (цифра 3), максимизации (цифра 4) и закрытия формы (цифра 6). Вторая командная кнопка добавлена для корректного закрытия вашей программы в случае запуска данного примера с параметром 6.

    Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, ByVal bRevert As Long) As Long
    Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
    Private Const MF_BYPOS = &H400&
    Public Sub KillingMenu(hWnd As Long, what As Integer)
    Dim hSysMenu As Long
    hSysMenu = GetSystemMenu(hWnd, 0)
    Call RemoveMenu(hSysMenu, what, MF_BYPOS)
    End Sub
    Private Sub Command1_Click()
    'замените цифру 6(блокировка CloseButton) на 3(блокировка MinButton) или 4(блокировка MaxButton)
    KillingMenu Me.hWnd, 6
    End Sub
    Private Sub Command2_Click()
    End
    End Sub

    наверх

    Прорисовка системных иконок на форме

    Все вы знаете про функцию MsgBox (ссылка для незнающих эту функцию). При использовании этой функции вы также можете вывести одну из четырех иконок, которые заставляют пользователя обратить внимание. Данный пример как раз и позволяет вытащить системные иконки и расположить их на вашей форме.

    Public Enum enStockIcons
    IDI_APPLICATION = 32512&
    IDI_CRITICAL = 32513&
    IDI_QUESTION = 32514&
    IDI_EXCLAMATION = 32515&
    IDI_INFORMATION = 32516&
    IDI_WINLOGO = 32517&
    IDI_UNKNOWN = 32518&
    End Enum
    Private Declare Function LoadIconApi Lib "user32" Alias "LoadIconA" (ByVal hInstance As Long, ByVal lpIconName As Long) As Long
    Private Declare Function DrawIconApi Lib "user32" Alias "DrawIcon" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long
    Private Sub Form_Paint()
    Dim hIcon As Long
    'здесь вы можете определить, какую иконку загрузить
    hIcon = LoadSystemIcon(IDI_QUESTION)
    If hIcon > 0 Then
    'заменяя цифры 10,10 вы определяете месторасположение иконки на форме
    Call DrawIcon(Me.hdc, 10, 10, hIcon)
    End If
    End Sub
    Public Function LoadSystemIcon(ByVal StockIcon As enStockIcons) As Long
    Dim lRet As Long
    lRet = LoadIconApi(0, StockIcon)
    If Err.LastDllError = 0 Then
    LoadSystemIcon = lRet
    End If
    End Function
    Public Sub DrawIcon(ByVal mHdc As Long, ByVal xPos As Long, ByVal yPos As Long, ByVal hIcon As Long)
    Dim lRet As Long
    lRet = DrawIconApi(mHdc, xPos, yPos, hIcon)
    If (Err.LastDllError > 0) Or (lRet = 0) Then
    Debug.Print "DrawIcon failed"
    End If
    End Sub

    наверх

    Затемнение кнопки 'закрыть' и одновременное удаление системного меню

    Пользуйтесь данным примером очень аккуратно! При двойном нажатии кнопки программа "выполняет недопустимую операцию"

    Расположите на форме элемент CommandButton.

    Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
    'процедура определения системного меню (кнопки закрытия)
    Private Declare Function DestroyMenu Lib "user32" (ByVal hMenu As Long) As Long
    'процедура удаления меню

    Sub Disable_SysMenu(handle As Long)
    On Error GoTo errhan
    Dim menu_handle As Long 'переменная с хэндлом меню
    menu_handle = GetSystemMenu(handle, 0)
    DestroyMenu (menu_handle)
    Exit Sub
    errhan:
    End Sub

    Private Sub Command1_Click()
    Disable_SysMenu (Form1.hwnd)
    End Sub

    наверх

    Эффекты при закрытии формы

    Функция AnimateWindow дает возможность Вам произвести специальные эффекты при появление или скрытии окон. Имеются три типа анимации: развёртывание, соскальзывание и постепенное появление.

    Private Declare Function AnimateWindow Lib "user32" (ByVal hwnd As Long, ByVal dwTime As Long, ByVal dwFlags As Long) As Boolean
    Const AW_HOR_POSITIVE = &H1 'Анимация окна слева направо.
    'Этот флаг используется совместно с эффектами развёртывания и соскальзывания.
    Const AW_HOR_NEGATIVE = &H2 'Анимация окна справа налево.
    'Этот флаг используется совместно с эффектами развёртывания и соскальзывания.
    Const AW_VER_POSITIVE = &H4 'Анимация окна сверху вниз.
    'Этот флаг используется совместно с эффектами развёртывания и соскальзывания.
    Const AW_VER_NEGATIVE = &H8 'Анимация окна снизу вверх.
    'Этот флаг используется совместно с эффектами развёртывания и соскальзывания.
    Const AW_CENTER = &H10 'Окно сворачивается внутрь себя если
    'установлен флаг AW_HIDE, иначе разворачивается
    Const AW_HIDE = &H10000 'Скрывает окно, по умолчанию окно появляется.
    Const AW_ACTIVATE = &H20000 'Активизирует окно.
    Const AW_SLIDE = &H40000 'Устанавливает эффект соскальзывания.
    'По умолчанию эффект развёртывания.
    Const AW_BLEND = &H80000 'Эффект постепенного появления.
    'Применяется только к окнам верхнего уровня.

    Private Sub Form_Load()
    Me.AutoRedraw = True
    Me.Print "Закрой меня"
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    'Анимация окна
    AnimateWindow Me.hwnd, 200, AW_VER_POSITIVE Or AW_HOR_NEGATIVE Or AW_HIDE
    'Выгружаем форму полностью
    Set Form1 = Nothing
    End Sub

    'Оригинальная версия примера расположена на сайте http://rusproject.newmail.ru

    наверх

    Использование InputBox для ввода секретной информации

    Хотите использовать стандартный InputBox для ввода информации, скрытой звездочками? Нет проблем, сказал один из программистов, и создал для вас этот пример. В этом примере вам понадобится дополнительный модуль

    'КОД ФОРМЫ

    Private Sub Command1_Click()
    Dim ret As String
    ret = InputBoxEx("Наберите пароль:", "Программа...")
    Label1 = ret
    End Sub

    'КОД МОДУЛЯ

    Option Explicit
    Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
    Private Declare Function SetTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
    Private Declare Function KillTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long) As Long
    Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long
    Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
    Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

    Private Const WH_CBT = 5
    Private Const HCBT_ACTIVATE = 5
    Private m_lMsgHandle As Long
    Private m_lhHook As Long
    Private Const ES_CENTER = &H1&

    Private Function GetMessageBoxHandle(ByVal lMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    If lMsg = HCBT_ACTIVATE Then
    m_lMsgHandle = wParam
    UnhookWindowsHookEx m_lhHook
    m_lhHook = 0
    End If
    GetMessageBoxHandle = False
    End Function

    Private Sub InputBoxTimerUpdateEvent(hWnd As Long, uiMsg As Long, idEvent As Long, dwTime As Long)
    Dim res As Long
    If m_lMsgHandle = 0 Then Exit Sub
    res = FindWindowEx(m_lMsgHandle, 0, "Edit", "")
    SendMessage res, 1052, 42, ByVal 0&
    SendMessage res, &H441, ES_CENTER, ByVal 0&
    End Sub

    Public Function InputBoxEx(sMsgText As String, Optional sTitle As String = "Secured InputBox") As String
    Dim lTimerUpdate As Long
    m_lhHook = SetWindowsHookEx(WH_CBT, AddressOf GetMessageBoxHandle, App.hInstance, GetCurrentThreadId())
    lTimerUpdate = SetTimer(0, 0, 0, AddressOf InputBoxTimerUpdateEvent)
    InputBoxEx = InputBox(sMsgText, sTitle)
    KillTimer 0, lTimerUpdate
    End Function

    наверх

    Прилипание формы к границам экрана

    Данный пример покажет, как ваша форма автоматически "прилипает" к границам экрана

    Создайте стандартный пример. В свойствах формы укажите:

    BorderStyle = 0 - None
    ScaleMode = 3 - Pixel

    Private Declare Function GetCursorPos Lib "user32" (lpPoint As PointAPI) As Long
    Private Type PointAPI
    X As Long
    Y As Long
    End Type
    Dim Pos As PointAPI
    Dim A As Boolean
    Dim B As Boolean
    Dim C As Boolean
    Dim D As Boolean
    Dim SX As Integer
    Dim SY As Integer
    Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    SX = X
    SY = Y
    End Sub
    Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    GetCursorPos Pos
    If Not Button = vbLeftButton Then Exit Sub
    If Pos.X - SX >= 10 Then A = False
    If Pos.X - SX <= 10 Then Left = 0: A = True
    If Pos.Y - SY >= 10 Then B = False
    If Pos.Y - SY <= 10 Then Top = 0: B = True
    If Pos.X - SX <= Screen.Width / Screen.TwipsPerPixelX - Width / Screen.TwipsPerPixelX - 10 Then C = False
    If Pos.X - SX >= Screen.Width / Screen.TwipsPerPixelX - Width / Screen.TwipsPerPixelX - 10 Then Left = Screen.Width - Width: C = True
    If Pos.Y - SY + Height / Screen.TwipsPerPixelY > Screen.Height / Screen.TwipsPerPixelX - 10 Then Top = Screen.Height - Height: D = True
    If Pos.Y - SY + Height / Screen.TwipsPerPixelY <= Screen.Height / Screen.TwipsPerPixelX - 10 Then D = False
    If B = True Then GoTo Cya
    If D = True Then GoTo Cya
    Top = Pos.Y * Screen.TwipsPerPixelY - SY * Screen.TwipsPerPixelY
    Cya:
    If A = True Then Exit Sub
    If C = True Then Exit Sub
    Left = Pos.X * Screen.TwipsPerPixelX - SX * Screen.TwipsPerPixelX
    End Sub
    'Автор этого проекта Беляев Данила outen@mail.ru

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     sv

    Ответ ожидается по этому адресу

    Доброго всем времени суток. Есть у меня такой вопрос: в процессе программы открывается MediaPlayer строкой Shell path+file, vbMaximized, а как сделать автозакрытие MediaPlayer'a при закрытии программы ?

    Автор вопроса: Evgenia Vychub

    Ответ ожидается по этому адресу

    После изменения данных в ADO, подключенного к базе данных в Access, и update'a как определить, произошла ли физическая запись данных на диск? Проблема в том, что если тут же использовать такой же запрос из другого ADO, то приходят старые данные. А обновленные - со значительной задержкой по времени. Кто-нибудь сталкивался с такой проблемой?

    Автор вопроса: Алексей

    Ответ ожидается по этому адресу

    Слушайте, а как может программа, написанная в Visual Basic узнать подключены ли мы сейчас к Internet и разорвать подключение, когда уже истекло время.

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Так я яаписываю в INI-файл

    Dim Path As String
    Path = App.Path & "\config.ini"
    p = WritePrivateProfileString("www", "w1", "30", Path)

    Все работает

    А этим кодом я пытаюсь считать от туда данные, но нечего не выходит. Кто яанет почему ?

    Dim Path As String
    Path = App.Path & "\config.ini"
    p = GetPrivateProfileString("www", "w1", "", "", 300, Path)

    Автор вопроса: Smael

    Ответ ожидается по этому адресу

    Как программно очистить корзину?

    Автор вопроса: Алексей

    Ответ ожидается по этому адресу

    Помогите. Как мне перебрать все формы в интрефейсе MDI, а то черея оператор For Each и чего не выходит?

    Автор вопроса: CyRax

    Ответ ожидается по этому адресу

    Как в панели задач определить:
    1. Её положение (сверху, снизу, слева, справа)
    2. тип отображения (постоянно, автоматически убирать с экрана)
    3. вертикальный размер (Height).

    Автор вопроса: Николай

    Ответ ожидается по этому адресу

    Как получить список всех .ехе и .сом файлов с полным путём на VB 6.0

    Автор вопроса: Николай

    Ответ ожидается по этому адресу

    При работе в локальной сети есть ли возможность запускать программы на удалённой машине???

    Автор вопроса: Света

    Ответ ожидается по этому адресу

    Здравствуйте, подскажите пожалуйста, как удалить директорию (п-р: C:/Мои документы/Папка) из Excele?

    Автор вопроса: Vlad Lagutin

    Ответ ожидается по этому адресу

    подскажите , как подключить поле Базы Acsess тип поля OLE с объектом OLE в форме? (можно ли использовать word и html одновременно)

    Автор вопроса: Николай

    Ответ ожидается по этому адресу

    Имеется список запускающих файлов(.ехе),или "хандлов"(заголовков окон). Необходимо сделать так что бы при запуске какой либо программы из этого списка программа автоматически закрывалась а на рабочем столе появлялось окно сообщений. При наступлении определённого события (клик мышкой или при помощи таймера),программа проверяет все запущенные приложения и сверяет запускающий файл или "хендл" со списком,и если находит соответствие - закрывает эту программу. Примерно так,а вот как это реализовать на VB 6.0 в виде кода я не знаю. Я не хакер и не ламер,просто надоело что в рабочее время играют в игрушки.

    Автор вопроса: Дима

    Ответ ожидается по этому адресу

    Как в меню "Помощь" в раядел "О программе" добавить картинку, а также ссылку на домашнюю страничку автора и его e-mail.

    Ответы:

    Вопрос:

    Как можно ияменить стиль формы во время выполнения программы? Не было у формы бордюр, как сделать чтобы они появились и наоборот? Вояможно с помощью какой API-функции, или может можно форму переяагруяить с другим яначением BorderStyle?

    Ответ:

    Автор ответа: P@Ssword

    Насколько я понимаю, программисты из MicroHard не сделали это стандартными средствами потому, что как бы в результате должен меняться hWnd окна, а изменения трудно перехватить.

    Вопрос:

    В VB есть такой control DataRepeater. Прочитал, что его можно использовать в качестве подчинённой формы (не ленточной, а именно подчинённой, как в Access), но нет документации как это сделать. Может кто-нибудь знает?

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Могу дать только намек. Дата репитер может являться контейнером для одного контрола, который он размножает, как и ленточная форма Аксеса. Для этого тебе нужно сделать свой ActiveX (например два текстовых поля, чекбокс, комбобокс) и уже его положить на репитер.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 50.

VBNet
  • Библиотека кодов
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый 50-ой юбилейный выпуск рассылки!
    Читайте!

    Содержание выпуска
    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Visual Basic 6. Мастер. Руководство для профессионалов

     Язык программирования Visual Basic - мощный инструмент разработки приложений для 32-разрядных систем Windows 95 и Windows NT. В книге рассматриваются как фундаментальные понятия и темы: от установки продукта на компьютер пользователя и описания интегрированной среды разработки до изложения основ техники программирования на Visual Basic, так и сложные вопросы, адресованные профессиональным программистам: создание интерфейса пользователя, применение стандартных элементов управления, в том числе и для работы с базами данных, программирование компонентов ActiveX, описание технологии OLE drag-and-drop, объектная модель FSO, функции работы с файлами, отладка и оптимизация программ, локализация и распространение готовых приложений.

    Автор: нет даных
    Издательсвто: нет данных
    Год издания: 1998
    Кол-во страниц: 992
    Стоимость: 112,48 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Visual Basic 6. Специальный справочник

     Главная цель этого справочника - научить читателя использовать инструменты и средства Visual Basic, позволяющие значительно облегчить и ускорить процесс создания приложений. Здесь вы найдете описание элементов языка, библиотечных функций и SQL-операторов. Особое внимание уделено различным мастерам, предназначенным для решения стандартных задач. Весь справочный материал в книге разбит на главы, в каждой из которых вы найдете информацию по созданию приложения определенной направленности. Разделы в главе содержат пошаговое описание операций, которые нужно выполнить для решения поставленной задачи, синтаксис необходимых операторов, а также подробно разобранные примеры. Предлагаемый справочник будет полезен не только пользователям, активно работающим с Visual Basic 6, но и начинающим программистам, желающим перейти к профессиональной разработке приложений с наименьшими затратами времени на изучение новой среды программирования.

    Автор: Б. Карпов
    Издательсвто: Питер
    Год издания: 2000
    Кол-во страниц: 416
    Стоимость: 70,78 р.
    Формат: 84х108/32
    Переплёт: нет данных

    Visual Basic 6.0 for application

     Книга является систематизированным справочником по всем элементам языка программирования Visual Basic (VB), входящим, как в автономную версию VB, так и в основные реализации Visual Basic for Applications.
    Помимо тех официальных сведений, которые можно найти в документации и в справочной системе, книга содержит конкретные примеры, рекомендации и маленькие хитрости программиста, а также поправки к справочной системе, которая, увы, не без ошибок.
    Книга предназначена для всех специалистов, занимающихся разработкой приложений с применением Visual Basic и Visual Basic for Applications.

    Автор: Король В.И.
    Издательсвто: КУДИЦ-Образ
    Год издания: 2000
    Кол-во страниц: 448
    Стоимость: 113,87 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Win32 API и Visual Basic. / Для профессионалов /

     Книга является сборником полезных советов и приемов, хотя в ней, вероятно, описаны тысячи разных приемов. Она не была задумана как энциклопедия самостоятельных фрагментов программного кода, которые бездумно подключаются к приложению - хотя многие ее примеры можно использовать подобным образом.

    Автор: Д. Эпплман
    Издательсвто: Питер
    Год издания: 2001
    Кол-во страниц: 1120
    Стоимость: 489,08 р.
    Формат: нет данных
    Переплёт: нет данных

    Азбука программирования в Windows 32 API

     Изложены вопросы создания программных приложений для Window95 и Windows NT. Описаны основные типы переменных, макросов, функций. Материал книги иллюстрируется многочисленными примерами. 1 Настоящее издание (второе вышло в 2000 г.) дополнено описанием тех возможностей Windows, которые не были упомянуты в предыдущих изданиях.

    Автор: Румянцев П.В.
    Издательсвто: Радио и связь
    Год издания: 2001
    Кол-во страниц: 312
    Стоимость: 85 р.
    Формат: 60х88/16
    Переплёт: нет данных

    Использование Visual Basic 6. Специальное издание

     В книге описана новая версия популярной системы программирования Visual Basic 6. Изложение материала построено по принципу "от простого к сложному". Первые главы этой книги адресованы новичкам, из которых они смогут почерпнуть основы языка Visual Basic и описание его стандартных компонентов. Для подготовленных пользователей будет интересен раздел, посвященный специальным методам программирования с использованием стандартных компонентов Windows, элементов управления ActiveX, ADO. RDO и др. В отдельную часть вынесены вопросы, связанные с разработкой приложений баз данных на Visual Basic и работе в Internet. Автор не обошел также вниманием различные версии языка Visual Basic - VBA и VBScript. В приложениях приведен обзор интегрированной среды разработки Visual Basic, а также краткий справочник по SQL.
    Книга рассчитана на широкий круг читателей.

    Автор: Сайлер Б., Споттс Дж.
    Издательсвто: Вильямс
    Год издания: 1999
    Кол-во страниц: 832
    Стоимость: 244,02 р.
    Формат: 70х100/16
    Переплёт: твёрдый

    Обработка баз данных на Visual Basic 6 + CD

     Сердцем многих приложении, работающих в сфере бизнеса, являются базы данных. Своим широким распространением они обязаны возможности централизованного доступа к информации. который характеризуется последовательностью, эффективностью и относительной простотой создания и поддержки. В книге "Обработка баз данных на Visual Basic 6" описываются все технологии доступа к базам данных с помощью Visual Basic. Приведенные в этой книге примеры взяты из реальной жизни, поэтому, ознакомившись с ними, вы узнаете, как можно использовать базы данных для принятия решений в сфере бизнеса. Если вы еще не готовы перейти к версии Visual Basic 6, это вовсе не значит, что данная книга вам не подходит. Практически 95% материала этой книги удовлетворит в равной степени пользователей как пятой, так и шестой версий Visual Basic.
    Книга рассчитана на программистов средней и высокой квалификации.

    Автор: Мак-Манус Дж.П.
    Издательсвто: Вильямс
    Год издания: 1999
    Кол-во страниц: 672
    Стоимость: 294,66 р.
    Формат: 70х100/16
    Переплёт: твёрдый

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 19.04.2002 11:10 | Раздел: ActiveX контролы | Автор: Борзенков Дмитрий

    RunTurnImage - OCX представляет неограниченные возможности поворота и вращения картинки на плоскости. Думаю, в примере все довольно наглядно. Внимание: Данный OCX использует FoxCBmp.dll (происхождение его мне неизвестно, ко мне попал из третьих рук). Для корректной работы RunTurnImage Control'а, в папке с приложением и/или в директории инсталяции VB означенный DLL должен присутствовать. Автору FoxCBmp.dll - особая благодарность.

    Дата: 19.04.2002 06:35 | Раздел: Статьи по VB | Автор: Садоян Рубен

    <% ASP на блюдечке %>. Часть 2. ActiveX-компоненты и ASP - В первой статье серии "<% ASP на блюдечке %>" ("<% ASP на блюдечке %>. Часть 1. Построение интерфейса к базе данных") мы ознакомились с ASP, а также с принципами построения с его помощью простейшего интерфейса к базе данных (газетный сайт со встроенными возможностями его пополнения новыми статьями, снабжаемыми фотографиями непосредственно с самого сайта и без программирования). Теперь я предложу читателям обогатить этот интерфейс возможностями загрузки (upload) HTML-статьи и иллюстрации к ней непосредственно с сайта (то есть с HTML-формы), ведения автоматической статистики посещений, организации показа баннеров, а также методами использования и азами разработки Активных Серверных Компонентов (Active Server Components) для ASP. Статья будет весьма полезна начинающим Web-программистам, профессионалам же достаточно беглого взгляда, чтобы понять принципы и вникнуть в детали работы активных серверных страниц – ASP.

    Дата: 19.04.2002 06:34 | Раздел: Статьи по VB | Автор: Садоян Рубен

    <% ASP на блюдечке %> Часть 1. Построение интерфейса к базе данных> - Еще совсем недавно, когда Интернет являл собой лишь роскошь для избранных, профессия разработчика интерактивных Web-приложений была сродни профессии шофера в начале XX века или космонавта — в середине века. Как и в большинстве профессий, поначалу был просто врач, просто инженер, просто разработчик гипертекстовых страниц. В настоящее время уже довольно сложно разобраться во всевозможных профессиях, связанных с Интернетом, и инструментах для решения самых различных Интернет-задач. Давайте попробуем разобраться в этом пестром мире средств, служащих в конечном счете для нас с вами — читателей занимательных, ярких и разнообразных страниц всемирной компьютерной сети, и рассмотрим одно из них — ASP.

    Дата: 17.04.2002 10:07 | Раздел: Примеры кода | Автор: Lessard Yves

    SkinProject - Еще шкурки. На этот раз могу с уверенностью сказать, что этот пример лучший! Все сделано на высочайшем уровне. "Обтягивается" кожей все элементы формы, включая меню. В общем, вы пожелеете, если пропустите этот пример.

    Дата: 17.04.2002 04:21 | Раздел: Статьи по VB | Автор: Смирнов Алексей

    25 советов по оптимизации ASP-приложений - Данные советы вводят в проблему повышения производительности работы приложений, использующих технологии Microsoft Active Server Pages (ASP) и Visual Basic Scripting Edition (VBScript). Большинство из них были многократно обсуждены и c успехом проверены на практике и будут интересны как новичкам в программировании ASP и VBScript, так и тем, кто уже имеет опыт работы с этими технологиями.

    Дата: 16.04.2002 12:09 | Раздел: ActiveX контролы | Автор: Борзенков Дмитрий

    FreeButton - Контрол имитатор кнопки любой мыслимой формы. Единственное ограничение: только ваша фантазия. Использует растровые изображения как шаблон для контуров... Пример использования здесь же.

    Дата: 15.04.2002 21:04 | Раздел: Примеры кода | Автор: Palladino Chris

    SkinPadPlus - Skin-ы это самое модное направление на сегодняшний день. Этот пример - один из немногих, выполненных профессионалом. Если вам нужны шкурки, то обязательно посмотрите.

    Дата: 15.04.2002 08:11 | Раздел: ActiveX контролы | Автор: Teh Ming Han

    WindowsXPControls - Проект, которого ждали! Это сборник контролов (с исходниками) на тему Windows XP. Ваша программа будет выглядеть на все 100% и в Win 9x! Проект включает в себя семь нужных контролов: от кнопок до чекбоксов. Если Вы пропустите этот проект, то нет Вам прощения!

    Последние 20 тем форума на VBNet.Ru:

    11:58 / 21 апр. Проблемма при работе с DataControl | Ответов: 0
    01:08 / 21 апр. API помогите с константами | Ответов: 0
    00:42 / 21 апр. Сохранение в gif | Ответов: 0
    22:10 / 20 апр. Регистр EAX | Ответов: 0
    20:57 / 20 апр. Эскпорт из DataGrid в Excel | Ответов: 0
    10:33 / 20 апр. Выделение маркером!!! | Ответов: 0
    02:38 / 20 апр. Я новичок в VB. С чего начать? | Ответов: 1
    21:37 / 19 апр. WIN -> DOS -??? | Ответов: 1
    21:06 / 19 апр. HTML броузер | Ответов: 1
    20:29 / 19 апр. Как читать до первого пробела? | Ответов: 1
    20:17 / 19 апр. Как сделать аналог командной строки? | Ответов: 1
    20:15 / 19 апр. Как удалить папку со всеми файлами | Ответов: 1
    12:26 / 19 апр. Передача катринки по сети | Ответов: 0
    08:25 / 19 апр. Работа с кнопками Toolbar | Ответов: 1
    23:30 / 18 апр. Где найти TrueDBGrid? | Ответов: 0
    20:51 / 18 апр. Как получить код возврата из файла exe | Ответов: 1
    20:23 / 18 апр. Убрать прогу из панели инструментов! | Ответов: 1
    17:05 / 18 апр. Шрифты в WinNTWst 4.0 | Ответов: 0
    13:58 / 18 апр. Можно ли запустить новый поток под VB | Ответов: 2
    13:54 / 18 апр. Адрес пароля в Award BIOS v4.51PG | Ответов: 1

    Последние поступления в Библиотеку кодов:

    Нет новых кодов.

    наверх

    Новости сайта VBMania

    • 15.04 - В связи с резким увеличением числа вопросов, поступающих на e-mail администрации сайта, было решено не дожидаться открытия форума, и начать отвечать на вопросы прямо на главной странице. Обсуждению последней новости ответы на вопросы не помешают. Вашего совета ждут, на ваш вопрос ответят.
    • 25.01 - Сегодня открылся новый раздел, в котором вы можете найти ссылки на целую кучу книг по тематике VB и около него.
    • 22.01 - 22 января вышел второй номер он-лайн журнала о Visual Basic 'VB Мания'. В нем можно почитать авторские статьи в уже устоявшихся разделах: Технологии, Система, Графика, Профессия, Человечество и Юмор. Так же не обошлось без новшеств: появился новый раздел dotNET и особенно рецензии ActiveX-компонентов. Обязательно заходите.
    • 17.12 - В связи с тем что форум не горел желаением вести себя так, как должен обычный, порядочный форум, мы его прикрыли для проведения разъяснительных мероприятий. Надеемся, что они не затянутся и форум образумится.
    • 06.12 - С сегодняшнего дня все желающие могут добавлять свои новости и статьи в наши архивы.
      Да здраствует открытость!
    • 27.11 - Наконец-то, после долгих дней и бессонных ночей это свершилось! Сайт объявляется открытым! Непременно прочитайте первый номер нашего журнала. Оцените наши дополнительные проекты. И конечно мы ждем ваших откликов в гостевой книге и по почте.
    • 01.12 - Произошло несколько косметических улучшений, касающихся исключительно удобства работы с сайтом. Во-первых, можно видеть количество записей обсуждения новостей на главной странице; а во-вторых чуточку подправились директории.
      Оценяйте!

    наверх

    Новости сайта Азбука VB

    • 10 апреля 2001 года
      Создание простого аналога к ListView на примере Mp3 проводника!. Пример создания листа + слайдера + применение как браузера.
      Создание прогрессбара. Еще один оригинальный вариан создания своего прогрессбара.
      Сохранения данных с рабочего листа Excel в Dbase таблицу. В связи с тем, что dbase формат до сих пор очень сильно распространен, очень часто возникает необходимость сохранения данных с рабочего листа Excel в Dbase таблицу.
      Разборка форматированного текста состояшего из шести значений разделённых символом ";". Пример разборки форматированного текста состояшего из шести значений разделённых символом ";" с последуюшеё записью каждого значения в свою ячейку. Макрос также обрабатывает все непустые ячеки столбца.
      Плагины! Создание и работа с ними. На примерах показано, как создавать плагины и как с ними можно работать.
      Проверка на слэш (способ 2). Как избежать ошибки при обращении к файлу? Иногда нужно обратиться к файлу, используя три объекта: Drive (Диск), Dir (Каталоги) и File (Файлы). Drive.Drive возвращает значение равное "?:\", где ? - буква диска. Dir.Path возвращает значение равное "?:\?", где в первом случае ? - буква диска, а во втором - каталог. File.Filename же возвращает имя файла. Если нужно открыть файл на корневом каталоге (?:\), то делается это следующим образом:
      'Справочники Советов' - Пять справочников !!!. Здесь собраны и скомпилированы в Help-файлы - "Советы тем, кто программирует на VB" А. Колесова и О. Павловой. Советы разбиты на 5 файлов (по 100 штук в каждом). Советы начинаются с № 1 (еще по VB3 - 1996 г.) по 2001 год включительно, в связи с переходом на работу в другой журнал, у последних советов появился новый соавтор Малинин. В 5-й файл добавлена статья Колесова (с советами) по работе с API-функциями.

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Нет вопросов.

    Ответы:

    Вопрос:

    После изменения данных в ADO, подключенного к базе данных в Access, и update'a как определить, произошла ли физическая запись данных на диск? Проблема в том, что если тут же использовать такой же запрос из другого ADO, то приходят старые данные. А обновленные - со значительной задержкой по времени. Кто-нибудь сталкивался с такой проблемой?

    Ответ:

    Автор ответа:     Ted

    Я, к примеру, всегда делаю так:

    Dim recAdd As New ADODB.Recordset

    Private Sub AddNew()
    'на всякий случай ;)
    If recAdd.State = adStateOpen Then recAdd.Close
    With recAdd
    .ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;_
    Data Source=" & App.Path & "\Data\basa.mdb;Persist _
    Security Info=False"
    .Source = strSQL 'здесь содержится SQL-запрос
    .CursorLocation = adUseClient
    .CursorType = adOpenDynamic
    .LockType = adLockOptimistic
    .Open
    .AddNew
    .Fields("Поле1") = Text1.Text
    ... 'и т.д.
    .Update
    .Requery
    .Close
    End With

    Теперь поясню. Самое странное, что после того как сделаешь Update и только Update, а затем с полным сознанием выполненного долга начинаешь обращаться к базе из других процедур, то вдруг видишь что только что сохраненных данных нет... Но если произведешь перезапуск программы целиком, то все оказывается на месте (включая твои данные ;)). Оказывается ADO после команды Update понимает что данные сохранены, но не считает себя обязанным скидывать эти самые данные из памяти на диск, а потому-то этих данных не видно. А вот если после команды Update произвести обновление данных (Requery) и заново обратиться к базе, то все будет Ок. Что и продемонстрировано выше :)

    Вопрос:

    После изменения данных в ADO, подключенного к базе данных в Access, и update'a как определить, произошла ли физическая запись данных на диск? Проблема в том, что если тут же использовать такой же запрос из другого ADO, то приходят старые данные. А обновленные - со значительной задержкой по времени. Кто-нибудь сталкивался с такой проблемой?

    Ответ:

    Автор ответа: Игорь

    В качестве ответа на этот вопрос привожу цитату из книги "Разработка приложений на MS VB6. Учебный курс". Может быть поможет.

    Цитата:
    Статический и последовательный курсоры предоставляют набор записей в том состоянии, в каком он был на момент его формирования. Для получения обновленных записей текущего набора применяйте метод Resync объекта Recordset. Однако этот метод не возвращает новые записи, соответствующие критериям исходного запроса. Чтобы получить новые записи, придется вызвать метод Requery, а он потребует дополнительных ресурсов, так как запрос будет выполнен заново.

    Вопрос:

    Слушайте, а как может программа, написанная в Visual Basic узнать подключены ли мы сейчас к Internet и разорвать подключение, когда уже истекло время.

    Ответ:

    Автор ответа: Ted

    Смотри http://www.vbip.com Там можно найти что-нить по этому поводу

    Вопрос:

    Так я яаписываю в INI-файл

    Dim Path As String
    Path = App.Path & "\config.ini"
    p = WritePrivateProfileString("www", "w1", "30", Path)

    Все работает

    А этим кодом я пытаюсь считать от туда данные, но нечего не выходит. Кто яанет почему ?

    Dim Path As String
    Path = App.Path & "\config.ini"
    p = GetPrivateProfileString("www", "w1", "", "", 300, Path)

    Ответ:

    Автор ответа: Him

    Ниже приведен код формы...
    Option Explicit

    Private Declare Function GetPrivateProfileString Lib "kernel32" _
    Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, _
    ByVal lpKeyName As Any, ByVal lpDefault As String, _
    ByVal lpReturnedString As String, ByVal nSize As Long, _
    ByVal lpFileName As String) As Long
    Private Declare Function WritePrivateProfileString Lib "kernel32" _
    Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, _
    ByVal lpKeyName As Any, ByVal lpString As Any, _
    ByVal lpFileName As String) As Long
    Private Path As String

    Public Sub WriteString()
    Dim P As Long
    P = WritePrivateProfileString("www", "w1", "30", Path)
    End Sub

    Public Function ReadPrivateString() As String
    Dim N As Long ' длина возвращаемой строки
    Dim Word As String * 80 ' буфер для возвращаемой строки на 80 знаков
    Path = App.Path & "\config.ini"
    ' функция GetPrivateProfileString возвращает длину строки
    N = GetPrivateProfileString("www", "w1", "", Word, 80, Path)
    If N > 0 Then
    ReadPrivateString = Left(Word, N)
    Else
    ReadPrivateString = ""
    End If
    End Function

    Private Sub Form_Load()
    Me.AutoRedraw = True
    Path = App.Path & "\config.ini"
    WriteString
    Me.Print ReadPrivateString
    End Sub

    Вопрос:

    Так я яаписываю в INI-файл

    Dim Path As String
    Path = App.Path & "\config.ini"
    p = WritePrivateProfileString("www", "w1", "30", Path)

    Все работает

    А этим кодом я пытаюсь считать от туда данные, но нечего не выходит. Кто яанет почему ?

    Dim Path As String
    Path = App.Path & "\config.ini"
    p = GetPrivateProfileString("www", "w1", "", "", 300, Path)

    Ответ:

    Автор ответа: SC

    p = GetPrivateProfileString("www", "w1", "", "", 300, Path)

    У тебя ошибка на 3 значении (lpReturnedString). Там не пустые ковычки должны быть, а переменная в которую функция вернет полученное значение.

    Объяви ещё одну переменную типа:
    Dim szReturnedString As String * 300 'Объявляем переменную с длинной равной 300 байт
    Получаем вырожение следующего вида:

    Dim Path As String
    Dim szReturnedString As String * 300

    Path = App.Path & "\config.ini"
    p = GetPrivateProfileString("www", "w1", szReturnedString, "", 300, Path)

    После того как функция вернула какое-либо значение, твоей переменной p присваивается значение равное количеству символов в этом значении. Т.е. получил строку: "Тест", р = 4. Но так как переменная szReturnedString имеет длину 300 байт, то результат будет выглядеть так: "Тест|||||||||||||||||||||....." до 300. Чтобы избавиться от такого результата используй:

    szReturnedString=Left(szReturnedString, p)
    Всё теперь переменная будет содержать необходимый результат ("Тест").

    Вопрос:

    Как программно очистить корзину?

    Ответ:

    Автор ответа: Igoryk

    Ответ на этот вопрос можно найти по адресу http://www.igoryksoft.narod.ru/vb/vbfile/vbfile5.htm

    Вопрос:

    Здравствуйте, подскажите пожалуйста, как удалить директорию (п-р: C:/Мои документы/Папка) из Excele?

    Ответ:

    Автор ответа: Duke

    Ну помоему никак. Ну вообще сначала нада убить файлы а затем папку, кстати путь к файлу на винте пишется не C:/My document/Patch а C:\My document\Patch слэши или как их там называют в другую сторону.
    Теперь серьезно
    1.надо в VB в Exel'е зайти
    2.Создать форму
    3.создать на ней кнопку
    4.Кликнуть на ней 2 раза
    5. Написать следующий техт
    RmDir "C:\Мои документы\Папка"
    убьется "ПАПКА" если в ней нет файлов то сработает. А если есть только файлы то можно
    kill "C:\Мои документы\Папка\*.*"
    и они исчезнут а затем пункт 5
    Если интересно мыль.

    Вопрос:

    подскажите , как подключить поле Базы Acsess тип поля OLE с объектом OLE в форме? (можно ли использовать word и html одновременно)

    Ответ:

    Автор ответа: Ревягин_Алексей

    Размести на форме 2 OLE-объекта(в первом (OLE1) не помещай никакого объекта, а во втором (OLE2) объект MSWord), пять кнопок (Первая (cmdNew) будет создавать БД с полем типа OLE, вторая (command1) - переносить данные из OLE2 в OLE1, третья (command2(0)) - "добавить новою запись", четвёртая (command2(1)) - "Сохранить изменения"), пятая (command2(2)) - "Удалить запись" и, для удобства, стандартный объект VB6 - Data (пусть имя остаётся по-умолчанию - "Data1") Далее не забудь указать в Project->References ссылку на Microsoft DAO 2.5/3.5 Compatibility Library

    теперь впиши код в форму:

    Private Sub cmdNew_Click()
    Dim NewDB As Database
    Dim NewWs As Workspace
    Dim NewTbl As TableDef
    Dim F1 As DAO.Field

    Set NewWs = DBEngine.Workspaces(0)
    Set NewDB = NewWs.CreateDatabase("ПУТЬ_К_БАЗЕ_ДАННЫХ", dbLangGeneral)
    Set NewTbl = NewDB.CreateTableDef("QWERTY")
    Set F1 = NewTbl.CreateField("ASD", dbLongBinary) 'OLE-объект
    NewTbl.Fields.Append F1
    Set F1 = Nothing 'освобождаем память
    NewDB.TableDefs.Append NewTbl
    NewDB.Close
    NewWs.Close
    Set NewDB = Nothing 'освобождаем память
    Set NewWs = Nothing 'освобождаем память
    Set NewTbl = Nothing 'освобождаем память

    Data1.DatabaseName = "ПУТЬ_К_БАЗЕ_ДАННЫХ"
    Data1.Connect = dbLangGeneral
    Data1.RecordSource = "QWERTY"
    Data1.Refresh
    Data1.Recordset.AddNew
    ' в результате у тебя будет создана БД с таблицей QWERTY и полем _
    с типом данных OLE - ASD

    end sub

    Private sub command2_click(index as integer)
    Select Case Index
    Case 0
    Data1.Recordset.AddNew
    Case 1
    Data1.UpdateRecord
    Data1.Recordset.Bookmark = Data1.Recordset.LastModified
    Case 2
    With Data1.Recordset
    .Delete
    .MoveNext
    If .EOF Then .MoveLast
    End With
    End Select
    end sub

    Private Sub Data1_Reposition()
    data1.Caption = "Запись № " & Data1.Recordset.AbsolutePosition + 1
    End Sub

    Private sub command1_click()
    OLE2.Copy
    OLE1.Paste
    Clipboard.Clear
    end sub

    Ну вот и всё.
    Почему через буфер? - Да потому, что напрямую писать в пустом OLE-объекте, связанным с БД у меня не получилось (причина, думаю в том, что когда в БД создаётся объект (при создании БД), то ему ни присваивается ни MSWord, ни MSExcel и т.д.)

    Вот ещё это не забудь к OLE1 добвить:
    в Properties->DataSource - Data1
    в Properties->DataField - QWERTY

    Данный вариант самый простой, можешь ещё использовать CommonDialog и другие навороты! (тут уж фантазируй сам)

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили: