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


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
  • VB на русском
  • Улицы VB
  • VB - шаг за шагом
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • Господа!!! читайте MSDN!!!

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

       Новый 26 выпуск рассылки.
    Читайте!


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




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

    наверх


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

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