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


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

Покупали ли Вы CD или книги с сайта VBNet.Ru?

Да, конечно
Только книги
Только диски
Просто игнорирую




Рассылки Subscribe.Ru
VB.NET-World


Рассылки Subscribe.Ru
Старые игры

Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic

Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
  • Господа!!! читайте 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 можно найти
    здесь.

    наверх


    Citycat by Email

       Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
       Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх


    Новости сайта VBNet

    Дата: 23.11.2002 13:03 | Раздел: Статьи по VB | Автор: Щёкин Андрей

    Взаимодействие с процессом DOS в Visual Basic - Как-то раз мне понадобилось написать на Visual Basic программу, взаимодействующую с процесcом DOS - т.е. фактически оболочку для него. Естественная лень заставила меня в первую очередь обратится к Интернет ресурсам на эту тему. Однако максимум найденного как в наших, так и в англоязычных ресурсах - чтение вывода этого окна. С другой стороны, на форумах по программированию на VB этот вопрос поднимается достаточно часто, и обычно остается без ответа.



    Последние 20 тем форума на VBNet.Ru:

    14:30 / 25 ноя.  Хостинг | Хитов: 10 |  Ответов: 1
    14:28 / 25 ноя.  Как сделать ссылку на сайт в программе? | Хитов: 4 |  Ответов: 1
    12:43 / 25 ноя.  как можно выключить компьтер по сети ? | Хитов: 2 |  Ответов: 0
    00:33 / 25 ноя.  Как выбрать из базы данных неповторяющиеся записи? | Хитов: 24 |  Ответов: 2
    22:20 / 24 ноя.  Удаление из массива | Хитов: 19 |  Ответов: 4
    20:33 / 24 ноя.  Да та что в Пуске! | Хитов: 23 |  Ответов: 1
    19:59 / 24 ноя.  Кто скажет... | Хитов: 20 |  Ответов: 0
    14:20 / 24 ноя.  Как связать 2 recordset-а? | Хитов: 11 |  Ответов: 0
    12:50 / 24 ноя.  КАк скопировать файл? и Как определить папку а... | Хитов: 23 |  Ответов: 2
    12:03 / 24 ноя.  Работы с другими приложениями. | Хитов: 17 |  Ответов: 0
    00:21 / 24 ноя.  HELP!!!!! | Хитов: 20 |  Ответов: 0
    23:47 / 23 ноя.  FindExecutable, ShellExecute | Хитов: 20 |  Ответов: 3
    22:14 / 23 ноя.  Мозги уже опухли, и думать отказываются. | Хитов: 38 |  Ответов: 1
    22:07 / 23 ноя.  Cd-Rom | Хитов: 23 |  Ответов: 2
    10:27 / 23 ноя.  PictureBox+прорисовка ОГРОМНЫХ размеров | Хитов: 17 |  Ответов: 2
    09:23 / 23 ноя.  Админы! Что-то у Вас с закачакой примеров не то... | Хитов: 24 |  Ответов: 3
    09:14 / 23 ноя.  опять Winsock | Хитов: 11 |  Ответов: 0
    08:58 / 23 ноя.  1.Help!- Microsoft Agent Editor? | Хитов: 13 |  Ответов: 0
    05:41 / 23 ноя.  Возможно ли программно открыть файл? | Хитов: 40 |  Ответов: 3
    05:29 / 23 ноя.  Convert TControl to *.OCX | Хитов: 20 |  Ответов: 3


    Последние поступления в Библиотеку кодов:



    наверх


    Новости сайта VBMania



    наверх


    Новости сайта Азбука VB

    • 21.11.02
      Утилиты - Help Maker
      Утилита помогающая как созданию, так и обучению создания файлов помощи Windows

      Проблемы и решения - Пример запрета на ввод данных в ComboBox, через "Ctrl+V" и PopMenu - "Paste"
      Пример показывает, как без помощи Api - функций можно запретить ввод данных в ComboBox, через "Ctrl+V" и PopMenu - "Paste".

      Visual Basic - Исходные коды - Элементы управления - Пример связанной работы двух ComboBox
      Пример показывает синхронную работу двух ComboBox.

      Программы в кодах - Пользовательские - Программа резервного копирования
      Очень печально, когда "летит" винчестр....а еще печальнее, когда безвозвратно теряется информация. " Программа резервного копирования" - автоматически сделает за вас рутинную работу, вам только и нужно, что сделать некоторые установки.

      VB - Работа с Windows - Пример помещения программ в автозагрузку
      Пример показывает, как можно прописать в реестре свою программу, чтобы она автоматически загружалась с загрузкой Windows-а.

      Visual Basic - Статьи - Как добиться успеха в безнадежных проектах
      Многим руководителям ИТ-проектов знакомы ситуации, когда прекрасно спланированный процесс не укладывается во временные рамки. Несмотря на то что сроки были определены с запасом, одни модули «забирают» все доступные ресурсы, другие сразу после появления на свет удаляются за ненадобностью, а постоянные изменения требований окончательно разрушают проект.


    наверх


    Доска объявлений

       Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх


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

    BalloonMessage for MS Agent

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

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

    наверх

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

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

    Вопросы:


    Автор вопроса:
    Vasilenko Denis Leonidovich

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

       Есть у меня программа которая рассчитывает кое-какие параметры для босса. Как зделать что бы данные посылались по E-mail 'у без использования стандартных почтовых клиентов, таких как Outlook Express или the bat. Т.е если они у меня не установленны.


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

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

       При получении фокуса на кнопке прорисовывается прямоугольник (FocusRect)
    Как избавиться от него (слышал вроде через WindowsProc)
    Если можно поподробней


    Автор вопроса: -=CBK=-CRaSH

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

       Люди как записать звуки с микрофона и хранить их в переменной, а потом воспроизводить.


    Автор вопроса: Данила

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

       Вопросы такие:

    1) Как регистрировать библиотеки в реестре. Меня не интересует "regsvr32.exe" и пр., только программный код. Как подбирается универсальный номер (это самое важное), что прописывается внутрь этого ключа и т.д. (грамотный текстовик по реестру приветствуетсся)

    2) Я написал библиотеку и OCX, и зараза VB их автоматом прописал в реестре. Теперь в раздумье, будут ли они работать на другой машине (с голыми 98(5)-и окнами). Задумывалось поместить библиотеку и OCX в папку с программой, нигде их не регистрировать и вызывать их прямо из этой папки.


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

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

       Как добавить иконку в ListBox? Хотелось бы вывести список запущенных процессов в ListBox и возле показать иконку процесса. Знаю что можно легко сделасть это в ListView, но не хочется таскать громадный ocx.




    Ответы:


    Вопрос:

       Как в VBA Excel импортировать формы, модули и листы в другую книгу( только в неё, а не во все )? Можно ли создать библиотеку собственных модулей и форм и пользоваться ей в других книгах?

    Ответ:

    Автор ответа: Zoubar Serguey

    Для сохранения формы или модуля в отдельном файле необходимо щелкнуть по нужной форме или модулю в Project Explorer правой кнопкой мыши и в контекстном меню выбрать Export file...
    Соответственно для вставки ранее сохраненного модуля или формы необходимо в том же контекстном меню выбрать опцию Import file...
    Отдельно листы сохранять нельзя, но можно сохранять код, который к ним относится.


    Вопрос:

       Товарищи!! Может кто знает как в DirectDraw7 сделать объекта полупрозрачными????????

    Ответ:

    Автор ответа: -=CBK=-CRaSH

    Там есть параметр alpha ставь его 0.5


    Вопрос:

       У меня VB60. Почему в его собственном редакторе не работает колесико у скролинговой мыши? Везде работает а в VB нет. Мышь обыкновенная Genius NetScroll. Драйвера стандартные Windows. Установлена Win98. Как можно решить? Или никак? А?

    Ответ:

    Автор ответа: Андрей Никитин

    Попробуй поставить драйвера от поставщика (в трее появится иконка мыши с бегающими глазками). Скроллинг заработает во всех окнах, имеющих линейки прокрутки.



    Ответ:

    Автор ответа: Мошкин

    Про драйвер мыши
    да, у меня тоже так было.
    Когда мышь с колесом - то в Виндах и офисе колесо работает, а в байсике нет. Для этого надо поставить родные драйвера для мыши. Обычно они с ней продаются. Тогда все станет нармально и в визуал байсике.
    Сам тоже мучился, привыкаешь ведь в офисе колесом катать документ.



    Ответ:

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

    Да, была такая проюлема, попробуй поставить те дрова что с крысой подовались должно получиться



    Ответ:

    Автор ответа: Rutshtein Alex

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


    Вопрос:

       Private Declare Function RasEnumConnections Lib "RasApi32.dll" Alias "RasEnumConnectionsA" (lpRasCon As Any, lpcb As
    Long, lpcConnections As Long) As Long
    Private Declare Function RasGetConnectStatus Lib "RasApi32.dll" Alias "RasGetConnectStatusA" (ByVal hRasCon As Long,
    lpStatus As Any) As Long
    Private Const RAS95_MaxEntryName = 256
    Private Const RAS95_MaxDeviceType = 16
    Private Const RAS95_MaxDeviceName = 32
    Private Type RASCONN95
    dwSize As Long
    hRasCon As Long
    szEntryName(RAS95_MaxEntryName) As Byte
    szDeviceType(RAS95_MaxDeviceType) As Byte
    szDeviceName(RAS95_MaxDeviceName) As Byte
    End Type
    Private Type RASCONNSTATUS95
    dwSize As Long
    RasConnState As Long
    dwError As Long
    szDeviceType(RAS95_MaxDeviceType) As Byte
    szDeviceName(RAS95_MaxDeviceName) As Byte
    End Type

    Public Function IsConnected() As Boolean
    Dim TRasCon(255) As RASCONN95
    Dim lg As Long
    Dim lpcon As Long
    Dim RetVal As Long
    Dim Tstatus As RASCONNSTATUS95
    TRasCon(0).dwSize = 412
    lg = 256 * TRasCon(0).dwSize
    RetVal = RasEnumConnections(TRasCon(0), lg, lpcon)
    Tstatus.dwSize = 160
    RetVal = RasGetConnectStatus(TRasCon(0).hRasCon, Tstatus)
    If Tstatus.RasConnState = &H2000 Then
    IsConnected = True
    Else
    IsConnected = False
    End If
    End Function

    Private Sub Form_Load()
    MsgBox IsConnected()
    End Sub

    Эта программа проверяет есть свяяь с инетом или нет
    Когда программу яапускаю под Win98 все рабоиает нормально, а когда под Win2000 Происходит крах программы
    Вопросы:
    1.Почему ?
    2.Какими функциями можно яаменить их чтобы работали под Win2000
    3.Может кто янает как еще можно проверить есть свьяь с инетом или нет.

    Ответ:

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

    У меня работает в Windows XP.

    Private Declare Function RasEnumConnections Lib "RasApi32.dll" Alias "RasEnumConnectionsA" (lpRasCon As Any, lpcb As Long,
    lpcConnections As Long) As Long
    Private Declare Function RasGetConnectStatus Lib "RasApi32.dll" Alias "RasGetConnectStatusA" (ByVal hRasCon As Long,
    lpStatus As Any) As Long
       
    Private Const RAS95_MaxEntryName = 256
    Private Const RAS95_MaxDeviceType = 16
    Private Const RAS95_MaxDeviceName = 32

    Private Type RASCONN95
        dwSize As Long
        hRasCon As Long
        szEntryName(RAS95_MaxEntryName) As Byte
        szDeviceType(RAS95_MaxDeviceType) As Byte
        szDeviceName(RAS95_MaxDeviceName) As Byte
    End Type
       
    Private Type RASCONNSTATUS95
        dwSize As Long
        RasConnState As Long
        dwError As Long
        szDeviceType(RAS95_MaxDeviceType) As Byte
        szDeviceName(RAS95_MaxDeviceName) As Byte
    End Type

    '----------------------------------------------
    'А вот и сама функция If IsConnected = True Then...End If

    Public Function IsConnected() As Boolean
         On Error Resume Next
             Dim TRasCon(255) As RASCONN95
             Dim lg As Long
             Dim lpcon As Long
             Dim retVal As Long
             Dim Tstatus As RASCONNSTATUS95
                 TRasCon(0).dwSize = 412
                 lg = 256 * TRasCon(0).dwSize
                 retVal = RasEnumConnections(TRasCon(0), lg, lpcon)
                 Tstatus.dwSize = 160
                 retVal = RasGetConnectStatus(TRasCon(0).hRasCon, Tstatus)
             
             If Tstatus.RasConnState = &H2000 Then
                 IsConnected = True
             Else
                 IsConnected = False
             End If
    End Function



    Ответ:

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

    У меня win2000 и этот код работает:
      
    Private Declare Function InternetGetConnectedStateEx Lib "wininet.dll" Alias "InternetGetConnectedStateExA" (ByRef lpdwFlags As Long, ByVal lpszConnectionName_ As String, ByVal dwNameLen As Long, ByVal dwReserved As Long) As Long 'Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef lpdwFlags As_ Long, ByVal dwReserved As Long) As Long 'this function used with IE4
      
    Private Sub Check(Optional ByRef ConnectionInfo As Long, Optional ByRef ConnectionName As String)
    Dim dwFlags As Long
    Dim NameBuf As String
    Dim lPos As Long
    NameBuf = String$(513, 0)
    If InternetGetConnectedStateEx(dwFlags, NameBuf, 512, 0&) Then
    lPos = InStr(NameBuf, vbNullChar)
    If lPos > 0 Then
    ConnectionName = Left$(NameBuf, lPos - 1)
    Else
    ConnectionName = ""
    End If
    MsgBox "Есть связь"
    Else
    MsgBox "Нет связи"
    End If
    End Sub
      
    Private Sub Form_Load()
    Call Check
    End Sub


    Вопрос:

       А все таки как нарисовать треугольник по трем точкам. Конкретно мне надо: чтобы на экране нарисовался закрашенный треугольник. Если я буду рисовать его по линиям, то это займет много времени.

    Ответ:

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

    используй функцию Line

    Line (x1,y1) - ( x2, y2)



    Ответ:

    Автор ответа: Михаил

    Я думаю, есть смысл попробовать функции типа Polygon, виндовые. Правда, в какой библиотеке они лежат я не в курсе... Да и лежат ли?
       Можно библиотеку на С написать :).



    Ответ:

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

    'Кода много, но работает быстро.
    'Рисует треугольник на форме. Если нужен desktop см. GetDesktopWindow,
    'GetDC, ReleaseDC

    Option Explicit
    Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As
    Long) As Long
    Private Declare Function FillRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long) As Long
    Private Declare Function CreateBrushIndirect Lib "gdi32" (lpLogBrush As LOGBRUSH) As Long
    Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
    Private Type POINTAPI
             x As Long
             y As Long
    End Type
    Private Type LOGBRUSH
             lbStyle As Long
             lbColor As Long
             lbHatch As Long
    End Type
    Const ALTERNATE = 1
    Const WINDING = 2
    Const BLACKBRUSH = 4
    Dim pts(1 To 3) As POINTAPI
    Dim hwdRgn&, brush As LOGBRUSH, hwdBrush&
    Private Sub cmd1_Click()
         pts(1).x = Rnd * frm1.ScaleWidth
         pts(1).y = Rnd * frm1.ScaleHeight
         pts(2).x = Rnd * frm1.ScaleWidth
         pts(2).y = Rnd * frm1.ScaleHeight
         pts(3).x = Rnd * frm1.ScaleWidth
         pts(3).y = Rnd * frm1.ScaleHeight
         brush.lbColor = Val("&HFFF0ff")
         brush.lbHatch = 0
         brush.lbStyle = 0
         hwdRgn& = CreatePolygonRgn(pts(1), 3, ALTERNATE)
         hwdBrush& = CreateBrushIndirect(brush)
         If hwdRgn& And hwdBrush& Then
             FillRgn(frm1.hdc, hwdRgn&, hwdBrush&)
             DeleteObject hwdRgn&
             DeleteObject hwdBrush&
         End If
    End Sub

    Private Sub Form_Load()
         frm1.ScaleMode = 3
    End Sub



    Ответ:

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

    Код взят из API-Guide, разберёшся:

    Private Type COORD
         x As Long
         y As Long
    End Type
    Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As Any, ByVal
    nCount As Long, ByVal nPolyFillMode As Long) As Long
    Private Declare Function Polygon Lib "gdi32" (ByVal hdc As Long, lpPoint As
    Any, ByVal nCount As Long) As Long
    Private Declare Function FillRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn
    As Long, ByVal hBrush As Long) As Long
    Private Declare Function GetStockObject Lib "gdi32" (ByVal nIndex As Long)
    As Long
    Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As
    Long
    Const ALTERNATE = 1 ' ALTERNATE and WINDING are
    Const WINDING = 2 ' constants for FillMode.
    Const BLACKBRUSH = 4 ' Constant for brush type.
    Private Sub Form_Paint()
         'KPD-Team 1999
         'URL: http://www.allapi.net/
         'E-Mail: KPDTeam@Allapi.net
         Dim poly(1 To 3) As COORD, NumCoords As Long, hBrush As Long, hRgn As
    Long
         Me.Cls
         ' Number of vertices in polygon.
         NumCoords = 3
         ' Set scalemode to pixels to set up points of triangle.
         Me.ScaleMode = vbPixels
         ' Assign values to points.
         poly(1).x = Form1.ScaleWidth / 2
         poly(1).y = Form1.ScaleHeight / 2
         poly(2).x = Form1.ScaleWidth / 4
         poly(2).y = 3 * Form1.ScaleHeight / 4
         poly(3).x = 3 * Form1.ScaleWidth / 4
         poly(3).y = 3 * Form1.ScaleHeight / 4
         ' Polygon function creates unfilled polygon on screen.
         ' Remark FillRgn statement to see results.
         Polygon Me.hdc, poly(1), NumCoords
         ' Gets stock black brush.
         hBrush = GetStockObject(BLACKBRUSH)
         ' Creates region to fill with color.
         hRgn = CreatePolygonRgn(poly(1), NumCoords, ALTERNATE)
         ' If the creation of the region was successful then color.
         If hRgn Then FillRgn Me.hdc, hRgn, hBrush
         DeleteObject hRgn
    End Sub
    Private Sub Form_Resize()
         Form_Paint
    End Sub


    Вопрос:

       Как сделать запрос к двум таблицам, которые храняться в разных базах данных?

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Это зависит от того, какой СУБД ты пользуешься и при помощи какой технологии доступаешься
    Например,

    Для MS Access + DAO можно использовать IN
    Для MSSQL + ADO можно использовать USE


    Вопрос:

       Как отобаяить в listbox имена файлов в укаяаной папки

    Ответ:

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

    А FileListBox на что?



    Ответ:

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

    Используй "FileListBox"



    Ответ:

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

    Для этого есть специальный контрол - FileListBox



    Ответ:

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

    Используй стандартный контрол FileListBox


    Вопрос:

       Народ непоскажител какие есть типы БД с которымиможно было работать на ВБ, хорошобы чтоб они поддерживали тип данных в котором моглт бы храниться графические файлы.

    Ответ:

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

    Microsoft DAO (точно держит графику)
    FoxPro
    Oracle



    Ответ:

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

    Самый тривиальный Access - прекрасно работает с картинками.



    Ответ:

    Автор ответа: Ревягин_Алексей

    стандартный *.MDB
       тип поля должен быть OLE


    Вопрос:

       Может кто подскажет, как сделать звонилку для Инета, восстанавливающую связь при обрыве, при работе по системе CallBack (обратный звонок). Т.к. телефонщики перешли на повременную оплату, все перешли на этот способ в ответ, но поставить задачу закачки на ночь невозможно т.к. этот метод стандартный софт дозвона не поддерживает.

    Ответ:

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

    ну вот тебе и вылажи всё да разжуй, ты конкретезируй вопросы. звонилку то можно зделать, скажи что именно тебе не понятно,
    с удовольствием отвечу :)


    Вопрос:

       Если в буфер обмена помещается строка текста (к примеру адрес сайта), то как записать его отдельной строкой в файл(txt), если строка уже сужествует вывести сообщение и повторно не записывать.

    Ответ:

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

    Если я правильно тебя понял то наверное так :)

    Private Sub Form_Load()
      Dim f$, rStr$, a$
      Dim Yes As Boolean
      f = FreeFile
    ' Clipboard.SetText "искомая строка" ' - этой строкой сам понял что вожно зделать :)
      rStr = Clipboard.GetText
      Open "c:\autoexec.bat" For Input As #f
       While Not EOF(f)
        Line Input #f, a
        If a = rStr Then Yes = True Else Yes = False
       Wend
      Close
      If Not Yes Then
       Open FileName For Append As #f
        Print #f, rStr
       Close
      End If
      End
    End Sub



    Ответ:

    Автор ответа: Ревягин_Алексей

    Если я правильно понял вопрос то так:
       сначала считываем файл в массив (желательно делать это в Form_load)

       dim mas() as string
       dim str as string,i&
       i=0
       open "ПУТЬ_К_ФАЙЛУ" for input as #2
       do until eof(2)
       line input #2,str
       i=i+1
       loop
       close #2
       redim mas(i) as string
       
       i=0
       open "ПУТЬ_К_ФАЙЛУ" for input as #2
       do until eof(2)
       line input #2,str
       mas(i)=str
       i=i+1
       loop
       close #2

       размести на форме таймер с интервалом в 500 мс
       объяви в declarations переменную buf as string
       в таймере пиши:

       buf=Clipboard.GetText

       теперь проверяем имеется ли такой URL

       for i=0 to ubound(mas)
       if mas(i)=buf then
         msgbox "Already have"
         exit sub
       endif
       next i
       'а если такой строки нет, то пишем её в файл
       open "ПУТЬ_К_ФАЙЛУ" for append as #2
       ? #2,buf
       close #2
       form_load 'снова заполняем массив из файла

       можно сделать по другому объявить массив к примеру в 101 элемент (mas(100) as string), но тогда придётся вводить проверку на пустые элементы массива и следить за тем, чтобы не произошло переполнение массива.
       Можно щаранее объявить большой массив (1000) или больше, но он сожрёт много памяти.


    Вопрос:

       Как можно прицепить к TextBox'у свое контекстное меню, чтобы при нажатии правой кнопки мыши выскакивала моя менюшка а не стандартная. А может можно как-нибудь добавить в стандартное меню свой пункт? (хотя сильно в этом сомневаюсь). Писать свой контрол с нуля или подключать уже готовый не хотелось бы, т.к. данный ход нужен только в одном месте на весь проект, а сторонний контрол ресурсов сожрет немерено.

    Ответ:

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

    Конечно можно добавить и в стандарную менуху своё но реч сейчас не об етом.
    1. Создаёшь новую форму(или на уже созданой форме создаёшь меню)
    2. Создаёшь меню.
    3. В свойстве TextBox-а MouseDown:

    Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
      If Button = 2 Then
       PopupMenu MenuName
      End If
    End Sub

    вот собственно и всё :)



    Ответ:

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

    Для создания меню для любого элемента, нужно:
    1) сделать это меню в "Редактор меню". Допустим, у тебя получилось следующее

         "Меню"
         "....Подменю1"

    2) для элемента пишишь следующий код

         Private Sub ЭЛЕМЕНТ_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
         If Button = 2 Then
         ФОРМА_С_ЭЛЕМЕНТОМ.PopupMenu Меню
         End If
         End Sub

    И всё.
    Действия по добавлению в стандартное меню своего пункта сложнее.




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

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

    наверх


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

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