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


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

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.



Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.

Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
  • DanSoft
  • Господа!!! читайте MSDN!!!

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

       Очередной выпуск рассылки.
    Читайте!


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




    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...

    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.


    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET

    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.


    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...

    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.




    Остальные книги о VB можно найти здесь.

    наверх


    Включить/выключить перенос по словам

    Расположите на форме 2 элемента CommandButton.

    Const WM_USER = &H400
    Const EM_SETTARGETDEVICE = (WM_USER + 72)
    Private Declare Function SendMessageLong Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

    Private Sub Command1_Click()
    SendMessageLong RichTextBox1.hwnd, EM_SETTARGETDEVICE, 0, 1
    End Sub

    Private Sub Command2_Click()
    SendMessageLong RichTextBox1.hwnd, EM_SETTARGETDEVICE, 0, 0
    End Sub

    наверх


    Как сохранить RTF-файл в виде простого текста

    Переменная txt содержит содержимое открытого rtf-файла в виде простого текста

    Dim txt As String: txt = RichTextBox1.Text
    Dim FN As Integer: FN = FreeFile
    Dim FName As String: FName = "C:\index.txt"
    Open FName For Output As #FN: Print #FN, txt: Close #FN

    наверх


    Как снять форматирование при вставке текста в элемент RichTextBox

    Предположительно, в буфере обмена у вас находится текст с форматированием, который вы хотите вставить как обычный текст. Используйте следующий код для решения такой проблемы:

    Dim CBC As String
    CBC = Clipboard.GetText
    Clipboard.Clear
    Clipboard.SetText CBC

    наверх


    Выделить цветом определенное слово во всем тексте

    Расположите на форме элемент RichTextBox и элемент CommandButton. Установите ссылку на любой файл в процедуру Form_Load().

    Private Sub Command1_Click()
    Dim lWhere, lPos As Long
    Dim sTmp, sSearch As String
    lPos = 1
    'Здесь вы можете указать слово для поиска и замены
    sSearch = "FAQ"
    'поиск по всему тексту
    Do While lPos < Len(Me.RichTextBox1.Text)
    sTmp = Mid(Me.RichTextBox1.Text, lPos, Len(Me.RichTextBox1.Text))
    lWhere = InStr(sTmp, sSearch)
    lPos = lPos + lWhere
    If lWhere Then 'если строка для поиска найдена
    Me.RichTextBox1.SelStart = lPos - 2 'установить начало выделения
    Me.RichTextBox1.SelLength = Len(sSearch) 'установить длину выделения
    Me.RichTextBox1.SelColor = RGB(255, 0, 0) 'изменить цвет выделения красным цветом
    Else
    Exit Do
    End If
    Loop
    End Sub

    Private Sub Form_Load()
    'установите ссылку на любой файл в формате rtf или txt
    RichTextBox1.FileName = "C:\Мои документы\courier.txt"
    End Sub

    наверх


    Как вставить рисунок

    Данный пример покажет, как можно программно вставить графический файл в элемент 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

    наверх


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

    BalloonMessage for MS Agent

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

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

    наверх


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

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

    Вопросы:


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

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

       У меня творческий облом ,и от делать нечего решил написать просмотрщик
    графики.
    Просто "просмотрщик графики" я сделал быстро, но просто "просмотрщик графики" это не интересно и даже грустно:((
    Поэтому я решил добавить возможность просмотра графики из и-нета ,но как вы уже поняли.....
    Если кто-нибуть знает как это возможно осуществить, напишите!!!


    Автор вопроса: Саша

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

       Как отправить какой либо файл на печать ?


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

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

       Помогите, какой нибудь информацией по поводу прокрутки колесиком мыши в элименте управления DBGrid и вообще в VB можно получить доступ к колесику


    Автор вопроса: Шаде

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

       Вот скачал ocx для создания ярлычков, а он не пашет :(( может у кого есть инфа как эти самые ярлычки создавать?


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

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

       Народ, а каково Ваше мнение на Visual Basic 7.0... как он Вам на первый вягляд(а может быть и не на первый)...


    Автор вопроса: Emil revencu

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

       Нужен формат файлов-ярлыков (*.lnk), то-есть байт-карта файла.


    Автор вопроса: s-in

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

       Как сделать программу сервисом в Windows XP? Чтобы программа когда запускалась, определяла, какая версия Windows установлена, XP или 98?
       Знаю,что сервис в Windows 98 делается так:

       Public Declare Function RegisterServiceProcess Lib "kernel32" (ByVal ProcessID As Long, ByVal
       ServiceFlags As Long) As Long
       Public Declare Function GetCurrentProcessId Lib "kernel32" () As Long
      
       RegisterServiceProcess GetCurrentProcessId, 1

       А как в XP?


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

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

       У меня несколько вопросов:

    1. Как можно записать рисунок в переменную, чтобы после значение переменной снова присвоить PictureBox?
    h = Picture1.Picture
    Picture2.Picture = h - так не выходит, говорит, что требуется объект
    h = Picture1.hDC - это вообще лишь указатель на картинку в памяти, если я правильно понял.
    Или, если кто знает, как считать ее из памяти в переменную? BitBlt или через сохранение в файл не предлагать.

    2. Как выключить комп из Win2k? Те API, что работали в Win9x в Win2k не работают.

    3. Может кто знает как использовать *.dic - словари из Word'a(для проверки орфографии).

    Буду рад любой информации!


    Автор вопроса: Игорь

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

       Вот Задача или незадача! Необходимо создать отчет таком виде чтобы во время выполнения на него можно было брасать разные контролы по DragDrop и затем его распечатать. Пробывал с PictureBox, печатает только графику, может кто подскажет или даст ссылку.


    Автор вопроса: P@Ssword

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

       Как определить момент выключения компьютера? Надо отсеять перезагруяку и завершение сеанса.


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

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

       Написал программу, с использованием БД аксесс.
    Устанавливаю на компе юзверя - не хочет работать, говорит не могу создавать объекты БД.
    Покопался, обнаружил что нужно поставить MDAC_TYP на компе юзверя...
    Дело в том, что не хочется на CD иметь два сетапа, один с моей прогой, второй MDAC_TYP.
    Как обойтись без него, т.е. как узнать какие DLL нужны, для того чтобы их включить в инсталляшку моей проги и не заставлять юзверя устанавливать два сетапа ?

    И еще один вопрос.
    Какие библиотеки нужны чтоб на компе юзверя заработал флеш (свиф) ?


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

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

       Как в ВБ мона принять письмо с атачментом и распаковать атачмент нормально. Отсылать я умею, и принимать тоже, а вот как его дешифровать из этого UUE алгоритма ?
    Если у кого есть хоть какая-то инфа по данному делу, огромная просьба поделиться - век не забуду добрых людей!


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

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

       Как в DataBoundGrid переместиться в конец/начало таблицы?
    Как изменять и записывать значения в DBGrid?


    Автор вопроса: OriGinal fox

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

       Как с помощью Vb очистить корзину?




    Ответы:


    Вопрос:

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

    Ответ:

    Автор ответа: Константин

    Если в мамку встроена сетевая плата, то в БИОСе должна быть соответствующая опция, типа включить компьютер по вызову на сетевую плату... или что-то в этом роде (детально не разбирался).



    Ответ:

    Автор ответа: Tank

    Никак ты его по сети не включишь, это технически не возможно! За это БИОС отвечает, а сетевая карта лишь потом инициализируется, да и вообще сейчас большинство сетевых карт только под виндами работают. Максимум что ты можешь сделать так это установить в БИОСе будильник на включение, тоды комп включится в установленное время



    Ответ:

    Автор ответа: Andrushin Sergey

    Если компьютер выключен, значит он не подключён к сети, а значит не
    включить, не выключить его нельзя!



    Ответ:

    Автор ответа: TiborF

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


    Вопрос:

       Можно ли привяяать координаты дочерней формы (свойства Top и Left) к координатам кнопки, по нажатию на котррую эта форма выяывается. Например, чтобы дочерняя форма появлялась строго под кнопкой неяависимо от положения самой кнопки на родительской форме?
    В приведенном ниже примере привяяка почему-то не работает:

    Form1.Left = MainForm.cmdButton.Left + 100
    Form1.Top = MainForm.cmdButton.Top + 50

    Ответ:

    Автор ответа: Chernov Dmitry

    Дело в том, что Access и Windows используют разные системы координат.
    Для того, чтобы привязать вызываемую форму к определенной точке (как на картинке) необходимо выполнить пересчет координат

    Добавляем в проект модуль Календарь

    ---------- Модуль Календарь ----------

    Option Compare Database
    Option Explicit

    Public Type POINTAPI
             x As Long
             y As Long
    End Type

    Public Type RECT
             Left As Long
             Top As Long
             Right As Long
             Bottom As Long
    End Type

    Public Const SWP_FRAMECHANGED = H20
    Public Const SWP_HIDEWINDOW = H80
    Public Const SWP_NOACTIVATE = H10
    Public Const SWP_NOCOPYBITS = H100
    Public Const SWP_NOMOVE = H2
    Public Const SWP_NOOWNERZORDER = H200
    Public Const SWP_NOREDRAW = H8
    Public Const SWP_NOREPOSITION = SWP_NOOWNERZORDER
    Public Const SWP_NOSIZE = H1
    Public Const SWP_NOZORDER = H4
    Public Const SWP_SHOWWINDOW = H40

    Public Const LOGPIXELSX = 88
    Public Const LOGPIXELSY = 90

    Public Const SM_CXSCREEN = 0
    Public Const SM_CYSCREEN = 1

    Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI)
    As Long
    Public Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As
    Long
    Public Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long,
    lpRect As RECT) As Long
    Public Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long,
    lpRect As RECT) As Long
    Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long,
    ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal
    cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
    Public Declare Function ScreenToClient Lib "user32" (ByVal hwnd As
    Long, lpPoint As POINTAPI) As Long
    Public Declare Function ClientToScreen Lib "user32" (ByVal hwnd As
    Long, lpPoint As POINTAPI) As Long

    Private Declare Function CreateDC Lib "gdi32" Alias "CreateDCA" (ByVal
    lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As
    String, lpInitData As Any) As Long
    Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As
    Long
    Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long,
    ByVal nIndex As Long) As Long
    Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As
    Long) As Long

    Public Function CallCalendar(Optional dDate As Variant, Optional lLeft
    As Long = 0, Optional lBottom As Long = 0, Optional lTop As Long = 0)
    As Date
         Dim frm As Form_frm_calendar ' _frm_calendar
         Dim lB As Long, lL As Long, lH As Long, lW As Long
         Dim lTwipX As Long, lTwipY As Long
         Dim ScreenX As Long, ScreenY As Long

         DoCmd.OpenForm "frm_calendar", acNormal, , , , acHidden
         Set frm = Forms!frm_calendar.Form

         lL = lLeft
         lB = lBottom
         lH = frm.WindowHeight
         lW = frm.WindowWidth
         lTwipY = GetYTwipsInPixel()
         ScreenX = GetSystemMetrics(SM_CXSCREEN)
         ScreenY = GetSystemMetrics(SM_CYSCREEN)
         lH = lH / GetYTwipsInPixel()
         lW = lW / GetXTwipsInPixel()
         If lB + lH > ScreenY Then lB = lTop - lH - 1
         If lL + lW > ScreenX Then lL = ScreenX - lW - 1

         SetWindowPos frm.hwnd, 0, lL, lB, 0, 0, SWP_NOSIZE Or SWP_NOZORDER
         
         If IsMissing(dDate) Then dDate = Now()
         If IsNull(dDate) Then dDate = Now()
         
         frm.MyDate = dDate
         frm.Visible = True
         frm.fActive = True

         Do
             DoEvents
         Loop While frm.fActive ' Ожидание закрытия окна

         CallCalendar = frm.MyDate
         frm.fUnload = True
         DoCmd.Close acForm, frm.Name
         Set frm = Nothing
    End Function

    ' Функция GetXTwipsInPixel возвращает кол-во Twips в 1-ом пикселе по
    горизонтали
    Public Function GetXTwipsInPixel() As Long
         Dim hdc As Long
         hdc = CreateDC("DISPLAY", ByVal 0, ByVal 0, ByVal 0)
         GetXTwipsInPixel = 1440 / GetDeviceCaps(hdc, LOGPIXELSX)
         Call DeleteDC(hdc)
    End Function

    ' Функция GetYTwipsInPixel возвращает кол-во Twips в 1-ом пикселе по
    вертикали
    Public Function GetYTwipsInPixel() As Long
         Dim hdc As Long
         hdc = CreateDC("DISPLAY", ByVal 0, ByVal 0, ByVal 0)
         GetYTwipsInPixel = 1440 / GetDeviceCaps(hdc, LOGPIXELSY)
         Call DeleteDC(hdc)
    End Function

    ----------------------------------

    Создаем две формы. На одну бросаем поле [Дата1] и кнопку [КнопкаДата1].
    На другой OCX Календарь. В первой форме к событию Click кнопки
    [КнопкаДата1] привязываем следующую процедуру

    ---------- Модуль формы ----------

    Private Sub КнопкаДата1_Click()
    On Error GoTo Err_КнопкаДата1_Click
         Dim lTwipX As Long, lTwipY As Long
         Dim pt As POINTAPI
         Dim rcWnd As RECT
         Dim d As Date
         
         lTwipX = GetXTwipsInPixel()
         lTwipY = GetYTwipsInPixel()

         pt.x = 0: pt.y = 0
         ClientToScreen Me.hwnd, pt

         With rcWnd
             .Top = pt.y + CLng((Me![Дата1].Top + Me.CurrentSectionTop) /
    lTwipY)
             .Bottom = pt.y + CLng((Me![Дата1].Top + Me![Дата1].Height +
    Me.CurrentSectionTop) / lTwipY)
             .Left = pt.x + CLng((Me![Дата1].Left + Me.CurrentSectionLeft) /
    lTwipX)
         End With

         If IsNull(Me![Дата1]) Then
             Me![Дата1] = CallCalendar(, rcWnd.Left, rcWnd.Bottom, rcWnd.Top)
         ElseIf Len(Me![Дата1]) Then
             d = DateValue(Me![Дата1])
             Me![Дата1] = CallCalendar(d, rcWnd.Left, rcWnd.Bottom,
    rcWnd.Top)
         Else
             Me![Дата1] = CallCalendar(, rcWnd.Left, rcWnd.Bottom, rcWnd.Top)
         End If
    Exit_КнопкаДата1_Click:
         Exit Sub

    Err_КнопкаДата1_Click:
         MsgBox "<" Err.Number "> " Err.Description
         Resume Exit_КнопкаДата1_Click
    End Sub

    ----------------------------------

    Вот и все... Собственно форма календарь ничего сложного не представляет.

    ---------- Модуль формы Календарь ----------

    Option Compare Database
    Option Explicit

    Public fUnload As Boolean
    Public fActive As Boolean

    Private Sub Form_Load()
       fUnload = False
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
       If Not fUnload Then
         fActive = False
         Me.Visible = False
         Cancel = -1
       End If
    End Sub

    Private Sub ЭлементActiveX0_AfterUpdate()
       SetCaption
    End Sub

    Private Sub ЭлементActiveX0_Click()
         Form_Unload 0
    End Sub

    Private Sub SetCaption()
       Me.Caption = Format$(DateSerial(ЭлементActiveX0.Year,
    ЭлементActiveX0.Month, ЭлементActiveX0.Day), "dd.mm.yyyy")
    End Sub

    Public Property Let MyDate(d As Date)
         ЭлементActiveX0.Year = Year(d)
         ЭлементActiveX0.Month = Month(d)
         ЭлементActiveX0.Day = Day(d)
         SetCaption
    End Property

    Public Property Get MyDate() As Date
         MyDate = DateSerial(ЭлементActiveX0.Year, ЭлементActiveX0.Month,
    ЭлементActiveX0.Day)
    End Property



    Ответ:

    Автор ответа: P@Ssword

    Положение элементов формы задаётся относительно левого верхнего угла формы, а положение формы - относительно левого верхнего угла экрана. Так что небольшое преобразование координат не помешает :-)

    Form1.Left = MainForm.Left + MainForm.cmdButton.Left + 100
    Form1.Top = MainForm.Top + MainForm.cmdButton.Top + 50


    Вопрос:

       Есть ComboBox со значениями, в зависимости от выбираемого значения появляетяс Lebel. При задании

    Private Sub Combo1_Change()
    Select Case Combo1.Value
    Case "СУГ"
    Form.Label2.Visible = True
    Case "Нефть"
    Form.Label2.Visible = False
    End Sub

    В результате Label2 - не исчезает

    Ответ:

    Автор ответа: Барсуков Евгений

    Все дело в том, что вы обрабатываете только событие Change, а нужно обработывать еще и событие Click. То есть код должен быть такой:

    Private Sub Combo1_Change()
    Select Case Combo1.Value
    Case "СУГ"
    Form.Label2.Visible = True
    Case "Нефть"
    Form.Label2.Visible = False
    End Sub

    Private Sub Combo1_Click()
    Combo1_Change
    End Sub



    Ответ:

    Автор ответа: Карамнов Саша - KAS \(c\)"

    По неизвестным мне причинам событие Change не действует, а свойство Value не существует и вообще команду Select надо заканчивать End Select, а вот так получается:

    Private Sub Combo1_Click()
      Select Case Combo1.Text
       Case "СУГ"
        Label1.Visible = True
       Case "Нефть"
        Label1.Visible = False
      End Select
    End Sub



    Ответ:

    Автор ответа: Анатолий

    Событие Change происходит тогда, когда меняется текст непосредственно в строке (удаляются или вставляются символы). Если же значение просто выбирается из выпадающего списка, то этого не происходит. Нужно использовать другие события - потеря фокуса, нажатие кнопки etc. В Access есть событие AfterUpdate(после обновления) - в нем такие вещи и отслеживаются. В VB я такого для ComboBox не нашел :-( . Но я в основном работаю с Access'ом, и чистый VB не сильно знаю. Может. это как-то по другому называется. И еще - у ComboBox, похоже, нет свойства Value, а есть Text.



    Ответ:

    Автор ответа: Mind Engine

    Гы! У ComboBox`a в VB нет свойства Value! Value только в VBA под Аccess и прочих офисных мамонтах! Надоть опрашивать Text! =) A также тконструкцию select case надо завершать 'end select' и событие для ComboBox другое! Внимательней, мадам, надо быть! ;)

    Для VB только так

    Private Sub Combo1_Click()
      Select Case Combo1.Text
       Case "СУГ"
        Label2.Visible = True
       Case "Нефть"
        Label2.Visible = False
      End Select
    End Sub

    Для VBA же так

    Private Sub Combo1_Change()
      Select Case Combo1.Value 'можно и Text! %)
       Case "СУГ"
        Label2.Visible = True
       Case "Нефть"
        Label2.Visible = False
      End Select
    End Sub



    Ответ:

    Автор ответа: Евгений

    А попробуйте так:

    Private Sub Form_Load()
         ComboBox1.AddItem "СУГ", 0
         ComboBox1.AddItem "Нефть", 1
    End Sub

    Private Sub ComboBox1_Change()
         Select Case ComboBox1.ListIndex
             Case 0:
                 Form.Label2.Visible = True
             Case 1:
                 Form.Label2.Visible = False
                 End Select
    End Sub


         P.S. А так же можно для красоты использовать такой контрол, как Microsoft Form 2.0 ... там ComboBox можно сделать прозрачным!



    Ответ:

    Автор ответа: MaxOn

    Попробуй так:

    Private Sub Combo1_Change()
    Select Case Combo1.Text
    Case "nw"
    Form1.Label2.Visible = True
    Case "wn"
    Form1.Label2.Visible = False
    End Select
    End Sub



    Ответ:

    Автор ответа: P@Ssword

    Может, вместо Combo1.Value нужно Combo1.Text?


    Вопрос:

       Пишу программу на VBA в Excel, вешаю мою процедуру на DBClick, как сделать так, что бы после выполнения моей процедуры DBClick не отрабатывался.

    Ответ:

    Автор ответа: Mind Engine

    Глобальную логическую переменную определи и все! В теле DBClick`a проверку на это дело, как твоя процедура сработала, в конце ее енту переменную в 1 и усе! Moл сам не знал! ;)

    dim lvr as integer

    Private Sub Form_Load()
    lvr = 0
    End Sub

    Private Sub Form_DblClick(Cancel As Integer)
    if lvr then exit sub
    End Sub


    Вопрос:

       Как получить в List адреса всех веб-страниц, которые расположены на текущем сервере? Т.е., например, мне надо получить полный список всех страниц, которые находятся на http://www.hostname.com/ и внести все полученные URL в ListBox. Если кто-то может помочь, напишите как.
    Буду благодарен, также, если приведете пример.

    Ответ:

    Автор ответа: P@Ssword

    К сожалению, протокол HTTP не предусматривает команды DIR, так что максимум, что можно узнать с сервера, - это страницы, на которые имеются ссылки. Так что принцип такой: скачиваем главную страницу, парсируем её на предмет поиска линков на другие страницы, с этими страницами делаем то же самое.




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

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

    наверх


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

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