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


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

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

       У меня сегодня день рождения. Сумел всё-таки сделать этот выпуск. Сейчас пойду с друзьями отмечать.
    Читайте!


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




    Книги

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

    наверх


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

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