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


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

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

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

    наверх


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

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