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


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

Ваш голос отсылается по 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!!!

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

       Поздравляю всех с официальным наступлением весны!
    Читайте!


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




    Книги

    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 для ответа

    наверх


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

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