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

VBNet
  • Статьи
  • Библиотека кодов
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

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

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

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

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

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

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

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

    Новый выпуск рассылки. Раздел Вопрос/Ответ заработал.
    Читайте!

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

    • Форматирование числа при выводе (заполнение до определенной длины)
    • Захват текста из любого текстового поля
    • Послать строковое сообщение в другую программу
    • Как определить серийный номер для диска
    • Определить количество процессоров в компьютере
    • Получить сведений о любом диске: Floppy Disk/CD/Hard Drive

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

    Книги

    Переход на 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 можно найти     здесь.

    наверх

    Форматирование числа при выводе (заполнение до определенной длины)

    Пример применения функции     String

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

    Function PadToString(myValue, Digits) As String
    PadToString = String(Digits - Len(myValue), "0") & myValue
    End Function

    Сделав, например, такое обращение

    NewStr = PadToString(1978, 8)

    вы получите строковую переменную 00001978. Обратите внимание, что Digits и myValue — переменные типа Variant.

    наверх

    Захват текста из любого текстового поля

    Хотелось ли вам захватить текст из текстового поля любого приложения? Данный код поможет вам в решении этой проблемы.

    Вам необходимо разместить на форме элемент Timer.

    'to get the foreground window
    Private Declare Function GetForegroundWindow Lib "user32" () As Long
    'to send a message system
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    'to get the cursor position
    Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
    'to get the window from a point (y,x)
    Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
    'to get the window text
    Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
    'to get the class name (edit,combobox etc..)
    Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
    Public strBuffer As String ' the string to append to the file that has all the text "grabed"
    Public iEnum As Integer ' the file integer to open and write (I/O)
    Public hJanelaCima As Long ' the window wich the user has the mouse over
    Public hJanelaAntiga As Long ' the ancient window, to controlo if thereґs a new window or not
    'constants to grab the text
    Private Const WM_GETTEXT = &HD
    Private Const WM_GETTEXTLENGTH = &HE
    'type for the GetCursorPos API
    Private Type POINTAPI
    x As Long
    y As Long
    End Type

    Private Sub Form_Load()
    'when starting the program, print date and time of the new logging...
    strBuffer = "=============================================================" & vbCrLf
    strBuffer = strBuffer & "Date of log: " & Format(Date, "YYYY-MM-DD") & vbCrLf
    strBuffer = strBuffer & "Started logging at: " & Format(Time$, "HH:MM") & vbCrLf
    strBuffer = strBuffer & "=============================================================" & vbCrLf
    iEnum = FreeFile
    'append it in the file
    Open "C:\testes.txt" For Append As #iEnum
    Print #iEnum, strBuffer
    Close #iEnum
    strBuffer = ""
    'enable the timer...
    Timer1.Interval = 100
    Timer1.Enabled = True
    End Sub

    Private Sub Timer1_Timer()
    Dim ptCursor As POINTAPI ' the cursor type variable
    Dim texto_janela As String ' the window text
    Dim rc As Long
    Dim nome_classe As String ' the class name
    Dim fenster As Long ' the foreground window.. in deutsh.. ich wisse deutshe auch...
    fenster = GetForegroundWindow ' get the window where user is
    'create string objects
    texto_janela = String(100, Chr(0))
    nome_classe = String(100, Chr(0))
    Call GetCursorPos(ptCursor) ' get the cursor position
    'get the window(handle) where the user has the mouse
    hJanelaCima = WindowFromPoint(ptCursor.x, ptCursor.y)
    'get the window text and class name
    rc = GetWindowText(fenster, texto_janela, Len(texto_janela))
    rc = GetClassName(hJanelaCima, nome_classe, 100)
    'format the assholes...
    texto_janela = Left(texto_janela, InStr(texto_janela, Chr(0)) - 1)
    nome_classe = Left(nome_classe, InStr(nome_classe, Chr(0)) - 1)
    Debug.Print nome_classe
    ' check the class names... i tried some like WinWord and VB, but didnґt worked..

    'If nome_classe = "Edit" Or nome_classe = "_WwG" Or nome_classe = "Internet Explorer_Server" Or nome_classe = "RichEdit20A" Or nome_classe = "VbaWindow" Then
    'if this is the same window, forget
    If hJanelaCima = hJanelaAntiga Then Exit Sub
    'thereґs no text? Out!
    If WindowText(hJanelaCima) = Empty Then Exit Sub
    'put the ancient window handle, with the current one
    hJanelaAntiga = hJanelaCima
    'build string with time and the text grabed with WindowText
    strBuffer = Time$ & " - " & texto_janela & vbCrLf
    strBuffer = strBuffer & WindowText(hJanelaCima) & vbCrLf
    'append to the file
    Open "C:\testes.txt" For Append As #iEnum
    Print #iEnum, strBuffer
    Close #iEnum

    'End If
    End Sub

    'grab the text window with this function.. argument- the window handle
    Public Function WindowText(window_hwnd As Long) As String
    Dim txtlen As Long
    Dim txt As String
    If window_hwnd = 0 Then Exit Function
    'send the message to get the text lenght
    txtlen = SendMessage(window_hwnd, WM_GETTEXTLENGTH, 0, 0)
    If txtlen = 0 Then Exit Function
    txtlen = txtlen + 1
    txt = Space$(txtlen)
    'send the message to get the text
    txtlen = SendMessage(window_hwnd, WM_GETTEXT, txtlen, ByVal txt)
    'put that on the function
    WindowText = Left$(txt, txtlen)
    End Function

    наверх

    Послать строковое сообщение в другую программу

    Откройте заранее стандартное приложение "Блокнот". В VB-проекте расположите на форме 1 CommandButton. Добавьте следующий код, запустите проект и нажмите на кнопку...

    Private Sub Command1_Click()
    AppActivate ("Безымянный")
    SendKeys ("Привет из VB!!!")
    End Sub

    "{Up}"
    "{TAB}"
    "{ENTER}"
    "{End}"
    "+{Home}"
    "{Left}"

    наверх

    Как определить серийный номер для диска

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

    'ВАРИАНТ 1

    Private Declare Function GetVolumeSerialNumber Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long
    Private Function VolumeSerialNumber(ByVal RootPath As String) As String
    Dim VolLabel As String
    Dim VolSize As Long
    Dim Serial As Long
    Dim MaxLen As Long
    Dim Flags As Long
    Dim Name As String
    Dim NameSize As Long
    Dim s As String
    Dim ret as Boolean
    ret=GetVolumeSerialNumber(RootPath, VolLabel, VolSize, _
    Serial, MaxLen, Flags, Name, NameSize)
    If ret Then
    'Create an 8 character string
    s = Format(Hex(Serial), "00000000")
    'Adds the '-' between the first 4 characters and the last 4 characters
    VolumeSerialNumber = Left(s, 4) + "-" + Right(s, 4)
    Else
    'If the call to API function fails the function returns a zero serial number
    VolumeSerialNumber = "0000-0000"
    End If
    End Function

    Private Sub Command1_Click()
    MsgBox VolumeSerialNumber("C:\") 'Shows the serial number of your Hard Disk
    End Sub

    'ВАРИАНТ 2

    Private Declare Function GetVolumeInformation Lib "kernel32.dll" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Integer, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long
    Function GetSerialNumber(DriveLetter As String) As String
    Dim SerialNum As Long
    Dim VolNameBuf As String
    Dim FileSysNameBuf As String
    Select Case Len(DriveLetter)
    Case 1
    If LCase(DriveLetter) Like "[a-z]" Then
    DriveLetter = Left(DriveLetter, 1) & ":\"
    Else
    GetSerialNumber = "Error - Bad drive designation"
    End If
    Case 2
    If LCase(DriveLetter) Like "[a-z]:" Then
    DriveLetter = DriveLetter & "\"
    Else
    GetSerialNumber = "Error - Bad drive designation"
    End If
    Case 3
    If LCase(DriveLetter) Like "[!a-z]:\" Then
    GetSerialNumber = "Error - Bad drive designation"
    End If
    Case Else
    GetSerialNumber = "Error - Bad drive designation"
    End Select
    If Len(GetSerialNumber) = 0 Then
    VolNameBuf = String(255, Chr(0))
    FileSysNameBuf = String(255, Chr$(0))
    GetVolumeInformation DriveLetter, VolNameBuf, Len(VolNameBuf), SerialNum, 0, 0, FileSysNameBuf, Len(FileSysNameBuf)
    GetSerialNumber = Right("00000000" & Hex(SerialNum), 8)
    End If
    End Function

    Private Sub Command1_Click()
    MsgBox GetSerialNumber("C:")
    End Sub

    наверх

    Определить количество процессоров в компьютере

    Option Explicit
    Private Declare Sub GetSystemInfo Lib "kernel32" (lpSystemInfo As SYSTEM_INFO)
    Private Type SYSTEM_INFO
    dwOemID As Long
    dwPageSize As Long
    lpMinimumApplicationAddress As Long
    lpMaximumApplicationAddress As Long
    dwActiveProcessorMask As Long
    dwNumberOfProcessors As Long
    dwProcessorType As Long
    dwAllocationGranularity As Long
    dwReserved As Long
    End Type
    Private m_typSystemInfo As SYSTEM_INFO
    Public Function NumberOfProcessors() As Long
    GetSystemInfo m_typSystemInfo
    NumberOfProcessors = m_typSystemInfo.dwNumberOfProcessors
    End Function

    Private Sub Form_Load()
    MsgBox NumberOfProcessors
    End Sub

    наверх

    Получить сведений о любом диске: Floppy Disk/CD/Hard Drive

    Данный пример позволяет определить серийный номер диска, метку диска и тип файловой системы

    Добавьте CommandButton на форму

Private Declare Function GetVolumeInformation Lib "kernel32" Alias
        "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal
        lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long,
        lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer
        As String, ByVal nFileSystemNameSize As Long) As Long
Const GET_SERIAL = 1
Const GET_LABEL = 2
Const GET_TYPE = 3
Private Function GetDriveInfo(strDrive As String, iType As Integer)
Dim SerialNum As Long
Dim strLabel As String
Dim strType As String
Dim lRetVal As Long
strLabel = Space(256)
strType = Space(256)
lRetVal = GetVolumeInformation(strDrive, strLabel, Len(strLabel), SerialNum, 0, 0,
        strType, Len(strType))
Select Case iType
Case Is = 1
GetDriveInfo = CStr(SerialNum)
Case Is = 2
GetDriveInfo = strLabel
Case Is = 3
GetDriveInfo = strType
End Select
End Function
Private Sub Command1_Click()
strValue = GetDriveInfo("c:\", GET_SERIAL)
MsgBox strValue
strValue = GetDriveInfo("c:\", GET_LABEL)
MsgBox strValue
strValue = GetDriveInfo("c:\", GET_TYPE)
MsgBox strValue
End Sub

наверх

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

    BalloonMessage for MS Agent

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

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

    наверх

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

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

    Вопросы:

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

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

    Как exe программе под дос можно снять и установить флажок "Завершать окно по яавершению работы"

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

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

    вопрос по RichTextBox
    Как яделать так, что бы когда нажимали на Shift+Insert вставка была неформатированная т.е. просто текст

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

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

    Как уянать реальную скорость яакачки файлов.

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

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

    Как текст набранный, на пример, в RichTextBox сохранить в фомате *.doc (имеется в виду Microsoft Word)

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

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

    Каким образом можно из VB получать и обрабатывать системные события Windows ! Например, читать клавиатуру.

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

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

    Как при перетаскивании объекта в TREEVIEW, главная ветка раскрывалась бы автоматически.

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

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

    Как при работе с DAO новую запись в таблицу добавить не в конец таблицы, а в нужное мне место.

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

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

    Как можно с помощью VB наложить пароль на папку?

    Автор вопроса: Алексей

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

    Как в VB яавершить работу приложения Windows?

    Ответы:

    Вопрос:

    Подскажите пожалуйсто как сделать так что при наведении курсора на кнопку, она убегала в абсолютное безразличное место?

    Ответ:

    Автор ответа: Murat Shonov

    Событием Mouse_Move
    Создаешь форму и пихаешь на нее кнопку затем пишешь следующий код

    Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Randomize Timer
    'это функция псевдослучайных чисел для того чтоб кнопка прыгала каждый раз куда попало
    Command1.Top = Rnd(1) * 1000
    'эту тысячу меняешь на свои значения в зависимости от размера формы (желательно ставить не больше значений Form.Widht и Form.Height не то она убежит за форму)
    Command1.Left = Rnd(1) * 1000
    'эту тоже (rnd - псевдослучайный генератор чисел)
    End Sub

    Вопрос:

    Подскажите пожалуйсто как сделать так что при наведении курсора на кнопку, она убегала в абсолютное безразличное место?

    Ответ:

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

    Попробуй написать такую процедуру при наведении на кнопку указателя мыши(Command2_MouseMove) Вместо 4000 и 5700 подбирай исходя из рамеров формы. Эти для формы размером Top = 7290, а Left = 4935.

    Private Sub Form_Load()
    Randomize
    End Sub

    Private Sub Command2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Command2.Top = Int(Rnd * 4000) 'делаем чтобы кнопка убегала от мышки
    Command2.Left = Int(Rnd * 5700)
    End Sub

    Вопрос:

    Подскажите пожалуйсто как сделать так что при наведении курсора на кнопку, она убегала в абсолютное безразличное место?

    Ответ:

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

    Private Sub btn1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    'Form1 - форма на которой находится кнопка
    'btn1 - "бегающая" кнопка
    With btn1 'Если не в курсе, будет подставлять btn1 там, где объект не указан явно
    maxX& = Form1.Width - .Width
    maxy& = Form1.Height - .Width
    .Left = Rnd * maxX
    .Top = Rnd * maxy
    End With
    End Sub

    Вопрос:

    Подскажите пожалуйсто как сделать так что при наведении курсора на кнопку, она убегала в абсолютное безразличное место?

    Ответ:

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

    примерно ето будет выглядеть так:

    Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Command1.Move Rnd((Form1.Width - Command1.Width)), _
    Rnd((Form1.Height - Command1.Height))
    'размеры кнопки вычитаем, чтоб за края не забигала
    End Sub

    вот собственно и всё.

    Вопрос:

    Подскажите пожалуйсто как сделать так что при наведении курсора на кнопку, она убегала в абсолютное безразличное место?

    Ответ:

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

    Очень просто:

    Sub CommandButton1_mouseover(тут аргументы)
    CommandButton1.move Int(RND*1000)-500, Int(RND*1000)-500
    End Sub

    Если хочешь, после CommandButton1.move пиши конкретные значения (у меня просто генерируется произвольное число)

    Вопрос:

    Подскажите пожалуйста как сделать так: когда нажимаешь на .exe файл он сам определял полный адрес папки, в которой он находится.

    Ответ:

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

    Используй App.Path

    Вопрос:

    Подскажите пожалуйста как сделать так: когда нажимаешь на .exe файл он сам определял полный адрес папки, в которой он находится.

    Ответ:

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

    Ещо раз повтаряю для всех! Будте внимательны и тыркайте везде. Не ленитесь!

    В VB5-6 (про NET не знаю) есть библиотека, в которой хоть и кратко но описываются все её функции. Также описание функций и событий подключеных к проекту объектов.

    Тыркаеш F2 и оно выскакивает.

    А на вопрос отвечу:

    App.Path

    Вопрос:

    Подскажите пожалуйста как сделать так: когда нажимаешь на .exe файл он сам определял полный адрес папки, в которой он находится.

    Ответ:

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

    'Все объявления могут быть Public, но тогда их надо поместить в модуль

    Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" _
    (ByVal lpModuleName As String) As Long
    Private Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" _
    (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
    Private hModule As Long, strBuff$

    Private Sub Form_Load()
    'определяем дескриптор нашего приложения
    hModule& = GetModuleHandle(App.EXEName)
    'Создаем буфер длиной = (предполагаемое число символов)+1
    strBuff$ = Space(101)
    'Функция GetModuleFileName возвращает полный путь к исполняемому файлу в strBuff
    'и количество считанных символов, но, так как требуется только путь, мы обрезаем
    '"лишние символы". "-4" во втором параметре функции Left$ необходимо, так как
    'App.EXEName возвращает имя модуля без точки и расширения. Вообще более корректно
    'было бы определить положение последнего слеша в строке и обрезать все, что после
    'него, но так как расширений исполняемых файлов длиной более 3 символов я не видел,
    'то и поступил по-простому.
    strBuff$ = Left$(strBuff$, GetModuleFileName(hModule&, strBuff, 100) - Len(App.EXEName) - 4)
    'В strBuff$ путь к нашему файлу с завершающим слешем
    End Sub

    Вопрос:

    Подскажите пожалуйста как сделать так: когда нажимаешь на .exe файл он сам определял полный адрес папки, в которой он находится.

    Ответ:

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

    Хиииии, app.path тебя спасет! :)

    Вопрос:

    Подскажите пожалуйста как сделать так: когда нажимаешь на .exe файл он сам определял полный адрес папки, в которой он находится.

    Ответ:

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

    Если я правильно понял, нужно определить, в какой папке находится исполняемый файл:

    Path=App.Path

    NB! путь возвращается без имени файла и без последнего слэша (Например, "C:\Projects\Soft"). Чтоб добавить слеш, пиши:

    Path=App.Path & "\"

    Вопрос:

    Подскажите пожалуйста как сделать так: когда нажимаешь на .exe файл он сам определял полный адрес папки, в которой он находится.

    Ответ:

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

    Используй App.Path

    Вопрос:

    Как сделать автозапуск с 3.5 диска (дискеты)?

    Ответ:

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

    Насколько мне известно, это сделать никак невозможно (дисковод не определяет дискеты автоматически).

    Вопрос:

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

    Ответ:

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

    Запись числа 100 в 1-ю ячейку 1-го рабочего листа:

    worksheets(1).cells(1,1).value = 100

    Или, используя объект Range:

    worksheets("Лист1").range("D1").value = 100

    (для текущего листа worksheets можно пропустить) Можно также использовать поименованный диапазон ячеек:

    range("ИмяДиапазона").cells(5).value = 100

    Аналогично производится считывание данных из ячеек Excel:

    Try = worksheets(1).cells(1,1).value

    и т. п.

    Вопрос:

    Прочитал, как можно заставить модем перезванивать при низкой скорости.
    У меня же все полностью противоположно. Мне надо, чтобы модем коннектился только на 31200. Если больше, то связь очень плохая (такая, что за 10мин можно не получить не байта), а меньше смысла нет.

    Ответ:

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

    Добавь в строку инициализации модема
    Её можешь найти в свойсвах модема

    AT+MS=v34,0,75,33600,75,33600

    Всё

    Вопрос:

    Как сделать всплывающую подсказку (ToolTipText)в 2 и более строк?

    Ответ:

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

    Ха, а вроде никак... vbCrLf и прочее на нем не срабатывает, да и вообще, где ты видел двухэтажный ToolTipText?

    Вопрос:

    Как скопировать из папки все файлы одного расширения?

    Ответ:

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

    Кинь на форму FileListBox имя стандартное. Копирует все sys файлы (кроме системных и скрытытх) из корня в C:\Check. Если Check не создана - ошибка.

    Private Sub Form_Load()
    With File1
    .Pattern = "*.sys"
    .Path = "C:\"
    For q = 0 To .ListCount - 1
    FileCopy .Path & .List(q), "C:\Check\" & .List(q)
    Next q
    End With
    End Sub

    Вопрос:

    Есть такая проблема. Работаю с DirectX весь код пишу сам, никакими контролами не пользуюсь. Ставлю простой кубик и двигаю его программно, если он подвигается очень близко к позиции камеры, тоесть к экрану, начинает жутко тормозить 1fps. В играх же целый уровень нетормозит. Подскажите что делать. И если кто нибудь знает где взять описание этих функций, желательно с примерами.

    Ответ:

    Автор ответа: Dr.Max

    Может тебе нужно оптимизтировать код? Исползуй переменные по-быстрей - старайся не использовать Variant, если ты объявляешь переменные так:

    Dim A,B,C as integer

    , то знай: A и B - это variant, И только С integer!!
    И проверь, может в коде много циклов.

    Вопрос:

    Есть такая проблема. Работаю с DirectX весь код пишу сам, никакими контролами не пользуюсь. Ставлю простой кубик и двигаю его программно, если он подвигается очень близко к позиции камеры, тоесть к экрану, начинает жутко тормозить 1fps. В играх же целый уровень нетормозит. Подскажите что делать. И если кто нибудь знает где взять описание этих функций, желательно с примерами.

    Ответ:

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

    Блин у меня такое же горе. А все из-за тупого компилятора ВБ. Если дядюшка Си работает сам по себе и в десять раз быстрее, то VB постоянно опирается на свои подпорки - Runtime-библиотеки, с помощью которых он, собственно говоря и работает. Поможет тебе только переход на Си.

    Вопрос:

    При записи информации в файл (методом Put) выводится сообщение "Неправильная длина строки" (если объём информации большой). Что делать? (И кто виноват? :)

    Ответ:

    Автор ответа: VADIM SHER

    Option Explicit
    Public NameUser As String
    #If Win32 Then
    Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal
    lpBuffer As String, nSize As Long) As Long
    Declare Function GetComputerName Lib "kernel32.dll" Alias "GetComputerNameA"
    (ByVal lpBuffer As String, nSize As Long) As Long
    Declare Function GetLastError Lib "kernel32.lib" () As Long
    Public Const UNLEN = 256 ' as defined in LMCONS.H
    Public Const MAX_COMPUTERNAME_LENGTH = 31 ' as defined in WINBASE.H
    #Else
    #End If
    Function UserName()
    Dim intPos As Integer
    Dim un As String, lpBuffer As String, nSize As Long
    lpBuffer = "..............................."
    nSize = 30
    un = GetUserName(lpBuffer, nSize)
    un = lpBuffer
    intPos = InStr(un, ".")
    NameUser = Left(un, intPos - 1)
    End Function

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

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

    наверх

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

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


Выпуск 102.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Покупали ли Вы 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!!!

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

    Опять новый выпуск. Читайте новости.
    Читайте!

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

    • Citycat by Email

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

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

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

    Книги

    Переход на 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

    Дата: 19.10.2002 05:52 | Раздел: Полезные программы | Автор: Малинин Алексей, Павлова Ольга

    Интеграция VBA в бизнес-приложения на Visual Basic 6.0 - Практически все пользователи имеют дело с офисными пакетами Microsoft, причем многие из них адаптируют эти продукты в соответствии со спецификой своих конкретных задач, используя внутренний макроязык. При создании собственных приложений вам наверняка хотелось бы, чтобы конечный пользователь мог щелчком мыши открыть среду VBA и программировать там так же, как в пакетах Microsoft Office. Но как это реализовать?

    Дата: 17.10.2002 06:03 | Раздел: ActiveX контролы | Автор: Селюк Степан

    Русификатор Visual Basic 6. Версия номер 2. - Эта программа полностью переведёт меню (причём это не то, что меню переведены каким-нибудь переводчиком, они переведены исключительно автором) в редакторе Visual Basic, также переведено 90% диалогов, плюс исправлены ошибки допущенные в первой версии!

    Дата: 15.10.2002 10:56 | Раздел: ActiveX контролы | Автор: Соколов Алексей

    FontView - Вы видели выпадающий список шрифтов в CorelDraw? Тут что - то подобное. При проходе мышью над названием шрифта появляется окошко ToolTip с его начертанием.

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

    22:20 / 19 окт. SQL в Интернете | Хитов: 5 | Ответов: 0
    20:02 / 19 окт. Вопрос по ресурсам | Хитов: 5 | Ответов: 0
    17:56 / 19 окт. Не знаю как сохранить страницу открытую в WebBr... | Хитов: 7 | Ответов: 0
    12:15 / 19 окт. MySQL, ASP, PHP..... | Хитов: 17 | Ответов: 1
    03:05 / 19 окт. 2 вопроса: 1й - IP 2й - создание объектов... | Хитов: 25 | Ответов: 3
    22:51 / 18 окт. Новости | Хитов: 21 | Ответов: 1
    00:02 / 18 окт. Блин опять SQL! | Хитов: 41 | Ответов: 1
    22:57 / 17 окт. FastLib 2000 | Хитов: 32 | Ответов: 1
    20:55 / 17 окт. Форма и Курсор | Хитов: 49 | Ответов: 3
    19:39 / 17 окт. Windows Api | Хитов: 60 | Ответов: 3
    17:52 / 17 окт. GTA3 | Хитов: 32 | Ответов: 0
    17:19 / 17 окт. WINSOCK sos | Хитов: 24 | Ответов: 0
    16:56 / 17 окт. Переход БД ACCESS к ASP. Как быть с полем OLE? | Хитов: 21 | Ответов: 0
    16:37 / 17 окт. Как получить список установленных в системе Act... | Хитов: 21 | Ответов: 0
    15:34 / 17 окт. Головная боль с Вордом продолжается | Хитов: 43 | Ответов: 3
    15:14 / 17 окт. скорость вызова... | Хитов: 31 | Ответов: 1
    12:43 / 17 окт. hwnd панели StatusBar'a | Хитов: 28 | Ответов: 1
    11:49 / 17 окт. Word + VB = question (обновлено) | Хитов: 28 | Ответов: 2
    08:35 / 17 окт. проблемы с DataEnvinronment + SQL Server2000 | Хитов: 12 | Ответов: 0
    07:57 / 17 окт. Help для VB5 | Хитов: 15 | Ответов: 1

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

    наверх

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

    наверх

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

    наверх

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

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

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

    наверх

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

    BalloonMessage for MS Agent

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

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

    наверх
    Вопрос/Ответ

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

    Вопросы:

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

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

    Вопрос 1: Как сделать так,чтобы программу невозможно было выгрузить, а если её выгрузить, то запускалась бы копия программы.
    Вопрос 2: У меня есть программа. Как сделать так, чтобы она брала данные из внешнего файла (например .txt) и загружала их оттуда (В этом файле должны находиться переменные вместе с данными)

    Автор вопроса: МАЯК

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

    Хелп плиз, как зделать так, чтоб моя программа повторно не запускалась а при попытке повторного запуска выдала сообщение типа "программа уже запущена"

    Автор вопроса: МАЯК

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

    Люди, подскажите пожалуйста, ломаю голову какой код вписать, чтоб при нажатии на кнопку, программа проверила наличие файла в директории и при его наличии в строке имя файла отобразилось имя того же файла только с еденицей, при наличии файла с еденицей предложила вариант с двойкой, вобщем как в WORDE, а при попытке сохранить файл под имеющемся именем, выдала системное сообщение "файл с таким именем уже есть, хотите его заменить?. Я сделал так а дальше незнаю....

    Private Sub ShowSave()
    Объявил две переменные файл_пом и Файл_библиотека.
    On Error GoTo ErrorHandler
    CommonDialog1.CancelError = True
    CommonDialog1.Filter = "All Files (*.*)|*.*|Word Documents (*.doc )|*.doc |Text Files (*.txt)|*.txt|"
    CommonDialog1.FilterIndex = 3
    CommonDialog1.InitDir = "D:\DOCUMENTS"
    'CommonDialog1.Flags = cdlOFNFileMustExist Or cdlOFNAllowMultiselect
    CommonDialog1.Action = 2

    Файл_библиотека = App.Path + "\Sveden1.ph" ' файл *.bib
    *-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*
    файл_пом = CMDialog1.FileName 'придаем переменной файл_пом, адрес места
    'расположения файла с данными адреса расположения файла *.bib
    If Dir(файл_пом) = "" Then
    1

    '***********

    'Здесь мой код.
    '**********

    Exit Sub
    ErrorHandler:
    If Err.Number = 32755 Then Exit Sub
    Else
    If MsgBox("Заменить существующий файл" & " " & " " & файл_пом, vbYesNo + vbExclamation, "Выход?") = vbYes Then
    GoTo 1001
    Else
    Exit Sub
    End If
    End Sub

    End Sub

    '.FileName ( .Font, .Color, .FromPage, .ToPage, .Copies, .Orientation)

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

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

    Как мне по имеющемуся пути осуществить перебор всех файлов, находящихся в данной конкретной папке (исключая подпапки).
    Есть ли такая вояможность в VB6 или какими функциями API необходимо польяоваться?

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

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

    Что такое ScaleWidth и ScaleHeight? Чем отличаются от Width и Height?

    Автор вопроса: Сергей

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

    1. Как из ВБ 6 открыть мои док, или например нажать кнопку в окне установки связи с Интернет
    2. У меня на вэб-странице есть ВБ 6-форма с окном Text, в который можно вписывать текст.Как добавить этот текст в мою форму на сервере, чтобы при новом открытии страницы этот текст сохранялся

    Автор вопроса: Толя

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

    Соядание и редактирование явуков VB6.
    Ау, светлые головы, откликнитесь!

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

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

    Подскажите как в VB написать подобие ping(пинга) через API.

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

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

    Как записывать в реестр DWORD параметр, и читать его.
    Напишите пожалуйста пример.

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

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

    Работаю с Win 5.0
    у меня программа ассоциирована к расширению .zzz
    Я хочу уянать полный путь к программе которая накодится в командной строке. Я делаю это с помощью

    Private Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineA" () As String

    Под win9x все нормально,но под NT происход крах программы. Есть ли артальнотива это функции или другой способ яделать это ?

    Автор вопроса: Eugene KRUGLOFF

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

    Почему в VB6 на WinXP не работают такие функции API как - ChangeDisplaySettings и ExitWindowsEx?
    Тот же код, но на ос Win9X, работает.

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

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

    Как сделать так,чтобы при перетаскивании объекта в TREEVIEW, ветки над которыми проходит курсор мыши, выделялись и раскрывались.

    Ответы:

    Вопрос:

    вопрос по RichTextBox
    Как яделать так, что бы когда нажимали на Shift+Insert вставка была неформатированная т.е. просто текст

    Ответ:

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

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

    Вопрос:

    Как при работе с DAO новую запись в таблицу добавить не в конец таблицы, а в нужное мне место.

    Ответ:

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

    Может попробовать после добавления в конец таблицы применить сортировку ...

    Вопрос:

    Как в VB яавершить работу приложения Windows?

    Ответ:

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

    Либо с помощью API, либо послать приложению клавиши Alt+F4

    Вопрос:

    Как скопировать из папки все файлы одного расширения?

    Ответ:

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

    Надо попробовать через FSO (file systen object) почитай доки в инете точно найдеш !

    Вопрос:

    Скажите пожалуйста каким образом сделать переворот картинки по вертикали (горизонтали), делаю в PictureBox, верно ли?

    Ответ:

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

    Есть сайт www.vbrussian.ru кажется так, дак на нем есть пример поищи !

    Вопрос:

    Есть игрушка для моей дочки, Clifford называется (может кто знает), про собаку, которая учит жизни. Так вот, эта собака не хочет заводиться если разрешение экрана более чем 800х600. Когда я на работе, дочка не может поиграть, а учить как менять разрешение экрана, я не хочу (ей 5 лет - рано еще).
    Так вот, собрался я наваять минипрогу на ВБ которая меняет разрешение экрана, запускает игрушку, а после завершении игры, восстанавливало разрешение, и столкнулся с проблемой: так как же из ВБ менять разрешение экрана?
    Кстати, ОС Win_XP, так что желательно чтоб ответы подходили под XP.

    Ответ:

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

    Этот код выдран из апигуарда. Разбирайся и ваяй. Выполнение проги команда shell кстати в ХР есль совместимость так что ставь 9х и живи спокойно. Короче пока !

    Option Explicit
    Const WM_DISPLAYCHANGE = &H7E
    Const HWND_BROADCAST = &HFFFF&
    Const EWX_LOGOFF = 0
    Const EWX_SHUTDOWN = 1
    Const EWX_REBOOT = 2
    Const EWX_FORCE = 4
    Const CCDEVICENAME = 32
    Const CCFORMNAME = 32
    Const DM_BITSPERPEL = &H40000
    Const DM_PELSWIDTH = &H80000
    Const DM_PELSHEIGHT = &H100000
    Const CDS_UPDATEREGISTRY = &H1
    Const CDS_TEST = &H4
    Const DISP_CHANGE_SUCCESSFUL = 0
    Const DISP_CHANGE_RESTART = 1
    Const BITSPIXEL = 12
    Private Type DEVMODE
    dmDeviceName As String * CCDEVICENAME
    dmSpecVersion As Integer
    dmDriverVersion As Integer
    dmSize As Integer
    dmDriverExtra As Integer
    dmFields As Long
    dmOrientation As Integer
    dmPaperSize As Integer
    dmPaperLength As Integer
    dmPaperWidth As Integer
    dmScale As Integer
    dmCopies As Integer
    dmDefaultSource As Integer
    dmPrintQuality As Integer
    dmColor As Integer
    dmDuplex As Integer
    dmYResolution As Integer
    dmTTOption As Integer
    dmCollate As Integer
    dmFormName As String * CCFORMNAME
    dmUnusedPadding As Integer
    dmBitsPerPel As Integer
    dmPelsWidth As Long
    dmPelsHeight As Long
    dmDisplayFlags As Long
    dmDisplayFrequency As Long
    End Type
    Private Declare Function EnumDisplaySettings Lib "user32" Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName As Long, ByVal iModeNum As Long, lpDevMode As Any) As Boolean
    Private Declare Function ChangeDisplaySettings Lib "user32" Alias "ChangeDisplaySettingsA" (lpDevMode As Any, ByVal dwFlags As Long) As Long
    Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
    Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long
    Private Declare Function CreateDC Lib "gdi32" Alias "CreateDCA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, ByVal lpInitData As Any) As Long
    Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Dim OldX As Long, OldY As Long, nDC As Long
    Sub ChangeRes(X As Long, Y As Long, Bits As Long)
    Dim DevM As DEVMODE, ScInfo As Long, erg As Long, an As VbMsgBoxResult
    'Get the info into DevM
    erg = EnumDisplaySettings(0&, 0&, DevM)
    'This is what we're going to change
    DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_BITSPERPEL
    DevM.dmPelsWidth = X 'ScreenWidth
    DevM.dmPelsHeight = Y 'ScreenHeight
    DevM.dmBitsPerPel = Bits '(can be 8, 16, 24, 32 or even 4)
    'Now change the display and check if possible
    erg = ChangeDisplaySettings(DevM, CDS_TEST)
    'Check if succesfull
    Select Case erg&
    Case DISP_CHANGE_RESTART
    an = MsgBox("You've to reboot", vbYesNo + vbSystemModal, "Info")
    If an = vbYes Then
    erg& = ExitWindowsEx(EWX_REBOOT, 0&)
    End If
    Case DISP_CHANGE_SUCCESSFUL
    erg = ChangeDisplaySettings(DevM, CDS_UPDATEREGISTRY)
    ScInfo = Y * 2 ^ 16 + X
    'Notify all the windows of the screen resolution change
    SendMessage HWND_BROADCAST, WM_DISPLAYCHANGE, ByVal Bits, ByVal ScInfo
    MsgBox "Everything's ok", vbOKOnly + vbSystemModal, "It worked!"
    Case Else
    MsgBox "Mode not supported", vbOKOnly + vbSystemModal, "Error"
    End Select
    End Sub
    Private Sub Form_Load()
    Dim nDC As Long
    'retrieve the screen's resolution
    OldX = Screen.Width / Screen.TwipsPerPixelX
    OldY = Screen.Height / Screen.TwipsPerPixelY
    'Create a device context, compatible with the screen
    nDC = CreateDC("DISPLAY", vbNullString, vbNullString, ByVal 0&)
    'Change the screen's resolution
    ChangeRes 640, 480, GetDeviceCaps(nDC, BITSPIXEL)
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    'restore the screen resolution
    ChangeRes OldX, OldY, GetDeviceCaps(nDC, BITSPIXEL)
    'delete our device context
    DeleteDC nDC
    End Sub

    Вопрос:

    Есть такая проблема. Работаю с DirectX весь код пишу сам, никакими контролами не пользуюсь. Ставлю простой кубик и двигаю его программно, если он подвигается очень близко к позиции камеры, тоесть к экрану, начинает жутко тормозить 1fps. В играх же целый уровень нетормозит. Подскажите что делать. И если кто нибудь знает где взять описание этих функций, желательно с примерами.

    Ответ:

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

    Скажу одно реализовать работу с 3д графикой на VB - ЛАЖА с большой буквы Б. Бери учебник по c++ либо DarkBasic он попроще !

    Вопрос:

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

    Ответ:

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

    С разделе примеры на сайте www.rusproject.narod.ru есть исходник проги дабавления и убивания из автозагрузки !

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

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

    наверх

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


Выпуск 103.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

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

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

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

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

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

    Хотелось бы сказать Вам кое-что насчёт раздела Вопрос/Ответ. Пожалуйста, на присылайте ответы с аттачами. Такие ответы не принимаются.
    Читайте!

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

    • Проверить наличие дискеты или CD-Rom'а в устройстве
    • Изменить метку диска/устройства
    • Получить имя принтера по умолчанию
    • Просмотреть все устройства и определить их тип
    • Открыть/закрыть CD-ROM
    • Узнать количество свободного места на диске

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

    Книги

    Переход на 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 можно найти     здесь.

    наверх

    Проверить наличие дискеты или CD-Rom'а в устройстве

    Добавьте на форму элемент DriveListBox и элемент CommandButton. Добавьте следующий код. Запустите программу. Выбирая в элементе DriveListBox любое устройство (дисковод или привод CD-Rom) и нажимая на кнопку вы узнаете, находится ли дискетка или лазерный диск в устройстве.

    'ВАРИАНТ 1

    Private Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long
    Private Sub Command1_Click()
    erg& = GetVolumeInformation(Drive1.Drive, VolName$, 127&, VolNumber&, MCM&, FSF&, FSys$, 127&)
    If erg& = 0 Then
    MsgBox "Ничего в текущем устройстве нет"
    Else
    MsgBox "В текущем устройстве присутствует диск"
    End If
    End Sub

    'ВАРИАНТ 2

    'Установите ссылку к библиотеке Microsoft Scripting Runtime (scrrun.dll)

    Private Sub Form_Load()
    Dim FSO As FileSystemObject
    Dim CDDrive As Drive
    Set FSO = New FileSystemObject
    Set CDDrive = FSO.GetDrive("F:")
    If CDDrive.IsReady Then
    MsgBox CDDrive.VolumeName
    Else
    MsgBox "CD в лотке отсутствует"
    End If
    Set CDDrive = Nothing
    Set FSO = Nothing
    End Sub

    наверх

    Изменить метку диска/устройства

    Добавьте 1 Command Button на форму

    Private Declare Function SetVolumeLabel Lib "kernel32" Alias "SetVolumeLabelA" (ByVal lpRootPathName As String, ByVal lpVolumeName As String) As Long
    Private Sub Command1_Click()
    'replace the "d:\" below with the drive you want to change its label
    'replace the "MyNewLabel" below with the drive new label
    If SetVolumeLabel("d:\", "MyNewLabel") = 0 Then
    MsgBox "An Error occured while trying to change drive label", vbCritical, "Error"
    End If
    End Sub

    наверх

    Получить имя принтера по умолчанию

    Вариант 1. Очень простой

    MsgBox Printer.DeviceName

    Вариант 2

    Private Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwReserved As Long, ByVal samDesired As Long, phkResult As Long) As Long
    Private Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName$, ByVal lpdwReserved As Long, lpdwType As Long, lpData As Any, lpcbData As Long) As Long
    Private Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long
    Const HKEY_CURRENT_CONFIG As Long = &H80000005
    Function RegGetString$(hInKey As Long, ByVal subkey$, ByVal valname$)
    Dim RetVal$, hSubKey As Long, dwType As Long, SZ As Long
    Dim R As Long
    RetVal$ = ""
    Const KEY_ALL_ACCESS As Long = &HF0063
    Const ERROR_SUCCESS As Long = 0
    Const REG_SZ As Long = 1
    R = RegOpenKeyEx(hInKey, subkey$, 0, KEY_ALL_ACCESS, hSubKey)
    If R <> ERROR_SUCCESS Then GoTo Quit_Now
    SZ = 256: v$ = String$(SZ, 0)
    R = RegQueryValueEx(hSubKey, valname$, 0, dwType, ByVal v$, SZ)
    If R = ERROR_SUCCESS And dwType = REG_SZ Then
    RetVal$ = Left$(v$, SZ - 1)
    Else
    RetVal$ = "--Not String--"
    End If
    If hInKey = 0 Then
    R = RegCloseKey(hSubKey)
    End If
    Quit_Now:
    RegGetString$ = RetVal$
    End Function
    Private Sub Form_Resize()
    Dim GetCurrPrinter As String
    GetCurrPrinter = RegGetString$(HKEY_CURRENT_CONFIG, "System\CurrentControlSet\Control\Print\Printers", "Default")
    Print GetCurrPrinter
    End Sub

    наверх

    Просмотреть все устройства и определить их тип

    (жесткий диск, дисковод, CD-ROM, сетевой диск, ...)
    Расположите на форме элемент ListBox.

    Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
    Const DRIVE_CDROM = 5
    Const DRIVE_FIXED = 3
    Const DRIVE_RAMDISK = 6
    Const DRIVE_REMOTE = 4
    Const DRIVE_REMOVABLE = 2
    Dim strDrive As String
    Dim strMessage As String
    Dim intCnt As Integer
    Private Sub Form_Load()
    For intCnt = 65 To 86
    strDrive = Chr(intCnt)
    Select Case GetDriveType(strDrive + ":\")
    Case DRIVE_REMOVABLE
    rtn = "Floppy Drive"
    Case DRIVE_FIXED
    rtn = "Hard Drive"
    Case DRIVE_REMOTE
    rtn = "Network Drive"
    Case DRIVE_CDROM
    rtn = "CD-ROM Drive"
    Case DRIVE_RAMDISK
    rtn = "RAM Disk"
    Case Else
    rtn = ""
    End Select
    If rtn <> "" Then
    List1.AddItem "Drive " & strDrive & " is type: " & rtn
    'strMessage = strMessage & vbCrLf & "Drive " & strDrive & " is type: " & rtn
    End If
    Next intCnt
    'MsgBox (strMessage)
    End Sub

    наверх

    Открыть/закрыть CD-ROM

    Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
    Private Sub Command1_Click()
    Call mciSendString("CD-ROM открыт", 0&, 0&, 0&)
    End Sub
    Private Sub Command2_Click()
    Call mciSendString("CD-ROM закрыт", 0&, 0&, 0&)
    End Sub

    наверх

    Узнать количество свободного места на диске

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

    Private Declare Function GetDiskFreeSpace Lib "kernel32" Alias "GetDiskFreeSpaceA" (ByVal lpRootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTtoalNumberOfClusters As Long) As Long
    Private Type DiskInformation
    lpSectorsPerCluster As Long
    lpBytesPerSector As Long
    lpNumberOfFreeClusters As Long
    lpTotalNumberOfClusters As Long
    End Type
    Dim info As DiskInformation
    Dim lAnswer As Long
    Dim lpRootPathName As String
    Dim lpSectorsPerCluster As Long
    Dim lpBytesPerSector As Long
    Dim lpNumberOfFreeClusters As Long
    Dim lpTotalNumberOfClusters As Long
    Dim lBytesPerCluster As Long
    Dim lNumFreeBytes As Double
    Dim sString As String

    Private Sub Command1_Click()
    lpRootPathName = "с:\" 'вместо С вы можете использовать букву любого существующего диска в системе
    lAnswer = GetDiskFreeSpace(lpRootPathName, lpSectorsPerCluster, lpBytesPerSector, lpNumberOfFreeClusters, lpTotalNumberOfClusters)
    lBytesPerCluster = lpSectorsPerCluster * lpBytesPerSector
    lNumFreeBytes = lBytesPerCluster * lpNumberOfFreeClusters
    sString = "Number of Free Bytes : " & lNumFreeBytes & vbCr & vbLf
    sString = sString & "Number of Free Kilobytes: " & (lNumFreeBytes / 1000) & "K" & vbCr & vbLf
    sString = sString & "Number of Free Megabytes: " & Format(((lNumFreeBytes / 1000) / 1000), "0.00") & "MB"
    MsgBox sString
    End Sub

    наверх

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

    BalloonMessage for MS Agent

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

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

    наверх

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

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

    Вопросы:

    Автор вопроса:     Сергей \(Brains\)

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

    Как зделать музыку на Visual Basic как на Qbasic
    (на QBASIC музыка играет оператором Play" "),а каким операторм или какую функцию нужно вызывать в VB

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

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

    1. Для просмотра HTML странички к програме прицепил объект WebBrowser. Задаю свойству Navigate полный путь и имя файла. Открывает все нормально. В документе есть ссылки внитри текста. При нажатии на любую из них ругается, что немогу открыть страницу и т.д. (будто ее не существует). Хотя какое-то время назад (как только я начинал делать свою програму) все работало нормально. Что делать.

    2. Записываю в фаил строку текста. В нем есть запятые, точки, все как положено. При чтении из фала VB почемуто воспринимает знаки препинания как разделители записей, и , соответственно, они пропадают. Выручайте, мож кто знает. Записываю в фаил по OUTPUT, читаю INPUT.

    Автор вопроса: Duke Alexandr

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

    Скажите кто знает, как из визуала открыть фаил Wordом в кодировке DOS, и ещё запустить макрос на обработку, а по окончанию скопировать это всё в Excel и запустить макрос ещё там!

    Автор вопроса: Юрий

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

    Увидел в форуме, что столкнулся с аналогичной проблемой, решил спросить, не выяснил как перебросить таблицу из ворда в эксель?

    Автор вопроса: Nechaev Sergey

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

    По причинам преплохого качества телефонной линии пришлось сесть за свою звонилку. Загвоздка в следующем: нигде в родных доках не нашел набора АТ команд для моего Acorp Rockvell 56. Толи искал плохо, то ли что... Не мог бы кто-нибудь поделиться инфой или линком (желательно на русском, но не обязательно). А основная пакость в том, что нормально связь работает только при скорости =< 31200. Если больше, надо перезванивать. Дак вот, как узнать скорость на которой произошел коннект.

    Автор вопроса: timshv@graffiti.net

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

    Как узнать тип объектной переменной в VB6?
    Я присваиваю переменной типа Variant объект, например Node или ListItem или ещё какой то, как узнать какого типа в данный момент эта переменная?

    Автор вопроса: САНЯ

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

    У меня такой вопрос, я делаю прогу типа проводника, как сделать так чтобы ия List можно было выбрать файл и открыть его.
    Т.е как ссылаться на объекты ия Васика(ВБ).

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

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

    народ не поможетели в такой ситуации :нужна функция которой я даю строку текста и символ (букву,цифру либо спец символ), а она мне возращает слово в котором есть этот знак (не его номер), да и ещё слово может состоять не только из букв, а и из смеси букв, цифр и заков.

    Автор вопроса: МАЯК

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

    Подскажите плиз, что такое DataEnvironment (окружение среды), счем его едят, и где его искать. Если можно подробнее.

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

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

    (VB.net) Вопрос такой, мне нужно чтобы программа заменяла в файлах некоторые байты на другие, то есть символы, слова и т.д., не меняя размер файла! к примеру как делают программы закачек, они создают пустые файлы, а потом набивают пустышки на нужные данные, вот и я бы такое сделать хотел, кто поможет советом как это сделать?

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

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

    Как использовать в Basic функцию Rnd для любых символов(букв.цифр)
    Напешите код. Если кто знает.

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

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

    Какая API функция меняет региональные настройки

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

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

    Как скомпилировать проект, что бы он работал без инсталляции и использования MSVBVM60.DLL (на другом компе)?

    Автор вопроса: МАЯК

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

    Еще один вопросик, как в Excele создаются базы данных *.MDB?

    Автор вопроса: МАЯК

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

    Люди хелп плиз, проблема вобщем то такая. Написал кое какую прогу, все работало нормально, Вставил в нее код созданный макросам в Excele? теперь при сохранении данных в таблице все идет как надо. При попытке ее открыть после сохранения Excel не запускается, и причем сам Excel висит в меню завершения программ вызываемых Ctrl+Alt+Del. На закрытие Excelя использую такой код

    " wBook.SaveAs файл' где файл переменная.
    wBook.Close
    Set wBook = Nothing
    ' если Excel запускали мы, то надо бы его закрыть
    If StartedNew Then
    exapp.Quit
    End If
    Set exapp = Nothing

    Убираю код написаный макросом все опять нормально работает. В чем проблема?

    Автор вопроса: Vitaliy A. Tokarev (UkrTop)

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

    У меня в ХР не выбирается содержимое комбо (окно) по нажатию первой буквы. Может кто чего подскажет?

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

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

    нужно сделать чтобы прога определяла имя своего файла и место нахождения
    app.exeName - че то не работае

    Автор вопроса: Паничев Стас

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

    Подскажите пожалуйста как в реестр записывать DWORD параметр. Есле не трудно напишите пример пожалуйста.

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

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

    Как определить на каком элементе управления установлен фокус? Желательно с примером.

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

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

    В прошлом выпуске говорилось о перемещении кнопки в любой место. А как сделать так чтобы она перемещалось но только не залезало на кнопку2 так чтобы и близко не подходила на 50 пикселей???

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

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

    Подскажите ссылки где можно найти документацию и исходняки для 3D програмирования DirectX. Если нетрудно киньте на E-Mail исходняки, можно урезая файлы .3ds .x и т.д. Мне нужно именно 3D, а не плоская графика.

    Ответы:

    Вопрос:

    Вопрос 1: Как сделать так,чтобы программу невозможно было выгрузить, а если её выгрузить, то запускалась бы копия программы.
    Вопрос 2: У меня есть программа. Как сделать так, чтобы она брала данные из внешнего файла (например .txt) и загружала их оттуда (В этом файле должны находиться переменные вместе с данными)

    Ответ:

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

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

    Private Sub Form_Unload(Cancel As Integer)
    cancel=1
    Shell (App.Path + "\project1.exe")
    Cancel = 0
    End Sub

    Здесь app – объект содержащий глобальные свойства VB-приложения, в том числе путь path к нему.

    Если кодљ будет таким

    Private Sub Form_Unload(Cancel As Integer)
    Cancel = 1
    End Sub,

    то окно можно будет закрыть лишь диспетчером задач.

    Вопрос:

    Вопрос 1: Как сделать так,чтобы программу невозможно было выгрузить, а если её выгрузить, то запускалась бы копия программы.
    Вопрос 2: У меня есть программа. Как сделать так, чтобы она брала данные из внешнего файла (например .txt) и загружала их оттуда (В этом файле должны находиться переменные вместе с данными)

    Ответ:

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

    На вопрос номер раз.
    Форму с таким кодом не возможно выгрузить "стандартными средствами" - ни кнопка Х, ни wm_close на эту форму не подействуют. Но есть Task Manager, по крайней мере в NT, и TerminateProcess :( Кстати на команду End в теле программы Cancel = 1 тоже не действует.

    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    Cancel = 1
    'Некоторое условие, при выполнении которого выход, все же допускается.
    'У меня просто CheckBox на форме. Если галочка стоит - выходим.
    If Check1.Value = 1 Then Cancel = 0
    End Sub

    Что касается "... а если её выгрузить, то запускалась бы копия программы", то что-то запустить может либо юзер (который, как я понимаю, этого не хочет), либо система (которая не станет, потому как очень гордая, и её нужно долго просить :), либо другая РАБОТАЮЩАЯ программа.

    Вопрос:

    Вопрос 1: Как сделать так,чтобы программу невозможно было выгрузить, а если её выгрузить, то запускалась бы копия программы.
    Вопрос 2: У меня есть программа. Как сделать так, чтобы она брала данные из внешнего файла (например .txt) и загружала их оттуда (В этом файле должны находиться переменные вместе с данными)

    Ответ:

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

    Ответ на первый вопрос:

    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    Shell "путь к твоей проге" 'при закрытии запуск заново
    Unload Me 'выгружаешь эту версию
    End Sub

    теперь твою прогу даже по Ctrl-Alt-Del не убрать ;)

    Ответ на второй вопрос:

    Open "путь к твоему файлу.txt" For Input As #1 '1 - свободный номер файла
    Do While Not EOF(1) 'цикл до конца файла #1
    Input #1,tmp 'tmp-переменная куда читаешь
    Loop

    вариант: вместо Input #1,tmp пишешь LineInput #1,tmp - читает всю строку игнорируя запятые

    Вопрос:

    Вопрос 1: Как сделать так,чтобы программу невозможно было выгрузить, а если её выгрузить, то запускалась бы копия программы.
    Вопрос 2: У меня есть программа. Как сделать так, чтобы она брала данные из внешнего файла (например .txt) и загружала их оттуда (В этом файле должны находиться переменные вместе с данными)

    Ответ:

    Автор ответа: Murat Shonov

    По первому вопросу использовать QueryUnload :

    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    Dim I As Integer
    I = 1
    Cancel = I
    End Sub

    При таком раскладе форму закрыть невозможно. То есть параметр Cancel не даст выгрузить форму.
    А параметр UnloadMode показывает каким образом пользователь пытается закрыть твою форму.
    Там есть константы:

    vbFormControlMenu (0 - Пользователь закрыл приложение посредством [Alt+F4], кнопки Close (Закрыть) окна или одноименной команды системного меню)

    vbFormCode (1 - В коде выполняется команда Unload)

    vbAppWindows (2- Завершение сеанса Windows)

    vbAppTaskManager (3 - Выход из приложения с помощью менеджера задач)

    vbFormMDIForm (4 - Дочерняя форма MDI закрыта, так как закрыта вышестоящая форма MDI)

    Здесь идет название константы и в скобках указывается значение плюс описание того, что подлый пользователь делает с твоей программой.
    И если не нравится то в процедуре указываешь что надо запустить твою программу.

    И по второму вопросу там надо пользоваться одним из трех видов доступа к файлам.
    Первый это последовательный доступ. В какой процедуре ты его будешь использовать неважно.

    Private Sub Form_Load()
    Dim intFH As Integer ‘ intFH это дескриптор файла нужен для всех видов доступа т.е. Visual Basic работает не с самим файлом а с его каналом в системе, дескриптор это канал.
    intFH = FreeFile ‘функция FreeFile возвращает значение пустого канала

    Open "text.txt" For Input As intFH ‘здесь ты указываешь файл который хочешь открыть и его путь. А также указываешь как тебе надо открыть этот файл Input для чтенияљ Output для записи Append для добавления. Если открываешь файл для Input и файла нет в указанном месте выдается ошибка, остальные просто создадут новый файл.

    Do Until EOF(intFH)
    Line Input #intFH, strString ‘Line Input считывает одну строку из файла
    strText = strText & strString & vbLf
    Loop
    Close ‘каждый открытый канал надо обязательно закрывать. Close закрывает все открытые каналы Close intFH закрывает выбранный канал
    End Sub

    Для записи используются операторы Print# , Write#. Так же открывается файл и в него через переменную или прямо ручками из кода даешь какие-то данные.
    Второй вид доступа это - произвольный доступ.

    Open “text.txt” for Random [Access доступ] [Блокировка] As #intFH [Len = длинна записи]

    Access – тип доступа, но можно без него там есть Read, Write и Read Write. Для чтения, записи и чтения записи одновременно. Len длинна записи указывается не помню то ли в байтах то ли в символах.
    Считывание и запись в файл производятся операторами

    Get #intFH, 7, Address ‘ считывает 7ю запись
    Put #intFH, 2, Address ‘ записывает 2ю запись

    И третий вид доступа двоичный

    Open “text.txt” For Binary [Access доступ] [Блокировка] As #intFH

    Тоже самое только не random и параметра len нету
    Считывание и запись точно так же

    Get #intFH, 7, Address ‘ считывает 7 байт
    Put #intFH, 2, Address ‘ записывает 2 байт

    Если надо подробней могу на мыло кинуть Вордовский документ.

    Вопрос:

    Хелп плиз, как зделать так, чтоб моя программа повторно не запускалась а при попытке повторного запуска выдала сообщение типа "программа уже запущена"

    Ответ:

    Автор ответа: Скуратович Павел

    Наиболее универсальный способ (чтоб не запускалась даже из разных .exe-файлов):

    Const ERROR_ALREADY_EXISTS = 183&
    Private Declare Function CreateMutex Lib "kernel32" Alias "CreateMutexA" (lpMutexAttributes As Any, ByVal bInitialOwner As Long, ByVal lpName As String) As Long
    Private Declare Function ReleaseMutex Lib "kernel32" (ByVal hMutex As Long) As Long
    Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
    Private Sub Form_Load()
    Dim hMutex As Long
    'Пробуем создать Mutex
    hMutex = CreateMutex(ByVal 0&, 1, App.Title)
    'Если такой mutex уже существует...
    If (Err.LastDllError = ERROR_ALREADY_EXISTS) Then
    'Чистим за собой
    ReleaseMutex hMutex
    CloseHandle hMutex

    MsgBox "типа, ""программа уже запущена"""
    End
    End If
    End Sub

    Вопрос:

    Хелп плиз, как зделать так, чтоб моя программа повторно не запускалась а при попытке повторного запуска выдала сообщение типа "программа уже запущена"

    Ответ:

    Автор ответа: Шевченко Александр

    Private Sub Form_Load()
    If App.PrevInstance = True Then
    MsgBox "Программа уже запущена"
    End
    End If
    End Sub

    Вопрос:

    Хелп плиз, как зделать так, чтоб моя программа повторно не запускалась а при попытке повторного запуска выдала сообщение типа "программа уже запущена"

    Ответ:

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

    Вот так будет правильнее 8)
    ВАЖНОЕ ЗАМЕЧАНИЕ!!!!
    твоя форма не должна иметь Me.Caption = "постоянное имя формы" присвой ей сначала во свойствах "временное имя"; после запуска проги оно всё равно изменится на "постоянное имя формы". Это сделано для того чтобы первый экземпляр программы не закрывался.

    Option Explicit
    Private Declare Function FindWindow Lib "user32" Alias _
    "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

    Private Sub Form_Activate()
    Me.Caption = "постоянное имя формы"
    End Sub

    Private Sub Form_Load()
    Dim hnd As Long
    hnd = FindWindow("ThunderRT6FormDC", "постоянное имя формы")
    If hnd <> 0 And hnd <> Me.hWnd Then
    MsgBox ("Программа уже запущена")
    Unload Me
    End If
    End Sub

    Вопрос:

    Хелп плиз, как зделать так, чтоб моя программа повторно не запускалась а при попытке повторного запуска выдала сообщение типа "программа уже запущена"

    Ответ:

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

    Надо просто добавить код:

    Private Sub Form_Load()
    If App.PrevInstance Then
    MsgBox ("Программа уже работает!")
    Unload Me
    End If
    End Sub

    Вопрос:

    Хелп плиз, как зделать так, чтоб моя программа повторно не запускалась а при попытке повторного запуска выдала сообщение типа "программа уже запущена"

    Ответ:

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

    'Примерно вот так:
    Private Sub Form_Load()
    If App.PrevInstance = True Then
    MsgBox "Программа уже запущена.", vbOKOnly Or vbExclamation
    Unload Form1
    End If
    End Sub

    Вопрос:

    Хелп плиз, как зделать так, чтоб моя программа повторно не запускалась а при попытке повторного запуска выдала сообщение типа "программа уже запущена"

    Ответ:

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

    Option Explicit
    Private Declare Function FindWindow Lib "user32" Alias _
    "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

    Private Sub Form_Activate()
    Me.Caption = "MyApplication"
    End Sub

    Private Sub Form_Load()
    Dim hnd As Long
    hnd = FindWindow("ThunderRT6FormDC", "MyApplication")
    If hnd <> 0 And hnd <> Me.hWnd Then
    Unload Me
    End If
    End Sub

    Вопрос:

    Люди, подскажите пожалуйста, ломаю голову какой код вписать, чтоб при нажатии на кнопку, программа проверила наличие файла в директории и при его наличии в строке имя файла отобразилось имя того же файла только с еденицей, при наличии файла с еденицей предложила вариант с двойкой, вобщем как в WORDE, а при попытке сохранить файл под имеющемся именем, выдала системное сообщение "файл с таким именем уже есть, хотите его заменить?. Я сделал так а дальше незнаю....

    Private Sub ShowSave()
    Объявил две переменные файл_пом и Файл_библиотека.
    On Error GoTo ErrorHandler
    CommonDialog1.CancelError = True
    CommonDialog1.Filter = "All Files (*.*)|*.*|Word Documents (*.doc )|*.doc |Text Files (*.txt)|*.txt|"
    CommonDialog1.FilterIndex = 3
    CommonDialog1.InitDir = "D:\DOCUMENTS"
    'CommonDialog1.Flags = cdlOFNFileMustExist Or cdlOFNAllowMultiselect
    CommonDialog1.Action = 2

    Файл_библиотека = App.Path + "\Sveden1.ph" ' файл *.bib
    *-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*
    файл_пом = CMDialog1.FileName 'придаем переменной файл_пом, адрес места
    'расположения файла с данными адреса расположения файла *.bib
    If Dir(файл_пом) = "" Then
    1

    '***********

    'Здесь мой код.
    '**********

    Exit Sub
    ErrorHandler:
    If Err.Number = 32755 Then Exit Sub
    Else
    If MsgBox("Заменить существующий файл" & " " & " " & файл_пом, vbYesNo + vbExclamation, "Выход?") = vbYes Then
    GoTo 1001
    Else
    Exit Sub
    End If
    End Sub

    End Sub

    '.FileName ( .Font, .Color, .FromPage, .ToPage, .Copies, .Orientation)

    Ответ:

    Автор ответа: Александр Горбылёв

    Я бы предпочёл использовать FSO. Для этого надо установить ссылку ("Project"->"References") на "Microsoft Scripting Runtime".
    Классы объектов, которые входят в состав FSO:

    CreateObject Function
    Dictionary Object
    Drive - класс для работы с устройствами системы, такими как жесткий диск,
    CD-ROM, логический диск и т.п.
    Drives Collection
    Folder - класс для работы c папками: создание, удаление, чтение, установка атрибутов
    File Object - класс для работы c файлами: создание, удаление, чтение, установка атрибутов файлов
    FileSystemObject - базовый класс системы, на основе которого построены другие классы
    Files Collection
    Folder Object
    Folders Collection
    TextStream - специальный класс для работы с текстовыми файлами

    Использование системы FSO состоит из трех этапов:

    1. Создание объекта системы FSO
    2. Настройка требуемых методов объекта FSO
    3. Настройка доступных свойств объекта FSO

    Создать объект FSO можно объявлением переменной типа FSO:

    Dim oFSO As New FileSystemObject

    Для создания объекта можно использовать следующий оператор:

    Set oFSO = CreateObject("Scripting.FileSystemObject")

    Вот пример получения коллекции файлов папки и её обхода с помощью оператора For Each...Next:

    Function ShowFolderList(folderspec)
    Dim fso, f, f1, fc, s
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.GetFolder(folderspec)
    Set fc = f.Files
    For Each f1 in fc
    s = s & f1.name & vbCrLf
    Next
    ShowFolderList = s
    End Function

    Остальное - в MSDN (ищем FileSystemObject Object).

    Вопрос:

    Люди, подскажите пожалуйста, ломаю голову какой код вписать, чтоб при нажатии на кнопку, программа проверила наличие файла в директории и при его наличии в строке имя файла отобразилось имя того же файла только с еденицей, при наличии файла с еденицей предложила вариант с двойкой, вобщем как в WORDE, а при попытке сохранить файл под имеющемся именем, выдала системное сообщение "файл с таким именем уже есть, хотите его заменить?. Я сделал так а дальше незнаю....

    Private Sub ShowSave()
    Объявил две переменные файл_пом и Файл_библиотека.
    On Error GoTo ErrorHandler
    CommonDialog1.CancelError = True
    CommonDialog1.Filter = "All Files (*.*)|*.*|Word Documents (*.doc )|*.doc |Text Files (*.txt)|*.txt|"
    CommonDialog1.FilterIndex = 3
    CommonDialog1.InitDir = "D:\DOCUMENTS"
    'CommonDialog1.Flags = cdlOFNFileMustExist Or cdlOFNAllowMultiselect
    CommonDialog1.Action = 2

    Файл_библиотека = App.Path + "\Sveden1.ph" ' файл *.bib
    *-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*
    файл_пом = CMDialog1.FileName 'придаем переменной файл_пом, адрес места
    'расположения файла с данными адреса расположения файла *.bib
    If Dir(файл_пом) = "" Then
    1

    '***********

    'Здесь мой код.
    '**********

    Exit Sub
    ErrorHandler:
    If Err.Number = 32755 Then Exit Sub
    Else
    If MsgBox("Заменить существующий файл" & " " & " " & файл_пом, vbYesNo + vbExclamation, "Выход?") = vbYes Then
    GoTo 1001
    Else
    Exit Sub
    End If
    End Sub

    End Sub

    '.FileName ( .Font, .Color, .FromPage, .ToPage, .Copies, .Orientation)

    Ответ:

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

    'Функция GenerateFileName
    'генерирует имя файла в заданном каталоге sDir
    'вида sNameTemplate0001.ext, sNameTemplate0002.ext, .. sNameTemplate9999.ext
    Public Function GenerateFileName(ByVal sDir As String, ByVal sNameTemplate As String) As String
    Dim oFSO As New FileSystemObject
    Dim sFileName As String
    Dim iCounter As Integer

    'Последовательно генерируем имена файлов и проверяем на их наличие в заданном каталоге
    iCounter = 1
    Do
    sFileName = oFSO.BuildPath(sDir, _
    oFSO.GetBaseName(sNameTemplate) & Format(iCounter, "000#") & "." &
    oFSO.GetExtensionName(sNameTemplate))
    iCounter = iCounter + 1
    Loop While oFSO.FileExists(sFileName)

    GenerateFileName = sFileName
    End Function

    Вопрос:

    Люди, подскажите пожалуйста, ломаю голову какой код вписать, чтоб при нажатии на кнопку, программа проверила наличие файла в директории и при его наличии в строке имя файла отобразилось имя того же файла только с еденицей, при наличии файла с еденицей предложила вариант с двойкой, вобщем как в WORDE, а при попытке сохранить файл под имеющемся именем, выдала системное сообщение "файл с таким именем уже есть, хотите его заменить?. Я сделал так а дальше незнаю....

    Private Sub ShowSave()
    Объявил две переменные файл_пом и Файл_библиотека.
    On Error GoTo ErrorHandler
    CommonDialog1.CancelError = True
    CommonDialog1.Filter = "All Files (*.*)|*.*|Word Documents (*.doc )|*.doc |Text Files (*.txt)|*.txt|"
    CommonDialog1.FilterIndex = 3
    CommonDialog1.InitDir = "D:\DOCUMENTS"
    'CommonDialog1.Flags = cdlOFNFileMustExist Or cdlOFNAllowMultiselect
    CommonDialog1.Action = 2

    Файл_библиотека = App.Path + "\Sveden1.ph" ' файл *.bib
    *-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*
    файл_пом = CMDialog1.FileName 'придаем переменной файл_пом, адрес места
    'расположения файла с данными адреса расположения файла *.bib
    If Dir(файл_пом) = "" Then
    1

    '***********

    'Здесь мой код.
    '**********

    Exit Sub
    ErrorHandler:
    If Err.Number = 32755 Then Exit Sub
    Else
    If MsgBox("Заменить существующий файл" & " " & " " & файл_пом, vbYesNo + vbExclamation, "Выход?") = vbYes Then
    GoTo 1001
    Else
    Exit Sub
    End If
    End Sub

    End Sub

    '.FileName ( .Font, .Color, .FromPage, .ToPage, .Copies, .Orientation)

    Ответ:

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

    Присоединяешь к проекту Microsoft Scripting Runtime
    В твоей проге я не разбирался но я сделал бы так

    Option Explicit
    Dim FSO As New FileSystemObject 'присоединяем FileSystemObject

    Private Sub Rename(file As String) 'пусть в переменной file
    'лежит полный путь к
    'файлу
    Dim n As Integer
    Dim tmp as String
    n=1
    Do

    If FSO.FileExists(file)=False Then 'если файла с таким
    **сохраняешь свой файл** 'именем нет
    Exit Do
    End If
    file=Replace (file,".",Str(n)+".") 'меняем имя файла
    n=n+1
    Loop
    End Sub

    Вопрос:

    Как мне по имеющемуся пути осуществить перебор всех файлов, находящихся в данной конкретной папке (исключая подпапки).
    Есть ли такая вояможность в VB6 или какими функциями API необходимо польяоваться?

    Ответ:

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

    Перебор всех файлов TXT и заполнение ComboBox:

    Sub FillDownFiles(ByVal StartPath As String, ByRef Ctr As ComboBox)
    Dim D(), Count, XDir
    StartPath = StartPath + IIf(Right(StartPath, 1) <> "\", "\", "")
    XDir = Dir(StartPath, vbDirectory)
    Count = 0
    Do While XDir <> ""
    If XDir <> "." And XDir <> ".." Then
    If (GetAttr(StartPath + XDir) And vbDirectory) = vbDirectory Then
    If (Count Mod 10) = 0 Then
    ReDim Preserve D(Count + 10)
    End If
    Count = Count + 1
    D(Count) = XDir
    Else
    If Right(XDir, 4) = ".TXT" Then
    Ctr.AddItem StartPath + XDir
    End If
    End If
    End If
    XDir = Dir
    Loop
    For I = 1 To Count
    FillDownFiles StartPath + D(I) + "\", Ctr
    Next I
    End Sub

    Вопрос:

    Как мне по имеющемуся пути осуществить перебор всех файлов, находящихся в данной конкретной папке (исключая подпапки).
    Есть ли такая вояможность в VB6 или какими функциями API необходимо польяоваться?

    Ответ:

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

    Есть такая возможность :)

    Private Function ListFile(directory As String) As String
    Static flag As Boolean
    If flag = False Then
    ListFile = Dir(directory)
    flag = True
    Else
    ListFile = Dir()
    End If
    If ListFile = "" Then ListFile = "В этой папке файлов больше нет"
    flag = False
    End Sub

    Вопрос:

    Как мне по имеющемуся пути осуществить перебор всех файлов, находящихся в данной конкретной папке (исключая подпапки).
    Есть ли такая вояможность в VB6 или какими функциями API необходимо польяоваться?

    Ответ:

    Автор ответа: Александр Горбылёв

    Я бы предпочёл использовать FSO. Для этого надо установить ссылку ("Project"->"References") на "Microsoft Scripting Runtime".
    Классы объектов, которые входят в состав FSO:

    CreateObject Function
    Dictionary Object
    Drive - класс для работы с устройствами системы, такими как жесткий диск,
    CD-ROM, логический диск и т.п.
    Drives Collection
    Folder - класс для работы c папками: создание, удаление, чтение, установка атрибутов
    File Object - класс для работы c файлами: создание, удаление, чтение, установка атрибутов файлов
    FileSystemObject - базовый класс системы, на основе которого построены другие классы
    Files Collection
    Folder Object
    Folders Collection
    TextStream - специальный класс для работы с текстовыми файлами

    Использование системы FSO состоит из трех этапов:

    1. Создание объекта системы FSO
    2. Настройка требуемых методов объекта FSO
    3. Настройка доступных свойств объекта FSO

    Создать объект FSO можно объявлением переменной типа FSO:

    Dim oFSO As New FileSystemObject

    Для создания объекта можно использовать следующий оператор:

    Set oFSO = CreateObject("Scripting.FileSystemObject")

    Вот пример получения коллекции файлов папки и её обхода с помощью оператора For Each...Next:

    Function ShowFolderList(folderspec)
    Dim fso, f, f1, fc, s
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.GetFolder(folderspec)
    Set fc = f.Files
    For Each f1 in fc
    s = s & f1.name & vbCrLf
    Next
    ShowFolderList = s
    End Function

    Остальное - в MSDN (ищем FileSystemObject Object).

    Вопрос:

    Что такое ScaleWidth и ScaleHeight? Чем отличаются от Width и Height?

    Ответ:

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

    Показывают размер объекта в единицах указанных в ScaleMode

    Вопрос:

    Что такое ScaleWidth и ScaleHeight? Чем отличаются от Width и Height?

    Ответ:

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

    1. Width и Height содержат размеры всего окна, а ScaleWidth и ScaleHeight - только клиентской области (без заголовка окна и рамки).
    2. Width и Height всегда измеряются в Twip'ах, а ScaleWidth и ScaleHeight - в зависимости от свойства ScaleMode. Twip - логическая единица, обычно равная 1/15 px на экране и всегда равная 1/1440 дюйма на любом устройстве.

    Вопрос:

    Работаю с Win 5.0
    у меня программа ассоциирована к расширению .zzz
    Я хочу уянать полный путь к программе которая накодится в командной строке. Я делаю это с помощью

    Private Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineA" () As String

    Под win9x все нормально,но под NT происход крах программы. Есть ли артальнотива это функции или другой способ яделать это ?

    Ответ:

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

    Попробуй средствами VB - используй функцию Command$.

    Вопрос:

    Почему в VB6 на WinXP не работают такие функции API как - ChangeDisplaySettings и ExitWindowsEx?
    Тот же код, но на ос Win9X, работает.

    Ответ:

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

    Это потому, что АПИ функции со временем устаревают. Выходят новые операционки, в них появляются новые АПИ функции (взамен старым) - более быстрые, более универсальные (про стабильность промолчу :-)). Так вот МокроСофт старые функции из новых операционок выбрасывает не сразу, а лишь спустя какой-то период времени, как бы давая возможность программистам перейти на использование новых функций, после чего полностью прекращает их (функций) поддержку.
    Всю информацию о той или иной АПИ функции можешь посмотреть в MSDN (http://msdn.microsoft.com/).

    Вопрос:

    Каким образом можно из VB получать и обрабатывать системные события Windows ! Например, читать клавиатуру.

    Ответ:

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

    Системных событий очень много, а вот читать клавиатуру вне программы

    'Модуль
    Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    Public Const VK_TAB = &H9 ' Константа для TAB key.Для других кнопок посмотрите в API вьювере

    'Программа
    If GetAsyncKeyState(VK_TAB) Then msgboх "Кто то трогает ТАБ", vbinformation

    Вопрос:

    Как в VB яавершить работу приложения Windows?

    Ответ:

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

    'FindTopWindow определяет самого верхнего родителя для окна,
    'чей дескриптор передается в качестве параметра. Надо, чтобы не убить
    'какую-нибудь кнопку, но, в принципе, это не обязательно ;)

    Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
    (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Public Const WM_CLOSE = &H10

    Private Sub btnClose_Click()
    If hwdCurWindow = FindTopWindow(hwdCurWindow) Then
    SendMessage hwdCurWindow, WM_CLOSE, 0, 0
    hwdCurWindow = 0
    End If
    End Sub

    Public Function FindTopWindow(ByVal hw As Long) As Long
    Dim NewHwnd As Long
    NewHwnd = GetParent(hw)
    While NewHwnd <> 0
    hw = NewHwnd
    NewHwnd = GetParent(hw)
    Wend
    FindTopWindow = hw
    End Function

    Вопрос:

    Как сделать всплывающую подсказку (ToolTipText)в 2 и более строк?

    Ответ:

    Автор ответа: Скуратович Павел

    Установить себе Windows 2000/XP/что_там_ещё_есть и использовать vbCrLf 8-)

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

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

    наверх

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


Выпуск 104.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Покупали ли Вы 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!!!

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

    Опять новый выпуск. Читайте новости.
    Читайте!

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

    • Citycat by Email

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

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

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

    Книги

    Переход на 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

    Дата: 26.10.2002 06:40 | Раздел: Примеры кода | Автор: Vovk Sergey

    ListMenu - Показывает, как превратить обычное меню в неограниченный список.

    Дата: 24.10.2002 06:38 | Раздел: Примеры кода | Автор: Bilenko Anatoly

    3dMOtion - Пример имитации вращения объекта без использованя матриц перехода из 3д в 2д.

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

    02:30 / 27 окт. Кому надо - контролы "а ля ХР" под .NET | Хитов: 4 | Ответов: 1
    20:33 / 26 окт. Поиск файлов на диске | Хитов: 10 | Ответов: 2
    19:54 / 26 окт. Отцы Direct Икса!!! Помогите | Хитов: 12 | Ответов: 3
    18:09 / 26 окт. Тип данных LPCTSTR | Хитов: 5 | Ответов: 1
    14:29 / 26 окт. CallByName | Хитов: 5 | Ответов: 0
    06:35 / 26 окт. Заголовки окон | Хитов: 15 | Ответов: 0
    04:57 / 26 окт. Ну неужели никто не знает??? | Хитов: 34 | Ответов: 2
    21:34 / 25 окт. Папка Fonts | Хитов: 16 | Ответов: 1
    20:22 / 25 окт. ImageBox | Хитов: 28 | Ответов: 6
    19:02 / 25 окт. VB | Хитов: 33 | Ответов: 7
    18:54 / 25 окт. window ontop в XP | Хитов: 10 | Ответов: 0
    16:59 / 25 окт. Печать из БД в Ворде (VB 6) | Хитов: 10 | Ответов: 0
    14:16 / 25 окт. Возможно ли на VB отслеживать пакеты? | Хитов: 28 | Ответов: 4
    11:27 / 25 окт. Говорят, был здесь код (не нашел): символы вмес... | Хитов: 37 | Ответов: 2
    09:11 / 25 окт. GetTableName | Хитов: 21 | Ответов: 1
    02:08 / 25 окт. VB6 Migration toll, как его доустановить до VB7 | Хитов: 19 | Ответов: 2
    02:02 / 25 окт. В VB7 при закрытии окна мигает работающее прило... | Хитов: 14 | Ответов: 1
    00:47 / 25 окт. Системный регистр??? | Хитов: 28 | Ответов: 2
    00:42 / 25 окт. EXEшник запускается ТОЛЬКО с моего компа! | Хитов: 60 | Ответов: 7
    23:31 / 24 окт. Ещё один(Вопросик) | Хитов: 34 | Ответов: 4

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

    наверх

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

    наверх

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

    наверх

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

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

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

    наверх

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

    BalloonMessage for MS Agent

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

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

    наверх
    Вопрос/Ответ

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

    Вопросы:

    Автор вопроса:     Меркуль Юрий

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

    У меня вот какой вопрос - пишу:

    Private Sub Command1_Click()

    a = a + 1
    If Text2.Text = "" Then
    Winsock1.RemoteHost = "ip адрес сервера" + ad
    Winsock1.RemotePort = Text1.Text
    Winsock1.Connect
    Winsock2.RemotePort = Text1.Text
    Winsock2.RemoteHost = "ip адрес сервера" + ad
    Winsock2.Connect
    Winsock1.SendData Text3.Text
    Winsock2.SendData Text2.Text
    Winsock1.SendData "START"
    Winsock1.SendData Text3.Text
    If LISMCOM.Text1.Text <> "OK" Then MsgBox "NO!"
    Else
    Winsock1.RemotePort = Text1.Text
    Winsock1.RemoteHost = Text2.Text
    Winsock1.Connect
    Winsock2.RemotePort = 1002
    Winsock2.RemoteHost = Text2.Text
    Winsock2.Connect
    End If
    End Sub

    Запускаю... На Winsock1.SendData Text3.Text пишет ошибку №40006: "Wrong protocol or connection state" и т.д. Может кто подскажет, что мне делать?

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

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

    Есть add-in для VB, как из него добавлять в активный проект формы , меню, и другие элементы управления ??? и как оперировать их свойствами??

    Автор вопроса: Dr.Max

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

    Как измерять скорость кода программы?????????
    Чего-то сшал про такую апи - функцию.

    Автор вопроса: Dr.Max

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

    Есть текстовый файл ,10 столбцов на 10 сток ,еще есть массив ,тоже 10х10 ,а теперь вопрос: как загнать файл в массив ?

    Автор вопроса: Dr.Max

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

    Как сохранить рисунок в 8-битном цвете, причём ,оптимизировать так ,чтобы сохранялись только те цвета ,которые есть на рисунке .
    Т.е. так как делает 3ds max , когда сохраняешь рисунки в bmp в 256 цветов.
    Ну или подскажите какая программа может так делать.

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

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

    Пишу нечто вроде эквалайзера. Подскажите, кто знает, или дайте ссылку, как можно определить частоту выводимого через звуковуху звука и "громкость" этой частоты. И вообще, можно как-нибудь из VB работать со звуковухой (например выводить звук определенной частоты и др.)? Желательно примеры слать на email.

    Ответы:

    Вопрос:

    Как измерять скорость кода программы?????????
    Чего-то сшал про такую апи - функцию.

    Ответ:

    Автор ответа: Dr.Max

    Как измерять скорость кода программы?????????
    Чего-то сшал про такую апи - функцию.

    Вопрос:

    1. Для просмотра HTML странички к програме прицепил объект WebBrowser. Задаю свойству Navigate полный путь и имя файла. Открывает все нормально. В документе есть ссылки внитри текста. При нажатии на любую из них ругается, что немогу открыть страницу и т.д. (будто ее не существует). Хотя какое-то время назад (как только я начинал делать свою програму) все работало нормально. Что делать.

    2. Записываю в фаил строку текста. В нем есть запятые, точки, все как положено. При чтении из фала VB почемуто воспринимает знаки препинания как разделители записей, и , соответственно, они пропадают. Выручайте, мож кто знает. Записываю в фаил по OUTPUT, читаю INPUT.

    Ответ:

    Автор ответа: Oxygen Specman

    А ты не пробовал использовать оператор LINE INPUT? Читает всю строку целиком. Используется так LINE INPUT номер файла, переменная.
    Переменная должна быть строкового типа.

    Вопрос:

    1. Для просмотра HTML странички к програме прицепил объект WebBrowser. Задаю свойству Navigate полный путь и имя файла. Открывает все нормально. В документе есть ссылки внитри текста. При нажатии на любую из них ругается, что немогу открыть страницу и т.д. (будто ее не существует). Хотя какое-то время назад (как только я начинал делать свою програму) все работало нормально. Что делать.

    2. Записываю в фаил строку текста. В нем есть запятые, точки, все как положено. При чтении из фала VB почемуто воспринимает знаки препинания как разделители записей, и , соответственно, они пропадают. Выручайте, мож кто знает. Записываю в фаил по OUTPUT, читаю INPUT.

    Ответ:

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

    По поводу записи-чтения:

    Выдержка из MSDN:
    Unlike the <Input #> statement, the <Input> function returns all of the characters it reads,
    including commas, carriage returns, linefeeds, quotation marks, and leading spaces.

    Иными словами используй Input вместо Input# - не будут фильтроваться запятые, кавычки и т.д.

    Вопрос:

    Как узнать тип объектной переменной в VB6?
    Я присваиваю переменной типа Variant объект, например Node или ListItem или ещё какой то, как узнать какого типа в данный момент эта переменная?

    Ответ:

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

    Воспользуйся встроенной функцией бэйсика - TypeName. Можешь попробовать ещё и VarType.

    Вопрос:

    народ не поможетели в такой ситуации :нужна функция которой я даю строку текста и символ (букву,цифру либо спец символ), а она мне возращает слово в котором есть этот знак (не его номер), да и ещё слово может состоять не только из букв, а и из смеси букв, цифр и заков.

    Ответ:

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

    Предлагаю такой вариант.
    Формат строки предполагает, что разделителем слов является пробел. Функция берет их Text1.Text строку, из Text2.Text љсимвол, результат поиска выводит в Text3.Text.

    Option Explicit
    Dim i As Long
    Dim exist As Boolean
    Dim symbol, Xword As String

    Private Sub Command1_Click()
    exist = False
    For i = 1 To Len(Text1.Text)
    symbol = Mid(Text1.Text, i, 1)
    If symbol = " " Then
    If exist Then
    Text3.Text = Xword
    If MsgBox("Искать дальше?", vbOKCancel) = vbCancel Then
    Exit Sub
    Else
    Text3.Text = ""
    exist = False
    End If
    Else
    End If
    Xword = ""
    Else
    Xword = Xword + symbol
    If symbol = Text2.Text Then exist = True
    End If
    Next i
    MsgBox ("Готово!")
    End Sub

    Вопрос:

    Как использовать в Basic функцию Rnd для любых символов(букв.цифр)
    Напешите код. Если кто знает.

    Ответ:

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

    Можно испольховать ASCII коды

    Dim nNum As Integer
    nNum = Int(Rnd * 255)
    Print nNum, Chr$(nNum)

    Вопрос:

    Как использовать в Basic функцию Rnd для любых символов(букв.цифр)
    Напешите код. Если кто знает.

    Ответ:

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

    Насколько я понял вопрос, необходимо, чтобы функция возвращала случайный символ или строку любых символов. Могу предложить такой вариант.
    1. Любой случайный символ
    Symbol=Chr(Int(255 * Rnd(1))).
    2. Строка случайных символов (Length – ее длина)
    For i = 1 To length
    MyString=MyString+ Chr(Int(255 * Rnd(1)));
    Next i
    Возвращаются все символы, т.е. не только буквы и цифры, но и специальные. Чтобы исключить последние, нужно добавить проверку кода символа по таблице. Например, коды русских букв 192…255, английских 65…90 и 97…122. и т.д. Таблица есть в Help’e (Characters Set).

    Вопрос:

    Как использовать в Basic функцию Rnd для любых символов(букв.цифр)
    Напешите код. Если кто знает.

    Ответ:

    Автор ответа: Renat Rahimov

    Dim a As String, b As Byte
    Randomize Timer
    b = Rnd * 255 ' b - номер символа в стандарте ASCII (от 0 до 255)
    a = Chr(b) ' a - и есть случайный символ

    Вопрос:

    Как использовать в Basic функцию Rnd для любых символов(букв.цифр)
    Напешите код. Если кто знает.

    Ответ:

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

    Rnd(255) - где 255 ето придел допустимого значения
    от сюда и пляшем :)

    Вопрос:

    Как скомпилировать проект, что бы он работал без инсталляции и использования MSVBVM60.DLL (на другом компе)?

    Ответ:

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

    Воспользуйся программой Fusion v1.0 она засунет MSVBVM6.0 прямо в EXE

    Вопрос:

    Как скомпилировать проект, что бы он работал без инсталляции и использования MSVBVM60.DLL (на другом компе)?

    Ответ:

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

    Ищи програмулину которая называется VB Power Wrap или что-то вроде того.
    Но учто, что отныне твой exe-шник невероятных размеров :)

    Вопрос:

    Как скомпилировать проект, что бы он работал без инсталляции и использования MSVBVM60.DLL (на другом компе)?

    Ответ:

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

    Для того, чтобы программа не обращалась к файлам динамической библиотеки vb6. Надо в опциях компиляции во вкладке "Compile" выбрать "Compile to Native Code". Работает только начиная с версии 6.

    Вопрос:

    нужно сделать чтобы прога определяла имя своего файла и место нахождения
    app.exeName - че то не работае

    Ответ:

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

    А что он тебе выдаёт?
    Попробуй склмпилить exe-шник и запустить его.
    Всё должно работать.

    Вопрос:

    Как определить на каком элементе управления установлен фокус? Желательно с примером.

    Ответ:

    Автор ответа: Oxygen Specman

    В VB есть такое событие GotFocus. Берешь прописываешь его для каждого объекта (в виде подпрограмм, т.е. Sub) и смотришь какая из них сработает.

    Вопрос:

    Подскажите ссылки где можно найти документацию и исходняки для 3D програмирования DirectX. Если нетрудно киньте на E-Mail исходняки, можно урезая файлы .3ds .x и т.д. Мне нужно именно 3D, а не плоская графика.

    Ответ:

    Автор ответа: Oxygen Specman

    Попробуй среду программирования Dark Basic, он обычно идет на дисках - сборниках Бейсиков. Можешь поискать в инете, занимает около 90 Мб. Он идет со справкой и примерами. В нем, насколько я помню можно использовать объекты из 3D Studio Max. Вывод графики в нем осуществляется через Direct3D

    Вопрос:

    Вопрос 1: Как сделать так,чтобы программу невозможно было выгрузить, а если её выгрузить, то запускалась бы копия программы.
    Вопрос 2: У меня есть программа. Как сделать так, чтобы она брала данные из внешнего файла (например .txt) и загружала их оттуда (В этом файле должны находиться переменные вместе с данными)

    Ответ:

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

    Делается это так.

    Sub Form_Unload(Cancel as integer)
    Cancel=1
    end sub
    (программу трудно будет выгрузить)

    sub Form_unload(Cancel as Integer)
    shell App.path & "\" & app/exename
    end sub
    (программа при завершении работы запускает свою копию.)

    Чтение данных из файла

    dim strAll as string
    dim strTemp as string

    open strPath for input as #1
    while not eof(1)
    LineInput #1,strTemp
    strAll=strTemp & vbCrLf
    wend
    strAll=left(strAll,len(strAll)-2)

    В переменную strAll будут загружены все данные из файла Path

    Вопрос:

    Хелп плиз, как зделать так, чтоб моя программа повторно не запускалась а при попытке повторного запуска выдала сообщение типа "программа уже запущена"

    Ответ:

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

    If App.PrevInstance Then End ' или MsgBox

    Вопрос:

    Как мне по имеющемуся пути осуществить перебор всех файлов, находящихся в данной конкретной папке (исключая подпапки).
    Есть ли такая вояможность в VB6 или какими функциями API необходимо польяоваться?

    Ответ:

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

    dim strFileName as string
    dim strPath as string
    strPath="C:\windows\"

    strFileName=dir(strPath & "*.*")
    while strFileName <> ""
    'Сделать что-нибудь с файлом (strPath & strFileName)
    strFileName=dir
    wend

    Вопрос:

    1. Как из ВБ 6 открыть мои док, или например нажать кнопку в окне установки связи с Интернет
    2. У меня на вэб-странице есть ВБ 6-форма с окном Text, в который можно вписывать текст.Как добавить этот текст в мою форму на сервере, чтобы при новом открытии страницы этот текст сохранялся

    Ответ:

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

    По вопросу #1 есть длинный ответ.
    За ответом можешь отмылить мне.

    Вопрос:

    Подскажите как в VB написать подобие ping(пинга) через API.

    Ответ:

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

    Лави

    Ping.bas :

    Type Inet_address
    Byte4 As String * 1
    Byte3 As String * 1
    Byte2 As String * 1
    Byte1 As String * 1
    End Type

    Public IPLong As Inet_address

    Type WSAdata
    wVersion As Integer
    wHighVersion As Integer
    szDescription(0 To 255) As Byte
    szSystemStatus(0 To 128) As Byte
    iMaxSockets As Integer
    iMaxUdpDg As Integer
    lpVendorInfo As Long
    End Type

    Type Hostent
    h_name As Long
    h_aliases As Long
    h_addrtype As Integer
    h_length As Integer
    h_addr_list As Long
    End Type

    Type IP_OPTION_INFORMATION
    TTL As Byte ' Time to Live (used for traceroute)
    Tos As Byte ' Type of Service (usually 0)
    Flags As Byte ' IP header Flags (usually 0)
    OptionsSize As Long ' Size of Options data (usually 0, max 40)
    OptionsData As String * 128 ' Options data buffer
    End Type

    Public pIPo As IP_OPTION_INFORMATION

    Type IP_ECHO_REPLY
    Address(0 To 3) As Byte ' Replying Address
    Status As Long ' Reply Status
    RoundTripTime As Long ' Round Trip Time in milliseconds
    DataSize As Integer ' reply data size
    Reserved As Integer ' for system use
    data As Long ' pointer to echo data
    Options As IP_OPTION_INFORMATION ' Reply Options
    End Type

    Public pIPe As IP_ECHO_REPLY

    ' WSock32 Subroutines and Functions

    Declare Function gethostname Lib "wsock32.dll" (ByVal hostname$, HostLen&) As Long
    Declare Function gethostbyname& Lib "wsock32.dll" (ByVal hostname$)
    Declare Function WSAGetLastError Lib "wsock32.dll" () As Long
    Declare Function WSAStartup Lib "wsock32.dll" (ByVal wVersionRequired&, lpWSAData As WSAdata) As Long
    Declare Function WSACleanup Lib "wsock32.dll" () As Long

    ' Kernel32 Subroutines and Functions

    Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)

    ' ICMP Subroutines and Functions

    ' IcmpCreateFile will return a file handle

    Declare Function IcmpCreateFile Lib "icmp.dll" () As Long

    ' Pass the handle value from IcmpCreateFile to the IcmpCloseHandle. It will return
    ' a boolean value indicating whether or not it closed successfully.

    Declare Function IcmpCloseHandle Lib "icmp.dll" (ByVal HANDLE As Long) As Boolean

    ' IcmpHandle returned from IcmpCreateFile
    ' DestAddress is a pointer to the first entry in the hostent.h_addr_list
    ' RequestData is a null-terminated 64-byte string filled with ASCII 170 characters
    ' RequestSize is 64-bytes
    ' RequestOptions is a NULL at this time
    ' ReplyBuffer
    ' ReplySize
    ' Timeout is the timeout in milliseconds

    Declare Function IcmpSendEcho Lib "ICMP" (ByVal IcmpHandle As Long, ByVal DestAddress As Long, _
    ByVal RequestData As String, ByVal RequestSize As Integer, RequestOptns As IP_OPTION_INFORMATION, _
    ReplyBuffer As IP_ECHO_REPLY, ByVal ReplySize As Long, ByVal TimeOut As Long) As Boolean
    '''''
    Полностью форма
    VERSION 4.00
    Begin VB.Form Form1
    BorderStyle = 1 'Fixed Single
    Caption = "VB4032-ICMPEcho (Created by Jim Huff)"
    ClientHeight = 3765
    ClientLeft = 3840
    ClientTop = 4035
    ClientWidth = 8130
    BeginProperty Font
    name = "Arial"
    charset = 0
    weight = 400
    size = 8.25
    underline = 0 'False
    italic = 0 'False
    strikethrough = 0 'False
    EndProperty
    Height = 4170
    Icon = "Form1.frx":0000
    Left = 3780
    LinkTopic = "Form1"
    MaxButton = 0 'False
    MinButton = 0 'False
    ScaleHeight = 3765
    ScaleWidth = 8130
    Top = 3690
    Width = 8250
    Begin VB.TextBox Text6
    Height = 315
    Left = 2625
    TabIndex = 15
    Text = "5"
    Top = 825
    Width = 390
    End
    Begin VB.CommandButton Command2
    Caption = "&Clear View"
    Height = 390
    Left = 6450
    TabIndex = 13
    Top = 675
    Width = 1590
    End
    Begin VB.CommandButton Command3
    Caption = "&Trace"
    Height = 390
    Left = 6450
    TabIndex = 12
    Top = 150
    Width = 765
    End
    Begin VB.TextBox Text5
    Height = 315
    Left = 4425
    TabIndex = 10
    Text = "32"
    Top = 450
    Width = 390
    End
    Begin VB.TextBox Text4
    Alignment = 2 'Center
    Height = 315
    Left = 4425
    MaxLength = 1
    TabIndex = 9
    Text = "5"
    Top = 75
    Width = 390
    End
    Begin VB.TextBox Text3
    BeginProperty Font
    name = "Terminal"
    charset = 255
    weight = 400
    size = 9
    underline = 0 'False
    italic = 0 'False
    strikethrough = 0 'False
    EndProperty
    Height = 2490
    Left = 75
    MultiLine = -1 'True
    ScrollBars = 3 'Both
    TabIndex = 7
    Top = 1200
    Width = 7965
    End
    Begin VB.TextBox Text2
    Alignment = 2 'Center
    Height = 315
    Left = 4425
    MaxLength = 3
    TabIndex = 1
    Text = "255"
    Top = 825
    Width = 390
    End
    Begin VB.TextBox Text1
    Alignment = 2 'Center
    Height = 315
    Left = 1050
    TabIndex = 0
    Text = "www.microsoft.com"
    Top = 75
    Width = 1965
    End
    Begin VB.CommandButton Command1
    Caption = "&Ping"
    BeginProperty Font
    name = "MS Sans Serif"
    charset = 0
    weight = 400
    size = 8.25
    underline = 0 'False
    italic = 0 'False
    strikethrough = 0 'False
    EndProperty
    Height = 390
    Left = 7275
    TabIndex = 2
    Top = 150
    Width = 765
    End
    Begin VB.Label Label7
    Alignment = 1 'Right Justify
    Caption = "Request T/O (seconds):"
    Height = 240
    Left = 825
    TabIndex = 14
    Top = 900
    Width = 1740
    End
    Begin VB.Label Label6
    Alignment = 1 'Right Justify
    Caption = "# of Chars/Pkt:"
    Height = 240
    Left = 3150
    TabIndex = 11
    Top = 525
    Width = 1140
    End
    Begin VB.Label Label5
    Alignment = 1 'Right Justify
    Caption = "# of Packets:"
    Height = 240
    Left = 3150
    TabIndex = 8
    Top = 150
    Width = 1140
    End
    Begin VB.Label Label4
    Alignment = 1 'Right Justify
    Caption = "TTL:"
    Height = 240
    Left = 3975
    TabIndex = 6
    Top = 900
    Width = 390
    End
    Begin VB.Label Label3
    Alignment = 2 'Center
    BackColor = &H00FFFFFF&
    BorderStyle = 1 'Fixed Single
    Height = 315
    Left = 1050
    TabIndex = 5
    Top = 450
    Width = 1965
    End
    Begin VB.Label Label2
    Alignment = 1 'Right Justify
    Caption = "IPAddress:"
    Height = 255
    Left = 150
    TabIndex = 4
    Top = 525
    Width = 870
    End
    Begin VB.Label Label1
    Alignment = 1 'Right Justify
    Caption = "Host Name:"
    Height = 255
    Left = 75
    TabIndex = 3
    Top = 150
    Width = 975
    End
    End
    Attribute VB_Name = "Form1"
    Attribute VB_Creatable = False
    Attribute VB_Exposed = False
    ' WSock32 Variables

    Dim iReturn As Long, sLowByte As String, sHighByte As String
    Dim sMsg As String, HostLen As Long, Host As String
    Dim Hostent As Hostent, PointerToPointer As Long, ListAddress As Long
    Dim WSAdata As WSAdata, DotA As Long, DotAddr As String, ListAddr As Long
    Dim MaxUDP As Long, MaxSockets As Long, i As Integer
    Dim Description As String, Status As String

    ' ICMP Variables

    Dim bReturn As Boolean, hIP As Long
    Dim szBuffer As String
    Dim Addr As Long
    Dim RCode As String
    Dim RespondingHost As String

    ' TRACERT Variables

    Dim TraceRT As Boolean
    Dim TTL As Integer

    ' WSock32 Constants

    Const WS_VERSION_MAJOR = &H101 \ &H100 And &HFF&
    Const WS_VERSION_MINOR = &H101 And &HFF&
    Const MIN_SOCKETS_REQD = 0

    Sub GetRCode()

    If pIPe.Status = 0 Then RCode = "Success"
    If pIPe.Status = 11001 Then RCode = "Buffer too Small"
    If pIPe.Status = 11002 Then RCode = "Dest Network Not Reachable"
    If pIPe.Status = 11003 Then RCode = "Dest Host Not Reachable"
    If pIPe.Status = 11004 Then RCode = "Dest Protocol Not Reachable"
    If pIPe.Status = 11005 Then RCode = "Dest Port Not Reachable"
    If pIPe.Status = 11006 Then RCode = "No Resources Available"
    If pIPe.Status = 11007 Then RCode = "Bad Option"
    If pIPe.Status = 11008 Then RCode = "Hardware Error"
    If pIPe.Status = 11009 Then RCode = "Packet too Big"
    If pIPe.Status = 11010 Then RCode = "Rqst Timed Out"
    If pIPe.Status = 11011 Then RCode = "Bad Request"
    If pIPe.Status = 11012 Then RCode = "Bad Route"
    If pIPe.Status = 11013 Then RCode = "TTL Exprd in Transit"
    If pIPe.Status = 11014 Then RCode = "TTL Exprd Reassemb"
    If pIPe.Status = 11015 Then RCode = "Parameter Problem"
    If pIPe.Status = 11016 Then RCode = "Source Quench"
    If pIPe.Status = 11017 Then RCode = "Option too Big"
    If pIPe.Status = 11018 Then RCode = " Bad Destination"
    If pIPe.Status = 11019 Then RCode = "Address Deleted"
    If pIPe.Status = 11020 Then RCode = "Spec MTU Change"
    If pIPe.Status = 11021 Then RCode = "MTU Change"
    If pIPe.Status = 11022 Then RCode = "Unload"
    If pIPe.Status = 11050 Then RCode = "General Failure"
    RCode = RCode + " (" + CStr(pIPe.Status) + ")"

    DoEvents
    If TraceRT = False Then

    If pIPe.Status = 0 Then
    text3.Text = text3.Text + " Reply from " + RespondingHost + ": Bytes = " + Trim$(CStr(pIPe.DataSize)) + " RTT = " + Trim$(CStr(pIPe.RoundTripTime)) + "ms TTL = " + Trim$(CStr(pIPe.Options.TTL)) + Chr$(13) + Chr$(10)
    Else
    text3.Text = text3.Text + " Reply from " + RespondingHost + ": " + RCode + Chr$(13) + Chr$(10)
    End If

    Else
    If TTL - 1 < 10 Then text3.Text = text3.Text + " Hop # 0" + CStr(TTL - 1) Else text3.Text = text3.Text + " Hop # " + CStr(TTL - 1)
    text3.Text = text3.Text + " " + RespondingHost + Chr$(13) + Chr$(10)
    End If

    End Sub

    Sub vbGetHostByName()

    Dim szString As String

    Host = Trim$(Text1.Text) ' Set Variable Host to Value in Text1.text

    szString = String(64, &H0)
    Host = Host + Right$(szString, 64 - Len(Host))

    If gethostbyname(Host) = SOCKET_ERROR Then ' If WSock32 error, then tell me about it
    sMsg = "Winsock Error" & Str$(WSAGetLastError())
    MsgBox sMsg, vbOKOnly, "VB4032-ICMPEcho"
    Else
    PointerToPointer = gethostbyname(Host) ' Get the pointer to the address of the winsock hostent structure
    CopyMemory Hostent.h_name, ByVal _
    PointerToPointer, Len(Hostent) ' Copy Winsock structure to the VisualBasic structure

    ListAddress = Hostent.h_addr_list ' Get the ListAddress of the Address List
    CopyMemory ListAddr, ByVal ListAddress, 4 ' Copy Winsock structure to the VisualBasic structure
    CopyMemory IPLong, ByVal ListAddr, 4 ' Get the first list entry from the Address List
    CopyMemory Addr, ByVal ListAddr, 4

    Label3.Caption = Trim$(CStr(Asc(IPLong.Byte4)) + "." + CStr(Asc(IPLong.Byte3)) _
    + "." + CStr(Asc(IPLong.Byte2)) + "." + CStr(Asc(IPLong.Byte1)))
    End If

    End Sub
    Sub CenterForm()
    Form1.Left = (Screen.Width - Form1.ScaleWidth) \ 2
    Form1.Top = (Screen.Height - Form1.ScaleHeight) \ 2
    End Sub

    Sub vbGetHostName()

    Host = String(64, &H0) ' Set Host value to a bunch of spaces

    If gethostname(Host, HostLen) = SOCKET_ERROR Then ' This routine is where we get the host's name
    sMsg = "WSock32 Error" & Str$(WSAGetLastError()) ' If WSOCK32 error, then tell me about it
    MsgBox sMsg, vbOKOnly, "VB4032-ICMPEcho"
    Else
    Host = Left$(Trim$(Host), Len(Trim$(Host)) - 1) ' Trim up the results
    Text1.Text = Host ' Display the host's name in label1
    End If

    End Sub

    Sub vbIcmpSendEcho()

    Dim NbrOfPkts As Integer

    szBuffer = "abcdefghijklmnopqrstuvwabcdefghijklmnopqrstuvw" & _
    "abcdefghijklmnopqrstuvwabcdefghijklmnopqrstuvwabcdefghijklmnopqrstuvwabcdefghijklm"

    If IsNumeric(Text5.Text) Then
    If Val(Text5.Text) < 32 Then Text5.Text = "32"
    If Val(Text5.Text) > 128 Then Text5.Text = "128"
    Else
    Text5.Text = "32"
    End If

    szBuffer = Left$(szBuffer, Val(Text5.Text))

    If IsNumeric(text4.Text) Then
    If Val(text4.Text) < 1 Then text4.Text = "1"
    Else
    text4.Text = "1"
    End If

    If TraceRT = True Then text4.Text = "1"

    For NbrOfPkts = 1 To Trim$(text4.Text)

    DoEvents
    bReturn = IcmpSendEcho(hIP, Addr, szBuffer, Len(szBuffer), pIPo, pIPe, Len(pIPe) + 8, 2700)

    If bReturn Then

    RespondingHost = CStr(pIPe.Address(0)) + "." + CStr(pIPe.Address(1)) + "." + CStr(pIPe.Address(2)) + "." + CStr(pIPe.Address(3))

    GetRCode

    Else ' I hate it when this happens. If I get an ICMP timeout
    ' during a TRACERT, try again.

    If TraceRT Then
    TTL = TTL - 1
    Else ' Don't worry about trying again on a PING, just timeout
    text3.Text = text3.Text + "ICMP Request Timeout" + Chr$(13) + Chr$(10)
    End If

    End If

    Next NbrOfPkts

    End Sub

    Sub vbWSAStartup()

    ' Subroutine to Initialize WSock32

    iReturn = WSAStartup(&H101, WSAdata)

    If iReturn <> 0 Then ' If WSock32 error, then tell me about it
    MsgBox "WSock32.dll is not responding!", vbOKOnly, "VB4032-ICMPEcho"
    End If

    If LoByte(WSAdata.wVersion) < WS_VERSION_MAJOR Or (LoByte(WSAdata.wVersion) = WS_VERSION_MAJOR And HiByte(WSAdata.wVersion) < WS_VERSION_MINOR) Then
    sHighByte = Trim$(Str$(HiByte(WSAdata.wVersion)))
    sLowByte = Trim$(Str$(LoByte(WSAdata.wVersion)))

    sMsg = "WinSock Version " & sLowByte & "." & sHighByte
    sMsg = sMsg & " is not supported "
    MsgBox sMsg, vbOKOnly, "VB4032-ICMPEcho"
    End
    End If

    If WSAdata.iMaxSockets < MIN_SOCKETS_REQD Then
    sMsg = "This application requires a minimum of "
    sMsg = sMsg & Trim$(Str$(MIN_SOCKETS_REQD)) & " supported sockets."
    MsgBox sMsg, vbOKOnly, "VB4032-ICMPEcho"
    End
    End If

    MaxSockets = WSAdata.iMaxSockets

    ' WSAdata.iMaxSockets is an unsigned short, so we have to convert it to a signed long

    If MaxSockets < 0 Then
    MaxSockets = 65536 + MaxSockets
    End If

    MaxUDP = WSAdata.iMaxUdpDg
    If MaxUDP < 0 Then
    MaxUDP = 65536 + MaxUDP
    End If

    ' Process the Winsock Description information

    Description = ""

    For i = 0 To WSADESCRIPTION_LEN
    If WSAdata.szDescription(i) = 0 Then Exit For
    Description = Description + Chr$(WSAdata.szDescription(i))
    Next i

    ' Process the Winsock Status information

    Status = ""

    For i = 0 To WSASYS_STATUS_LEN
    If WSAdata.szSystemStatus(i) = 0 Then Exit For
    Status = Status + Chr$(WSAdata.szSystemStatus(i))
    Next i

    End Sub
    Function HiByte(ByVal wParam As Integer)

    HiByte = wParam \ &H100 And &HFF&

    End Function
    Function LoByte(ByVal wParam As Integer)

    LoByte = wParam And &HFF&

    End Function
    Sub vbWSACleanup()

    ' Subroutine to perform WSACleanup

    iReturn = WSACleanup()

    If iReturn <> 0 Then ' If WSock32 error, then tell me about it.
    sMsg = "WSock32 Error - " & Trim$(Str$(iReturn)) & " occurred in Cleanup"
    MsgBox sMsg, vbOKOnly, "VB4032-ICMPEcho"
    End
    End If

    End Sub

    Sub vbIcmpCloseHandle()

    bReturn = IcmpCloseHandle(hIP)

    If bReturn = False Then
    MsgBox "ICMP Closed with Error", vbOKOnly, "VB4032-ICMPEcho"
    End If

    End Sub

    Sub vbIcmpCreateFile()

    hIP = IcmpCreateFile()

    If hIP = 0 Then
    MsgBox "Unable to Create File Handle", vbOKOnly, "VBPing32"
    End If

    End Sub
    Private Sub Command1_Click()

    vbWSAStartup ' Initialize Winsock

    If Len(Text1.Text) = 0 Then
    vbGetHostName
    End If

    If Text1.Text = "" Then
    MsgBox "No Hostname Specified!", vbOKOnly, "VB4032-ICMPEcho" ' Complain if No Host Name Identified
    vbWSACleanup
    Exit Sub
    End If

    vbGetHostByName ' Get the IPAddress for the Host

    vbIcmpCreateFile ' Get ICMP Handle

    ' The following determines the TTL of the ICMPEcho

    If IsNumeric(Text2.Text) Then
    If (Val(Text2.Text) > 255) Then Text2.Text = "255"
    If (Val(Text2.Text) < 2) Then Text2.Text = "2"
    Else
    Text2.Text = "255"
    End If

    pIPo.TTL = Trim$(Text2.Text)

    vbIcmpSendEcho ' Send the ICMP Echo Request

    vbIcmpCloseHandle ' Close the ICMP Handle

    vbWSACleanup ' Close Winsock

    End Sub

    Private Sub Command2_Click()

    text3.Text = ""

    End Sub

    Private Sub Command3_Click()

    text3.Text = ""

    vbWSAStartup ' Initialize Winsock

    If Len(Text1.Text) = 0 Then
    vbGetHostName
    End If

    If Text1.Text = "" Then
    MsgBox "No Hostname Specified!", vbOKOnly, "VB4032-ICMPEcho" ' Complain if No Host Name Identified
    vbWSACleanup
    Exit Sub
    End If

    vbGetHostByName ' Get the IPAddress for the Host

    vbIcmpCreateFile ' Get ICMP Handle

    ' The following determines the TTL of the ICMPEcho for TRACE function

    TraceRT = True

    text3.Text = text3.Text + "Tracing Route to " + Label3.Caption + ":" + Chr$(13) + Chr$(10) + Chr$(13) + Chr$(10)

    For TTL = 2 To 255

    pIPo.TTL = TTL

    vbIcmpSendEcho ' Send the ICMP Echo Request
    DoEvents

    If RespondingHost = Label3.Caption Then

    text3.Text = text3.Text + Chr$(13) + Chr$(10) + "Route Trace has Completed" + Chr$(13) + Chr$(10) + Chr$(13) + Chr$(10)

    Exit For ' Stop TraceRT

    End If

    Next TTL

    TraceRT = False

    vbIcmpCloseHandle ' Close the ICMP Handle

    vbWSACleanup ' Close Winsock

    End Sub

    Private Sub Form_Load()

    ' I have, on many occasions, found the need to be able to perform
    ' a Ping function from within Visual Basic. There are a few OCX
    ' Controls available on the market, however, they all require the
    ' ability for the WinSock stack to support SOCK_RAW.

    ' Microsoft does not support Raw Sockets on any of their WinSock1.1
    ' stacks. It also appears that it will not be supported on the
    ' Winsock2.0 stack for Windows95.
    В преференсе добавь Microsoft DAO 3.0 Object Library
    Если не понял пиши
    ' Raw Sockets, however, is supported on NT4.0.

    ' Microsoft, due to the lack of support of Raw Sockets, created the
    ' ICMP.DLL in order to perform basic ICMP functions such as PING and
    ' TRACERT.

    ' Well, I have finally figured out how to use the ICMP.DLL from Visual
    ' Basic. There are not additives and no preservatives.

    ' This program is provided as is, without any warranties. I am providing
    ' it freely. I designed it on Windows95, however, I am sure it will work
    ' on NT3.51. if you use portions of this code, please include some sort
    ' of reference to the author.

    ' This program was created by Jim Huff of Edinborg Productions.

    ' If you have any questions, you can reach me at:

    ' jimhuff@shentel.net
    ' edinborg@shentel.net

    CenterForm

    End Sub

    Вопрос:

    Как записывать в реестр DWORD параметр, и читать его.
    Напишите пожалуйста пример.

    Ответ:

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

    Тоже длинный ответ.
    За ответом можешь обратиться ко мне

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

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

    наверх

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


Выпуск 105.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

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

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

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

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

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

    Я на две недели уеду в Питер. Выпуски 106 и 107 этой рассылки уже введены и выйдут в срок. Правда, в них Вы не увидите раздела Вопрос/Ответ. А вот со следующими придётся подождать... Выпуски 108 и 109 выйдут 15 или 16 ноября. Дальше всё пойдёт по плану. Обновления на сайте запланированы, так что через день будут появляться новые статьи и примеры.
    Читайте!

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

    • MS Agent CD

    • Сколько цветов может отобразить видеокарта
    • Функции для работы с памятью компьютера
    • Примеры работы с BIOS
    • Установить новую дату и время на компьютере
    • Определение появления и изымания компакт-диска
    • Вызов окна "Свойство COM1" и "Настройка параллельного порта"

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

    Книги

    Переход на 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 можно найти     здесь.

    наверх

    MS Agent CD

    Я сильно извиняюсь за задержку с рассылкой компакт диска "MS Agent CD". Заказы на диск будут приниматься в течении недели (до 8 ноября). Затем диск будет разослан всем заказчкам.

    Шатрыкин Иван

    наверх

    Сколько цветов может отобразить видеокарта

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

    Данная опция зависит от настроек вашей видеокарты в панели управления - ЭКРАН - вкладка "Настройка" - "Цветовая палитра".

    Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long
    Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function GetDesktopWindow Lib "user32" () As Long
    Private Const PHYSICALOFFSETX = 112
    Private Const PHYSICALOFFSETY = 113
    Private Const PLANES = 14
    Private Const BITSPIXEL = 12

    Public Function GetNColors() As Long
    Dim hSrcDC As Integer
    hSrcDC = GetDC(GetDesktopWindow())
    GetNColors = GetDeviceCaps(hSrcDC, PLANES) * 2 ^ GetDeviceCaps(hSrcDC, BITSPIXEL)
    End Function

    Private Sub Command1_Click()
    MsgBox GetNColors
    End Sub

    наверх

    Функции для работы с памятью компьютера

    Честно говоря, размещая данный код на страницах сайта, я толком не смог связать данные, получаемые с помощью этих функций с реальными данными, предоставляемыми операционной системой Windows98. Но вдруг вам кое-что пригодится...

    Private Type MEMORYSTATUS
    dwLength As Long
    dwMemoryLoad As Long
    dwTotalPhys As Long
    dwAvailPhys As Long
    dwTotalPageFile As Long
    dwAvailPageFile As Long
    dwTotalVirtual As Long
    dwAvailVirtual As Long
    End Type
    Private pUdtMemStatus As MEMORYSTATUS
    Private Declare Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As MEMORYSTATUS)
    Public Function AvailablePhysicalMemory() As Double
    'Return Value in Megabytes
    Dim dblAns As Double
    GlobalMemoryStatus pUdtMemStatus
    dblAns = pUdtMemStatus.dwAvailPhys
    AvailablePhysicalMemory = BytesToMegabytes(dblAns)
    End Function
    Public Function TotalPhysicalMemory() As Double
    'Return Value in Megabytes
    Dim dblAns As Double
    GlobalMemoryStatus pUdtMemStatus
    dblAns = pUdtMemStatus.dwTotalPhys
    TotalPhysicalMemory = BytesToMegabytes(dblAns)
    End Function
    Public Function PercentMemoryFree() As Double
    PercentMemoryFree = Format(AvailableMemory / TotalMemory * 100, "0#")
    End Function
    Public Function AvailablePageFile() As Double
    'Return Value in Megabytes
    Dim dblAns As Double
    GlobalMemoryStatus pUdtMemStatus
    dblAns = pUdtMemStatus.dwAvailPageFile
    AvailablePageFile = BytesToMegabytes(dblAns)
    End Function
    Public Function PageFileSize() As Double
    'Return Value in Megabytes
    Dim dblAns As Double
    GlobalMemoryStatus pUdtMemStatus
    dblAns = pUdtMemStatus.dwTotalPageFile
    PageFileSize = BytesToMegabytes(dblAns)
    End Function
    Public Function AvailableMemory() As Double
    'Return Value in Megabytes
    AvailableMemory = AvailablePhysicalMemory + AvailablePageFile
    End Function
    Public Function TotalMemory() As Double
    'Return Value in Megabytes
    TotalMemory = PageFileSize + TotalPhysicalMemory
    End Function
    Private Function BytesToMegabytes(Bytes As Double) As Double
    Dim dblAns As Double
    dblAns = (Bytes / 1024) / 1024
    BytesToMegabytes = Format(dblAns, "###,###,##0.00")
    End Function

    Private Sub Command1_Click()
    Print AvailableMemory
    Print AvailablePageFile
    Print AvailablePhysicalMemory
    Print PageFileSize
    Print PercentMemoryFree
    Print TotalMemory
    Print TotalPhysicalMemory
    End Sub

    наверх

    Примеры работы с BIOS

    Данный пример покажет дату Bios'а

    ВАРИАНТ 1

    'ВАЖНОЕ ПРИМЕЧАНИЕ: Используйте данный код только в Windows 95/98
    'Использование кода в Windows 2000/NT приводит к краху приложения

    Private Declare Sub GetMem1 Lib "msvbvm50.dll" (ByVal MemAddress As Long, var As Byte)
    Private Function GetBIOSDate() As String
    Dim p As Byte, MemAddr As Long, sBios As String
    Dim i As Integer
    MemAddr = &HFFFF5
    For i = 0 To 7
    Call GetMem1(MemAddr + i, p)
    sBios = sBios & Chr$(p)
    Next i
    GetBIOSDate = sBios
    End Function
    Private Sub Command1_Click()
    MsgBox "Дата Bios'а: " & GetBIOSDate
    End Sub

    ВАРИАНТ 2

    Private Type BIOS_DATE
    s As String * 8
    End Type
    Private Declare Sub CopyMemory Lib "Kernel32" Alias "RtlMoveMemory" (pDest As Any, pSource As Any, ByVal ByteLen As Long)
    Public Function BIOS() As String
    Dim sDB As BIOS_DATE
    CopyMemory sDB, ByVal &HFFFF5, 8&
    BIOS = sDB.s
    End Function
    Private Sub Command1_Click()
    MsgBox BIOS
    End Sub

    наверх

    Установить новую дату и время на компьютере

    Данный пример установит новое время на компьютере. Для установления новой даты на компьютере, снимите комментарии в функции SetNewTime.

    Одна проблема: после выполнения кода, не происходит обновления времени в SystemTray. Если кто знает, как обновить время в SysTray, то напишите ведущему раздела.

    Private Type SystemTime
    wYear As Integer
    wMonth As Integer
    wDayOfWeek As Integer
    wDay As Integer
    wHour As Integer
    wMinute As Integer
    wSecond As Integer
    wMilliseconds As Integer
    End Type
    Private Declare Function SetLocalTime Lib "kernel32.dll" (lpSystemTime As SystemTime) As Long

    Public Sub SetNewTime(NewHour As Integer, NewMinute As Integer, NewSecond As Integer)
    Dim SetTime As SystemTime
    Dim RetVal As Long
    SetTime.wHour = NewHour
    SetTime.wMinute = NewMinute
    SetTime.wSecond = NewSecond
    SetTime.wMilliseconds = 0
    SetTime.wDay = Day(Date)
    'SetTime.wDay = 14
    SetTime.wMonth = Month(Date)
    'SetTime.wMonth = 3
    SetTime.wYear = Year(Date)
    'SetTime.wYear = 1997
    RetVal = SetLocalTime(SetTime)
    End Sub

    Private Sub Command1_Click()
    Call SetNewTime(13, 20, 50)
    End Sub

    наверх

    Определение появления и изымания компакт-диска

    Данный пример автоматически определит появление и изымание компакт-диска в приводе СД-РОМ. Проверка действия примера очень проста: запустите ваш VB Project на выполнение, затем отктройте дверцу СД-РОМа, вставьте диск, закройте СД-РОМ и смотрите на сообщение на вашей форме.

    В данном примере вам ОБЯЗАТЕЛЬНО потребуется модуль, а также расположите на форме элемент Label.

    'КОД МОДУЛЯ

    Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Public Const GWL_WNDPROC = (-4)
    Public Const WM_DEVICECHANGE = &H219
    Public glngPrevWndProc As Long
    Public Function MyWindowProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    If Msg = WM_DEVICECHANGE Then
    Select Case wParam
    ' Событие возникает при появлении нового диска в CD-ROM'е.
    Case &H8000&
    Call Form1.DeviceArrival
    ' Событие возникает при изъятии диска из CD-ROM'а
    Case &H8004&
    Call Form1.DeviceRemoveComplete
    End Select
    MyWindowProc = 0
    Exit Function
    End If
    ' остальные сообщения передаются для обработки стандартной процедуре окна
    MyWindowProc = CallWindowProc(glngPrevWndProc, hwnd, Msg, wParam, lParam)
    End Function

    'КОД ФОРМЫ

    'Как определить когда появляется и изымается компакт-диск из устройства CD-ROM?

    Private Sub Form_Load()
    ' Перенаправление сообщений Windows от формы к собственной
    ' процедуре обработки сообщений Module1.MyWindowProc
    glngPrevWndProc = GetWindowLong(hwnd, GWL_WNDPROC)
    SetWindowLong hwnd, GWL_WNDPROC, AddressOf MyWindowProc
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    ' Возвращение управления форме
    SetWindowLong hwnd, GWL_WNDPROC, glngPrevWndProc
    End Sub

    Sub DeviceArrival()
    ' Здесь вы можете поместить код, который будет выполнятся при
    ' появление компакт-диска в устройстве CD-ROM
    Label1.Caption = "Появилось устройство"
    End Sub

    Sub DeviceRemoveComplete()
    ' Здесь вы можете поместить код, который будет выполнятся при
    ' удалении компакт-диска из устройства CD-ROM
    Label2.Caption = "Устройство исчезло"
    End Sub

    'Пример с сайта www.sources.ru

    наверх

    Вызов окна "Свойство COM1" и "Настройка параллельного порта"

    Private Declare Function ConfigurePort Lib "winspool.drv" Alias "ConfigurePortA" (ByVal pName As String, ByVal hwnd As Long, ByVal pPortName As String) As Long
    Private Sub Command1_Click()
    'MsgBox ConfigurePort("", Me.hwnd, "COM1:")
    'MsgBox ConfigurePort("", Me.hwnd, "LPT1:")
    Call ConfigurePort("", Me.hwnd, "COM1:")
    Call ConfigurePort("", Me.hwnd, "LPT1:")
    End Sub

    наверх

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

    BalloonMessage for MS Agent

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

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

    наверх

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

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

    Вопросы:

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

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

    Подскажите как работать с FTP - сервером; тоесть вводить адресс, имя, пароль.

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

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

    Имеется 2 звуковых файла... каждый из них представляет примерно такую стуктуру 1011100111 (1-сигнал, 0-пустота)...частота сигналов может быть разной, а вот пробелы между сигналами (0) всегда одинаковы. Требуется средствами VB сравнить эти два файла, причем сравнивать по пробелам между сигналами.
    P.S. Побайтовое сравнение не пойдет... т.к. частота сигналов разная, вся загвоздка во времени этих сигналов...
    Если у кого какие есть идеи (любые), шлите на мыло

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

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

    Подскажите где взять Function и Sub у WinInet ?
    Все кто хоть немного знает что-то шлите на email.

    Автор вопроса: Гернович Валентин

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

    Работаю во всякого рода рекламных и публицистических газетах очень давно, собралось кучу разных скриптов и програмулек целая гора, пишу свои скрипты, базы данных и программы....
    И вот в один прекрасный день задумал написать большую программу "идеальная газета", в которой есть все: верстка и учет рекламы, верстка и учет текстов, планирование верстки текстовых полос, сбор информации с новосных сайтов, кроссворды и сканворды, верстка тв программы, и т.д.
    Предполагаю все это сделать: хранение данных в ACCESS или MsSQL, оболочка в VB. Модули для Corel, InDesign, PageMaker, PhotoShop, Ventura 1:C Бухгалтерия, и т.д.
    Программа бесплатной не будет. Собираю команду. Все кто в ее войдет будут иметь право ее распространять.
    Если увас возникли какие либо мысли по этому поводу пишите.
    Пишите мне на адрес rdw@rdw.by

    Автор вопроса: Islentyev Dmitri

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

    В который раз вопрошаю как сделать DLL на VB так, чтобы С++ программы могли использовать функции DLL

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

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

    Как сделать распечатку на принтр из txt файла?

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

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

    1. Как прочитать название CD-привода, т.е. если зайти в "свойства системы" на закладку "Устройства" и открыть ноду "Устройства чтения компакт-дисков" - то там сразу видно название устройста (ASUS CDS360 ..., Teac ... и т. д.). А вот как енто програмно прочитать ??????

    2. Народ, дайте ПРЯМУЮ ссылку на программу Fusion (прога внедрения ядра в ЕХЕ-шник), а то я пытался найти через поисковики и там столько мусора попадалось ... так и не откопал нормальную.

    Автор вопроса: Dr.Max

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

    Есть код

    Dim vData As Variant
    vData = Me.Inet1.OpenURL("http://vbstreets.ru/bookstore/20.gif",
    icByteArray)' подклучаем библиотеку Internet Transfer control
    Open "C:\pic.gif" For Output As #1
    Print #1, , vData
    Close #1

    Но ,как вы уже поняли,он не работает.точнее работает ,но "недорабатывает". Код должен сохранить рисунок ,он его сохраняет ,но рисунка -то нет! Тоже самое при попытке сохранить веб страницу . т. е. файл есть ,но пустой! Придательский красный крестик и всё!!! Мне кажется ,что проблема не в открытии файла,а в его сохранении.
    Помогите!!!!!!!!!!

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

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

    1. Как с помощью WinSock пересылать файлы между клиентом и сервером...
    2. Как сфотографировать экран клиента и отравить на сервер в PictureBox...
    ЖЕЛАТЕЛЬНО С ПРИМЕРАМИ!!!

    Автор вопроса: Eugene KRUGLOFF

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

    Вопрос по VBA (WORD).
    Нужна функция окна диалога для открытия папки (не файла!).
    Внимание! API функция - не работает, на то есть причины.

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

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

    Возможно ли средствами VB докачивать какой-либо файл, т.е. качаем...связь обрывается...перезваниваем...докачиваем...
    Если можно, напишите как!

    Автор вопроса: Александр

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

    На Вашем сайте нашел интересные советы по ВБ.
    Не будете ли Вы так любезны ответить новичку еще на несколько вопросов.Не очень сложно , чтобы я понял.
    1.Могу ли я из своего ВБ 6 открыть какой-либо документ из моего компьютора или более конкретно - окно для связи с Интернетом и нажать кнопку подключения и тд
    .2.Из ВБ 6 можно говорят заблокировать любое окно виндоус. А если кто-то заблокировал окно / к примеру настройку часов в компьютере и тп / , можно ли взломать этот запрет , ведь его коды мне не видны.и я не знаю даже с помощью какой программы и языка это заблокировано
    3.Я нашел маленькую програмку для ВБ, которая позволяет увидеть данные за звездочками .Я ее коды скопировал, заустил ,запаролил данные в текстовом окне своей ВБ-формы и действительно звездочки открываются. Но вот что я не понял: ведь она работает когда пароль размещен на моей ВБ-форме, А как же быть если скрытые данные расположены в другом месте
    4.У меня на вэб-странице есть ВБ 6-форма с окном Text, в который можно вписывать текст / типа гостевой книги/ .Можно ли с помощью кода в моей ВБ-форме сделать чтобы этот текст добавлялся в мою форму на сервере, чтобы при новом открытии страницы этот текст сохранялся
    5.Я вставляю в пикче-бокс флэш-анимацию, а она в нем не движется

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

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

    Чтотакое ping (пинг) и что яначит запинговать?

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

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

    как проверить готовность сетевого устройства (например\\Mat1\c\OSTAT,...) и если оно готово,то скопироватьтуда несколько файлов.
    Мой ПК в группе nod4, ПК польяователей в группе mat. например, в \\Mat1\c\OSTAT,\\Mat2\c\OSTAT,\\Mat3\c\OSTAT,...,\\Mat13\c\OSTAT.

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

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

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

    Printer.PaintPicture Image1, xx + 125, yy + 125, -125, -125

    Что я делаю не так?

    Ответы:

    Вопрос:

    У меня вот какой вопрос - пишу:

    Private Sub Command1_Click()

    a = a + 1
    If Text2.Text = "" Then
    Winsock1.RemoteHost = "ip адрес сервера" + ad
    Winsock1.RemotePort = Text1.Text
    Winsock1.Connect
    Winsock2.RemotePort = Text1.Text
    Winsock2.RemoteHost = "ip адрес сервера" + ad
    Winsock2.Connect
    Winsock1.SendData Text3.Text
    Winsock2.SendData Text2.Text
    Winsock1.SendData "START"
    Winsock1.SendData Text3.Text
    If LISMCOM.Text1.Text <> "OK" Then MsgBox "NO!"
    Else
    Winsock1.RemotePort = Text1.Text
    Winsock1.RemoteHost = Text2.Text
    Winsock1.Connect
    Winsock2.RemotePort = 1002
    Winsock2.RemoteHost = Text2.Text
    Winsock2.Connect
    End If
    End Sub

    Запускаю... На Winsock1.SendData Text3.Text пишет ошибку №40006: "Wrong protocol or connection state" и т.д. Может кто подскажет, что мне делать?

    Ответ:

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

    Скорее всего у тебя сокет просто не успевет посылать данные. Я не пробовал запускать твой код, но то, что у тебя подряд два сенда, это неправильно. Есть событие SendComplete, которое позволяет убедиться в том, что данные отосланы

    Вопрос:

    Как измерять скорость кода программы?????????
    Чего-то сшал про такую апи - функцию.

    Ответ:

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

    Как ни странно - временем выполнения этого самого кода! :)
    Можешь использовать встроенный в ВБ Timer. Ну а если ОЧЕНЬ хочется использовать АПИ, то пользуй:

    Declare Function timeGetTime Lib "winmm.dll" () As Long

    Вопрос:

    Есть текстовый файл ,10 столбцов на 10 сток ,еще есть массив ,тоже 10х10 ,а теперь вопрос: как загнать файл в массив ?

    Ответ:

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

    Если я тебя правильно понял то тебе нужно зделать так:

    Dim ArrFileStr() As String
    Dim f$
    Dim r&

    f$ = FreeFile
    ReDim ArrFileStr(0)

    Open FileName For Input As #f
    While Not EOF(f)
    r = UBound(ArrFileStr)
    Input #f, ArrFileStr(r)
    ReDim Preserve ArrFileStr(r + 1)
    Wend
    Close

    Вот собственно и всё, теперь файл FileName у тебя забит в массив ArrFileStr

    Вопрос:

    Есть текстовый файл ,10 столбцов на 10 сток ,еще есть массив ,тоже 10х10 ,а теперь вопрос: как загнать файл в массив ?

    Ответ:

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

    Очень просто это сделать (для примера - исходники с метками(label))
    Разместив на форме одну метку, выбрав в меню копировать, вставляешь в эту же форму. VB предлагает сделать массив - ОК!
    Расставив метки в соответствующем порядке нужно проверить, что метки располагаются по порядку (т. е. по порядку индексов)

    Private Sub Command1_Click()
    Dim mas(9, 9) As Integer
    Dim j, i As Byte
    For i = 0 To 9
    For j = 0 To 9
    mas(i, j) = Int(Rnd * 100) 'присваиваем массиву случайные значения (если записать mas(i,j)=i*10+j, то метки примут значения, соответствующие их индексам)
    Label1(i * 10 + j).Caption = mas(i, j)
    Next j, i
    End Sub

    Если тебе интересны исходники динамического массива, пиши: phis@bee-s.com

    Вопрос:

    1. Для просмотра HTML странички к програме прицепил объект WebBrowser. Задаю свойству Navigate полный путь и имя файла. Открывает все нормально. В документе есть ссылки внитри текста. При нажатии на любую из них ругается, что немогу открыть страницу и т.д. (будто ее не существует). Хотя какое-то время назад (как только я начинал делать свою програму) все работало нормально. Что делать.

    2. Записываю в фаил строку текста. В нем есть запятые, точки, все как положено. При чтении из фала VB почемуто воспринимает знаки препинания как разделители записей, и , соответственно, они пропадают. Выручайте, мож кто знает. Записываю в фаил по OUTPUT, читаю INPUT.

    Ответ:

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

    записывай
    Line Input
    Line Output

    Вопрос:

    1. Для просмотра HTML странички к програме прицепил объект WebBrowser. Задаю свойству Navigate полный путь и имя файла. Открывает все нормально. В документе есть ссылки внитри текста. При нажатии на любую из них ругается, что немогу открыть страницу и т.д. (будто ее не существует). Хотя какое-то время назад (как только я начинал делать свою програму) все работало нормально. Что делать.

    2. Записываю в фаил строку текста. В нем есть запятые, точки, все как положено. При чтении из фала VB почемуто воспринимает знаки препинания как разделители записей, и , соответственно, они пропадают. Выручайте, мож кто знает. Записываю в фаил по OUTPUT, читаю INPUT.

    Ответ:

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

    1.Хм. Тяжёлый случай. Если контрол через некоторе время стал так работать, то ты, наверное, случайно изменил какое-то свойство контрола. Удали WebBrowser и поставь туда точно такой же.

    2.Тоже тяжёлый случай. Очевидно, для чтения ты используешь оператор

    Input #1, strText

    Этот оператор может неправильно считывать информацию из файла (Например, концом строки считать символ табуляции или ещё какой-нибудь - это можно уточнить в MSDN). Лично я использую

    While Not eof(1)
    Line Input #1, strText
    strAll=strAll & strText & vbCrLf
    wend
    strAll=left(strAll, Len(strAll)-2)

    Вопрос:

    Увидел в форуме, что столкнулся с аналогичной проблемой, решил спросить, не выяснил как перебросить таблицу из ворда в эксель?

    Ответ:

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

    Ничего сложного - используй OLE. Можно попробовать скопировать таблицу в Экселе и вставить в Ворд (таким способом таблица может вставиться не как объект Экселя, а как обычная Вордовская таблица

    Вопрос:

    У меня такой вопрос, я делаю прогу типа проводника, как сделать так чтобы ия List можно было выбрать файл и открыть его.
    Т.е как ссылаться на объекты ия Васика(ВБ).

    Ответ:

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

    Если я рправильно понял проблему, тебе надо заполнить ListBox названиями файла. Нет ничего проще - используй FileListBox.

    Вопрос:

    народ не поможетели в такой ситуации :нужна функция которой я даю строку текста и символ (букву,цифру либо спец символ), а она мне возращает слово в котором есть этот знак (не его номер), да и ещё слово может состоять не только из букв, а и из смеси букв, цифр и заков.

    Ответ:

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

    Используй функцию InStr и InStrRev

    Вопрос:

    (VB.net) Вопрос такой, мне нужно чтобы программа заменяла в файлах некоторые байты на другие, то есть символы, слова и т.д., не меняя размер файла! к примеру как делают программы закачек, они создают пустые файлы, а потом набивают пустышки на нужные данные, вот и я бы такое сделать хотел, кто поможет советом как это сделать?

    Ответ:

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

    Открывать файл надо в двоичном (Binary) режиме. Потом заполнить нулями, а в процесе закачки заменять нули нужными данными

    Вопрос:

    Как использовать в Basic функцию Rnd для любых символов(букв.цифр)
    Напешите код. Если кто знает.

    Ответ:

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

    strSymbol=chr(1+int(rnd*255))

    Вопрос:

    Люди хелп плиз, проблема вобщем то такая. Написал кое какую прогу, все работало нормально, Вставил в нее код созданный макросам в Excele? теперь при сохранении данных в таблице все идет как надо. При попытке ее открыть после сохранения Excel не запускается, и причем сам Excel висит в меню завершения программ вызываемых Ctrl+Alt+Del. На закрытие Excelя использую такой код

    " wBook.SaveAs файл' где файл переменная.
    wBook.Close
    Set wBook = Nothing
    ' если Excel запускали мы, то надо бы его закрыть
    If StartedNew Then
    exapp.Quit
    End If
    Set exapp = Nothing

    Убираю код написаный макросом все опять нормально работает. В чем проблема?

    Ответ:

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

    Мне кажется, нужно убрать последнюю строку

    Вопрос:

    нужно сделать чтобы прога определяла имя своего файла и место нахождения
    app.exeName - че то не работае

    Ответ:

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

    Несколько дней назад зад отвечал на подобный вопрос
    App.exename возвращает только имя файла без пути.
    App.Path возвращает путь к файлу (без последнего слэша)

    Вопрос:

    Подскажите ссылки где можно найти документацию и исходняки для 3D програмирования DirectX. Если нетрудно киньте на E-Mail исходняки, можно урезая файлы .3ds .x и т.д. Мне нужно именно 3D, а не плоская графика.

    Ответ:

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

    Первая ссылка - www.msdn.microsoft.com
    Вторая - диски MSDN

    Вопрос:

    Вопрос 1: Как сделать так,чтобы программу невозможно было выгрузить, а если её выгрузить, то запускалась бы копия программы.
    Вопрос 2: У меня есть программа. Как сделать так, чтобы она брала данные из внешнего файла (например .txt) и загружала их оттуда (В этом файле должны находиться переменные вместе с данными)

    Ответ:

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

    2. Пример чтения system.ini
    Private Sub Form_Load()
    ff = FreeFile
    Open "C:\win\system.ini" For Input As #ff
    Do While Not EOF(ff)
    Line Input #ff, buffer
    Text1.Text = Text1.Text & vbCrLf & buffer
    Loop
    End Sub

    Вопрос:

    Хелп плиз, как зделать так, чтоб моя программа повторно не запускалась а при попытке повторного запуска выдала сообщение типа "программа уже запущена"

    Ответ:

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

    Private Sub Form_Load()
    If App.PrevInstance Then
    MsgBox "Уже запущено"
    End
    End Sub

    Вопрос:

    Как мне по имеющемуся пути осуществить перебор всех файлов, находящихся в данной конкретной папке (исключая подпапки).
    Есть ли такая вояможность в VB6 или какими функциями API необходимо польяоваться?

    Ответ:

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

    Кидаешь на форму FileListBox, задаешь ему папку, требуемое расширение и прочие параметры, потом перебираешь все это в цикле For n=0 to File1.ListCount-1...Next

    Вопрос:

    Каким образом можно из VB получать и обрабатывать системные события Windows ! Например, читать клавиатуру.

    Ответ:

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

    Зайти на сайт dansoft.narod.ru в разделе библеотеки скачай файл DanLib.dll бросай в system'у пиши regsvr32 danlib.dll

    Он может перехватавать нажатие мыши и клавиатуры причем на глобальном уровне и без счетчика.

    использование:

    Сначало внеси в ссылки (у меня русский VB6) это библиотеку.

    добавь Label1 на Form

    Пиши это в Form

    Dim WithEvents Sh As cSystemHook

    Private Sub Form_Load()
    Set Sh = New cSystemHook
    Sh.SetHook
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    Set Sh = Nothing
    End Sub

    Private Sub Sh_KeyDown(KeyCode As Integer, Shift As Integer)
    Label1.Caption = KeyCode
    ' Если ты добавишь ниже keycode=49, то какую бы кнопку юзер не нажал будет нажиматься цифра "1"
    End Sub

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

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

    наверх

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


Выпуск 106.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Покупали ли Вы 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!!!

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

    Опять новый выпуск. Читайте новости.
    Читайте!

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

    • Citycat by Email

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

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

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

    Книги

    Переход на 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

    Дата: 01.11.2002 08:26 | Раздел: ActiveX контролы | Автор: CyRax

    Хелпемейкер - Помогает создавать файлы помощи.

    Дата: 30.10.2002 08:28 | Раздел: Примеры кода | Автор: Petrenko Andrey

    List Excel - Этот пример показует как данные из яйчеек Excel'я расположить в ListBox'е или ComboBox'е и вывести данные на Label.

    Дата: 30.10.2002 08:24 | Раздел: ActiveX контролы | Автор: Markus Franz Xaver Johannes Oberhumer

    upx - Программа для сжатия исполняемых файлов.

    Дата: 29.10.2002 05:08 | Раздел: Примеры кода | Автор: Zeus

    About Box - Вам не надоедает постоянно создавать About`ы для своих программ? Посмотрите этот пример! Всё уже готово! Да к тому же ещё и показывает системные ресурсы...

    Дата: 26.10.2002 06:40 | Раздел: Примеры кода | Автор: Vovk Sergey

    ListMenu - Показывает, как превратить обычное меню в неограниченный список.

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

    03:24 / 1 ноя. Указатель на функцию | Хитов: 3 | Ответов: 1
    03:07 / 1 ноя. Как заблокировать стандартное контекстное меню ... | Хитов: 4 | Ответов: 1
    01:01 / 1 ноя. ActiveX component??? не получается... | Хитов: 6 | Ответов: 0
    00:20 / 1 ноя. HELP!!! Vb -> Outlook NewMail Event | Хитов: 4 | Ответов: 1
    22:09 / 31 окт. Релизы для проектов VB7... | Хитов: 2 | Ответов: 0
    16:42 / 31 окт. Excel....переход на другой лист. | Хитов: 10 | Ответов: 1
    16:12 / 31 окт. Удаление папки | Хитов: 27 | Ответов: 6
    15:41 / 31 окт. Загрузка программы | Хитов: 21 | Ответов: 1
    15:11 / 31 окт. MSysObjects как его "достать" | Хитов: 9 | Ответов: 1
    14:00 / 31 окт. Как создать консольное приложение на VB? | Хитов: 13 | Ответов: 0
    13:28 / 31 окт. Предлагаю сотрудничество | Хитов: 18 | Ответов: 1
    09:53 / 31 окт. Считаю достойно новой темы... | Хитов: 80 | Ответов: 18
    09:22 / 31 окт. Новая прога | Хитов: 55 | Ответов: 6
    08:38 / 31 окт. Кто-нибудь пользуется XpressQuantumGrid? | Хитов: 31 | Ответов: 5
    08:15 / 31 окт. Пара предложений по этому форуму... | Хитов: 33 | Ответов: 5
    22:37 / 30 окт. Админам | Хитов: 18 | Ответов: 1
    22:10 / 30 окт. Новое сообщение без темы | Хитов: 14 | Ответов: 1
    21:19 / 30 окт. Передача массива из Function | Хитов: 8 | Ответов: 0
    19:19 / 30 окт. Где взять класс для работы с FTP? | Хитов: 13 | Ответов: 1
    19:13 / 30 окт. На счёт API FindFileFirst... | Хитов: 13 | Ответов: 1

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

    наверх

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

    наверх

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

    наверх

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

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

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

    наверх

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

    BalloonMessage for MS Agent

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

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

    наверх
    Вопрос/Ответ

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

    Вопросы:

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

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

    Пишу:

    private sub fff (optional option1 as byte)

    Print IsMissing(option1)
    end sub

    Не работает всегда говорит False
    а если пишу

    private sub fff (optional option1)

    Print IsMissing(option1)
    end sub

    Все работает правельно !
    Кто янает почему ???

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

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

    Как с помошью VB яанести на сайт какую либо страницу.
    Как яакачать с сайта кукую либо страницу
    Пароль и логин иявесен !

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

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

    Я пишу

    public sub aaaa(frm as form)
    ....
    ....
    end sub

    на первой строке выскакивает ошибка !
    если я приминяю Private все работает нормально.
    Вопрос: Как передать Form при Public. ?

    Автор вопроса: Андрей Щёкин [darXeth]

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

    Не подскажет ли кто-нибудь, где найти документацию по использованию Raw Sockets в VB ? Или хотя бы в какой dll эти функции находятся.

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

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

    У меня есть ияображение типа Image (imgMan) и масив этих ияображений (imgWall). Как сделать так, чтобы это одиночное ияображение не могло наехать (наложится) ни на какой ия элементов этого масива. Если можно пример кода.

    Ответы:

    Вопрос:

    Можно ли и как,если можно выводить информацию, например в Textbox,которая поступает на Dos-овскую консоль?

    Ответ:

    Автор ответа: Администратор

    Да, можно !!!
    Используй библиотеку DanLib версии выше 1.2.0 ( шесть месяцев искал)
    Он находится на сайте dansoft.narod.ru в разлеле библиотеки работает под 9x/NT.
    Она может создать консоль ввести и вывести текст
    Если, что пиши пришлю пример использования.

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

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

    наверх

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


Выпуск 107.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

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

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

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

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

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

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

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

    • Получить количество заданий принтера
    • Получить список доступных портов
    • Вызвать окно "Форматирование: Диск А:"
    • Формирование из числа его "строковое" представление
    • Как показать песочные часы во время работы программы
    • Перекодировка текста из DOS в Windows формат

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

    Книги

    Переход на 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 можно найти     здесь.

    наверх

    Получить количество заданий принтера

    Вам понадобится дополнительный модуль.

    'КОД ФОРМЫ

    Private Sub Command1_Click()
    MsgBox "Количество запущенных заданий: " & GetPrinterQueue(Printer.DeviceName)
    End Sub

    'КОД МОДУЛЯ

    Option Explicit
    Public Const CCHDEVICENAME = 32
    Public Const CCHFORMNAME = 32
    Public Const PRINTER_ACCESS_ADMINISTER = &H4
    Public Const PRINTER_ACCESS_USE = &H8
    Public Type DEVMODE
    dmDeviceName As String * CCHDEVICENAME
    dmSpecVersion As Integer
    dmDriverVersion As Integer
    dmSize As Integer
    dmDriverExtra As Integer
    dmFields As Long
    dmOrientation As Integer
    dmPaperSize As Integer
    dmPaperLength As Integer
    dmPaperWidth As Integer
    dmScale As Integer
    dmCopies As Integer
    dmDefaultSource As Integer
    dmPrintQuality As Integer
    dmColor As Integer
    dmDuplex As Integer
    dmYResolution As Integer
    dmTTOption As Integer
    dmCollate As Integer
    dmFormName As String * CCHFORMNAME
    dmUnusedPadding As Integer
    dmBitsPerPel As Long
    dmPelsWidth As Long
    dmPelsHeight As Long
    dmDisplayFlags As Long
    dmDisplayFrequency As Long
    End Type
    Public Type PRINTER_DEFAULTS
    pDatatype As String
    pDevMode As DEVMODE
    DesiredAccess As Long
    End Type
    Public Type SYSTEMTIME
    wYear As Integer
    wMonth As Integer
    wDayOfWeek As Integer
    wDay As Integer
    wHour As Integer
    wMinute As Integer
    wSecond As Integer
    wMilliseconds As Integer
    End Type
    Public Type JOB_INFO_1_API
    JobId As Long
    pPrinterName As Long
    pMachineName As Long
    pUserName As Long
    pDocument As Long
    pDatatype As Long
    pStatus As Long
    Status As Long
    Priority As Long
    Position As Long
    TotalPages As Long
    PagesPrinted As Long
    Submitted As SYSTEMTIME
    End Type
    Public Type JOB_INFO_1
    JobId As Long
    pPrinterName As String
    pMachineName As String
    pUserName As String
    pDocument As String
    pDatatype As String
    pStatus As String
    Status As Long
    Priority As Long
    Position As Long
    TotalPages As Long
    PagesPrinted As Long
    Submitted As SYSTEMTIME
    End Type
    Public Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" (ByVal pPrinterName As String, phPrinter As Long, pDefault As PRINTER_DEFAULTS) As Long
    Public Declare Function EnumJobs Lib "winspool.drv" Alias "EnumJobsA" (ByVal HPrinter As Long, ByVal FirstJob As Long, ByVal NoJobs As Long, ByVal Level As Long, ByVal pJob As Long, ByVal cdBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long
    Private Declare Sub CopyMem Lib "kernel32.dll" Alias "RtlMoveMemory" (pTo As Any, uFrom As Any, ByVal lSize As Long)
    Public Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As Long) As Long
    Private Declare Function lstrlenW Lib "kernel32.dll" (ByVal lpString As Long) As Long
    Private Declare Function HeapAlloc Lib "kernel32.dll" (ByVal hHeap As Long, ByVal dwFlags As Long, ByVal dwBytes As Long) As Long
    Private Declare Function GetProcessHeap Lib "kernel32.dll" () As Long
    Private Declare Function HeapFree Lib "kernel32.dll" (ByVal hHeap As Long, ByVal dwFlags As Long, lpMem As Any) As Long
    Public JobsDesc(0 To 127) As JOB_INFO_1

    Public Function TrimStr(strName As String) As String
    'Finds a null then trims the string
    Dim x As Integer
    x = InStr(strName, vbNullChar)
    If x > 0 Then TrimStr = Left(strName, x - 1) Else TrimStr = strName
    End Function

    Function LPSTRtoSTRING(ByVal lngPointer As Long) As String
    Dim lngLength As Long
    'Get number of characters in string
    lngLength = lstrlenW(lngPointer) * 2
    'Initialize string so we have something to copy the string into
    LPSTRtoSTRING = String(lngLength, 0)
    'Copy the string
    CopyMem ByVal StrPtr(LPSTRtoSTRING), ByVal lngPointer, lngLength
    'Convert to Unicode
    LPSTRtoSTRING = TrimStr(StrConv(LPSTRtoSTRING, vbUnicode))
    End Function

    'Get the number of Jobs in the specified Printer Queue (max 128)... the PrinterName can be a network path: "\\MYSERVER\MYPRINTER"
    Function GetPrinterQueue(PrinterName As String) As Long
    Dim PrinterStruct As PRINTER_DEFAULTS
    Dim HPrinter As Long
    Dim ret As Boolean
    Dim Jobs(0 To 127) As JOB_INFO_1_API
    Dim pcbNeeded As Long
    Dim pcReturned As Long
    Dim i As Integer
    Dim TempBuff As Long
    'Initialize the Printer structure
    PrinterStruct.pDatatype = vbNullString
    PrinterStruct.pDevMode.dmSize = Len(PrinterStruct.pDevMode)
    PrinterStruct.DesiredAccess = PRINTER_ACCESS_USE
    'Get the printer Handle
    ret = OpenPrinter(PrinterName, HPrinter, PrinterStruct)
    'Get the Printer active jobs
    ret = EnumJobs(HPrinter, 0, 127, 1, TempBuff, 0, pcbNeeded, pcReturned)
    If pcbNeeded = 0 Then
    GetPrinterQueue = 0
    Else
    'Allocate the Buffer
    TempBuff = HeapAlloc(GetProcessHeap(), 0, pcbNeeded)
    ret = EnumJobs(HPrinter, 0, 127, 1, TempBuff, pcbNeeded, pcbNeeded, pcReturned)
    CopyMem Jobs(0), ByVal TempBuff, pcbNeeded
    For i = 0 To pcReturned - 1
    JobsDesc(i).pPrinterName = LPSTRtoSTRING(Jobs(i).pPrinterName)
    JobsDesc(i).pMachineName = LPSTRtoSTRING(Jobs(i).pMachineName)
    JobsDesc(i).pUserName = LPSTRtoSTRING(Jobs(i).pUserName)
    JobsDesc(i).pDocument = LPSTRtoSTRING(Jobs(i).pDocument)
    JobsDesc(i).pDatatype = LPSTRtoSTRING(Jobs(i).pDatatype)
    JobsDesc(i).pStatus = LPSTRtoSTRING(Jobs(i).pStatus)
    JobsDesc(i).JobId = Jobs(i).JobId
    JobsDesc(i).Status = Jobs(i).Status
    JobsDesc(i).Priority = Jobs(i).Priority
    JobsDesc(i).Position = Jobs(i).Position
    JobsDesc(i).TotalPages = Jobs(i).TotalPages
    JobsDesc(i).PagesPrinted = Jobs(i).PagesPrinted
    JobsDesc(i).Submitted = Jobs(i).Submitted
    Next
    If TempBuff Then HeapFree GetProcessHeap(), 0, TempBuff
    GetPrinterQueue = pcReturned
    End If
    ret = CloseHandle(HPrinter)
    End Function

    наверх

    Получить список доступных портов

    Вам понадобится дополнительный модуль.

    'КОД ФОРМЫ

    Private Sub Command1_Click()
    Dim NumPorts As Long
    Dim i As Integer
    NumPorts = GetAvailablePorts("")
    List1.Clear
    For i = 0 To NumPorts - 1
    List1.AddItem Ports(i).pPortName
    Next
    End Sub

    'КОД МОДУЛЯ

    Option Explicit
    Private Declare Function EnumPorts Lib "winspool.drv" Alias "EnumPortsA" (ByVal pName As String, ByVal Level As Long, ByVal lpbPorts As Long, ByVal cbBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long
    Private Declare Function lstrlenW Lib "kernel32.dll" (ByVal lpString As Long) As Long
    Private Declare Sub CopyMem Lib "kernel32.dll" Alias "RtlMoveMemory" (pTo As Any, uFrom As Any, ByVal lSize As Long)
    Private Declare Function HeapAlloc Lib "kernel32.dll" (ByVal hHeap As Long, ByVal dwFlags As Long, ByVal dwBytes As Long) As Long
    Private Declare Function GetProcessHeap Lib "kernel32.dll" () As Long
    Private Declare Function HeapFree Lib "kernel32.dll" (ByVal hHeap As Long, ByVal dwFlags As Long, lpMem As Any) As Long

    Private Type PORT_INFO_2
    pPortName As String
    pMonitorName As String
    pDescription As String
    fPortType As Long
    Reserved As Long
    End Type
    Private Type API_PORT_INFO_2
    pPortName As Long
    pMonitorName As Long
    pDescription As Long
    fPortType As Long
    Reserved As Long
    End Type
    Public Ports(0 To 100) As PORT_INFO_2

    Public Function TrimStr(strName As String) As String
    Dim x As Integer
    x = InStr(strName, vbNullChar)
    If x > 0 Then TrimStr = Left(strName, x - 1) Else TrimStr = strName
    End Function

    Public Function LPSTRtoSTRING(ByVal lngPointer As Long) As String
    Dim lngLength As Long
    'Get number of characters in string
    lngLength = lstrlenW(lngPointer) * 2
    'Initialize string so we have something to copy the string into
    LPSTRtoSTRING = String(lngLength, 0)
    'Copy the string
    CopyMem ByVal StrPtr(LPSTRtoSTRING), ByVal lngPointer, lngLength
    'Convert to Unicode
    LPSTRtoSTRING = TrimStr(StrConv(LPSTRtoSTRING, vbUnicode))
    End Function

    'Use ServerName to specify the name of a Remote Workstation i.e. "//WIN95WKST"
    'or leave it blank "" to get the ports of the local Machine
    Public Function GetAvailablePorts(ServerName As String) As Long
    Dim ret As Long
    Dim PortsStruct(0 To 100) As API_PORT_INFO_2
    Dim pcbNeeded As Long
    Dim pcReturned As Long
    Dim TempBuff As Long
    Dim i As Integer
    'Get the amount of bytes needed to contain the data returned by the API call
    ret = EnumPorts(ServerName, 2, TempBuff, 0, pcbNeeded, pcReturned)
    'Allocate the Buffer
    TempBuff = HeapAlloc(GetProcessHeap(), 0, pcbNeeded)
    ret = EnumPorts(ServerName, 2, TempBuff, pcbNeeded, pcbNeeded, pcReturned)
    If ret Then
    'Convert the returned String Pointer Values to VB String Type
    CopyMem PortsStruct(0), ByVal TempBuff, pcbNeeded
    For i = 0 To pcReturned - 1
    Ports(i).pDescription = LPSTRtoSTRING(PortsStruct(i).pDescription)
    Ports(i).pPortName = LPSTRtoSTRING(PortsStruct(i).pPortName)
    Ports(i).pMonitorName = LPSTRtoSTRING(PortsStruct(i).pMonitorName)
    Ports(i).fPortType = PortsStruct(i).fPortType
    Next
    End If
    GetAvailablePorts = pcReturned
    'Free the Heap Space allocated for the Buffer
    If TempBuff Then HeapFree GetProcessHeap(), 0, TempBuff
    End Function

    наверх

    Вызвать окно "Форматирование: Диск А:"

    Private Declare Function SHFormatDrive Lib "shell32.dll" (ByVal hwnd As Long, ByVal Drive As Long, ByVal fmtID As Long, ByVal options As Long) As Long
    Private Declare Function GetDriveType Lib "kernel32.dll" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
    Const DRIVE_CDROM = 5
    Const DRIVE_FIXED = 3
    Const DRIVE_RAMDISK = 6
    Const DRIVE_REMOTE = 4
    Const DRIVE_REMOVABLE = 2
    Const SHFMT_ID_DEFAULT = &HFFFF ' Option bits for options parameter
    Const SHFMT_OPT_FULL = 1
    Const SHFMT_OPT_SYSONLY = 2
    Public Sub FormatFloppy(hWndOwner As Long, ByVal DriveLetter As String)
    Dim DriveNum As Long
    Dim DriveType As Long
    Dim ret As Long
    DriveLetter = Left(DriveLetter, 1) & ":\"
    ' Преобразование имени диска в номер устройства: A=0, B=1...
    DriveNum = Asc(UCase(DriveLetter)) - Asc("A")
    DriveType = GetDriveType(DriveLetter)
    ' проверка, а флоппи ли это...
    If DriveType = DRIVE_REMOVABLE Then
    ret = SHFormatDrive(hWndOwner, DriveNum, SHFMT_ID_DEFAULT, SHFMT_OPT_FULL)
    Else
    MsgBox "Это не флоппи!", vbExclamation
    End If
    End Sub
    Private Sub Command1_Click()
    FormatFloppy Me.hwnd, "A"
    End Sub

    наверх

    Формирование из числа его "строковое" представление

    Многим из вас приходилось формировать из числа, содержащего количество секунд, строку, показывающую количество часов, минут и секунд. Для этого можно воспользоваться готовым примером.

    Private Sub Command1_Click()
    'Передаем функции 260 минут, получаем: 4 часа 20 минут
    MsgBox FormatTime(260)
    End Sub

    'Формирует строку с указанием количества минут(часов, секунд)
    Public Function FormatTime(lTime As Long) As String
    Dim lSec As Long
    Dim lMin As Long
    Dim lHour As Long
    Dim lTemp As Long
    Dim i As Long
    If lTime < 60 Then
    FormatTime = lTime & " сек"
    ElseIf lTime / 60 < 60 Then
    lTemp = lTime
    Do While lTemp > 60
    i = i + 1
    lTemp = lTemp - 60
    Loop
    lMin = i
    lSec = lTime - (lMin * 60)
    FormatTime = lMin & " мин " & lSec & " сек"
    Else
    lTemp = lTime
    Do While lTemp > 60 * 60
    i = i + 1
    lTemp = lTemp - 60 * 60
    Loop
    lHour = i
    i = 0
    lTemp = lTime - (lHour * 60 * 60)
    Do While lTemp > 60
    i = i + 1
    lTemp = lTemp - 60
    Loop
    lMin = i
    lSec = lTime - (lHour * 60 * 60) - (lMin * 60)
    FormatTime = lHour & " час " & lMin & " мин " & lSec & " сек"
    End If
    End Function

    наверх

    Как показать песочные часы во время работы программы

    Если Вам необходимо сделать действие, во время которого пользователю не "рекомендуется" пользоваться мышью (например сделать расчеты), то лучше всего сменить курсор мыши на песочные часы. Используйте эту функцию и для восстановления вида курсора.

    'Процедура служит для смены кусора на песочные часы
    'и восстановления его после вторичного вызова
    Public Sub HourGlass(obj As Object)
    Static ordMouse As Integer
    Static fOn As Boolean
    On Error Resume Next
    'если повторный вызов
    If Not fOn Then
    ordMouse = obj.MousePointer 'запомнить старый
    obj.MousePointer = vbHourglass 'установить новый
    fOn = True 'запомнить, что уже вызывали
    Else 'Если нужно восстановить
    obj.MousePointer = ordMouse 'восстановить курсор
    fOn = False 'запомнить, что уже восстановили
    End If
    End Sub

    Private Sub Command1_Click()
    Call HourGlass(Form1)
    End Sub

    наверх

    Перекодировка текста из DOS в Windows формат

    Если Вам нужно конвертировать текст формата DOS в Windows (1251), то в API есть на этот случай хорошая функция: OemToChar.

    Объявляется она так:

    Public Declare Function OemToChar Lib "user32" Alias "OemToCharA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long

    Используют её следующим образом:
    Dim l_lReturn as Long
    Dim l_sSource as String 'исходный текст
    Dim l_sDestination as String 'возвращаемый текст
    l_lReturn = oemtochar(l_sSource, l_sDestination)

    Кроме этой полезной функции в API имеется и обратная её функция: CharToOem. Она служит для выполнения той же работы, только наоборот, т.е.Windows (1251) в DOS.

    Declare Function CharToOem Lib "user32" Alias "CharToOemA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long

    наверх

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

    BalloonMessage for MS Agent

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

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

    наверх

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

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

    Вопросы:

    Нет вопросов.

    Ответы:

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

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

    наверх

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


Выпуск 108.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Покупали ли Вы 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!!!

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

    Я уже вернулся! Завтра выйдет выпуск 109, в нём опять появится раздел Вопрос/Ответ.
    Читайте!

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

    • Citycat by Email

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

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

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

    Книги

    Переход на 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

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

    09:24 / 15 ноя. VB.Net + Excel? | Хитов: 2 | Ответов: 0
    09:10 / 15 ноя. Ламацкий вопос но всеже... | Хитов: 4 | Ответов: 1
    06:33 / 15 ноя. КАК СВЯЗАТЬ VB C Btrieve БАЗАМИ... | Хитов: 6 | Ответов: 1
    05:54 / 15 ноя. ДЕКОМПИЛЯТОР | Хитов: 8 | Ответов: 1
    21:41 / 14 ноя. Цифры и буквы | Хитов: 27 | Ответов: 2
    20:34 / 14 ноя. Scanner | Хитов: 23 | Ответов: 2
    20:10 / 14 ноя. ImageList | Хитов: 29 | Ответов: 3
    19:50 / 14 ноя. Виртуальное оружие | Хитов: 46 | Ответов: 5
    18:48 / 14 ноя. Работа С Сокетами(winsock) | Хитов: 31 | Ответов: 6
    18:39 / 14 ноя. Кто работал с Component Toolbox? | Хитов: 4 | Ответов: 0
    18:36 / 14 ноя. Есть у кого исходник звонилки!!! | Хитов: 17 | Ответов: 1
    18:33 / 14 ноя. Как работать с сервером уд. доступа | Хитов: 19 | Ответов: 2
    18:22 / 14 ноя. Поиск и замена спецсимволов | Хитов: 18 | Ответов: 1
    15:59 / 14 ноя. SendKeys? Или нет... | Хитов: 19 | Ответов: 2
    15:58 / 14 ноя. SendKeys? Или нет... | Хитов: 17 | Ответов: 2
    14:52 / 14 ноя. Перебор состояний ChekBox'a | Хитов: 20 | Ответов: 2
    14:45 / 14 ноя. Хранимая процедура | Хитов: 12 | Ответов: 0
    14:09 / 14 ноя. Может кто знает как принимать данные по UDP порту? | Хитов: 15 | Ответов: 2
    13:15 / 14 ноя. как послать нажатие клавиши НЕ АКТИВНОМУ окну з... | Хитов: 11 | Ответов: 0
    13:15 / 14 ноя. SQL-запрос на удаление текущего элемента БД..... | Хитов: 14 | Ответов: 0

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

    наверх

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

    наверх

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

    наверх

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

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

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

    наверх

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

    BalloonMessage for MS Agent

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

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

    наверх
    Вопрос/Ответ

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

    Вопросы:

    Нет вопросов.

    Ответы:

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

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

    наверх

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


Выпуск 109.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

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

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

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

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

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

    Держитесь! Загляните в раздел Вопрос/Ответ :-)))
    Читайте!

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

    • Размещение окна у основания Панели задач
    • Как загрузить файл из интернета
    • Создание формы произвольных размеров
    • Форма, реагирующая на события (min,max,close)
    • Получение всех параметров командной строки
    • Перекодировка текста: Rus-Lat

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

    Книги

    Переход на 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 можно найти     здесь.

    наверх

    Размещение окна у основания Панели задач

    По умолчанию, Windows отображает панель задач в нижней части экрана. Вы можете переместить её к любому краю экрана, изменяя тем самым размеры доступной области экрана. С панелью задач, всегда видимой на экране, информация иногда заслоняется - особенно, если пользователь развертывает окно приложения. Вы можете использовать функцию SystemParametersInfo в приложении, чтобы определить доступную область экрана. Чтобы увидеть, как это работает, создайте новый проект. На форму добавьте контрол Command Button

    Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinini As Long) As Long
    Const SPI_GETWORKAREA = 48

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

    Private Sub Command1_Click()
    Dim RC As RECT
    Dim X As Long
    X = SystemParametersInfo(SPI_GETWORKAREA, vbNull, RC, 0)
    Me.Move RC.Left * Screen.TwipsPerPixelX, RC.Top * Screen.TwipsPerPixelY, RC.Right * Screen.TwipsPerPixelX, RC.Bottom * Screen.TwipsPerPixelY
    End Sub

    наверх

    Как загрузить файл из интернета

    Если Вам необходимо загрузить файл из интернета, то воспользуйтесь следующим кодом.

    Private Declare Function DoFileDownload Lib "shdocvw.dll" (ByVal lpszFile As String) As Long

    Private Sub Command1_Click()
    DownLoadFile "http://demin.narod.ru/2001/wall/", "wall3.jpg"
    End Sub

    Public Sub DownLoadFile(sUrl As String, sFile As String)
    Dim DL As Long
    On Error GoTo errHandler
    If sUrl$ = "" Then sUrl$ = strUrl$
    If strUrl$ = "" Then strUrl$ = sUrl$
    If Left(strUrl$, 4) <> "http" Then strUrl$ = "http://" & strUrl$
    If Right$(strUrl$, 1) <> "/" Then strUrl$ = strUrl$ & "/"
    If Left$(sFile$, 1) = "/" Then sFile = Mid$(sFile$, 2)
    DL& = DoFileDownload(StrConv(strUrl$ & sFile$, vbUnicode))
    Exit Sub
    errHandler:
    Debug.Print "Error Source:", Err.Source
    Debug.Print "Error Description:", Err.Description
    Debug.Print "Error Number:", Err.Number
    MsgBox "An error has occured attempting to start download to " & sUrl & sFile$ & ".", vbApplicationModal + vbCritical + vbDefaultButton1, "Error"
    End Sub

    наверх

    Создание формы произвольных размеров

    Создайте новый проект, разместите на форме элемент Label (чтобы выйти из программы).
    Обязательно установите в свойствах формы Caption = "" и ControlBox = False.

    Private Declare Function ReleaseCapture Lib "user32" () As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
    Private Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
    Private Declare Function DeleteObject Lib "gdi32.dll" (ByVal hObject As Long) As Long

    Const WM_NCLBUTTONDOWN = &HA1
    Const HTCAPTION = 2

    Private Type POINTAPI
    X As Long
    Y As Long
    End Type

    Sub CutForm()
    Dim P(428) As POINTAPI
    Dim px
    Dim py
    Dim i As Integer
    Dim Rgn As Long
    px = Array(340, 339, 334, 333, 329, 328, 325, 324, 321, 320, 318, 317, 316, 315, 313, _
    312, 311, 310, 309, 308, 307, 306, 305, 304, 303, 301, 300, 298, 297, 294, 293, 281, 281, 278, 278, 277, 277, 275, 275, 274, 274, 273, 273, 272, 272, _
    271, 271, 270, 270, 269, 268, 267, 265, 264, 263, 262, 260, 259, 258, 257, 256, 255, 254, 252, 251, 249, 248, 245, 195, 194, 188, 187, 187, 186, 186, _
    185, 184, 182, 181, 180, 179, 178, 176, 175, 173, 172, 169, 168, 165, 164, 159, 158, 153, 152, 146, 145, 136, 135, 121, 120, 80, 79, 65, 64, 55, _
    54, 48, 47, 42, 41, 36, 35, 32, 31, 28, 27, 25, 24, 22, 21, 20, 19, 18, 16, 15, 14, 14, 13, 13, 14, 14, 15, 16, 17, 18, _
    19, 20, 21, 22, 24, 25, 27, 28, 31, 32, 35, 36, 41, 42, 47, 48, 54, 55, 64, 65, 67, 67, 64, 63, 61, 60, 57, 56, 54, 53, _
    51, 50, 48, 47, 46, 45, 43, 42, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 24, 23, 21, 20, 13, 13, 11, _
    11, 10, 10, 11, 11, 12, 13, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, _
    36, 37, 38, 39, 40, 42, 43, 45, 46, 47, 48, 50, 51, 53, 54, 56, 57, 60, 61, 63, 64, 67, 68, 71, 72, 75, 76, 80, 81, 84, _
    85, 89, 90, 95, 96, 100, 101, 106, 107, 113, 114, 120, 121, 128, 129, 136, 137, 146, 147, 158, 159, 172, 173, 194, 195, 254, 255, 276, 277, 290, _
    291, 302, 303, 312, 313, 320, 321, 328, 329, 335, 336, 342, 343, 348, 349, 353, 354, 359, 360, 364, 365, 368, 369, 373, 374, 377, 378, 381, 382, 385, _
    386, 388, 389, 392, 393, 395, 396, 398, 399, 401, 402, 403, 404, 406, 407, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, _
    425, 426, 428, 429, 436, 436, 438, 438, 439, 439, 438, 438, 436, 436, 435, 435, 434, 434, 433, 433, 431, 431, 431, 431, 432, 432, 433, 433, 432, 432, _
    431, 431, 430, 430, 429, 429, 428, 428, 427, 427, 426, 426, 425, 425, 423, 423, 422, 422, 419, 419, 407, 406, 403, 402, 400, 399, 397, 396, 395, 394, _
    393, 392, 391, 390, 389, 388, 387, 385, 384, 383, 382, 380, 379, 376, 375, 372, 371, 367, 366, 360, 359, 341, 340, 339)

    py = Array(182, 181, 181, 180, 180, 179, 179, 178, 178, 177, 177, 176, 176, 175, 175, _
    174, 174, 173, 173, 172, 172, 171, 171, 170, 170, 168, 168, 166, 166, 163, 163, 151, 150, 147, 146, 145, 144, 142, 141, 140, 139, 138, 137, 136, 135, _
    134, 132, 131, 129, 128, 128, 127, 127, 126, 126, 125, 125, 124, 124, 123, 123, 122, 122, 120, 120, 118, 118, 115, 115, 114, 114, 115, 118, 119, 120, _
    121, 121, 123, 123, 124, 124, 125, 125, 126, 126, 127, 127, 128, 128, 129, 129, 130, 130, 131, 131, 132, 132, 133, 133, 134, 134, 133, 133, 132, 132, _
    131, 131, 130, 130, 129, 129, 128, 128, 127, 127, 126, 126, 125, 125, 124, 124, 123, 123, 121, 121, 120, 119, 118, 115, 114, 113, 112, 112, 111, 110, _
    110, 109, 109, 108, 108, 107, 107, 106, 106, 105, 105, 104, 104, 103, 103, 102, 102, 101, 101, 100, 100, 98, 98, 97, 97, 96, 96, 95, 95, 94, _
    94, 93, 93, 92, 92, 91, 91, 90, 90, 89, 89, 88, 88, 87, 87, 86, 86, 85, 85, 84, 84, 83, 83, 81, 81, 79, 79, 72, 71, 69, _
    67, 66, 60, 59, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 47, 46, 45, 45, 44, 43, 43, 42, 42, 41, 41, 40, 40, 39, 39, _
    38, 38, 37, 37, 36, 36, 35, 35, 34, 34, 33, 33, 32, 32, 31, 31, 30, 30, 29, 29, 28, 28, 27, 27, 26, 26, 25, 25, 24, 24, _
    23, 23, 22, 22, 21, 21, 20, 20, 19, 19, 18, 18, 17, 17, 16, 16, 15, 15, 14, 14, 13, 13, 12, 12, 11, 11, 12, 12, 13, 13, _
    14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, _
    29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, _
    45, 45, 47, 47, 54, 55, 57, 59, 60, 66, 67, 69, 71, 72, 73, 82, 83, 85, 86, 88, 90, 91, 93, 96, 97, 102, 103, 118, 119, 124, _
    125, 128, 129, 131, 132, 134, 135, 136, 137, 138, 139, 140, 141, 142, 144, 145, 146, 147, 150, 151, 163, 163, 166, 166, 168, 168, 170, 170, 171, 171, _
    172, 172, 173, 173, 174, 174, 175, 175, 176, 176, 177, 177, 178, 178, 179, 179, 180, 180, 181, 181, 182, 182, 181, 181)

    For i = 0 To UBound(px)
    P(i).X = px(i)
    P(i).Y = py(i)
    Next
    Rgn = CreatePolygonRgn(P(0), 428, 0)
    SetWindowRgn Form1.hwnd, Rgn, True
    DeleteObject Rgn
    End Sub

    Private Sub Form_Load()
    CutForm
    End Sub

    Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Call ReleaseCapture
    Call SendMessage(Me.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&)
    End Sub

    Private Sub Label1_Click()
    End
    'Автор: Никифоров Максим
    End Sub

    наверх

    Форма, реагирующая на события (min,max,close)

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

    'КОД ФОРМЫ

    Private Sub Form_Load()
    SetProc hWnd
    End Sub

    'КОД МОДУЛЯ

    Option Explicit
    Private Declare Function CallWindowProcA Lib "user32" (ByVal lpPrevWndFunc As Long, ByVal lngHandle As Long, ByVal lngMsg As Long, ByVal lngFirstParam As Long, ByVal lngLastParam As Long) As Long
    Private Declare Function SetWindowLongA Lib "user32" (ByVal lngHandle As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private lngOldProc As Long
    Public Sub SetProc(ByVal lngHandle As Long)
    lngOldProc = SetWindowLongA(lngHandle, -4, AddressOf WinProc)
    End Sub
    Private Function WinProc(ByVal lngHandle As Long, ByVal lngMsg As Long, ByVal lngFirstParam As Long, ByVal lngLastParam As Long) As Long
    If lngMsg = &HA1 Then
    Select Case lngFirstParam
    Case 2
    Form1.Caption = "Кто-то нажал на заголовке"
    Case 3
    Form1.Caption = "Кому-то нужно системное меню формы"
    Case 8
    Form1.Caption = "Зачем сворачивать форму?!"
    Case 9
    Form1.Caption = "Кто-то хочет развернуть форму!"
    Case 20
    Form1.Caption = "Зачем закрывать форму?!"
    End Select
    End If
    WinProc = CallWindowProcA(lngOldProc, lngHandle, lngMsg, lngFirstParam, lngLastParam)
    'Автор примера Беляев Данила <outen@mail.ru>
    End Function

    наверх

    Получение всех параметров командной строки

    Простой пример, как можно получить все значения командной строки.
    Вам понадобится элемент CommandButton.

    Private Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineA" () As String
    Function ParamStr(index As Integer) As String
    Dim str As String
    Dim PStr() As String
    Dim i As Integer
    Dim c As Integer
    Dim openQ As Boolean
    str = GetCommandLine
    c = 0
    ReDim PStr(c)
    For i = 1 To Len(str)
    PStr(c) = PStr(c) + Mid(str, i, 1)
    If Mid(str, i, 1) = Chr(34) And openQ = False Then openQ = True Else If Mid(str, i, 1) = Chr(34) And openQ = True Then openQ = False
    If Mid(str, i, 1) = " " And openQ = False Then
    c = c + 1
    ReDim Preserve PStr(c)
    End If
    Next i
    If (index > c) Then ParamStr = "" Else ParamStr = deleteQ(PStr(index))
    End Function
    'эта функция удаляет кавычки из строки
    Function deleteQ(str As String) As String
    For i = 1 To Len(str)
    If Mid(str, i, 1) <> Chr(34) Then deleteQ = deleteQ + Mid(str, i, 1)
    Next i
    End Function

    Private Sub Command1_Click()
    MsgBox ParamStr(1)
    MsgBox ParamStr(2)
    MsgBox ParamStr(3)
    End Sub

    наверх

    Перекодировка текста: Rus-Lat

    Данный пример переводит текст, набранный в одной раскладке клавиатуры в другую. Например из Ghbdtn получить Привет.

    Private Function Replace_letters(InputStr As String) As String
    enStr = "@#$^&QWERTYUIOP{}ASDFGHJKL:" & Chr(34) & "ZXCVBNM<>?qwertyuiop[]asdfghjkl;'zxcvbnm,./" & Chr(34) & "№;:?ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,йцукенгшщзхъфывапролдэжячсмитьбю."
    rusStr = Chr(34) & "№;:?ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,йцукенгшщзхъфывапролджэячсмитьбю." & "@#$^&QWERTYUIOP{}ASDFGHJKL:" & Chr(34) & "ZXCVBNM<>?qwertyuiop[]asdfghjkl;'zxcvbnm,./"
    Dim i As Integer, pos As Integer, temp As String
    For i = 1 To Len(InputStr)
    temp = Mid$(InputStr, i, 1)
    pos = InStr(1, enStr, temp, vbBinaryCompare)
    If pos <> 0 Then
    Replace_letters = Replace_letters & Mid$(rusStr, pos, 1)
    Else
    Replace_letters = Replace_letters & temp
    End If
    Next i
    End Function

    Private Sub Form_Load()
    MsgBox Replace_letters("Dctv ghbdtn")
    End Sub

    наверх

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

    BalloonMessage for MS Agent

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

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

    наверх

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

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

    Вопросы:

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

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

    Добавляю в проект DataEnvironment, подключаю таблицу ия Access, соядаю под этой таблицей SQL (вс? средствами DE). Ставлю на форму DataGrid, подключаю к SQL. Внимание, вопрос:
    Как можно после добавления данных в таблицу, этот самый SQL обновить? (Добавляю в таблицу данные, а SQL до переяапуска программы обновляться не хочет!)

    Автор вопроса: Юрий

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

    Как получить полный объем жесткого диска и объем яагруженности жесткого диска.

    Автор вопроса: Мунгалов Андрей

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

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

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

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

    Есть-ли универсальные способы яаполнения ListView и TreeView ия объекта типа recordset. Это может быть как код, так и контролы, но код лучше.

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

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

    Как на форме нарисовать треугольник по 3 точкам, может быть с помощью API функции, важна скорость прорисовки!

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

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

    Тупой вопрос
    Открываю Notepad пишу туда число 20
    Закрываю. Смотрю размер файла - 2 байта
    Делаю тоже самое в ВБ

    Dim FileNum As Integer
    Dim txt As Byte
    FileNum = FreeFile

    txt = 20
    Open "c:\file.txt" For Output As FileNum
    Write #FileNum, txt
    Close #FileNum
    Смотрю размер 4 байта

    Мне необходимо создать именно 2 байтовый
    Пробовал через Binary Access - добавляются левые символы
    Помогите примером

    Автор вопроса: Dmitriy Alimov

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

    Подскажите как сохранить фаил .txt не вызывая диалога сохранения

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

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

    Как сделать, чтобы RichTextBox скроллился автоматически?

    Автор вопроса: Михаил

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

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

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

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

    Как подключить FileSystemObject? Какая библиотека за нее отвечает?

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

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

    Пожалуйста подскажите, как программным образом управлять полосой прокрутки в ListBoxe, скажем сдвинуть указатель на 25% вниз, при этом не касаясь содержимого самого ListBox-a и не снимая выделения, если выделено несколько записей?

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

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

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

    Автор вопроса: Костик

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

    Как найти число строк в Text1.Text?
    Как найти первое слово ия каждой стоки?
    Как польяоваться функцией Find в RichTextBox?

    Другими словами я соядал цикл:

    For i = 0 To [число строк в Text1.Text]
    RTFText1.Find [первое слово ия строки i]
    If [слово найдено] Then
    . . .
    End If
    Next i

    Всё что яаписанно в квадратных скобках, туда надо вписать правильный код.
    Да, и ещё, в Text1 текст записан вот так:

    чёрный, белый
    большой, малый
    . . .

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

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

    Здрасьте, мой вопрос про изображения.
    Короче у элемента ImageBox есть свойство Stretch, оно подгоняет картинку под размеры элемента, но когда переносишь это изображение в PictureBox, то размеры опять меняются. А мне надо, чтобы они остались такими какими были в ImageBox (Stretch=true). Я пробовал делать так: Загружаю картинку в ИмагеБокс и с помощью метода PaintPicture пытаюсь перенести её в ПикчерБокс в том же виде, но получается ещё большая фигня чем была. Последнее я делал так:

    Private Sub Command1_Click()
    Image1.Picture = LoadPicture(Text1.Text)
    Picture1.ScaleMode = 3
    Picture1.PaintPicture Image1.Picture, 0, 0, Picture1.ScaleWidth,
    Picture1.ScaleHeight, _
    0, 0, Image1.Width, Image1.Height, vbSrcCopy
    End Sub

    Что здесь не так? Или как мне вообще перенести картинку из ImageBox (stretch=true) в PictureBox не потеряв размеров? Помогите пожайлуста, я уже просто в отчаянии, пробовал и через буфер, и через файл - никак не получается. Была надежда на метод PaintPicture и та провалилась. Как мне сделать так, как написано выше?

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

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

    Вот вам товарищи программеры обломный вопрос - как вставлять модели 3DMax'а в VB6 программы и самое главное как ими потом управлять, если можно с примерами и по проще...
    А то вот собрался 3D елку к новому году зделать а как MAX'овские модели всавлять неизвестно :(

    P.S.
    кстати если кто хочет присоединится к моему проэкту всегда пожалуйста, несколько vb программеров работающих за одно - это сила :))

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

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

    В панели управления VB6 есть меню "Query" у меня постоянно задисейблено я так догадываюсь это для прямой работы с SQL сервером. хотелось бы узнать как и чего надо доустановить чтобы это меню подключить (SQL сервер установлен). И можно ли этим меню пользоваться для работы с Ораклом

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

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

    Как с помощью VB ияменить скорость CD-ROM

    Автор вопроса: Серж

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

    В VB.NET появились такие понятия как сериалияация (яапись объекта в поток данных) и десериалияация (обратный процесс). Если я правильно понял можно объекты (структуры) передавать ия программы в программу по локальной сети!? Если кто-нибудь с этим вопросом сталкивался подскажите где вяять хоть какие-то примеры. Буду беямерно благодарен!

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

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

    Впривет всем, не подскажет ли кто, как ставить на форму воидоусовские элементы по умолчанию, как например делает WinZip 8.1 - если его запустить в WinME то у него обычные кнопочки, а если его запустить под ХР то кнопки меняются на ХР'шные причем если поменять оформление рабочего стола (голубое / серебрянное / оливковое) то кнопки тоже меняются. Я что-то собневаюсь, что WinZip Computing (как они себя называют) переделала все контролы из ХР заново.

    Автор вопроса: Dr.Max

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

    Что такое Package & Deployment Wizard и нафиг это надо????

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

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

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

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

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

    Есть ли у кого-нибудь библиотека Microsoft Data Bound Grid Control 5.0 или ссылка где её можно скачать. В VB6.0 у меня она отсутствует.

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

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

    есть прога которая паботает с базой данных mbd. Переношу на другую машину, инсталлирую. При запуске пишет что не может найти поставщика данных. Для доступа к базе использую Microsoft Jet 3.51 OLE DB Provider(выбираю в свойствах элемента ADO Data).
    В литературе пишут что надо создать источник данных, т.е. файл с расширением mdl. Это не получилось. Тем не менее приложение работает на машине где есть VB.
    Win 2000
    VB 6.0

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

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

    Помогите! Кто-нибудь знает как сделать прогу, которая по нажатию на кнопку (Command1 например) удаляла бы все файлы из заданой папки?
    И еще. Кто-нибудь знает как сделать прогу при запуске которой по эрану бегала бы какая-нибудь зверюшка (может кто-нибудь видел овцу бегающую по экрану)?

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

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

    Как пользоваться DLL?
    Желательно с примерами, но без ссылок.

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

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

    Народ, подскажите, можно ли в VB 6 генерить явук на Пищалку с яаданной частотой (по аналогу Basic'a: sound x,x)? И как это сделать?

    Ответы:

    Вопрос:

    Пишу:

    private sub fff (optional option1 as byte)

    Print IsMissing(option1)
    end sub

    Не работает всегда говорит False
    а если пишу

    private sub fff (optional option1)

    Print IsMissing(option1)
    end sub

    Все работает правельно !
    Кто янает почему ???

    Ответ:

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

    Потому что IsMissing работает только для типа Variant. Во втором варианте процедуры

    private sub fff (optional option1)

    option1 - типа variant.
    А если нужен простой тип, то нужно использовать вместо IsMissing значение по умолчанию

    private sub fff (optional option1 as byte = 0)
    If option1 = 0 then
    Print "is missing"
    End If
    end sub

    Вопрос:

    Пишу:

    private sub fff (optional option1 as byte)

    Print IsMissing(option1)
    end sub

    Не работает всегда говорит False
    а если пишу

    private sub fff (optional option1)

    Print IsMissing(option1)
    end sub

    Все работает правельно !
    Кто янает почему ???

    Ответ:

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

    Optional-переменная должна быть типа Variant. Тогда если при отладке в IDE навести на неё мышь, то в подсказке читаем: Option1=Missing. А если тип задан заранее, то переменной невозможно присвоить значение Missing.

    Вопрос:

    Пишу:

    private sub fff (optional option1 as byte)

    Print IsMissing(option1)
    end sub

    Не работает всегда говорит False
    а если пишу

    private sub fff (optional option1)

    Print IsMissing(option1)
    end sub

    Все работает правельно !
    Кто янает почему ???

    Ответ:

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

    Необязательные параметры в процедурах должны иметь тип Variant. И оператор IsMissing работает только с Variant, у которого есть значения Nothihg, Empty и подобные.

    Вопрос:

    Пишу:

    private sub fff (optional option1 as byte)

    Print IsMissing(option1)
    end sub

    Не работает всегда говорит False
    а если пишу

    private sub fff (optional option1)

    Print IsMissing(option1)
    end sub

    Все работает правельно !
    Кто янает почему ???

    Ответ:

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

    Потому, что лишь в типе Variant имеется байт, отвечающий за Missing!

    Вопрос:

    Я пишу

    public sub aaaa(frm as form)
    ....
    ....
    end sub

    на первой строке выскакивает ошибка !
    если я приминяю Private все работает нормально.
    Вопрос: Как передать Form при Public. ?

    Ответ:

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

    Попробуй не через Form, а через Object.

    Вопрос:

    Подскажите как работать с FTP - сервером; тоесть вводить адресс, имя, пароль.

    Ответ:

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

    Vir что ты там такое интерестное делаеш А
    Используй "microsoft internet transfer control"-MSINET.OCX.
    С ним можно делать че хош

    Вопрос:

    Имеется 2 звуковых файла... каждый из них представляет примерно такую стуктуру 1011100111 (1-сигнал, 0-пустота)...частота сигналов может быть разной, а вот пробелы между сигналами (0) всегда одинаковы. Требуется средствами VB сравнить эти два файла, причем сравнивать по пробелам между сигналами.
    P.S. Побайтовое сравнение не пойдет... т.к. частота сигналов разная, вся загвоздка во времени этих сигналов...
    Если у кого какие есть идеи (любые), шлите на мыло

    Ответ:

    Автор ответа: Andrew Isakov

    Где-то в старом журнале Байт я встречал интересный алгоритм поиска/сравнения строк. С использованием bit-матриц. Если интересно, найду статью, пришлю. Ссылку или отсканирую/распознаю.

    Вопрос:

    Подскажите где взять Function и Sub у WinInet ?
    Все кто хоть немного знает что-то шлите на email.

    Ответ:

    Автор ответа: Владимир Кирко

    Полнее чем в wininet.h, наверное не найти. (Если понимаете "сишный" синтаксис могу прислать.) Более удобный справочник для использования в VB можно пока ещё найти на http://www.allapi.net (API-GUIDE). Файл agsetup_ver3_7.exe 2313081-байт. Замечательный справочник с работающими примерами.

    Вот, например, первый десяток функций в этом справочнике из интересующего Вас dll:

    Declare Function DeleteUrlCacheEntry Lib "wininet.dll" Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long
    Declare Sub FindCloseUrlCache Lib "wininet.dll" (ByVal hEnumHandle As Long)
    Declare Function FindFirstUrlCacheEntry Lib "wininet.dll" Alias "FindFirstUrlCacheEntryA" (ByVal lpszUrlSearchPattern As String, ByVal lpFirstCacheEntryInfo As Long, ByRef lpdwFirstCacheEntryInfoBufferSize As Long) As Long
    Declare Function FindNextUrlCacheEntry Lib "wininet.dll" Alias "FindNextUrlCacheEntryA" (ByVal hEnumHandle As Long, ByVal lpNextCacheEntryInfo As Long, ByRef lpdwNextCacheEntryInfoBufferSize As Long) As Long
    Declare Function FtpCreateDirectory Lib "wininet.dll" Alias "FtpCreateDirectoryA" (ByVal hFtpSession As Long, ByVal lpszDirectory As String) As Boolean
    Declare Function FtpDeleteFile Lib "wininet.dll" Alias "FtpDeleteFileA" (ByVal hFtpSession As Long, ByVal lpszFileName As String) As Boolean
    Declare Function FtpFindFirstFile Lib "wininet.dll" Alias "FtpFindFirstFileA" (ByVal hFtpSession As Long, ByVal lpszSearchFile As String, lpFindFileData As WIN32_FIND_DATA, ByVal dwFlags As Long, ByVal dwContent As Long) As Long
    Declare Function FtpGetCurrentDirectory Lib "wininet.dll" Alias "FtpGetCurrentDirectoryA" (ByVal hFtpSession As Long, ByVal lpszCurrentDirectory As String, lpdwCurrentDirectory As Long) As Long
    Declare Function FtpGetFile Lib "wininet.dll" Alias "FtpGetFileA" (ByVal hConnect As Long, ByVal lpszRemoteFile As String, ByVal lpszNewFile As String, ByVal fFailIfExists As Long, ByVal dwFlagsAndAttributes As Long, ByVal dwFlags As Long, ByRef dwContext As Long) As Boolean
    Declare Function FtpPutFile Lib "wininet.dll" Alias "FtpPutFileA" (ByVal hConnect As Long, ByVal lpszLocalFile As String, ByVal lpszNewRemoteFile As String, ByVal dwFlags As Long, ByVal dwContext As Long) As Boolean

    Вопрос:

    Подскажите где взять Function и Sub у WinInet ?
    Все кто хоть немного знает что-то шлите на email.

    Ответ:

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

    F2 не пробовал нажать?

    Вопрос:

    Работаю во всякого рода рекламных и публицистических газетах очень давно, собралось кучу разных скриптов и програмулек целая гора, пишу свои скрипты, базы данных и программы....
    И вот в один прекрасный день задумал написать большую программу "идеальная газета", в которой есть все: верстка и учет рекламы, верстка и учет текстов, планирование верстки текстовых полос, сбор информации с новосных сайтов, кроссворды и сканворды, верстка тв программы, и т.д.
    Предполагаю все это сделать: хранение данных в ACCESS или MsSQL, оболочка в VB. Модули для Corel, InDesign, PageMaker, PhotoShop, Ventura 1:C Бухгалтерия, и т.д.
    Программа бесплатной не будет. Собираю команду. Все кто в ее войдет будут иметь право ее распространять.
    Если увас возникли какие либо мысли по этому поводу пишите.
    Пишите мне на адрес rdw@rdw.by

    Ответ:

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

    Могу оказать помощь в разработке в рамках Access и 1С. Опыт и там и там большой…
    Конкретно проясни ситуацию, или тех. задание…

    Вопрос:

    Работаю во всякого рода рекламных и публицистических газетах очень давно, собралось кучу разных скриптов и програмулек целая гора, пишу свои скрипты, базы данных и программы....
    И вот в один прекрасный день задумал написать большую программу "идеальная газета", в которой есть все: верстка и учет рекламы, верстка и учет текстов, планирование верстки текстовых полос, сбор информации с новосных сайтов, кроссворды и сканворды, верстка тв программы, и т.д.
    Предполагаю все это сделать: хранение данных в ACCESS или MsSQL, оболочка в VB. Модули для Corel, InDesign, PageMaker, PhotoShop, Ventura 1:C Бухгалтерия, и т.д.
    Программа бесплатной не будет. Собираю команду. Все кто в ее войдет будут иметь право ее распространять.
    Если увас возникли какие либо мысли по этому поводу пишите.
    Пишите мне на адрес rdw@rdw.by

    Ответ:

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

    С удовольствием, помог бы вам в этом. Кстати базы лучше в MSAccess.

    Вопрос:

    В который раз вопрошаю как сделать DLL на VB так, чтобы С++ программы могли использовать функции DLL

    Ответ:

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

    Блин. Сделай ты ActivXE и подключи его в С++.

    Вопрос:

    В который раз вопрошаю как сделать DLL на VB так, чтобы С++ программы могли использовать функции DLL

    Ответ:

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

    Делаешь ActiveX dll и используешь ее откуда хочешь!

    Вопрос:

    В который раз вопрошаю как сделать DLL на VB так, чтобы С++ программы могли использовать функции DLL

    Ответ:

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

    Расшарь её! (проще говоря Instancing = GlobalMultiUse)

    Вопрос:

    Как сделать распечатку на принтр из txt файла?

    Ответ:

    Автор ответа: Реестр - Электроника

    самый элементарный вариант:

    Dim s As String
    Open "Txt.txt" For Output As #1
    Do
    Line Input #1, s
    Printer.Print s
    Loop Until EOF(1)
    Close 1
    Printer.EndDoc

    .....
    если надо сложнее - напиши - поищу как это делается через API.

    Вопрос:

    Как сделать распечатку на принтр из txt файла?

    Ответ:

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

    Скопировать txt фаил на lpt устройство

    Вопрос:

    1. Как прочитать название CD-привода, т.е. если зайти в "свойства системы" на закладку "Устройства" и открыть ноду "Устройства чтения компакт-дисков" - то там сразу видно название устройста (ASUS CDS360 ..., Teac ... и т. д.). А вот как енто програмно прочитать ??????

    2. Народ, дайте ПРЯМУЮ ссылку на программу Fusion (прога внедрения ядра в ЕХЕ-шник), а то я пытался найти через поисковики и там столько мусора попадалось ... так и не откопал нормальную.

    Ответ:

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

    http://wasm.ru/tools/8/fusionv3.exe

    Вопрос:

    1. Как прочитать название CD-привода, т.е. если зайти в "свойства системы" на закладку "Устройства" и открыть ноду "Устройства чтения компакт-дисков" - то там сразу видно название устройста (ASUS CDS360 ..., Teac ... и т. д.). А вот как енто програмно прочитать ??????

    2. Народ, дайте ПРЯМУЮ ссылку на программу Fusion (прога внедрения ядра в ЕХЕ-шник), а то я пытался найти через поисковики и там столько мусора попадалось ... так и не откопал нормальную.

    Ответ:

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

    Прямую ссылку я тебе сказать не смогу но произвадитель этой программы http://www.bit-arts.com/. Качай версию 1.0 я тебе кряк для нее пошлю

    Вопрос:

    1. Как прочитать название CD-привода, т.е. если зайти в "свойства системы" на закладку "Устройства" и открыть ноду "Устройства чтения компакт-дисков" - то там сразу видно название устройста (ASUS CDS360 ..., Teac ... и т. д.). А вот как енто програмно прочитать ??????

    2. Народ, дайте ПРЯМУЮ ссылку на программу Fusion (прога внедрения ядра в ЕХЕ-шник), а то я пытался найти через поисковики и там столько мусора попадалось ... так и не откопал нормальную.

    Ответ:

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

    вопервых Fusion не запихывает в екзешник все а только создает самараскручивающийся архив... который при запуске распаковывает все Dll и OCx по местам тоясть в System и т.д. а потом просто запускается екзешник но если очень надо есть у мня вроде 3 версия этой шняги.. но кряка нет... если надо пиши пришлю...

    Вопрос:

    1. Как прочитать название CD-привода, т.е. если зайти в "свойства системы" на закладку "Устройства" и открыть ноду "Устройства чтения компакт-дисков" - то там сразу видно название устройста (ASUS CDS360 ..., Teac ... и т. д.). А вот как енто програмно прочитать ??????

    2. Народ, дайте ПРЯМУЮ ссылку на программу Fusion (прога внедрения ядра в ЕХЕ-шник), а то я пытался найти через поисковики и там столько мусора попадалось ... так и не откопал нормальную.

    Ответ:

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

    Могу на мыла скинуть триал
    пиши - tushkin@dsnews.com.ua

    Вопрос:

    Есть код

    Dim vData As Variant
    vData = Me.Inet1.OpenURL("http://vbstreets.ru/bookstore/20.gif",
    icByteArray)' подклучаем библиотеку Internet Transfer control
    Open "C:\pic.gif" For Output As #1
    Print #1, , vData
    Close #1

    Но ,как вы уже поняли,он не работает.точнее работает ,но "недорабатывает". Код должен сохранить рисунок ,он его сохраняет ,но рисунка -то нет! Тоже самое при попытке сохранить веб страницу . т. е. файл есть ,но пустой! Придательский красный крестик и всё!!! Мне кажется ,что проблема не в открытии файла,а в его сохранении.
    Помогите!!!!!!!!!!

    Ответ:

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

    Я знаю только как загрузить сайт

    Dim txt As String
    Dim b() As Byte
    On Error GoTo ErrorHandler
    b() = Inet1.OpenURL(URL.Text, 1)
    txt = ""
    For t = 0 To UBound(b) - 1
    txt = txt + Chr(b(t))
    Next
    RichTextBox1.Text = txt
    Exit Sub
    ErrorHandler:
    MsgBox "ТЫ че внатуре", vbCritical
    Exit Sub

    End Sub

    Вопрос:

    Есть код

    Dim vData As Variant
    vData = Me.Inet1.OpenURL("http://vbstreets.ru/bookstore/20.gif",
    icByteArray)' подклучаем библиотеку Internet Transfer control
    Open "C:\pic.gif" For Output As #1
    Print #1, , vData
    Close #1

    Но ,как вы уже поняли,он не работает.точнее работает ,но "недорабатывает". Код должен сохранить рисунок ,он его сохраняет ,но рисунка -то нет! Тоже самое при попытке сохранить веб страницу . т. е. файл есть ,но пустой! Придательский красный крестик и всё!!! Мне кажется ,что проблема не в открытии файла,а в его сохранении.
    Помогите!!!!!!!!!!

    Ответ:

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

    Вот так работает:

    Dim vImage() As Byte
    vImage = Me.Inet1.OpenURL("http://vbstreets.ru/bookstore/20.gif", icByteArray)
    Open "C:\pic.gif" For Binary Access Write As #1
    Put #1, , vImage()
    Close #1

    Вопрос:

    Есть код

    Dim vData As Variant
    vData = Me.Inet1.OpenURL("http://vbstreets.ru/bookstore/20.gif",
    icByteArray)' подклучаем библиотеку Internet Transfer control
    Open "C:\pic.gif" For Output As #1
    Print #1, , vData
    Close #1

    Но ,как вы уже поняли,он не работает.точнее работает ,но "недорабатывает". Код должен сохранить рисунок ,он его сохраняет ,но рисунка -то нет! Тоже самое при попытке сохранить веб страницу . т. е. файл есть ,но пустой! Придательский красный крестик и всё!!! Мне кажется ,что проблема не в открытии файла,а в его сохранении.
    Помогите!!!!!!!!!!

    Ответ:

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

    На твой вопрос:
    Попробуй сохранять в файле, открыв его не как OUTPUT, а как BINARY.

    Вопрос:

    Есть код

    Dim vData As Variant
    vData = Me.Inet1.OpenURL("http://vbstreets.ru/bookstore/20.gif",
    icByteArray)' подклучаем библиотеку Internet Transfer control
    Open "C:\pic.gif" For Output As #1
    Print #1, , vData
    Close #1

    Но ,как вы уже поняли,он не работает.точнее работает ,но "недорабатывает". Код должен сохранить рисунок ,он его сохраняет ,но рисунка -то нет! Тоже самое при попытке сохранить веб страницу . т. е. файл есть ,но пустой! Придательский красный крестик и всё!!! Мне кажется ,что проблема не в открытии файла,а в его сохранении.
    Помогите!!!!!!!!!!

    Ответ:

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

    Вот тебе вырезка из 55-го выпуска рассылки:

    Как сохранить содержимое web-страницы на диск

    Расположите на форме элемент Inet (меню Project|Components - Microsoft
    Internet Transfer Control 6.0).

    'Вариант 1
    'Расположите на форме элемент Inet (меню Project|Components - Microsoft
    Internet Transfer Control 6.0).
    Private Sub Form_Load()
    Dim b() As Byte
    'установить протокол HTTP
    Inet1.Protocol = icHTTP
    'установить скачиваемый адрес
    Inet1.URL = "http://www.microsoft.com"
    'загрузить данные HTML-страницы в массив
    b() = Inet1.OpenURL(Inet1.URL, icByteArray)
    'создать файл на диске и записать в него информацию
    Open "c:\test.htm" For Binary Access Write As #1
    Put #1, , b()
    Close #1
    End Sub

    'Вариант 2
    'Расположите на форме элемент CommandButton.
    Private Declare Function URLDownloadToFile Lib "urlmon" Alias
    "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal
    szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As
    Long
    Public Function DownloadFile(URL As String, LocalFilename As String) As
    Boolean
    Dim lngRetVal As Long
    lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
    If lngRetVal = 0 Then DownloadFile = True
    End Function
    Private Sub Command1_Click()
    DownloadFile "http://sharig.webzone.ru", "c:\sharig_webzone_ru.htm"
    End Sub

    'Вариант 3
    'Расположите на форме элемент CommandButton. Данный пример только загрузить
    данные со страницы в элемент TextBox. А здесь вы можете узнать, как
    сохранить содержимое TextBox'а в файл.
    Private Sub Command1_Click()
    On Error GoTo handle
    Text1.Text = Inet1.OpenURL(Text2.Text, icString)
    Exit Sub
    handle: MsgBox "Error " & Err.Description
    End Sub

    Вопрос:

    Вопрос по VBA (WORD).
    Нужна функция окна диалога для открытия папки (не файла!).
    Внимание! API функция - не работает, на то есть причины.

    Ответ:

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

    Для Office 2000, 2002. Для других не знаю, может и подойдет.

    Public Sub PathOpen()
    Dim dlg As FileDialog
    Dim strPath
    Set dlg = Application.FileDialog(FileDialogType:=4)
    dlg.Show
    For Each strPath In dlg.SelectedItems
    MsgBox strPath
    Next strPath
    End Sub

    Вопрос:

    Возможно ли средствами VB докачивать какой-либо файл, т.е. качаем...связь обрывается...перезваниваем...докачиваем...
    Если можно, напишите как!

    Ответ:

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

    А ты чем качаешь-то? Если FlashGet-ом, то ему и VB не нужен:)

    Вопрос:

    На Вашем сайте нашел интересные советы по ВБ.
    Не будете ли Вы так любезны ответить новичку еще на несколько вопросов.Не очень сложно , чтобы я понял.
    1.Могу ли я из своего ВБ 6 открыть какой-либо документ из моего компьютора или более конкретно - окно для связи с Интернетом и нажать кнопку подключения и тд
    .2.Из ВБ 6 можно говорят заблокировать любое окно виндоус. А если кто-то заблокировал окно / к примеру настройку часов в компьютере и тп / , можно ли взломать этот запрет , ведь его коды мне не видны.и я не знаю даже с помощью какой программы и языка это заблокировано
    3.Я нашел маленькую програмку для ВБ, которая позволяет увидеть данные за звездочками .Я ее коды скопировал, заустил ,запаролил данные в текстовом окне своей ВБ-формы и действительно звездочки открываются. Но вот что я не понял: ведь она работает когда пароль размещен на моей ВБ-форме, А как же быть если скрытые данные расположены в другом месте
    4.У меня на вэб-странице есть ВБ 6-форма с окном Text, в который можно вписывать текст / типа гостевой книги/ .Можно ли с помощью кода в моей ВБ-форме сделать чтобы этот текст добавлялся в мою форму на сервере, чтобы при новом открытии страницы этот текст сохранялся
    5.Я вставляю в пикче-бокс флэш-анимацию, а она в нем не движется

    Ответ:

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

    5:
    А он и не будет её воспроизводить.
    А вот такой контрол как "Shockwave Flash" будет :)

    Вопрос:

    Чтотакое ping (пинг) и что яначит запинговать?

    Ответ:

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

    ping - это проверка есть ли в сети хост с указанным IP

    Вопрос:

    Чтотакое ping (пинг) и что яначит запинговать?

    Ответ:

    Автор ответа: Мунгалов Андрей

    Ping если в двух словах то это проверка связи с определенным компом в сети. либо в локалке либо в инете. можно задавать как Ping имя компа или Ping IPадрес. после этого твой комп пытается обменятся пакетами по умолчанию 4 раза. и затем выводит информацию сколько отправил, сколько пришло, за какое время.

    Вопрос:

    Чтотакое ping (пинг) и что яначит запинговать?

    Ответ:

    Автор ответа: Владимир Кирко

    Команда ето такая. (Существует, практически, во всех операционных системах). Очень часто используется просто для проверки связи к каким-либо узлом (хотя выдаёт и более содержательную информацию).
    Вот что про неё говорит Help. (Вообще-то Вы и сами могли бы это проделать: щёлкаете мышом по пустому месту рабочего стола, потом жмёте клавишу F1, потом в поиске набираете ping.)
    Ping
    Проверка соединения с удаленным компьютером или компьютерами. Эта команда доступна только после установки поддержки протокола TCP/IP.
    ping [-t] [-a] [-n счетчик] [-l длина] [-f] [-i ttl] [-v тип] [-r счетчик] [-s число] [[-j список_комп] | [-k список_комп]] [-w интервал] список_назн
    Параметры
    -t
    Повторяет запросы к удаленному компьютеру, пока не программа будет остановлена.
    -a
    Разрешает имя компьютера в адрес.
    -n счетчик
    Передается число пакетов ECHO, заданное параметром счетчик. По умолчанию — 4.
    -l длина
    Отправляются пакеты типа ECHO, содержащие порцию данных заданной длины. По умолчанию — 32 байта, максимум — 65527.
    -f
    Отправляет пакеты с флагом запрещения фрагментации (Do not Fragment). Пакеты не будут разрываться при прохождении шлюзов на своем маршруте.
    -i ttl
    Устанавливает поле времени жизни пакетов TTL (Time To Live).
    -v тип
    Устанавливает поле типа службы (Type Of Service) пакетов.
    -r счетчик
    Записывает маршрут отправленных и возвращенных пакетов в поле записи маршрута Record Route. Параметр счетчик задает число компьютеров в интервале от 1 до 9.
    -s число
    Задает число ретрансляций на маршруте, где будет делаться отметка времени.
    -j список_комп
    Направляет пакеты по маршруту, задаваемому параметром список_комп. Компьютеры в списке могут быть разделены промежуточными шлюзами (свободная маршрутизация). Максимальное количество, разрешаемое протоколом IP, равно 9.
    -k список_комп
    Направляет пакеты по маршруту, задаваемому параметром список_комп. Компьютеры в списке не могут быть разделены промежуточными шлюзами (ограниченная маршрутизация). Максимальное количество, разрешаемое протоколом IP, равно 9.
    -w интервал
    Указывает промежуток времени ожидания (в миллисекундах).
    список_назн
    Указывает список компьютеров, которым направляются запросы.

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

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

    наверх

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


Выпуск 110.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Покупали ли Вы 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". Обязательно посмотрите.
    Читайте!

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

    • Citycat by Email

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

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

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

    Книги

    Переход на 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

    Дата: 17.11.2002 07:58 | Раздел: Статьи по VB | Автор: Остапенко Алексей

    Построение многоуровневого меню - Статья рассказывает о том, как создать многоуровневое меню на странице с использованием ASP.

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

    02:21 / 19 ноя. Помогите разобраться с этим SOFTKEY'ем | Хитов: 6 | Ответов: 1
    20:56 / 18 ноя. Срочно Word SOSOSOS! Пжлста | Хитов: 8 | Ответов: 0
    19:12 / 18 ноя. Ctrl-Alt-Del | Хитов: 15 | Ответов: 1
    17:24 / 18 ноя. Куча классных сорсов! | Хитов: 29 | Ответов: 0
    16:10 / 18 ноя. Clarion | Хитов: 16 | Ответов: 0
    13:57 / 18 ноя. Уточняю !!!!!!! | Хитов: 28 | Ответов: 1
    13:55 / 18 ноя. Close Connection | Хитов: 21 | Ответов: 0
    10:17 / 18 ноя. проблемы с установкой visual studio .net | Хитов: 22 | Ответов: 2
    02:10 / 18 ноя. Unload Control Array | Хитов: 33 | Ответов: 5
    01:41 / 18 ноя. MSHFlexGrid | Хитов: 23 | Ответов: 1
    21:44 / 17 ноя. ДОСАДНАЯ ОШИБКА | Хитов: 48 | Ответов: 2
    20:49 / 17 ноя. BD (колёсико мыши) | Хитов: 33 | Ответов: 2
    18:12 / 17 ноя. Странности с Range | Хитов: 21 | Ответов: 0
    17:27 / 17 ноя. Как сымитировать нажатие клавиши ALT? | Хитов: 23 | Ответов: 1
    15:46 / 17 ноя. Защита ASP файлов.. | Хитов: 23 | Ответов: 1
    13:25 / 17 ноя. soundcard | Хитов: 27 | Ответов: 3
    13:08 / 17 ноя. VB6 exe s ODBC kak zapustit' na XP | Хитов: 14 | Ответов: 0
    10:33 / 17 ноя. Dbgrid32.ocx | Хитов: 20 | Ответов: 2
    18:11 / 16 ноя. Vb api sound | Хитов: 34 | Ответов: 2
    18:01 / 16 ноя. Экспорт изображения? | Хитов: 24 | Ответов: 1

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

    наверх

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

    наверх

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

    • 18.11
      Visual Basic - Работа с Windows - Ассоциая собственной иконки с собственным расширением файла
      На примере показанно, что надо сделать, чтобы созданный вами файл связать с вашей собственной иконкой и какой программой его открывать.

      Visual Basic - Графика - Пример смены обоев на вашем рабочем столе с помощью API-функции
      Пример показывает, как с помощью Api поменять обои на Вашем рабочем столе.

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

      Программы в кодах - Пользовательские - Редактор заметок
      Программа NotesPack была задуманна, как пример для сайта SwithSoft и других сайтов (и "Азбука Технологий Программирования" в частности), для того чтобы показать, как создать некое подобие на всем известную утилиту Криса Иствуда - VBCodeLibrary.

      VBA - Работа с MS Excel - ПрогрессБар с помощью ChartObjects
      Создание прогрессБар с помощью ChartObjects

      Visual Basic - Справочники - Библиотека VBRegTool6
      Библиотека VBRegTool6 является расширенным аналогом библиотеки REGTool5 от Microsoft. Она содержит функции для работы с реестром, использование которых значительно упрощает доступ к реестру.

    наверх

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

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

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

    наверх

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

    BalloonMessage for MS Agent

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

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

    наверх
    Вопрос/Ответ

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

    Вопросы:

    Автор вопроса:     Павел

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

    Как отследить, какие клавиши нажимаются на клавиатуре, при этом форма находится в свернутом состоянии?

    Автор вопроса: Б.А.Л.

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

    У меня такой вопросик: в Accessовской таблице есть два поля (допустим одно поле "Мужские фамилия", другое поле "Женские фамилия"), необходимо в отчете эти поля объединить в одно и отиндексировать по алфавиту.
    И такой вопросик: в Accessовской таблице есть поля (допустим поле "Пол" и поле "Имя"), необходимо в отчете вывести имена в два столбца параллельно (допустим справа Женские, а слева Мужские).
    Желательно пример кода, но буду рад даже мыслям и идеям!

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

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

    Как получить в Windows XP список всех модемных соединений установленных в системе и занести их в ListBox. Конкретно в XP. Примеры для Windows 98 и тд. имею, но в XP они не работают.

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

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

    Как на VB работать с графикой. Точнее со спайтами. Тобишь есть картинка. Как на ней яаставить двигаться другую картинку бея глюков. А то если испольяовать PicBox или Image то при движении появляються глюки. Желательно с примерами и по проши.

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

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

    Подскажите как поворачивать картинку С БЫСТРОЙ СКОРОСТЬЮ ?

    Автор вопроса: Александр

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

    Какой код надо набирать чтобы при набирание адреса человек поподал на главную страницу?

    Автор вопроса: Иваныч

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

    Как сделать так (не обяяательно средствами visual'a), чтобы приложение яапускалось раньше всех в системе, ну имеется ввиду, после ее запуска? Т.е. своеобраяная автозагруяка, но раньше всех... Желательно, даже значки с рабочки и трей обогнать!!!

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

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

    Как в VBA испольяуя ADODC и DGrid подключиться к файлу Excel и просматривать, ияменять яначения в ячейках.

    Автор вопроса: Александр

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

    Передать информацию по UDP протоколу проще простого!, но как принять? не подскажите как это можно осуществить - программа принимающая данные из сети по определённому порту в протоколе UDP.
    Я использую VB.NET

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

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

    Я сделал отчет с помощью Crystal Reports Pro присоединил к форме, но когда яаношу новые данные в отчете они не обновляются, как это сделать или подскажите как можно сделать отчет по другому если это вояможно. Испольяую баяу данных MS Access

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

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

    Подскажите где вяять описание функций WinInet.dll.

    Ответы:

    Вопрос:

    Как получить полный объем жесткого диска и объем яагруженности жесткого диска.

    Ответ:

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

    есть 2 способа.

    1. Использовать функцию API GetDiskFreeSpace:

    Declare Function GetDiskFreeSpace Lib "kernel32" Alias
    "GetDiskFreeSpaceA" (ByVal lpRootPathName As String, _
    lpSectorsPerCluster As Long, lpBytesPerSector As Long, _
    lpNumberOfFreeClusters As Long, _
    lpTotalNumberOfClusters As Long) As Long

    Где lpRootPathName - имя диска ("C:"),

    свободное место = CDbl(lpNumberOfFreeClusters) * lpSectorsPerCluster *
    lpBytesPerSector,

    всего места = CDbl(lpTotalNumberOfClusters) * lpSectorsPerCluster *
    lpBytesPerSector

    CDbl я ставлю чтобы избежать ошибки Overflow.

    2. Подключить библиотеку Microsoft Scripting Runtime (scrrun.dll), затем

    Dim FSO As New FileSystemObject

    и использовать

    FSO.Drives("C").TotalSpace
    FSO.Drives("C").FreeSpace

    но этот метод не всегда праильно работает.

    Вопрос:

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

    Ответ:

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

    Пишешь bat файл который сносит реестр и кладет на его место заранее зарезервированный и добавляешь его в autoexec.bat. Теперь при каждой перезагрузке реестр будет возвращаться к исходному положению.

    Вопрос:

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

    Ответ:

    Автор ответа: Konstantin Kozhin

    Поставь NT-шку, как администратор, запрети любые изменения системы. Это достаточное и необходимое условие для того, чтобы тупые ученики не смогли ничего учудить:)))

    Вопрос:

    Есть-ли универсальные способы яаполнения ListView и TreeView ия объекта типа recordset. Это может быть как код, так и контролы, но код лучше.

    Ответ:

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

    Держи пару процедур, работающих с TreeView. Они написаны моим давним другом и уже давно кочуют и сайта в сайт. Может они тебе помогут. Набор использует в качестве источника "деревянную" (т.е. ссылающуюся саму на себя таблицу). В остальном разберешься. Удачи!

    Public Sub Read_ToTree(ByVal rs As Object, _
    ByVal iId As Integer, _
    ByVal iUp As Integer, _
    ByVal iName As Integer, _
    Optional EnsureVisible As Boolean = False)

    Dim Key_Item As String
    Dim Name_Item As String
    Dim i_UpTmp As Long

    Tree_Current.Nodes.Clear

    rs.MoveFirst

    Do Until rs.EOF
    'Формируем верхний уровень
    If rs(iUp) = 1 Then

    Key_Item = "ID" & Trim(CStr(rs(iId)))
    Name_Item = Trim(CStr(IIf(IsNull(rs(iName)), " ", rs(iName))))

    Tree_Current.Nodes.Add , , Key_Item, Name_Item, 8

    'В Tag поместим ID !!!
    Tree_Current.Nodes _
    (Tree_Current.Nodes.Count).Tag = rs(iId)

    If EnsureVisible Then Tree_Current.Nodes _
    (Tree_Current.Nodes.Count).EnsureVisible

    i_UpTmp = rs.Bookmark
    ' Теперь следует для Parent-отчета сделать дерево Child
    Call MySuns(rs(iId), Key_Item, rs, iId, iUp, iName, EnsureVisible)

    'Вернуться к родительской записи
    rs.Bookmark = i_UpTmp

    End If
    rs.MoveNext
    Loop
    End Sub

    Private Sub MySuns(ByVal Parent_ID As Long, _
    ByVal Parent_Key As String, _
    ByVal rs As Object, _
    ByVal iId As Integer, _
    ByVal iUp As Integer, _
    ByVal iName As Integer, _
    Optional EnsureVisible As Boolean = False)

    Dim i_UpTmp As Long

    rs.MoveFirst

    Do Until rs.EOF
    'Формируем верхний уровень

    If (rs(iUp) = Parent_ID) Then
    Tree_Current.Nodes.Add Parent_Key, tvwChild, "ID" & Trim(CStr(rs(iId))), Trim(CStr(rs(iName))), 9
    Tree_Current.Nodes _
    (Tree_Current.Nodes.Count).Tag = rs(iId)

    If EnsureVisible Then Tree_Current.Nodes _
    (Tree_Current.Nodes.Count).EnsureVisible

    ' Теперь следует для Parent-отчета сделать дерево Child
    i_UpTmp = rs.Bookmark

    Call MySuns(rs(iId), "ID" & Trim(CStr(rs(iId))), rs, iId, iUp, iName, EnsureVisible)
    'Вернуться к родительской записи
    rs.Bookmark = i_UpTmp
    End If
    rs.MoveNext
    Loop
    End Sub

    Вопрос:

    Как на форме нарисовать треугольник по 3 точкам, может быть с помощью API функции, важна скорость прорисовки!

    Ответ:

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

    Нельзя, только по 6 точкам ( 3 линии ).

    Вопрос:

    Как на форме нарисовать треугольник по 3 точкам, может быть с помощью API функции, важна скорость прорисовки!

    Ответ:

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

    если всего один треугольник то сойдет и функция бейсика

    Line(x1,y1)-(x2,y2),[color]

    там еще что-то есть - смотри в справке если надо.

    Вопрос:

    Тупой вопрос
    Открываю Notepad пишу туда число 20
    Закрываю. Смотрю размер файла - 2 байта
    Делаю тоже самое в ВБ

    Dim FileNum As Integer
    Dim txt As Byte
    FileNum = FreeFile

    txt = 20
    Open "c:\file.txt" For Output As FileNum
    Write #FileNum, txt
    Close #FileNum
    Смотрю размер 4 байта

    Мне необходимо создать именно 2 байтовый
    Пробовал через Binary Access - добавляются левые символы
    Помогите примером

    Ответ:

    Автор ответа: Konstantin Kozhin

    Попробуй заменить строчку

    txt = 20

    на

    txt = "20"

    , т.е. 20 - символьное значение.
    Возможен и такой вариант строки

    txt = str(20)

    Вопрос:

    Тупой вопрос
    Открываю Notepad пишу туда число 20
    Закрываю. Смотрю размер файла - 2 байта
    Делаю тоже самое в ВБ

    Dim FileNum As Integer
    Dim txt As Byte
    FileNum = FreeFile

    txt = 20
    Open "c:\file.txt" For Output As FileNum
    Write #FileNum, txt
    Close #FileNum
    Смотрю размер 4 байта

    Мне необходимо создать именно 2 байтовый
    Пробовал через Binary Access - добавляются левые символы
    Помогите примером

    Ответ:

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

    А вот так работает!

    Dim FileNum As Integer
    Dim txt As String 'Строковый тТип
    FileNum = FreeFile

    txt = Mid(Str(20), 2) 'Переводим цифры в символы и убираем 1 символ ( пробел )

    'Записываем в бинарном режиме.
    Open "c:\file.txt" For Binary As FileNum
    Put #FileNum, 1, txt
    Close #FileNum

    Вопрос:

    Тупой вопрос
    Открываю Notepad пишу туда число 20
    Закрываю. Смотрю размер файла - 2 байта
    Делаю тоже самое в ВБ

    Dim FileNum As Integer
    Dim txt As Byte
    FileNum = FreeFile

    txt = 20
    Open "c:\file.txt" For Output As FileNum
    Write #FileNum, txt
    Close #FileNum
    Смотрю размер 4 байта

    Мне необходимо создать именно 2 байтовый
    Пробовал через Binary Access - добавляются левые символы
    Помогите примером

    Ответ:

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

    Как раз через Binary и надо делать, только переменную txt объявляй не как Byte, а как String!

    Вопрос:

    Подскажите как сохранить фаил .txt не вызывая диалога сохранения

    Ответ:

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

    Open "C:\Файл.txt" For Output as #1
    Print #1, "Строка для сохранения"
    Close #1

    Вопрос:

    Подскажите как сохранить фаил .txt не вызывая диалога сохранения

    Ответ:

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

    Используй FileSystemObject. Никаких диалогов, все шито-крыто!:)

    Вопрос:

    Как сделать, чтобы RichTextBox скроллился автоматически?

    Ответ:

    Автор ответа: Konstantin Kozhin

    Есть 2 решения:
    1) попробовать вывести в объект КУЧУ текста:)))
    2) покопаться в Properties (Свойствах) объекта

    Вопрос:

    Как подключить FileSystemObject? Какая библиотека за нее отвечает?

    Ответ:

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

    Библиотека, отвечающая за FileSystemObject называется Microsoft Scripting Runtime. Подключаешь ее в References. Дальше объявляешь переменную

    Dim fsoObject As New FileSystemObject,

    а дальшн все увидишь полсле того,как наберешь после нее точку:)

    Вопрос:

    Как подключить FileSystemObject? Какая библиотека за нее отвечает?

    Ответ:

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

    Подключить библиотеку Microsoft Scripting Runtime (scrrun.dll) в Project->References.

    Вопрос:

    Как подключить FileSystemObject? Какая библиотека за нее отвечает?

    Ответ:

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

    Да вроде это библиотека ScrRun.dll
    ПОдключить можео в Ссылках на библиотеки

    Вопрос:

    Как подключить FileSystemObject? Какая библиотека за нее отвечает?

    Ответ:

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

    Создание объекта FileSystemObject
    Объектная модель FileSystemObject содержится в библиотеке типов, называемой Scripting, которая размещена в файле scrrun.dll. Для использования объекта в своих проектах нужно установить ссылку на Microsoft Scripting Runtime(Project->References...)

    Первый способ создания объекта FileSystemObject
    Объявим переменную, как объект:

    Dim fso As FileSystemObject
    Set fso = New Scripting.FileSystemObject

    Второй способ создания объекта FileSystemObject
    Используем метод CreateObject для создания объекта FileSystemObject:

    Dim fso As FileSystemObject
    Set fso = CreateObject("Scripting.FileSystemObject")

    Вопрос:

    Как найти число строк в Text1.Text?
    Как найти первое слово ия каждой стоки?
    Как польяоваться функцией Find в RichTextBox?

    Другими словами я соядал цикл:

    For i = 0 To [число строк в Text1.Text]
    RTFText1.Find [первое слово ия строки i]
    If [слово найдено] Then
    . . .
    End If
    Next i

    Всё что яаписанно в квадратных скобках, туда надо вписать правильный код.
    Да, и ещё, в Text1 текст записан вот так:

    чёрный, белый
    большой, малый
    . . .

    Ответ:

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

    >Как найти число строк в Text1.Text?

    LinesCount = Ubound(Split(Text1.Text,vbCrLf))

    Строки нумеруются с нуля.

    >Как найти первое слово ия каждой стоки?

    Split(Split(Text1.Text,vbCrLf)(LineNum),", ")(WordNum)

    Выдаёт слово под номером WordNum в строке номер LineNum.
    Строки и слова нумеруются с нуля.

    Вопрос:

    Здрасьте, мой вопрос про изображения.
    Короче у элемента ImageBox есть свойство Stretch, оно подгоняет картинку под размеры элемента, но когда переносишь это изображение в PictureBox, то размеры опять меняются. А мне надо, чтобы они остались такими какими были в ImageBox (Stretch=true). Я пробовал делать так: Загружаю картинку в ИмагеБокс и с помощью метода PaintPicture пытаюсь перенести её в ПикчерБокс в том же виде, но получается ещё большая фигня чем была. Последнее я делал так:

    Private Sub Command1_Click()
    Image1.Picture = LoadPicture(Text1.Text)
    Picture1.ScaleMode = 3
    Picture1.PaintPicture Image1.Picture, 0, 0, Picture1.ScaleWidth,
    Picture1.ScaleHeight, _
    0, 0, Image1.Width, Image1.Height, vbSrcCopy
    End Sub

    Что здесь не так? Или как мне вообще перенести картинку из ImageBox (stretch=true) в PictureBox не потеряв размеров? Помогите пожайлуста, я уже просто в отчаянии, пробовал и через буфер, и через файл - никак не получается. Была надежда на метод PaintPicture и та провалилась. Как мне сделать так, как написано выше?

    Ответ:

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

    Да вроде Image только растягивает у себя внутри И ПикчерБоксу присваивается то, что растягивается в Имаге... :(
    Вообще в Интернете я видел контрол, у которого объеденины свойства Имага и ПикчерБокса... Сайт "VB на Русском":
    http://www.vbrussian.com/
    Посмотри там много чо есть

    Вопрос:

    Здрасьте, мой вопрос про изображения.
    Короче у элемента ImageBox есть свойство Stretch, оно подгоняет картинку под размеры элемента, но когда переносишь это изображение в PictureBox, то размеры опять меняются. А мне надо, чтобы они остались такими какими были в ImageBox (Stretch=true). Я пробовал делать так: Загружаю картинку в ИмагеБокс и с помощью метода PaintPicture пытаюсь перенести её в ПикчерБокс в том же виде, но получается ещё большая фигня чем была. Последнее я делал так:

    Private Sub Command1_Click()
    Image1.Picture = LoadPicture(Text1.Text)
    Picture1.ScaleMode = 3
    Picture1.PaintPicture Image1.Picture, 0, 0, Picture1.ScaleWidth,
    Picture1.ScaleHeight, _
    0, 0, Image1.Width, Image1.Height, vbSrcCopy
    End Sub

    Что здесь не так? Или как мне вообще перенести картинку из ImageBox (stretch=true) в PictureBox не потеряв размеров? Помогите пожайлуста, я уже просто в отчаянии, пробовал и через буфер, и через файл - никак не получается. Была надежда на метод PaintPicture и та провалилась. Как мне сделать так, как написано выше?

    Ответ:

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

    Подробности в MSDN. Это разного назначения и свойств элементы...

    Вопрос:

    Здрасьте, мой вопрос про изображения.
    Короче у элемента ImageBox есть свойство Stretch, оно подгоняет картинку под размеры элемента, но когда переносишь это изображение в PictureBox, то размеры опять меняются. А мне надо, чтобы они остались такими какими были в ImageBox (Stretch=true). Я пробовал делать так: Загружаю картинку в ИмагеБокс и с помощью метода PaintPicture пытаюсь перенести её в ПикчерБокс в том же виде, но получается ещё большая фигня чем была. Последнее я делал так:

    Private Sub Command1_Click()
    Image1.Picture = LoadPicture(Text1.Text)
    Picture1.ScaleMode = 3
    Picture1.PaintPicture Image1.Picture, 0, 0, Picture1.ScaleWidth,
    Picture1.ScaleHeight, _
    0, 0, Image1.Width, Image1.Height, vbSrcCopy
    End Sub

    Что здесь не так? Или как мне вообще перенести картинку из ImageBox (stretch=true) в PictureBox не потеряв размеров? Помогите пожайлуста, я уже просто в отчаянии, пробовал и через буфер, и через файл - никак не получается. Была надежда на метод PaintPicture и та провалилась. Как мне сделать так, как написано выше?

    Ответ:

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

    А попробуй использовань API BitBlt с ним можно работать с picturebox не используя ImageBox и быстро работает.

    Вопрос:

    Вот вам товарищи программеры обломный вопрос - как вставлять модели 3DMax'а в VB6 программы и самое главное как ими потом управлять, если можно с примерами и по проще...
    А то вот собрался 3D елку к новому году зделать а как MAX'овские модели всавлять неизвестно :(

    P.S.
    кстати если кто хочет присоединится к моему проэкту всегда пожалуйста, несколько vb программеров работающих за одно - это сила :))

    Ответ:

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

    Самый простой способ - переконвертить .3ds (.max) в .x, а затем вставить их с помощью Direct3D.
    Впрочем, можно поискать ActiveX в Инете, но всё же такое лучше делать руками.

    Вопрос:

    Впривет всем, не подскажет ли кто, как ставить на форму воидоусовские элементы по умолчанию, как например делает WinZip 8.1 - если его запустить в WinME то у него обычные кнопочки, а если его запустить под ХР то кнопки меняются на ХР'шные причем если поменять оформление рабочего стола (голубое / серебрянное / оливковое) то кнопки тоже меняются. Я что-то собневаюсь, что WinZip Computing (как они себя называют) переделала все контролы из ХР заново.

    Ответ:

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

    > Я что-то собневаюсь, что WinZip Computing (как они себя называют) переделала все контролы из ХР заново
    И правильно! Этот стандарт определяется фунциями Windows, отвечающими за создание окна. Если не пороть отсебятины, то всё происходит гармонично, а не как в WinAmp'е...

    Вопрос:

    Что такое Package & Deployment Wizard и нафиг это надо????

    Ответ:

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

    Package & Deployment Wizard - это инсталлятор наподобие InstallShield. Но в некоторых версиях он запорот. В Сервис Паке 6 он не запорот и его можно установить из него
    А вообще это не очень крутая штучка :( Лучше использовать Inno Setup, или еще круче Setup Factory, или еще что-нибудь понавороченнее :)

    Вопрос:

    Что такое Package & Deployment Wizard и нафиг это надо????

    Ответ:

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

    Если твою прогу не надо нести к кому-то на компьютер или продавать, то и на фиг Package & Deployment Wizard ...

    Вопрос:

    Есть ли у кого-нибудь библиотека Microsoft Data Bound Grid Control 5.0 или ссылка где её можно скачать. В VB6.0 у меня она отсутствует.

    Ответ:

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

    "Components" смотрел?

    Вопрос:

    есть прога которая паботает с базой данных mbd. Переношу на другую машину, инсталлирую. При запуске пишет что не может найти поставщика данных. Для доступа к базе использую Microsoft Jet 3.51 OLE DB Provider(выбираю в свойствах элемента ADO Data).
    В литературе пишут что надо создать источник данных, т.е. файл с расширением mdl. Это не получилось. Тем не менее приложение работает на машине где есть VB.
    Win 2000
    VB 6.0

    Ответ:

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

    Надо запустить MDAC, прилагаемый ко многим продуктам MS: Office, Visual Studio etc.

    Вопрос:

    Помогите! Кто-нибудь знает как сделать прогу, которая по нажатию на кнопку (Command1 например) удаляла бы все файлы из заданой папки?
    И еще. Кто-нибудь знает как сделать прогу при запуске которой по эрану бегала бы какая-нибудь зверюшка (может кто-нибудь видел овцу бегающую по экрану)?

    Ответ:

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

    В принципе знаю как зделать.
    Можно сделать окно не стандартной формы и у него поставить пикчер, но координаты контура должны совпадать с изображением
    Есть способ наверно получше... Так что подумай, если что пиши мне

    Вопрос:

    Помогите! Кто-нибудь знает как сделать прогу, которая по нажатию на кнопку (Command1 например) удаляла бы все файлы из заданой папки?
    И еще. Кто-нибудь знает как сделать прогу при запуске которой по эрану бегала бы какая-нибудь зверюшка (может кто-нибудь видел овцу бегающую по экрану)?

    Ответ:

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

    Добавь строчку в Command1_Click:

    Shell("cmd /C del /Q " & DirToPurge & "*.*",vbHide)

    где DirToPurge - очищаемая директория.
    В случае Win98-95-Me замени cmd на command.

    Вопрос:

    Помогите! Кто-нибудь знает как сделать прогу, которая по нажатию на кнопку (Command1 например) удаляла бы все файлы из заданой папки?
    И еще. Кто-нибудь знает как сделать прогу при запуске которой по эрану бегала бы какая-нибудь зверюшка (может кто-нибудь видел овцу бегающую по экрану)?

    Ответ:

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

    1) Удалять можно поразному, один из способов функция Kill ("c:\1\*.*").
    2) Овца или баран я незнаю но знаю одно я его почти сделал (нет только движений) точнее переделал. Наверное неделю пыхтел над ним, но ядро сделал, весь код писал сам без всяких dll ocx, кому нужен пишите ou953@ipn.ru .

    Вопрос:

    Народ, подскажите, можно ли в VB 6 генерить явук на Пищалку с яаданной частотой (по аналогу Basic'a: sound x,x)? И как это сделать?

    Ответ:

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

    Юзай (работает в W2k и выше, по-моему):

    Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long.

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

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

    наверх

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


Выпуск 111.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

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

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

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

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

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

    Новый выпуск. Ничего нового в рассылке и на сайте не происходит... Меня поразило количество писем в раздел Вопрос/Ответ - почти час в базу данных закидывал!
    Читайте!

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

    • Шифровка/расшифровка текста с использованием пароля
    • Изменение свойства Style (стиль)
    • Изменение высоты выпадающей части комбобокса (Вариант 1)
    • Как установить количество открываемых строк (вариант 1)
    • Изменение высоты выпадающей части комбобокса (Вариант 2)
    • Изменилось ли содержимое ComboBox

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

    Книги

    Переход на 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 можно найти     здесь.

    наверх

    Шифровка/расшифровка текста с использованием пароля

    Добавьте на форму элемент TextBox и два элемента CommandButton.

    Public Function Encrypt(ByVal Source As String, ByVal Password As String) As String 'шифрование данных
    Dim a As String
    Dim b As String
    Dim c As String
    Dim d As String
    Dim lentext As Long
    Dim lenpass As Long
    Dim cn As Long
    'ввод исходных данных
    'исходный текст для шифрования - запрашивается от пользователя, к примеру -
    a = Source
    'пароль: может запрашиваться от пользователя
    b = Password
    'итог шифрования
    c = ""
    'узнаем длины каждой из строк
    lentext = Len(a)
    lenpass = Len(b)
    'собственно шифрование
    For cn = 1 To lentext
    'в этой строке разберитесь сами, здесь попросту выполняется функция Xor с каждым символом исходной строки и соответствующим символом пароля, как бы "повторенным" на всю длину исходного текста. Mid берет из середины строки символ, Asc - превращает его в ASCII-код, Str - превращает число в строку, Trim - удаляет пробелы
    d = Trim(Str(Asc(Mid(a, cn, 1)) Xor Asc(Mid(b, ((cn - 1) Mod lenpass) + 1, 1))))
    'а теперь сделаем так, чтобы каждый символ занимал ровно три позиции, вне зависимости от величины его ASCII-кода. А иначе как вы будете потом при расшифровке разбивать строку на символы?
    Select Case Val(d)
    Case 0 To 9
    d = "00" + d
    Case 10 To 99
    d = "0" + d
    End Select
    c = c + d
    'ну вот и все, и так - с каждым символом из исходной строки
    Next cn
    'в итоге в переменной с - зашифрованная строка, каждой исходной букве соответствует 3 символа, ее можно записать в любое место - в документ, к примеру:
    Encrypt = c
    End Function

    Public Function Decrypt(ByVal Code As String, ByVal Password As String) As String 'расшифровывание данных
    Dim a As String
    Dim b As String
    Dim c As String
    Dim d As String
    Dim lentext As Long
    Dim lenpass As Long
    Dim cn As Long
    'строка для расшифровки
    c = Code
    'пароль
    b = Password
    'итог расшифровывания
    a = ""
    'узнаем длины каждой из строк
    lentext = Len(c)
    lenpass = Len(b)
    'собственно расшифровывание
    For cn = 1 To lentext Step 3
    a = a + Chr(Val(Mid(c, cn, 3)) Xor Asc(Mid(b, (Int(cn / 3) Mod lenpass) + 1, 1)))
    Next cn
    'в итоге в переменной a - расшифрованная строка, ее можно записать в любое место - в документ, к примеру:
    Decrypt = a
    End Function

    Private Sub Command1_Click()
    Text1 = Encrypt("никому не скажу", "parol")
    End Sub

    Private Sub Command2_Click()
    Text1 = Decrypt(Text1, "parol")
    End Sub

    наверх

    Изменение свойства Style (стиль)

    Если вы попытаетесь изменить свойство Style элементов OptionButton и CheckBox во время выполнения программы, вы получите сообщение об ошибке "can't assign to read-only property". Для решения этой проблемы вы можете воспользоваться следующим кодом.
    Добавьте на форму элементы OptionButton, CheckBox и 3 CommandButton.

    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Const GWL_STYLE = (-16)
    Const BS_PUSHLIKE = &H1000&
    Public Sub SetGraphicStyle(StyleButton As Control, Flag As Boolean)
    Dim curstyle As Long
    Dim newstyle As Long
    'exit this sub if the control is not Option Button or Check Box
    If Not TypeOf StyleButton Is OptionButton And _
    Not TypeOf StyleButton Is CheckBox Then Exit Sub
    curstyle = GetWindowLong(StyleButton.hwnd, GWL_STYLE)
    If Flag Then
    curstyle = curstyle Or BS_PUSHLIKE
    Else
    curstyle = curstyle And (Not BS_PUSHLIKE)
    End If
    newstyle = SetWindowLong(StyleButton.hwnd, GWL_STYLE, curstyle)
    StyleButton.Refresh
    End Sub

    Private Sub Command1_Click()
    Call SetGraphicStyle(Option1, True)
    Call SetGraphicStyle(Check1, True)
    End Sub
    Private Sub Command2_Click()
    Call SetGraphicStyle(Option1, False)
    Call SetGraphicStyle(Check1, False)
    End Sub
    Private Sub Command3_Click()
    Option1.Value = False
    Check1.Value = False
    End Sub

    наверх

    Изменение высоты выпадающей части комбобокса (Вариант 1)

    Данный пример покажет, как можно изменить высоту выпадающей части элемента ComboBox в зависимости от высоты формы, на которой элемент расположен.

    Private Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
    Private Sub Form_Load()
    Dim i As Integer ' Заполняем комбобокс значениями
    For i = 1 To 50
    Combo1.AddItem Format$(i)
    Next i
    Combo1.ListIndex = 0 ' Меняем размер выпадающей части комбобокса
    ReSizeCombo Me, Combo1
    End Sub
    Public Sub ReSizeCombo(frm As Form, cbo As ComboBox) ' Процедура меняет размер выпадающей части комбобокса
    Dim cboLeft As Long
    Dim cboTop As Long
    Dim cboWidth As Long
    Dim cboHeight As Long
    Dim oldScaleMode As Long ' Меняем Scale Mode формы на пиксели.
    oldScaleMode = frm.ScaleMode
    frm.ScaleMode = vbPixels ' Сохраняем размеры комбобокса
    cboLeft = cbo.Left
    cboTop = cbo.Top
    cboWidth = cbo.Width ' Задаем новую высоту комбобокса, в соотвествии с рабочей областью формы
    cboHeight = frm.ScaleHeight - cbo.Top - 5
    frm.ScaleMode = oldScaleMode 'и собственно ресайзаем
    MoveWindow cbo.hwnd, cboLeft, cboTop, cboWidth, cboHeight, 1
    End Sub
    Private Sub Form_Resize()
    ReSizeCombo Me, Combo1
    End Sub

    наверх

    Как установить количество открываемых строк (вариант 1)

    Private Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Const CB_GETITEMHEIGHT = &H154
    Private Sub Form_Load()
    Dim i As Integer
    'Заполняем комбобокс значениями
    For i = 1 To 50
    Combo1.AddItem Format$(i)
    Next i
    Combo1.ListIndex = 0
    'Меняем размер выпадающей части комбобокса
    ReSizeCombo Me, Combo1, 9
    End Sub

    Public Sub ReSizeCombo(frm As Form, cbo As ComboBox, n As Integer)
    'Процедура меняет размер выпадающей части комбобокса
    Dim cboLeft As Long
    Dim cboTop As Long
    Dim cboWidth As Long
    Dim cboHeight As Long
    Dim oldScaleMode As Long
    Dim h As Long
    'Меняем Scale Mode формы на пиксели.
    oldScaleMode = frm.ScaleMode
    frm.ScaleMode = vbPixels
    'Сохраняем размеры комбобокса
    cboLeft = cbo.Left
    cboTop = cbo.Top
    cboWidth = cbo.Width
    'Получаем высоту одной строчки в пикселях
    h = SendMessage(cbo.hwnd, CB_GETITEMHEIGHT, 0, 0)
    'Задаем новую высоту комбобокса
    'К количеству строк надо прибавить 2 (не знаю почему)
    cboHeight = h * (n + 2)
    frm.ScaleMode = oldScaleMode
    'и собственно ресайзаем
    MoveWindow cbo.hwnd, cboLeft, cboTop, cboWidth, cboHeight, 1
    End Sub

    наверх

    Изменение высоты выпадающей части комбобокса (Вариант 2)

    Изменяя значение '100' в событии Form_Load вы меняете высоту выпадающей части элемента ComboBox

    Private Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
    Function SetComboHeight(YourCombo As ComboBox, lDropDownHeight As Long)
    Dim oldscalemode As Integer
    If TypeOf YourCombo.Parent Is Frame Then Exit Function
    oldscalemode = YourCombo.Parent.ScaleMode
    YourCombo.Parent.ScaleMode = vbPixels
    MoveWindow YourCombo.hwnd, YourCombo.Left, _
    YourCombo.Top, YourCombo.Width, lDropDownHeight, 1
    YourCombo.Parent.ScaleMode = oldscalemode
    End Function

    Private Sub Form_Load()
    'Замените значение '100' ниже на нужную вам высоту элемента ComboBox
    SetComboHeight Combo1, 100
    End Sub

    наверх

    Изменилось ли содержимое ComboBox

    Данный код позволяет проверить, изменилось ли содержиомое ComboBox'а
    Расположите на форме элементы ComboBox и CommandButton

    Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWndParent As Long, ByVal hWndChild As Long, ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Const EM_SETMODIFY = &HB9
    Const EM_GETMODIFY = &HB8
    Private Sub Command1_Click()
    Dim CombohWnd As Long
    Dim DirtyFlag As Long
    CombohWnd = FindWindowEx(Combo1.hWnd, 0&, vbNullString, vbNullString)
    DirtyFlag = SendMessage(CombohWnd, EM_GETMODIFY, ByVal 0&, ByVal 0&)
    If DirtyFlag = 1 Then
    MsgBox "Содержимое Combo Box изменилось"
    Else
    MsgBox "Содержимое Combo Box не изменилось"
    End If
    End Sub

    наверх

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

    BalloonMessage for MS Agent

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

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

    наверх

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

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

    Вопросы:

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

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

    В пакете Microsoft Office Word имеется перенос слов по слогам, если его можно использовать в своей программе, то как это можно сделать? Не хочется изобретать велосипед.

    Автор вопроса: Nechaev Sergey

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

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

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

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

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

    Автор вопроса: Артем

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

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

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

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

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

    Автор вопроса: Сергей

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

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

    Автор вопроса: Сергей

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

    Как раяархивировать zip формат

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

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

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

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

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

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

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

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

    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.Может кто янает как еще можно проверить есть свьяь с инетом или нет.

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

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

    Не мог бы кто нибудь прислать мне не сложный пример на тему Ping... (как работать...)
    Желательно с описанием...
    Gav@beep.ru

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

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

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

    Автор вопроса: Dr.Max

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

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

    Ответы:

    Вопрос:

    Как отследить, какие клавиши нажимаются на клавиатуре, при этом форма находится в свернутом состоянии?

    Ответ:

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

    Вытащил из API-Guide 3.7

    'In a module
    Public Const DT_CENTER = &H1
    Public Const DT_WORDBREAK = &H10
    Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
    End Type
    Declare Function DrawTextEx Lib "user32" Alias "DrawTextExA" (ByVal hDC As Long, ByVal lpsz As String, ByVal n As Long,
    lpRect As RECT, ByVal un As Long, ByVal lpDrawTextParams As Any) As Long
    Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal
    lpTimerFunc As Long) As Long
    Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
    Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    Declare Function SetRect Lib "user32" (lpRect As RECT, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As
    Long) As Long
    Global Cnt As Long, sSave As String, sOld As String, Ret As String
    Dim Tel As Long
    Function GetPressedKey() As String
    For Cnt = 32 To 128
    'Get the keystate of a specified key
    If GetAsyncKeyState(Cnt) <> 0 Then
    GetPressedKey = Chr$(Cnt)
    Exit For
    End If
    Next Cnt
    End Function
    Sub TimerProc(ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)
    Ret = GetPressedKey
    If Ret <> sOld Then
    sOld = Ret
    sSave = sSave + sOld
    End If
    End Sub

    'In a form
    Private Sub Form_Load()
    'KPD-Team 1999
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    Me.Caption = "Key Spy"
    'Create an API-timer
    SetTimer Me.hwnd, 0, 1, AddressOf TimerProc
    End Sub
    Private Sub Form_Paint()
    Dim R As RECT
    Const mStr = "Start this project, go to another application, type something, switch back to this application and unload
    the form. If you unload the form, a messagebox with all the typed keys will be shown."
    'Clear the form
    Me.Cls
    'API uses pixels
    Me.ScaleMode = vbPixels
    'Set the rectangle's values
    SetRect R, 0, 0, Me.ScaleWidth, Me.ScaleHeight
    'Draw the text on the form
    DrawTextEx Me.hDC, mStr, Len(mStr), R, DT_WORDBREAK Or DT_CENTER, ByVal 0&
    End Sub
    Private Sub Form_Resize()
    Form_Paint
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    'Kill our API-timer
    KillTimer Me.hwnd, 0
    'Show all the typed keys
    MsgBox sSave
    End Sub

    Вопрос:

    Как отследить, какие клавиши нажимаются на клавиатуре, при этом форма находится в свернутом состоянии?

    Ответ:

    Автор ответа: Администратор

    Если нужно глобально, то без библиотеки не обойдешься.
    на сайт dansoft.narod.ru в разделе библиотеки есть библиотека Danlib.dll
    С помощью её ты и сможешь перехватывать нажатие клавишь клавиатуры и мыши.

    Вопрос:

    У меня такой вопросик: в Accessовской таблице есть два поля (допустим одно поле "Мужские фамилия", другое поле "Женские фамилия"), необходимо в отчете эти поля объединить в одно и отиндексировать по алфавиту.
    И такой вопросик: в Accessовской таблице есть поля (допустим поле "Пол" и поле "Имя"), необходимо в отчете вывести имена в два столбца параллельно (допустим справа Женские, а слева Мужские).
    Желательно пример кода, но буду рад даже мыслям и идеям!

    Ответ:

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

    Запрос для объединения полей и сортировки:

    SELECT [МужскоеИмя] & " " & [ЖенскоеИмя] AS ОбъединенноеПоле, [Таблица].МужскоеИмя, [Таблица].ЖенскоеИмя FROM [Таблица]
    ORDER BY [МужскоеИмя] & " " & [ЖенскоеИмя];

    В отчете создай поле, укажи данные из [ОбъединенноеПоле]

    Вопрос:

    Как на VB работать с графикой. Точнее со спайтами. Тобишь есть картинка. Как на ней яаставить двигаться другую картинку бея глюков. А то если испольяовать PicBox или Image то при движении появляються глюки. Желательно с примерами и по проши.

    Ответ:

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

    впиши этот код в пустую форму,
    сохрани его,
    в директории где его сохранил помести два файла
    image1.jpg
    image2.jpg
    запусти и ...

    Dim Image1 As IPictureDisp
    Dim Image2 As IPictureDisp

    Private Type Location
    X As Integer
    Y As Integer
    End Type

    Dim Image1Move As Integer

    Dim Image2MoveX As Integer
    Dim Image2MoveY As Integer

    Dim Image1Local As Location
    Dim Image2Local As Location

    Const Operation = vbSrcAnd

    Private Sub Form_Load()
    'Load the graphics
    Set Image1 = LoadPicture(App.Path & "\Image1.jpg")
    Set Image2 = LoadPicture(App.Path & "\Image2.jpg")

    'Setup the window
    With frmMain
    .Show
    .Refresh
    .AutoRedraw = True
    .ScaleMode = vbPixels
    End With

    'Load the variables
    Image1Move = 1
    Image2MoveX = 3
    Image2MoveY = 3

    'Begin the loop
    Do
    'Draw image 1
    frmMain.PaintPicture Image1, Image1Local.X, Image1Local.Y
    frmMain.PaintPicture Image1, Image1Local.X + frmMain.ScaleWidth, Image1Local.Y
    frmMain.PaintPicture Image1, Image1Local.X, Image1Local.Y + frmMain.ScaleHeight
    frmMain.PaintPicture Image1, Image1Local.X + frmMain.ScaleWidth, Image1Local.Y + frmMain.ScaleHeight

    'Draw image 2
    frmMain.PaintPicture Image2, Image2Local.X, Image2Local.Y, , , , , , , Operation
    frmMain.PaintPicture Image2, Image2Local.X + frmMain.ScaleWidth, Image2Local.Y, , , , , , , Operation
    frmMain.PaintPicture Image2, Image2Local.X, Image2Local.Y + frmMain.ScaleHeight, , , , , , , Operation
    frmMain.PaintPicture Image2, Image2Local.X + frmMain.ScaleWidth, Image2Local.Y + frmMain.ScaleHeight, , , , , , ,
    Operation

    'Move the images
    With Image1Local
    .X = .X - Image1Move
    .Y = .Y - Image1Move

    If .X < -frmMain.ScaleWidth Then .X = 0
    If .Y < -frmMain.ScaleHeight Then .Y = 0
    End With

    With Image2Local
    .X = .X - Image2MoveX
    .Y = .Y - Image2MoveY

    If .X < -frmMain.ScaleWidth Then .X = 0
    If .Y < -frmMain.ScaleHeight Then .Y = 0

    If .X + frmMain.ScaleWidth > frmMain.ScaleWidth Then .X = -frmMain.ScaleWidth
    If .Y + frmMain.ScaleHeight > frmMain.ScaleHeight Then .Y = -frmMain.ScaleWidth
    End With

    'Release for moving events etc.
    DoEvents
    Loop
    End Sub

    Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Image2MoveX = Int(frmMain.ScaleWidth \ 2 - X) \ 10
    Image2MoveY = Int(frmMain.ScaleWidth \ 2 - Y) \ 10
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    'Close the program
    End
    End Sub

    Private Sub lblOperation_Click()

    End Sub

    Private Sub Label1_Click()

    End Sub

    Вопрос:

    Как сделать так (не обяяательно средствами visual'a), чтобы приложение яапускалось раньше всех в системе, ну имеется ввиду, после ее запуска? Т.е. своеобраяная автозагруяка, но раньше всех... Желательно, даже значки с рабочки и трей обогнать!!!

    Ответ:

    Автор ответа: Администратор

    Делай свою программу малых обьемов.
    Чем меньше программа тем быстрее она запустится.

    Вопрос:

    Как сделать так (не обяяательно средствами visual'a), чтобы приложение яапускалось раньше всех в системе, ну имеется ввиду, после ее запуска? Т.е. своеобраяная автозагруяка, но раньше всех... Желательно, даже значки с рабочки и трей обогнать!!!

    Ответ:

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

    поместить строку запуска в RunServicies

    Вопрос:

    Как сделать так (не обяяательно средствами visual'a), чтобы приложение яапускалось раньше всех в системе, ну имеется ввиду, после ее запуска? Т.е. своеобраяная автозагруяка, но раньше всех... Желательно, даже значки с рабочки и трей обогнать!!!

    Ответ:

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

    В Win98 это можно сделать в файле winstart.bat. Если его нет, нужно создать.
    Для WinXP, приложение можно загрузить как службу. Берешь любую службу, экспортируешь в .reg файл, изменяешь и запускаешь этот .reg файл.

    Вопрос:

    Я сделал отчет с помощью Crystal Reports Pro присоединил к форме, но когда яаношу новые данные в отчете они не обновляются, как это сделать или подскажите как можно сделать отчет по другому если это вояможно. Испольяую баяу данных MS Access

    Ответ:

    Автор ответа: Шувакин Н.В.

    ЕСТЬ ПРЕКРАСНАЯ ПРОГРАММА SEAGATE CRISTAL REPORTS ОНА ПОЗВОЛЯЕТ СОЗДАВАТЬ ОТЧЕТЫ ПРАКТИЧЕСКИ ИЗ ЛЮБЫХ БАЗ (ДАЖЕ ТЕКСТОВЫХ ФАЙЛОВ), В ТОМ ЧИСЛЕ И АВТОМАТИЧЕСКИ ОБНОВЛЯЕМЫЕ. ОЧЕНЬ РЕКОМЕНДУЮ. Я ИСПОЛЬЗУЮ SEAGATE CRISTAL REPORTS 8.0

    Вопрос:

    Подскажите где вяять описание функций WinInet.dll.

    Ответ:

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

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

    Вопрос:

    Как получить полный объем жесткого диска и объем яагруженности жесткого диска.

    Ответ:

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

    Public Declare Function GetDiskFreeSpace Lib "kernel32" Alias "GetDiskFreeSpaceA" _
    (ByVal lpRootPathName As String, _
    lpSectorsPerCluster As Long, _
    lpBytesPerSector As Long, _
    lpNumberOfFreeClusters As Long, _
    lpTotalNumberOfClusters As Long) _
    As Long

    Public Function GetDiskSpace(lpRootPathName As String, FreeSpace As Long, TotalSpace As Long) As Boolean

    Dim lpSectorsPerCluster As Long
    Dim lpBytesPerSector As Long
    Dim lpNumberOfFreeClusters As Long
    Dim lpTotalNumberOfClusters As Long

    If GetDiskFreeSpace(lpRootPathName, lpSectorsPerCluster, _
    lpBytesPerSector, lpNumberOfFreeClusters, _
    lpTotalNumberOfClusters) <> 0 Then
    FreeSpace = lpSectorsPerCluster * lpBytesPerSector * lpNumberOfFreeClusters
    TotalSpace = lpSectorsPerCluster * lpBytesPerSector * lpTotalNumberOfClusters
    GetDiskSpace = True
    Else
    GetDiskSpace = False
    End If

    End Function

    Вопрос:

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

    Ответ:

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

    Это эленементарно закачай с интернета программу windows configurator http://www.w98c.prv.pl/ или что-то подобное

    Вопрос:

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

    Ответ:

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

    Для запрета вызова настроек диспелея+сотоварищи:

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\NoDispCPL

    Ставь 1 и все...
    А вообще сходи на

    http://pisoft.da.ru или http://psoft.narod.ru

    Есть прога WinTune, она тебе поможет...

    Вопрос:

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

    Ответ:

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

    Используй программу тонкой настройки реестра
    http://www.xteq.com/
    если плохо знаешь реестр, рекомендую делать резервные копии.
    Предупреждаю!
    Некоторые настройки опасно изменять, так что если что повалится сам виноват.

    Вопрос:

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

    Ответ:

    Автор ответа: Igor A. Volkov

    Для того чтобы не позволять доступ к настройкам рабочего стола в реестре найди HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System
    элемент NoDispCpl и установи значение 1. При этом блокируется доступ как из Панели управления, так и через контекстное меню Рабочего стола.
    В ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
    необходимо создать ключ NoSaveSettings и установить для него значение 1.
    При этом все настройки пользователей сохраняться не будут. Если создан для каждого пользователя свой профиль, то нужно создать ключ в
    ветке HKEY_USERS\[имя профиля]\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
    для тех кому запрещено сохранять настройки.
    Эти исправления можно сделать ручками в реестре используя regedit, а можно задавая системные политики при помощи System Policy Editor для нужных юзеров. Его можно поставить с CD установки W98. (запусти "установка и удаление программ", "установка Windows", кнопка "Установить с диска" и укажи tools\Reskit\Netadmin\Poledit).
    Но самый лучший вариант - перейти на НТ !

    Вопрос:

    Как на форме нарисовать треугольник по 3 точкам, может быть с помощью API функции, важна скорость прорисовки!

    Ответ:

    Автор ответа: Администратор

    пишишь что-то вроде.

    form1.line(x1,y1)-(x2,y2)
    form1.line(x2,y2)-(x3,y3)
    form1.line(x3,y3)-(x1,y1)

    Вопрос:

    Тупой вопрос
    Открываю Notepad пишу туда число 20
    Закрываю. Смотрю размер файла - 2 байта
    Делаю тоже самое в ВБ

    Dim FileNum As Integer
    Dim txt As Byte
    FileNum = FreeFile

    txt = 20
    Open "c:\file.txt" For Output As FileNum
    Write #FileNum, txt
    Close #FileNum
    Смотрю размер 4 байта

    Мне необходимо создать именно 2 байтовый
    Пробовал через Binary Access - добавляются левые символы
    Помогите примером

    Ответ:

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

    Тут фишка ы том что тип byte занимает в памяти 4 байта и ты с этим ничего поделать на сможеш. Но ты можеш записать в файл страку.

    Dim FileNum As Integer
    Dim txt As STRING
    FileNum = FreeFile

    txt = "20"
    Open "c:\file.txt" For Output As FileNum
    print# FileNum, txt
    Close #FileNum
    и все будет ок

    Вопрос:

    Тупой вопрос
    Открываю Notepad пишу туда число 20
    Закрываю. Смотрю размер файла - 2 байта
    Делаю тоже самое в ВБ

    Dim FileNum As Integer
    Dim txt As Byte
    FileNum = FreeFile

    txt = 20
    Open "c:\file.txt" For Output As FileNum
    Write #FileNum, txt
    Close #FileNum
    Смотрю размер 4 байта

    Мне необходимо создать именно 2 байтовый
    Пробовал через Binary Access - добавляются левые символы
    Помогите примером

    Ответ:

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

    Всё просто до безобразия, но не так просто, как кажется.
    1) Два байта появляются из-за символа перевода строки.
    2) Предлагаю вместо Write использовать Print.
    3) Наверное не все знают, что если написать [Print "20"], то после "20" будет напечатан символ перевода строки; если написать [Print "20",], то после "20" будут напечатаны пробелы до столбца, кратного 14; а если написать [Print "20";], то после "20" не будет напечатано ничего (а ведь это было ещё на ZX-Spectrum'ах :).
    4) Если кто ещё не понял, то ответ в пункте 3 %-)

    Вопрос:

    Тупой вопрос
    Открываю Notepad пишу туда число 20
    Закрываю. Смотрю размер файла - 2 байта
    Делаю тоже самое в ВБ

    Dim FileNum As Integer
    Dim txt As Byte
    FileNum = FreeFile

    txt = 20
    Open "c:\file.txt" For Output As FileNum
    Write #FileNum, txt
    Close #FileNum
    Смотрю размер 4 байта

    Мне необходимо создать именно 2 байтовый
    Пробовал через Binary Access - добавляются левые символы
    Помогите примером

    Ответ:

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

    Поменяй Write# на Put# и output режим на binary и получишь искомые два байта:

    Dim FileNum As Integer
    Dim txt As Integer
    FileNum = FreeFile

    txt = 20
    Open "c:\file.txt" For Binary As FileNum
    Put #FileNum, , txt
    Close #FileNum

    Вопрос:

    Тупой вопрос
    Открываю Notepad пишу туда число 20
    Закрываю. Смотрю размер файла - 2 байта
    Делаю тоже самое в ВБ

    Dim FileNum As Integer
    Dim txt As Byte
    FileNum = FreeFile

    txt = 20
    Open "c:\file.txt" For Output As FileNum
    Write #FileNum, txt
    Close #FileNum
    Смотрю размер 4 байта

    Мне необходимо создать именно 2 байтовый
    Пробовал через Binary Access - добавляются левые символы
    Помогите примером

    Ответ:

    Автор ответа: Sergei Gorlovetsky

    Add Reference to Microsoft Scripting Runtime

    Private Sub Command1_Click()

    Dim txt As Integer
    Dim fso As New FileSystemObject
    Dim tmp
    txt = 20
    Set tmp = fso.OpenTextFile("c:\file.txt", ForWriting, True)
    tmp.Write txt
    tmp.Close

    End Sub

    Вопрос:

    Тупой вопрос
    Открываю Notepad пишу туда число 20
    Закрываю. Смотрю размер файла - 2 байта
    Делаю тоже самое в ВБ

    Dim FileNum As Integer
    Dim txt As Byte
    FileNum = FreeFile

    txt = 20
    Open "c:\file.txt" For Output As FileNum
    Write #FileNum, txt
    Close #FileNum
    Смотрю размер 4 байта

    Мне необходимо создать именно 2 байтовый
    Пробовал через Binary Access - добавляются левые символы
    Помогите примером

    Ответ:

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

    Dim intFileNum As Integer
    Dim bytDigit As Byte

    intFileNum = FreeFile
    bytDigit = 20

    Open "c:\file.txt" For Output As intFileNum

    'Вместо Write нужно Print
    'Перед записью в файл, преобразуем Byte в String
    'с удалением лишних пробелов

    Print #intFileNum, Trim(Str(bytDigit));

    'Добавить точку с запятой ОБЯЗАТЕЛЬНО!
    'Без онной в конец будут добавленны 2 кода ANSI/ASCII:
    '10 (LF - код перевода строки) и 13 (CR - код абзаца)

    Close #intFileNum
    'Смотрю, размер уже 2 байта

    Вопрос:

    Подскажите как сохранить фаил .txt не вызывая диалога сохранения

    Ответ:

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

    open FileName$ for output as #1
    print #1, YourText$
    close

    Вопрос:

    Как сделать, чтобы RichTextBox скроллился автоматически?

    Ответ:

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

    Private Type SCROLLINFO
    cbSize As Long
    fMask As Long
    nMin As Long
    nMax As Long
    nPage As Long
    nPos As Long
    nTrackPos As Long
    End Type
    Private Declare Function GetScrollInfo Lib "user32" (ByVal hwnd As Long, ByVal n As Long, lpScrollInfo As SCROLLINFO) As Long
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

    Const SIF_RANGE = &H1
    Const SB_VERT = 1

    Dim lHeight As Long, OnePixel As Long
    Dim S As SCROLLINFO
    Private Sub Command1_Click()
    Do
    DoEvents
    ScrollUp 50
    Loop
    End Sub

    Private Sub Form_Load()
    rtb1(0).LoadFile App.Path & "\mydoc.rtf", rtfRTF
    Picture1.Move rtb1(0).Left, rtb1(0).Top, rtb1(0).Width, rtb1(0).Height
    Set rtb1(0).Container = Picture1
    OnePixel = Screen.TwipsPerPixelY
    S.cbSize = Len(S)
    S.fMask = SIF_RANGE
    Do
    Call GetScrollInfo(rtb1(0).hwnd, SB_VERT, S)
    If S.nMax = 0 Then Exit Do
    lHeight = S.nMax * OnePixel
    rtb1(0).Height = lHeight
    Loop
    If lHeight = 0 Then lHeight = rtb1(0).Height
    Text1 = lHeight / OnePixel
    rtb1(0).Move 0, 0
    Load rtb1(1)
    rtb1(1).Visible = False
    End Sub

    Private Sub ScrollUp(delay As Long)
    Sleep delay
    With rtb1(0)
    .Top = .Top - OnePixel
    If .Top + .Height = 0 Then
    .Move 0, 0
    rtb1(1).Visible = False
    End If
    If .Top + .Height <= Picture1.Height Then
    rtb1(1).Top = .Top + .Height
    rtb1(1).Visible = True
    End If
    End With
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    End
    End Sub

    Вопрос:

    Как подключить FileSystemObject? Какая библиотека за нее отвечает?

    Ответ:

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

    Библиотека Microsoft Scripting Runtime (SCRRUN.DLL)

    Вопрос:

    Как найти число строк в Text1.Text?
    Как найти первое слово ия каждой стоки?
    Как польяоваться функцией Find в RichTextBox?

    Другими словами я соядал цикл:

    For i = 0 To [число строк в Text1.Text]
    RTFText1.Find [первое слово ия строки i]
    If [слово найдено] Then
    . . .
    End If
    Next i

    Всё что яаписанно в квадратных скобках, туда надо вписать правильный код.
    Да, и ещё, в Text1 текст записан вот так:

    чёрный, белый
    большой, малый
    . . .

    Ответ:

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

    1) достаточно посчитать количество vbnewline'ов
    2) при поиске vbnewline'ов следующим символом искать пробел и выделить сово до пробела
    3)
    with rtfbox
    pos = .Find(SLOVO, 0, len(.text))

    Вопрос:

    Здрасьте, мой вопрос про изображения.
    Короче у элемента ImageBox есть свойство Stretch, оно подгоняет картинку под размеры элемента, но когда переносишь это изображение в PictureBox, то размеры опять меняются. А мне надо, чтобы они остались такими какими были в ImageBox (Stretch=true). Я пробовал делать так: Загружаю картинку в ИмагеБокс и с помощью метода PaintPicture пытаюсь перенести её в ПикчерБокс в том же виде, но получается ещё большая фигня чем была. Последнее я делал так:

    Private Sub Command1_Click()
    Image1.Picture = LoadPicture(Text1.Text)
    Picture1.ScaleMode = 3
    Picture1.PaintPicture Image1.Picture, 0, 0, Picture1.ScaleWidth,
    Picture1.ScaleHeight, _
    0, 0, Image1.Width, Image1.Height, vbSrcCopy
    End Sub

    Что здесь не так? Или как мне вообще перенести картинку из ImageBox (stretch=true) в PictureBox не потеряв размеров? Помогите пожайлуста, я уже просто в отчаянии, пробовал и через буфер, и через файл - никак не получается. Была надежда на метод PaintPicture и та провалилась. Как мне сделать так, как написано выше?

    Ответ:

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

    Picture1.PaintPicture Image1.Picture, 0, 0, Image1.Width, Image1.Height

    Вопрос:

    Вот вам товарищи программеры обломный вопрос - как вставлять модели 3DMax'а в VB6 программы и самое главное как ими потом управлять, если можно с примерами и по проще...
    А то вот собрался 3D елку к новому году зделать а как MAX'овские модели всавлять неизвестно :(

    P.S.
    кстати если кто хочет присоединится к моему проэкту всегда пожалуйста, несколько vb программеров работающих за одно - это сила :))

    Ответ:

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

    Вставлять 3д модели в вб нальзя. но можно их саздавать с помощью OpenGl или DirectX

    Вопрос:

    Вот вам товарищи программеры обломный вопрос - как вставлять модели 3DMax'а в VB6 программы и самое главное как ими потом управлять, если можно с примерами и по проще...
    А то вот собрался 3D елку к новому году зделать а как MAX'овские модели всавлять неизвестно :(

    P.S.
    кстати если кто хочет присоединится к моему проэкту всегда пожалуйста, несколько vb программеров работающих за одно - это сила :))

    Ответ:

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

    Вставить в принцыпе не сложно... есть 3D движки для VB например Revolution 3D
    посмотри на сайте http://vbstreets.ru/
    или вот сам сайт разработчика движка там с примерами и прочее... интересная штучка ...
    http://revolution3d.net/

    Вопрос:

    Что такое Package & Deployment Wizard и нафиг это надо????

    Ответ:

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

    PDW это приблуда к VB нужна для создание установочных пакетов... она засовывает все ocx и Dll в один пакети потом при установке пихает все это куда укажеш там в win\system... и т.д. и в Пуск прописывает... вот.
    но кривая она лудше пользоваться какой нить другой например хотя бы NSIS

    Вопрос:

    Что такое Package & Deployment Wizard и нафиг это надо????

    Ответ:

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

    Создавать инсталяшки к твоим проектам. В них запиханы все файлы требуюшиеся для работы твоей проги

    Вопрос:

    Что такое Package & Deployment Wizard и нафиг это надо????

    Ответ:

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

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

    Вопрос:

    Что такое Package & Deployment Wizard и нафиг это надо????

    Ответ:

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

    Это программа для создания инсталляции своей программы, написанной на VB. Для чего это надо? EXE-шник программы, написанной на VB требует наличия библиотеки msvbvb60.dll и других OCX-компонентов, которые были использованы при создании программы. Если программа (EXE-файл) переносится на другой компьютер, то должны перенестись и указанные выше файлы. Package & Deployment Wizard создаёт инсталляционный пакет, включая туда все необходимые файлы.

    Вопрос:

    Есть ли у кого-нибудь библиотека Microsoft Data Bound Grid Control 5.0 или ссылка где её можно скачать. В VB6.0 у меня она отсутствует.

    Ответ:

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

    Незнаю где от Microsoft взять эту штуку но вот тут есть гриды и покруче http://componentone.com/ кряк найти можно в инете на той же http://astalavista.com/ или www.cracks.am

    Вопрос:

    есть прога которая паботает с базой данных mbd. Переношу на другую машину, инсталлирую. При запуске пишет что не может найти поставщика данных. Для доступа к базе использую Microsoft Jet 3.51 OLE DB Provider(выбираю в свойствах элемента ADO Data).
    В литературе пишут что надо создать источник данных, т.е. файл с расширением mdl. Это не получилось. Тем не менее приложение работает на машине где есть VB.
    Win 2000
    VB 6.0

    Ответ:

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

    попробуй скачай вот эту штуку http://www.microsoft.com/data/download_21242023.htm
    это комплект доступа к данным
    и поставь на машине где хочеш установить эту прогу...

    Вопрос:

    есть прога которая паботает с базой данных mbd. Переношу на другую машину, инсталлирую. При запуске пишет что не может найти поставщика данных. Для доступа к базе использую Microsoft Jet 3.51 OLE DB Provider(выбираю в свойствах элемента ADO Data).
    В литературе пишут что надо создать источник данных, т.е. файл с расширением mdl. Это не получилось. Тем не менее приложение работает на машине где есть VB.
    Win 2000
    VB 6.0

    Ответ:

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

    Попробуй создать инсталляцию при помощи Package & Deployment Wizard, идущий в комплекте с VB, он все необходимые файлы включит в себя и, соответственно установит на другой компьютер

    Вопрос:

    есть прога которая паботает с базой данных mbd. Переношу на другую машину, инсталлирую. При запуске пишет что не может найти поставщика данных. Для доступа к базе использую Microsoft Jet 3.51 OLE DB Provider(выбираю в свойствах элемента ADO Data).
    В литературе пишут что надо создать источник данных, т.е. файл с расширением mdl. Это не получилось. Тем не менее приложение работает на машине где есть VB.
    Win 2000
    VB 6.0

    Ответ:

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

    нужно поместить в директорию с программой файлы MSJINT35.DLL и т. д.

    Вопрос:

    Помогите! Кто-нибудь знает как сделать прогу, которая по нажатию на кнопку (Command1 например) удаляла бы все файлы из заданой папки?
    И еще. Кто-нибудь знает как сделать прогу при запуске которой по эрану бегала бы какая-нибудь зверюшка (может кто-нибудь видел овцу бегающую по экрану)?

    Ответ:

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

    посмотри на сайте http:\\vbstreets.ru\ там полно всякой такой лабуды...

    Вопрос:

    Помогите! Кто-нибудь знает как сделать прогу, которая по нажатию на кнопку (Command1 например) удаляла бы все файлы из заданой папки?
    И еще. Кто-нибудь знает как сделать прогу при запуске которой по эрану бегала бы какая-нибудь зверюшка (может кто-нибудь видел овцу бегающую по экрану)?

    Ответ:

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

    ну про удаления это легко

    Public sub command1_click()
    on error goto fuck
    dim str as string
    str=text1.text 'в текстовом поле text1 хранится путь к папке с файлами Например C:\window\ последний слеш обязателен
    kill str
    exit sub
    fuck:
    msgbox "Типа ошибка"
    End sub

    А вот со вторым проблема

    Вопрос:

    Как пользоваться DLL?
    Желательно с примерами, но без ссылок.

    Ответ:

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

    указываешь в Project->References нужную библиотеку, а потом в коде объявляешь переменную как этот объект и всё

    dim asd as MyLib

    sub asdasd()

    asd.adsdasd (ПАРАМЕТРЫ_ФУНКЦИИ)

    end sub

    Вопрос:

    Пишу:

    private sub fff (optional option1 as byte)

    Print IsMissing(option1)
    end sub

    Не работает всегда говорит False
    а если пишу

    private sub fff (optional option1)

    Print IsMissing(option1)
    end sub

    Все работает правельно !
    Кто янает почему ???

    Ответ:

    Автор ответа: Андрей Германович

    логично, ибо пара "optional/IsMissing" работает тока на Variant-параметры, а еси указан тип, то параметр инициалица в дефолт, а енто уже не миссинг.

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

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

    наверх

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


Выпуск 112.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Покупали ли Вы 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!!!

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

    Я немного модернизировал программу, работающую над разделом Вопрос/Ответ. Теперь ответы на один вопрос сгруппированы.
    Читайте!

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

    • Citycat by Email

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

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

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

    Книги

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

    наверх

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


Выпуск 113.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

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

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

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

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

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

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

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

    • Как программно открыть/закрыть ComboBox
    • Установить ширину ниспадающей части ComboBox
    • Как сделать первую букву каждого слова заглавной
    • Быстрый поиск элемента в списке
    • Добавление элемента CheckBox в элемент ComboBox
    • Создайте свой 3D-Button

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

    Книги

    Переход на 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 можно найти     здесь.

    наверх

    Как программно открыть/закрыть ComboBox

    В этом примере вам понадобятся два элемента CommandButton

    Private Const CB_SHOWDROPDOWN = &H14F
    Private Declare Function SendMessageByNum Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Public Sub SetComboDropDown(cboCombo As ComboBox, ByVal bDown As Boolean)
    Dim nRet As Long
    nRet = SendMessageByNum(cboCombo.hwnd, CB_SHOWDROPDOWN, bDown, 0)
    End Sub

    Private Sub Command1_Click()
    Call SetComboDropDown(Combo1, True)
    End Sub
    Private Sub Command2_Click()
    Call SetComboDropDown(Combo1, False)
    End Sub

    Private Sub Form_Load()
    Combo1.AddItem "1"
    Combo1.AddItem "2"
    Combo1.AddItem "3"
    End Sub

    наверх

    Установить ширину ниспадающей части ComboBox

    Добавьте элемент ComboBox на форму

    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 Const CB_SETDROPPEDWIDTH = &H160

    Private Sub Form_Load()
    'Число '180' устанавливает ширину ниспадающей части: замените его любым вашим числом
    r = SendMessageLong(Combo1.hwnd, CB_SETDROPPEDWIDTH, 180, 0)
    End Sub

    наверх

    Как сделать первую букву каждого слова заглавной

    Разместите на форме элемент ComboBox. Запустите проект на выполнение и попробуйте набрать несколько слов в элементе ComboBox.

    Private Function ccProperCase(MySourceControl As Control)
    On Error GoTo ErrH
    Dim strString As String
    strString = MySourceControl.Text
    If IsNull(strString) Then Exit Function
    strString = StrConv(strString, vbProperCase)
    MySourceControl.SelStart = Len(strString)
    MySourceControl.Text = strString
    Exit Function
    ErrH:
    MsgBox "Error at ccProperCase:::- " & Err.Number & " - " & Err.Description, vbCritical
    Exit Function
    End Function

    Private Sub Combo1_Change()
    Call ccProperCase(Combo1)
    End Sub

    наверх

    Быстрый поиск элемента в списке

    Данный пример позволяет по вводимым буквам получить определенный элемент в ComboBox'е.
    Разместите на форме элемент ComboBox. Запустите проект на выполнение и попробуйте набрать в ComboBox'е "ext".
    Как вы понимаете, за быстрый поиск отвечает событие Combo1_KeyUp.

    Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
    Private Declare Function RegEnumKey Lib "advapi32.dll" Alias "RegEnumKeyA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, ByVal cbName As Long) As Long
    Function GetAllExts() As Variant
    Dim lRegResult As Long
    Dim lCounter As Long
    Dim hCurKey As Long
    Dim strBuffer As String
    Dim lDataBufferSize As Long
    Dim intZeroPos As Integer
    lCounter = 0
    lRegResult = RegOpenKey(&H80000000, "", hCurKey)
    Do
    lDataBufferSize = 255
    strBuffer = String(lDataBufferSize, " ")
    lRegResult = RegEnumKey(hCurKey, lCounter, strBuffer, lDataBufferSize)
    If lRegResult = 0& Then
    intZeroPos = InStr(strBuffer, Chr$(0))
    If Left(strBuffer, 1) = "." Then
    Form1.Combo1.AddItem LCase(Right(strBuffer, Len(strBuffer) - 1))
    End If
    lCounter = lCounter + 1
    Else
    Exit Do
    End If
    Loop
    End Function

    Private Sub Form_Load()
    GetAllExts
    End Sub

    Private Sub Combo1_KeyUp(KeyCode As Integer, Shift As Integer)
    Dim st As Long
    If KeyCode <> vbKeyReturn And KeyCode <> vbKeyBack And KeyCode <> vbKeySpace Then
    st = Len(Combo1.Text)
    If st < 3 Then
    For X = 0 To Combo1.ListCount - 1
    If Left(Combo1.List(X), st) = Combo1.Text Then
    Combo1.ListIndex = X
    Combo1.SelStart = st
    Combo1.SelLength = Len(Combo1.Text) - st
    Exit For
    End If
    Next X
    End If
    End If
    End Sub

    наверх

    Добавление элемента CheckBox в элемент ComboBox

    Данный пример покажет, как можно вставить элемент CheckBox внутрь элемента ComboBox. Добавьте на форму 1 ComboBox и 1 CheckBox.

    Private Const EC_LEFTMARGIN = &H1
    Private Const EC_RIGHTMARGIN = &H2
    Private Const EC_USEFONTINFO = &HFFFF&
    Private Const EM_SETMARGINS = &HD3&
    Private Const EM_GETMARGINS = &HD4&
    Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hwndParent As Long, ByVal hwndChildAfter As Long, ByVal lpszClass As String, ByVal lpszWindow As String) As Long
    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 AddCheckToCombo(ByRef chkThis As CheckBox, ByRef cboThis As ComboBox)
    Dim lhWnd As Long
    Dim lMargin As Long
    lhWnd = FindWindowEx(cboThis.hwnd, 0, "EDIT", vbNullString)
    If (lhWnd <> 0) Then
    lMargin = chkThis.Width \ Screen.TwipsPerPixelX + 2
    SendMessageLong lhWnd, EM_SETMARGINS, EC_LEFTMARGIN, lMargin
    chkThis.BackColor = cboThis.BackColor
    chkThis.Move cboThis.Left + 3 * Screen.TwipsPerPixelX, cboThis.Top + 2 * Screen.TwipsPerPixelY, chkThis.Width, cboThis.Height - 4 * Screen.TwipsPerPixelY
    chkThis.ZOrder
    End If
    End Sub

    Private Sub Form_Load()
    AddCheckToCombo Check1, Combo1
    Dim i As Long
    For i = 1 To 20
    Combo1.AddItem "Test" & i
    Next i
    End Sub

    наверх

    Создайте свой 3D-Button

    Добавьте элемент PictureBox на форму

    Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
    End Type
    Const BDR_RAISEDOUTER = &H1
    Const BDR_SUNKENOUTER = &H2
    Const BDR_RAISEDINNER = &H4
    Const BDR_SUNKENINNER = &H8
    Const BDR_OUTER = &H3
    Const BDR_INNER = &HC
    Const BDR_RAISED = &H5
    Const BDR_SUNKEN = &HA
    Const EDGE_RAISED = (BDR_RAISEDOUTER Or BDR_RAISEDINNER)
    Const EDGE_SUNKEN = (BDR_SUNKENOUTER Or BDR_SUNKENINNER)
    Const EDGE_ETCHED = (BDR_SUNKENOUTER Or BDR_RAISEDINNER)
    Const EDGE_BUMP = (BDR_RAISEDOUTER Or BDR_SUNKENINNER)
    Const BF_LEFT = &H1
    Const BF_TOP = &H2
    Const BF_RIGHT = &H4
    Const BF_BOTTOM = &H8
    Const BF_TOPLEFT = (BF_TOP Or BF_LEFT)
    Const BF_TOPRIGHT = (BF_TOP Or BF_RIGHT)
    Const BF_BOTTOMLEFT = (BF_BOTTOM Or BF_LEFT)
    Const BF_BOTTOMRIGHT = (BF_BOTTOM Or BF_RIGHT)
    Const BF_RECT = (BF_LEFT Or BF_TOP Or BF_RIGHT Or BF_BOTTOM)
    Const BF_DIAGONAL = &H10
    Const BF_DIAGONAL_ENDTOPRIGHT = (BF_DIAGONAL Or BF_TOP Or BF_RIGHT)
    Const BF_DIAGONAL_ENDTOPLEFT = (BF_DIAGONAL Or BF_TOP Or BF_LEFT)
    Const BF_DIAGONAL_ENDBOTTOMLEFT = (BF_DIAGONAL Or BF_BOTTOM Or BF_LEFT)
    Const BF_DIAGONAL_ENDBOTTOMRIGHT = (BF_DIAGONAL Or BF_BOTTOM Or BF_RIGHT)
    Const BF_MIDDLE = &H800 ' Fill in the middle
    Const BF_SOFT = &H1000 ' For softer buttons
    Const BF_ADJUST = &H2000 ' Calculate the space left over
    Const BF_FLAT = &H4000 ' For flat rather than 3D borders
    Const BF_MONO = &H8000 ' For monochrome borders
    Private Declare Function DrawEdge Lib "user32" (ByVal hdc As Long, qrc As RECT, ByVal edge As Long, ByVal grfFlags As Long) As Boolean
    Private Sub Form_Load()
    ' Always set the ScaleMode to pixels when using API drawing functions.
    ScaleMode = vbPixels
    With Picture1
    ' The next line is not required if you put your drawing code in the Paint event.
    .AutoRedraw = True
    ' Set the Backcolor, set the Borderstyle to none, and size the picture box to a more realistic button size.
    .BackColor = vb3DFace
    .BorderStyle = 0
    .Move 60, 10, 90, 30
    ' Make sure the picture box uses the pixel ScaleMode, and set the tag of the control to a caption for later use with DrawControl.
    .ScaleMode = vbPixels
    .Tag = "3D Button"
    End With
    ' Draw the initial button.
    DrawControl Picture1, Picture1.Tag, EDGE_RAISED
    End Sub
    ' When the picture box gets a click event, an etched box is drawn on the upper left corner of the form.
    Private Sub Picture1_Click()
    MsgBox "You Pressed the Button"
    End Sub
    ' When the user presses the mouse down on the picture box a sunken edge is drawn to simulate a depresessed button.
    Private Sub Picture1_MouseDown(Button%, Shift%, X!, Y!)
    DrawControl Picture1, Picture1.Tag, EDGE_SUNKEN
    End Sub
    ' When the user releases the mouse over the picture box a standard button is drawn.
    Private Sub Picture1_MouseUp(Button%, Shift%, X!, Y!)
    DrawControl Picture1, Picture1.Tag, EDGE_RAISED
    End Sub
    ' The DrawControl helper function is designed to make it easier to draw a button on a picture box.
    Private Sub DrawControl(picControl As PictureBox, strCaption As String, Optional vntEdge)
    Dim r As RECT ' Holds the location of the DrawEdge rectangle.
    Dim intOffset% ' Used to shift the caption when the button is pressed.
    ' If the user doesn't provide a Edge flag, then use a default value.
    vntEdge = IIf(IsMissing(vntEdge), EDGE_RAISED, vntEdge)
    ' Clear the picture control and determine where to draw the new rectangle and caption.
    With picControl
    .Cls
    r.Left = .ScaleLeft
    r.Top = .ScaleTop
    r.Right = .ScaleWidth
    r.Bottom = .ScaleHeight
    If vntEdge = EDGE_SUNKEN Then intOffset = 2
    .CurrentX = (.ScaleWidth - .TextWidth(strCaption) + intOffset) / 2
    .CurrentY = (.ScaleHeight - .TextHeight(strCaption) + intOffset) / 2
    End With
    ' Draw the caption, then draw the rectangle.
    Picture1.Print strCaption
    DrawEdge picControl.hdc, r, CLng(vntEdge), BF_RECT
    ' If AutoRedraw is True, then any drawing done by an API call cannot be seen until until the picture box gets refreshed.
    If picControl.AutoRedraw Then picControl.Refresh
    End Sub

    наверх

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

    BalloonMessage for MS Agent

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

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

    наверх

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

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

    Вопросы:

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

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

    Что нужно сделать, чтобы гиперссылка отображалась в текстовом поле также как в Wordе или в IE.

    Автор вопроса: Святослав

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

    Как в VB6 запретить запуск экранной заставки на время работы своей программы?

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

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

    есть файл *.mdb как написать прогу чтобы указывая путь к файлу, она из него вытягивала все е-мейлы, ну к примеру все слова содержащие @

    Автор вопроса: Винокуров К

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

    Например я поставил на форму контрол "InternetTransferControl" А что делать дальше? Как им пользоваться? (Этот вопрос относится ко всем контролам) Дайте пожалуйста маленький лик.без. новичку.

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

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

    Народ! Может кто знает, как делать асемблерные вставки в VB???? (на подобии Delphi или C++ ...) - ведь должно ж быть.

    Автор вопроса: Nechaev Sergey

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

    Как можно прицепить к TextBox'у свое контекстное меню, чтобы при нажатии правой кнопки мыши выскакивала моя менюшка а не стандартная. Если в событие MouseDown (up) прописать ShowPopupMenu все равно выскакивает стандартное от текстового поля. Как его заблокировать. Писать свой контрол с нуля или подключать уже готовый не хотелось бы, т.к. данный ход нужен только в одном месте на весь проект, а сторонний контрол ресурсов сожрет немерено.

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

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

    Как вывести на печать таблицу или отчет ия программы VB в формате А3?

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

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

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

    Автор вопроса: Костян

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

    есть ли такой компонент с помощью которого можно было открыть HTML страницу? Если есть то как с помощью него открыть страницу?

    Автор вопроса: Мунгалов Андрей

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

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

    Автор вопроса: Dmitriy Alimov

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

    Подскажите как считать из *.txt строки, к примеру 10 всего 5 но в произвольном порядке

    Автор вопроса: Dr.Max

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

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

    Автор вопроса: Dr.Max

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

    Есть файл Avi, ножно сунуть его в прогу ,чтобы не тоскать его отдельно. Кто-нибудь знает как ??? Мои эксперементы с ole обламилсь:((((((((( если ,конечно, ole это то ,что нужно.

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

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

    На сервере файл размером 1Mb. А мне нужно только последнии 10 байт. как мне закачать их, некачая весь файл.

    Автор вопроса: Ленчевский Вячеслав

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

    есть ли в бейсике "пингоподобные" команды? (необходимо периодически опрашивать список адресов и выводить информацию о наличии соединения в сети)

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

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

    Пишу

    Private Declare Function fCreateShellLink Lib "VB5STKIT.DLL" (ByVal lpstrFolderName As String, ByVal lpstrLinkName As String, ByVal lpstrLinkPath As String, ByVal lpstrLinkArgs As String) As Long
    Private Sub Form_Load()
    lngresult = fCreateShellLink("..\..\Desktop", "LINK", "C:\myfile.exe", "")
    End Sub

    Но нечего не появляется.
    1.Почему ?
    2. Как создать ярлык на рабочем столе ?

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

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

    Это опять я :о). Подскажите плия какие апи(и как их декларировать) нужны чтобы просмотреть юяеров которые приконнектились к моему компу по локальной сети, к какому ресурсу они приконектились, какие файлы юяают, и как ия отключить? (я хочу сделать что-то типа черного списка)

    Ответы:

    Вопрос:

    Что такое Package & Deployment Wizard и нафиг это надо????

    Ответ:

    Автор ответа: Мунгалов Андрей

    Это надо не "НА фиг", а для создания простых инсталяшек твоих великих проектов.

    Вопрос:

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

    Ответ:

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

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

    Public Sub sbMultiply()
    Dim a As Range
    Dim i As Long
    For Each a In Range("Столбец3")
    i = i + 1
    a.Value = Range("Столбец1").Cells(i).Value *
    Range("Столбец2").Cells(i).Value
    Next
    End Sub

    При этом предварительно необходимо присвоить имена Столбец1, Столбец2 и Столбец3 соответствующим диапазонам средствами Excel.

    Вопрос:

    Пожалуйста подскажите, как программным образом управлять полосой прокрутки в ListBoxe, скажем сдвинуть указатель на 25% вниз, при этом не касаясь содержимого самого ListBox-a и не снимая выделения, если выделено несколько записей?

    Ответ:

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

    Для управления полосой прокрутки в ListBox-e можно использовать свойство TopIndex.
    Например:

    List1.TopIndex = 10

    При этом 10-й элемент списка станет верхним видимым элементом в списке и соответственно передвинется полоса прокрутки.

    Вопрос:

    Как подключить FileSystemObject? Какая библиотека за нее отвечает?

    Ответ:

    Автор ответа: Мунгалов Андрей

    Подключается это так идешь в проект-ссылки(Project - References) Там ищешь Microsoft ScriptingRunTime. сам файл SCRRUN.DLL лежит в системной папке

    Вопрос:

    Тупой вопрос
    Открываю Notepad пишу туда число 20
    Закрываю. Смотрю размер файла - 2 байта
    Делаю тоже самое в ВБ

    Dim FileNum As Integer
    Dim txt As Byte
    FileNum = FreeFile

    txt = 20
    Open "c:\file.txt" For Output As FileNum
    Write #FileNum, txt
    Close #FileNum
    Смотрю размер 4 байта

    Мне необходимо создать именно 2 байтовый
    Пробовал через Binary Access - добавляются левые символы
    Помогите примером

    Ответ:

    Автор ответа: Мунгалов Андрей

    Бейсик в конце строки добавляет 0D 0A (перевод каретки , перевод строки)
    Попробуй писать в двоичном формате но не 20 а в шестнадцатиричном 32 30 и получишь свои два байта.

    Вопрос:

    Есть-ли универсальные способы яаполнения ListView и TreeView ия объекта типа recordset. Это может быть как код, так и контролы, но код лучше.

    Ответ:

    Автор ответа: Мунгалов Андрей

    Да просто все перебираешь весь рекорсет в цикле

    Do While Not rs.EOF
    List1.AddItem (rs("Имя поля"))
    rs.MoveNext
    Loop

    Вопрос:

    Я сделал отчет с помощью Crystal Reports Pro присоединил к форме, но когда яаношу новые данные в отчете они не обновляются, как это сделать или подскажите как можно сделать отчет по другому если это вояможно. Испольяую баяу данных MS Access

    Ответ:

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

    Свойство контрола Crystal Report - DiscardSavedData поставь в true.

    Вопрос:

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

    Ответ:

    Автор ответа: Christian Software Center

    Попробуйте использовать не стандартные дрова Windows '98, а драйвер, который был куплен вместе с крыской. Обычно в нем поставляется много функций и настроек для мыши со "скролом". Например, с помощью Genius NetScroll+ v4.16 у меня работает скрол, только в VB5 (VB6 - аналогично). Единственное, что рожица в трее от драйвера может надоесть.

    Вопрос:

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

    Ответ:

    Автор ответа: Renat Rahimov

    Private Type tochka
    x As Long
    y As Long
    End Type
    Dim a As tochka, b As tochka, c As tochka
    Private Sub Form_Load()
    Show
    a.x = 100: a.y = 100: b.x = 50: b.y = 150: c.x = 220: c.y = 200
    For sy = a.y To c.y
    X1 = a.x + (sy - a.y) * (c.x - a.x) / (c.y - a.y)
    If sy < b.y Then
    X2 = a.x + (sy - a.y) * (b.x - a.x) / (b.y - a.y)
    Else
    If c.y = b.y Then
    X2 = b.x
    Else
    X2 = b.x + (sy - b.y) * (c.x - b.x) / (c.y - b.y)
    End If
    End If
    Line (X1, sy)-(X2, sy)
    Next
    End Sub
    ' Чтобы не возникли ошибки отсортируй вершины так,
    ' чтобы вершина A была верхней, C - нижней

    Если не нравиться скорость,то воспользуйся:

    Public Declare Function Polygon Lib "gdi32" Alias "Polygon" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long

    Вопрос:

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

    Ответ:

    Автор ответа: Christian Software Center

    Ставишь на форме: ListBox и FileListBox и DirListBox
    Пишем Sub-функцию:

    Private Sub ListBoxTeleport()
    Dim nFile As Integer
    ' Очишаем наш лист для новой загрузки
    List1.Clear
    ' В цикле считываем файлики со стандартного ФайлБокса и аддируем в
    Лист
    For nFile = 0 To File1.ListCount - 1
    List1.AddItem File1.List(nFile%)
    Next nFile
    End Sub
    '
    ' Здесь изменяем путь и вызываем сново функцию переноса данных
    '
    Private Sub Dir1_Change
    File1.Path = Dir1.Path
    Call ListBoxTeleport
    End Sub

    Всё!

    Вопрос:

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

    Ответ:

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

    Конечно можно добавить и в стандарную менуху своё но реч сейчас не об етом.

    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

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

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

    Text1.Enabled = False
    Text1.Enabled = True

    PopupMenu MenuName
    End If
    End Sub

    Вот тада всё буит круто!

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

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

    наверх

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


Выпуск 114.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки 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!!!

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

    Обратите внимание на раздел "Внимание!" :-)))))
    Читайте!

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

    • Книги

    • Внимание!

    • Citycat by Email

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

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

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

    Книги

    Переход на 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 можно найти     здесь.

    наверх

    Внимание!

    Здравствуйте!
    На нашем сайте www.vbnet.ru происходит смена дизайна. Одной из его особенностей является публикация информации об авторах статей, опубликованных на нашем сайте. В связи с этим администрация сайта просит, если есть такая возможность, всем авторам статей, выслать на admin@vbnet.ru любую Вашу фотографию (на сайте будет использоваться ее небольшой фрагмент 90х90). Размеры фотографии и т.д. мы "подгоним" сами. Также нам хотелось бы, чтобы Вы прислали немного информации о себе - несколько строчек. Надеемся на понимание в этом вопросе. Спасибо!

    наверх

    Citycat by Email

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

    наверх

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

    Дата: 01.12.2002 12:04 | Раздел: Примеры кода | Автор: CyRax

    PicInDoc - Извлечение рисунков из документов Word'97-2002

    Дата: 01.12.2002 12:02 | Раздел: Полезные программы | Автор: CyRax

    ПСП - С её помощью можно быстро создавать справочную систему для своих приложений или просто файлы помощи Windows.

    Дата: 01.12.2002 07:16 | Раздел: Примеры кода | Автор: Половый Александр

    Ruler - Это новая версия витуальной линейки. В ней больше возможностей для работы с метками.

    Дата: 26.11.2002 15:11 | Раздел: Статьи по VB | Автор: Команда dotSite

    Конфигурирование ASP.NET приложений. Обзор config.web - Если вы более или менее внимательно изучали ASP.NET, то безусловно встречали название config.web. Более того, не сложно догадаться, для чего он нужен - для конфигурирования приложения. Однако более подробно о действии установок файла, его структуре и возможном составе складывается противоречивое впечатление. Здесь мы опишем возможности и правила применения config.web.

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

    15:58 / 30 ноя. Excel ==> HTML - Ну и как-же?? | Хитов: 46 | Ответов: 0
    14:03 / 30 ноя. Как добавить новое поле в базу Access из Visual... | Хитов: 38 | Ответов: 3
    12:53 / 30 ноя. Пожалуйста помогите | Хитов: 39 | Ответов: 1
    11:38 / 30 ноя. Еще вопросец по меню | Хитов: 27 | Ответов: 0
    09:46 / 30 ноя. HDC ? Help............. | Хитов: 165 | Ответов: 1
    04:56 / 30 ноя. как послать пакет | Хитов: 51 | Ответов: 2
    22:46 / 29 ноя. GetAsyncKeyState | Хитов: 46 | Ответов: 3
    22:33 / 29 ноя. Что - то здесь не то... | Хитов: 79 | Ответов: 4
    19:45 / 29 ноя. Записи в Базе данных | Хитов: 70 | Ответов: 3
    12:42 / 29 ноя. Apex Grid | Хитов: 65 | Ответов: 2
    11:15 / 29 ноя. Как завершить процесс на др. компьютере ? | Хитов: 22 | Ответов: 1
    01:22 / 29 ноя. Регистрация OCX | Хитов: 31 | Ответов: 0
    17:01 / 28 ноя. Как изменить формат в котором Excel понимает дату? | Хитов: 24 | Ответов: 1
    12:01 / 28 ноя. COM - порт. | Хитов: 38 | Ответов: 0
    04:06 / 28 ноя. Администраторам форума & сайта | Хитов: 75 | Ответов: 4
    09:51 / 27 ноя. Вопрос по поводу меню | Хитов: 61 | Ответов: 1
    21:36 / 26 ноя. Dim SC(6) as SC = Gluk!! | Хитов: 55 | Ответов: 2
    21:18 / 26 ноя. Unrecognized database format C:\x.mdb | Хитов: 55 | Ответов: 4
    19:10 / 26 ноя. ответ администратору | Хитов: 45 | Ответов: 1
    18:40 / 26 ноя. ISQ skins | Хитов: 52 | Ответов: 2

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

    наверх

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

    наверх

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

    наверх

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

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

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

    наверх

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

    BalloonMessage for MS Agent

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

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

    наверх
    Вопрос/Ответ

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

    Вопросы:

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

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

    Я новичок.
    У меня два вопроса.

    1) Установил VB6. При выяове справки получаю "MSDN collection is not installed". Это ояначает, что диск, с которого я устанавливал VB6 является пиратским и не содержал файлов справки или я что-то сделал не то? И где я могу найти эту самую MSDN collection и как ее доустановить?
    2) При написании кода, ничего не могу напечатать по-русски. например

    MsgBox "Привет"

    Как можно яаставить VB6 понимать кириллицу или мне надо установить VB6 русскую версию?

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

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

    В некоторых играх есть слишком сложные комбинации управляющих клавиш, я пытаюсь заменить их. Но при помощи sendkeys, keybd_event или postmessage - нифига невыходит... В оконные приложения все передается замечательно, а игрушки полноэкранные. Что посоветуете(кроме забить и не парицца)?

    Автор вопроса: Святослав

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

    В 113 выпуске был ответ на вопрос о вертикальной прокрутке в ListBox-е, а как сделать горизонтальную прокрутку ? Очень надо.

    Автор вопроса: Святослав

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

    Есть ListBox у которого свойство Sorted = False. Необходимо в определенный момент работы программы (например при установке свойства VALUE = 1 у CheckBox-а) произвести сортировку. Программно, простым заданием ListBox1.Sorted = True не получается.

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

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

    Хотелось бы конечно, чтобы мои элементы управления были бы неправильной формой (в особенности форма проекта, кнопки и textbox), не подскажите как это сделать?

    Автор вопроса: newstyle@aspol.ru

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

    В MS Access 2002 есть тип данных - "Код репликации", если я правильно понял генерируется уникальное слово в 16 байт с цифирями, буквами и всякими другими символами, которое [слово] в одной базе(*.mdb) по полям всех таблиц АБСОЛЮТНО НИГДЕ БОЛЬШЕ НЕ ВСТРЕЧАЕТСЯ, т.е. только уникальная запись какой-то одной таблицы в базе носит его?!
    Или я не правильно понял HELP по Access'у? Поправьте меня, плз?!

    Ответы:

    Вопрос:

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

    Ответ:

    Автор ответа: Святослав

    Все очень просто.
    ----------------------------

    Dim fileName As String

    fileName=Dir (''путь для поиска")
    'Перечисляем файлы каталога
    Do While fileName <> ""
    ListBox1.AddItem fileName
    fileName = Dir
    Loop
    ------------------------------
    Только необходимо помнить, что путь к файлу должен оканчиваться символом "\".

    Вопрос:

    Что нужно сделать, чтобы гиперссылка отображалась в текстовом поле также как в Wordе или в IE.

    Ответ:

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

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

    Ответ:

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

    Вот тебе код.
    Конечно не то что тебе надо но думаю пригодиться.

    Option Explicit
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long)
    As Integer
    Private Declare Function ShellExecuteA Lib "shell32.dll" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    Private Type Point
    lngX As Long
    lngY As Long
    End Type
    Private pntPos As Point

    Private Sub Form_Load()
    txtMain.Text = "mailto:[mail@mail.ru]"
    End Sub

    Private Sub Form_Resize()
    On Error Resume Next
    txtMain.Move txtMain.Left, txtMain.Top, ScaleWidth - txtMain.Left * 2,
    ScaleHeight - txtMain.Top * 2
    End Sub
    Private Sub txtMain_KeyDown(Key As Integer, Shift As Integer)
    If GetAsyncKeyState(vbKeyControl) <> 0 And GetAsyncKeyState(vbKeyV) <> 0 Then
    If Not Clipboard.GetData.Type > 0 Then txtMain.SelText = Clipboard.GetText
    Key = 0
    End If
    End Sub
    Private Sub txtMain_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    Shell GetWord(txtMain.Text, SendMessage(txtMain.hwnd, &HD7, 0, pntPos))
    End Sub
    Private Sub txtMain_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
    pntPos.lngX = x \ Screen.TwipsPerPixelX
    pntPos.lngY = y \ Screen.TwipsPerPixelY
    If GetWord(txtMain.Text, SendMessage(txtMain.hwnd, &HD7, 0, pntPos)) = "" Then txtMain.MousePointer = 1 Else txtMain.MousePointer = 99
    End Sub
    Public Function GetWord(ByVal strString As String, ByVal lngPos As Long) As String
    On Error Resume Next
    If InStr(1, strString, "[") = False Then Exit Function
    Dim lngIndex As Long
    For lngIndex = lngPos To 1 Step -1
    If Mid(strString, lngIndex, 1) = "]" Then Exit Function
    If Mid(strString, lngIndex, 1) = "[" Then Exit For
    Next
    If InStr(lngIndex + 1, strString, "]") Then GetWord = Mid(strString, lngIndex + 1, InStr(lngIndex, strString, "]") - lngIndex - 1)
    End Function
    Public Sub Shell(ByVal strAdress As String)
    On Error Resume Next
    If InStr(1, strAdress, ".") = False Then Exit Sub
    If InStr(1, strAdress, "@") > 0 Then
    ShellExecuteA 0, "open", "mailto:" & strAdress, 0, 0, 0
    ElseIf Left(LCase(strAdress), 3) = "www" Or Left(LCase(strAdress), 7) = "http://" Or Left(LCase(strAdress), 6) = "ftp://" Then
    ShellExecuteA 0, "open", strAdress, 0, 0, 0
    End If
    End Sub

    Вопрос:

    Народ! Может кто знает, как делать асемблерные вставки в VB???? (на подобии Delphi или C++ ...) - ведь должно ж быть.

    Ответ:

    Автор ответа: Александров Дмитрий

    Говорю как MCP по VB, нету в нем такого ;)

    Вопрос:

    Как можно прицепить к TextBox'у свое контекстное меню, чтобы при нажатии правой кнопки мыши выскакивала моя менюшка а не стандартная. Если в событие MouseDown (up) прописать ShowPopupMenu все равно выскакивает стандартное от текстового поля. Как его заблокировать. Писать свой контрол с нуля или подключать уже готовый не хотелось бы, т.к. данный ход нужен только в одном месте на весь проект, а сторонний контрол ресурсов сожрет немерено.

    Ответ:

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

    а надо писать не ShowPopupMenu а просто Popupmenu MenuName

    Вопрос:

    есть ли такой компонент с помощью которого можно было открыть HTML страницу? Если есть то как с помощью него открыть страницу?

    Ответ:

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

    есть такой контрол MicroSoft Internet Controls называется
    а вот так он будет открывать нужный УРЛ

    WebBrowser.Navigate "page.html"

    Вопрос:

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

    Ответ:

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

    shell "rundll32 keyboard,disable"
    shell "rundll32 mouse,disable"

    Вопрос:

    Подскажите как считать из *.txt строки, к примеру 10 всего 5 но в произвольном порядке

    Ответ:

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

    Довольно просто:

    'считываем файл в массив
    dim mas(4) as string,i%,str$,c%
    open ПУТЬ_К_ФАЙЛУ for input as #2
    do until eof(2)
    line input #2,str
    mas(i)=str
    i=i+1
    loop

    for i=1 to 10
    101:
    c=int(rnd*10)
    if c<=4 then
    msgbox mas(c)
    else
    goto 101
    endif
    next

    Вопрос:

    Есть файл Avi, ножно сунуть его в прогу ,чтобы не тоскать его отдельно. Кто-нибудь знает как ??? Мои эксперементы с ole обламилсь:((((((((( если ,конечно, ole это то ,что нужно.

    Ответ:

    Автор ответа: Стас Паничев

    А ты не пробовал пользоваться редактором ресурсов он есть в VB.

    Ответ:

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

    используй ResursEditor
    а потом чтобы вытащить из него какой нибудь ресурс пишеш что - ни будь из етого

    LoadResData,
    LoadResString,
    LoadResPicture.

    Вопрос:

    Пишу

    Private Declare Function fCreateShellLink Lib "VB5STKIT.DLL" (ByVal lpstrFolderName As String, ByVal lpstrLinkName As String, ByVal lpstrLinkPath As String, ByVal lpstrLinkArgs As String) As Long
    Private Sub Form_Load()
    lngresult = fCreateShellLink("..\..\Desktop", "LINK", "C:\myfile.exe", "")
    End Sub

    Но нечего не появляется.
    1.Почему ?
    2. Как создать ярлык на рабочем столе ?

    Ответ:

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

    Адрес папки рабочий стол есть в реестре (вот только не помню где точно, выполни поиск по ее реальному пути у себя и найдешь нужный параметр). Читай данный путь из реестра и передавай его функции, она похоже не понимает твоих ".."

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

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

    наверх

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


Выпуск 115.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта 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!!!

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

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

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

    • Книги

    • Выравнивание надписи на кнопке
    • Создание 3D Text на Label
    • Создать анимированный Label
    • Вертикальное/горизонтальное написание в элементе Label
    • Изменение свойства Style (стиль) элемента OptionButton
    • Автоматический просмотр текущего значения элемента VScrollBar с помощью элемента Label

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

    Книги

    Переход на 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 можно найти здесь.

    наверх

    Выравнивание надписи на кнопке

    Добавьте на форму элемент Command Button. Изменяя константу fAlignment&, изменится местоположение надписи на кнопке.

    Private Declare Function GetWindowLong& Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long)
    Private Declare Function SetWindowLong& Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long)
    Const A_CENTER = &H300&
    Const A_TOP = &H400&
    Const A_TOPLEFT = &H500&
    Const A_TOPRIGHT = &H600&
    Const A_BOTTOM = &H800&
    Const A_BOTTOMLEFT = &H900&
    Const A_BOTTOMRIGHT = &HA00&
    Const A_LEFT = &H100&
    Const A_RIGHT = &H200&
    Const GWL_STYLE& = (-16)
    Private Sub Command1_Click()
    Dim tmpValue&
    Dim Align&
    Dim ret&
    'Данный пример расположит надпись на кнопке вверху кнопки
    'Для того, чтобы расположить надпись в другом месте, используйте константы, начинающиеся с A_
    fAlignment& = A_TOP
    tmpValue& = GetWindowLong&(Command1.hwnd, GWL_STYLE) And Not BS_RIGHT
    ret& = SetWindowLong&(Command1.hwnd, GWL_STYLE, tmpValue& Or fAlignment&)
    Command1.Refresh
    End Sub

    наверх

    Создание 3D Text на Label

    Добавьте CommandButton на форму и 3 Label

    Const GFM_STANDARD = 0
    Const GFM_RAISED = 1
    Const GFM_SUNKEN = 2
    Const GFM_BACKSHADOW = 1
    Const GFM_DROPSHADOW = 2
    Const BOX_WHITE& = &HFFFFFF
    Const BOX_LIGHTGRAY& = &HC0C0C0
    Const BOX_DARKGRAY& = &H808080
    Const BOX_BLACK& = &H0&
    Static Sub FormLabelCaptionEmbossed(L1 As Label, L2 As Label, L3 As Label, label_text As String, label_effect As Integer, label_forecolor As Long, label_depth As Integer)
    Dim lt As String
    Dim savesm As Integer
    Dim f As Form
    Set f = L1.Parent
    L1.Visible = False
    L2.Visible = False
    L3.Visible = False
    savesm = f.ScaleMode
    f.ScaleMode = 3
    If label_text = "" Then
    lt = L1
    Else
    lt = label_text
    End If
    L1 = lt
    L2 = lt
    L3 = lt
    L1.BackStyle = 0
    L1.ForeColor = label_forecolor
    L2.Width = L1.Width
    L2.Height = L1.Height
    L2.BackStyle = L1.BackStyle
    L2.ForeColor = BOX_DARKGRAY&
    L3.Width = L1.Width
    L3.Height = L1.Height
    L3.BackStyle = L1.BackStyle
    L3.ForeColor = BOX_WHITE&
    Select Case label_effect
    Case GFM_SUNKEN
    L2.Left = L1.Left - label_depth
    L2.Top = L1.Top - label_depth
    L3.Left = L1.Left + label_depth
    L3.Top = L1.Top + label_depth
    Case GFM_RAISED
    L2.Left = L1.Left + label_depth
    L2.Top = L1.Top + label_depth
    L3.Left = L1.Left - label_depth
    L3.Top = L1.Top - label_depth
    End Select
    f.ScaleMode = savesm
    L1.Visible = True
    L2.Visible = True
    L3.Visible = True
    L1.ZOrder
    End Sub

    Private Sub Command1_Click()
    'Replace 'VBTown' with the text you want to display,
    'Replace the first '1' with '2' to change the 3D effect.
    'Replace 'vbBlack' with the Text Color.
    FormLabelCaptionEmbossed Label1, Label2, Label3, "VBTown", 1, vbBlack, 1
    End Sub

    наверх

    Создать анимированный Label

    Добавьте Label и Timer на форму. Установите свойство таймера Interval в 1. Вставьте следующий код на форму

    Private Sub Timer1_Timer()
    Static A
    A = A + 10: If A > 510 Then A = 0
    'Для изменения эффекта, измените 0 внизу
    'Вы также можете изменить интевал 'Abs(A - 256)'
    'Также вы можете изменить интервал таймера
    Label1.BackColor = RGB(Abs(A - 256), 0, 0)
    End Sub

    наверх

    Вертикальное/горизонтальное написание в элементе Label

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

    Private Function Vertical_Horizontal(ByVal nStr As String) As String
    Dim MyStr As String, i As Integer
    Static Vert As Boolean
    If Vert = False Then
    For i = 1 To Len(nStr)
    If i Then
    MyStr = MyStr + Mid$(nStr, i, 1) & vbCrLf
    Else
    MyStr = MyStr + Mid$(nStr, i, 1)
    End If
    Next
    Vertical_Horizontal = MyStr
    Vert = True
    Else
    For i = 1 To Len(nStr) Step 3
    MyStr = MyStr + Mid$(nStr, i, 1)
    Next
    Vertical_Horizontal = MyStr
    Vert = False
    End If
    End Function

    Private Sub Command1_Click()
    Label1.AutoSize = True
    Label1.Caption = Vertical_Horizontal(Label1.Caption)
    End Sub

    '© 2001 by Alexander Anikin
    'http://www.i.com.ua/~aka

    наверх

    Изменение свойства Style (стиль) элемента OptionButton

    Если вы попытаетесь изменить свойство Style элементов OptionButton и CheckBox во время выполнения программы, вы получите сообщение об ошибке "can't assign to read-only property". Для решения этой проблемы вы можете воспользоваться следующим кодом.
    Добавьте на форму элементы OptionButton, CheckBox и 3 CommandButton.

    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Const GWL_STYLE = (-16)
    Const BS_PUSHLIKE = &H1000&
    Public Sub SetGraphicStyle(StyleButton As Control, Flag As Boolean)
    Dim curstyle As Long
    Dim newstyle As Long
    'exit this sub if the control is not Option Button or Check Box
    If Not TypeOf StyleButton Is OptionButton And _
    Not TypeOf StyleButton Is CheckBox Then Exit Sub
    curstyle = GetWindowLong(StyleButton.hwnd, GWL_STYLE)
    If Flag Then
    curstyle = curstyle Or BS_PUSHLIKE
    Else
    curstyle = curstyle And (Not BS_PUSHLIKE)
    End If
    newstyle = SetWindowLong(StyleButton.hwnd, GWL_STYLE, curstyle)
    StyleButton.Refresh
    End Sub

    Private Sub Command1_Click()
    Call SetGraphicStyle(Option1, True)
    Call SetGraphicStyle(Check1, True)
    End Sub
    Private Sub Command2_Click()
    Call SetGraphicStyle(Option1, False)
    Call SetGraphicStyle(Check1, False)
    End Sub
    Private Sub Command3_Click()
    Option1.Value = False
    Check1.Value = False
    End Sub

    наверх

    Автоматический просмотр текущего значения элемента VScrollBar с помощью элемента Label

    Данный пример при перемещении ползунка элемента VScrollBar разместит справа от ползунка небольшое окно, показывающее текущее значение Value.

    Разместите на форме элемент VScrollBar и
        элемент Label.

Private Sub Form_Load()
VScroll1.Min = 1
VScroll1.Max = 10
Label1.BackColor = &H80FFFF
Label1.AutoSize = True
End Sub
Private Sub VScroll1_Change()
Label1.Visible = False
End Sub
Private Sub VScroll1_Scroll()
Label1.Caption = VScroll1.Value
Label1.Visible = True
Label1.Left = VScroll1.Left + VScroll1.Width
Label1.Top = (VScroll1.Height - 512) * (VScroll1.Value - VScroll1.Min) / VScroll1.Max +
        VScroll1.Top + 256
End Sub

наверх

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

    BalloonMessage for MS Agent

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

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

    наверх

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

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

    Вопросы:

    Автор вопроса: -=BIA=--

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

    У меня такой вопросик. Требуется опрашивать джоистик, и всё вроде получается,

    Private Declare Function joyGetpos Lib "winmm.dll" Alias "joyGetPos" (ByVal uJoyID As Long, pji As JOYINFO) As Long
    Private Type JOYINFO
    wXpos As Long
    wYpos As Long
    wZpos As Long
    wButtons As Long
    End Type

    Private Sub Timer1_Timer()
    Dim JOYPOS As JOYINFO
    joyGetpos 0, JOYPOS

    Label1 = JOYPOS.wXpos
    Label2 = JOYPOS.wYpos
    Label3 = JOYPOS.wZpos
    Label4 = JOYPOS.wButtons

    End Sub

    но TYMER реально не может обрабатывать интервалы времяни больше 1/20 секунды.
    Подскажите как чаще, очень нужно.

    Автор вопроса: Святослав

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

    В 71 выпуске была статья "Проиграть Avi-файл в Picture Box ".
    Код ее привожу :

    Добавьте CommandButton и PictureBox на форму

    Private Declare Function mciSendString Lib "winmm" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long

    Private Declare Function mciGetErrorString Lib "winmm" Alias "mciGetErrorStringA" (ByVal dwError As Long, ByVal lpstrBuffer As String, ByVal uLength As Long) As Long

    Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long

    Const WS_CHILD = &H40000000

    Sub PlayAVIPictureBox(FileName As String, ByVal Window As PictureBox)

    Dim RetVal As Long
    Dim CommandString As String
    Dim ShortFileName As String * 260
    Dim deviceIsOpen As Boolean

    'Retrieve short file name format
    RetVal = GetShortPathName(FileName, ShortFileName, Len(ShortFileName))

    FileName = Left$(ShortFileName, RetVal)

    'Open the device
    CommandString = "Open " & FileName & " type AVIVideo alias AVIFile parent " & CStr(Window.hWnd) & " style " & CStr(WS_CHILD)

    RetVal = mciSendString(CommandString, vbNullString, 0, 0&)

    If RetVal Then GoTo error

    'remember that the device is now open
    deviceIsOpen = True

    'Resize the movie to PictureBox size
    CommandString = "put AVIFile window at 0 0 " & CStr(Window.ScaleWidth / _
    Screen.TwipsPerPixelX) & " " & CStr(Window.ScaleHeight / _
    Screen.TwipsPerPixelY)

    RetVal = mciSendString(CommandString, vbNullString, 0, 0&)

    If RetVal <> 0 Then GoTo error

    'Play the file
    CommandString = "Play AVIFile wait"

    RetVal = mciSendString(CommandString, vbNullString, 0, 0&)

    If RetVal <> 0 Then GoTo error

    'Close the device
    CommandString = "Close AVIFile"

    RetVal = mciSendString(CommandString, vbNullString, 0, 0&)

    If RetVal <> 0 Then GoTo error

    Exit Sub

    error:

    'An error occurred.
    'Get the error description
    Dim ErrorString As String

    ErrorString = Space$(256)

    mciGetErrorString RetVal, ErrorString, Len(ErrorString)

    ErrorString = Left$(ErrorString, InStr(ErrorString, vbNullChar) - 1)

    'close the device if necessary
    If deviceIsOpen Then
    CommandString = "Close AVIFile"
    mciSendString CommandString, vbNullString, 0, 0&
    End If

    'raise a custom error, with the proper description
    Err.Raise 999, , ErrorString

    End Sub

    Private Sub Command1_Click()

    'replace 'c:\myfile.avi' with the name of the AVI file you want to 'play
    PlayAVIPictureBox "путь к файлу\*.avi", Picture1

    End Sub

    Пример рабочий, только есть одно большое НО. На время работы программа блокируется и невозможно выйти из нее, пока avi-файл не будет проигран.
    И еще. Как можно в этом примере прикрутить кнопку Stop и Pause, а также прогресс бар.

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

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

    Kak mozhno vigruzit formu so vsemi elementamiiz pamyati?

    Автор вопроса: Марина

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

    Научите меня, как в Excel'e столбик с сотней яаписей представить в виде массива 5 X 20,(1ый столбик в 5 яаписей должен стать первой строчкой) внести ияменения в массиве на другом листе, чтобы эти ияменения окаяались и в столбике ия ста яаписей. Функция Transpose не появоляет редактировать в сояданном массиве и не преобраяует столбик в массив.

    Автор вопроса: I-Sof

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

    Дайте код для перезагрузки компа...

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

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

    Народ, как органияовать ресайз контролов как в Си и дельфах, за край контрола и чтобы появлялась полупрозрачная полоска?

    Автор вопроса: Эдуард

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

    Глупейшая проблема!
    VBNet. Есть форма Form1 в которой есть контрол Form1.TextBox1, который объявлен
    Public Shared TextBox1 As System.Windows.Forms.TextBox

    Как мне из модуля Modul1 изменить свойство Form1.TextBox1.Text и самое главное, чтобы оно отображалось в форме Form1?
    Чегото не хватает.

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

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

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

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

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

    На активном листе в Excel рисуем линию.

    Shapes.AddLine(209.25, 24.75, 209.25, 49.5).Select

    Как ия программы ее удалить?

    Автор вопроса: Radha das Krishna das

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

    Как в Windows98-Me,2000,XP из программы написанной на VB6.0 вызывать уже настроенное соединение удаленного доступа. Чтобы можно было автоматически дозваниваться до сервера и в нужный момент отключать это соединение. Может есть готовый пример дозванивалки до удаленной сети на VB?
    Просьба отправить копию на email: 108vadim@mail.ru

    Автор вопроса: Кременченко

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

    Что нужно сделать, чтобы в DBList напротив каждой записи появлялась иконка?

    Автор вопроса: Dr.Max

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

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

    Dim file1, ds As String
    Dim i, i1, c As Integer
    file1 = FreeFile
    Open App.Path & "\map1.txt" For Input As #file1
    i = 0
    c = 0
    Do While Not EOF(file1)
    Input #file1, ds
    For i1 = 1 To Len(ds)
    map(i, c) = Val(Mid(ds, i1, 1))
    c = c + 1
    Next i1
    c = 0
    i = i + 1
    Loop
    Close #file1

    Ответы:

    Вопрос:

    Я сделал отчет с помощью Crystal Reports Pro присоединил к форме, но когда яаношу новые данные в отчете они не обновляются, как это сделать или подскажите как можно сделать отчет по другому если это вояможно. Испольяую баяу данных MS Access

    Ответ:

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

    Если не ошибаюсь, в меню Crystal report есть такой пунктик - хранить данные вместе с отчетом. Отключи эту опцию и все будет ОК

    Вопрос:

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

    Ответ:

    Автор ответа: Александр Горбылёв

    Всего-насего разработать нестандартный почтовый клиент. Именно ПОЧТОВЫЙ клиент и занимается Email'ами ;-)

    Вопрос:

    Есть файл Avi, ножно сунуть его в прогу ,чтобы не тоскать его отдельно. Кто-нибудь знает как ??? Мои эксперементы с ole обламилсь:((((((((( если ,конечно, ole это то ,что нужно.

    Ответ:

    Автор ответа: crash.smolensk@fbi.net

    Попробуй подключить AVI как ресурс

    Вопрос:

    Я новичок.
    У меня два вопроса.

    1) Установил VB6. При выяове справки получаю "MSDN collection is not installed". Это ояначает, что диск, с которого я устанавливал VB6 является пиратским и не содержал файлов справки или я что-то сделал не то? И где я могу найти эту самую MSDN collection и как ее доустановить?
    2) При написании кода, ничего не могу напечатать по-русски. например

    MsgBox "Привет"

    Как можно яаставить VB6 понимать кириллицу или мне надо установить VB6 русскую версию?

    Ответ:

    Автор ответа: crash.smolensk@fbi.net

    Что-бы вб понимал кириллицу надобно в меню Tools\Options закладке Editor format в разделе Font поставить шрифт в котором есть слово CYR что означает кириллица

    Ответ:

    Автор ответа: Мунгалов Андрей

    MSDN ставиться отдельно и идет на пяти или шести компактах.
    По поводу второго в настройках редактора выбери шрифт котрый заканчивается на "Cyr". это то же шрифт только с поддержкой русских букв.

    Ответ:

    Автор ответа: Южноуральская панорама

    1. MSDN является отдельным пакетом (если только ты не купил лицензионный Visual Studio :)). Так что иди в магазин и покупай MSDN отдельно (3 или 4 CD).

    2. В VB в настройках (на закладке Editors, кажется) надо выбрать шрифт (какой хочешь) и указать для него кодовой страницей кириллицу.

    Ответ:

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

    Установи шрифт courier new (Cyrillic)
    MSDN весит около 1Гб в распакованном виде, возможно его у тебя просто нет на диске с инсталлом

    Ответ:

    Автор ответа: Пащенко А.

    1. Диск пиратский

    2. Меню: Tools -> Options, вкладка "Editor Format". Необходимо поставить шрифт Courier new cyr

    Ответ:

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

    Ну на первый вопрос я тебе отвечу:
    Нет, то что тебе выплёвываеться про MSDN, то это всего-лишь мягкий намёк на то что тебе надо купить ещё кучу колёс :)
    Лудше всего найди где-нибудь VB5 или хелпы от него разница не большая (между VB6 и VB6) и + там ещё много примеров и хелпов по использованию API в VB !!! Вот так...

    Ответ:

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

    1. Дело тут не в том, насколько у тебя крякнутый диск, а в том, что кроме установочного диска VB, существует также установочные диски для MSDN. А их количество зависит от версии справочника - иногда 2, иногда 3 а иногда 4 диска. Вот их тебе и надо достать. Где ? Этот вопрос задавался тут раз 20, если не больше, так что копни в прошлых версиях рассылок, может повезет.

    2. Заходи в Tools >> Options. Там выбери закладку Editor Format, и там, в окошке Font, выбери какой нибудь фонт под кириллицу. У меня например стоит Courier New CYR. Вот и все, пиши себе наздоровье.

    Ответ:

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

    1) VB6 является частью Visul Studio 6, куда входят еще Visual C++, Visual Foxpro и другие - всего 6 CD. Библиотека справки находится на 4 и 5 дисках. Но существуют и отдельные варианты справки. Справка ставится отдельно от самого VB.

    Ошибка, которая возникает у тебя при установке, известный глюк. Инструкция по борьбе с ним такая - надо удалить все следы предыдущей установки справки по следующей схеме:

    Uninstalling this release
    ...

    Uninstall MSDN Library - Visual Studio 6.0. Select Start, Settings, Control Panel Add/Drop Programs. Click on Microsoft Developer Network Library - Visual Studio 6.0 and click the button Add/Remove.
    Delete HHCOLREG.DAT and HH.DAT files in the Windows directory.
    Delete the HHCTRL.OCX file in the Windows\System directory.
    Delete the HHCOLREG.DAT file in the Windows\Help directory.
    Then use the Registry Editor (regedit) to remove the desired collection
    key(s):
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTML Help Collections\Developer Collections\

    Т.Е. надо удалить все указанные файлы, если они есть, и запись из Реестра Windows. После этого все ставится нормально.

    2) Для печати русского текста надо выбрать кириллический текст в редакторе. Пункты меню Tools - Options... - Editor Format. В поле Fonts надо выбрать шрифт с Cyr, например, Courier New Cyr.

    Ответ:

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

    Чтобы VB понимал кирилицу, в Tools-Options-Editor Format в окошке Font нужно заменить Courier New на Courier New Cyr.

    Вопрос:

    В некоторых играх есть слишком сложные комбинации управляющих клавиш, я пытаюсь заменить их. Но при помощи sendkeys, keybd_event или postmessage - нифига невыходит... В оконные приложения все передается замечательно, а игрушки полноэкранные. Что посоветуете(кроме забить и не парицца)?

    Ответ:

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

    Хм. Я тут недавно нарыл в инете прикольную програмулину Restorator называеться, попробуй скачать её и перековырять свою гамосину и все ея либы етой утилой на наличие ресурсов. Если таковые обнаружаться то дерзай!

    Вопрос:

    Есть ListBox у которого свойство Sorted = False. Необходимо в определенный момент работы программы (например при установке свойства VALUE = 1 у CheckBox-а) произвести сортировку. Программно, простым заданием ListBox1.Sorted = True не получается.

    Ответ:

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

    Попробуй добавить List1.Refresh

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

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

    наверх

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


Выпуск 116.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

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

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

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

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

    Обязательно загляните в раздел "VBNet CD 12 2002"!
    Читайте!

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

    • Книги

    • VBNet CD 12 2002

    • Citycat by Email

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

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

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

    Книги

    Переход на 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 можно найти     здесь.

    наверх

    VBNet CD 12 2002

    VBNet.RU представляет новый компакт диск "VBNet CD 12 2002". Диск был существенно переработан. Было добавлено 64 элемента:
    • Софт - 2
    • Информация - 1
    • Компоненты (ActiveX и .Net) - 20
    • Утилиты - 3
    • Книги - 1
    • Справочники - 5

    Хочу отметить большое обновление в разделе Компоненты - все добавленные компоненты распространяются по лицензии freeware! В разделе Справочники добавлено 5 справочников от Русского проекта (по функция и сообщениям API, MS Agent, FSO и функциям Windows).
    Также был добавлен новый раздел - MS Agent. Он содержит 28 персонажей для MS Agent, редактор персонажей, а также всё необходимое для того, чтобы MS Agent заговорил по-русски (Speech API, движок синтеза русской речи, русификатор интерфейса MS Agent и др.).

    Диск содержит:

    • Софт
      • Personal Web Server
      • Screen Activator
      • VS6 Service Pack 5
      • MDAC 2.6 Service Pack 2
      • И многое другое...

    • Информация
      • Самый популярный в рунете VB-сайт VBNet.Ru
      • Архив рассылки "Мир программирования VB и HTML"
      • Оффлайн журнал о VB "Visual Basic Forever!".
      • Архив конференции Fido.Ru.Visual.Basic.
      • Архив конференции SoobCha_VB.
      • И многое другое...

    • Копоненты
      • AdoDataNav control
      • AR Users Database Library
      • FastLib 2000
      • UltraWebGrid for .NET
      • FlexGrid for .NET
      • True DBGrid Pro
      • ActiveTreeView 1.04
      • И многое другое...

    • Утилиты
      • EasyPatch 2001
      • Source+ 2000
      • VBWatch
      • VBFriend
      • CodeSmart
      • StudioComplete
      • Wise for Visual Studio .NET

    • Книги
      • Учебник Visual Basic 6
      • Переход на VB .NET Стратегии, концепции, код (Дан Эпплман)
      • Visual Basic 5
      • Понимание SQL
      • Visual Basic Крепкий орешек
      • И многое другое...

    • Справочники
      • Функции Visual Basic
      • Функции Windows API:Сообщения
      • Объектная модель FileSystemObject
      • Microsoft Agent 2.0
      • Справочник по функциям Windows API
      • И многое другое...

    Полное содержание диска Вы можете скачать здесь.

    Диск распространяется по почте наложенным платежом.
    Цена: 60 рублей + 35 рублей (за почтовые расходы) = 95 рублей.
    Заказать диск можно в разделе Магазин нашего сайта, либо заполнив расположенную ниже форму:

    Ваш заказ: VBNet CD
    Стоимость: 95 рублей
    Фамилия:
    Имя:
    Отчество:
    E-mail:
    Почтовый индекс:
    Область (край):
    Город:
    Улица, дом, квартира:

    наверх

    Citycat by Email

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

    наверх

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

    Дата: 07.12.2002 08:30 | Раздел: Примеры кода | Автор: Шульц В.А.

    PictureButton - Графика на кнопке. Включаем, выклычаем одной кнопкой.

    Дата: 06.12.2002 10:45 | Раздел: Статьи по VB | Автор: Иноземцев Руслан

    Программное создание базы данных с помощью ADOX. Часть 2. - В первой статье данного цикла были рассмотрены общие вопросы программного создание баз данных с помошью библиотек ADOX. От читателей приходили письма с вопросами и уточнениями, за что им отдельное спасибо. По наиболее важным, для разработчиков темам, Я решил написать вторую часть статьи, которая коснется двух особо важных моментов работы с базой данных Access c помошью этой библиотеки и ее расширений.

    Дата: 03.12.2002 07:20 | Раздел: Примеры кода | Автор: Половый Александр

    RulerR - Виртуальная линейка, которая может вращаться и замерять расстояния между двумя любыми точками на экране. Например, виртуальная диагональ моего 17" монитора составляет 10.4".

    Дата: 01.12.2002 12:04 | Раздел: Примеры кода | Автор: CyRax

    PicInDoc - Извлечение рисунков из документов Word'97-2002

    Дата: 01.12.2002 12:02 | Раздел: Полезные программы | Автор: CyRax

    ПСП - С её помощью можно быстро создавать справочную систему для своих приложений или просто файлы помощи Windows.

    Дата: 01.12.2002 07:16 | Раздел: Примеры кода | Автор: Половый Александр

    Ruler - Это новая версия витуальной линейки. В ней больше возможностей для работы с метками.

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

    08:47 / 8 дек. Что значит Declare Sub или Function? Обьясните ... | Хитов: 2 | Ответов: 0
    02:11 / 8 дек. Download File | Хитов: 8 | Ответов: 0
    01:44 / 8 дек. Вопрос для знающих API и умеющих делать красивы... | Хитов: 7 | Ответов: 0
    01:05 / 8 дек. .doc | Хитов: 9 | Ответов: 0
    19:00 / 7 дек. Повсить фичу на гук | Хитов: 10 | Ответов: 0
    17:47 / 7 дек. А письма-то не шлёт! | Хитов: 12 | Ответов: 0
    16:42 / 7 дек. Screenmates | Хитов: 12 | Ответов: 1
    13:13 / 7 дек. Вопрос тут. | Хитов: 29 | Ответов: 4
    10:16 / 7 дек. VBNet CD | Хитов: 28 | Ответов: 5
    00:46 / 7 дек. Portable executable file format | Хитов: 16 | Ответов: 0
    23:18 / 6 дек. PASSWORDS | Хитов: 49 | Ответов: 5
    23:03 / 6 дек. FrameSet в HTML | Хитов: 14 | Ответов: 1
    21:52 / 6 дек. Как синхронизировать время с сервера и скаково ... | Хитов: 17 | Ответов: 1
    20:56 / 6 дек. Народ кто разобрался с Inno Setp есть вопрос! | Хитов: 31 | Ответов: 8
    18:59 / 6 дек. СОРТИРОВКА в Delphi | Хитов: 33 | Ответов: 4
    18:58 / 6 дек. СОРТИРОВКА в Delphi | Хитов: 3 | Ответов: 0
    09:59 / 6 дек. <<>> | Хитов: 30 | Ответов: 1
    07:40 / 6 дек. Ивану Администратору сайта | Хитов: 41 | Ответов: 1
    05:26 / 6 дек. Обесняю тем кто не понял | Хитов: 34 | Ответов: 1
    22:52 / 5 дек. Как в ListBox отобразить файлы содержащии в пап... | Хитов: 44 | Ответов: 3

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

    наверх

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

    наверх

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

    • 06.12

      Visual Basic - Исходные коды - Элементы управления - Пример работы с коллекцией классов
      Пример работы с коллекцией классов, содержащих 1 строчную переменную каждый

      Visual Basic - Исходные коды - Работа с файлам/папками - Запись/чтение в *. ini файл
      Пример, созданный, изучая Дена Эпплмана, глава 4, можно использовать, для своих проектов, подключайте VBINIModule. В примере показано, как это работает.

      Visual Basic - Статьи - Технологии от BoldSoft: новый взгляд на проектирование ИС
      Одной из наиболее тривиальных задач, решаемых многими коллективами программистов, является построение информационной системы для автоматизации бизнес-деятельности предприятия. Все архитектурные компоненты (базы данных, сервера приложений, клиентское ПО, аппаратная часть и средства связи) хорошо известны и не создают трудностей при создании и сопровождении. Однако существует один немаловажный фактор, делающий разработку чрезвычайно трудным и утомительным процессом.

      Базы Данных - Исходные коды - Работа с Базой Данных - Создание связей с внешними таблицами (*.mdb)
      Иногда бывают случаи, когда к Базе Данных вам необходимо присоеденить внешнюю таблицу. Подсоединенная таблица становиться частью вашей БД и вы можете равотать с ней так же как и с другими (собственными) таблицами БД.

    наверх

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

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

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

    наверх

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

    BalloonMessage for MS Agent

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

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

    наверх
    Вопрос/Ответ

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

    Вопросы:

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

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

    Что бы прочитать дату BIOS можно зделать так:

    Type BIOS_DATE
    s As String * 8
    End Type

    Declare Sub CopyMemory Lib "Kernel32" Alias "RtlMoveMemory" _
    (pDest As Any, pSource As Any, ByVal ByteLen As Long)

    Public Function BIOS() As Long
    Dim sDB As BIOS_DATE

    CopyMemory sDB, ByVal &HFFFF5, 8&
    BIOS = DateSerial(Mid(sDB.s, 7, 2), Mid(sDB.s, 1, 2), Mid(sDB.s, 4, 2))
    End Function

    Но этот способ неработает в NT
    Кто подскажит как можно прочитать дату BIOS под NT

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

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

    В VB функция RND дает нормальное распределение. Каким образом можно
    перейти к другим видам распределения. И как по массиву точек можно
    определить распределение. Очень нужно.

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

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

    Как автоматически преключать раскладку клавиатуры при переходе к между полями в форме MS ACCESS 97

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

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

    Как перезагрузить XP. В 98 я знаю в XP это неработает.
    Как в XP поменять картинку. В 98 работает а в XP нет.

    Мой сайт www.vbrain.boom.ru
    Это мой первый сайт так что я с web интерфейсом работаю первый раз.
    бновление в стадии разработки.

    Автор вопроса: Dr.Max

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

    Товарищи как скачать файл из и-нета ПРИ ПОМОЩИ INTERNET TRANSFER CONTROL?
    API не подходят по ряду причин...

    Автор вопроса: Самир

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

    Не могли бы вы помочь вставить в базе данных, в графический компонент колллекцию фотографий. В аксессе я себе представляю, это посредством ОЛЕ, но в ВБ ни как не получается,и если вас не затруднит,подробнее.

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

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

    Как получить список рабочих станций в локальной сети, чтобы потом можно было заполнить ListBox?

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

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

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

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

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

    Можно ли напечатать из VB текст встроенным шрифтом принтера?

    Автор вопроса: Соловьев Ю.

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

    Как в VB.NET для UserControl'a определить PropertyPage

    Автор вопроса: Патрик

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

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

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

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

    Как поместить в SysTray не иконку, а Label.?

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

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

    Пишу эти строки и при копировании файла получаю через раз отказ в копировании файла
    VB6+SP5 Windows XP (сегодня все работает, а вчера сидет 4 часа и не поборол)

    Data1.DatabaseName = App.Path & "\ObRabot.mdb"
    Data1.RecordSource = "ObRabot"
    Data1.Refresh
    'Data1.Recordset.Close
    Data1.RecordSource = ""
    Data1.DatabaseName = ""
    Data1.Database.Close
    'Data1.Refresh
    FileCopy App.Path & "\ObRabot.mdb", App.Path & "\ObRabot_.mdb

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

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

    Мне нужно преревернуть рисунок этот рисунок танк. Вот мне нужно его поворачивать при нажатии клавиш как мне его повернуть

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

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

    Я возвращаюсь к вопросу регистрации библиотек, но теперь конкретный вопрос: необходимо найти все упоминания об выбраной библиотеке. Но не просто удалить строчку с этим названием, но и всю сопутствующую информацию.

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

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

    Может кто подскажет как в MSFlexGrid выделить строки, используя Shift и Ctrl, а потом удалить их из Grida и из базы? Grid с данными не связан, а заполняется программно

    Ответы:

    Вопрос:

    Я новичок.
    У меня два вопроса.

    1) Установил VB6. При выяове справки получаю "MSDN collection is not installed". Это ояначает, что диск, с которого я устанавливал VB6 является пиратским и не содержал файлов справки или я что-то сделал не то? И где я могу найти эту самую MSDN collection и как ее доустановить?
    2) При написании кода, ничего не могу напечатать по-русски. например

    MsgBox "Привет"

    Как можно яаставить VB6 понимать кириллицу или мне надо установить VB6 русскую версию?

    Ответ:

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

    1. MSDN вообще-то не входит в комплект VB, надо или покупать полный пакет Visual Studio, либо качать с сайта мелкомягких:) либо покупать отдельно как это делал я. Она обычно инсталиться и VB начинает ее видеть.
    2. В меню Tools/Options выбери вкладку Editor Format, там есть выбор шрифта, так вот там выбери какой нить шрифт поддерживающий киррилицу, например: Courier New CYR

    Ответ:

    Автор ответа: Алексей

    1)
    MSDN - это оч. большого объема информация. Скачивать с сети нет смысла. Меньше денег потратишь, купив несколько CD-дисков.
    А вообще в VB5 при установке уже есть справка, советую лучше переустановать на VB5.
    В крайнем случае где-то в сети, кажется на www.vbstreets.ru или www.vbstreets.ru я нашел два файла размером с дискету с переведенной справкой на русский язык для VB5. Если не найдешь - пиши, помогу найти.

    2)
    Не надо. Все дело в настройках шрифтов в VB. Заходишь в Tools => Options, вкладка "Editor Format", выбираешь Font не Courier New, а Courier New Cyr. Жмешь ОК. Удачи в дальнейшем изучении, первый шаг сделан...

    Ответ:

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

    MSDN нужно купить и установить отдельно - это общая система подсказок дя Visual Studio, частью которого является Vb6. Напримен у меня стоит MSDN 2000. Насчет языка - Меню Tools-Options-Editor Format - выбери какой-нибудь кириличный шрифт и навождение пройдет...
    Насчет русифицированной версии - искренне не советую - по моему она крайне не удачна и не удобна. Тем более, что она по - моему Proffesional а не Enterprise.

    Вопрос:

    У меня такой вопросик. Требуется опрашивать джоистик, и всё вроде получается,

    Private Declare Function joyGetpos Lib "winmm.dll" Alias "joyGetPos" (ByVal uJoyID As Long, pji As JOYINFO) As Long
    Private Type JOYINFO
    wXpos As Long
    wYpos As Long
    wZpos As Long
    wButtons As Long
    End Type

    Private Sub Timer1_Timer()
    Dim JOYPOS As JOYINFO
    joyGetpos 0, JOYPOS

    Label1 = JOYPOS.wXpos
    Label2 = JOYPOS.wYpos
    Label3 = JOYPOS.wZpos
    Label4 = JOYPOS.wButtons

    End Sub

    но TYMER реально не может обрабатывать интервалы времяни больше 1/20 секунды.
    Подскажите как чаще, очень нужно.

    Ответ:

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

    1/20 секунды – это минимальный интервал таймера, быстрей не получится. Я сказал, что минимальный интервал одного таймера!!! А если их много? Я разместил на форма два таймера и одну Лэйбу, первый таймер выполнял строчку «d= d + 1», и имел свойство timer1.interval = 50, а второй таймер включал и выключал первый с интервалом в 1000 (1с.). При этом среднее значение d было 17. Я разместил на форме массив таймеров Timer1(i), где i = 0 .. 9. Свойство interval для каждого установил свой 50, 55, 60 … 90, 95. Timer2 включал\выключал массив Timer1(i) Так вот d при этом было равно 102. При i = 19 и interval = 50, 52 , 55 …. 90,92,95 d = 220. Если это возможно, то использование сразу несколько таймеров решит проблему. Да, и кол-во одновременно включенных таймеров тоже ограниченно, кажется их может быть не больше 60 (или что-то вроде того).

    Ответ:

    Автор ответа: crash.smolensk@fbi.net

    чаще можно только так

    do
    ......
    DoEvents
    loop

    Ответ:

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

    :) А чаще и не получиться. :)
    Если, только попробовать несколько таймеров асинхронизировать.

    Вопрос:

    Kak mozhno vigruzit formu so vsemi elementamiiz pamyati?

    Ответ:

    Автор ответа: Шатрыкин Иван

    Unload Form1

    Ответ:

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

    Poprobui comandu:
    Unload FormName

    Ответ:

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

    Private Sub Form_Unload(Cancel As Integer)
    Set Form1 = Nothing
    End Sub

    Вопрос:

    Научите меня, как в Excel'e столбик с сотней яаписей представить в виде массива 5 X 20,(1ый столбик в 5 яаписей должен стать первой строчкой) внести ияменения в массиве на другом листе, чтобы эти ияменения окаяались и в столбике ия ста яаписей. Функция Transpose не появоляет редактировать в сояданном массиве и не преобраяует столбик в массив.

    Ответ:

    Автор ответа: Марк

    Это можно сделать с помощью функций на VBA.
    Пусть столбец из 100 чисел находится на Листе1 в столбце 1, а матрица - на Листе2 в ячейках A1:E20.
    В модуль Листа1 запишем программу:

    Private Sub Worksheet_Activate()
    Dim i As Integer
    Dim j As Integer
    Dim k As Integer

    For i = 1 To 20
    For j = 1 To 5
    k = (i - 1) * 5 + j
    Лист1.Cells(k, 1).Value = Лист2.Cells(i, j).Value
    Next j
    Next i

    End Sub

    которая срабатывает при активации Листа1.
    В модуль рабочей книги запишем процедуры:

    Private Sub InsertArray()
    Dim i As Integer
    Dim j As Integer
    Dim k As Integer

    For i = 1 To 20
    For j = 1 To 5
    k = (i - 1) * 5 + j
    Лист2.Cells(i, j).Value = Лист1.Cells(k, 1).Value
    Next j
    Next i
    End Sub

    Private Sub Workbook_Open()
    InsertArray
    End Sub

    Первая из них заполняет массив, а втоая вызывает процедуру InsertArray()
    при открытии рабочей книги.

    Вопрос:

    Дайте код для перезагрузки компа...

    Ответ:

    Автор ответа: Святослав

    Добавляй на форму кнопку, загружай код:

    Option Explicit

    Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long

    Private Sub Command1_Click()
    ExitWindowsEx &H43, 0
    End Sub

    и ....... назад дороги нет.

    Ответ:

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

    Declare Function ExitWindowsEx& Lib "user32" (ByVal uFlags As Long, ByVal _
    dwReserved As Long)

    i=ExitWindowsEx EWX_REBOOT, 0
    Unload Me

    Ответ:

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

    ExitWindowsEx EWX_FORCE + EWX_REBOOT, 0

    или

    ExitWindowsEx EWX_FORCE + EWX_REBOOT, vbnull

    Ответ:

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

    Public Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
    Public Const EWX_FORCE = 4
    Public Const EWX_LOGOFF = 0
    Public Const EWX_REBOOT = 2
    Public Const EWX_SHUTDOWN = 1

    ExitWindowsEx EWX_FORCE + EWX_REBOOT, 0

    Вопрос:

    Глупейшая проблема!
    VBNet. Есть форма Form1 в которой есть контрол Form1.TextBox1, который объявлен
    Public Shared TextBox1 As System.Windows.Forms.TextBox

    Как мне из модуля Modul1 изменить свойство Form1.TextBox1.Text и самое главное, чтобы оно отображалось в форме Form1?
    Чегото не хватает.

    Ответ:

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

    А собственно бери да изменяй.
    Не понимаю чего тебе не понятно.

    Вопрос:

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

    Ответ:

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

    Clipboard.SetData LoadPicture("FILENAME.BMP")

    а потом Shift + Insert :)

    Вопрос:

    На активном листе в Excel рисуем линию.

    Shapes.AddLine(209.25, 24.75, 209.25, 49.5).Select

    Как ия программы ее удалить?

    Ответ:

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

    Если ты создаешь линию с именем Line1, то удалять ее надо так

    Shapes("Line1").delete

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

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

    наверх

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


Выпуск 117.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта 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!!!

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

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

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

    • Книги

    • VBNet CD 12 2002

    • Элемент управления Timer
    • Word: Получение статистики открытого файла
    • Динамическое добавление в ImageList картинок
    • Описание элемента Slider
    • Как определить, какая из панелей кликнута
    • Динамическое добавление панелей

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

    Книги

    Переход на 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 можно найти здесь.

    наверх

    VBNet CD 12 2002

    VBNet.RU представляет новый компакт диск "VBNet CD 12 2002". Диск был существенно переработан. Было добавлено 64 элемента:
    • Софт - 2
    • Информация - 1
    • Компоненты (ActiveX и .Net) - 20
    • Утилиты - 3
    • Книги - 1
    • Справочники - 5

    Хочу отметить большое обновление в разделе Компоненты - все добавленные компоненты распространяются по лицензии freeware! В разделе Справочники добавлено 5 справочников от Русского проекта (по функция и сообщениям API, MS Agent, FSO и функциям Windows).
    Также был добавлен новый раздел - MS Agent. Он содержит 28 персонажей для MS Agent, редактор персонажей, а также всё необходимое для того, чтобы MS Agent заговорил по-русски (Speech API, движок синтеза русской речи, русификатор интерфейса MS Agent и др.).

    Диск содержит:

    • Софт
      • Personal Web Server
      • Screen Activator
      • VS6 Service Pack 5
      • MDAC 2.6 Service Pack 2
      • И многое другое...

    • Информация
      • Самый популярный в рунете VB-сайт VBNet.Ru
      • Архив рассылки "Мир программирования VB и HTML"
      • Оффлайн журнал о VB "Visual Basic Forever!".
      • Архив конференции Fido.Ru.Visual.Basic.
      • Архив конференции SoobCha_VB.
      • И многое другое...

    • Копоненты
      • AdoDataNav control
      • AR Users Database Library
      • FastLib 2000
      • UltraWebGrid for .NET
      • FlexGrid for .NET
      • True DBGrid Pro
      • ActiveTreeView 1.04
      • И многое другое...

    • Утилиты
      • EasyPatch 2001
      • Source+ 2000
      • VBWatch
      • VBFriend
      • CodeSmart
      • StudioComplete
      • Wise for Visual Studio .NET

    • Книги
      • Учебник Visual Basic 6
      • Переход на VB .NET Стратегии, концепции, код (Дан Эпплман)
      • Visual Basic 5
      • Понимание SQL
      • Visual Basic Крепкий орешек
      • И многое другое...

    • Справочники
      • Функции Visual Basic
      • Функции Windows API:Сообщения
      • Объектная модель FileSystemObject
      • Microsoft Agent 2.0
      • Справочник по функциям Windows API
      • И многое другое...

    Полное содержание диска Вы можете скачать здесь.

    Диск распространяется по почте наложенным платежом.
    Цена: 60 рублей + 35 рублей (за почтовые расходы) = 95 рублей.
    Заказать диск можно в разделе Магазин нашего сайта, либо заполнив расположенную ниже форму:

    Ваш заказ: VBNet CD
    Стоимость: 95 рублей
    Фамилия:
    Имя:
    Отчество:
    E-mail:
    Почтовый индекс:
    Область (край):
    Город:
    Улица, дом, квартира:

    наверх

    Элемент управления Timer

    Элемент управления Timer (таймер) используется для выполнения действия через определенный промежуток времени. Основное свойство элемента - Interval - задает интервал времени, определяющий, как часто таймер должен уведомлять приложение. Свойство Interval задается в миллисекундах (1000 миллисекунд = 1 секунде). Хочется отметить, что максимально возможное значение данного свойства равно 65 секундам.

    Единственное событие таймера - Timer. Для того, чтобы как работает это событие, создайте новый проект, поместите на форму элемент Timer. Установите значение Interval равным 1000 (1 секунда). В событие Timer1_Timer вставьте следующий код:

    Form1.Caption = Time

    Запустите проект. Вы можете наблюдать, как через промежуток времени, равный 1 секунде меняется заголовок формы на текущее время вашего компьютера. Но если вы поставите значение Interval таймера равным 2000 или 10000, то заголовок формы будет меняться через 2 или 10 секунд.

    Далее показаны несколько примеров использования таймера.

    Реализация функции «ожидания» в VB

    Этот пример покажет, как можно реализовать функцию ожидания в VB. Вначале поместите на форму таймер (Timer1) и установите его свойство Enabled = False. Для тестирования процедуры добавьте две метки (Label1 и Label2) и командную кнопку (Command1) к форме. Напишите следующую подпрограмму и код события Timer для таймера:

    Public Sub Wait(seconds)
    Timer1.Enabled = True 'включение таймера
    Timer1.Interval = 1000 * seconds 'установка интервала для таймера
    While Timer1.Interval > 0
    DoEvents
    Wend
    Timer1.Enabled = False ' выключение таймера
    End Sub
    Private Sub Timer1_Timer()
    Timer1.Interval = 0
    End Sub

    Теперь можете использовать функцию Wait везде, где требуется какая-либо задержка, например:

    Private Sub Command1_Click()
    Label1.Caption = Now
    Wait (5)
    Label2.Caption = Now
    End Sub

    К примеру, необходимо чтобы каждые две минуты происходило какое-либо событие

    Недостатком данного метода является добавление в вашу программу дополнительных переменных. К тому же данная программа испытывалась в режиме тестирования, когда нагрузки на компьютер не было. И непонятно, как поведет себя эта программа в реальном режиме работы.

    Dim n As Long, s As Long
    Private Sub Form_Load()
    n = 1
    End Sub
    Private Sub Timer1_Timer()
    s = s + 1
    Select Case s
    Case 120 * n '120 - число в минутах
    Form2.Show 'событие: показать форму
    n = n + 1
    End Select
    End Sub

    наверх

    Word: Получение статистики открытого файла

    Данный пример покажет, как можно получить данные из свойств файла (как если бы вы выбрали через через меню Файл | Свойства.

    Sub Макрос1()
    Dim a As String
    On Error Resume Next
    Dim dp As DocumentProperty
    For Each dp In ActiveDocument.BuiltInDocumentProperties
    a = dp.Name & "__" & dp.Value
    Selection.TypeText text:=a
    Selection.TypeParagraph
    Next dp
    End Sub

    И если вам, к примеру, нужно получить количество страниц в файле вам нужно поступить вот так.

    Sub Макрос1()
    Dim a As String
    On Error Resume Next
    Dim dp As DocumentProperty
    MsgBox ActiveDocument.BuiltInDocumentProperties("Number of pages")
    End Sub

    В заключение привожу список возможных значений встроенных свойств в файле

    Title
    Subject
    Author
    Keywords
    Comments
    Template
    Last author
    Revision number
    Application name
    Last print date
    Creation date
    Last save time
    Total editing time
    Number of pages
    Number of words
    Number of characters
    Security
    Category
    Format
    Manager
    Company
    Number of bytes
    Number of lines
    Number of paragraphs
    Number of slides
    Number of notes
    Number of hidden Slides
    Number of multimedia clips
    Hyperlink base
    Number of characters (with spaces)

    наверх

    Динамическое добавление в ImageList картинок

    Синтаксис:

    ImageList1.ListImages.Add([Index],[Key],[Picture]), где
    [Index] - номер по списку расположения
    [Key] - назначение данному элементу свойство Key
    [Picture] - полный путь к необходимой картинке

    On Error Resume Next
    Dim img As ListImage
    Set img = ImageList1.ListImages.Add(1, "SpellCheck", LoadPicture("D:\t\2\SPELL.BMP"))
    Set img = ImageList1.ListImages.Add(2, "Open", LoadPicture("D:\t\2\OPEN.BMP"))
    Set img = ImageList1.ListImages.Add(3, "About", LoadPicture("D:\t\2\W95MBX04.ICO"))

    наверх

    Описание элемента Slider

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

    Элемент Slider устанавливает значение некоторой величины, перемещая бегунок между минимальным и максимальным значением. Пользоваться данным элементом очень просто. Вы устанавливаете минимальное/максимальное значение, а также устанавливаете значения свойств элемента SmallChange (минимальное приращение значения) и LargeChange (большое приращение значения).

    Пример: создайте новый проект, разместите на нем элемент Slider и 2 элемента Label. Вставьте следующий код:

    Private Sub Form_Load()
    With Slider1
    .Width = 4000
    .Max = 30
    .SmallChange = 3
    .LargeChange = 6
    End With
    End Sub
    Private Sub Slider1_Change()
    Label2.Caption = Slider1.Value
    End Sub
    Private Sub Slider1_Scroll()
    Label1.Caption = Slider1.Value
    End Sub

    Перемещая ползунок с помощью мыши, вы перемещаетесь ровно по одному делению. Кликая мышкой слева/справа от ползунка, вы перемещаетесь на столько делений, сколько указано свойством LargeChange. В нашем случае это 6. Если вы нажмете на клавиатуре на кнопки перемещения курсора (4 серых кнопочки со стрелками), то можете наблюдать перемещение ползунка элемента Slider на количество позиций, заданных свойством SmallChange, т.е. на 3 позиции.

    Как вы заметили, когда вы перемещаете ползунок с помощью мыши, значение элемента Label2 не меняется. Это связяно с тем, что событие элемента Slider Change - событие единичное. Оно возникает, когда пользователь отпускает кнопку мыши. Событие же Scroll происходит непрерывном при перемещении бегунка.

    наверх

    Как определить, какая из панелей кликнута

    Private Sub sbStatusBar_PanelClick(ByVal Panel As MSComctlLib.Panel)
    Select Case Panel.Index
    Case 1
    Case 2
    MsgBox "ЗДЕСЬ БУДЕТ КАЛЕНДАРИК", vbInformation
    Case Else
    End Select

    наверх

    Динамическое добавление панелей

    Dim mypanel As Panel
    Set mypanel = StatusBar1.Panels.Add() 'добавление панели
    mypanel.AutoSize = sbrSpring 'установка свойства АвтоРазмер
    mypanel.MinWidth = 1 'установка минимальной ширины
    Set mypanel = StatusBar1.Panels.Add(, , , sbrCaps) 'добавление панели, установка свойства включенной клавиши Caps
    Set mypanel = StatusBar1.Panels.Add(, , , sbrNum) 'добавление панели, установка свойства включенной клавиши Num
    mypanel.Bevel = sbrInset
    mypanel.Alignment = sbrRight 'установка выравнивания текста в панели
    StatusBar1.Panels(1).Text = "Status:" 'присвоение первой панели заголовка
    StatusBar1.Panels(2).Text = "" 'присвоение второй панели заголовка
    StatusBar1.Panels(1).AutoSize = sbrContents

    наверх

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

    BalloonMessage for MS Agent

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

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

    наверх

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

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

    Вопросы:

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

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

    1.Как сделать так,чтобы при очередном клике по label для ввода символов в text, курсор распологался справа от введенго символа?
    Я пишу так:

    Private Sub Label1_Click()
    Dim strExp As String
    strExp = Left(Text1.Text, Text1.SelStart)
    strExp = strExp & " " & Label1 & ""
    strExp = strExp & Mid(Text1.Text, Text1.SelStart + 1)
    Text1 = strExp
    End Sub

    2.Что значит 6 ошибка-Overflow(переполнение)

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

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

    Подскажите, пожалуйста, как в Visual Basic сделать гладкий график без углов. Очень надо. И еще не подскажете как на гафике раскрасить области разными цветами (естественно в зависимости от значений).

    Автор вопроса: I-Sof

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

    Кто знает как програмно добавить запись в реестр?
    Путь:
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
    Мне нужно чтобы прога была в автозагрузке... Но нинаю как это зделать програмно. ПОМОГИТЕ........

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

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

    Народ помогайте! Зделал OCX (версии X), откомпелировал его, добавил в свою прогу - все отлично, все работает... Но вот понадобилось изменить код OCX'а... когда я его откомпелировал заново (версия X+1) то программа перестала работать, пишет что версия кодного из компонентов не подходит, даже несмотся на то, что я в свойствах этого "компонента" я пробовал ставить и Project Compatibility и даже Binary Compatibility.

    Автор вопроса: Вадим

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

    Подскажите - есть таблицы в HTML формате и их нужно "перевести" в xls формат.
    Проблема в том, что в ячейках HTML находятся десятичные числа (например 1.52) в одних ячейках и текст в других ячейках. Когда копируешь в ексель, то ексель числа воспринимает (формат ячейки - все форматы) как январь.52.
    Мне же нужно для обработки, чтобы текст в таблице оставался текстом, а числа 1.52 в 1,52 а не 1.52. Как это возможно решить с помощью макросов VBA.

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

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

    Вот решил написать прогу для CD-ROM'а. И хотел бы задать несколько вопросов.

    Как на VB в файл с произвольным доступом сохранить картинку ?
    Как определить серииный номер CD диска ?
    Как определить какой из дисков CD-ROM ? Например в систем диски A, B, C, D, E как определить на какой из них CD-ROM.
    Как в exe файл дописать какоу нибудь инфу и чтобы после этого он нормально запускался ? Как из exe прочитать эту самую инфу ?
    И последнее как работать с ресурсами ? Конкретно как сохранить в файл ресурса картинку (jpg) (если можно)? И как её отудова потом достать ?

    Ответы:

    Вопрос:

    В VB функция RND дает нормальное распределение. Каким образом можно
    перейти к другим видам распределения. И как по массиву точек можно
    определить распределение. Очень нужно.

    Ответ:

    Автор ответа: Марк

    Для работы с распределениями случайных величин VB не очень подходит.
    RND вообще-то дает равномерное распределение на отрезке(0,1). Есть формулы для пересчета его в другие распределения.
    А обратную задачу - по значениям найти распределение - решать намного труднее.
    Мой совет: воспользоваться специальной программой, в которой все это уже есть. Я, например, пользуюсь программой Statistica 5. Еще есть Statgraphics, SPSS и др.
    Даже в EXCEL есть специальный раздел по статистике. Я, правда, им не пользовался, но в книгах видел описание использования..

    Вопрос:

    Пишу эти строки и при копировании файла получаю через раз отказ в копировании файла
    VB6+SP5 Windows XP (сегодня все работает, а вчера сидет 4 часа и не поборол)

    Data1.DatabaseName = App.Path & "\ObRabot.mdb"
    Data1.RecordSource = "ObRabot"
    Data1.Refresh
    'Data1.Recordset.Close
    Data1.RecordSource = ""
    Data1.DatabaseName = ""
    Data1.Database.Close
    'Data1.Refresh
    FileCopy App.Path & "\ObRabot.mdb", App.Path & "\ObRabot_.mdb

    Ответ:

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

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

    Вопрос:

    Мне нужно преревернуть рисунок этот рисунок танк. Вот мне нужно его поворачивать при нажатии клавиш как мне его повернуть

    Ответ:

    Автор ответа: Марк

    Надо сделать четыре картинки. Точнее, надо взять исходную картинку и сделать с помощью какого-нибудь графического редактора ее копии, повернутые соответственно на 90, 180 и 270 градусов (у меня этим занимается Presto! Image Folio LT, который пришел вместе со сканером).
    Записать картинки в файлы на магнитный диск в файлы, например, "Down.bmp", "Up.bmp", "Left.bmp" и ''Right.bmp".
    На форме размещаем элемент управления PictMain типа Picturebox - он будет принимать размеры наших рисунков. Устанавливаем свойства формы: KeyPreview - True, в этом случае она будет перехватывать нажатия клавишей. У элемента PictMain устанавливаем свойство AutoSize - True.
    Пишем программный код:

    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyDown Then
    PictMain.Picture = LoadPicture(App.Path & "\Down.bmp")
    End If

    If KeyCode = vbKeyUp Then
    PictMain.Picture = LoadPicture(App.Path & "\Up.bmp")
    End If

    If KeyCode = vbKeyLeft Then
    PictMain.Picture = LoadPicture(App.Path & "\Left.bmp")
    End If

    If KeyCode = vbKeyRight Then
    PictMain.Picture = LoadPicture(App.Path & "\Right.bmp")
    End If

    End Sub

    Private Sub Form_Load()
    PictMain.Picture = LoadPicture(App.Path & "\Down.bmp")
    End Sub

    При загрузке формы грузится файл с исходной картинкой. При нажатии на кнопки Up, Down, Left, Right загружается соответствующая нажатой клавише картинка.

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

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

    наверх

    Выпуск подготовили:


Выпуск 118.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Решил начать публиковать новости ещё нескольких сайтов: MSDN, GotdotNet и dotSite.
    Читайте!

    Содержание выпуска

    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на 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

    Дата: 14.12.2002 15:31 | Раздел: Примеры кода | Автор: Малиновский Игорь

    VbIni - Сохраняем, считываем всё, что необходимо строковое, в/из, private.ini Пример, созданный, изучая Дена Эпплмана, глава 4, можно использовать, для своих проектов, подключайте VBINIModule. В примере показано, как это работает.

    Дата: 12.12.2002 15:32 | Раздел: ActiveX контролы | Автор: Alex_L

    WscFile - Контрол позволяет работать с файлами без использования открытых ресурсов, т.е. копировать, переименовывать, удалять файлы на удаленном компьютере. Так же добавлены команды для создания каталога произвольной вложенности и удаленный вызов файла на локальный компьютер. Контрол работает по протоколу TCP/IP.

    Дата: 10.12.2002 15:30 | Раздел: ActiveX контролы | Автор: Арсентьев Андрей

    VBRegTool6 - Библиотека VBRegTool6 является расширенным аналогом библиотеки REGTool5 от Microsoft. Она содержит функции для работы с реестром, использование которых значительно упрощает доступ к реестру.

    Последние 20 тем форума на VBNet.Ru:

    14:03 / 15 дек. .NET | Хитов: 12 | Ответов: 3
    12:20 / 15 дек. Form_Load() | Хитов: 9 | Ответов: 1
    12:15 / 15 дек. сообщения в win9X, Me, NT,2k, XP | Хитов: 4 | Ответов: 0
    11:56 / 15 дек. Как заставить WebBrowser не загружать рисунки и... | Хитов: 7 | Ответов: 1
    10:54 / 15 дек. ADO Какой СУБД выбрать | Хитов: 2 | Ответов: 0
    02:28 / 15 дек. DataGrid | Хитов: 17 | Ответов: 2
    02:26 / 15 дек. CheckBox внутри DataGrid | Хитов: 10 | Ответов: 0
    23:50 / 14 дек. Данные в Excel из VB | Хитов: 12 | Ответов: 2
    20:55 / 14 дек. Пасьянс "ПАУК" | Хитов: 29 | Ответов: 5
    20:37 / 14 дек. И снова здравствуйте и снова Inno Setup | Хитов: 12 | Ответов: 3
    20:28 / 14 дек. как ресурсы системы зарезать..? | Хитов: 15 | Ответов: 3
    16:47 / 14 дек. действие по нажатию числа 28 | Хитов: 20 | Ответов: 1
    16:21 / 14 дек. Что быстрее VB.NET или C#? | Хитов: 39 | Ответов: 7
    16:01 / 14 дек. Как загрузить на форму лист из Excel? | Хитов: 8 | Ответов: 1
    15:33 / 14 дек. Ярлык | Хитов: 14 | Ответов: 0
    14:38 / 14 дек. Vbcode >>> Html | Хитов: 11 | Ответов: 0
    22:45 / 13 дек. DataGrid | Хитов: 46 | Ответов: 3
    22:11 / 13 дек. ADODC | Хитов: 21 | Ответов: 0
    21:20 / 13 дек. VBA - страницы | Хитов: 19 | Ответов: 1
    13:58 / 13 дек. FTP-протокол... | Хитов: 20 | Ответов: 0

    Последние поступления в Библиотеку кодов:

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Новости сайта MSDN

    • Доступен для загрузки пакет Microsoft .NET Speech SDK 2 бета-версия (EN)

    • Веб-узел USAToday.com переходит к модели динамической публикации и с помощью .NET экономит 400 000 долларов США в год (EN)

    • Microsoft .NET Pet Shop 2.0 (EN)

    • Создание асинхронных бизнес-объектов для использования клиентами Windows-форм .NET (EN)

    • Внедрение транзакций баз данных с помощью Microsoft .NET (EN)

    • Исключения .NET: переход от традиционных средств обработки ошибок Visual Basic к объектно-ориентированной модели, используемой в .NET (EN)

    • Сведения о спецификации DIME и вложениях WS (EN)

    • Модели и сценарии безопасности для Microsoft SQL Server 2000 Windows CE Edition 2.0 (EN)

    • Асинхронные серверные веб-методы (EN)

    наверх

    Новости сайта GotdotNet

    • 04 дек 2002
      Библиотека MSDN – теперь на русском языке!
      Воспользуйтесь сервисом онлайнового перевода статей MSDN Library на нашем сайте.

    • 24 окт 2002
      Состоялось первое награждение в рамках "конкурса статей"
      Сегодня, в офисе Microsoft состоялось награждение первого автора статьи, участовавшего в конкурсе статей на нашем сайте.

    • 23 окт 2002
      В "конкурсе статей" пополнение
      Размещена новая статья - Обработка денег в C#

    • 30 сен 2002
      Cтартовал "конкурс статей" на нашем сайте
      Присылайте свои статьи, которые будут оцениваться всеми посетителями сайта. Победителей ждут интересные призы!

    наверх

    Новости сайта dotSite

    Новые статьи:

    • Первый шаг
      Первая статья из обещанного цикла по .NET Compact Framework

    • .NET Compact Framework

    • Интерпретатор Xbase-подобного языка сценариев для приложений на C#.

    • Как НЕ надо писать веб-сервиса
      Суммарий нашего опыта использования технологии .Net XML Web Services, представленный в виде "от противного".

    • Мастер формирования Web-форм на основе HTML-страниц
      Приводится пример построения wizard на основе встроенного в VS.Net Wizard Engine

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Dr.Max

    Ответ ожидается по этому адресу

    Я скачал конвектор *.х файлов ,но как им пользоватся??
    Я запускаю ехе"шник ,он быстренько пробежался сверху вниз и выгружается !!
    На 100% уверен ,что это я не умею им пользоватся!!

    Автор вопроса: Василий

    Ответ ожидается по этому адресу

    А как создаются виртуальные диски? мне надо создать образ файловой системы, а сами файлы хранить не надо. Т.е. на моем диске система будет видеть теже файлы, что и на CD (к примеру), но при попытке доступа - из содержимое будет единым.

    Автор вопроса: Меркуль Юрий

    Ответ ожидается по этому адресу

    Я пишу программу на подобии ICQ, но он не работает (программа не отсылает и не получает сообщения), когда включен какой-нибудь Firewall(Zone Alarm, например), можно ли firewall как-нибудь убедить, что этот порт, используемый программой, перекрывать не надо?

    Автор вопроса: Александр

    Ответ ожидается по этому адресу

    В VB6 делаю отчет, используя стандартный Data Report Designer. В системе установлен единственный широкий принтер EPSON LX-1170. Тем не менее, ширину отчета не могу сделать более 290мм при любой ориентации страницы.

    Автор вопроса: lom

    Ответ ожидается по этому адресу

    Как в VB работать с ресурсами (хорошо было бы, если мне кто-нибудь прислал ссылочку на какую-нибудь статью в инете), и вообще, как вшить музыкальный файл в свою прогу?

    Автор вопроса: shadow

    Ответ ожидается по этому адресу

    Подскажите как работать с памятью. Я хочу сделать прогу типа ArtMoney.

    Автор вопроса: Fat Globe

    Ответ ожидается по этому адресу

    Написал прогу на VB.net. Подскажите, как мне ее теперь распространять? А именно, какие файлы включать в комплект поставки? Я не использовал никаких дополнительных контролов.

    Автор вопроса: Mores

    Ответ ожидается по этому адресу

    Как из программы на VB проверить, установлен в WIN архиватор RAR или ZIP ? И как узнать в какой каталог он установлен.

    Автор вопроса: Dmitry

    Ответ ожидается по этому адресу

    Вот такая есть у мня трабла: надо считать с порта (ЛПТ) инфу и преобразовать её в двоичную инфу. Пример: если на порту 255 то чтобы оно дало строку 11111111 или в массив (0 то 7). Считать данные с порта я знаю, а вот как оптимальным способом преобразовать енто в двоичную систему? Пробовал через оператор InStr отслеживать запятую и т. д. - работает - но МЕДЛЕННО! скорость чтения порта упала с 400000 операций считывания до 40000 в секунду! Это очень большая потеря!

    Автор вопроса: Oleg

    Ответ ожидается по этому адресу

    Как получить параметры подключения к интернет?
    Интересует
    1. Имя текущего подключения
    2. Скорость соединения
    3. Отправлено получено байт

    Ответы:

    Вопрос:

    Подскажите, пожалуйста, как в Visual Basic сделать гладкий график без углов. Очень надо. И еще не подскажете как на гафике раскрасить области разными цветами (естественно в зависимости от значений).

    Ответ:

    Автор ответа: Александр Горбылёв

    Сдаётся мне, что на данной стадии изучения VB в противовес использования разных там функций из API, хотя это очень здорово, лучше будет сделать так:

    1. Запустить Excel,
    2. Заполнить некоторую таблицу исходных данных для построения гладкого графика
    3. Включить "магнитофон", т.е. "Сервис-Макрос-Начать запись"
    4. Выполнить построение графика: "Вставка-Диаграмма-Точечная"
    5. Остановить запись "магнитофона".
    6. Посмотреть, как это достигнуто средствами Excel: "Сервис-Макрос-...-Изменить"
    7. Попробовать эту идею перенести в VB, включив соответствующие ссылки в Properties, типа "Microsoft Graph ..."

    Если этот вариант неприемлем, то переходим на изучение библиотеки API, взяв какие-то стартовые примеры на работу с графикой с сайтов типа http://www.VBRussia.com/, http://www.Relib.com/, либо построение сплайнов средствами готовых ActiveX, поискав их в сети, либо сразу на MSDN, где "найдётся всё!", например, Windows-функции:

    BOOL PolyBezier(
    HDC hdc, // handle to device context
    CONST POINT *lppt, // pointer to endpoints and control points
    DWORD cPoints // count of endpoints and control points
    );

    BOOL PolyBezier(
    HDC hdc, // handle to device context
    CONST POINT *lppt, // pointer to endpoints and control points
    DWORD cPoints // count of endpoints and control points
    );

    К сожалению, готовые примеры их использования, на MSDN присутствующие, написаны на VC++, но их можно "перечитать" в VB.

    Вопрос:

    Кто знает как програмно добавить запись в реестр?
    Путь:
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
    Мне нужно чтобы прога была в автозагрузке... Но нинаю как это зделать програмно. ПОМОГИТЕ........

    Ответ:

    Автор ответа: andr

    Все почти просто, добавляешь модуль,
    Туда вставляешь код

    Public Const HKEY_LOCAL_MACHINE = &H80000002
    Declare Function RegCloseKey Lib "advapi32.dll" (ByVal Hkey As Long) As Long
    Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal Hkey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
    Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal Hkey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
    Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal Hkey As Long, ByVal lpValueName As String) As Long
    Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal Hkey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
    Public Const REG_SZ = 1 ' Unicode nul terminated string
    Public Const REG_DWORD = 4 ' 32-bit number
    Public Sub savestring(Hkey As Long, strPath As String, strValue As String, strdata As String)
    Dim keyhand As Long
    Dim r As Long
    r = RegCreateKey(Hkey, strPath, keyhand)
    r = RegSetValueEx(keyhand, strValue, 0, REG_SZ, ByVal strdata, Len(strdata))
    r = RegCloseKey(keyhand)
    End Sub

    Public Function DeleteValue(ByVal Hkey As Long, ByVal strPath As String, ByVal strValue As String)
    Dim keyhand As Long
    r = RegOpenKey(Hkey, strPath, keyhand)
    r = RegDeleteValue(keyhand, strValue)
    r = RegCloseKey(keyhand)
    End Function

    Потом из саба вызываешь функции savestring или DeleteValue
    Через call: например

    Call savestring(HKEY_LOCAL_MACHINE, "Software\Microsoft\windows\CurrentVersion\Run", "Kursovik", FullPathAndFileName)
    Где FullPathAndFileName описывается так
    FullPathAndFileName = App.Path
    If Right(App.Path, 1) <> "\" Then FullPathAndFileName = FullPathAndFileName & "\"
    FullPathAndFileName = FullPathAndFileName & App.EXEName
    Или удалить
    Call DeleteValue(HKEY_LOCAL_MACHINE, "Software\Microsoft\windows\CurrentVersion\Run", "Kursovik")

    Ответ:

    Автор ответа: InvisibleMan

    Как програмно добавить запись в реестр? Очень просто...
    Используй API функции: RegCloseKey, RegCreateKey, RegSetValueEx.

    Примерно так получится:

    'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

    Public Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
    'xxx
    Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
    'xxx
    Public Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
    'xxx

    Public Const HKEY_LOCAL_MACHINE = &H80000002
    'xxx
    Public Const REG_SZ = 1
    'xxx

    Public Sub SaveSettingString(hKey As Long, strPath As String, strValue As String, strData As String)
    Dim hCurKey As Long
    Dim lRegResult As Long

    lRegResult = RegCreateKey(hKey, strPath, hCurKey)

    lRegResult = RegSetValueEx(hCurKey, strValue, 0, REG_SZ, ByVal strData, Len(strData))

    If lRegResult <> ERROR_SUCCESS Then
    MsgBox "Ошибка доступа"
    End If

    lRegResult = RegCloseKey(hCurKey)

    End Sub
    'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    Теперь просто пишешь:

    SaveSettingString HKEY_LOCAL_MACHINE, "путь до ключа", "Имя ключа", "Запись"

    'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    Пример:
    Автозагрузка proga.exe:
    SaveSettingString HKEY_LOCAL_MACHINE, "software\microsoft\windows\currentversion\run", "Proga", "C:\proga.exe"

    Ответ:

    Автор ответа: Misha

    Я делаю вот так:
    'Добавь модуль, назовите его regisуеtry, а на форму поместите две кнопки
    'код модуля:

    Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias
    "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal
    ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
    Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias
    "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal
    Reserved As Long, ByVal dwType As Long, ByVal lpData As String, ByVal
    cbData As Long) As Long
    Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias
    "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As
    Long
    Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As
    Long) As Long

    Private Const HKEY_LOCAL_MACHINE = &H80000002
    Private Const REG_SZ = 1
    Private Const KEY_WRITE = 131078

    Public Function DoStartUp(Filename As String, Discription As String)
    Dim hKey As Long

    RegOpenKeyEx HKEY_LOCAL_MACHINE,
    "Software\Microsoft\Windows\CurrentVersion\Run-", 0, KEY_WRITE, hKey
    RegDeleteValue hKey, Discription
    RegCloseKey hKey

    RegOpenKeyEx HKEY_LOCAL_MACHINE,
    "Software\Microsoft\Windows\CurrentVersion\Run", 0, KEY_WRITE, hKey
    RegSetValueEx hKey, Discription, 0, REG_SZ, Filename, Len(Filename)
    RegCloseKey hKey
    End Function

    Public Function DoNotStartUp(Filename As String, Discription As String)
    Dim hKey As Long

    RegOpenKeyEx HKEY_LOCAL_MACHINE,
    "Software\Microsoft\Windows\CurrentVersion\Run", 0, KEY_WRITE, hKey
    RegDeleteValue hKey, Discription
    RegCloseKey hKey

    RegOpenKeyEx HKEY_LOCAL_MACHINE,
    "Software\Microsoft\Windows\CurrentVersion\Run-", 0, KEY_WRITE, hKey
    RegSetValueEx hKey, Discription, 0, REG_SZ, Filename, Len(Filename)
    RegCloseKey hKey
    End Function

    'код формы:
    Private Sub Command1_Click()
    Registery.DoStartUp App.Path & "\" & App.EXEName, "MY START"
    End Sub

    Private Sub Command2_Click()
    Registery.DoNotStartUp App.Path & "\" & App.EXEName, "MY START"
    End Sub

    Ответ:

    Автор ответа: Алексей

    (Есть, оказывается, еще люди которые этого не знают...)
    Раздел: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run или
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices или
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices

    Если однократно надо запустить, то вместо Run в конце RunOnce,
    a вместо RunServices - RunServicesOnce

    Параметр: Имя программы
    Значение: Путь и имя своей программы

    VB код:
    Option Explicit
    Private Type SECURITY_ATTRIBUTES
    nLength As Long
    lpSecurityDescriptor As Long
    bInheritHandle As Boolean
    End Type

    Dim FullPathAndFileName As String
    Const READ_CONTROL = &H20000
    Const KEY_QUERY_VALUE = &H1
    Const KEY_SET_VALUE = &H2
    Const KEY_CREATE_SUB_KEY = &H4
    Const KEY_ENUMERATE_SUB_KEYS = &H8
    Const KEY_NOTIFY = &H10
    Const KEY_CREATE_LINK = &H20
    Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + _
    KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + _
    KEY_NOTIFY + KEY_CREATE_LINK + READ_CONTROL

    Const HKEY_LOCAL_MACHINE = &H80000002
    Const ERROR_SUCCESS = 0
    Const REG_SZ = 1
    Const REG_DWORD = 4

    Private Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long
    Private Declare Function RegCreateKeyEx Lib "advapi32" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, ByRef phkResult As Long, ByRef lpdwDisposition As Long) As Long
    Private Declare Function RegSetValueEx Lib "advapi32" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long

    ' В Form_Load() или на кнопке пишем

    FullPathAndFileName = App.Path
    If Right(App.Path,1) <> "\" Then
    FullPathAndFileName = FullPathAndFileName & "\" & App.EXEName
    else
    FullPathAndFileName = FullPathAndFileName & App.EXEName
    end if

    'Прописываем себя в реестр
    UpdateKey HKEY_LOCAL_MACHINE, _
    "Software\Microsoft\windows\CurrentVersion\Run", _
    App.Title, FullPathAndFileName

    'Теперь функция:
    Public Function UpdateKey(KeyRoot As Long, KeyName As String, SubKeyName As String, SubKeyValue As String) As Boolean
    Dim rc As Long
    Dim hKey As Long
    Dim hDepth As Long
    Dim lpAttr As SECURITY_ATTRIBUTES

    lpAttr.nLength = 50
    lpAttr.lpSecurityDescriptor = 0
    lpAttr.bInheritHandle = True

    rc = RegCreateKeyEx(KeyRoot, KeyName, _
    0, REG_SZ, _
    0, KEY_ALL_ACCESS, lpAttr, _
    hKey, hDepth)

    If (rc <> ERROR_SUCCESS) Then GoTo CreateKeyError

    If (SubKeyValue = "") Then SubKeyValue = " "

    ' Создание или изменение значения в реестре
    rc = RegSetValueEx(hKey, SubKeyName, _
    0, REG_SZ, _
    SubKeyValue, LenB(StrConv(SubKeyValue, vbFromUnicode)))

    If (rc <> ERROR_SUCCESS) Then GoTo CreateKeyError
    rc = RegCloseKey(hKey)

    UpdateKey = True
    Exit Function
    CreateKeyError:
    UpdateKey = False
    rc = RegCloseKey(hKey)
    End Function

    Примерчик можете взять с
    http://homeservise.narod.ru/programmist/samples/vb/reestr001.zip

    Вопрос:

    Подскажите - есть таблицы в HTML формате и их нужно "перевести" в xls формат.
    Проблема в том, что в ячейках HTML находятся десятичные числа (например 1.52) в одних ячейках и текст в других ячейках. Когда копируешь в ексель, то ексель числа воспринимает (формат ячейки - все форматы) как январь.52.
    Мне же нужно для обработки, чтобы текст в таблице оставался текстом, а числа 1.52 в 1,52 а не 1.52. Как это возможно решить с помощью макросов VBA.

    Ответ:

    Автор ответа: Gernovich

    Для это не обязателен VBA, в меню "Правка" есть пункт специальная вставка, поэксперементируй.

    Ответ:

    Автор ответа: Александр Горбылёв

    Для того, чтобы покончить с таким безобразием, надо придать соответствующее свойство ячейкам Excel, а именно то, что это ячейки числового формата. Этого будут достаточно!

    Вопрос:

    Вот решил написать прогу для CD-ROM'а. И хотел бы задать несколько вопросов.

    Как на VB в файл с произвольным доступом сохранить картинку ?
    Как определить серииный номер CD диска ?
    Как определить какой из дисков CD-ROM ? Например в систем диски A, B, C, D, E как определить на какой из них CD-ROM.
    Как в exe файл дописать какоу нибудь инфу и чтобы после этого он нормально запускался ? Как из exe прочитать эту самую инфу ?
    И последнее как работать с ресурсами ? Конкретно как сохранить в файл ресурса картинку (jpg) (если можно)? И как её отудова потом достать ?

    Ответ:

    Автор ответа: ViTal

    Вот здесь всё расписано. (на англисском)
    http://community.borland.com/article/0,1410,27979,00.html

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 119.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта 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!!!

    Несколько слов от автора:

    Новый выпуск. Ничего нового в рассылке и на сайте не происходит...
    Читайте!

    Содержание выпуска

    • Книги

    • Описание элемента TabStrip
    • Описание элемента ListBox
    • Как автоматически скролить элемент ListBox вниз
    • Как выравнять элементы ListBox'а вправо
    • Выделение всех элементов в ListBox'е
    • Выделение элемента в ListBox'е при нажатии на правую клавишу мыши

    • Вопрос/Ответ

    Книги

    Переход на 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 можно найти здесь.

    наверх

    Описание элемента TabStrip

    Контрол TabStrip представляет из себя несколько вложенных страниц, которые расположены в одной и той же области окна или диалогового окна в вашем приложении.

    Синтаксис

    TabStrip

    Примечания

    Контрол Tab состоит из коллкций отдельных вкладок (Tabs). Во время выполнения и во время проектирования программы вы можете менять количество вкладок, используя страницу свойств. Свойство Style устанавливает внешний вид отдельных вкладок (к примеру, в виде кнопок).

    Контрол TabStrip - не контейнер. Чтобы содержать фактические страницы и другие объекты, вы должны использовать контрол Frame или другие контейнеры, размеры которых соответствуют размерам каждой вкладки элемента Tab. Используйте следующий пример для связывания каждой вкладки элемента Tab с контейнером Frame:

    Private mintCurFrame As Integer 'текущая видимая вкладка
    Private Sub Form_Load()
    Tabstrip1_Click 'необходимо активизировать первый контейнер
    End Sub
    Private Sub Tabstrip1_Click()
    If TabStrip1.SelectedItem.Index = mintCurFrame Then Exit Sub
    'если выбрана та же вкладка, осуществляется выход из подпрограммы
    Frame1(TabStrip1.SelectedItem.Index).Visible = True 'показать текущий контейнер
    On Error Resume Next
    Frame1(mintCurFrame).Visible = False 'спрятать предыдущий контейнер
    mintCurFrame = TabStrip1.SelectedItem.Index 'определить текущий контейнер
    End Sub

    Основные свойства
    • Получить номер вкладки
      Dim n As Integer: n = TabStrip1.SelectedItem.Index

    наверх

    Описание элемента ListBox

    Элемент ListBox предоставляют пользователю выбрать значение из списка данных. Отдельные пункты элемента ListBox выбираются с помощью мыши. Добавлять пункты в элемент ListBox можно с помощью программного кода, либо устанавливая значение свойство List в окне свойств. Каждый пункт следует вводить отдельной строкой, нажимая комбинацию клавиш Ctrl + Enter. Завершив ввод пунктов, нажмите клавишу Enter, и они отобразятся в элементе ListBox на форме.В этой статье будут рассмотрены свойства и методы элемента ListBox.

    Основные свойства

    Некоторые свойства элементов ListBox можно установить только в режиме проектирования. Именно они определяют функциональные возможности элемента, которые нельзя изменять во время работы приложения.

    Свойство MultiSelect

    Определяет метод выборки пунктов списка. Его значение задается при конструировании. Во время работы приложения значение свойства доступно только для чтения. Значение свойства MultiSelect определяет, может ли пользователь выбрать несколько пунктов списка и метод выборки.

    Значение - Описание

    0 - Выбор нескольких пунктов запрещен (по умолчанию)

    1 - Простой выбор нескольких пунктов. Щелчок кнопкой мыши (или нажатие клавиши пробела) выбирает или отменяет пункт списка. Для перемещения фокуса на другой пункт используйте клавиши со стрелкой

    2 - Расширенный выбор нескольких пунктов. Для выбора нескольких пунктов подряд нажмите клавишу Shift, а затем щелкайте на пунктах мышью (или нажимайте клавиши со стрелкой). Все пункты списка между ранее выбранным и текущим пунктами подсветятся. Чтобы выбрать произвольно расположенные элементы списка (или отменить выбор), нажмите клавишу Ctrl и щелкните на пункте кнопкой мыши

    Свойство Sorted

    С помощью приложения в списки элементов ListBox можно вставлять новые пункты, но программист тоже должен позаботиться об этом. Если необходимо, чтобы пункты всегда были отсортированы, установите значение свойства Sorted равным True. Сделать это можно только во время проектирования: во время выполнения оно доступно только для чтения. Элемент ListBox является текстовым элементом, т. е. сортировать числовые данные он не может. Чтобы использовать элемент ListBox для сортировки чисел, прежде всего, отформатируйте их, добавив нули в начале каждого числа. Так, число 10 всегда будет отображаться перед числом 5, поскольку строка "10" меньше строки "5" (она начинается с единицы). Если же числа форматировать как "010" и "005", то сортировка будет корректна. Пункты в элементе ListBox сортируются по возрастанию с учетом регистра. Более того, стандартные установки изменить невозможно. Элементы "aa", "aA", "AA, "Aa", "Ba" и "BA" сортируются следующим образом. "AA" "Aa" "aA" "aa" "BA "Ba" Как видите, символы верхнего регистра появляются впереди тех же символов нижнего. Все слова, начинающиеся с буквы В, появляются после слов, начинающихся с А, но перед словами, начинающимися с буквы С. В пределах группы слов, начинающихся с буквы В, сначала отображаются слова, начинающихся с буквы В, а вслед за ними идут слова, начинающиеся с буквы b.

    Свойство Style

    Определяет внешний вид элемента. Имеет два значения: 1 - Standard и 2 — Checkbox. Обратите внимание: левый список не отсортирован, а правый — отсортирован.

    Методы элемента ListBox

    Для управления элементом ListBox из приложения необходимо иметь возможность:
    • добавлять пункты в список;
    • удалять пункты из списка;
    • выбирать отдельные пункты списка.

    Метод Additem

    Чтобы добавлять пункты в список, используется метод Additem. Он имеет следующий синтаксис:

    List1.Additem item, index

    Параметр item - это строка, добавляемая в список, a index - ее порядковый номер. Порядковый номер первого элемента списка равен нулю. Аргумент index необязателен. Если его опустить, строка добавляется в конец списка. Если значение свойства Sorted элемента установлено равным True, то пункт вставляется в соответствующее место списка, независимо от значения аргумента index.

    Метод RemoveItem

    Чтобы удалить пункт из списка, найдите его положение (index) в списке: index необходим методу RemoveItem.

    List1.Removeltem Index

    Параметр index указывает на порядковый номер удаляемого пункта и является обязательным. Следующий оператор удаляет пункт из начала списка. List1.Removeltem ()

    Метод Clear

    Удаляет из списка элемента все пункты. Синтаксис метода несложен. List1.Clear Чтобы получить доступ к отдельным пунктам, можно использовать несколько свойств элемента ListBox. Для удаления пункта из списка необходимо знать его порядковый номер, но в данном случае этот аргумент метода RemoveItem используется редко. Как правило, удаляемый пункт выбирает пользователь либо удаляемые пункты выбирают из программного кода по их значениям. Некоторые свойства элемента ListBox позволяют считывать пункты из программного кода (эти свойства рассматриваются).

    Другие свойства

    Свойство ListCount

    Возвращает число пунктов списка. Доступ к ним можно получить с помощью значений индексов в диапазоне от 0 до ListCount-1.

    Свойство List()

    Это массив пунктов списка. Элемент массива List(0) содержит первый пункт списка, элемент List(1) - второй и т.д., вплоть до последнего элемента - List(ListCount-1), содержащего последний пункт списка. Массив List() часто используют для просмотра пунктов списка. Для просмотра всех пунктов элемента управления List1 с целью отыскания и удаления пустых строк применяйте следующий цикл.

    For item = List1.ListCount – 1 to 0 Step – 1
    If List1.List(item) = "" Then
    List1.RemoveItem item
    End If
    Next

    Обратите внимание: данный цикл сканирует элементы массива List() с конца. Понимаете, почему? При удалении каждого пункта длина списка уменьшается на 1. Если сканировать список с начала, число итераций превысит число пунктов списка, что ведет к ошибке исполнения. Если же сканировать список с конца, эта ошибка исключается.

    Свойство ListIndex

    ListIndex представляет собой индекс выбранного пункта списка. При выборке нескольких пунктов ListIndex представляет индекс последнего выбранного пункта. Если не выбран ни один элемент, значение .ListIndex = -1. Это свойство можно использовать для выбора или удаления конкретных пунктов. Так, следующий оператор удаляет выбранный пункт элемента List 1: List1.RemoveItem List1.ListIndex Для выделения определенного элемента используйте List1.ListIndex = 2 Если при вызове метода RemoveItem ни один пункт списка не выбран, значение свойства ListIndex отрицательно. Попытки удалить пункт с отрицательным индексом приводят к ошибке исполнения. Чтобы избежать этого, проверьте значение свойства ListIndex.

    If List1.ListIndex >= 0 Then
    List1.RemoveItem List1.ListIndex
    End If

    После удаления пункта индексы последующих пунктов соответственно перестраиваются.

    Свойство Selected

    Selected представляет собой массив, подобный свойству List. Его элементы могут иметь значения True или False в зависимости от состояния соответствующего пункта списка. Если пункт списка выбран, значение свойства Selected данного пункта равно True. В противном случае значение свойства равно False. Поскольку отсутствуют средства, позволяющие получить сразу все индексы при выборке нескольких пунктов, необходимо проверить все элементы массива Selected (чуть позже будет приведен соответствующий пример).

    Свойство SelCount

    Отображает число выбранных пунктов элемента ListBox, если значение свойства MultSelect установлено равным 1 (Simple) или 2 (Extended). Обычно это свойство используют вместе с массивом Selected для работы с выбранными пунктами элемента. Если элемент ListBox допускает выборку множества пунктов, рекомендуем применить в списке стиль Checkbox (Флажок). Чтобы пункты списка отмечались флажками (рис. 5.6), установите значение свойства Style равным 1.

    Свойство NewIndex

    Возвращает индекс последнего пункта включенного в список элемента ListBox. Обычно это свойство используют вместе со свойством ItemData, который рассматривается в параграфе "Индексирование с помощью элемента ListBox".

    Индексирование с помощью элемента ListBox

    Ключевым свойством элемента ListBox является свойство ItemData — массив, подобный массиву List. Однако вместо строк, появляющихся в элементе, он содержит числа. Каждый пункт, отображаемый элементом ListBox, состоите двух частей: строки (задаваемой свойством List(i)) и числа, задаваемого свойством ItemData(i) (здесь i — индекс пункта списка). Свойство ItemData — это значение типа Long, которое может сохранять числовую информацию любого типа, относящуюся к пункту списка, но не отображаемую в списке. Так, в массиве List() можно сохранять список имен сотрудников, а в массиве ItemData() - данные об их зарплате. Доступ к записям о каждом сотруднике можно получать по имени, а зарплату отображать в элементе TextBox, помещенном на ту же форму. Однако истинная ценность свойства ItemData состоит не в хранении дополнительной информации, относящейся к пункту. Действительно, единственного числа явно недостаточно для хранения существенной дополнительной информации. Предположим, необходимо поддерживать список имен и адресов. Хранить все эти записи в элементе ListBox непрактично: элемент должен быть слишком широким, чтобы вместить всю строку с именем, адресом, городом, номером телефона и т.д. Практичнее хранить в элементе ListBox имена, используя их как ключи для доступа к элементам массива, в котором хранится остальная информация. Каждая запись хранится в элементе массива, соответствующем одному из пунктов элемента ListBox. Если установить значение свойства ItemData равным индексу соответствующего элемента массива данных, то при необходимости можно получить немедленный доступ к записям массива. Этот подход применим и к файлам с произвольным доступом (значение свойства ItemData равно числу совпадающих записей).

    наверх

    Как автоматически скролить элемент ListBox вниз

    Данный пример покажет, как можно автоматически уходить в конец списка элемента ListBox при добавлении новых элементов. Расположите на форме элемент ListBox и элемент CommandButton. Добавьте код. Как вы понимаете, за автоматический уход в конец списка отвечают строчки List1.Selected(List1.NewIndex) = True/False. Первая строчка выделяет последний (NewIndex) элемент списка, вторая - снимает выделение.

    Dim a
    Private Sub Command1_Click()
    a = a + 1
    List1.AddItem a
    List1.Selected(List1.NewIndex) = True
    List1.Selected(List1.NewIndex) = False
    End Sub

    наверх

    Как выравнять элементы ListBox'а вправо

    Как вы знаете, по умолчанию элементы ListBox'а выравнены по левой кромке. Следующий пример покажет, как можно выравнять элементы ListBox'а по правой кромке. Элементы ListBox'а выраниваются в зависимости от ширины ListBox'а.

    Private Const LB_SETTABSTOPS = &H192
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
    (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Dim i
    Private Sub Command1_Click()
    List1.Clear
    List1.AddItem "Азбука Visual Basic"
    List1.AddItem "Ресурс AVB"
    List1.AddItem "www.azbuakvb.narod.ru"
    End Sub
    Private Sub Command2_Click()
    Dim mTabs(0) As Long
    mTabs(0) = -List1.Width * 44 / 1000 + 2
    SendMessage List1.hwnd, LB_SETTABSTOPS, 1, mTabs(0)
    List1.Clear
    List1.AddItem vbTab & "Азбука Visual Basic"
    List1.AddItem vbTab & "Ресурс AVB"
    List1.AddItem vbTab & "www.azbuakvb.narod.ru"
    'List1.Refresh
    End Sub
    Private Sub Form_Load()
    Command1_Click
    End Sub

    наверх

    Выделение всех элементов в ListBox'е

    Расположите на форме элемент ListBox и 2 элемента CommandButton. Установите свойство MultiSelect элемента ListBox в 1 или 2

    Пример 1 основан на функции SendMessageBynum, Пример 2 - на функции SendMessage

    'Пример 1

    Private Declare Function SendMessageBynum Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Private Const LB_SELITEMRANGE = &H19B
    Private Sub Form_Load()
    List1.AddItem "11"
    List1.AddItem "22"
    List1.AddItem "33"
    End Sub
    Private Sub Command1_Click()
    Call SendMessageBynum(List1.hWnd, LB_SELITEMRANGE, 1, (List1.ListCount - 1))
    End Sub
    Private Sub Command2_Click()
    Call SendMessageBynum(List1.hWnd, LB_SELITEMRANGE, 0, (List1.ListCount - 1))
    End Sub

    'Пример 2

    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Const LB_SETSEL = &H185
    Private Sub Form_Load()
    List1.AddItem "111"
    List1.AddItem "222"
    List1.AddItem "333"
    End Sub
    Private Sub Command1_Click()
    SendMessage List1.hwnd, LB_SETSEL, True, ByVal True
    End Sub
    Private Sub Command2_Click()
    If List1.SelCount Then
    SendMessage List1.hwnd, LB_SETSEL, False, ByVal True
    Else
    Command1_Click
    End If
    End Sub

    наверх

    Выделение элемента в ListBox'е при нажатии на правую клавишу мыши

    Добавьте на форму элемент ListBox

    'Пример 1

    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Const LB_ITEMFROMPOINT = &H1A9
    Private Sub Form_Load()
    List1.AddItem "11"
    List1.AddItem "22"
    List1.AddItem "33"
    End Sub
    Private Sub List1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim indeX As Long
    Dim XPosition As Long, YPosition As Long
    XPosition = CLng(X / Screen.TwipsPerPixelX)
    YPosition = CLng(Y / Screen.TwipsPerPixelY)
    indeX = SendMessage(List1.hWnd, LB_ITEMFROMPOINT, 0, ByVal ((YPosition * 65536) + XPosition))
    If indeX < List1.ListCount Then
    List1.Selected(indeX) = True
    End If
    End Sub

    'Пример 2

    Private Sub Form_Load()
    List1.AddItem "11"
    List1.AddItem "22"
    List1.AddItem "33"
    End Sub
    Private Sub List1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim iTemp As Integer
    If Button = vbRightButton Then
    With List1
    iTemp = ((Y / Screen.TwipsPerPixelY) \ (TextHeight("A") / Screen.TwipsPerPixelY)) + .TopIndex
    If iTemp > .ListCount - 1 Then iTemp = -1
    .ListIndex = iTemp
    .SetFocus
    End With
    End If
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Dr.Max

    Ответ ожидается по этому адресу

    Кто-нить скажите как подключить ресурс к проэкту???

    Автор вопроса: Илья

    Ответ ожидается по этому адресу

    Как для Windows 98/XP на форме запустить avi-файл?

    Автор вопроса: Жорж

    Ответ ожидается по этому адресу

    у меня имеется рисунок, очень большого размера (3000 х 4000), мне надо его разместить на форме, в маленьком размере (300 х 400), а также кнопку по нажитии, которой картинка бы увеличивалась, причем что бы она не залазила за форму, а появлялись ползунки, которыми можно было просмотреть невидимую часть рисунка.

    Автор вопроса: Миша

    Ответ ожидается по этому адресу

    Необходимо создать контрольную сумму к строке текста, строка состоит из русских символов.
    Подскажите как это можно сделать CRC и после проверить ее.

    Автор вопроса: Karov Alexey

    Ответ ожидается по этому адресу

    На вход COM порта подаются бинарные сигналы определенной длины, но MsCommControl не может их определить, а выдает как либо пустые строки, либо символы ??, ну как в настройкакх настроины неизвестные. Ну так вот, может кто-нибудь знает как мне получить получить эти данные в нормальном виде, ну что бы в программе в цикле If применять можно было бы?

    Автор вопроса: shadow

    Ответ ожидается по этому адресу

    Скачал исходник ричтекстбокса, добавил его в проект, все отлично работает,но когда попытался скомпилить проект мне сказали что нужна двоичная совместимость. Я ставил совместимость и со скачанным контролом и с тем который сам скомпилил(отдельно от моего проекта контрол компилится без вопросов), все равно выдается сообщение что нужна двоичная совместимость.

    Автор вопроса: Shadow

    Ответ ожидается по этому адресу

    Подскажите АПИ (с описанием) или ссылочку штоб юзера от сетевой папки отшибить

    Автор вопроса: Diman

    Ответ ожидается по этому адресу

    Можно ли сделать так, чтобы при старте программы данные из определённого файла записывальсь в событие, например cmd1_click ()
    И как это сделать?

    Автор вопроса: Dmitry

    Ответ ожидается по этому адресу

    Может кто из Вас знает, как замерять время меньше 1 мс?? Пробовал через Sleep - и замерял его через timeGetTime - то он даже 1 мс не держит если указать "Sleep 1" (а гдето 2-5 мс выходит), а если Sleep 0.5 - то уже ближе к 1 мс, но всё равно он как-то глючит. Его мининимум может быть только 0.1 или 0.5, а если больше чем 0.6 - то около 2-6 мс!
    Может кто подскажет, как тут быть?
    В Свойствах системы откопал ресурсы системного таймера (там 4 регистра - от &H40 до &H43). Подключился к ним - но вот закономерность нарастания немогу никак вдуплить!
    Может есть ещё какито АПИ ф-ции или какието счётчики или таймера?????

    Автор вопроса: tronos

    Ответ ожидается по этому адресу

    Подскажите пожалуйста,как сделать плавную и неплавную прокрутку текста в RichTextBox.

    Автор вопроса: Alec Perle

    Ответ ожидается по этому адресу

    Вопрос по VBA (Excel). К объектам Shape на листе можно приделать макрос (OnAction). У меня порядка двух-трех сотен элементов. Как программно определить, на каком именно элементе была нажата мышка?

    Автор вопроса: Ксения

    Ответ ожидается по этому адресу

    Может кто-нибудь знает как в MSChart сделать гладкий график?

    Автор вопроса: Dr.Max

    Ответ ожидается по этому адресу

    Нашел исходник гоночного симулятора на ВБ.
    Но он не запускается, говорит:<< Run-time error '429' ActiveX component can't create object >> .
    Что это значит и как узнать ,что это за компанент????
    Если кто-нибудь скачивал это с vbstreets.da.ru из download ,то скажите, какой нужно подключить (если не стандартный ,то где скачать) актив ???

    Автор вопроса: Алексей

    Ответ ожидается по этому адресу

    У меня 4 вопроса:
    - Кто может сказать где взять информацию о структурах файлов разных типов. Например EXE-файла.
    - Кто знает как без всяких API-функций сделать выделение методом наведения. т.е. реакцию на наведение мышей на объект. Слышал, что используется свойство Tag...
    - Подскажите, где в инете можно достать иконки или BMP-шки для тулбаров (панелей, как в крутых программах, типа Word и др), только очень качественные - с градиентацией. Или какой программой они рисуются? Буду очень благодарен! Если можно дайте прямые ссылки на zip фрхивы.
    - Кто работал со Speech API??? Пожалуйста помогите: дайте примерчик на VB или код. Также важен принцип работы на VB. Взаимную помощь гарантирую!

    Автор вопроса: Евгений

    Ответ ожидается по этому адресу

    Как подсоединится к удаленному MS SQL Server.

    Автор вопроса: Евгений

    Ответ ожидается по этому адресу

    Как средствами Win API отправить сообщение по электронной почте?

    Ответы:

    Вопрос:

    1.Как сделать так,чтобы при очередном клике по label для ввода символов в text, курсор распологался справа от введенго символа?
    Я пишу так:

    Private Sub Label1_Click()
    Dim strExp As String
    strExp = Left(Text1.Text, Text1.SelStart)
    strExp = strExp & " " & Label1 & ""
    strExp = strExp & Mid(Text1.Text, Text1.SelStart + 1)
    Text1 = strExp
    End Sub

    2.Что значит 6 ошибка-Overflow(переполнение)

    Ответ:

    Автор ответа: Dr.Max

    Overflow -так и значит - переполнение!
    Если ты используешь переменную ,например, Byte и она принимает значение >
    255, то она переполнена !
    Короче, она умеет считать только до 255,примерно так же как первоклашки до 10 :)))
    Рикомендую не игнорировать такие нудные название как "Виды переменных в ВБ", а хоть что -нибуть прочитать на эту тему (одного раза на хватает:))!

    Вопрос:

    Подскажите, пожалуйста, как в Visual Basic сделать гладкий график без углов. Очень надо. И еще не подскажете как на гафике раскрасить области разными цветами (естественно в зависимости от значений).

    Ответ:

    Автор ответа: P@Ssword

    Инструкция по использованию нижележащего кода:
    1) Покласть на форму PictureBox.
    2) ---//--- CommandButton.
    3) Вставить код :-)
    4) Запустить.
    5) Потыкать по пикчебоксу.
    6) Нажать на кнопку.
    7) Любоваться закатом 8<>()...

    Option Explicit
    Option Base 1

    Dim M() As Single, X() As Single, Y() As Single
    Dim TempArr() As Single

    Private Function PrepareSpline(inpArr() As Single) As Boolean
    Dim n As Integer, i As Integer
    Dim L() As Single, R() As Single, S() As Single
    Dim D As Single, E As Single, F As Single, H As Single, P As Single

    PrepareSpline = False
    On Error Resume Next
    n = UBound(inpArr, 2)
    On Error GoTo 0
    If n < 2 Then Exit Function

    ReDim M(n), X(n), Y(n), L(n), R(n), S(n)
    For i = 1 To n
    X(i) = inpArr(1, i)
    Y(i) = inpArr(2, i)
    Next i

    D = X(2) - X(1)
    E = (Y(2) - Y(1)) / D
    For i = 2 To n - 1
    H = D
    D = X(i + 1) - X(i)
    If D = 0 Then D = 0.0001
    F = E
    E = (Y(i + 1) - Y(i)) / D
    L(i) = D / (D + H)
    R(i) = 1 - L(i)
    S(i) = 6 * (E - F) / (D + H)
    Next i

    For i = 2 To n - 1
    P = 1 / (R(i) * L(i - 1) + 2)
    L(i) = -L(i) * P
    S(i) = (S(i) - R(i) * S(i - 1)) * P
    Next i

    M(n) = 0
    L(n - 1) = S(n - 1)
    M(n - 1) = L(n - 1)
    For i = n - 2 To 1 Step -1
    L(i) = L(i) * L(i + 1) + S(i)
    M(i) = L(i)
    Next i
    PrepareSpline = True
    End Function

    Private Function CalcValue(arg As Single) As Single
    Dim ret As Single, i As Integer, n As Integer
    Dim D As Single, H As Single, P As Single, R As Single

    n = UBound(X)
    For i = 1 To n
    If arg < X(i) Then Exit For
    Next i

    Select Case i
    Case 1 ' arg меньше x(1) -> экстраполируем
    D = X(2) - X(1)
    If D = 0 Then D = 0.0001
    ret = -D * M(2) / 6 + (Y(2) - Y(1)) / D
    ret = ret * (arg - X(1)) + Y(1)

    Case n + 1 ' arg больше x(n) -> экстраполируем
    D = X(n) - X(n - 1)
    If D = 0 Then D = 0.0001
    ret = D * M(n - 1) / 6 + (Y(n) - Y(n - 1)) / D
    ret = ret * (arg - X(n)) + Y(n)

    Case Else ' интерполируем
    D = X(i) - X(i - 1): H = arg - X(i - 1)
    R = X(i) - arg: P = D * D / 6
    ret = (M(i - 1) * R ^ 3 + M(i) * H ^ 3) / (6 * D)
    ret = ret + ((Y(i - 1) - M(i - 1) * P) * R + (Y(i) - M(i) * P) * H)
    / D
    End Select
    CalcValue = ret
    End Function

    Private Sub Command1_Click()
    If PrepareSpline(TempArr) Then
    DrawCurve
    Else
    MsgBox "Золотые руки, но растут не из того места", vbOKOnly +
    vbCritical
    End If
    End Sub

    Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As
    Single, Y As Single)
    Dim i As Integer
    Static n As Integer

    n = n + 1
    ReDim Preserve TempArr(2, n)
    TempArr(1, n) = X
    TempArr(2, n) = Y
    Picture1.Circle (X, Y), 60
    End Sub

    Private Sub DrawCurve()
    Dim i As Integer

    Picture1.PSet (X(LBound(X)), CalcValue(X(LBound(X))))
    For i = 0 To Picture1.ScaleWidth
    Picture1.Line -(i, CalcValue(CSng(i)))
    Next i
    End Sub

    Вопрос:

    Кто знает как програмно добавить запись в реестр?
    Путь:
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
    Мне нужно чтобы прога была в автозагрузке... Но нинаю как это зделать програмно. ПОМОГИТЕ........

    Ответ:

    Автор ответа: Dr.Max

    Это не совсем то ,что нужно(работает только с одной веткой) ,но может понадобится ...

    Оболочка

    Public Enum constTypeOptions
    GetOption = 0
    SaveOption = 1
    End Enum
    Public Enum constKeyOptions
    Имя1 = 0'Добавляем сколько нужно и назначаем номер Имени в реестре
    Имя2 = 1
    End Enum

    Обертка

    Public Function Options(ByVal TypeOptions As constTypeOptions, _
    ByVal Key As constKeyOptions, Optional Setting As String) As String
    Select Case TypeOptions
    Case GetOption 'считывание
    Options = GetSetting(App.EXEName, "Options", Key)
    Case SaveOption 'запись
    SaveSetting App.EXEName, "Options", Key, Setting
    End Select
    End Function

    Первый запуск

    If Options(GetOption, Time) = vbNullString Then 'если таких имен в реестре нет ,то
    Options SaveOption, Имя1, 10 ' создать их ,и записать их первые значения
    Options SaveOption, Имя2, 9
    End If

    После первого запуска нажмите <пуск> => <выполнить> ,введите ,нажми ОК.
    Откройте ветку HKEY_CURRENT_USER\SOFTWARE\VB and VBA Program Settings
    Найдите имя своего проекта. И в должны увидеть

    Параметр Значение
    0 10
    1 9

    Записывать : Options SaveOption, Имя, Значение
    Читать : Options(GetOption, Имя)

    Вопрос:

    Подскажите - есть таблицы в HTML формате и их нужно "перевести" в xls формат.
    Проблема в том, что в ячейках HTML находятся десятичные числа (например 1.52) в одних ячейках и текст в других ячейках. Когда копируешь в ексель, то ексель числа воспринимает (формат ячейки - все форматы) как январь.52.
    Мне же нужно для обработки, чтобы текст в таблице оставался текстом, а числа 1.52 в 1,52 а не 1.52. Как это возможно решить с помощью макросов VBA.

    Ответ:

    Автор ответа: Эд

    Вот примерчик, если вот правильно понял:

    В листе добавляешь кнопу, а в коде пиши вот это:(должно получиться!!!)

    Option Explicit
    Public x, y, n As Integer
    Public z As String

    Private Sub CommandButton1_Click()
    Range("A1").Select ' ячейка в которую надо циферки вводить, ну типа: 1,23

    x = ActiveCell.FormulaR1C1
    For n = 1 To Len(x)
    If Mid(x, n, 1) = "," Then
    z = Trim(Str(Left(x, n - 1))) + Trim(".") + Trim(Str(Right(x, (Len(x) - n))))
    End If
    Next n
    Range("A2").Select' ячейка в которую скинет циферки, в том виде, который тябе нужен, ну типа: 1.23
    ActiveCell.FormulaR1C1 = Val(z)
    End Sub

    Формат ячеек ставь общий(али текстовый) ...:)

    Вопрос:

    Я скачал конвектор *.х файлов ,но как им пользоватся??
    Я запускаю ехе"шник ,он быстренько пробежался сверху вниз и выгружается !!
    На 100% уверен ,что это я не умею им пользоватся!!

    Ответ:

    Автор ответа: Vir

    Какие команды надо вводить я незнаю так как таких конвертеров много. Наверняка он DOS'овский и просмотреть то что там прокручивается если сначала запустить MS-DOS (или в XP командную строку) и от туда запустить его. все ключи должны быть там описаны или в крайнем случае запустить с ключом /?

    Ответ:

    Автор ответа: crash.smolensk@fbi.net

    Просто запусти command.com и в нем запусти этот exe файл

    Ответ:

    Автор ответа: P@Ssword

    Этот конвертёр - консольное приложение, а Windows 2000 грешит тем, что автоматически закрывает консоли после завершения приложения (в Win9* обычно окно остаётся, с заголовком "Сеанс завершён"). Во избежание этого надо просто открыть консоль ручками (в W98 это "Сеанс MS-DOS", в 2000 - "Командная строка"), а в ней уже запускать приложение.

    Вопрос:

    А как создаются виртуальные диски? мне надо создать образ файловой системы, а сами файлы хранить не надо. Т.е. на моем диске система будет видеть теже файлы, что и на CD (к примеру), но при попытке доступа - из содержимое будет единым.

    Ответ:

    Автор ответа: Vitaly O. Pois

    Subst

    Устанавливает соответствие пути в файловой системе заданному диску. Вызванная без параметров, команда subst выводит имена виртуальных дисков, созданных предыдущими вызовами команды.

    Синтаксис

    subst [диск: [диск2:]путь]

    subst диск1: /d

    Параметры

    диск1:
    Задает диск, которому будет поставлен в соответствие заданный путь
    диск2:
    Задает физический диск, на который ссылается заданный путь (если не совпадает с текущим диском).
    путь
    Задает путь, который ставится в соответствие диску.
    /d
    Удаляет виртуальный диск.
    /?
    Отображает справку в командной строке.

    Примечания

    a.. Следующие команды не будут работать и не должны быть использованы с дисками, созданными командой subst:
    a.. chkdsk
    b.. diskcomp
    c.. diskcopy
    d.. format
    e.. label
    f.. recover
    b.. Параметр диск1 должен лежать в диапазоне, задаваемом командой lastdrive. В противном случае subst выведет следующее сообщение об ошибке:
    Недопустимый параметр - диск1:

    Примеры

    Чтобы создать виртуальный диск Z на пути B:\User\Betty\Forms, введите следующую команду:

    subst z: b:\user\betty\forms

    Теперь, вместо ввода полного имени, можно получить доступ к каталогу, обращаясь к диску, как показано ниже:

    z:

    Вопрос:

    Я пишу программу на подобии ICQ, но он не работает (программа не отсылает и не получает сообщения), когда включен какой-нибудь Firewall(Zone Alarm, например), можно ли firewall как-нибудь убедить, что этот порт, используемый программой, перекрывать не надо?

    Ответ:

    Автор ответа: Мунгалов Андрей

    Можно нужно смотреть правила разрешений или запретов в самом ФаирВоле просто нужно разрешить твой порт.

    Вопрос:

    Как в VB работать с ресурсами (хорошо было бы, если мне кто-нибудь прислал ссылочку на какую-нибудь статью в инете), и вообще, как вшить музыкальный файл в свою прогу?

    Ответ:

    Автор ответа: Vir

    В Samples должны быть примеры, ищи файлы .RES .RC соответственно ресурс и описание ресурсов. Описание нужно для его создания, создается с помощью проги вроде RC.EXE где то в папке VB

    Вопрос:

    Написал прогу на VB.net. Подскажите, как мне ее теперь распространять? А именно, какие файлы включать в комплект поставки? Я не использовал никаких дополнительных контролов.

    Ответ:

    Автор ответа: Vir

    В VB.net все намного сложнее чем в VB6. Во первых просто переносом файлов не отделыешся. Чтобы создать установочный пакет нужно к текушему проекту добавить еше один который будет отвечать за него, называется вроде Setup или что то в этом роде. Но даже если и создаш его то перенести на другой Win9x-Me неудастся потребует FrontPage, Internet Explorer X.X.X и т.д. вобщем нужно очень долго разбиратся.

    Ответ:

    Автор ответа: Loki

    Ну типа ты приобламался с распространением прог. Если нет на машине VB NET или Microsoft .NET Framework она не будет работать.
    А эти элементы занимают не ниеже 100МБ.
    Какой человек незная VB будет ставить себе эти компоненты. Только зря место тратить.

    Вопрос:

    Как из программы на VB проверить, установлен в WIN архиватор RAR или ZIP ? И как узнать в какой каталог он установлен.

    Ответ:

    Автор ответа: Севостьянов Игорь

    Для этого достаточно посмотреть информацию в реестре...
    И в соответствии с полученной информацией проверить наличие файлов на диске...
    А вообще-то не понятно зачем это надо ?...
    Я думаю это неверный подход к решению проблемы, но может я и оишбаюсь - все зависит от поставленной задачи (а она и не описана в вопросе)

    Ответ:

    Автор ответа: Eugene

    Я думаю, что узнать куда установлен RAR, лучше всего из реестра, в разделе:

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WinRAR archiver]

    Там есть параметр "UninstallString". Вот если этот параметр не равен пустой строке, то туда и установлен RAR. Правда нужно отсекать в этой строке имя файла.

    Ответ:

    Автор ответа: Nechaev Sergey

    Проверь в реестре ключ HKEY_CLASSESS_ROOT\.rar Посмотри на что ссылается этот ключ (параметр по умолчанию) - у меня на WinRar.Потом смотришь, что записано по адресу HKEY_CLASSES_ROOT\WinRAR(или то что у тебя нашлось на предыдущим шаге)\shell\open\command\. В параметр по-умолчанию путь к архиватору. Откинь последние символы (%1 и все такое) и получишь путь к WinRar.exe. С винзип аналогично, но ничего конкретного сказать не могу, т.к зип не установлен.

    Вопрос:

    Вот такая есть у мня трабла: надо считать с порта (ЛПТ) инфу и преобразовать её в двоичную инфу. Пример: если на порту 255 то чтобы оно дало строку 11111111 или в массив (0 то 7). Считать данные с порта я знаю, а вот как оптимальным способом преобразовать енто в двоичную систему? Пробовал через оператор InStr отслеживать запятую и т. д. - работает - но МЕДЛЕННО! скорость чтения порта упала с 400000 операций считывания до 40000 в секунду! Это очень большая потеря!

    Ответ:

    Автор ответа: Андрей Щёкин

    Интересная задача. Я полагаю, что это должно сработать:

    ' Выдаёт 0 или 1 - состояние указаного бита в передаваемом байте
    ' Нумерация битов
    ' Байт: 215 = 1 1 0 1 0 1 1 1
    ' Биты (номера): 8 7 6 5 4 3 2 1

    Public Function GetBit(ByVal Value As Byte, ByVal BitNum As Byte) As Byte
    Dim tPower As Long

    tPower = 2^(BitNum-1) ' сэкономим одно вычисление

    GetBits = CByte((Value Or tPower) \ tPower)
    End Function

    Ответ:

    Автор ответа: P@Ssword

    Function BIN(bByte As Byte) As String
    Dim Pos As Integer

    ' ї P@Ssword, 2k2

    BIN = String$(8, "0")
    Pos = 8
    While bByte
    Mid$(BIN, Pos, 1) = IIf(bByte Mod 2 = 0, "0", "1")
    bByte = bByte \ 2
    Pos = Pos - 1
    Wend

    End Function

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 120.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Я недавно написал статью. Называется "Регулярные выражения в VB .NET". Она сейчас участвует в конкурсе на сайте GotdotNet. Призываю всех желающих прочитать статью зайти по адресу http://www.gotdotnet.ru/default.aspx?s=doc&d_no=3896&c_no=9
    И ещё: обращаюсь к любителям халявы. На Microsoft.com можно заказать бесплатный CD с бета-версией Microsoft .NET Speech SDK 2.
    Читайте!

    Содержание выпуска

    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на 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

    Дата: 22.12.2002 17:36 | Раздел: ActiveX контролы | Автор: Вологин Артём

    LinkControl - Этот контрол предназначен для запуска E-MAIL клиента и WEB страниц. Контрол имеет (пока) очень мизерные навороты. Такие как: 3D надпись, проигрывание WAV файла при нажатии и другое.

    Дата: 21.12.2002 17:29 | Раздел: Примеры кода | Автор: Millenium

    Unicode Text View - Данная программа создана для просмотра Реесторных, Win16, Win32, UserCe, User32, NTFS, ASCII, Unicode, EXE, UNIX, Cep и WR2K формата файлов как 16 так и в 32 разрядном и в Юникод (Unicode) формате...

    Дата: 20.12.2002 17:32 | Раздел: Примеры кода | Автор: Dan Cake

    MsgBox Generator - Генерирует MsgBox, в соответствии с указанными параметрами.

    Дата: 19.12.2002 17:29 | Раздел: Примеры кода | Автор: LexA

    SetPixel - Пример с SetPixel и рабочим столом.

    Дата: 19.12.2002 16:40 | Раздел: Примеры кода | Автор: Половый Александр

    Стрелок 50 - "Стрелок 50" - это новая игра-"стрелялка" по движущимся мишеням. Сама программа представляет интерес по вопросам: генерация случайных чисел, генерация случайного направления, разнообразие движения мишени, динамические массивы переменных и оъектов, работа с таймерами и прочее и прочее.

    Дата: 19.12.2002 16:36 | Раздел: Статьи по VB | Автор: Половый Александр

    Как я разрабатывал игру "Стрелок 50" - Статья о процессе разработки игры. Сама игра доступна в разделе Примеры.

    Дата: 18.12.2002 15:35 | Раздел: Примеры кода | Автор: Ловиков Миха

    LanguageChange - Это есть пример изменения языков в вашем приложении. Был английский, а стал русский. Вот так!

    Дата: 16.12.2002 15:35 | Раздел: Примеры кода | Автор: Zeus

    ChangeKayboardLayout - Пример, который меняет раскладку клавиатуры при помощи функций АПИ.

    Последние 20 тем форума на VBNet.Ru:

    06:33 / 22 дек. Снять процесс, зная ТОЛЬКО путь к exe_шнику? | Хитов: 3 | Ответов: 0
    18:33 / 21 дек. Администратору | Хитов: 30 | Ответов: 6
    18:17 / 21 дек. принудительный выход из проги | Хитов: 24 | Ответов: 5
    14:10 / 21 дек. Icon | Хитов: 15 | Ответов: 3
    14:00 / 21 дек. ПОЖАЛУЙСТА, ПОМОГИТЕ!!! | Хитов: 62 | Ответов: 16
    13:57 / 21 дек. FindFirstFile и FindNextFile | Хитов: 16 | Ответов: 1
    11:58 / 21 дек. Помогите начинающему! | Хитов: 23 | Ответов: 0
    11:28 / 21 дек. ASP хостинг | Хитов: 26 | Ответов: 3
    10:51 / 21 дек. Перезагрузка... | Хитов: 17 | Ответов: 1
    08:36 / 21 дек. Direct Draw | Хитов: 18 | Ответов: 1
    23:45 / 20 дек. Звонилка | Хитов: 14 | Ответов: 0
    19:06 / 20 дек. Помогите, пожалуйста! Срочно!!! | Хитов: 37 | Ответов: 0
    19:03 / 20 дек. Active Server Pages | Хитов: 33 | Ответов: 6
    18:52 / 20 дек. Где грабли? | Хитов: 23 | Ответов: 0
    17:48 / 20 дек. Прозрачный фон у BMP | Хитов: 22 | Ответов: 1
    17:26 / 20 дек. Прочти вопрос тут | Хитов: 34 | Ответов: 3
    16:26 / 20 дек. И снова TDBGrid 7.0???? | Хитов: 12 | Ответов: 0
    15:46 / 20 дек. ToolTipTex | Хитов: 25 | Ответов: 1
    15:44 / 20 дек. TextBox | Хитов: 32 | Ответов: 3
    15:43 / 20 дек. MsgBox | Хитов: 29 | Ответов: 1

    Последние поступления в Библиотеку кодов:

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    • 18.12
      Утилиты - WINGATE LOG
      Программа создает отчеты о трафике по юзерам , отчет по конкретному юзеру или сервису. Из сервисов - анализирует WWW, FTP, POP3, SMTP, TELNET

      Утилиты - Утилита на QB4.5 с исходниками
      Программа регистрации ActiveX библиотек с исходниками. Написана на QB 4.5

      Утилиты - PSP
      Создаёт проекты к программе Help WorkShop 4. С её помощью можно быстро создавать справочную систему для своих приложений или просто файлы помощи Windows

      Справочники - QuickAPI
      Краткое описание (с объявлением) большого количества API-функций

      Базы Данных - Исходные коды - Работа с Базой Данных - Копирование данных из одной Базы Данных в другую
      Иногда бывают случаи, когда вам необходимо скопировать данные находящиеся в одной Базе Данных в другую. Это можно сделать разными способами - здесь представлен способ применяющий исполняющий SQL - запрос.

    наверх

    Новости сайта MSDN

    наверх

    Новости сайта GotdotNet

    • 20 дек 2002
      Новые призеры конкурса статей
      Сегодня оправлены призы еще двум участникам конкурса статей - Олегу Аксенову и Сергею Иванову. Поздравляем!

    Новые статьи:

    • 11.12 - Регулярные выражения в VB .Net
    • 10.12 - Сравнение производительности: управление транзакциями
    • 08.12 - Сравнение производительности: проектные решения по безопасности
    • 05.12 - Сравнение производительности: .NET Remoting и Web-сервисы ASP.NET
    • 04.12 - Сравнение производительности: методы доступа к данным

    наверх

    Новости сайта dotSite

    Новые статьи:

    Новые примеры:

    • Библиотека Web Custom Controls для персонификации интерфейса
      Набор Web Custom Controls, позволяющих каждому пользователю настраивать интерфейс Web-приложения по своему усмотрению. А именно: перемещать элементы управления, изменять их размеры и др. Кроме этого проводится автоматическое сокрытие редко используемых пунктов меню и отбор часто используемых. Посмотреть на пример использования можно на http://hosting.gotdotnet.ru/slava_k/

    • Исходный код сервисов публикаций и групп пользователей
      Реальный код сервисов и бизнес-объектов, используемый на dotSITE

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Саня

    Ответ ожидается по этому адресу

    Как объединить три переменные в одно выражение, а не текст. например я пишу прогу калькулятор. У меня есть три переменные

    Znak=+, -,*,/
    x= 1-е число
    y= 2-е

    как мне записать с помощью этих переменных 2+4, например?
    Как объединить x, Znak и y?

    Автор вопроса: LexA

    Ответ ожидается по этому адресу

    где можно вяять информацию по WinSock контролу на русском яяыке? Очень надо. Или скине нa e-mail какой-нибудь manual по этому вопросу.

    Автор вопроса: Андрей Прохожев

    Ответ ожидается по этому адресу

    Где можно найти значение констант для API, если в API Text Viewer их нет.
    У меня MNSD januari 2002, но и там не могу найти!

    Ответы:

    Вопрос:

    Кто-нить скажите как подключить ресурс к проэкту???

    Ответ:

    Автор ответа: crash.smolensk@fbi.net

    В меню Add-Ins пункт Add-in manager
    Там выбери Visual Basic 6 Resource Editor и поставь галочку Load

    Ответ:

    Автор ответа: Роман

    Меню Project\Add File... и выбрать файл ресурса.

    Вопрос:

    Как для Windows 98/XP на форме запустить avi-файл?

    Ответ:

    Автор ответа: Роман

    Можно использовать Windows Media Player(c:\windows\system\msdxm.ocx) или API функцию mciSendString, но тогда откроется новое окно с AVI. Есть модуль для работы с этой функцией и пример. Кому нужен - svs@kes.veco.ru

    Вопрос:

    На вход COM порта подаются бинарные сигналы определенной длины, но MsCommControl не может их определить, а выдает как либо пустые строки, либо символы ??, ну как в настройкакх настроины неизвестные. Ну так вот, может кто-нибудь знает как мне получить получить эти данные в нормальном виде, ну что бы в программе в цикле If применять можно было бы?

    Ответ:

    Автор ответа: shadow

    Попробуй поставить свойство input в ComInputModeBinary. Или посмотри Ascii коды того что к тебе приходит - вполне возможно что это символы с кодом меньше 32.

    Вопрос:

    Можно ли сделать так, чтобы при старте программы данные из определённого файла записывальсь в событие, например cmd1_click ()
    И как это сделать?

    Ответ:

    Автор ответа: Марк

    Вопрос некорректный. Данные из файла нельзя записать в событие. Данные - это набор символов, а событие - то, что происходит в жизни компьютера. Надо переформулировать вопрос.

    Ответ:

    Автор ответа: Ревягин_Алексей

    можно брать код из файла и использовать его в программе, но при этом код будет выполнятся как-бы отдельный модуль нового проекта (пока что я нашёл только этот способ), если нужно объяснить по-подробней пиши на мыло

    Вопрос:

    Нашел исходник гоночного симулятора на ВБ.
    Но он не запускается, говорит:<< Run-time error '429' ActiveX component can't create object >> .
    Что это значит и как узнать ,что это за компанент????
    Если кто-нибудь скачивал это с vbstreets.da.ru из download ,то скажите, какой нужно подключить (если не стандартный ,то где скачать) актив ???

    Ответ:

    Автор ответа: Андрей Прохожев

    Не ломай голову! А для начала в свойствах папки, куда скачал программу, убери свойство "Только чтение". Должно помочь!

    Вопрос:

    У меня 4 вопроса:
    - Кто может сказать где взять информацию о структурах файлов разных типов. Например EXE-файла.
    - Кто знает как без всяких API-функций сделать выделение методом наведения. т.е. реакцию на наведение мышей на объект. Слышал, что используется свойство Tag...
    - Подскажите, где в инете можно достать иконки или BMP-шки для тулбаров (панелей, как в крутых программах, типа Word и др), только очень качественные - с градиентацией. Или какой программой они рисуются? Буду очень благодарен! Если можно дайте прямые ссылки на zip фрхивы.
    - Кто работал со Speech API??? Пожалуйста помогите: дайте примерчик на VB или код. Также важен принцип работы на VB. Взаимную помощь гарантирую!

    Ответ:

    Автор ответа: Андрей Щёкин

    Информация об структурах EXE-файлов есть в MSDN и заголовочных файле VC winuser.h (~300Kb, могу послать).
    Что касается других то это зависит от того какие именно вам нужны.

    Вопрос:

    Как подсоединится к удаленному MS SQL Server.

    Ответ:

    Автор ответа: Sergey

    Зависит от того,какой движок ты хочешь использовать и какого провайдера.Лично я предпочитаю ADO(2.6 и выше). Надежный и заточенный под MSSQL. По поводу провайдеров - или Microsoft ODBC for SQL Server(MSDASQL) или Microsoft OLE DB for SQL Server(SQLOLEDB). В чем между ними разница - длинная тема для разговора.

    А код такой:

    dim con as ADODB.Connection
    dim sConnectionString As String
    dim rs as ADODB.Recordset 'это если хочется получить данные с сервера

    Set con = new ADODB.Connection
    set rs = new ADODB.Recordset

    'Это для MSDASQL
    sConnectionString = "Provider=MSDASQL;DRIVER={SQL Server};SERVER=MyServer;DATABASE=MyDatabase;uid=MyDatabaseLogin;pwd=MyDatabasePassword"
    'Это для SQLOLEDB
    sConnectionString = "Provider=SQLOLEDB;DRIVER={Microsoft OLEDB for SQL Server};SERVER=MyServer;DATABASE=MyDatabase;uid=MyDatabaseLogin;pwd=MyDatabasePassword"

    con.Open sConnectionString

    set rs.ActiveConnection = con

    set rs = Nothing
    set con = Nothing

    Разумеется перед этим нужно подключить библиотеку Microsoft ADO 2.1 или выше.Еще есть такая вешь как SQL-DMO(которое раньше было SQL-OLE). Работает этот движок только с SQL Server,но зато позволяет автоматизировать многие действия и забыть о внутреннем устройстве сервера и баз данных. Кроме того есть задачи,в которых без него не обойтись - например перечислить все MSSQL-сервера в локальной сети.

    P.S. Нет такой чистой и светлой мысли, которую бы русский человек не смог бы выразить в грязной матерной форме.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 121.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта 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!!!

    Несколько слов от автора:

    Новый выпуск. Обращаю Ваше внимание: на нашем сайте VBNet.Ru новый дизайн. Так что заходите, не пожалеете.
    Читайте!

    Содержание выпуска

    • Книги

    • Конкурс!!!

    • Как скопировать данные из одного ListBox в другой ListBox или ComboBox
    • Определение, какая item находится под курсором мышки в листбоксе
    • Сканировать ListBox в поисках элемента
    • Пример поиска в ListBox'е
    • Автоматическое выделение элемента в ListBox'е
    • Какой элемент выделен? (по номеру)

    • Вопрос/Ответ

    Книги

    Переход на 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 можно найти здесь.

    наверх

    Конкурс!!!

    Сайт PocketGames.ru приглашает принять участие в конкурсе на разработку игр для устройств на базе платформ PocketPC и других мобильных платформ.
    Конкурс проходит с 20 декабря 2002 г., по 10 февраля 2003 г. Принимаются игры не только для PocketPC, но и для других мобильных платформ.
    Первое место приносит победителю: PocketPC
    Второе и третье места: флэш-накопитель (USB-брелок).
    Поощрительные бонусы (каждому участнику конкурса): 1 месяц (или 10 тыс., что истечет раньше) показов баннеров на сайте PocketGames.ru, 1 тыс. показов в Handy Banner Network, а также публикация ссылки на компанию в каталоге разработчиков и на программы (на каждую) в каталоге игр, обзор любой программы по выбору автора.
    Разработка не требует "живого" устройства, достаточно эмулятора из SDK. Информация о том, где найти SDK и эмуляторы находится в статье http://www.pocketgames.ru/article.php?sid=160.
    Удачный повод разобраться с новой платформой для Visual Basic!

    наверх

    Как скопировать данные из одного ListBox в другой ListBox или ComboBox

    Добавьте на форму 2 ListBox, 1 ComboBox и 2 CommandButton

    Private Declare Function SendMessageStr Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
    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()
    Dim success As Long
    success = CopyListToList(List1, List2)
    End Sub
    Private Sub Command2_Click()
    Dim success As Long
    success = CopyListToCombo(List1, Combo1)
    If success Then Combo1.ListIndex = 0
    End Sub

    Private Function CopyListToList(source As ListBox, target As ListBox) As Long
    Dim c As Long
    Const LB_GETCOUNT = &H18B
    Const LB_GETTEXT = &H189
    Const LB_ADDSTRING = &H180
    Dim numitems As Long
    Dim sItemText As String * 255
    numitems = SendMessageLong(source.hWnd, LB_GETCOUNT, 0&, 0&)
    If numitems > 0 Then
    For c = 0 To numitems - 1
    Call SendMessageStr(source.hWnd, LB_GETTEXT, c, ByVal sItemText)
    Call SendMessageStr(target.hWnd, LB_ADDSTRING, 0&, ByVal sItemText)
    Next
    End If
    numitems = SendMessageLong(target.hWnd, LB_GETCOUNT, 0&, 0&)
    CopyListToList = numitems
    End Function

    Private Function CopyListToCombo(source As ListBox, target As ComboBox) As Long
    Dim c As Long
    Const LB_GETCOUNT = &H18B
    Const LB_GETTEXT = &H189
    Const CB_GETCOUNT = &H146
    Const CB_ADDSTRING = &H143
    Dim numitems As Long
    Dim sItemText As String * 255
    numitems = SendMessageLong(source.hWnd, LB_GETCOUNT, 0&, 0&)
    If numitems > 0 Then
    For c = 0 To numitems - 1
    Call SendMessageStr(source.hWnd, LB_GETTEXT, c, ByVal sItemText)
    Call SendMessageStr(target.hWnd, CB_ADDSTRING, 0&, ByVal sItemText)
    Next
    End If
    numitems = SendMessageLong(target.hWnd, CB_GETCOUNT, 0&, 0&)
    CopyListToCombo = numitems
    End Function

    Private Sub Form_Load()
    List1.AddItem "1"
    List1.AddItem "2"
    List1.AddItem "3"
    End Sub

    наверх

    Определение, какая item находится под курсором мышки в листбоксе

    Часто, бывает нужда в определении элемента, над которым пользователь держит мышку. Как наиболее тривиальное применение - вывод дополнительной информации или подсказки в статус бар, причем контекстно зависимой от элемента. Или, например, показ текущего элемента в другом листбоксе. Бэйсик сам не дает нам такой функциональности, но к счастью, используя API функцию SendMessage() и константу LB_ITEMFROMPOINT такая возможность у нас появляется.

    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    'LB_ITEMFROMPOINT - это сообщение будет извлекать индекс (начиная с 0)
    'Обьявляем эту константу там же
    Private Const LB_ITEMFROMPOINT = &H1A9
    'Координаты мыши будут передаваться в параметр lParam , и значение этих координат должно быть в пикселях . VB cвои значения выдает в твипсах, соотвественно мы должны позаботиться о конвертации перед передачей этих значений в API функцию.
    'Это можно сделать так: ((YPosition * 65536) + XPosition))
    'Ну, и наконец, SendMessage() может возвращать вам два типа значений.
    'Если функция определяет, что указатель мыши находится над листбоксом - то она вернет номер индекса листбокса.
    'Если мышка в другом месте, то функция вернет значение равного старшему слову координаты плюс 65537. Собственно достаточно будет проверить на соотвествие возвращаемый индекс.
    'Вряд ли кто то будет держать в листбоксе столько элементов.
    'Итак, нижеследующий код показывает как это все написать.
    Private Sub Form_Load()
    List1.AddItem "11"
    List1.AddItem "22"
    List1.AddItem "33"
    List1.AddItem "44"
    End Sub
    Private Sub List1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim P As Long
    Dim XPosition As Long, YPosition As Long
    XPosition = CLng(X / Screen.TwipsPerPixelX)
    YPosition = CLng(Y / Screen.TwipsPerPixelY)
    P = SendMessage(List1.hWnd, LB_ITEMFROMPOINT, 0, ByVal ((YPosition * 65536) + XPosition))
    If P < List1.ListCount Then
    MsgBox "текущее значение индекса - : " & P
    End If
    End Sub

    наверх

    Сканировать ListBox в поисках элемента

    Добавьте на форму элементы ListBox и TextBox. Набирая в TextBox'е, к примеру, цифры "229" вы попадете на первый элемент ЛистБокса, содержащий эти цифры. В данном примере вы попадете на элемент "2291".

    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long
    Const LB_FINDSTRING = &H18F
    Private Sub Form_Load()
    List1.AddItem "111"
    List1.AddItem "222"
    List1.AddItem "228"
    List1.AddItem "2291"
    List1.AddItem "2293"
    List1.AddItem "2297"
    End Sub
    Private Sub Text1_Change()
    List1.ListIndex = SendMessage(List1.hwnd, LB_FINDSTRING, -1, ByVal CStr(Text1.Text))
    End Sub

    наверх

    Пример поиска в ListBox'е

    Данный пример отсеит все неподходящие по критерию элементы одного ListBox'а в другой.
    Расположите на форме элементы TextBox и 2 элемента ListBox (смотри рисунок)

    Private Sub Text1_Change()
    intPlacement = Len(Text1)
    strFind = UCase(Text1.Text)
    List1.Clear
    For intResult = 0 To List2.ListCount
    intSearchResult = InStr(UCase(Left(List2.List(intResult), intPlacement)), strFind)
    If intSearchResult > 0 Then List1.AddItem List2.List(intResult)
    Next intResult
    End Sub

    Private Sub Form_Load()
    Text1.Text = ""
    With List2
    .AddItem "МП-Ком правда"
    .AddItem "Tanya"
    .AddItem "Shannon"
    .AddItem "Московская правда"
    .AddItem "Московский комсомолец"
    .AddItem "Московские новости"
    .AddItem "Johnny"
    .AddItem "Mike"
    .AddItem "Derek"
    .AddItem "Scotty"
    .AddItem "МП-Сов Рос"
    .AddItem "Scott"
    .AddItem "Tyna"
    .AddItem "Diana"
    .AddItem "Chris"
    .AddItem "Stanley"
    .AddItem "Kamal"
    .AddItem "МП-Куряд"
    End With
    End Sub

    наверх

    Автоматическое выделение элемента в ListBox'е

    Данный пример покажет, как можно автоматически выделить строчку в элементе ListBox, при прохождении над ним курсора мыши.

    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
    Const LB_GETITEMHEIGHT = &H1A1
    Private Sub Form_Load()
    List1.AddItem "aaa"
    List1.AddItem "bbb"
    List1.AddItem "ccc"
    List1.AddItem "ddd"
    List1.AddItem "eee"
    End Sub
    Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    List1.ListIndex = -1
    End Sub
    Private Sub List1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim ItemHeight As Integer
    ItemHeight = SendMessage(List1.hWnd, LB_GETITEMHEIGHT, 0, 0)
    Y = min(((Y / Screen.TwipsPerPixelY) \ ItemHeight) + List1.TopIndex, List1.ListCount - 1)
    Label1.Caption = "Выделен элемент " & Y
    List1.ListIndex = Y
    End Sub
    Function min(X As Integer, Y As Integer) As Integer
    If X > Y Then min = Y Else min = X
    End Function

    наверх

    Какой элемент выделен? (по номеру)

    Добавьте на форму элементы ListBox и CommandButton

    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Any) As Long
    Const LB_GETCURSEL = &H188
    Private Sub Form_Load()
    List1.AddItem "11"
    List1.AddItem "22"
    List1.AddItem "33"
    End Sub
    Private Sub Command1_Click()
    Print "Выделен элемент под номером: " & SendMessage(List1.hwnd, LB_GETCURSEL, 0&, 0&)
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Alexey

    Ответ ожидается по этому адресу

    У меня такой вопрс: Как сделать паузу в выполнении программы. Я помню в обычном бейсике это sleep(в секундах) или delay (в миллисекундах). А как сделать то же самое в VB 6.0?

    Автор вопроса: Alexbor

    Ответ ожидается по этому адресу

    Мне хотелось бы во время индикации процесса выполнения показывать тематический avi-файл, пока идет копирование, но авишник выполняется только один раз, может кто в курсе как его в этот момент зациклить до команды close MCI-устройства.

    Автор вопроса: timshv@graffiti.net

    Ответ ожидается по этому адресу

    Как сделать мигающей иконку приложения в трее, подобно в ICQ?
    У меня проблема в следующем: не знаю как сделать невидимой иконку
    приложения или подставить пустую иконку не обращаясь к файлу иконки на
    диске.

    Автор вопроса: shadow

    Ответ ожидается по этому адресу

    Как определить какая раскладка клавиатуры включена в данный момент в активном окне?
    Если так:

    Private Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long

    Private Sub Form_Load()
    Dim KeybLayoutName As String
    KeybLayoutName = String(9, 0)
    GetKeyboardLayoutName KeybLayoutName
    Tetx1.Text = CStr(CLng(Left$(KeybLayoutName, _
    InStr(1, KeybLayoutName, Chr(0)) - 1)))
    End Sub
    ,
    то определяется раскладка моей формы.

    Автор вопроса: Андрюха

    Ответ ожидается по этому адресу

    Здрасте, у меня несколько вопросиков.
    1. Видел в одной проге при запуске формы о программе, Шрифт текста плавно меняет цвет с темно синего на ярко голубой и обратно, может кто знает как это делается? Если не трудно намыльте пример.
    2. Можно ли в ListWiev добавить пустую строку, и удалить текущую, (ту в которой находиться курсор. Ни нашел ни одного примера.
    3. Откуда можно считать информацию об адресе последнего сохраненного файла Word.dox в случае с екселем понятно, в реестре он прописывает конкретный адрес открытым шрифтом, а вот Word облазил весь реестр не нашел.

    Автор вопроса: PRGR

    Ответ ожидается по этому адресу

    Вот надо составить список имён в Textbox'е. Т.е. пользователь набирает имя, щёлкает Enter и прога загружает нужную форму.

    Автор вопроса: Michael Fezulaev

    Ответ ожидается по этому адресу

    Есть textbox мне нужна сделать так что-бы когда его свойства Locked=true то правая кнопка мышки не показавала меню

    Ответы:

    Вопрос:

    Есть файл Avi, ножно сунуть его в прогу ,чтобы не тоскать его отдельно. Кто-нибудь знает как ??? Мои эксперементы с ole обламилсь:((((((((( если ,конечно, ole это то ,что нужно.

    Ответ:

    Автор ответа: -=CBK=-CRaSH

    Попробуй подключить AVI как ресурс

    Вопрос:

    Кто-нить скажите как подключить ресурс к проэкту???

    Ответ:

    Автор ответа: Иващенко Алексей

    В проекте делаешь Project->Add File... Дальше выбираешь свой Res файл. А в программе используешь при помощи функций - LoadResPicture,LoadResString, LoadResData

    Вопрос:

    Как для Windows 98/XP на форме запустить avi-файл?

    Ответ:

    Автор ответа: Иващенко Алексей

    Маленькие не компрессированные Avi - компонент Animation
    Полноценные Avi (и вообще всю мультимедию) - компонент MMControl

    Вопрос:

    у меня имеется рисунок, очень большого размера (3000 х 4000), мне надо его разместить на форме, в маленьком размере (300 х 400), а также кнопку по нажитии, которой картинка бы увеличивалась, причем что бы она не залазила за форму, а появлялись ползунки, которыми можно было просмотреть невидимую часть рисунка.

    Ответ:

    Автор ответа: P@Ssword

    На форму кладётся контейнер (любой, напр. ПикчеБокс), в него - два ползунка и Image. У Image свойство Stretch = True. Когда нужен зум, делаешь Stretch = False и пи ивентам ползунков двигаешь Image (напр., Image.Move (HScroll.Value, VScroll.Value).

    Вопрос:

    Необходимо создать контрольную сумму к строке текста, строка состоит из русских символов.
    Подскажите как это можно сделать CRC и после проверить ее.

    Ответ:

    Автор ответа: P@Ssword

    У меня это оформлено как модуль класса, для подсчёта - GetStringCRC32:

    Dim CRCTable(0 To 255) As Long

    Private Sub Class_Initialize()
    Dim Ind As Long, Ind2 As Long
    Dim CRC As Long, Bit As Long
    Const Polynomial As Long = &HEDB88320

    For Ind = 0 To 255
    CRC = Ind
    For Ind2 = 0 To 7
    Bit = CRC And &H1
    CRC = ((CRC And &HFFFFFFFE) \ &H2) And &H7FFFFFFF
    If Bit = &H1 Then CRC = CRC Xor Polynomial
    Next Ind2
    CRCTable(Ind) = CRC
    Next Ind
    End Sub

    Function AddCRC(ByteAry() As Byte, ByVal CRC As Long) As Long
    Dim Ind As Long

    For Ind = 0 To UBound(ByteAry)
    CRC = (((CRC And &HFFFFFF00) \ &H100) And &HFFFFFF) Xor
    CRCTable((CRC And &HFF) Xor ByteAry(Ind))
    Next Ind
    AddCRC = CRC
    End Function

    Function InvertCRC(ByVal CRC As Long) As Long
    CRC = CRC Xor &HFFFFFFFF
    InvertCRC = CRC
    End Function

    Function GetStringCRC32(Str As String) As Long
    Dim CRC As Long
    Dim BAry() As Byte

    BAry = Str
    CRC = AddCRC(BAry, &HFFFFFFFF)
    CRC = InvertCRC(CRC)
    GetStringCRC32 = CRC
    End Function

    Вопрос:

    Скачал исходник ричтекстбокса, добавил его в проект, все отлично работает,но когда попытался скомпилить проект мне сказали что нужна двоичная совместимость. Я ставил совместимость и со скачанным контролом и с тем который сам скомпилил(отдельно от моего проекта контрол компилится без вопросов), все равно выдается сообщение что нужна двоичная совместимость.

    Ответ:

    Автор ответа: Иващенко Алексей

    Поставь эту совместимость в обоих проектах

    Вопрос:

    Можно ли сделать так, чтобы при старте программы данные из определённого файла записывальсь в событие, например cmd1_click ()
    И как это сделать?

    Ответ:

    Автор ответа: P@Ssword

    Надо использовать Windows Scripting Host. При загрузке читаешь исходник на VBScript из файла, а в cmd1_click () исполняешь его.

    Вопрос:

    Может кто из Вас знает, как замерять время меньше 1 мс?? Пробовал через Sleep - и замерял его через timeGetTime - то он даже 1 мс не держит если указать "Sleep 1" (а гдето 2-5 мс выходит), а если Sleep 0.5 - то уже ближе к 1 мс, но всё равно он как-то глючит. Его мининимум может быть только 0.1 или 0.5, а если больше чем 0.6 - то около 2-6 мс!
    Может кто подскажет, как тут быть?
    В Свойствах системы откопал ресурсы системного таймера (там 4 регистра - от &H40 до &H43). Подключился к ним - но вот закономерность нарастания немогу никак вдуплить!
    Может есть ещё какито АПИ ф-ции или какието счётчики или таймера?????

    Ответ:

    Автор ответа: P@Ssword

    ...он даже 1 мс не держит если указать "Sleep 1" (а гдето 2-5 мс
    выходит)...

    А время, затраченное на вызов функций, высчитывалось?

    ...а если Sleep 0.5...

    Насколько я понял, Sleep - это API-функция. Если так, то любой API-Viewer Вам скажет, что она принимает целочисленный параметр. Похоже, что Sleep получал ноль, а те миллисекунды - это время на вызов самих функций.

    Вопрос:

    Может кто-нибудь знает как в MSChart сделать гладкий график?

    Ответ:

    Автор ответа: P@Ssword

    От своего предложения я не отказываюсь - можно интерполировать результаты в плавный график, а затем добавить его в MSChart.

    Вопрос:

    Как объединить три переменные в одно выражение, а не текст. например я пишу прогу калькулятор. У меня есть три переменные

    Znak=+, -,*,/
    x= 1-е число
    y= 2-е

    как мне записать с помощью этих переменных 2+4, например?
    Как объединить x, Znak и y?

    Ответ:

    Автор ответа: Игорь Станиславович

    Тогда уже лучше так:

    select case znak
    case "-"
    rez = x - y
    case "+"
    rez = x + y
    case "*"
    rez = x * y
    case "/"
    rez = x / y
    end select

    x нужно чтобы было объявлено как double, тоже самое с x и rez.

    Ответ:

    Автор ответа: Loki

    Создай еще одну переменную.
    Типа Suma

    Suma=x & Znak & y

    Ответ:

    Автор ответа: Sacha

    Если нужно, чтобы прога складывала числа, например 2 + 2=4, то нужно создать Label c именем Label1), TextBox с именем Text1, TextBox с именем Text2 и кнопку с именем Command1. Потом нухно записать в код кнопки следующий код:

    Private Sub Command1_Click()
    Label1.Caption = Val(Text1) + Val(Text2)
    End Sub

    Кажись, всё.

    Ответ:

    Автор ответа: ViTal

    Dim result As String
    rezult = CStr(x) & Znak & CStr(y)

    Вопрос:

    Где можно найти значение констант для API, если в API Text Viewer их нет.
    У меня MNSD januari 2002, но и там не могу найти!

    Ответ:

    Автор ответа: Владимир Кирко

    На http://www.allapi.net/agnet/apiviewer.shtml лежит ApiViewer с описаниями:

    констант - 55634 штук,
    фунций - 4813 штук,
    подпр. - 1708 штук,
    типов - 457 штук.

    Может в ём найдете?

    Ответ:

    Автор ответа: Андрей Щёкин

    Лучший способ - набери имя константы на www.ya.ru или www.google.com.
    Если стоит VC - посмотри в поддиректории Include, файл winuser.h.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 122.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Это последний выпуск рассылки в уходящем году. Поздравляю вас всех с Новым годом!!!
    Читайте!

    Содержание выпуска

    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на 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

    Дата: 28.12.2002 16:23 | Раздел: Примеры кода | Автор: Nick Demchenko

    Массив - Программа создаёт матрицу случайных чисел и добавляет их в массив считывая по определённой схеме

    Дата: 28.12.2002 16:20 | Раздел: ActiveX контролы | Автор: Вологин Артём

    WinControl 1.0 - В этом контроле объединено почти все, что необходимо для работы с WINDOWS. С помощью WinControl 1.0 можно запускать системные окна (например, настройка даты и времени, установка и удаление программ и т.д.), можно получить данные о диске(метка, серийный номер, файловая система), получить данные о системе (windows, версия, RAM, виртуальная память, процессор) и т.д.

    Дата: 27.12.2002 15:36 | Раздел: Примеры кода | Автор: Ловиков Миха

    LASH MS Agent control - Работа с персонажами MS Agent. Они могут двигаться, говорить( (И по русски тоже , если есть русский голосовой движок), Куча действий. Можно создать своего помощника в мастдае (Я уже сделал!). Можно добавить команды в контекстное меню персонажа.

    Дата: 26.12.2002 17:42 | Раздел: Примеры кода | Автор: Millenium

    Simple *.nfo file viewer - Программа для просмотра nfo файлов.

    Дата: 25.12.2002 17:42 | Раздел: Примеры кода | Автор: Millenium

    Flash Player - Простой Flash-плэйр. Создан с использованием OCX от Macromedia.

    Дата: 24.12.2002 17:39 | Раздел: ActiveX контролы | Автор: Зарубин А.

    Cursor - Контрол предназначен для работы с курсором мыши: показать координаты, скрыть/показать сам курсор или переместить в заданую точку. В комплекте тест-проект.

    Дата: 23.12.2002 17:36 | Раздел: ActiveX контролы | Автор: Boevik

    Browes for folder - Вызов стандартного окна для выбора папки. Имеется возможность выбора начальной папки.

    Дата: 22.12.2002 17:36 | Раздел: ActiveX контролы | Автор: Вологин Артём

    LinkControl - Этот контрол предназначен для запуска E-MAIL клиента и WEB страниц. Контрол имеет (пока) очень мизерные навороты. Такие как: 3D надпись, проигрывание WAV файла при нажатии и другое.

    Последние 20 тем форума на VBNet.Ru:

    12:12 / 29 дек. Снееег!!!! на Новый год. | Хитов: 0 | Ответов: 0
    08:09 / 29 дек. Новое сообщение без темы | Хитов: 5 | Ответов: 0
    07:01 / 29 дек. picturebox control v Access 2000 | Хитов: 1 | Ответов: 0
    06:44 / 29 дек. Алгоритмы корректировки данных | Хитов: 2 | Ответов: 0
    22:43 / 28 дек. Тебята, помогите пожалста | Хитов: 23 | Ответов: 2
    22:02 / 28 дек. программа на vb и patchи к нему | Хитов: 18 | Ответов: 2
    21:25 / 28 дек. SPY++ | Хитов: 9 | Ответов: 0
    20:54 / 28 дек. Apppppi | Хитов: 15 | Ответов: 2
    18:03 / 28 дек. !ВСЕХ С НАСТУПАЮЩИМ! | Хитов: 35 | Ответов: 10
    16:50 / 28 дек. Вес программы | Хитов: 22 | Ответов: 5
    15:36 / 28 дек. Как устроены числа с плавующей запятой | Хитов: 15 | Ответов: 4
    15:17 / 28 дек. ShellExecute выполняется, но не вызывает никако... | Хитов: 9 | Ответов: 0
    08:59 / 28 дек. Опять по МАС адресу компа. | Хитов: 10 | Ответов: 0
    05:53 / 28 дек. Люди...... Где?... | Хитов: 42 | Ответов: 4
    23:33 / 27 дек. Глюки.... | Хитов: 28 | Ответов: 0
    19:57 / 27 дек. New Year Edition | Хитов: 38 | Ответов: 4
    18:49 / 27 дек. VB.NET | Хитов: 34 | Ответов: 4
    18:24 / 27 дек. VB -Круто! | Хитов: 120 | Ответов: 29
    12:49 / 27 дек. Как оптимизировать скорость заброски строк в MS... | Хитов: 29 | Ответов: 0
    11:57 / 27 дек. Работа с ListView | Хитов: 28 | Ответов: 1

    Последние поступления в Библиотеку кодов:

    Новости от VBNet-чиков!:

    11:18 / 26 дек. User Unknown сообщает: и информирует всех тех, кого заинтересовала новость от Ивана Шатрыкина.
    Небезызвестная фирма AppForge объявила о поддержке Dell'овских хенд-платформ. AppForge - занимается разработкой и распространением своей среды разработки и портировании VB кода на PocketPC, Palm OS, Symbian, Handspring, iPAQ, Jornada, Symbol scanners, Nokia 9210/9290 Communicator, а теперь и Dell Axim. Стоимость пакета составляет всего 899 американских рублей. Полную триальную версию на 20М или только ограниченную до Palm OS на 10М можно взять отсюда.

    15:26 / 25 дек. JEDI сообщает: Здаров! Пипель! всем кто хочет посмтотреть, пограть протестить Игруху Arkanoid всем быстро на www.codesphere.by.ru если есть какието вопросы по игруху => jedi@nightmail.ru

    09:44 / 25 дек. User Unknown сообщает: Новость, не особо новая и датированная 06.12.2002. Вышла новая версия HBasic (0.8.9) - среды для разработки на VB-Like коде под *NIX системами. В новой версии исправлены старые баги. А то, в частности, исправлены баги, возникающие при компилирование кода в C# для .NET среды. Все, что теперь надо для полноценного .NET кода - это подключить к вашему HBasic'у файл mscorlib.dll и вы получите рельную кроссплатформенность! -- User Unknown

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Новости сайта MSDN

    наверх

    Новости сайта GotdotNet

    Новые статьи:

    • 23.12 - Система аутентификации на базе протокола HTTP Digest. Усиление модуля.
    • 23.12 - Манипулирование транзакциями между .NET компонентами
    • 23.12 - Руководство по архитектуре доступа к данным на платформе .NET

    наверх

    Новости сайта dotSite

    Новые статьи:

    Новые примеры:

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Alexey2000

    Ответ ожидается по этому адресу

    Как сделать так, что бы при нажатии на кнопку, моя программа сохранялась в заданый мною каталог?

    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

    У меня два вопроса:
    1. Как в DataCombo установить высоту выпадающего списка (по умолчанию он на 7-8 строк) а у меня три.
    2. При изменении региональных настроек - разделитель даты дата воспринимается как текст. Как этого избежать чтобы устранить ошибку. Например . меняем на /

    Автор вопроса: Dr.Max

    Ответ ожидается по этому адресу

    Все ваши советы ,к сожалению, не помогли:((((((
    Я имею в виду вопрос по гоночному симулятору на OpenGL .
    Оказывается ,что у ВБ с OpenGL не так просто как с директом - нужно какое-то
    ПО ,но я незнаю какое именно, и ,соответственно, где его взять!:((

    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

    Как считать информацию о принтере по умолчанию в WinNT

    Ответы:

    Вопрос:

    Может кто из Вас знает, как замерять время меньше 1 мс?? Пробовал через Sleep - и замерял его через timeGetTime - то он даже 1 мс не держит если указать "Sleep 1" (а гдето 2-5 мс выходит), а если Sleep 0.5 - то уже ближе к 1 мс, но всё равно он как-то глючит. Его мининимум может быть только 0.1 или 0.5, а если больше чем 0.6 - то около 2-6 мс!
    Может кто подскажет, как тут быть?
    В Свойствах системы откопал ресурсы системного таймера (там 4 регистра - от &H40 до &H43). Подключился к ним - но вот закономерность нарастания немогу никак вдуплить!
    Может есть ещё какито АПИ ф-ции или какието счётчики или таймера?????

    Ответ:

    Автор ответа: Владимир Кирко

    Пример из справочника (см. текст).
    Проверял. Выдает что-то "длинное".
    В деталях не разбирался.
    Используются QueryPerformanceCounter, QueryPerformanceFrequency, CopyMemory.

    Private Type LARGE_INTEGER
    LowPart As Long
    HighPart As Long
    End Type
    Private Declare Function QueryPerformanceCounter Lib "kernel32" (lpPerformanceCount As LARGE_INTEGER) As Long
    Private Declare Function QueryPerformanceFrequency Lib "kernel32" (lpFrequency As LARGE_INTEGER) As Long
    Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
    Private Sub Form_Load()
    'KPD-Team 2001
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    Dim T As Long, liFrequency As LARGE_INTEGER, liStart As LARGE_INTEGER, liStop As LARGE_INTEGER
    Dim cuFrequency As Currency, cuStart As Currency, cuStop As Currency
    'Retrieve the frequency of the performance counter
    If QueryPerformanceFrequency(liFrequency) = 0 Then
    MsgBox "Your hardware doesn't support a high-resolution performance counter!", vbInformation
    Else
    'convert the large integer to currency
    cuFrequency = LargeIntToCurrency(liFrequency)
    'retrieve tick count
    QueryPerformanceCounter liStart
    'do something
    For T = 0 To 100000
    DoEvents
    Next T
    'retrieve tick count
    QueryPerformanceCounter liStop
    'convert large integers to currency's
    cuStart = LargeIntToCurrency(liStart)
    cuStop = LargeIntToCurrency(liStop)
    'calculate how many seconds passed, and show the result
    MsgBox "Time: " + CStr((cuStop - cuStart) / cuFrequency) + " seconds"
    End If
    End Sub
    Private Function LargeIntToCurrency(liInput As LARGE_INTEGER) As Currency
    'copy 8 bytes from the large integer to an ampty currency
    CopyMemory LargeIntToCurrency, liInput, LenB(liInput)
    'adjust it
    LargeIntToCurrency = LargeIntToCurrency * 10000
    End Function

    Вопрос:

    У меня такой вопрс: Как сделать паузу в выполнении программы. Я помню в обычном бейсике это sleep(в секундах) или delay (в миллисекундах). А как сделать то же самое в VB 6.0?

    Ответ:

    Автор ответа: timshv@graffiti.net

    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

    А потом используешь её.

    Sleep (сколько надо)

    Вопрос:

    Мне хотелось бы во время индикации процесса выполнения показывать тематический avi-файл, пока идет копирование, но авишник выполняется только один раз, может кто в курсе как его в этот момент зациклить до команды close MCI-устройства.

    Ответ:

    Автор ответа: Mikhail

    Попробуй для CommandString в функции API mciSendString указать следующее:

    CommandString = "Play AVIFile repeat notify"

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 123.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта 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!!!

    Несколько слов от автора:

    Поздравляю вас с наступившим!
    Загляните обязательно в раздел Конкурс!
    Читайте!

    Содержание выпуска

    • Книги

    • Конкурс!!!

    • Сколько элементов выделено
    • Сохранение данных из ListBox'а в виде простого текста
    • Поменять местами два рядом стоящих элемента
    • Удалить повторящиеся элементы
    • 3D-текст на форме
    • Загрузить/Сохранить текстовой файл из TextBox'а

    • Вопрос/Ответ

    Книги

    Переход на 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 можно найти здесь.

    наверх

    Конкурс!!!

    Хочу объявить Вам, что с 1-го по 31-е января на сайте вновь проводится конкурс на лучшую статью по программированию на Visual Basic. Мы ждем ваших работ по e-mail: ivan@vbnet.ru, pavel@vbnet.ru. Призы... главным призом для победителя конкурса будет книга, за второе и третье место предусмотрены поощрительные призы! Статья, присланная на конкурс должна отвечать всего двум требованиям: объем не менее 8000 знаков и ее должны написать вы. Все работы будут опубликованы на сайте, а для выявления победителя мы проведем голосование.

    наверх

    Сколько элементов выделено

    Данный пример покажет, сколько всего элементов выделено в ListBox'е. Рсположите на форме 1 ListBox и элемент CommandButton. Установите свойство MultiSelect элемента ListBox в 1 или 2

    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Any) As Long
    Const LB_GETSELCOUNT = &H190
    Private Sub Form_Load()
    List1.AddItem "11"
    List1.AddItem "22"
    List1.AddItem "33"
    List1.AddItem "44"
    End Sub
    Private Sub Command1_Click()
    MsgBox SendMessage(List1.hwnd, LB_GETSELCOUNT, 0&, 0&)
    End Sub

    наверх

    Сохранение данных из ListBox'а в виде простого текста

    Данный пример отвечает на вопрос "Как мне сохранить данные из ListBox'а в файл на диске". Вот этот небольшой пример и отвечает на вопрос.

    Для выполнения данного примера вам понадобится элемент ListBox и элемент TextBox.

    Private Sub Command1_Click()
    Dim i
    For i = 1 To 10
    List1.AddItem "item" & i
    Next

    Dim text
    For i = 0 To List1.ListCount - 1
    text = text & List1.List(i) & vbCrLf
    Next
    Text1.text = text

    Dim FN As Integer
    FN = FreeFile
    Dim FName As String
    FName = "C:\1.txt"
    Open FName For Output As #FN
    Print #FN, Text1.text
    Close #FN
    End Sub

    наверх

    Поменять местами два рядом стоящих элемента

    Расположите на форме 2 элемента CommandButton и элемент ListBox.

    Private Sub Command1_Click()
    With List1
    If .ListIndex < 0 Then Exit Sub
    nItem = .ListIndex
    If nItem = 0 Then Exit Sub
    .AddItem .Text, nItem - 1
    .RemoveItem nItem + 1
    .Selected(nItem - 1) = True
    End With
    End Sub

    Private Sub Command2_Click()
    With List1
    If .ListIndex < 0 Then Exit Sub
    nItem = .ListIndex
    If nItem = .ListCount - 1 Then Exit Sub
    .AddItem .Text, nItem + 2
    .RemoveItem nItem
    .Selected(nItem + 1) = True
    End With
    End Sub

    Private Sub Form_Load()
    List1.AddItem "1"
    List1.AddItem "2"
    List1.AddItem "3"
    List1.AddItem "4"
    List1.AddItem "5"
    End Sub

    наверх

    Удалить повторящиеся элементы

    Расположите на форме элемент CommandButton и элемент ListBox.

    Private Declare Function SendMessageByString Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal sParam As String) As Long
    Const LB_FINDSTRINGEXACT = &H1A2

    Private Sub Command1_Click()
    For x = 0 To List1.ListCount - 1
    For y = 0 To List1.ListCount - 1
    ListPos = SendMessageByString(List1.hWnd, LB_FINDSTRINGEXACT, 0, List1.List(x))
    If ListPos <> x And ListPos <> -1 Then List1.RemoveItem ListPos
    Next y
    Next x
    End Sub

    Private Sub Form_Load()
    List1.AddItem "2"
    List1.AddItem "2"
    List1.AddItem "3"
    List1.AddItem "1"
    List1.AddItem "4"
    List1.AddItem "5"
    List1.AddItem "1"
    End Sub

    наверх

    3D-текст на форме

    Установите свойство формы AutoRedraw как True

    Private Sub Form_Load()
    Dim ShadowX
    Dim ShadowY
    ScaleMode = 3
    ForeColor = "&H808080"
    ShadowY = 5
    ShadowX = 5
    For I = 0 To 5
    CurrentX = ShadowX + I
    CurrentY = ShadowY + I
    If I = 5 Then Form1.ForeColor = vbWhite
    Form1.Print "3D Text!!!"
    Next
    End Sub

    наверх

    Загрузить/Сохранить текстовой файл из TextBox'а

    Данный пример вам поможет быстро сохранить информацию в файл на диске, а также загрузить данные в TextBox

    'Загрузить текстовой файл в TextBox

    Dim FN as Integer
    FN = FREEFILE
    Dim FName as String
    FName = "C:\tmp\index.txt"
    Open FName For Input As #FN
    Text1.Text = Input(LOF(FN), #FN)
    Close #FN

    'Сохранить текстовой файл из TextBox'а

    Dim FN as Integer
    FN = FREEFILE
    Dim FName as String
    FName = "C:\tmp\index.txt"
    Open FName For Output As #FN
    Print #FN, Text1.Text
    Close #FN

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Андрей

    Ответ ожидается по этому адресу

    Есть программа (ЕХЕ-файл) написаная мной как-то давненько. Все данные об этой прогрмамме утеряны. Есть ли возиожность каким то способом разобрать снова эту программу, для изменений. Если есть, намыльте как это делается.

    Автор вопроса: Витёк

    Ответ ожидается по этому адресу

    У кого есть 3D движок для VB,если можете пришлите буду очень рад, мне просто нужно понять принцип дей ствия и создания, размер до 1Мб шлите мне на мыло vera@post.vnt.ru

    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

    Как с помощью Drag'n'Drop перетащить файл ия проводника на форму программы для просмотра?

    Автор вопроса: DarkAngel

    Ответ ожидается по этому адресу

    1. В PictureBox, методом PaintPicture закинул рисунок. Как его сохранить в файл?
    2. Как получить свойства принтера. Т.е. вызвать родное окно с его родными свойствами?

    Автор вопроса: Жорж

    Ответ ожидается по этому адресу

    1. Как сделать так, чтобы какое-нибудь событие сопровождалось звуком, например при щелчке по кнопки раздавался сигнал.
    2. Не могу понять, как пользоваться элементом ProgressBar, мне надо, чтобы через каждые 10 секунд прибавлялось одно деление.

    Автор вопроса: Oleg

    Ответ ожидается по этому адресу

    Я вывожу три массива точек (красный, зеленый, синий) по координатам X, Y.
    Точки - это Shape().
    Как написать процедуру, которая принимала бы один из треж массивов, как объекты и присваивала им координаты.
    С координатами проблем нет. Проблема - передать объект в процедуру.

    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

    Суть вопроса такова: Как програмно изменять свойства звукового файла
    (*.WAV), такие как качество звука, частота, количество каналов (стерео - моно) и
    прочее.

    Ответы:

    Вопрос:

    Вот надо составить список имён в Textbox'е. Т.е. пользователь набирает имя, щёлкает Enter и прога загружает нужную форму.

    Ответ:

    Автор ответа: Андрей

    Вот надо составить список имён в Textbox'е. Т.е. пользователь набирает имя, щёлкает Enter и прога загружает нужную форму.

    Private Sub Form_KeyPress(KeyAscii As Integer)' Key Previev Формы поставь равным True.
    If KeyAscii = 13 Then Call Process
    End Sub

    Private Sub Process
    A=TextBox.Text
    Select Case A
    Case ' Где Form1 Твой текст.
    Form1.Show
    Case
    Form2.Show
    Case
    FormN...Show
    End Select
    End Sub

    Сам не проверял, но по моему так. Если нет, мыль, разберемся

    Вопрос:

    Как сделать так, что бы при нажатии на кнопку, моя программа сохранялась в заданый мною каталог?

    Ответ:

    Автор ответа: Мазов Сергей

    Я предлагаю сделать так:
    Предположим, path - переменная с исходным путем и program.exe - имя вашей программы.

    On Error Goto mist
    FileCopy App.Path & "\Program.exe", path & "\Program.exe"
    mist:

    Этот код встроить в процедуру нажатия кнопки.

    Вопрос:

    Все ваши советы ,к сожалению, не помогли:((((((
    Я имею в виду вопрос по гоночному симулятору на OpenGL .
    Оказывается ,что у ВБ с OpenGL не так просто как с директом - нужно какое-то
    ПО ,но я незнаю какое именно, и ,соответственно, где его взять!:((

    Ответ:

    Автор ответа: Dilon

    могу тебе скинуть на мыло называется opengl.tlb.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 124.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Поздравляю вас с Рождеством!
    Читайте!

    Содержание выпуска

    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на 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

    Дата: 05.01.2003 17:15 | Раздел: Примеры кода | Автор: Перминов Андрей

    Regex - Стандартные модули для работы с реестром могут читать и писать только REG_SZ и REG_DWORD значения, но в действительности их больше и их использование тоже необходимо. Этот пример содержит расширенный модуль для работы с реестром, поддерживающий ключи REG_BINARY, REG_EXPAND_SZ и REG_MULTI_SZ.

    Дата: 05.01.2003 10:44 | Раздел: Статьи по VB | Автор: Заостровцев Николай

    Microsoft Passport – для чего он нужен? - Статья о службе аутотентификации Microsoft Passport.

    Дата: 04.01.2003 17:14 | Раздел: ActiveX контролы | Автор: Skorodumov Aleksandr

    MenuX - Красивое меню.

    Дата: 04.01.2003 08:07 | Раздел: Статьи по VB | Автор: Калмыков Дмитрий Евгеньевич

    Как стать автором shareware программ - Статья посвящена созданию и распространению условно-бесплатных (shareware) программ.

    Дата: 03.01.2003 17:12 | Раздел: Примеры кода | Автор: Zeus

    TimerPlus - Программа отображает время. Также встроена функция будильника.

    Дата: 03.01.2003 16:27 | Раздел: Примеры кода | Автор: Millenium

    Как использовать MS Agent в проектах VB - Очень простой пример, того как можно использовать Microsoft Agent 2.0 (или ранние версии) в проектах Visual Basic/Visual Basic for Applications - Пример очень красиво показывает как работать с Агентами, какие команды они паддерживают, как заставить агента говорить, или анимировать его. Есть семплы! Ман надо только иметь Microsoft Windows Me (Millenium Edition) или же стандартный агент Merlin или Wizard.

    Дата: 02.01.2003 16:25 | Раздел: Примеры кода | Автор: Ловиков Миха

    LASHscreen - Просто и коротко - скринсейвер.

    Дата: 01.01.2003 16:25 | Раздел: Примеры кода | Автор: Ловиков Миха

    LASHpass2 - Сниффер паролей. Просто, но эффективно.

    Дата: 31.12.2002 16:23 | Раздел: Примеры кода | Автор: Nick Demchenko

    Оператор цикла - Программа находит все натуральные числа, меньшие чем N, для которых выполняется соотношение a2 + b2 = c2

    Дата: 30.12.2002 16:20 | Раздел: Примеры кода | Автор: Silent_Sky

    CRC 32 - Подсчет CRC - суммы 32-бит. файла или строки

    Дата: 29.12.2002 16:20 | Раздел: Примеры кода | Автор: Silent_Sky

    CRC 16 - Подсчет суммы CRC строк и 16 разрядных файлов

    Последние 20 тем форума на VBNet.Ru:

    15:07 / 5 янв. АДМИНУ: ПРОСТИТЕ МЕНЯ!!! - Я БОЛЬШЕ НЕ БУ... | Хитов: 5 | Ответов: 0
    15:04 / 5 янв. Внешний вид | Хитов: 5 | Ответов: 0
    14:41 / 5 янв. П Р О Б Л Е М А ! ! ! | Хитов: 10 | Ответов: 1
    14:35 / 5 янв. Крик души DBGrid v 5.00.3714 | Хитов: 3 | Ответов: 0
    14:25 / 5 янв. Menu | Хитов: 7 | Ответов: 0
    14:13 / 5 янв. Где есть драйверы для плоттера Deskjet HP750 C/... | Хитов: 3 | Ответов: 0
    12:33 / 5 янв. Админам | Хитов: 13 | Ответов: 2
    12:32 / 5 янв. Где можно качнуть ... | Хитов: 11 | Ответов: 0
    09:46 / 5 янв. B | Хитов: 20 | Ответов: 3
    07:36 / 5 янв. Сволочи, которая гадит на форуме | Хитов: 35 | Ответов: 1
    03:41 / 5 янв. Срочно! В Access проблема с FlexGrid! Беда прямо! | Хитов: 11 | Ответов: 0
    02:01 / 5 янв. IIS | Хитов: 10 | Ответов: 0
    01:30 / 5 янв. ADODC | Хитов: 13 | Ответов: 1
    22:59 / 4 янв. RichTextBox problem... | Хитов: 12 | Ответов: 0
    21:52 / 4 янв. IBASIC | Хитов: 15 | Ответов: 1
    18:39 / 4 янв. Как обновить экран? | Хитов: 20 | Ответов: 1
    18:08 / 4 янв. В какие Windows входит msvbvm60.dll | Хитов: 35 | Ответов: 6
    16:45 / 4 янв. Как на форме сделать еффект снега (как у вас на... | Хитов: 47 | Ответов: 4

    Последние поступления в Библиотеку кодов:

    Новости от VBNet-чиков!:

    11:18 / 26 дек. Иван сообщает: 9 декабря корпорация Microsoft провела конференцию для создателей программного обеспечения; на ней представители компании обнародовали информацию о новых функциях пакета Office 11, в котором нашел применение широкий спектр возможностей языка XML. На конференции был представлен набор для разработчиков ПО под кодовым названием Visual Studio Tools for Office. Инструменты Visual Studio Tools for Office позволят программистам, работающим в Microsoft's Visual Basic .Net и C# .Net, создавать специализированные приложения для Word и Exсel, используя XML. По сообщению Microsoft, разработчики получат полный доступ ко всем функциям Visual Studio .Net 2003, включая редактор и отладочную среду, а также инструменты для создания пользовательских интерфейсов и компонентов серверного ПО.

    15:26 / 25 дек. Иван сообщает: Компания Microsoft объявила о планах развития среды Visual Studio .NET. Одним из основных направлений совершенствования Visual Studio .NET, по утверждению представителей Microsoft, остаётся создание средств, с помощью которых разработчики смогут использовать новые возможности платформы Windows. В 2003-2004 годах Microsoft планирует синхронизировать выпуск новых версий Visual Studio .NET c выходом новых операционных систем. Пакет Visual Studio .NET для Windows .NET Server, получивший кодовое название Everett, обеспечивает обратную совместимость с платформами Windows 2000 и Windows XP.
    Представители Microsoft утверждают, что в Visual Studio Everett существенно переработан компилятор Visual C++, что позволяет с легкостью портировать исходный код в компиляторы C++ для UNIX-совместимых платформ. Кроме того, в новый пакет войдет среда разработчика на Java - Microsoft Visual J# .NET.
    В дальнейшем, с выходом операционной системы Windows под кодовым названием Longhorn, в Visual Studio будут внесены аналогичные изменения, направленные на теснейшую интеграцию среды разработчика с новой платформой.

    09:44 / 25 дек. User Unknown сообщает: и информирует всех тех, кого заинтересовала новость от Ивана Шатрыкина.
    Небезызвестная фирма AppForge объявила о поддержке Dell'овских хенд-платформ. AppForge - занимается разработкой и распространением своей среды разработки и портировании VB кода на PocketPC, Palm OS, Symbian, Handspring, iPAQ, Jornada, Symbol scanners, Nokia 9210/9290 Communicator, а теперь и Dell Axim. Стоимость пакета составляет всего 899 американских рублей. Полную триальную версию на 20М или только ограниченную до Palm OS на 10М можно взять отсюда.

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Новости сайта MSDN

    наверх

    Новости сайта GotdotNet

    • 30.12.2002 - Конкурс для разработчиков России и СНГ на лучшую программу для карманных компьютеров
      Обратите внимание, что в рамках конкурса предусмотрены отдельные призы за лучшую реализацию технологии "Mobile Internet Toolkit" и за лучшую реализацию технологии ".NET Compact Framework".

    Новые статьи:

    • 30.12 - Принципы безопасного кодирования для .NET Framework
    • 30.12 - Печать отчетов в Windows-формах
    • 30.12 - Редистрибуция .NET Framework

    наверх

    Новости сайта dotSite

    Новые статьи:

    Новые примеры:

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: slaughter

    Ответ ожидается по этому адресу

    Я еще новичек в VB, поэтому можетэто и глупый вопрос, но как обратиться к элементу строки стоящим под n-ым номером?

    Автор вопроса: LexA

    Ответ ожидается по этому адресу

    Где можно вяять инфу по работе с DirectX'ом.

    Автор вопроса: lom

    Ответ ожидается по этому адресу

    Не подскажите мне ссылочку, где подробно расскаяывается об объекте Shell.

    Автор вопроса: Святослав

    Ответ ожидается по этому адресу

    Есть код, позволяющий создать окно произвольной формы.
    В Win9x/Me все работает как положено, а в Win XP ненужные участки формы не обрезаются, т.е. на экране форма имеет вид прямоугольника. Кто подскажет, в чем дело?
    Код программы привожу:

    Option Explicit

    'Объявляем API-функцию, которая так сказать
    'накладывает созданный регион на окно (те
    'части которые остались за пределами
    'региона исчезают), где: hwnd - идентифика-
    'тор окна, на котором нужно "выдавить"
    'форму, hRgn - "формочка" для окна,
    'bRedraw - перерисовывать ли окно после
    '"выдавления".

    Private Declare Function SetWindowRgn _
    Lib "user32" (ByVal hwnd As Long, _
    ByVal hRgn As Long, ByVal bRedraw As _
    Boolean) As Long

    'Объявляем API-функцию чтобы создать
    'регион-"формочку" (состоит регион из n-ого
    'количества точек, которое необходимо
    'задать), где: lpPoint - первая точка
    'региона, nCount - количество точек,
    'nPolyFillMode - описание метода заливки
    'полигона.

    Private Declare Function CreatePolygonRgn _
    Lib "gdi32" (lpPoint As POINTAPI, _
    ByVal nCount As Long, ByVal _
    nPolyFillMode As Long) As Long

    'Объявляем тип для описания координат
    'каждой точки

    Private Type POINTAPI
    x As Long
    y As Long
    End Type

    'Объявляем массив P по типу POINTAPI

    Dim P(128) As POINTAPI

    Private Sub Form_Load()
    'Присвоим свойству Picture формы такого
    'же вида свойство
    Picture = Image1

    'Записываем код для каждой точки,
    'описывающий её координаты в пикселах

    P(0).x = 448: P(0).y = 25
    P(1).x = 97: P(1).y = 45
    P(2).x = 98: P(2).y = 33

    'Тут задаются координаты точек от 3 до 125

    P(126).x = 90: P(126).y = 43
    P(127).x = 93: P(127).y = 45
    P(128).x = 448: P(128).y = 25

    'Объявляем переменную, содержащую
    'регион

    Dim Rgn As Long

    'Создаём регион

    Rgn = CreatePolygonRgn(P(0), 128, 0)

    '"Выдавливем форму"

    Call SetWindowRgn(hwnd, Rgn, True)

    End Sub

    Автор вопроса: ALEX

    Ответ ожидается по этому адресу

    А можно ли как-то узнать название (букву) CD-ROM'а?

    Автор вопроса: Виктор

    Ответ ожидается по этому адресу

    Как русифицировать VDM (Visdata) в VВ6?

    Автор вопроса: Rolling

    Ответ ожидается по этому адресу

    Помогите решить данную задачу по информатике на VB
    Условие:
    Составить таблицу и график функции
    f (x) = a * Sin (x ^ b), при
    a < = x < = b,
    f (x) = ArcSin((a + b)/a * b), при
    b < x < = c.
    Величины a, b, c вводятся произвольно. Таблица и график выдаются на печать совместно.

    Автор вопроса: Вося

    Ответ ожидается по этому адресу

    Как програмно поставить на папку пароль?

    Автор вопроса: Вася

    Ответ ожидается по этому адресу

    Как зделать так чтобы моя программа запускалась один раз, а когда программа запускалась второй раз требовала пароль???

    Автор вопроса: Гаргоша

    Ответ ожидается по этому адресу

    Ворд Basic. Не получается программно встроить поле в PivotTable1.Как правильно прописать

    PivotTable1.ActiveView.RowAxis.InsertFieldSet (???)

    Автор вопроса: Игорь

    Ответ ожидается по этому адресу

    Подскажите, как в тексте программы задать св-во MouseIcon? Что-то в хелпах по этому поводу ничего нет.

    Автор вопроса: Dmitriy

    Ответ ожидается по этому адресу

    Подскажите как создать или удалить строковый параметр в реестре, например в
    автозагруяке.

    Автор вопроса: Алексей Хлыбов

    Ответ ожидается по этому адресу

    Как удалить директорию с находящимися в ней файлами без возможности их последующего восстановления с помощью различных утилит.

    Автор вопроса: andre

    Ответ ожидается по этому адресу

    Господа, помогите в Access 2000 на модуле поставил пароль и забыл, можно ли как-то снять его.

    Автор вопроса: Tort

    Ответ ожидается по этому адресу

    1. Можно ли зделать прозрачную форму? Если да то как? (BackColor - прозрачный)
    2. Как Получить управление с помощью колесика мышы?

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    На новых клавиатурах есть клавиши которые, выключают и переводят в ждучий режим. Часто находятся сверху клавиатуры. Как заблокировать их? Очень надо. Или скажите какая программа это делает!

    Ответы:

    Вопрос:

    У кого есть 3D движок для VB,если можете пришлите буду очень рад, мне просто нужно понять принцип дей ствия и создания, размер до 1Мб шлите мне на мыло vera@post.vnt.ru

    Ответ:

    Автор ответа: Dr.Max

    есть такой сайт !!
    www.fridas.ru/anti/wrote

    Вопрос:

    1. В PictureBox, методом PaintPicture закинул рисунок. Как его сохранить в файл?
    2. Как получить свойства принтера. Т.е. вызвать родное окно с его родными свойствами?

    Ответ:

    Автор ответа: Андрей

    На форме устанавливаешь CommonDialog Control c именем сd

    Private Sub Комманда1_Click()
    On Error GoTo procerror

    cd.ShowPrinter
    'cd = 5 то же самое

    procerror:
    Exit sub
    End Sub

    Ответ:

    Автор ответа: Dr.Max

    1) Picture1.picture=picture1.image :
    savepicture(picture1.picture,"kuda-nit")

    Вопрос:

    1. Как сделать так, чтобы какое-нибудь событие сопровождалось звуком, например при щелчке по кнопки раздавался сигнал.
    2. Не могу понять, как пользоваться элементом ProgressBar, мне надо, чтобы через каждые 10 секунд прибавлялось одно деление.

    Ответ:

    Автор ответа: Loki

    1.Для звукового сопроваждения пишиш код для проигрывания файла! Если нужен пример пиши мне или зайди на мой сайт www.vbrain.narod.ru

    2.Ложишь на форму ProgressBar и присваиваешь ему имя Pbr можешь другое, далееш ложиш таймер и ставишь интервал 10000 и пишишь следующий код:

    pbr.value =pbr.value +5 ' Можешь место пяти свое число поставить

    Да кстати как ProgressBar дойдет до 100 вылетит ошибка советую в начале перед

    pbr.value =pbr.value +5

    написать

    if pbr.value=>100 then timer1.enabled=False

    Вопрос:

    Суть вопроса такова: Как програмно изменять свойства звукового файла
    (*.WAV), такие как качество звука, частота, количество каналов (стерео - моно) и
    прочее.

    Ответ:

    Автор ответа: Dr.Max

    vbstreets.da.ru
    В разделе "Статьи на английском "

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 125.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта 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!!!

    Несколько слов от автора:

    Господа! Материалы для рассылки скоро закончаться! У кого есть хорошие коды, достойные появления на сайте VBNet.Ru и в этой рассылке, просьба присылать мне. Особенно буду рад кодам Visual Basic .Net.
    Читайте!

    Содержание выпуска

    • Книги

    • Как заблокировать стандартное контекстное меню
    • Изменение вида каретки
    • Запретить ввод определенных символов
    • Как вернуться на то же место, при потере фокуса
    • Как очистить все TextBox'ы на форме
    • Добавить новую линию в существующий текст элемента TextBox

    • Вопрос/Ответ

    Книги

    Переход на 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 можно найти здесь.

    наверх

    Как заблокировать стандартное контекстное меню

    Данный пример покажет, как можно заблокировать стандартное контекстное меню элемента TextBox. Расположите на форме TextBox, а также создайте невидимое меню mnuText и как минимум одно подменю. Запустите проект, нажмите правой клавишей мыши на TextBox'е...

    Private Declare Function LockWindowUpdate Lib "User32" (ByVal hwndLock As Long) As Long
    Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = vbRightButton Then
    LockWindowUpdate Text1.hWnd
    Text1.Enabled = False
    DoEvents
    PopupMenu mnuText
    Text1.Enabled = True
    LockWindowUpdate 0&
    End If
    End Sub

    наверх

    Изменение вида каретки

    Вы знаете, что такое каретка? Это та вертикальная палочка, котрая постоянно мигает в любом текстовом редакторе, когда вы набираете какой-либо текст, и она медленько так передвигается вместе с вашими буковками по экрану. Этот небольшой пример покажает, как изменить вид этой самой каретки.

    В изменении вида каретки принимает участие API-функция CreateCaret

    Declare Function CreateCaret Lib "user32" (ByVal hwnd As Long, ByVal hBitmap As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long

    ByVal hwnd - обозначает хэндл окна, в котором меняется вид каретки
    ByVal hBitmap - обозначет цвет каретки
    ByVal nWidth - ширина каретки
    ByVal nHeight - высота каретки

    Следующий пример покажет различные способы изменения вида каретки

    Добавьте на форму 1 PictureBox и 3 TextBox'а. Загрузите в элемент PictureBox bmp-файл. Запустите проект на выполнение, нажимайте ТАБУЛЯТОР и смотрите, как меняется вид каретки.

    Private Declare Function CreateCaret Lib "user32" (ByVal hwnd As Long, ByVal hBitmap As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
    Private Declare Function ShowCaret Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function GetFocus Lib "user32" () As Long
    Private Sub Text1_GotFocus()
    h& = GetFocus&()
    b& = Picture1.Picture
    Call CreateCaret(h&, b&, 10, 10)
    x& = ShowCaret&(h&)
    End Sub
    Private Sub Text2_GotFocus()
    h& = GetFocus&()
    'Измените на ваше усмотрение цифры 15, 15, которые обозначают ширину и высоту каретки
    Call CreateCaret(h&, 0, 15, 15)
    x& = ShowCaret&(h&)
    End Sub
    Private Sub Text3_GotFocus()
    h = GetFocus()
    Call CreateCaret(h, 0, 3, 24)
    x = ShowCaret(h)
    End Sub

    наверх

    Запретить ввод определенных символов

    Private Sub Text1_KeyPress(KeyAscii As Integer)
    Dim sTemplate As String
    'Replace the '!@#$%^&*()_+=' какие символы игнорировать
    sTemplate = "!@#$%^&*()_+="
    If InStr(1, sTemplate, Chr(KeyAscii)) > 0 Then KeyAscii = 0
    End Sub

    наверх

    Как вернуться на то же место, при потере фокуса

    Dim x
    Private Sub Text1_GotFocus()
    On Error Resume Next
    Text1.SelStart = x
    End Sub
    Private Sub Text1_LostFocus()
    x = Text1.SelStart
    End Sub

    наверх

    Как очистить все TextBox'ы на форме

    Добавьте на форму несколько элементов TextBox и CommandButton

    Private Sub Command1_Click()
    Dim Contrl As Control
    For Each Contrl In Form1.Controls
    If (TypeOf Contrl Is TextBox) Then Contrl.Text = ""
    Next Contrl
    End Sub

    наверх

    Добавить новую линию в существующий текст элемента TextBox

    Добавить Command Button на форму

    Private Sub Command1_Click()
    Dim NewText As String
    With Text1
    'replace 'My New Text' with the Text you want to add
    NewText = "My New Text"
    .SelStart = Len(.Text)
    .SelText = vbNewLine & NewText
    End With
    End Sub
    Private Sub Form_Load()
    Text1.Text = "My Initial Text"
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Mirus

    Ответ ожидается по этому адресу

    Как проиграть midi файл находящийся в файле ресурсов не сохраняя его на диск?

    Автор вопроса: I hate the fucking world

    Ответ ожидается по этому адресу

    Люди кто знает как определить серийный номера жесткого диска? Именно ЖД, о не логического диска С, D и т.д., т.к. после форматирования номера логических дисков изменяются.Очень срочно

    Автор вопроса: alek

    Ответ ожидается по этому адресу

    А возможно ли закрыть из VB окно сеанса ДОС?

    Автор вопроса: goodroman

    Ответ ожидается по этому адресу

    1) где взять MSDN на русском или хотя бы описание любых API-функций (на
    русском)
    2) Если на первый вопрос ответа нет, то помогите разобраться с функцией GetClassName(1,2,3). Первое яначение я знаю чё значит, а второе и третье
    нет. Помогите пожайлуста.
    3) Чё означает встроенная VB функция String$() и Left$()

    Автор вопроса: Daniel Zaharov

    Ответ ожидается по этому адресу

    Стоит задача создания «среды разработки» (возможно на VB), т.е. есть панель инструментов, взял нужный и поставил в нужном месте (как в VB, например). Кроме того, данная среда должна быть ориентирована на построение моделей, а именно один блок генерирует событие, другой –накапливает, третий – принимает на себя и т.д. Есть идея создать контролы, выполняющие данные функции. Может кто что посоветует, буду очень благодарен.

    Автор вопроса: Виталий

    Ответ ожидается по этому адресу

    Подскажите как сделать оформление в силе ХР под Win2k или в Win9x.

    Автор вопроса: goodroman

    Ответ ожидается по этому адресу

    Где можно раядобыть описание API-функций для реестра (желательно на русском)? И вообще есть какой-нить русскоязычный сайт посвящённый АПИ-функциям или где они рассматриваются?

    Ответы:

    Вопрос:

    Есть программа (ЕХЕ-файл) написаная мной как-то давненько. Все данные об этой прогрмамме утеряны. Есть ли возиожность каким то способом разобрать снова эту программу, для изменений. Если есть, намыльте как это делается.

    Ответ:

    Автор ответа: I hate the fucking world

    Просто, но тебе необходимо знать ASM на 50-99% ты ее просто дизасемблиш и смотриш код.

    Ответ:

    Автор ответа: Neutral

    Единственный способ - это использовать дизассемблер, но там без знаний acm'а не обойтись. Ну можно еще попытаться найти утилиты для перевода кода ассемблера в VB, но я не уверен если для перевода в VB(в Delphi и С есть) и на 100% они тебе ничего не переведут. Так что лучше садись вспоминай что ты там напрограммил и пиши снова.

    Вопрос:

    1. В PictureBox, методом PaintPicture закинул рисунок. Как его сохранить в файл?
    2. Как получить свойства принтера. Т.е. вызвать родное окно с его родными свойствами?

    Ответ:

    Автор ответа: Саша Карамнов

    SavePicture ИмяОбъекта.Picture, "ПутьСКонечным файлом"

    Пример:

    SavePicture Picture1.Picture, "C:\Picture.bmp"

    Вопрос:

    1. Как сделать так, чтобы какое-нибудь событие сопровождалось звуком, например при щелчке по кнопки раздавался сигнал.
    2. Не могу понять, как пользоваться элементом ProgressBar, мне надо, чтобы через каждые 10 секунд прибавлялось одно деление.

    Ответ:

    Автор ответа: I hate the fucking world

    На форму ставиш таймер с интервалом 10000 в коде пишеш

    progressbar1.value=progressbar1.value+1

    и все

    Вопрос:

    Я еще новичек в VB, поэтому можетэто и глупый вопрос, но как обратиться к элементу строки стоящим под n-ым номером?

    Ответ:

    Автор ответа: Nechaev Sergey

    Чтобы получить символ N из строки надо использовать функцию Mid

    Mid(строка, начало извлекаемой подстроки, ее длина)

    Например дана строка Привет

    Mid("Привет", 3, 2)

    даст подстроку "ве" (я мог ошибиться но примерно так)
    Чтобы получить энный символ укажи Начало=N, длинна=1.

    Ответ:

    Автор ответа: Neutral

    Просто используй функцию Mid. Ее синтаксис:

    Mid(строка, начало выделения, длина выделения)

    То есть если тебе надо обратиться например к 10 элементу строки stroka ты пишешь:

    Mid(stroka, 10, 1)

    Этим ты выделишь один 10 элемент строки stroka.

    Ответ:

    Автор ответа: Luza

    newstr = mid(yourstr,n,m)

    newstr - фрагмент строки
    yourstr - исхдная строка
    n - с какого символа (по счету) начинать вырезать
    m - сколько символов вырезать

    Пример:

    yourstr="Никомунекабельность"
    newstr=mid(yourstr,4,6)
    Print newstr 'newstr="омунек"

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Я, конечно, понимаю, что новичкам не очень просто общаться с "продвинутыми" программистами, но в вопросе можно было указать, к элементу чего тебе нужнго обратиться.

    Обратиться к n-ому элементу в массиве:

    strText=strArray(n)

    где
    StrText - переменная, в которую поместится текст
    atrArray - массив переменных

    Обратиться к n-ому элементу в ListBox'е:

    strText=lstText.list(n)

    где
    strText - переменная, в которую поместится текст
    lstText - твой ListBox
    Внимание! нумерация начинается с 0

    Если ты не нашел ответа на свой вопрос, можешь написать мне - Artyom_kr@mail.ru. Рекомендую подписаться к конференции СообЧа - VB. Там тебе дадут ответы на все твои вопросы. Подписать ся можно, отправив пустое письмо по этому адрессу: VB-on@soobcha.org

    Ответ:

    Автор ответа: Alexander

    Функция Mid.

    Вопрос:

    Где можно вяять инфу по работе с DirectX'ом.

    Ответ:

    Автор ответа: Артем Кривокрисенко

    www.msdn.microsoft.com - первоисточник информации по программированию. О DirectX там тоже есть инфа.
    Диски MSDN. У меня MSDN за январь 2001. там весь четвертый компакт посвящен DirectX (DirectX SDK(сам не знаю, что это такое), хэлп и примеры (есть для Visual C++ и даже для VB))
    www.vbstreets.ru - здесь есть несколько исходников.

    Вопрос:

    Есть код, позволяющий создать окно произвольной формы.
    В Win9x/Me все работает как положено, а в Win XP ненужные участки формы не обрезаются, т.е. на экране форма имеет вид прямоугольника. Кто подскажет, в чем дело?
    Код программы привожу:

    Option Explicit

    'Объявляем API-функцию, которая так сказать
    'накладывает созданный регион на окно (те
    'части которые остались за пределами
    'региона исчезают), где: hwnd - идентифика-
    'тор окна, на котором нужно "выдавить"
    'форму, hRgn - "формочка" для окна,
    'bRedraw - перерисовывать ли окно после
    '"выдавления".

    Private Declare Function SetWindowRgn _
    Lib "user32" (ByVal hwnd As Long, _
    ByVal hRgn As Long, ByVal bRedraw As _
    Boolean) As Long

    'Объявляем API-функцию чтобы создать
    'регион-"формочку" (состоит регион из n-ого
    'количества точек, которое необходимо
    'задать), где: lpPoint - первая точка
    'региона, nCount - количество точек,
    'nPolyFillMode - описание метода заливки
    'полигона.

    Private Declare Function CreatePolygonRgn _
    Lib "gdi32" (lpPoint As POINTAPI, _
    ByVal nCount As Long, ByVal _
    nPolyFillMode As Long) As Long

    'Объявляем тип для описания координат
    'каждой точки

    Private Type POINTAPI
    x As Long
    y As Long
    End Type

    'Объявляем массив P по типу POINTAPI

    Dim P(128) As POINTAPI

    Private Sub Form_Load()
    'Присвоим свойству Picture формы такого
    'же вида свойство
    Picture = Image1

    'Записываем код для каждой точки,
    'описывающий её координаты в пикселах

    P(0).x = 448: P(0).y = 25
    P(1).x = 97: P(1).y = 45
    P(2).x = 98: P(2).y = 33

    'Тут задаются координаты точек от 3 до 125

    P(126).x = 90: P(126).y = 43
    P(127).x = 93: P(127).y = 45
    P(128).x = 448: P(128).y = 25

    'Объявляем переменную, содержащую
    'регион

    Dim Rgn As Long

    'Создаём регион

    Rgn = CreatePolygonRgn(P(0), 128, 0)

    '"Выдавливем форму"

    Call SetWindowRgn(hwnd, Rgn, True)

    End Sub

    Ответ:

    Автор ответа: RaZoom

    Не пробовал после

    Rgn = CreatePolygonRgn(P(0), 128, 0)

    вставить строку

    Debug.Print Rgn

    А дело в том, что полигон не создается из-за некорректного вызова функции. Надо так:

    Rgn = CreatePolygonRgn(P(0), 128, ALTERNATE)

    или

    Rgn = CreatePolygonRgn(P(0), 128, WINDING)

    но не 0. Для справки:

    Const ALTERNATE = 1
    Const WINDING = 2

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Все дело в том, что вызывая функцию CratePolyRgn ты ставишь третий параметр, определяющий режим создания региона, 0. Поэтому эта функция возвращает 0 (то есть, произошла ошибка). Ставить необходимо один из следующих режимов:

    Public Const ALTERNATE = 1 'Пересекающиеся области региона "выколоты" не будут
    Public Const WINDING = 2 'Пересекающиеся области региона будут "выколоты"

    То есть, напиши:

    Rgn = CreatePolygonRgn(P(0), 128, ALTERNATE)

    или

    Rgn = CreatePolygonRgn(P(0), 128, WINDING)

    Очевидно, в 98-й не требубуется специально указывать этот параметр, а в XP - обязательно

    Ответ:

    Автор ответа: Vir

    Место:

    Rgn = CreatePolygonRgn(P(0), 128, 0)

    надо писать:

    Rgn = CreatePolygonRgn(P(0), 128, 1)

    И добавь после кода:

    DeleteObject Rgn

    (очищает память)

    Вопрос:

    А можно ли как-то узнать название (букву) CD-ROM'а?

    Ответ:

    Автор ответа: Luza

    Ставь на форму DriveListBox и кнопку. Теперь впиши код:

    Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long

    Private Sub Command1_Click()
    For t = 0 To Drive1.ListCount - 1
    drive_name = Left(Drive1.List(t), 2) & "\"
    If GetDriveType(drive_name) = 5 Then MsgBox "Drive " & drive_name & " is CDROM"
    '0 - не удалось определить тип
    '1 - корневой директории диска не сущ.
    '2 - гибкий диск
    '3 - жесткий диск
    '4 - сетевой диск
    '5 - CDROM
    '6 -RAM - диск(виртуальный)
    Next t
    End Sub

    Вопрос:

    Как зделать так чтобы моя программа запускалась один раз, а когда программа запускалась второй раз требовала пароль???

    Ответ:

    Автор ответа: Murat Shonov

    Можешь использовать запись в реестре или ини-файле глубоко в винде.
    Для реестра код простой: записать при первой загрузке, а потом проверять если ключ есть то требовать пароль

    SaveSetting "Имя_приложения", "Секция", "Ключ", "Установка"

    считывать

    n = GetSetting("Имя_приложения", "Секция", "Ключ", "Значение_по_умолчанию")

    Значение по умолчанию используется если такого ключа нет.
    Можно в разные места поназасовывать ключей типа от разных программ, а то юзеры сильно умными стали.
    А с ини сложнее там надо через АПИ функции. Но если надо пиши muha@land.ru

    Ответ:

    Автор ответа: RaZoom

    Это тебе поможет:

    If App.PrevInstance = True Then ...

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Снова неточная формулировка вопроса. Непонятно, что нужно сделать: отслеживатьвторой запуск программы ВООБЩЕ, или запуск программы, если копия этой программы уже запущена. Отвечаю на оба вопроса:

    1) При запуске программы проверим, запускалась ли программа хоть раз (попробуем считать из реестра этот параметр)

    Sub Form_Load()
    dim boolWasLoaded as boolean
    dim strPassword as string

    boolWasLoaded=iif( _
    GetSetting (App.Path,"Options","WasLoaded","NO")="YES",True,False)

    if boolWasLoaded then
    'Спрашиваем пароль
    strPassword=inputbox("Введите пароль!")
    'Если пароль неверен, выходим
    if strPassword <> "Hello" then end
    Else
    'Записываем в реестре, что программа уже была запущена
    SaveSetting app.path, "Options","WasLoaded","YES"
    end if
    end sub

    2) При запуске программы проверяем, заущена ли уже копия этой программы

    Sub Form_Load()
    dim boolWasLoaded as boolean
    dim strPassword as string

    boolWasLoaded=app.PrevInstance
    'Далее по той же схеме

    if boolWasLoaded then
    'Спрашиваем пароль
    strPassword=inputbox("Введите пароль!")
    'Если пароль неверен, выходим
    if strPassword <> "Hello" then end
    end if
    end sub

    Этот код не идеален. Продвинутый пользователь легко постаит значение "NO" в реестре. Но это уже вопросы шифрования и защиты.

    Ответ:

    Автор ответа: Rutshtein Alex

    Используй в Form_Load() свойство App.PrevInstance, собствеено если оно true, то твоя программа уже запущена и можешь спрашивать пароль.

    Вопрос:

    Подскажите, как в тексте программы задать св-во MouseIcon? Что-то в хелпах по этому поводу ничего нет.

    Ответ:

    Автор ответа: RaZoom

    Me.MousePointer = vbCustom
    Me.MouseIcon = LoadPicture("<Путь_к_файлу_курсора>")

    Ответ:

    Автор ответа: Luza

    Вот, например:

    Private Sub Form_Load()
    Form1.MouseIcon = Picture1.Picture
    Form1.MousePointer = 99 'Иконка пользователя
    End Sub

    Ответ:

    Автор ответа: Артем Кривокрисенко

    ТвойКонрол.MouseIcon=ТвойIcon.

    ТвойIcon - это твоя иконка. Это может быть свойство Picture какого-то контрола. Но туда должна быть загружена иконка. Можно загрузить картинку из файла - используй функцию LoadPicture.

    Вопрос:

    Подскажите как создать или удалить строковый параметр в реестре, например в
    автозагруяке.

    Ответ:

    Автор ответа: Luza

    'Registry keys
    Public Const HKEY_CLASSES_ROOT = &H80000000
    Public Const HKEY_CURRENT_USER = &H80000001
    Public Const HKEY_LOCAL_MACHINE = &H80000002
    Public Const HKEY_USERS = &H80000003
    Public Const HKEY_PERFORMANCE_DATA = &H80000004
    Public Const HKEY_CURRENT_CONFIG = &H80000005
    Public Const HKEY_DYN_DATA = &H80000006

    'Registry access constants
    Public Const KEY_QUERY_VALUE = &H1 'Permission to query subkey data.
    Public Const KEY_SET_VALUE = &H2 'Permission to set subkey data.
    Public Const KEY_CREATE_SUB_KEY = &H4
    Public Const KEY_ENUMERATE_SUB_KEYS = &H8
    Public Const KEY_NOTIFY = &H10
    Public Const KEY_CREATE_LINK = &H20
    Public Const KEY_READ = KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY
    Public Const KEY_WRITE = KEY_SET_VALUE Or KEY_CREATE_SUB_KEY
    Public Const KEY_ALL_ACCESS = KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_SUB_KEY Or KEY_CREATE_LINK Or KEY_SET_VALUE

    Public Const REG_OPTION_NON_VOLATILE = 0&
    Public Const REG_OPTION_VOLATILE = &H1

    Public Type SECURITY_ATTRIBUTES
    nLength As Long
    lpSecurityDescriptor As Long
    bInheritHandle As Long
    End Type

    Public Enum RegTypes
    RegNonee = 0
    RegSZ = 1
    RegExpandSz = 2
    RegBinary = 3
    RegDword = 4
    RegDwordLittleEndian = 4
    RegDwordBigEndian = 5
    RegLink = 6
    RegMultiSz = 7
    RegResourceList = 8
    RegFulResourceDesc = 9
    End Enum

    Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
    Declare Function RegSetValueEx Lib "advapi32" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal szData As String, ByVal cbData As Long) As Long
    Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long
    Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal szData As String, ByRef lpcbData As Long) As Long
    Declare Function RegCreateKeyEx Lib "advapi32" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, phkResult As Long, lpdwDisposition As Long) As Long

    Public Function RegGetValue(Root As Long, SubKey As String, Key As String) As String
    Dim Buffer As String, hKey As Long, nType As Long, nSize As Long
    RegGetValue = ""
    If Not RegOpenKeyEx(Root, SubKey, 0, KEY_READ, hKey) Then
    nSize = 0
    RegQueryValueEx hKey, Key, 0, nType, Buffer, nSize
    If hKey And nSize > 0 And nType = RegSZ Then
    Buffer = Space(nSize + 1)
    RegQueryValueEx hKey, Key, 0, nType, Buffer, nSize
    RegGetValue = Left(Buffer, nSize - 1)
    RegCloseKey hKey
    End If
    End If
    End Function

    Public Sub RegSetValue(Root As Long, SubKey As String, Key As String, value As String)
    Dim hKey As Long, sa As SECURITY_ATTRIBUTES, nDisp As Long
    If Not RegCreateKeyEx(Root, SubKey, 0, vbNull, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, sa, hKey, nDisp) Then
    RegSetValueEx hKey, Key, 0, RegSZ, value, Len(value) + 1
    RegCloseKey hKey
    End If
    End Sub

    Использование:

    sUser = RegGetValue(HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion", "RegisteredOwner")
    RegSetValue HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion", "RegisteredOwner", "Darth Vader"

    Ответ:

    Автор ответа: Артем Кривокрисенко

    На сайте www.vbnet.ru есть целая статья по этому поводу.

    Вопрос:

    1. Можно ли зделать прозрачную форму? Если да то как? (BackColor - прозрачный)
    2. Как Получить управление с помощью колесика мышы?

    Ответ:

    Автор ответа: Ревягин_Алексей

    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal _
    hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

    Const WS_EX_TRANSPARENT& = &H20& ' окно является прозрачным и не скрывает окна под собой

    Dim tmplong1 As Long

    SetWindowLong Me.hwnd, -20, tmplong1 Or WS_EX_TRANSPARENT&
    Me.Height = Me.Height - 10
    Me.Height = Me.Height + 10

    Ответ:

    Автор ответа: Артем Кривокрисенко

    На сайте www.vbnet.ru есть статья и по этому поводу.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 126.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Поздравляю вас с наступающим Старым Новым годом!!!!
    Читайте!

    Содержание выпуска

    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на 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

    Дата: 12.01.2003 06:14 | Раздел: Примеры кода | Автор: Половый Александр

    Пасьянс "Тройка" - Реализация пасьянса "Тройка" на Visual Basic.

    Дата: 12.01.2003 06:11 | Раздел: ActiveX контролы | Автор: Alex_L

    Registry - DLL для работы с реестром.

    Дата: 11.01.2003 06:11 | Раздел: ActiveX контролы | Автор: Alex_L

    INI - DLL для работы с INI-файлами.

    Дата: 11.01.2003 06:10 | Раздел: ActiveX контролы | Автор: Alex_L

    FFile - DLL для работы с файлами и каталогами - создание, копирование, удаление, получение информации и т.д.

    Дата: 10.01.2003 17:26 | Раздел: Примеры кода | Автор: sne

    Работа с меню средствами WinApi - Пример показывает как во время исполнения программы Добавлять/Изменять/Удалять меню. Пример показывает как можно загрузить меню из ресурса, как это делает C, Delphi и т.д.

    Дата: 10.01.2003 06:08 | Раздел: ActiveX контролы | Автор: Лагуна софт Украина

    LunaBar 1.0 - Этот контрол представляет собой ProgressBar для Visual Basic в стиле Windows XP.

    Дата: 10.01.2003 06:06 | Раздел: Примеры кода | Автор: Шевченко Александр Витальевич

    Cube - Пример извлечения кубического корня.

    Дата: 09.01.2003 17:24 | Раздел: ActiveX контролы | Автор: Вологин Артём

    PictureScroller - Этот контрол позволяет прокручивать большую картинку без скроллбаров.

    Дата: 08.01.2003 17:18 | Раздел: Примеры кода | Автор: Перминов Андрей

    FolderTreeView - Этот пример исследует два подхода к использованию TreeView как дерева каталогов.

    Дата: 07.01.2003 17:18 | Раздел: Примеры кода | Автор: Перминов Андрей

    OS_Reporter - Это готовая программа для проверки версий системных библиотек. Однако, она же может считаться примером по использованию вошедшего в нее класса FileVerInfo, предназначенного специально для получения всей необходимой информации о файле.

    Дата: 06.01.2003 17:18 | Раздел: Примеры кода | Автор: Перминов Андрей

    ScanForFiles - Это модуль для поиска файлов по маске в указанном каталоге и его подкаталогах. Использует API, а не контролы.

    Дата: 06.01.2003 10:46 | Раздел: Статьи по VB | Автор: Заостровцев Николай

    Подключаем Microsoft Passport - В этой статье рассказывается о процессе подключения службы Microsoft Passport.

    Дата: 05.01.2003 17:15 | Раздел: Примеры кода | Автор: Перминов Андрей

    Regex - Стандартные модули для работы с реестром могут читать и писать только REG_SZ и REG_DWORD значения, но в действительности их больше и их использование тоже необходимо. Этот пример содержит расширенный модуль для работы с реестром, поддерживающий ключи REG_BINARY, REG_EXPAND_SZ и REG_MULTI_SZ.

    Дата: 05.01.2003 10:44 | Раздел: Статьи по VB | Автор: Заостровцев Николай

    Microsoft Passport – для чего он нужен? - Статья о службе аутотентификации Microsoft Passport.

    Последние 20 тем форума на VBNet.Ru:

    04:08 / 12 янв. Таблицы FoxPro 2.5 | Хитов: 0 | Ответов: 0
    02:02 / 12 янв. Screenshot | Хитов: 1 | Ответов: 0
    01:58 / 12 янв. Как центрировать курсор на фокусе если фокус в ... | Хитов: 2 | Ответов: 0
    01:50 / 12 янв. Как центрировать курсор на фокусе если фокус в ... | Хитов: 1 | Ответов: 0
    00:51 / 12 янв. Господа! Я чет не понял! | Хитов: 4 | Ответов: 1
    00:26 / 12 янв. Win32 API и Visual Basic для профессионалов | Хитов: 8 | Ответов: 1
    21:49 / 11 янв. помогите с формами | Хитов: 19 | Ответов: 4
    21:29 / 11 янв. VB Net на Win ME... | Хитов: 14 | Ответов: 2
    18:32 / 11 янв. Спецы по ADO помогите! А то я заколебался уже. | Хитов: 16 | Ответов: 1
    18:11 / 11 янв. как программно установить в 2000 и ХР винде опц... | Хитов: 11 | Ответов: 0
    17:00 / 11 янв. Счётчик! | Хитов: 27 | Ответов: 3
    16:57 / 11 янв. Счётчик | Хитов: 4 | Ответов: 0
    15:38 / 11 янв. Как прочитать определённую строку из файла??? | Хитов: 13 | Ответов: 2
    15:08 / 11 янв. Always on top | Хитов: 22 | Ответов: 3
    14:41 / 11 янв. Как спрятать прогу в Трей | Хитов: 33 | Ответов: 4
    11:05 / 11 янв. ADO - запрос - срочно | Хитов: 29 | Ответов: 2
    10:36 / 11 янв. Продам книгу | Хитов: 40 | Ответов: 7
    08:57 / 11 янв. Подскажите, что это значит? | Хитов: 34 | Ответов: 2
    05:33 / 11 янв. Нет, я ничего не понимаю??? | Хитов: 25 | Ответов: 2
    01:26 / 11 янв. Прога не выгружается с памяти... | Хитов: 25 | Ответов: 3

    Последние поступления в Библиотеку кодов:

    Новости от VBNet-чиков!:

    19:56 / 5 янв. Иван сообщает: "Один из самых опасных компьютерных преступников в истории США" Кевин Митник в ближайшее время снова сможет пользоваться интернетом, сообщает CNN. По итогам длительных судебных разбирательств Митник сумел вернуть себе лицензию для выхода в радиоэфир, а в январе получит доступ и ко всемирной компьютерной сети.
    Митник был освобожден в январе 2000 года, однако, согласно условиям надзора, до 20 января 2003 года ему было запрещено пользоваться компьютерами, программным обеспечением, модемами и другими средствами доступа в интернет. Кроме того, власти ограничили свободу передвижения бывшего хакера и лишили его возможности занимать ряд должносй. В 2002 году Митнику было разрешено пользоваться мобильным телефоном и компьютером без доступа в интернет. Недавно бывший хакер заявил о намерении открыть компанию, специализирующуюся на компьютерной безопасности. Он надеется приступить к работе сразу по окончании срока надзора.

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Новости сайта MSDN

    наверх

    Новости сайта GotdotNet

    Новые статьи:

    наверх

    Новости сайта dotSite

    Новые статьи:

    Новые примеры:

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Жорж

    Ответ ожидается по этому адресу

    На форме разместил: ProgreeBar, Timer, Image, CommandButon. Выставляю Image.Visible=False. Мне надо сделать так, чтобы при Image.Visible= False, ProgressBar двигался со скоростью 3, а при Image.Visible=True со скоростью 10. Я делаю так:

    Private Sub Command1_Click()
    Image1.Visible = False 'По нажатию кнопки картинка становится не видна
    End Sub

    Private Sub Timer1_Timer()
    Static I As Integer
    I = I + 1
    If ProgressBar1.Value = 90 Then Timer1.Enabled = False: MsgBox "Стоп"
    ' Остановка таймера при достижение ProgressBar'ом 90
    If I = 5 Then Image1.Visible = True 'Картинка видна
    If Image1.Visible = True Then
    ' Если картинка видна, тогда скорость больше
    ProgressBar1.Value = ProgressBar1.Value + 10
    Else
    ' Иначи (если картинка не видна), скорость меньше
    ProgressBar1.Value = ProgressBar1.Value + 3
    End If
    End Sub

    Все работает в том случае, если я нажму кнопку (т.е востановлю скорость 3 ), а если оставлю на скорости 10, тогда, когда дайдет ProgressBar до конца, выдаст ошибку: '380' Invalid property value. Что это значит, и как это исправить?

    Автор вопроса: Михей

    Ответ ожидается по этому адресу

    В моей программе 2-я форма становится видимой в определенные моменты времени. Подскажите, как сделать так, чтобы она выводилась поверх всех открытых окон.

    Автор вопроса: Корик

    Ответ ожидается по этому адресу

    Есть сайт заказов на ASP. Полученный заказ отправляется на мэйл.
    Вопрос: можно ли полученый заказ отправить на факс или распечатать мэйл автоматом при его получении?

    Автор вопроса: Костик

    Ответ ожидается по этому адресу

    Можно ли запустить мою программу после того как польяователь нажал на кнопку Выключения компьютера или его переяагруяки черея меню Пуск?
    Примечание: желательно, чтобы код(коды) были под Win98/Me и(или) WinXP.

    Автор вопроса: DeDMoRoZ

    Ответ ожидается по этому адресу

    Я написал программу на VB. Теперь хотелось бы её протестировать. Пожалуйста помогите. У кого есть модем с АОН (Авто Определение Номера). Напишите мне. Я вышлю вам прогу и вы её протестируйте. Просто мой модем не имеет АОН.

    Автор вопроса: Sergey

    Ответ ожидается по этому адресу

    Подскажите пожалуйста, есть ли такая утилита которая позволяет код Паскаля или Delfi перекодировать в код VB и если есть, то где взять?

    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

    Был вопрос:

    Как програмно изменять свойства звукового файла (*.WAV), такие как качество звука, частота, количество каналов (стерео - моно) и прочее.

    Получен ответ:

    Автор ответа: Dr.Max
    vbstreets.da.ru В разделе "Статьи на английском "

    Я взял код с , но он у меня не идёт. А так, как я в не силён, то прошу помочь. Может кто уделит время?

    Автор вопроса: Ревягин_Алексей

    Ответ ожидается по этому адресу

    У меня два вопроса:
    1) возможно ли сделать так, чтобы программа меняла свой код сама (переделывала бы себя сама по ходу своей работы)
    2) создал я новое меню(динамически), а как им пользоваться (как писать функции которые будут выполнятся при нажатии на созданное меню) где указывается имя динамически-созданного меню или как его и его методы и свойства ещё использовать

    Код создания меню:
    Private Declare Function CreatePopupMenu Lib "user32" () As Long
    Private Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu _
    As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As _
    Any) As Long
    Const MF_STRING = &H0&
    Dim hMenu As Long
    Private Sub Form_Load()
    'Создаём пустое всплывающие меню
    hMenu = CreatePopupMenu()
    'Добавляем несколько пунктов в меню
    AppendMenu hMenu, MF_STRING, ByVal 0&, "Hello !"
    AppendMenu hMenu, MF_STRING, ByVal 0&, ByVal 0&
    AppendMenu hMenu, MF_STRING, ByVal 0&, "TrackPopupMenu"
    End Sub

    пробовал создавать как контрол, но и это не выходит (пишет, что класса VB.Menu нет)

    В чём тут дело ?

    Автор вопроса: Ревягин_Алексей

    Ответ ожидается по этому адресу

    как в ресурсы запихнуть готовые диалоги(формы), а потом юзать их оттуда (как MustDie делает с SHELL32.DLL).
    К примеру я создам одну DLL'ку а потом буду юзать картинки, диалоги оттуда другими программами.

    Автор вопроса: Shadow

    Ответ ожидается по этому адресу

    Подскажите функции для прямой работы с памятью в VB? Я пытаюсь сделать трейнер к игрухе, адреса памяти извесны.
    Пытался считывать их содержимое GetMem(1,2,4,8) - на GetMem1 выдаётся какая-то белиберда, а на остальных бейсик обрухивается.
    CopyMemory тоже какуюто фигню выдаёт.
    Можт я чего неправильно делаю?

    Private Declare Sub CopyMemory Lib "Kernel32" Alias "RtlMoveMemory" (pDest As Any, pSource As Any, ByVal ByteLen As Long)

    Private Sub Form_Load()
    Dim a As Long
    CopyMemory a, ByVal &H6FA210, 4&
    MsgBox Str(a)
    End Sub

    Автор вопроса: Тютюнников ИМ

    Ответ ожидается по этому адресу

    КТо знает, как программно установить в 2000 и ХР винде опции "regional setting", а именно - как установить на закладке "Дополнительно" язык для программ не поддерживающих ЮНИКОД. Желательно сэмплик на Васике.

    Автор вопроса: MixeR

    Ответ ожидается по этому адресу

    Проблема установки MSDN
    Приустановке на 97-98% выдаётся ошибка.

    Close Collection g_Cool collection.Open(collection name)dwError=7

    Специалисты помогите разобраться.

    Автор вопроса: ILYA

    Ответ ожидается по этому адресу

    У меня 3 проблемы:

    1. Я пишу одну прогу, в которой должен быть кулбар (CoolBar), на одной панели которого должен быть элемент TabStrip, а на другой обыкновенный тулбар (ToolBar) с кнопками Соядать, Открыть, Копировать и т.д. Прошу объяснить, как на этот кулбар добавлять всякие элементы управления.

    2. Эта проблема частично свяяана с первой. Дело в том, что я не могу листать вкладки TabStrip'а в процессе его соядания и придания ему нужной формы. Помогите, пожалуйста, это сделать.

    3. Я соядал свой ресурс-файл для этой ялополучной программы, но дело в том, что я не умею с ним обращаться, то есть яагруяить ия него ту же иконку для формы или картинку иянего поместить в ImageBox, подскажите, как это делается.

    Ответы:

    Вопрос:

    Люди кто знает как определить серийный номера жесткого диска? Именно ЖД, о не логического диска С, D и т.д., т.к. после форматирования номера логических дисков изменяются.Очень срочно

    Ответ:

    Автор ответа: Sergey

    Для этого есть специальная API ф-ция DeviceIoControl, которая отправляет команды напрямую драйверу физического устройства(в том числе и жесткому диску). Сам я когда-то тоже копал в этом направлении но без особых успехов.

    Сначала нужно получить дескриптор устройства(это код для 2K/XP):

    hFile = CreateFile("\\.\PHYSICALDRIVE0", _
    0&, _
    FILE_SHARE_READ Or FILE_SHARE_WRITE, _
    ByVal 0&, _
    OPEN_EXISTING, _
    0&, 0&)

    А затем отправляешь ему нужную команду. Я пытался через

    IOCTL_CHANGER_GET_PRODUCT_DATA

    Private Const VENDOR_ID_LENGTH As Long = 8
    Private Const PRODUCT_ID_LENGTH As Long = 16
    Private Const REVISION_LENGTH As Long = 4
    Private Const SERIAL_NUMBER_LENGTH As Long = 32

    Private Type CHANGER_PRODUCT_DATA
    VendorId(VENDOR_ID_LENGTH) As Byte
    ProductId(PRODUCT_ID_LENGTH) As Byte
    Revision(REVISION_LENGTH) As Byte
    SerialNumber(SERIAL_NUMBER_LENGTH) As Byte
    DeviceType As Byte
    End Type
    Dim udtProductData As CHANGER_PRODUCT_DATA
    lResult = DeviceIoControl(hFile, _
    IOCTL_CHANGER_GET_PRODUCT_DATA, _
    ByVal 0&, _
    0&, _
    udtProductData, _
    Len(udtProductData), _
    bytesReturned, _
    ByVal 0&)

    Вопрос:

    А возможно ли закрыть из VB окно сеанса ДОС?

    Ответ:

    Автор ответа: RaZoom

    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Const WM_CLOSE = &H10

    Private Sub btnClose_Click()
    SendMessage FindWindow("ConsoleWindowClass", vbNullString), WM_CLOSE, 0, 0
    End Sub

    Ответ:

    Автор ответа: biv

    Было где-то на сайте http://www.nsa.newmail.ru/

    Private Declare Function GetVolumeInformation Lib "Kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long
    Const MAX_FILENAME_LEN = 256

    Function DriveSerial(ByVal sDrv As String) As Long
    Dim RetVal As Long
    Dim str As String * MAX_FILENAME_LEN
    Dim str2 As String * MAX_FILENAME_LEN
    Dim a As Long
    Dim b As Long
    Call GetVolumeInformation(sDrv & ":\", str, MAX_FILENAME_LEN, RetVal, a, b, str2, MAX_FILENAME_LEN)
    DriveSerial = RetVal
    End Function

    Вопрос:

    1) где взять MSDN на русском или хотя бы описание любых API-функций (на
    русском)
    2) Если на первый вопрос ответа нет, то помогите разобраться с функцией GetClassName(1,2,3). Первое яначение я знаю чё значит, а второе и третье
    нет. Помогите пожайлуста.
    3) Чё означает встроенная VB функция String$() и Left$()

    Ответ:

    Автор ответа: RaZoom

    1. http://nikolayam.narod.ru/api_help.zip
    2. 1 - хэндл окна
    2 - буфер
    3 - количество копируемых символов
    3. Left$ (strMyString,10) - вернет первые 10 символов строки strMyString
    String$("A",10) - вернет строку из 10 символов "A", можно использовать для создания буферов для команд API, которые возвращают текстовые строки.

    Ответ:

    Автор ответа: Артем Кривокрисенко

    1) Есть на www.subscribe.ru рассылка Win32 API на русском. У нее даже свой сайт есть (не помню урл). Я планирую переводить Win32API на русский. А вообще, как говорил очень известный человек, программистом можешь ты не быть, но знать английский ты обязан! (кстати, следующее описание я перевел из MSDN за 5 мин)

    2) Функция GetClassName возвращает имя класса, к которому принадлежит определенное окно.

    int GetClassName(
    HWND hWnd, // Индентификатор окна
    LPTSTR lpClassName, // Имя класса
    int nMaxCount // Размер строки с именем класса
    );
    Параметры

    hWnd
    [Ввод] Индентификатор окна, у которого нужно узнать, к какому классу оно принадлежит

    lpClassName
    [Вывод] Строковая переменная, в которую поместится имя класса
    nMaxCount
    [Ввод] Определяет длину переменной. Если длина имени класса больше этого значения, имя класса обрезается
    Возвращаемые зеачения:
    Если функция выполняется успешно, возвращаемое значение является длинной имени класса
    Если произошла ошибка, функция возвращает 0. Для расширенной информации вызывай функцию GetLastError.

    3) Функция Left позволяет получить несколько левых символов:
    strFirst="Hello, world!!!"
    strSecond=left(strFirst,5)
    'Сейчас StrSecond="Hello"
    Функция String позволяет заполнить строковую переменную набором символов:
    strText=string(10,"A")
    'Теперь strText="AAAAAAAAAA"

    Ответ:

    Автор ответа: Anton B. Lozovski

    Перевод мой

    GetClassName
    The GetClassName function retrieves the name of the class to which the specified window belongs.

    Функция GetClassName возвращает имя класса, к которому указанное окно принадлежит.

    int GetClassName(
    HWND hWnd, // логический номер окна
    LPTSTR lpClassName, // имя класса
    int nMaxCount // размер буфера имени класса
    Параметры
    hWnd
    [вх] Логический номер окна, и, ненапрямую, класс к которому принадлежит окно
    lpClassName
    [вых] Указатель на буфер, который принимает строку имени класса
    nMaxCount
    [вх] Указывает длину, в символах, буфера lpClassName. Если строка с именем класса длиннее, она отсекается
    Возвращаемые значения

    Если функция успешно выполнилась - возвращаемое значение = кол-ву символов в буфере
    Если неуспешно - на выходе ноль. Чтобы получить расширенную информацию об ошибке - вызовите GetLastError.

    Ответ:

    Автор ответа: Марк

    2) В моем варианте MSDN такая вот справка (по CeGetClassName)

    The CeGetClassName function retrieves the name of the class to which the specified window belongs. This is the RAPI version of the GetClassName function.

    Syntax
    int CeGetClassName(HWND hWnd, LPTSTR lpClassName, int nMaxCount);

    Справку по самой GetClassName не находит, но, скорее всего, параметры те же.

    3) Функция Left$(string, length) - вырезает из строки string length левых симолов. Например,

    Left$("Строка",2) ==> "Ст"

    Знак доллара можно не писать, это рудименты "старого" стиля, раньше так обозначались строковые функции - те, которые возвращали значение строкового типа..

    По функции String$() MSDN выдает справку по функции Str(number). Скорее всего, это устаревшая форма функции Str, которая преобразует выражение числового типа в строку.

    Ответ:

    Автор ответа: Olga Gorelik

    Declare Function GetClassName& Lib "user32" Alias "GetClassNameA" (ByVal hwnd as Long, ByVal lpClassName as string, ByVal nMaxCount as Long)

    Описание: Функция получает имя класса для заданного окна
    hwnd - манипулятор окна, для которого читается имя класса
    lpClassName - строка-буфер, в который заносится имя класса. Должен содержать не менее nMaxCount+1 символов
    nMaxCount - Long- длина буфера, передаваемого в lpClassName

    tBuff$ = String$(256,0)
    dl& = GetClassName( hwnd&, tBuff$, 255)

    dl& то же что и dim dl as long
    tBuff$ то же что и dim tBuff as string
    hwnd& = Form1.hWnd (как пример)

    Dim MyString
    MyString = String(5, "*") ' Returns "*****".
    MyString = String(5, 42) ' Returns "*****".
    MyString = String(10, "ABC") ' Returns "AAAAAAAAAA".

    а можно так:

    MyString $= String$(5, "*") ' Returns "*****".

    Dim MyString, LeftString
    MyString = "VBSCript"
    LeftString = Left(MyString, 3) ' LeftString contains "VBS".

    а можно так:

    MyString$ = "VBSCript"
    LeftString $= Left$(MyString, 3) ' LeftString contains "VBS".

    Вопрос:

    Подскажите как сделать оформление в силе ХР под Win2k или в Win9x.

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Можно сказать однозначно: пиши контрол. У меня есть проект (правда, не полностью готовый). Присутствуют такие контролы:

    xpProgressBar
    xpButton
    xpCheckBox
    xpOptionButton

    Все контролы (в отличие от рессурса, который я опишу далее) практически не отличишь от оригинала. Текст переносится качественно и присутствуют фокусные квадратики. К тому же есть возможность выбора свойства XPStyle (Стандыртная синяя, серебрянная или оливковая). Напиши мне на Artyom_kr@mail.ru и я пришлю тебе этот проект.

    На сайте www.vbnet.ru тоже есть подобный проект, там присутствует больше контролов. Но не все выглядят так, как оригиналы.

    Ответ:

    Автор ответа: Dbedokurov

    Говорят что можно скачать какието обновления с сайта Microsoft.com или ru, но точно не знаю.

    Вопрос:

    Где можно раядобыть описание API-функций для реестра (желательно на русском)? И вообще есть какой-нить русскоязычный сайт посвящённый АПИ-функциям или где они рассматриваются?

    Ответ:

    Автор ответа: Михаил Кузьминых

    Можно посмотреть www.bcbdev.ru.

    Ответ:

    Автор ответа: Matrix

    http://www.bcbdev.ru/winapi.htm

    Ответ:

    Автор ответа: Артем Кривокрисенко

    На сайте www.vbnet.ru есть статья по этому поводу.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 127.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта 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!!!

    Несколько слов от автора:

    Новый выпуск рассылки! На мой призыв о кодах для рассылки откликнулись всего 2 человека. Хотя на рассылку подписано больше 6000 человек...
    Обязательно зайдите на сайт VBNet.Ru и почитайте статьи, участвующие в конкурсе (их уже 4 штуки) и не забудьте проголосовать!
    Читайте!

    Содержание выпуска

    • Книги

    • Проверить тип вводимой информации
    • Как реализовать режим замены в текстовом окне
    • Как быстро выделить текст для события GotFocus
    • Как уместить в Text Box больше 64 kb текста?
    • Определить количество строк в TextBox'е
    • Скрыть/показать мигающий курсор в Text Box

    • Вопрос/Ответ

    Книги

    Переход на 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 можно найти здесь.

    наверх

    Проверить тип вводимой информации

    Простая проверка регистра, буква или цифра,используя API

    Добавьте TextBox на форму

    Private Declare Function IsCharUpper Lib "user32" Alias "IsCharUpperA" (ByVal cChar As Byte) As Long
    Private Declare Function IsCharLower Lib "user32" Alias "IsCharLowerA" (ByVal cChar As Byte) As Long
    Private Declare Function IsCharAlpha Lib "user32" Alias "IsCharAlphaA" (ByVal cChar As Byte) As Long
    Private Declare Function IsCharAlphaNumeric Lib "user32" Alias "IsCharAlphaNumericA" (ByVal cChar As Byte) As Long
    Private Sub Text1_KeyPress(KeyAscii As Integer)
    '1 - True, 0 - False
    MsgBox "Upper Case: " & IsCharUpper(KeyAscii) & " Lower Case: " & IsCharLower(KeyAscii) & " Alpha: " & IsCharAlpha(KeyAscii) & " Alpha or Numeric: " & IsCharAlphaNumeric(KeyAscii)
    End Sub

    наверх

    Как реализовать режим замены в текстовом окне

    Как вы знаете текстовые окна работают в режиме вставки. Данный пример покажет, как можно реализовать режим замены.

    Sub Text1_KeyPress(KeyAscii As Integer)
    If KeyAscii >= 32 Then 'проверка, что вводится символ (буква или цифра)
    If Text1.SelLength = 0 Then 'проверка, что текст не выделен
    If Text1.SelStart < Len(Text1) Then
    Text1.SelLength = 1 'данным установлением включается режим замены
    End If
    End If
    End If
    End Sub

    наверх

    Как быстро выделить текст для события GotFocus

    При вводе данных часто бывает необходимо выделить текущее значение элемента управления, когда в него передается фокус. Это позволяет пользователю немедленно начать ввод данных поверх предыдущего значения. Ниже приводится небольшая подпрограмма, которая предназначена именно для такой цели:

    Public Sub FocusMe(ctlName as Control)
    With ctlName
    .selStart = 0
    .selLength = Len (ctlName)
    End With
    End Sub
    'А теперь добавьте вызов к этой подпрограмме в событии GotFocus для тех элементов управления, которые используются при вводе данных:
    Private Sub
    Call FocusMe(Text1)
    End Sub

    'ИЛИ...

    Text1.SetFocus
    With Text1
    .SelStart = 0
    .SelLength = Len(Text1.Text)
    End With

    'ИЛИ...

    Private Sub Text1_GotFocus()
    With Text1
    .SelStart = 0 'начало выделения
    .SelLength = Len(Text1.Text) 'конец выделения
    End With
    End Sub

    'ИЛИ...

    Private Sub Text1_GotFocus()
    SendKeys "{home}+{end}"
    End Sub

    наверх

    Как уместить в Text Box больше 64 kb текста?

    Дело в том, что элемент TextBox не может показывать текст объемом больше 64 kb (а иногда это значение может сократиться до 30 kb). Но эту проблему легко решить, если подгружать необходимые куски текста в TextBox по мере надобности. Данный код загружает файл любого размера в динамический массив и в зависимости от значения Value Scrool Bar'а показывает в TextBox'e, только определенные куски текста. Для того, что бы все это работало, вам нужно поместить на форму TextBox, назвать его txtMain, установить его свойство Multiline как True, а свойство ScroolBars, как 1-Horizontal. А также рядом с TextBox'ом нарисовать вертикальный ScroolBar с именем vsbText

    Private Text()
    Private Const LineNum = 15
    Private Sub Form_Load()
    Dim i
    Open "D:\win32api.txt" For Input As #1 Len = 1024
    Do Until EOF(1)
    i = i + 1
    ReDim Preserve Text(i + LineNum)
    Line Input #1, Text(i)
    Loop
    Close #1
    With vsbText
    .Min = 1
    .Max = i
    .SmallChange = 1
    .LargeChange = i \ 10
    End With
    End Sub

    Private Sub vsbText_Change()
    Dim i As Integer
    Dim Temp
    For i = vsbText.Value To vsbText.Value + LineNum
    Temp = Temp + Text(i) + vbCrLf
    Next i
    txtMain.Text = Temp
    End Sub

    наверх

    Определить количество строк в TextBox'е

    Добавьте TextBox (установите значение MultiLine=True) и CommandButton.

    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
    Const EM_GETLINECOUNT = &HBA
    Private Sub Command1_Click()
    Dim lngLineCount As Long
    On Error Resume Next
    lngLineCount = SendMessageLong(Text1.hwnd, EM_GETLINECOUNT, 0&, 0&)
    MsgBox lngLineCount
    End Sub

    наверх

    Скрыть/показать мигающий курсор в Text Box

    Добавьте TextBox и CheckBox на форму

    Private Declare Function HideCaret Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function ShowCaret& Lib "user32" (ByVal hwnd As Long)
    Private Sub CheckCaret()
    If Check1.Value = vbChecked Then
    ShowCaret (Text1.hwnd)
    Else
    HideCaret (Text1.hwnd)
    End If
    End Sub
    Private Sub Form_Load()
    Check1.Value = 1
    End Sub
    Private Sub Text1_Change()
    CheckCaret
    End Sub
    Private Sub Text1_GotFocus()
    CheckCaret
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Admin

    Ответ ожидается по этому адресу

    Каким образом можно узнать информацию о файле, точнее *.avi, нужно длительность, размеры, и т.п.

    Автор вопроса: Dr.Max

    Ответ ожидается по этому адресу

    Пишу несчасное подобие броузера.
    Хочу добавить опции ,запрещающие загрузку файлов с определенным разрешением.
    Например,запретить загруску фоновой музыки сайта - *.mid;*.wav, запретить загруску некоторой графики - *.swf.
    Кто знает как???

    Автор вопроса: Alexbor

    Ответ ожидается по этому адресу

    1.Мне необходимо получить список всех зарегестрированных на машине серверов, а потом прочитать список их System DSN для каждого сервера. Как это можно сделать?
    2. Для того чтобы исключить программу из диспетчера задач по Ctrl-Alt-Del я использую функцию RegisterServiceProcess. Под 95 виндами все работает шикарно, но на Windows 2000 Server (SP2), на ней прога ругается и говорит, что ссылку на данную функцию в kernel32 она не находит. В чем может быть дело? Если кто сталкивался с такой байдой буду признателен за совет.

    Автор вопроса: Tank

    Ответ ожидается по этому адресу

    Помогите решить задачу по получению данных с удаленных веб-сайтов.
    На сколько я понял стандартное решение это Microsoft Internet Controls (SHDOCVW.DLL), открываем Explorer: Set IE = New InternetExplorer... это все понятно, а как получить данные от Explorer открытого не программой или от нескольких открытых страниц, есть ли функция возвращающая количество IE и переключения между ними или подскажите другие методы.

    Автор вопроса: B. Obukhov

    Ответ ожидается по этому адресу

    Как в центре MDI формы написать какой-то текст?

    Ответы:

    Вопрос:

    А возможно ли закрыть из VB окно сеанса ДОС?

    Ответ:

    Автор ответа: Шишкалов Д.Ю.

    1)..если ты его открывал...сам..то по хэндлу окна и закрываешь..посылая сообщенеие - закрыть окно
    2)..если не сам..то перебирая окна или надя сразу то ..что надо..(т.е..получив его хэдл), делаешь что и в пункте 1.))

    Вопрос:

    1) где взять MSDN на русском или хотя бы описание любых API-функций (на
    русском)
    2) Если на первый вопрос ответа нет, то помогите разобраться с функцией GetClassName(1,2,3). Первое яначение я знаю чё значит, а второе и третье
    нет. Помогите пожайлуста.
    3) Чё означает встроенная VB функция String$() и Left$()

    Ответ:

    Автор ответа: Андрей Германович

    1. MSDN на русском не бывает. кой какие API на русском мона найти на rusproject.narod.ru

    2. int GetClassName(
    HWND hWnd, // handle to window
    LPTSTR lpClassName, // class name
    int nMaxCount // size of class name buffer
    );
    соотв: первый - окно, второй - в нем вернется класс окна, третий - длина буфера (скока буковок в lpClassName мона писать)

    3. String$(i,ch) вернет строку длиной i символов ch
    Left$(s,i) вернет подстроку из i символов от строки s начиная слева /Right$ - аналогично справа/

    Вопрос:

    На форме разместил: ProgreeBar, Timer, Image, CommandButon. Выставляю Image.Visible=False. Мне надо сделать так, чтобы при Image.Visible= False, ProgressBar двигался со скоростью 3, а при Image.Visible=True со скоростью 10. Я делаю так:

    Private Sub Command1_Click()
    Image1.Visible = False 'По нажатию кнопки картинка становится не видна
    End Sub

    Private Sub Timer1_Timer()
    Static I As Integer
    I = I + 1
    If ProgressBar1.Value = 90 Then Timer1.Enabled = False: MsgBox "Стоп"
    ' Остановка таймера при достижение ProgressBar'ом 90
    If I = 5 Then Image1.Visible = True 'Картинка видна
    If Image1.Visible = True Then
    ' Если картинка видна, тогда скорость больше
    ProgressBar1.Value = ProgressBar1.Value + 10
    Else
    ' Иначи (если картинка не видна), скорость меньше
    ProgressBar1.Value = ProgressBar1.Value + 3
    End If
    End Sub

    Все работает в том случае, если я нажму кнопку (т.е востановлю скорость 3 ), а если оставлю на скорости 10, тогда, когда дайдет ProgressBar до конца, выдаст ошибку: '380' Invalid property value. Что это значит, и как это исправить?

    Ответ:

    Автор ответа: Nechaev Sergey

    Просто у тебя максимальное значение для прогресс бара 100, а ты пытаешься установить значения больше ста (когда я опробовал твой код, у меня получилось 102). Поэтому вылетает ошибка. Следует перед присваиванием проверять, не будет ли переполнения и только потом выполнять присваивание. А можно просто отловить ошибку и закрыть на этом вопрос. Так я и сделал. Я переписал этот код вот так. И еще. Я так понял, что тебе надо, чтобы скрытая картинка отображалась через 5 событий timer после нажатия кнопки, ее скрывающей (или с начала выполнения). Я так и сделал. Если я не прав, верни все что связано с переменной I в соответствие со своим оригиналом.

    Dim I As Byte

    Private Sub Command1_Click()
    Image1.Visible = False 'По нажатию кнопки картинка становится не видна
    I = 0
    End Sub

    Private Sub Timer1_Timer()
    On Error GoTo er
    I = I + 1
    ' If ProgressBar1.Value = 90 Then Timer1.Enabled = False: MsgBox "Стоп"
    ' Остановка таймера при достижение ProgressBar'ом 90
    If I = 5 Then Image1.Visible = True 'Картинка видна
    If Image1.Visible = True Then
    ' Если картинка видна, тогда скорость больше
    ProgressBar1.Value = ProgressBar1.Value + 10
    Else
    ' Иначе (если картинка не видна), скорость меньше
    ProgressBar1.Value = ProgressBar1.Value + 3
    End If

    Exit Sub
    er:
    If Err.Number = 380 Then
    Timer1.Enabled = False
    ProgressBar1.Value = ProgressBar1.Max
    End If
    End Sub

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Скорее всего, ошибка вылазит, когда ты ставишь Progressbar1.value=...
    Наверное, Value ты ставишь большим, чем Max, а этого делать нельзя. Я немного переделал код.

    Private Sub Timer1_Timer()
    dim intAdd as integer
    Static I As Integer

    I = I + 1

    If I = 5 Then Image1.Visible = True
    intAdd=iif(image1.visible,10,3)
    If ProgressBar1.Value+ intadd > 90 Then
    progressbar1.value=progressbar1.max
    Timer1.Enabled = False
    MsgBox "????"

    else
    ProgressBar1.Value = ProgressBar1.Value + intAdd
    End If
    End Sub

    Ответ:

    Автор ответа: NeoLord

    Происходит переполнение максимального значения ProgreeBar'а.

    Ответ:

    Автор ответа: Invisible Man

    "Invalid property value" с анг. "Недопустимое значение свойства".
    Ошибка происходит из за того что в определенное время ProgressBar1.Value становится больше чем ProgressBar1.Max. ProgressBar1.Max это максимальное допустимое значение ProgressBar1.Value.

    1) Первые 4 раза Timer прибавляет к ProgressBar'у по 3 т.е. к 5-му разу ProgressBar1.Value = 12, а потом начинает прибавлять по 10, тут и ёжику ясно что 90 никогда не наступит... А будет сразу 92. По этому вот тут:

    If ProgressBar1.Value = 90

    следовало ставить не "=", а ">=".

    2)Строка
    If ProgressBar1.Value >= 90 Then Timer1.Enabled = False: MsgBox "Стоп"

    должна стоять не в начале, как у тебя, а наоборот в конце, прямо перед End Sub, или можно сделать так:

    If ProgressBar1.Value >= 90 Then Timer1.Enabled = False: MsgBox "Стоп": Exit Sub

    Тады она может стоять как вверху так и внизу...

    Код будет такой:

    'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    Private Sub Command1_Click()
    Image1.Visible = False
    End Sub

    Private Sub Timer1_Timer()
    Static I As Integer
    I = I + 1
    If ProgressBar1.Value >= 90 Then Timer1.Enabled = False: _
    MsgBox "????": Exit Sub
    If I = 5 Then Image1.Visible = True
    If Image1.Visible = True Then

    ProgressBar1.Value = ProgressBar1.Value + 10
    Else

    ProgressBar1.Value = ProgressBar1.Value + 3
    End If
    End Sub
    'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    'Должно работать...

    Ответ:

    Автор ответа: Matrix

    1) в случае если необходимо отображение Progress на 90.

    Замени:

    If ProgressBar1.Value = 90 Then Timer1.Enabled = False: MsgBox "Стоп"

    на

    If ProgressBar1.Value >= 90 Then
    Timer1.Enabled = False: MsgBox "Стоп"
    GoTo End_S
    End If

    В конце поставь метку End_S:
    перед End Sub

    2) Если необходимо отображение Progress на 100 тогда

    Замени:

    If ProgressBar1.Value = 90 Then Timer1.Enabled = False: MsgBox "Стоп"

    на

    If ProgressBar1.Value >= 90 Then
    Timer1.Enabled = False: MsgBox "Стоп"
    ProgressBar1.Value = 90
    End If

    Все дело в том, что стоит четкое условие на проверку 90 и никакое другое, при этом Progress может и не попасть на это значение, т.е. перепрыгнуть его 89, 92 и т.д. , как в случае, если не нажимать на кнопу, поэтому необходимо выполнить проверку на 90 и более, а далее уже зависит от того, что конкретно необходимо. Я написал два варианта.

    Ответ:

    Автор ответа: shadow

    всего навсего надо заменить:

    If ProgressBar1.Value = 90 Then ...

    на:

    If ProgressBar1.Value > 90 Then ...

    или:

    If ProgressBar1.Value > ProgressBar1.Max Then ...

    Ответ:

    Автор ответа: Sergey

    Не люблю я комментировать чужой код, хотя часто приходится это делать.
    Во-первых нет кода для сбрасывания счетчика в 0, например так:

    If ProgressBar1.Value = 90 Then
    Timer1.Enabled = False
    ProgressBar1.Value = 0
    MsgBox "Стоп"
    Exit Sub
    End If

    Во-вторых нигде видно кода для запуска таймера после его первой остановки. И в третьих код:

    If Image1.Visible = True Then
    ProgressBar1.Value = ProgressBar1.Value + 10

    выглядит опасно с точки зрения безошибочности. Я бы написал так (для произвольного интервала):

    If Image1.Visible = True Then
    Dim lValue As Long
    lValue = ProgressBar1.Value + 10
    If lValue >= ProgressBar1.Max Then
    ProgressBar1.Max = lValue
    End If

    Ответ:

    Автор ответа: Вадим

    Возможно оно проходит через 90 и не равноему:

    ProgressBar1.Value =88

    а потом ProgressBar1.Value =98 и 108

    а ProgressBar1.Max =100 тут и ошибка.

    Замени

    If ProgressBar1.Value = 90

    на

    If ProgressBar1.Value => 90

    Вопрос:

    В моей программе 2-я форма становится видимой в определенные моменты времени. Подскажите, как сделать так, чтобы она выводилась поверх всех открытых окон.

    Ответ:

    Автор ответа: Артем Кривокрисенко

    пиши

    FormSecond.show 1

    Ответ:

    Автор ответа: Ревягин_Алексей

    Добавь 2 CommandButton (под именем Command1 и Command2). Когда нажмешь первую кнопку, форма поверх всех

    Private Declare Function SetWindowPos Lib "user32" (ByVal h%, ByVal hb%, ByVal x%, _
    ByVal Y%, ByVal cx%, ByVal cy%, ByVal F%) As Integer
    Const SWP_NOMOVE = 2
    Const SWP_NOSIZE = 1
    Const flags = SWP_NOMOVE Or SWP_NOSIZE
    Const HWND_TOPMOST = -1
    Const HWND_NOTOPMOST = -2

    Private Sub Command1_Click()
    res = SetWindowPos(Form1.hwnd, HWND_TOPMOST, 0, 0, 0, 0, flags) 'Форма on-top
    End Sub
    Private Sub Command2_Click()
    res = SetWindowPos(Form1.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, flags) 'Форма _
    non-on-top
    End Sub

    Ответ:

    Автор ответа: Rutshtein Alex

    Используй API-функцию SetForegroundWindows, либо, если надо поверх всех внутри программы, то

    form2.show vbmodal

    Ответ:

    Автор ответа: RaZoom

    Если надо, чтобы окно вывелось поверх других и получило фокус ввода, то так:

    Public Declare Function SetForegroundWindow Lib "user32" Alias "SetForegroundWindow" (ByVal hwnd As Long) As Long

    SetForegroundWindow frmForm.hwnd

    Если же надо, чтобы окно оставалось верхним даже тогда, когда теряет фокус, то так:

    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 Const HWND_TOPMOST = -1
    Public Const HWND_NOTOPMOST = -2
    Public Const SWP_NOMOVE = &H2
    Public Const SWP_NOSIZE = &H1

    SetWindowPos frmForm.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE
    отмена этого режима:
    SetWindowPos frmForm.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE

    Ответ:

    Автор ответа: shadow

    декларируешь:

    Private 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

    флаги:

    Private Const HWND_TOPMOST = -1
    Private Const SWP_NOMOVE = &H2
    Private Const SWP_NOSIZE = &H1

    использование (при загрузке или по таймеру или ещё по какому событию - сам сообразишь):

    SetWindowPos Form1.hWnd, HWND_TOPMOST, 0, 0, 0, 0, флаг

    если несколько флагов надо: флаг1 Or флаг2, например:
    SetWindowPos Form1.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE

    Ответ:

    Автор ответа: Sergey

    Если ты знаешь ее hwnd (например Form1.hWnd) то это делается так:

    SetWindowPos Form1.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE

    Только не забудь что она будет поверх не только всех окон в твоей программе, но и поверх всех окон запущенных программ (если ты куда-то будешь переключаться)

    Ответ:

    Автор ответа: Sergey

    Можно поступить хитрее: запустить программу которая будешь отслеживать сообщения WM_QUERYENDSESSION или WM_QUERYENDSESSION и после их прихода делать что нужно.

    Вопрос:

    Есть сайт заказов на ASP. Полученный заказ отправляется на мэйл.
    Вопрос: можно ли полученый заказ отправить на факс или распечатать мэйл автоматом при его получении?

    Ответ:

    Автор ответа: shadow

    лучше всего скачай исходник сокета и забирай почту собственно обработчиком. или MAPI...

    Вопрос:

    Можно ли запустить мою программу после того как польяователь нажал на кнопку Выключения компьютера или его переяагруяки черея меню Пуск?
    Примечание: желательно, чтобы код(коды) были под Win98/Me и(или) WinXP.

    Ответ:

    Автор ответа: RaZoom

    Конечно можно!
    Нужно только подправить user32.dll, а именно функцию ExitWindowsEx так, чтобы она вызывала твою программу. ;)

    Ответ:

    Автор ответа: Loki

    Да зайди на сайт www.vbrain.narod.ru

    Ответ:

    Автор ответа: shadow

    запустить врядли можно, для этого потребуется штоб другая прога это событие отслеживала но можно запустить твою прогу заранее, а действие она выполнит при появлении диалога выключения компа. Простейший вариант (Visible и ShowInTaskbar формы ставиш в False, можно форму за границу экрана загнать и т.д.):

    Private Declare Function GetForegroundWindow Lib "user32" () As Long
    Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hWnd As Long) As Long
    Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

    Private Sub Form_Load()
    Timer1.Interval = 1000
    End Sub

    Private Sub Timer1_Timer()
    Dim hw As Long
    hw = GetForegroundWindow
    If GetCaption(hw) = "Завершение работы Windows" Then SendKeys ("{ESC}")
    End Sub
    Function GetCaption(WindowHandle As Long) As String
    Dim Buffer As String, TextLength As Long
    TextLength& = GetWindowTextLength(WindowHandle&)
    Buffer$ = String(TextLength&, 0&)
    Call GetWindowText(WindowHandle&, Buffer$, TextLength& + 1)
    GetCaption$ = Buffer$
    End Function

    Вопрос:

    Был вопрос:

    Как програмно изменять свойства звукового файла (*.WAV), такие как качество звука, частота, количество каналов (стерео - моно) и прочее.

    Получен ответ:

    Автор ответа: Dr.Max
    vbstreets.da.ru В разделе "Статьи на английском "

    Я взял код с , но он у меня не идёт. А так, как я в не силён, то прошу помочь. Может кто уделит время?

    Ответ:

    Автор ответа: Tank

    Сам недавно закачал несколько кодов, которые при запуске выдавали ошибку типа "Retained is an invalid key..." если у тя таже проблема то открываешь проект блокнотом или Bred и просто удаляешь данный ключ т.е. строчку "Retained 0" после чего программа должна заработать, ну по крайней мере исчезнет ошибка.

    Вопрос:

    У меня два вопроса:
    1) возможно ли сделать так, чтобы программа меняла свой код сама (переделывала бы себя сама по ходу своей работы)
    2) создал я новое меню(динамически), а как им пользоваться (как писать функции которые будут выполнятся при нажатии на созданное меню) где указывается имя динамически-созданного меню или как его и его методы и свойства ещё использовать

    Код создания меню:
    Private Declare Function CreatePopupMenu Lib "user32" () As Long
    Private Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu _
    As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As _
    Any) As Long
    Const MF_STRING = &H0&
    Dim hMenu As Long
    Private Sub Form_Load()
    'Создаём пустое всплывающие меню
    hMenu = CreatePopupMenu()
    'Добавляем несколько пунктов в меню
    AppendMenu hMenu, MF_STRING, ByVal 0&, "Hello !"
    AppendMenu hMenu, MF_STRING, ByVal 0&, ByVal 0&
    AppendMenu hMenu, MF_STRING, ByVal 0&, "TrackPopupMenu"
    End Sub

    пробовал создавать как контрол, но и это не выходит (пишет, что класса VB.Menu нет)

    В чём тут дело ?

    Ответ:

    Автор ответа: Артем Кривокрисенко

    1) на www.vbnet.ru есть прекрасная статья Александра Ларина (заняла в конкурсе 1-е место), где он создает язык (RIPL). Очень несложно, и можно изменять код в режиме рантайма. Если неохота лезть на сайт, пиши, я пришлю статью в зипе(17 кб).

    Здесь, коллега, без субклассинга не обойтись. Тема эта очень обширна, и было бы обременительно (для тех, кто получает файлы рассылки по почте) обсуждать ее в данной рассылке. Поэтому, если действительно очень нужно делать то, о чем ты говорил в вопросе, пиши на Artyom_kr@mail.ru, можно поступить в конференцию SoobchaVB : напиши пустое письмо сюда: VB-On@SoobCha.org

    Вопрос:

    как в ресурсы запихнуть готовые диалоги(формы), а потом юзать их оттуда (как MustDie делает с SHELL32.DLL).
    К примеру я создам одну DLL'ку а потом буду юзать картинки, диалоги оттуда другими программами.

    Ответ:

    Автор ответа: Nechaev Sergey

    картинки запросто добавляются в раздел bitmap или custom файла ресурсов через resourse editor, а вот с диалогами большой облом - это vb а не delphi.

    Ответ:

    Автор ответа: Артем Кривокрисенко

    На VB таких библиотек, как shell32.dll ты не напишешь. Ты можешь писать только библиотеки ActiveX.

    Вопрос:

    Подскажите функции для прямой работы с памятью в VB? Я пытаюсь сделать трейнер к игрухе, адреса памяти извесны.
    Пытался считывать их содержимое GetMem(1,2,4,8) - на GetMem1 выдаётся какая-то белиберда, а на остальных бейсик обрухивается.
    CopyMemory тоже какуюто фигню выдаёт.
    Можт я чего неправильно делаю?

    Private Declare Sub CopyMemory Lib "Kernel32" Alias "RtlMoveMemory" (pDest As Any, pSource As Any, ByVal ByteLen As Long)

    Private Sub Form_Load()
    Dim a As Long
    CopyMemory a, ByVal &H6FA210, 4&
    MsgBox Str(a)
    End Sub

    Ответ:

    Автор ответа: Anatoliy

    Цитата из MSDN:

    The CopyMemory function copies a block of memory from one location to another.

    VOID CopyMemory(
    PVOID Destination, // copy destination
    CONST VOID* Source, // memory block
    SIZE_T Length // size of memory block
    );Parameters
    Destination
    [in] Pointer to the starting address of the copied block's destination.
    Source
    [in] Pointer to the starting address of the block of memory to copy.
    Length
    [in] Specifies the size, in bytes, of the block of memory to copy.
    т.е. ожидаеться два адресса:

    CopyMemory VarPtr(a), &H6FA210, 4&

    Ответ:

    Автор ответа: Андрей Щёкин [darXeth]

    А игра у тебя случайно запущена не отдельно ?
    Windows использует раздельную память для всех приложений => для чтения памяти другого процесса надо использовать ReadProcessMemory.
    Сначала получаешь его Process ID.
    Затем открываешь его по PID'у с помощью OpenProcess с параметром PROCESS_VM_READ (и PROCESS_VM_WRITE для записи).
    OpenProcess возвращает тебе дескриптор - hProcess.
    К нему уже можно применять собственно ReadProcessMemory, которая по сути мало чем отличается от CopyMemory. Или, при надобности, WriteProcessMemory.
    После операций закрываешь дескриптор с помощью CloseHandle.
    Все обьявления в API Viewer, надеюсь разбершься - сейчас не могу подробнее.

    Вопрос:

    Проблема установки MSDN
    Приустановке на 97-98% выдаётся ошибка.

    Close Collection g_Cool collection.Open(collection name)dwError=7

    Специалисты помогите разобраться.

    Ответ:

    Автор ответа: Артем Кривокрисенко

    У меня недавно тоже были проблемы с установкой MSDN. Все решилось после переустановки Visual Studio.

    Ответ:

    Автор ответа: Владимир Кирко

    Это известная ошибка.
    Проявляется, если не ошибаюсь, если Вы ставите MSDN не сразу с каким-либо продуктом, а через пару-другую дней.
    Бороться так: на C: ищете hhcolreg.dat, удаляете и повторяете установку (второй раз она проходит очень быстро, т.к. файлы не копируются заново, а проверяются на предмет каких нету).
    Если не поможет посмотрите
    http://www.sources.ru/msdn/msdn_problems.shtml.

    Ответ:

    Автор ответа: Марк

    Надо вручную удалить следующие файлы и запись в Реестре перед переустановкой:

    Delete HHCOLREG.DAT and HH.DAT files in the Windows directory.
    Delete the HHCTRL.OCX file in the Windows System directory.
    Delete the HHCOLREG.DAT fie in the Widows\Help directory.
    Then use the Registry Editor (regedit) to remove the desired collection key(s):
    HKEY_LOCAL_MACHINES\SOFTWARE\Microsoft\HTML Help Collections\Developer Collections\

    Вопрос:

    У меня 3 проблемы:

    1. Я пишу одну прогу, в которой должен быть кулбар (CoolBar), на одной панели которого должен быть элемент TabStrip, а на другой обыкновенный тулбар (ToolBar) с кнопками Соядать, Открыть, Копировать и т.д. Прошу объяснить, как на этот кулбар добавлять всякие элементы управления.

    2. Эта проблема частично свяяана с первой. Дело в том, что я не могу листать вкладки TabStrip'а в процессе его соядания и придания ему нужной формы. Помогите, пожалуйста, это сделать.

    3. Я соядал свой ресурс-файл для этой ялополучной программы, но дело в том, что я не умею с ним обращаться, то есть яагруяить ия него ту же иконку для формы или картинку иянего поместить в ImageBox, подскажите, как это делается.

    Ответ:

    Автор ответа: Артем Кривокрисенко

    1) поставь на форму кульар
    поставь на форму тулбар
    поставь на форму табстрип
    выдели тулбар, нажми Ctrl+X
    выдели кулбар, нажми Ctrl+V
    Тоже самое проделай с табстрипом на кулбаре нажми правой кнопкой мыши, выбери Properties
    Перейди на вкладку Bands, кнопками влево/вправо выбери нужную панель. Из раскрывающегося списка Child выбери имя контрола, который нужно повесить на эту панель. Точно так же поступай со второй вкладкой.
    2) мне кажется, сделать это невозможно

    Ответ:

    Автор ответа: Kussmich

    Элемент управления CoolBar

    С помощью элемента управления coolBar можно создавать в приложении улучшенные панели инструментов. Для использования этого элемента управления в приложении необходимо подключить к проекту библиотеку Microsoft Windows Common Controls-3 6.0, воспользовавшись диалоговым окном Components (Компоненты), открываемым при выборе команды Components (Компоненты) меню Project (Проект).
    В отличие от объекта ToolBar, элемент управления CoolBar более универсален и кроме кнопок может содержать другие элементы управления, в том числе и панели типа ToolBar. Усовершенствованная панель представляет собой контейнер, причем он состоит из маленьких контейнеров Band (Полоса), которые являются объектами и непосредственно включают в себя все элементы управления, вводимые в CoolBar.

    Для создания в проекте панели инструментов типа CoolBar выполните следующие действия:

    1. Подключите к проекту библиотеку Microsoft Windows Common Controls-3 6.0, в которой содержится элемент управления CoolBar.
    2. Добавьте в родительскую форму объект coolBar, дважды щелкнув мышью кнопку CooiBar на панели элементов управления.
    3. Присвойте новой панели инструментов имя cbrTools.
    4. Выделите объект CoolBar, нажмите правую кнопку мыши и выберите в появившемся контекстном меню команду Properties (Свойства). Открывается диалоговое окно Property Pages, предназначенное для создания панели типа CoolBar.
    5. Используя кнопку Insert Band (Вставить полосу), добавьте на панель инструментов еще несколько объектов Band.

    Теперь новую панель можно настраивать, добавляя на нее необходимые объекты или удаляя их. Добавим, например, кнопку управления для вызова дочернего окна. Для этого выполните следующие действия:

    1. Используя кнопку CommandButton на панели элементов управления, разместите на создаваемой панели инструментов CoolBar кнопку управления.
    2. Скорректируйте в окне Properties (Свойства) для созданной командной кнопки следующие свойства:
    в правый столбец свойства Name введите наименование объекта cbNewCoolBar,
    в свойство Caption введите текст Новая, который будет размещен на кнопке;
    в свойство Height кнопки введите значение 300;
    для свойства тор задайте значение 25.
    3. Для создания кода, выполняемого при нажатии новой кнопки на панели инструментов, в окне редактора кода введите следующие команды, осуществляющие вызов дочерней формы:

    Private Sub cbNewCoolBar_Click ()
    Dim frmNewForm As New frmChildMDI
    frmCount = frmCount + 1
    frmNewForm.Caption = "Дочерняя форма " + Str(frmCount)
    frmNewForm.Show
    End Sub

    4. Запустите приложение на выполнение.

    Элемент управления TabStrip

    Visual Basic позволяет создавать формы, содержащие несколько вкладок. Объекты данного типа выгодно применять в тех случаях, когда необходимо разместить большой объем информации или для удобства пользователя требуется сгруппировать в одном месте основную, наиболее часто используемую информацию, отделив ее от менее важной.

    Для создания вкладок в форме служит элемент управления TabStrip.
    Изучим, как разместить данный элемент в форме и настроить его свойства:

    1. Откройте форму, в которой вы хотите создать вкладки.
    2. Нажмите кнопку TabStrip на панели элементов управления.
    3. Установите указатель в форму и, удерживая кнопку мыши в нажатом состоянии, переместите курсор по диагонали так, чтобы получилась рамка размером с форму.
    4. Откройте окно свойств созданного объекта. Для этого установите на него курсор, нажмите правую кнопку мыши и выберите в контекстном меню команду Properties.
    5. В открывшемся диалоговом окне Property Pages перейдите на вкладку Tabs.
    6. Используя кнопку Insert Tab, добавьте в объект TabStrip необходимое количество вкладок.
    7. Поле Index указывает номер вкладки, для которой настраиваются свойства. Выбирая поочередно номер нужной вкладки, введите их наименования с помощью свойства caption.

    8. Нажмите кнопку ОК для закрытия диалогового окна.

    Замечание
    Элемент управления TabStrip не является контейнером. Координаты размещенных в форме элементов управления задаются относительно самой формы, а не элемента управления TabStrip, и при его перемещении остаются на месте. Для того чтобы размещенные в форме элементы не загораживались объектом TabStrip, его необходимо поместить на задний план командой Send to Back.

    Файл-ресурс

    В Visual Basic можно работать с файлом ресурсов в исходном коде программы, используя следующие функции:

    Функция Назначение
    LoadResString Возвращает текстовые строки
    LoadResPicture Возвращает объекты типа ярлыков, значков или курсоров
    LoadResData Возвращает массив данных

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 128.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Всё, праздники закончились... Несколько понедельников подряд я вас поздравлял с Новым годом, Рождеством, Старым Новым годом... Теперь поздравляю с вытрезвлением :-)))))
    Читайте!

    Содержание выпуска

    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на 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

    Дата: 19.01.2003 10:49 | Раздел: Примеры кода | Автор: Бороздин Дмитрий

    ТекстИнф - Пример работы с текстом в VB: разделение текста на слова в массивы, подсчёт количества лов и предложений в тексте, работа с символами.

    Дата: 18.01.2003 10:47 | Раздел: Примеры кода | Автор: Millenium

    WinBAR - Идея создания тулбара для Windows - Но сосвсем по другой форме...

    Дата: 17.01.2003 09:52 | Раздел: Примеры кода | Автор: Половый Александр

    ExtPic - Извлечение рисунков из файлов - в продолжение к примеру PicInDoc.

    Дата: 17.01.2003 09:45 | Раздел: Примеры кода | Автор: Attackie Software

    MouseCommander - Исходники программы MouseCommander 0.98.99 на VB6 Данный пример использует следующие действия: * Написание собственного скриптового языка * Управление курсором мыши и клавишами мыши * Посылка данных с клавиатуры в Windows-программы * Управление чужими окнами * Проигрывание WAV файлов

    Дата: 16.01.2003 09:51 | Раздел: Примеры кода | Автор: Цьока Александр

    NetUserGetInfo - При написании одной из своих программ, столкнулся с тем, что необходимо было проверять привилегии пользователя с заданным именем в домене. Это пример работы с функцией NetUserGetInfo. Оказалось, что доступно большое количество полезной информации о пользователях. Ну кроме того там еще немного всяких мелочей например OLE drag'n'drop результатов.

    Дата: 16.01.2003 09:45 | Раздел: Примеры кода | Автор: EROS

    Пример работы с Excel, QueryDefs - Пример работы с Excel, QueryDefs Особенностью данного примера является перенос данных в Excel используя метод CopyFromRecordset об'екта Sheets, что на порядок быстрее заполнения каждой ячеки в отдельности, перебирая строки и столбцы набора забисей во вложенных циклах.Показан пример использования форматирования страницы и вставка формулы из VB-кода. Также попутно имеется пример работы с QueryDefs, использования запроса хранимого в базе данных. Запрос создан с использованием агрегирующих функций SQL вычисляемыми ядром полями, с группировкой по одному полю и сортировкой по двум полям. В прилагаемой базе данных почти 1300 строк, в результирующем наборе записей -106, весь процесс создания занимает около 1 сек!!!

    Дата: 15.01.2003 10:17 | Раздел: Статьи по VB | Автор: Ларин Александр

    Реализация длинной арифметики на Visual Basic’е - Статья об использовании длинной арифметики (дествия над большими числами, которые не помещаются в стандартных числовых типах VB) на Visual Basic.

    Дата: 15.01.2003 09:49 | Раздел: Примеры кода | Автор: Yura

    Часы в трее - Часы в трэе с редактором стилей.

    Дата: 15.01.2003 09:45 | Раздел: Примеры кода | Автор: Yura

    Сапёр - Еще один клон игры от Микрософт.

    Дата: 14.01.2003 10:11 | Раздел: Примеры кода | Автор: Артем Кривокрисенко

    DrawFocusRect - Рисование фокусного прямоугольника средствами API.

    Дата: 13.01.2003 06:15 | Раздел: Примеры кода | Автор: Беляев Данила

    XO_FMOD - MP3-плэйер с эквалайзером, плагинами и эффектами.

    Дата: 13.01.2003 06:15 | Раздел: Примеры кода | Автор: Беляев Данила

    XO - Простенький музыкальный формат на базе МИДИ комманд.

    Дата: 12.01.2003 06:14 | Раздел: Примеры кода | Автор: Половый Александр

    Пасьянс "Тройка" - Реализация пасьянса "Тройка" на Visual Basic.

    Дата: 12.01.2003 06:11 | Раздел: ActiveX контролы | Автор: Alex_L

    Registry - DLL для работы с реестром.

    Последние 20 тем форума на VBNet.Ru:

    05:12 / 19 янв. как выдернуть инфу отсюда- | Хитов: 1 | Ответов: 0
    01:24 / 19 янв. API для Pwr Managment | Хитов: 2 | Ответов: 0
    01:17 / 19 янв. Помогите разобраться с Gif анимацией | Хитов: 1 | Ответов: 0
    01:03 / 19 янв. Контрол как в Outlook Express | Хитов: 0 | Ответов: 0
    23:33 / 18 янв. Пароль ;) | Хитов: 8 | Ответов: 0
    22:45 / 18 янв. Opera 7.0 | Хитов: 6 | Ответов: 1
    22:39 / 18 янв. Kernel32 | Хитов: 11 | Ответов: 1
    21:55 / 18 янв. Нужен контрол такой же, как DTPicker | Хитов: 5 | Ответов: 1
    21:29 / 18 янв. Помогите плз!!!!!!!! | Хитов: 9 | Ответов: 0
    21:26 / 18 янв. и ещё один вопрос | Хитов: 11 | Ответов: 1
    21:20 / 18 янв. програмирование под DirectX! Help! | Хитов: 5 | Ответов: 1
    20:40 / 18 янв. Как с помощью Adodc1 выполнить Execute | Хитов: 2 | Ответов: 0
    18:30 / 18 янв. Выбор языка | Хитов: 14 | Ответов: 2
    17:43 / 18 янв. подскажите как заполнить TreeView | Хитов: 13 | Ответов: 1
    12:53 / 18 янв. передача файлов через интернет | Хитов: 13 | Ответов: 1
    10:34 / 18 янв. монированные диски в ХР | Хитов: 9 | Ответов: 0
    00:27 / 18 янв. Версия ACCESS или ядра Jet | Хитов: 12 | Ответов: 0
    23:25 / 17 янв. Нужные библиотеки | Хитов: 32 | Ответов: 4
    22:43 / 17 янв. Всем! WWW-ссылки | Хитов: 30 | Ответов: 0
    21:54 / 17 янв. Новое сообщение без темы | Хитов: 8 | Ответов: 0

    Последние поступления в Библиотеку кодов:

    Автоматическое упорядочивание элементов... (87)
    Drag&Drop - контролы (78)

    Новости от VBNet-чиков!:

    11:59 / 17 янв. User Unknown сообщает: Билл Гейтс покажет правительственным структурам программный код Windows
    Компания Microsoft в среду предоставит правительственным структурам программный код операционной системы Windows
    Как сообщает Lenta.Ru со ссылкой на Financial Times, решение о раскрытии своего программного кода руководители Microsoft объясняют желанием убедить правительственные структуры пользоваться системой Windows. Код системы уже поступил в распоряжение НАТО и правительства России.
    Решение Microsoft можно назвать сюрпризом. В прошлом году Билл Гейтс охарактеризовал программный код Windows как самую ценную интеллектуальную собственность своей корпорации. В ходе судебного разбирательства, связанного с обвинениями Microsoft в нарушении антимонопольного законодательства, Гейтс отвергал все требования конкурентов о рассекречивании программного кода.
    Передачу кода правительственным структурам следует расценивать как стремление Microsoft занять прочные позиции на рынке программного обеспечения для государственных организаций. По словам представителя отдела стратегии продвижения продукта Micrososft Крэга Муни, правительства занимают второе место на общем потребительском рынке в данной сфере. Мунди уверен, что правительственные организации не рассекретят вверенную им интеллектуальную тайну.
    В значительной степени шаг Microsoft продиктован увеличением среди правительственных структур пользователей операционной системы Linux с открытым программным кодом. Билл Гейтс и его коллеги надеются, что сумеют убедить потребителей из госструктур в надежности и безопасности Windows.
    В ближайшее время Microsoft передаст программные коды к ОС Windows XP и Windows 2000. Через некоторый период будут раскрыты коды к новой системе для серверов и Windows CE, используемой в мобильных компьютерах. Представители правительственных структур сумеют также посетить офис компании и ознакомиться с небольшим количеством кодов к другим программным продуктам. Соглашения о передаче кода подписаны уже с 10 правительственными структурами. Еще с 20 организациями и ведомствами Microsoft ведет переговоры.
    (источник:http://www.federalpost.ru/)

    14:05 / 14 янв. Gella сообщает: Впервые в России! Полный трек MCAD по Visual Basic .NET + подарок первым слушателям!

    Центр Компьютерного Обучения "Специалист" при МГТУ им. Н.Э.Баумана при информационной поддержке профессионального журнала "Программист" представляет новейшую программу сертификации Microsoft для разработчиков - Microsoft Certified Application Developer (MCAD). 27 января 2003 г. в Центре стартует первый в России трек подготовки MCAD по Visual Basic .NET.

    Новая программа сертификации Microsoft Certified Application Developer (MCAD) предназначена для специалистов, использующих Microsoft Visual Studio .NET и .NET Framework для разработки, внедрения и поддержки приложений на уровне предприятия, отдельных компонент, клиентов для рабочих станций и Web, сервисов для хранилищ данных. Чтобы получить статус Microsoft Certified Application Developer, необходимо выбрать один из языков программирования - Visual Basic .NET или Visual C#, изучить 7 курсов и сдать 3 экзамена.

    Особенности новой сертификации - отсутствие экзамена по архитектуре, который необходим для практической работы только руководителей проектов и обязателен для сертификации Microsoft Certified Solutions Developer (MCSD) - до сегодняшнего дня единственной сертификационной программы для разработчиков Microsoft.

    Специальный подарок для первых слушателей! Первые слушатели курсов программы MCAD получают в подарок от информационного спонсора свежий номер журнала "Программист"!

    Также, все курсы программы MCAD уже сейчас можно пройти не выходя из дома - дистанционно!

    Подробнее: http://www.specialist.ru/news/news.asp?newsid=150

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Новости сайта MSDN

    наверх

    Новости сайта GotdotNet

    • 17.01.2003 - Открыта регистрация на участие в мастер-классах на gotdotnet.ru
      Мастер Класс представляет собой серию online-семинаров по разработке приложений с использованием технологий .NET Framework.
    • 15.01.2003 - Получи футболку с логотипом MSDN!
      Разместите в форуме по обсуждению качества онлайнового перевода пять отзывов-рецензий на переводы статей библиотеки MSDN и получите в качестве вознаграждения футболку с логотипом MSDN !

    Новые статьи:

    • 17.01 - Использование ActiveX-элементов с Windows Forms в Visual Studio .NET
    • 16.01 - Планирование размера системных ресурсов для Интернет систем

    наверх

    Новости сайта dotSite

    Новые статьи:

    Новые примеры:

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: rafa

    Ответ ожидается по этому адресу

    Как можно использовать разряды числа LONG для хранения логичеких значений. Нужно для баз данных - 32 бита поля LONG это же 32 логических поля BOOLEAN! Зачем заводить отдельные поля? Желательно все это оформить в три функции проверить бит, сбросить бит, поднять бит. (флаг). У самого пока есть только идея, реализовать не могу.

    Автор вопроса: Артур

    Ответ ожидается по этому адресу

    Некоторые программы (например, офис, или архиваторы) в окно "свойства" своих файлов (то, что открывается из контекстного меню проводника) добавляют собственные вкладки. Как это сделать для своих файлов?

    Автор вопроса: Артур

    Ответ ожидается по этому адресу

    Суть в следующем. Я с помощью апи SetParent делаю контрол дочерним окном рабочего стола. После этого мой контрол, естественно, повисает на экране отдельно от моей формы, чего я, в общем-то, и добиваюсь. Но при этом он отмечается собственной кнопкой на Taskbar-e. Как этого избежать? Ведь у контрола просто нет свойства ShowInTaskbar.

    Если сформулировать по-другому: как добиться, чтобы окно не отображалось на Taskbar, если нет возможности изменить свойство ShowInTaskbar?

    Автор вопроса: Игорь

    Ответ ожидается по этому адресу

    Помогите узнать, сколько байтов прошло через сетевую карту. Говорят, что можно без Winsocka с помощью API-функции, но я не нашел.

    Автор вопроса: Mind Engine/team PowerAmiga

    Ответ ожидается по этому адресу

    На днях поковырялся с ocx MSMAPI 6.0, все пыхтит ок (хотя и тормознуто, клиент The Bat!) но возник затык с задачей по сохранению аттачa во внешний файл, ну скока не ковырялся, не просек метода, который бы дал че хочу! =(

    Просветите кто могет, или пинка к более продвинутому контролу по сабжу дайте! :)

    Автор вопроса: Pistol

    Ответ ожидается по этому адресу

    На форме имеется Frame с controls(text boxes, buttons и labels).
    Как сделать так, что бы на Form_Resize не только растягивался фрэйм, но и контролы все изменяли свое местоположение в нем, и не меняли свой размер и порядок, а только расстояние между друг другом ?

    Автор вопроса: Шакиров Виталий

    Ответ ожидается по этому адресу

    Пишу программу основанную на технологии клиент-сервер, но в наличии нет полной документации по winsock, если у кого нибудь она есть то я буду Вам очень благодарен если Вы вышлете ее мне: email - ntfs@netmail.kg

    Автор вопроса: Oxygen

    Ответ ожидается по этому адресу

    Есть две проги. отношения они друг к другу не имеют. Как можно передать значение какой-либо переменной из одной в другую. Пользоваться левыми файлами и буфером обмена не пользоваться.

    Автор вопроса: lom

    Ответ ожидается по этому адресу

    Не подскажите где можно найти описание всех свойств и методов контрола MediaPlayer

    Автор вопроса: goodroman

    Ответ ожидается по этому адресу

    Я хочу создать в реестре значение типа DWORD равное = 1, а оно мне создаёт 31(в шестнадцатеричной) и 49 (в десятичной). Привожу код. Подскажите пожайлуста где ошибка?

    Private Sub PiZdA_Click()
    Dim hREn As Long, IDenT As Long, znak As String
    hREn = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\", 0, KEY_ALL_ACCESS, IDenT)
    znak = 1
    Print znak
    Call RegSetValueEx(IDenT, "NoDesktop", 0, REG_DWORD, ByVal znak, 4)
    End Sub

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Как с помощью Sock пердать с одного компьютера что-нибуть на другой ? Т.е. мне мужно что-бы один Sock отсылал данные другой принимал. Связь локальная

    Автор вопроса: Zoomer

    Ответ ожидается по этому адресу

    Можно ли программно отключить монитор, мышь и клавиатуру?

    Автор вопроса: Vir

    Ответ ожидается по этому адресу

    Привет всем! Пока могу с вами говорить. Пришло мне по почте письмо 15 января, наверное с вирусом. Может я и не единственный.
    Писмо имеет "Тему: Fw: Redirection error notification"; "От: Vvi@izhstal.ru.COPYMAIL" и вложение с названием SiamoDiTe.exe
    Если письмо открыть блокнотом то между тегами есть скрипт

    iframe id="Sample" style="display:none"

    и

    setTimeout('f2();',5000);
    function f2()
    {
    Sample.document.write(' ');
    }

    Если кто знает, что это за функции и что это за вирус напишите.

    Автор вопроса: Владимир

    Ответ ожидается по этому адресу

    Подскажите,пожалуйста, как проверить состояние "горячей клавиши", сменить присвоенное ей действие или назначить новое?

    Ответы:

    Вопрос:

    Есть сайт заказов на ASP. Полученный заказ отправляется на мэйл.
    Вопрос: можно ли полученый заказ отправить на факс или распечатать мэйл автоматом при его получении?

    Ответ:

    Автор ответа: P@Ssword

    Если юзать M$ OutGluk, то просто создаёшь правило проверки входящей почты: при получении через учётную запись <имя> распечатать. С другими почтовыми программами - аналогично.

    Вопрос:

    У меня два вопроса:
    1) возможно ли сделать так, чтобы программа меняла свой код сама (переделывала бы себя сама по ходу своей работы)
    2) создал я новое меню(динамически), а как им пользоваться (как писать функции которые будут выполнятся при нажатии на созданное меню) где указывается имя динамически-созданного меню или как его и его методы и свойства ещё использовать

    Код создания меню:
    Private Declare Function CreatePopupMenu Lib "user32" () As Long
    Private Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu _
    As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As _
    Any) As Long
    Const MF_STRING = &H0&
    Dim hMenu As Long
    Private Sub Form_Load()
    'Создаём пустое всплывающие меню
    hMenu = CreatePopupMenu()
    'Добавляем несколько пунктов в меню
    AppendMenu hMenu, MF_STRING, ByVal 0&, "Hello !"
    AppendMenu hMenu, MF_STRING, ByVal 0&, ByVal 0&
    AppendMenu hMenu, MF_STRING, ByVal 0&, "TrackPopupMenu"
    End Sub

    пробовал создавать как контрол, но и это не выходит (пишет, что класса VB.Menu нет)

    В чём тут дело ?

    Ответ:

    Автор ответа: RaZoom

    Если ты создаешь меню средствами WinAPI, то и работать с ним придется через API, а именно вот так:

    'Код модуля
    Public Declare Function CreatePopupMenu Lib "user32" () As Long
    Public Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As Any) As Long
    Public Declare Function TrackPopupMenu Lib "user32" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal x As Long, ByVal y As Long, ByVal nReserved As Long, ByVal hWnd As Long, lprc As RECT) As Long
    Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
    Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Public Const MF_STRING = &H0&
    Public Const WM_COMMAND = &H111
    Public Const GWL_WNDPROC = (-4)
    Public hMenu&
    Public Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
    End Type
    Public Type POINTAPI
    x As Long
    y As Long
    End Type
    Global proc&

    Public Function PopupProc&(ByVal lngHwd&, ByVal lngMsg&, ByVal lngWparam&, ByVal lngLparam&)
    If lngMsg = WM_COMMAND Then
    Select Case lngWparam
    Case -101
    MsgBox "Привет!", vbExclamation
    Case -103
    MsgBox "Еще раз привет!", vbExclamation
    Case Else
    End Select
    End If
    PopupProc = CallWindowProc(proc, lngHwd, lngMsg, lngWparam, lngLparam)
    End Function

    'Код формы
    Private Sub Form_Load()
    hMenu = CreatePopupMenu()
    AppendMenu hMenu, MF_STRING, ByVal -101&, "Hello !"
    AppendMenu hMenu, MF_STRING, ByVal -102&, ByVal 0&
    AppendMenu hMenu, MF_STRING, ByVal -103&, "TrackPopupMenu"
    proc = SetWindowLong(hWnd, GWL_WNDPROC, AddressOf PopupProc)
    End Sub

    Private Sub Form_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
    If Button = vbRightButton Then
    Dim rc As RECT, pos As POINTAPI
    GetCursorPos pos
    With rc
    .Left = 0
    .Top = 0
    .Right = 0
    .Bottom = 0
    End With
    TrackPopupMenu hMenu, 0, pos.x, pos.y, 0, Form1.hWnd, rc
    End If
    End Sub

    Особое внимание: wIDNewItem в каждой строке AppendMenu должен иметь _уникальное значение_ за исключением случая, когда разные пункты меню должны выполнять одни и те же действия.

    Вопрос:

    как в ресурсы запихнуть готовые диалоги(формы), а потом юзать их оттуда (как MustDie делает с SHELL32.DLL).
    К примеру я создам одну DLL'ку а потом буду юзать картинки, диалоги оттуда другими программами.

    Ответ:

    Автор ответа: P@Ssword

    IMHO, shell32.dll не позволяет напрямую брать у неё диалоги, а делается это с помощью WinAPI. А что диалоги у неё в ресурсах - так это причуды C++ и к делу отношения не имеют. А чтобы сделать подобное на VisualBASIC, просто создаёшь ActiveX.DLL, туда кидаешь формочки и модуль класса, а в классе пишешь нечто вроде

    Public Sub ShowMySuperPuperParatruperDialogue (ZZZagolovok As String)
    Dim frm As Form1

    Set frm = New Form1
    frm.Show
    End Sub

    Public Function Cool (Flags As Long) As String
    Dim frm As Form2

    Set frm = New Form2
    frm.Show vbModal
    Cool = frm.Caption
    Unload frm
    End Function

    В последнем случае при закрытии формы её надо не выгружать, а ПРЯТАТЬ (Me.Hide).

    Вопрос:

    Каким образом можно узнать информацию о файле, точнее *.avi, нужно длительность, размеры, и т.п.

    Ответ:

    Автор ответа: Владимир Кирко

    Чуть модифицированный пример из API Guide 3.7

    ------------------------------------------------------
    Private Const OF_SHARE_DENY_WRITE As Long = &H20
    Private Type AVIFileInfo
    dwMaxBytesPerSec As Long
    dwFlags As Long
    dwCaps As Long
    dwStreams As Long
    dwSuggestedBufferSize As Long
    dwWidth As Long
    dwHeight As Long
    dwScale As Long
    dwRate As Long
    dwLength As Long
    dwEditCount As Long
    szFileType As String * 64
    End Type
    Private Declare Function AVIFileOpen Lib "avifil32" Alias "AVIFileOpenA" (ppfile As Long, ByVal szFile As String, ByVal mode As Long, pclsidHandler As Any) As Long
    Private Declare Function AVIFileRelease Lib "avifil32" (ByVal pfile As Long) As Long
    Private Declare Function AVIFileInfo Lib "avifil32" Alias "AVIFileInfoA" (ByVal pfile As Long, pfi As AVIFileInfo, ByVal lSize As Long) As Long
    Private Declare Sub AVIFileInit Lib "avifil32" ()
    Private Declare Sub AVIFileExit Lib "avifil32" ()
    Private Sub Form_Load()
    'KPD-Team 2001
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    Dim hFile As Long, AviInfo As AVIFileInfo
    'initialize the AVIFile library
    AVIFileInit
    'create a handle to the AVI file
    If AVIFileOpen(hFile, "C:\WINNT\clock.avi", OF_SHARE_DENY_WRITE, ByVal 0&) = 0 Then
    'retrieve the AVI information
    If AVIFileInfo(hFile, AviInfo, Len(AviInfo)) = 0 Then
    MsgBox "AVI dimensions: " + CStr(AviInfo.dwLength) + " sec, " + CStr(AviInfo.dwWidth) + "x" + CStr(AviInfo.dwHeight)
    Else
    MsgBox "Error while retrieving AVI information... :("
    End If
    'release the file handle
    AVIFileRelease hFile
    Else
    MsgBox "Error while opening the AVI file... :("
    End If
    'exit the AVIFile library and decrement the reference count for the library
    AVIFileExit
    End Sub

    Ответ:

    Автор ответа: Loki

    В этом тебе поможет FSO!

    Ответ:

    Автор ответа: Иван

    2. Дело в том, что Win2000 не поддерживает такую функцию вообще и на сколько мне известно, в Win2000 и в WinXP не возможно убрать свою программу с диспетчера задач.

    Вопрос:

    Помогите решить задачу по получению данных с удаленных веб-сайтов.
    На сколько я понял стандартное решение это Microsoft Internet Controls (SHDOCVW.DLL), открываем Explorer: Set IE = New InternetExplorer... это все понятно, а как получить данные от Explorer открытого не программой или от нескольких открытых страниц, есть ли функция возвращающая количество IE и переключения между ними или подскажите другие методы.

    Ответ:

    Автор ответа: Владимир Кирко

    Попробуйте посмотреть статью
    http://www.infocity.kiev.ua/prog/c/content/c033.phtml?id=1438
    Там, правда, не всё просто, но, вроде бы, есть исходники.

    Вопрос:

    Как в центре MDI формы написать какой-то текст?

    Ответ:

    Автор ответа: xMaxtor

    Создай просто форму со свойством BorderStyle=0 и на ней поставь Label и напиши что тебе нужно, а форму можно постаить хоть по ценру хоть сбоку, по другому просто не как.

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Попробуй использовать функцию TextOut или DrawText.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 129.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта 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!!!

    Несколько слов от автора:

    Новый выпуск рассылки! Присылайте коды в рассылку! Если каждый из вас пришлёт по одному коду, то этого хватит, чтобы выпускать рассылку каждый день в течение двух лет!
    Читайте!

    Содержание выпуска

    • Книги

    • Проверка орфографии
    • Как узнать данные, скрытые за звездочками
    • Как спрятать данные за звездочками более безопаснее
    • Получение содержимого n-ой строки в Multiline TextBox
    • Скролинг текста
    • Как сделать первую букву каждого слова заглавной

    • Вопрос/Ответ

    Книги

    Переход на 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 можно найти здесь.

    наверх

    Проверка орфографии

    Хотелось ли вам добавить возможность проверки орфографии вашего TextBox'а? Такое возможно, если на вашем компьютере установлен MsWord.

    Private Sub Command1_Click()
    Text1 = SpellCheck(Text1)
    End Sub

    Public Function SpellCheck(ByVal IncorrectText$) As String
    Dim Word As Object, retText$
    On Error Resume Next
    'Создать объект и загрузить Word
    Set Word = CreateObject("Word.Basic")
    'Показать Word и вставить в него ваш текст
    Word.AppShow
    Word.FileNew
    Word.Insert IncorrectText
    'Запустить проверку орфографии
    Word.ToolsSpelling
    Word.EditSelectAll
    'Выделить текст и загрузить его обратно в TextBox
    retText = Word.Selection$()
    SpellCheck = Left$(retText, Len(retText) - 1)
    'Закрыть файл в Word и вернуться в Visual Basic.
    Word.FileClose 2
    Show
    'Освободить память от объекта word
    Set Word = Nothing
    End Function

    наверх

    Как узнать данные, скрытые за звездочками

    Существует большое количество программ,которые могут вытащить данные, скрытые за звездочками. Вот и я нашел вариант такой программы. Вам достаточно разместить на форме элемент Timer, запустить программу, найти любое текстовое окно, в ктором данные спрятаны за зведочками и два раза щелкнуть мышью на этой на этом текстовом окне.

    Хотя и не факт, что вы увидите спратанные за звездочками данные! :))

    Но я на своем компьютере в некоторых программах смог увидеть несколько запароленных данных. Какие программы? А не скажу...

    И в завершение, позвольте напомнить вам, как все-таки можно более или менее спрятать данные за звездочками.

    Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
    Private Type POINTAPI
    x As Long
    y As Long
    End Type
    Private Const EM_SETPASSWORDCHAR = &HCC

    Private Sub Form_Load()
    Timer1.Interval = 100
    End Sub

    Private Sub Timer1_Timer()
    Dim pi As POINTAPI
    GetCursorPos pi
    Dim wh As Long
    wh = WindowFromPoint(pi.x, pi.y)
    Me.Caption = "Текущий handle : " & wh
    SendMessage wh, EM_SETPASSWORDCHAR, 0, 0
    End Sub

    наверх

    Как спрятать данные за звездочками более безопаснее

    Если вы смотрели пример под номером 299 (вот здесь), то вы могли вытащить скрытые за звездочками данные. Но вот данный пример сможет более качественно скрыть информацию в текстовом поле.

    Предположим, вы хотите добавить в вашу программу доступ по паролю. У вас есть текстовое поле, в которов вы набираете пароль, скрывающийся за звездочками. Но существует много программ, которые с легкостью показывают текст, скрытый за звездочками. Небольшой совет:

    в разделе формы General Declarations объявите переменную, которая будет содержать код:

    Dim pswd As String

    в свойствах текстового поля установите в PasswordChar звёздочку "*". Теперь кликните по текстовому полю два раза и выберите событие Text1_KeyPress, впишите:

    Private Sub Text1_KeyPress(KeyAscii As Integer)
    pswd = pswd + Chr(KeyAscii)
    KeyAscii = Asc("*")
    End Sub

    Теперь нажатия будут отлавливаться, а передоваться будут текстовому полю только звёздочки! И программа-взломщик пароль уже не достанет!!!

    наверх

    Получение содержимого n-ой строки в Multiline TextBox

    Расположите на форме элемент CommandButton и элемент TextBox. Установите свойство Multiline элемента TextBox как True.

    Синтаксис вызова функции прост: GetLine(НазваниеОкна.hWnd, НомерСтроки). Данный пример (при нажатии на кнопку) покажет содержимое 2-й строки элемента TextBox.

    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal msg As Long, ByVal wp As Long, lp As Any) As Long
    Const EM_LINEINDEX = &HBB
    Const EM_LINELENGTH = &HC1
    Const EM_GETLINE = &HC4
    Public Function GetLine(hWnd As Long, Line As Long) As String
    Dim sBuf As String, nLen As Long, nIndex As Long
    nIndex = SendMessage(hWnd, EM_LINEINDEX, Line - 1, ByVal 0&)
    If nIndex < 0 Or Line <= 0 Then Exit Function
    nLen = SendMessage(hWnd, EM_LINELENGTH, nIndex, ByVal 0&)
    sBuf = Space(nLen + 1)
    Mid$(sBuf, 1, 1) = Chr$(nLen And &HFF)
    Mid$(sBuf, 2, 1) = Chr$(nLen \ 256)
    SendMessage hWnd, EM_GETLINE, Line - 1, ByVal sBuf
    GetLine = Left$(sBuf, nLen)
    End Function
    Private Sub Form_Load()
    Text1.Text = "1111111" & vbCrLf & "22222" & vbCrLf & "3333" & vbCrLf & "4444"
    End Sub

    Private Sub Command1_Click()
    MsgBox GetLine(Text1.hWnd, 2)
    End Sub

    наверх

    Скролинг текста

    Расположите на форме элемент CommandButton, элемент TextBox, элемент Timer.

    Dim strText As String
    Private Sub Command1_Click()
    strText = String(30, " ") + "Спасибо, что вы посетили сайт VBnet.RU. Надеюсь, вы нашли много полезного для себя."
    Timer1.Interval = 100
    Timer1.Enabled = True
    End Sub
    Private Sub Form_Load()
    Command1.Caption = "Начать скролинг"
    With Text1
    .Font = "Courier New Cyr"
    .FontSize = 12
    .Width = 3400
    End With
    End Sub
    Private Sub Timer1_Timer()
    strText = Mid(strText, 2) & Left(strText, 1)
    Text1 = strText
    End Sub

    наверх

    СКак сделать первую букву каждого слова заглавной

    Разместите на форме элемент TextBox. Запустите проект на выполнение и попробуйте набрать несколько слов в элементе TextBox.

    Private Function ccProperCase(MySourceControl As Control)
    On Error GoTo ErrH
    Dim strString As String
    strString = MySourceControl.Text
    If IsNull(strString) Then Exit Function
    strString = StrConv(strString, vbProperCase)
    MySourceControl.SelStart = Len(strString)
    MySourceControl.Text = strString
    Exit Function
    ErrH:
    MsgBox "Error at ccProperCase:::- " & Err.Number & " - " & Err.Description, vbCritical
    Exit Function
    End Function

    Private Sub Text1_Change()
    Call ccProperCase(Text1)
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: 001

    Ответ ожидается по этому адресу

    Есть ли в VB какая-либо связь с ASSEMBLERом?

    Автор вопроса: Andrushin Sergey

    Ответ ожидается по этому адресу

    Существую ли функции отсчитывающие кол-во времени прошедшего с момента
    запуска проложения. Если да, то перечислите их.

    Автор вопроса: Michael Fezulaev

    Ответ ожидается по этому адресу

    Есть у меня проблема не как не могу решить её.
    Есть textbox когда я его закриваю с помащи свойства Locked от изменений то не получается можно его изменить с помащи меню которое выходит нажав на правую кнопку мышки и мне надо это убрать.

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Как узнать какой документ стоит в печати, сколько их. Какие данные вообще можно от них узнать. Можно ли узнать время выхода их на печать ?

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Как узнать данные из BIOS (дата) под XP ?

    Автор вопроса: Александр

    Ответ ожидается по этому адресу

    Возможно ли одновременно работать с MDB базой и DAO и ADO, почему-то начали пропадать записи. База используется в основном на корректировку. Записей порядка 27000, но объем не большой 3-5 Мб. Для вывода статистики используется ДатаРепорт подключенный вручную. Доступ к базе 2 пользователя, блокировка оптимистичная. Может какие идеи есть помогите пож.

    Автор вопроса: Алеша

    Ответ ожидается по этому адресу

    Кто-нибудь знает как загрузить и сохранить файл в ListView если ListView 3 столбика.Тагже вставить рисунки.

    Автор вопроса: lom

    Ответ ожидается по этому адресу

    У меня следующая проблема: пишу...

    Private Sub Form_Load()
    Dim objWord As Word.Application
    Dim objDoc As Word.Document

    Set objWord = New Word.Application
    Set objDoc = Word.Documents.Add

    objWord.Visible = True
    objDoc.Activate

    End Sub

    ...вояникает Run-time error '429'
    ActiveX component can't create object

    (на компе установлен VB 6.0 (SP5), Word 2000), а попробовал в VB 5-всё работает, так в чём проблема?

    Автор вопроса: Антон

    Ответ ожидается по этому адресу

    У меня такой вопрос: Как вызвать меню файла (т.е. как в проводнике, когда щелкаешь по нему правой кнопкой) в собственной программе.

    Автор вопроса: shadow

    Ответ ожидается по этому адресу

    есть куча картинок (pic001.bmp, pic002.bmp... и т.д.). Необходимо
    собрать их в avi. Спрашивается: КАК??? или ссылочку дайте.

    Автор вопроса: Антон

    Ответ ожидается по этому адресу

    Как сделать просмотр папки в ListView? (Например, как в Windows Commander) Причем значки должны соответствовать файлам. А также должна быть сортировка.
    Если есть у кого-нибудь исходники и кому не в лом мыльте на leonxl@vpcit.ru

    Автор вопроса: Michael Fezulaev

    Ответ ожидается по этому адресу

    Создал базу даных в access XP и есть там поле с раширение Ole Object для фоток пытался вставить в picturebox или ole кричит не может свезать обьект с базай данных.
    Пользуесь с обьектом Adodc.
    Не подскажете что можно сделать

    Ответы:

    Вопрос:

    Можно ли запустить мою программу после того как польяователь нажал на кнопку Выключения компьютера или его переяагруяки черея меню Пуск?
    Примечание: желательно, чтобы код(коды) были под Win98/Me и(или) WinXP.

    Ответ:

    Автор ответа: Lars

    Тебе надо занести в реестр в секцию одноразового автозапуска (HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce) свою прогу, точнее сказать путь к ней. А когда происходит Form_QueryUnload, т.е. нормальное состояние выхода из проги, удалять из секции одноразового запуска.

    Вопрос:

    1.Мне необходимо получить список всех зарегестрированных на машине серверов, а потом прочитать список их System DSN для каждого сервера. Как это можно сделать?
    2. Для того чтобы исключить программу из диспетчера задач по Ctrl-Alt-Del я использую функцию RegisterServiceProcess. Под 95 виндами все работает шикарно, но на Windows 2000 Server (SP2), на ней прога ругается и говорит, что ссылку на данную функцию в kernel32 она не находит. В чем может быть дело? Если кто сталкивался с такой байдой буду признателен за совет.

    Ответ:

    Автор ответа: as

    2. B W2000 нет RegisterServiceProcess.
    Нужно делать перехват вызовов NtQuerySystemInformation ...

    Вопрос:

    Помогите решить задачу по получению данных с удаленных веб-сайтов.
    На сколько я понял стандартное решение это Microsoft Internet Controls (SHDOCVW.DLL), открываем Explorer: Set IE = New InternetExplorer... это все понятно, а как получить данные от Explorer открытого не программой или от нескольких открытых страниц, есть ли функция возвращающая количество IE и переключения между ними или подскажите другие методы.

    Ответ:

    Автор ответа: Владимир Кирко

    На
    http://www.relib.com/sourcescode.asp?id=179&NoBox=True
    лежал в своё время такой пример (сейчас его найти не могу, но текст остался, и даже кое-как работает, так что разобраться можно.

    http://www.relib.com/articles/article.asp?id=73 - близкая, по теме, статья).
    'Прочитать веб-страницу из запущенного Internet Explorer
    'Пример показывает как с помощью COM и коллекции ShellWindows
    'определить есть ли запущенные окна Internet Explorer и получить
    'содержимое просматриваемых веб-страниц.
    'References: Microsoft Internet Controls (SHDOCVW.DLL),
    'Microsoft HTML Object Library (MSHTML.TBL)
    'Author: Tim v. Schauroth
    Dim SWs As New SHDocVw.ShellWindows
    Dim IE As SHDocVw.InternetExplorer

    'Главная процедура
    Public Sub ReadHTML()
    'Dim Doc
    'Цикл по всем окнам IE
    For Each IE In SWs
    Set Doc = IE.document
    If TypeOf Doc Is HTMLDocument Then
    sTitle = Doc.Title
    Set IEBody = Doc.body
    Set IETextRange = IEBody.createTextRange()
    HTMLCode = IETextRange.htmlText ' Текст веб-страницы
    End If
    Next
    End Sub

    Private Sub Command1_Click()
    Dim Doc
    'Цикл по всем окнам IE
    For Each IE In SWs
    Set Doc = IE.document
    If TypeOf Doc Is HTMLDocument Then
    sTitle = Doc.Title
    Set IEBody = Doc.body
    Set IETextRange = IEBody.createTextRange()
    HTMLCode = IETextRange.htmlText ' Текст веб-страницы
    Text1.Text = HTMLCode
    End If
    Next

    End Sub

    Вопрос:

    Суть в следующем. Я с помощью апи SetParent делаю контрол дочерним окном рабочего стола. После этого мой контрол, естественно, повисает на экране отдельно от моей формы, чего я, в общем-то, и добиваюсь. Но при этом он отмечается собственной кнопкой на Taskbar-e. Как этого избежать? Ведь у контрола просто нет свойства ShowInTaskbar.

    Если сформулировать по-другому: как добиться, чтобы окно не отображалось на Taskbar, если нет возможности изменить свойство ShowInTaskbar?

    Ответ:

    Автор ответа: shadow

    А какие этико-моральные соображения мешают тебе положить этот контрол на форму без полей и заголовка, и обгрызьть ей края по размеру контрола ( и естественно поставить ShowInTaskbar в false ) ???

    Вопрос:

    На форме имеется Frame с controls(text boxes, buttons и labels).
    Как сделать так, что бы на Form_Resize не только растягивался фрэйм, но и контролы все изменяли свое местоположение в нем, и не меняли свой размер и порядок, а только расстояние между друг другом ?

    Ответ:

    Автор ответа: Корик

    Я не знаю, есть ли способ попорще, но ведь у тебя есть евент FORM_RESIZE ну так и изменяй там, как захочешь. Только давай не абсолютные значения, а относительные размера формы, т.е. в процентах от её размера.

    Вопрос:

    Не подскажите где можно найти описание всех свойств и методов контрола MediaPlayer

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Да в MSDN есть!
    Grafics and multimedia servisies->Windows Media->Windows media player 7 - это главная страница медиа плеера. Дальше иди по ссылкам туда, куда надо.

    Вопрос:

    Я хочу создать в реестре значение типа DWORD равное = 1, а оно мне создаёт 31(в шестнадцатеричной) и 49 (в десятичной). Привожу код. Подскажите пожайлуста где ошибка?

    Private Sub PiZdA_Click()
    Dim hREn As Long, IDenT As Long, znak As String
    hREn = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\", 0, KEY_ALL_ACCESS, IDenT)
    znak = 1
    Print znak
    Call RegSetValueEx(IDenT, "NoDesktop", 0, REG_DWORD, ByVal znak, 4)
    End Sub

    Ответ:

    Автор ответа: Владимир Кирко

    У Вас переменная znak описана как String. Вот Вам её так и записывают как просили.

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Кажется, именно тебе недавно отвечал на этот вопрос.
    Либо объяви znak as long
    либо напиши znak=chr(1) (именно этот вариант у меня заработал)

    Ответ:

    Автор ответа: Mind Engine

    Народ, вы чего в API то лезете за реестром? На любой тачке установлена виндявая скриптоза и она имеет классные пункции по работе с реестрозой! И никаких лишних движений нэ надо делать для юзанья этого рулеза (по крайней мере по сравнении с API)!

    Берет правда тока вот такие типы, зато могет по всем разделам шариться!

    REG_SZ
    REG_EXPAND_SZ
    REG_BINARY
    REG_DWORD

    Ну сами лукайте!

    ------

    Dim ws, pathos, valos
    Set ws = CreateObject("WScript.Shell")

    pathos = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\"

    valos = 1

    'Писалка и просто пишет и создает, если ключа не было!
    ws.RegWrite pathos & "DisableLockWorkstation", valos, "REG_DWORD"
    'Читалка
    ws.RegRead(pathos & "DisableLockWorkstation")
    'Удалялка
    ws.RegDelete pathos & "DisableLockWorkstation"

    ------

    Удивительное рядом! :о)

    Вопрос:

    Как с помощью Sock пердать с одного компьютера что-нибуть на другой ? Т.е. мне мужно что-бы один Sock отсылал данные другой принимал. Связь локальная

    Ответ:

    Автор ответа: ]CBK[CRaSH

    Ну тут два пути. Смотря по какому протаколу они у тебя будут работаь. Если по TCP/IP тогда вот код:

    Клиент

    Private Sub Form_Load()
    tcpClient.RemotePort = 100
    End Sub
    Private Sub tcpClient_DataArrival(ByVal bytesTotal As Long)
    Dim strData As String
    tcpClient.GetData strData
    txtReceive.Text = strData
    End Sub
    Private Sub cmdSend_Click()
    tcpClient.SendData txtSend.Text
    End Sub
    Private Sub cmdConnect_Click()
    tcpClient.RemoteHost = txtPCName.Text
    tcpClient.Connect
    End Sub

    Сервер

    Private Sub Form_Load()
    tcpServer.LocalPort = 100
    tcpServer.Listen
    End Sub

    Private Sub tcpServer_DataArrival(ByVal bytesTotal As Long)
    Dim strData As String
    tcpServer.GetData strData
    txtReceive.Text = strData
    End Sub
    Private Sub cmdSend_Click()
    tcpServer.SendData txtSend.Text
    End Sub

    Private Sub tcpServer_ConnectionRequest(ByVal requestID As Long)
    If tcpServer.State <> sckClosed Then tcpServer.Close
    tcpServer.Accept requestID
    End Sub

    А вот с протаколом UDP все обстаит гараздо лучше:

    Клиент

    Private Sub Form_Load()
    sckClient.RemotePort = 100
    sckClient.connect
    End Sub
    Private Sub tcpServer_DataArrival(ByVal bytesTotal As Long)
    'Эта процедура обеспецевает прием данных. ВО
    Dim strData As String
    sckClient.GetData strData
    txtReceive.Text = strData
    End Sub

    сервер

    Private Sub Form_Load()
    sckserver.localPort = 100
    sckserver.bind
    End Sub
    Private Sub tcpServer_DataArrival(ByVal bytesTotal As Long)
    'Эта процедура обеспецевает прием данных. ВО
    Dim strData As String
    sckserver.GetData strData
    txtReceive.Text = strData
    End Sub

    Вопрос:

    Привет всем! Пока могу с вами говорить. Пришло мне по почте письмо 15 января, наверное с вирусом. Может я и не единственный.
    Писмо имеет "Тему: Fw: Redirection error notification"; "От: Vvi@izhstal.ru.COPYMAIL" и вложение с названием SiamoDiTe.exe
    Если письмо открыть блокнотом то между тегами есть скрипт

    iframe id="Sample" style="display:none"

    и

    setTimeout('f2();',5000);
    function f2()
    {
    Sample.document.write(' ');
    }

    Если кто знает, что это за функции и что это за вирус напишите.

    Ответ:

    Автор ответа: Владимир Кирко

    Это, если он вирус, то вирус безобидный.

    iframe id="Sample" style="display:none"

    Sample - это просто имя фрейма (назвали его так).

    setTimeout('f2();',5000); - установка задержки по времени в 5 сек., т.е. через 5 сек. будет запущена на исполнение функция f2. Причём один раз.

    function f2()
    {
    Sample.document.write(''); - запись во фрейм пустой сроки.
    }

    Впрочем возможна запись какой-то картинки. (Я когда копировал Ваш код, то между апострофами был значок пустой картинки, хотя в тексте он не виден).

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Вообще честные люди не очень любят разбрасываться хорошими программами. Попробуй проверить аттач антивирусом. Если ты никого не просил, чтоб тебе эту программку прислали, удаляй этот сообщение с файлом подальше!!!
    Я один раз открыл прикрепленную программку - в компе завелся вирус. На экране крутится спираль, ниче с ней не сделаешь. Пришлось сносить систему.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 130.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск!
    Читайте!

    Содержание выпуска

    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на 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

    Дата: 25.01.2003 09:36 | Раздел: Примеры кода | Автор: Беляев Данила

    Rate - Разгон порта PS/2 для получения более плавного перемещения курсора в системах 9x

    Дата: 25.01.2003 09:13 | Раздел: Примеры кода | Автор: Беляев Данила

    XO_Sound - Проигрыватель mp3 с эквалайзером и плагинами

    Дата: 25.01.2003 08:35 | Раздел: Статьи по VB | Автор: Гриненко Виталий

    Классовая теория програмизьма - Статья посвящена VB .NET. Это уже третья статья Гриненко Виталия по этой теме. В ней рассматривается множество серьёзных мелочей, без знания которых освоить технологию .NET просто невозможно.

    Дата: 24.01.2003 11:11 | Раздел: Примеры кода | Автор: Last_Santa

    Пример графики в VB.Net - Пример использования GDI+ в Visual Basic .NET.

    Дата: 24.01.2003 11:11 | Раздел: Примеры кода | Автор: Last_Santa

    Пример печати в VB.Net - Пример печати в Visual Basic .NET.

    Дата: 24.01.2003 10:49 | Раздел: Примеры кода | Автор: Бороздин Дмитрий

    Генератор паролей - Генератор паролей длиной до 100000 символов. Сгенерированный пароль будет содержать латинские символы и цифры, есть возможность сохранить пароль в файл. Пример показывает работу с случайными числами.

    Дата: 23.01.2003 17:12 | Раздел: Примеры кода | Автор: Zeus

    PrikolProject - Проект – прикол. В проекте используется несколько API-функций (5-10), так что многим он пригодится и в изучении API...

    Дата: 23.01.2003 11:16 | Раздел: Примеры кода | Автор: Lazy caT

    Работа с пультом AVERMedia в Visual Basic - Краткий пример, как получить код кнопки "Аверовского" пульта используя библиотеку AVerTV2K.DLL

    Дата: 22.01.2003 11:23 | Раздел: Статьи по VB | Автор: Сурменок Павел

    Регулярные выражения в VB .NET - В данной статье рассматривается применение такой мощной технологии, как регулярные выражения в Visual Basic .NET.

    Дата: 22.01.2003 11:15 | Раздел: Примеры кода | Автор: Aquarius

    Поймай кнопку Пуск - Всем известная программа которая изменяет положение Кнопки Пуск при попытке навести на нее мышь. Будет интересна начинающим и даже опытным программистам. Хорошо откомментирована и проста для понимания. Пошутите над своими друзьями, вам понравится.

    Дата: 21.01.2003 11:12 | Раздел: Примеры кода | Автор: Владимир

    ProgressBar из 3-ёх Label - Этот пример показывает, как легко сделать прогресс бар из 3-ёх лейблов! В этом примере показан самый элементарный прогресс бар и способы работы с ним! Всё очень просто и доступно!

    Дата: 21.01.2003 11:12 | Раздел: Примеры кода | Автор: voland2003

    Отключение Alt Ctrl Del - Пример отключения Ctrl+Alt+Del.

    Дата: 20.01.2003 17:26 | Раздел: Примеры кода | Автор: sne

    Дозвон до интернета - Пример звонилки без использования dll, ocx.

    Дата: 20.01.2003 10:49 | Раздел: ActiveX контролы | Автор: DrOn

    AquaButton - Кнопки как в интерфейсе Mac OS X.

    Дата: 19.01.2003 11:18 | Раздел: ActiveX контролы | Автор: Селиванов Вячеслав

    xbScript - xbScript - это компонент реализующий xbase-подобный язык сценариев. Компонент написан на Visual Basic 6.0. Дополнительно доступны исходные тексты приложения позволяющего тестировать xbScript в пошаговом режиме и загружать скрипты из файлов примеров. Исходники на VB 6.0. В качестве файлов примеров 1. Число прописью 2. Генерация html-страницы по таблице базы данных.

    Дата: 19.01.2003 10:49 | Раздел: Примеры кода | Автор: Бороздин Дмитрий

    ТекстИнф - Пример работы с текстом в VB: разделение текста на слова в массивы, подсчёт количества лов и предложений в тексте, работа с символами.

    Последние 20 тем форума на VBNet.Ru:

    03:41 / 26 янв. IStream, IPersistStream - кто работал с этими и... | Хитов: 3 | Ответов: 0
    02:31 / 26 янв. Как запустить данную программу как сервис? | Хитов: 6 | Ответов: 0
    02:03 / 26 янв. Проблемы с SavePicture | Хитов: 6 | Ответов: 0
    23:45 / 25 янв. Не понимаю я эти ивенты.. | Хитов: 11 | Ответов: 0
    22:05 / 25 янв. [!] Подсветка синтаксиса | Хитов: 9 | Ответов: 0
    21:25 / 25 янв. IMHO | Хитов: 12 | Ответов: 0
    21:20 / 25 янв. vk_ константы | Хитов: 11 | Ответов: 1
    21:18 / 25 янв. Программу не видно в Ctrl+Alt+Del | Хитов: 15 | Ответов: 2
    21:17 / 25 янв. вопрос по VB.Net | Хитов: 8 | Ответов: 0
    19:05 / 25 янв. Mail | Хитов: 16 | Ответов: 1
    17:19 / 25 янв. ActiveX | Хитов: 19 | Ответов: 2
    16:33 / 25 янв. Помогите! | Хитов: 20 | Ответов: 1
    15:36 / 25 янв. Microphone | Хитов: 15 | Ответов: 0
    14:54 / 25 янв. Scroll Bar | Хитов: 23 | Ответов: 3
    12:30 / 25 янв. Срочно ответь! Пожалуйста.... | Хитов: 27 | Ответов: 2
    11:52 / 25 янв. С winsock покончено! | Хитов: 23 | Ответов: 2
    09:35 / 25 янв. Помогите сдать ЭКЗАМЕН!!! | Хитов: 31 | Ответов: 1
    09:33 / 25 янв. Помогите сдать ЭКЗАМЕН!!! | Хитов: 0 | Ответов: 0
    02:38 / 25 янв. Методы, события, свойства..... | Хитов: 21 | Ответов: 2
    22:36 / 24 янв. ОГРОМНОЕ СПАСИБО Artificial Intelligence!!! | Хитов: 20 | Ответов: 0

    Последние поступления в Библиотеку кодов:

    Новости от VBNet-чиков!:

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Новости сайта MSDN

    наверх

    Новости сайта GotdotNet

    Новые статьи:

    • 24.01 - Программное создание шаблонов серверных элементов управления
    • 23.01 - Написание простого грида для WinForms на основе ListView (vrtual mode)
    • 22.01 - Введение в инфраструктуру Microsoft .NET Remoting
    • 22.01 - Сравнение технологий: Microsoft .Net Framework и Java-CORBA.
    • 20.01 - Часто задаваемые вопросы о серверном Web-элементе управления DataGrid

    наверх

    Новости сайта dotSite

    Новые статьи:

    Новые примеры:

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Morris

    Ответ ожидается по этому адресу

    как считывать логи с com порта?
    хочется, чтобы прога висела в трее и писала логи.....

    Автор вопроса: timshv@graffiti.net

    Ответ ожидается по этому адресу

    Помогите пожалуйста разобраться с проблемой!
    В экселе в модуле открывается другой экселевский файл, обрабатывается, закрывается, потом следующий и так далее.

    Dim xls1 As Excel.Application
    Set xls1 = New Excel.Application
    xls1.Workbooks.Open имя файла

    Но иногда возникает ошибка при открытии какого-либо файла. "429. ActiveX component can't create object". При этом остаётся открытым Excel и снять задачу, которая не отвечает на запросы, приходится через Ctrl-Alt-Del При следующем запуске программы эта ошибка вообще может не появиться. Я не могу выяснить причину.
    Вопрос в следующем.
    1. Можно ли вообще сделать так, чтобы эта ошибка не появлялась?
    2. Как закрыть тот экземпляр Экселя, объект которого неизвестен или не существует для модуля?

    Автор вопроса: Бессонова Ксения

    Ответ ожидается по этому адресу

    Есть ли способ сделать так, чтобы при выполнении определенного условия программа удалила сама себя с диска или что-нибудь в этом роде...?

    Автор вопроса: Kussmich

    Ответ ожидается по этому адресу

    На форме поместил timer, progressbar. Мне надо, чтобы progressbar, дойдя до значения 85, двигался в обратную сторону.

    Автор вопроса: NetFish

    Ответ ожидается по этому адресу

    podskagyte please, kak sozdat *.ini file , zapisat w nego String dannyje , a potom po zagruzke application odchitat eti dannyje w textbox . sreda VB 6.0

    Автор вопроса: NetFish

    Ответ ожидается по этому адресу

    kak sdealat read / write registry key ? ne mogu najti primerow ? VB 6.0

    Автор вопроса: igor-uz

    Ответ ожидается по этому адресу

    Как открыть файл (например 123.wav) из директории с утановленной программы?

    Можно так:

    Private Sub Form_Load()
    MediaPlayer1.FileName=Dir("123.wav")
    End Sub

    Но если запускать прогу с ярлыка, то но будет искать его в директории, где находится ярлык! :(

    Ответы:

    Вопрос:

    Я хочу создать в реестре значение типа DWORD равное = 1, а оно мне создаёт 31(в шестнадцатеричной) и 49 (в десятичной). Привожу код. Подскажите пожайлуста где ошибка?

    Private Sub PiZdA_Click()
    Dim hREn As Long, IDenT As Long, znak As String
    hREn = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\", 0, KEY_ALL_ACCESS, IDenT)
    znak = 1
    Print znak
    Call RegSetValueEx(IDenT, "NoDesktop", 0, REG_DWORD, ByVal znak, 4)
    End Sub

    Ответ:

    Автор ответа: Sergey

    Строка znak =1 преобразовывает единицу к строковому виду. А у RegSetValueEx параметер lpData по-моему имеет тип BYTE*(или any в VB). Поэтому он и передает строку (точнее первый байт). А им является код "1" - 0x31.

    Вопрос:

    Есть ли в VB какая-либо связь с ASSEMBLERом?

    Ответ:

    Автор ответа: Matrix

    Напрямую из VB, Асм использовать невозможно.
    Однако есть вариант следующий: Написать библиотеку на Асме и юзать её из программы VB.

    Вопрос:

    Существую ли функции отсчитывающие кол-во времени прошедшего с момента
    запуска проложения. Если да, то перечислите их.

    Ответ:

    Автор ответа: Владимир Кирко

    Private Declare Function GetTickCount& Lib "kernel32" ()
    Private Sub Form_Load()
    Dim i As Long, S As Long
    ret& = GetTickCount&
    S = 0
    For i = 1 To 10000000
    S = S + 1
    Next i
    MsgBox "Считалося " & Str$(GetTickCount& - ret&) & " милисекунд."
    End Sub

    Вопрос:

    Есть у меня проблема не как не могу решить её.
    Есть textbox когда я его закриваю с помащи свойства Locked от изменений то не получается можно его изменить с помащи меню которое выходит нажав на правую кнопку мышки и мне надо это убрать.

    Ответ:

    Автор ответа: Алексей

    попробуй

    text1.enabled=false

    либо нужно заблокировать PopupMenu

    Ответ:

    Автор ответа: Nechaev Sergey

    Свойство Enabled со значанием False напрочь закроет текстовое поле.

    Вопрос:

    У меня следующая проблема: пишу...

    Private Sub Form_Load()
    Dim objWord As Word.Application
    Dim objDoc As Word.Document

    Set objWord = New Word.Application
    Set objDoc = Word.Documents.Add

    objWord.Visible = True
    objDoc.Activate

    End Sub

    ...вояникает Run-time error '429'
    ActiveX component can't create object

    (на компе установлен VB 6.0 (SP5), Word 2000), а попробовал в VB 5-всё работает, так в чём проблема?

    Ответ:

    Автор ответа: Sergey

    Если ты откомпилировал программу на одном компьютере а используешь на другом, то важно чтобы у тебя версии DLL были одинаковы. Если ты используешь раннее связывание с COM-сервером, то возможно VB не может найти нужную библиотеку. Попробуй использовать позднее связывание:

    dim objWord as Object

    set objWord = CreateObject("Word.Application")

    и т.д.

    Ответ:

    Автор ответа: Иван

    Всё чуть-чуть по другому
    надо так:
    ===
    Dim w As New Word.Application
    w.Documents.Add 'странно, но работает как метод, хотя вообще-то должен возвращать тип Document
    w.Visible = True

    Dim d As Word.Document
    Set d = w.ActiveDocument
    ===
    вот так работает. Проверено на O97.

    Ответ:

    Автор ответа: Рыбочкин Д. А.

    Необходимо подключить библиотеку MicroSoft Word 9.0 Object Library.

    Ответ:

    Автор ответа: Владимир Кирко

    Ради интереса проверил Ваш код.
    Скопировал 1:1 - Word с пустым документом открылся без проблем (после добавления ссылки на MSWORD9.OLB).
    (У меня - W2k, Word 2000, VB 6 с SP5).

    Вопрос:

    есть куча картинок (pic001.bmp, pic002.bmp... и т.д.). Необходимо
    собрать их в avi. Спрашивается: КАК??? или ссылочку дайте.

    Ответ:

    Автор ответа: VMV

    Кучу картинок можно, например, с помощью PaintShopPro5 (Animation Shop) преобразовать в gif
    В VB gif анимируется, например, DSMAniGifControl (56к).

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 131.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта 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!!!

    Несколько слов от автора:

    Простите великодушно! Совсем про рассылку забыл.
    Читайте!

    Содержание выпуска

    • Книги

    • Определение координат позиции курсора в TextBox
    • Определить количество строк в ComboBox
    • Изменение длины ComboBox
    • Разноцветный баттон
    • Использование Images вместо CommandButton
    • Размножить на форме картинку

    • Вопрос/Ответ

    Книги

    Переход на 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 можно найти здесь.

    наверх

    Определение координат позиции курсора в TextBox

    Добавьте на форму элемент TextBox.

    Private Type POINTAPI
    X As Long
    Y As Long
    End Type
    Private Declare Function GetCaretPos Lib "user32" (lpPoint As POINTAPI) As Long

    Private Sub Text1_KeyPress(KeyAscii As Integer)
    Dim XPos As Long
    Dim YPos As Long
    XPos = GetTCursX
    YPos = GetTCursY
    Me.Caption = "X: " & XPos & " Y: " & YPos
    End Sub
    Public Function GetTCursX() As Long
    Dim pt As POINTAPI
    GetCaretPos pt
    GetTCursX = pt.X
    End Function
    Public Function GetTCursY() As Long
    Dim pt As POINTAPI
    GetCaretPos pt
    GetTCursY = pt.Y
    End Function

    наверх

    Определить количество строк в ComboBox

    Расположите на форме элемент ComboBox, элемент TextBox и 2 элемента CommandButton. Добавьте в ваш проект модуль.

    'КОД МОДУЛЯ

    Option Explicit
    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
    Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Private Const GWL_WNDPROC = (-4)
    Private lpPrevWndProc As Long
    Public lHookedhWnd As Long
    Public iListItems As Integer
    Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
    End Type
    Private Const LB_GETITEMHEIGHT = &H1A1
    Private Const WM_CTLCOLORLISTBOX = &H134
    Private Declare Function GetWindowRect Lib "user32" (ByVal hWnd As Long, lpRect As RECT) As Long
    Private Declare Function MoveWindow Lib "user32" (ByVal hWnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Public Sub Hook()
    lpPrevWndProc = SetWindowLong(lHookedhWnd, GWL_WNDPROC, AddressOf WindowProc)
    End Sub
    Public Sub Unhook()
    Dim lRetVal As Long
    lRetVal = SetWindowLong(lHookedhWnd, GWL_WNDPROC, lpPrevWndProc)
    End Sub
    Function WindowProc(ByVal hw As Long, ByVal uMsg _
    As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)
    Select Case uMsg
    Case WM_CTLCOLORLISTBOX
    Dim rc As RECT
    Dim lItemHeight As Long
    Dim lListHeight As Long
    Static bIgnore As Boolean
    Const LIST_ITEMS As Long = 20
    If Not bIgnore Then
    With rc
    lItemHeight = SendMessage(lParam, LB_GETITEMHEIGHT, 0, ByVal 0&)
    lListHeight = lItemHeight * iListItems + 2
    Call GetWindowRect(lParam, rc)
    bIgnore = True
    Call MoveWindow(lParam, .Left, .Top, (.Right - .Left), lListHeight, True)
    bIgnore = False
    End With
    End If
    Case Else
    End Select
    End Function

    'КОД ФОРМЫ

    Private Sub Command1_Click()
    Command1.Enabled = Not (Command1.Enabled)
    Command2.Enabled = Not (Command2.Enabled)
    Hook
    End Sub
    Private Sub Command2_Click()
    Command1.Enabled = Not (Command1.Enabled)
    Command2.Enabled = Not (Command2.Enabled)
    Unhook
    End Sub
    Private Sub Form_Load()
    Command2.Enabled = False
    Text1 = "2"
    Command1.Caption = "Установить"
    Command2.Caption = "Восстановить"
    Dim i As Integer
    For i = 1 To 51
    Combo1.AddItem "Num " & i
    Next
    iListItems = 2
    lHookedhWnd = Combo1.hWnd
    End Sub
    Private Sub Text1_Change()
    iListItems = Val(Text1)
    If iListItems < 1 Then
    iListItems = 1
    End If
    End Sub

    наверх

    Изменение длины ComboBox

    Данный пример покажет, как можно ограничить длину любого элемента (в количестве символов) ComboBox.

    Расположите на форме элемент CommandButton.

    Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Const EM_LIMITTEXT = &HC5
    Const GW_CHILD = 5

    Private Sub Command1_Click()
    'установить длину элемента - 4 символа
    SendMessage GetWindow(Combo1.hwnd, GW_CHILD), EM_LIMITTEXT, 4, ByVal 0
    End Sub

    наверх

    Разноцветный баттон

    but01.jpg (3581 bytes) but02.jpg (3375 bytes)

    Этот код покажет, как изменяется цвет кнопки при передвижении над ней курсора.
    Добавьте 1 Command Button. Установите свойство Style кнопки в 1 - Graphical.

    Private Declare Function SetCapture Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function ReleaseCapture Lib "user32" () As Long
    Public Sub sysControlHighLight(ctl As Control, X As Single, Y As Single, OriginalBackColor As Long, NewBackColor As Long)
    Dim HitTest As Long
    On Error Resume Next
    HitTest = ctl.hwnd
    If Err.Number <> 0 Then Exit Sub
    With ctl
    If (X > .Width) Or (Y > .Height) Then
    ReleaseCapture
    .BackColor = OriginalBackColor
    Else
    SetCapture .hwnd
    .BackColor = NewBackColor
    End If
    End With
    On Error GoTo 0
    End Sub
    Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    'замените 'vbGreen' и 'vbRed' на нужный вам цвет
    sysControlHighLight Command1, X, Y, vbGreen, vbRed
    End Sub
    Private Sub Form_Load()
    'замените на такой же цвет, как и предыдущий 'vbGreen'
    Command1.BackColor = vbGreen
    End Sub

    наверх

    Использование Images вместо CommandButton

    Очень часто вместо обычных кнопок используются картинки. Т.е. существует всего три картинки - одна на которую будут жать (img1), вторая отжатая (img2) и третья нажатая (img3) (img2 и img3 - невидимы). Делаем это так:

    Private Sub Form_Load()
    'при загрузке формы картинка 1 принимает вид картинки 2 (отжатая)
    img1.Picture = img2.Picture
    End Sub

    Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    'при нажатии мышкой на картинку 1, она принимает вид картинки 3 (нажатая)
    img1.Picture = img3.Picture
    End Sub

    Private Sub Image1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    'при отпускании кнопки мышки картинка 1, она снова принимает вид картинки 2 (отжатая)
    img1.Picture = img2.Picture
    End Sub

    Этот приём знает каждый... Но есть в нём один недостаток, а именно: при серии непрерывных кликов на объект картинка почему-то реагирует через раз. Т.е. то нажмётся, то не нажмётся. Так вот вот сам совет :-) : чтобы этого избежать в событие Image1_MouseDown нужно вставить строку

    SendKeys "A"

    Т.е. картинке одновременно посылается нажатая клавиша. Почему так, понять не могу сам. Но в скобках, конечно же, не важна буква "A" - там может стоять и В и С. Главное само событие. Если кто-нибудь может дать этому вразумительное объяснение - давайте! Заранее благодарю!

    наверх

    Размножить на форме картинку

    Данный пример размножает картинку на форме с целью создания фона формы.

    Для данного примера нам потребуется поставить на форму объект Image, привязать к нему рисунок, который хотим размножить на всю форму.

    Private Sub Form_Paint()
    Dim X As Integer, Y As Integer
    Dim ImgWidth As Integer
    Dim ImgHeight As Integer
    Dim FrmWidth As Integer
    Dim FrmHeight As Integer

    'использование Image1 в PaintPicture methods:
    ImgWidth = Image1.Width
    ImgHeight = Image1.Height
    FrmWidth = Form1.Width
    FrmHeight = Form1.Height

    'залить целую форму (Метод 1)
    For X = 0 To FrmWidth Step ImgWidth
    For Y = 0 To FrmHeight Step ImgHeight
    PaintPicture Image1, X, Y
    Next Y
    Next X

    'залить левый край (Метод 2)
    'For Y = 0 To FrmHeight Step ImgHeight
    'PaintPicture Image1, 0, Y
    'Next Y

    End Sub
    'Для того чтобы залить только левый край снимите комментарий с метода2 и поставьте на метод1.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: ogf

    Ответ ожидается по этому адресу

    У меня вопрос, как узнать список расшаренных ресурсов с определенного ip.

    Автор вопроса: Антон

    Ответ ожидается по этому адресу

    Как сделать screenshot экрана и передать его через WinSock, да еще и прочитать его, когда удаленный комп его примет?

    Автор вопроса: LexSys

    Ответ ожидается по этому адресу

    Работа с Winsock:
    1. У меня есть Project1... в нём на форме есть Picture Box, как из этого пикчера переслать ияображение на Profect2... тоже в пикчер!!!
    2. Как пересылать файлы?

    Автор вопроса: Oleg

    Ответ ожидается по этому адресу

    Как в VB подключить к Data базу Access 2000 и при этом защищенную паролем на открытие?

    Автор вопроса: goodroman

    Ответ ожидается по этому адресу

    Как отправить письмо из VB-кода? Для этого API-функция какая есть? Причем со вложенным файлом (письмо)...

    Автор вопроса: Алексей

    Ответ ожидается по этому адресу

    Кто-нить сталкивался с многопоточностью? Если есть такие, то может у кого есть код, который организует несколько УПРАВЛЯЕМЫХ потоков. Если есть у кого доки по многопоточности скиньте плз мне на мыло.

    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

    Что-то я ничего не понимаю...
    Форматирую колонку с датами

    .Col = 2
    For i = 1 To .Rows - 1
    .Row = i
    .Text = Format(.Text, "dd.mm.yyyy hh:nn")
    Next

    А на форме получаю:
    - если dd > mm , то все OK!
    - усли dd < mm , то получаю mm.dd.yyyy hh:nn

    Такая пересортица получается, что и не поймешь какая всеже здесь дата!!!
    Может я что-то не то делаю?

    Автор вопроса: Diamond

    Ответ ожидается по этому адресу

    Есть прога - локальный чат, который использует широковещательные пакеты. так вот, надо написать прогу, которая слушает порт (на котором сидит этот чат) и принимает не только "свои" пакеты с сообщениями, но и "чужие". Короче говоря, че-то типа сниффера! Как это можно организовать?

    Автор вопроса: Винокуров К

    Ответ ожидается по этому адресу

    У меня такой вопрос, а можно ли сделать пинговальщик (или что-то вроде этого) удалённого компьютера и чтобы он рботал без соединения с интернетом?

    Автор вопроса: Лев

    Ответ ожидается по этому адресу

    Я делаю VB-программу, которая должна работать как background process, т.е. на заднем плане. И из этой программы мне нужно в определенный момент вызвать на передний план (foreground) окно другой программы.
    Трудность в том, что в системе имеется ограничение - Windows 98/Me, Windows 2000/XP: The system restricts which processes can set the foreground window. A process can set the foreground window only if one of the following conditions is true:

    a.. The process is the foreground process.
    b.. The process was started by the foreground process.

    И далее еще несколько условий, ни одно из условий в моем случае не выполняется.
    Знает ли кто-нибудь как это сделать?

    Автор вопроса: Andrushin Sergey

    Ответ ожидается по этому адресу

    Как создать подключ в реестре при помощи RegCreateKey, постоянно происходит ошибка, не могу понять в чём дело.

    Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long.

    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

    Есть вопрос. Даже два.
    1. Для сжимания базы ранее использовал DAO :

    Set fs = CreateObject("Scripting.FileSystemObject") 'Создаем файловую систему
    tmpMDB = fs.GetTempName 'Получаем временный файл
    DBEngine.CompactDatabase Base, tmpMDB, dbLangCyrillic 'Сжимаем базу данных
    fs.CopyFile tmpMDB, Base, True 'Переписываем файл
    Kill tmpMDB 'Удаляем временный файл

    А как это же сделать в ADO ??? В справке ACCESS 2000 ничего не нашел.

    2. Для формы открыт один Recordset на MDB-файл. Мне его нужно сжать.
    Для того чтобы отсоединится от базы использую

    rstTEL.Close
    Set rstVED = Nothing

    Не помогает. Как же от нее отсоединится???

    Автор вопроса: Doomsday

    Ответ ожидается по этому адресу

    Как нписать спектроанализатор (как в Winamp'е), т.е. как получить параметры звуковго потока, или как написать плагин к Winamp'у.

    Автор вопроса: Антон

    Ответ ожидается по этому адресу

    Как скопировать файл по WinSock'у?

    Автор вопроса: SAM

    Ответ ожидается по этому адресу

    В Excel программа на VBA. Моя процедура вешается на событие BeforeDoubleClick (Sub Worksheet_BeforeDoubleClick), как сделать так что бы после завершения моей процедуры DoubleClick не отрабатывался? или может есть другой способ для вызова моей процедуры по DoubleClick?

    Автор вопроса: Роман

    Ответ ожидается по этому адресу

    1) Как в Data Bound Grid менять кол-во колонок без заполнения сетки?
    2) Использую базу данных MDB(Acces), элементы Data и Data Bound Grid.
    Как редактировать базу?

    Автор вопроса: Ильдар

    Ответ ожидается по этому адресу

    Как можно создать метку (Label) во время работы программы, и как можно ее удалить. Причем добавление и удаление по возможности неограниченного количества Labelов за один запуск программы и по возможности чтобы они были систематизированы.

    Автор вопроса: Сергей Перехода

    Ответ ожидается по этому адресу

    Не мог бы мне кто-нибудь подсказать, как работать с числами в двоичной, 16-ричной, 8-ричной системами счисления. Может быть, в бэйсике есть какие-нибудь операции и функции для работы с ними?

    Ответы:

    Вопрос:

    Я хочу создать в реестре значение типа DWORD равное = 1, а оно мне создаёт 31(в шестнадцатеричной) и 49 (в десятичной). Привожу код. Подскажите пожайлуста где ошибка?

    Private Sub PiZdA_Click()
    Dim hREn As Long, IDenT As Long, znak As String
    hREn = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\", 0, KEY_ALL_ACCESS, IDenT)
    znak = 1
    Print znak
    Call RegSetValueEx(IDenT, "NoDesktop", 0, REG_DWORD, ByVal znak, 4)
    End Sub

    Ответ:

    Автор ответа: Doomsday

    Не могу объяснить в чем суть, но код будет выглядеть так:

    Dim hREn As Long, IDenT As Long, znak As String
    hREn = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\", 0, KEY_ALL_ACCESS, IDenT)
    'Вместо 1 можешь подставить любую другую цифру.
    znak = Chr(1)
    Print znak
    Call RegSetValueEx(IDenT, "NoDesktop", 0, REG_DWORD, ByVal znak, 4)

    Вопрос:

    Есть у меня проблема не как не могу решить её.
    Есть textbox когда я его закриваю с помащи свойства Locked от изменений то не получается можно его изменить с помащи меню которое выходит нажав на правую кнопку мышки и мне надо это убрать.

    Ответ:

    Автор ответа: Dima

    Сделай так:

    text1.enabled=false

    Если этот вариант не подходит, то напиши - отвечу как убрать это меню

    Ответ:

    Автор ответа: Doomsday

    Убери locked и пиши:

    Private Sub Text1_KeyPress(KeyAscii As Integer)
    KeyAscii = 0
    End Sub

    Вопрос:

    У меня такой вопрос: Как вызвать меню файла (т.е. как в проводнике, когда щелкаешь по нему правой кнопкой) в собственной программе.

    Ответ:

    Автор ответа: Dima

    Используй PopupMenu(имя меню) в событии Mouse_Down.

    Вопрос:

    Есть ли способ сделать так, чтобы при выполнении определенного условия программа удалила сама себя с диска или что-нибудь в этом роде...?

    Ответ:

    Автор ответа: Nechaev Sergey

    Если надо удалит с диска саму прогу, то единственный выход здесь - это написать bat файл, который будет сносить екзкшник и прописать его выполнение в автозагрузку (желательно в реестр). При перезагрузки машины файл будет удален. Кстати говоря, bat файл умеет удалять сам себя.

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Насколько мне известно, удалить программу, которая в данный момент выполняется, нельзя.

    Ответ:

    Автор ответа: P@Ssword

    На трояны потянуло ;-)

    '--------

    создать bat-файл

    --------
    Open App.Path + "\Delself.bat" For Output As #1
    Print #1, "@echo off"
    Print #1, ":try"
    Print #1, "del " + App.EXEName + ".exe"
    Print #1, "if exist " + App.EXEName + ".exe goto try"
    Print #1, "del " + App.Path + "\Delself.bat"
    Close #1
    '-----------------------------------------
    Shell App.Path + "\Delself.bat", vbHide

    Вопрос:

    На форме поместил timer, progressbar. Мне надо, чтобы progressbar, дойдя до значения 85, двигался в обратную сторону.

    Ответ:

    Автор ответа: Nechaev Sergey

    Ну и что такого - если дошли до 85 ставим флаг, что в последствии надо идти назад. Потом проверям флаг и делаем что надо

    Private Sub Timer1_Timer()
    Static Down As Boolean
    If Down Then
    progressbar1.value = progressbar1.value - 1
    Exit Sub
    End If
    progressbar1.value= progressbar1.value+ 1
    If progressbar1.value>= 85 Then Down = True
    End Sub

    Ответ:

    Автор ответа: Корик

    Пользуйся:

    Dim flag As Integer

    Private Sub Form_Load()
    flag = 1
    Timer1.Enabled = True
    End Sub

    Private Sub Timer1_Timer()
    If flag = 1 Then
    ProgressBar1.Value = ProgressBar1.Value + 1
    Else
    ProgressBar1.Value = ProgressBar1.Value - 1
    End If
    If ProgressBar1.Value = 85 Then
    flag = 0
    End If
    If ProgressBar1.Value = 0 Then
    flag = 1
    End If
    End Sub

    Ответ:

    Автор ответа: Doomsday

    Dim CS As Boolean

    Private Sub Timer1_Timer()
    If CS = False Then ProgressBar1 = ProgressBar1 + 1 Else ProgressBar1 = ProgressBar1 - 1
    If ProgressBar1 = 85 Then CS = True
    If ProgressBar1 = 0 Then Timer1.Enabled = False
    End Sub

    Вопрос:

    podskagyte please, kak sozdat *.ini file , zapisat w nego String dannyje , a potom po zagruzke application odchitat eti dannyje w textbox . sreda VB 6.0

    Ответ:

    Автор ответа: Doomsday

    Declare Function WritePrivateProfileString Lib "kernel32.dll" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Long

    lpApplicationName - Значение раздела INI-файла
    lpKeyName - Значение ключа
    lpString - Устанавлимое строковое значение
    lpFileName - Имя INI-файла

    Declare Function GetPrivateProfileString Lib "kernel32.dll" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

    lpApplicationName - Раздел-имя,заключенное в квадратные скобки [] и группирующее ключи и значения.
    lpKeyName - Значение ключа.Ключ должен быть уникальным только внутри своего раздела.
    lpDefault - Возвращаемое значение, если правильное(допустимое) значение не может читаться.
    lpReturnedString - Строка фиксированной длины, получаемая при чтении любой строки файла или lpDefault.
    nSize - Длина в символах переменной lpReturnedString.
    lpFileName - Имя INI-файла для чтения.

    Если файла не существует, то файл будет создан при записи в него

    Вопрос:

    kak sdealat read / write registry key ? ne mogu najti primerow ? VB 6.0

    Ответ:

    Автор ответа: Pistol

    Помести все это в модуль.
    Ты получишь следующие функции: SaveString, GetString, SaveDword, GetDword, DeleteKey и DeleteValue

    Public Const HKEY_CLASSES_ROOT = &H80000000
    Public Const HKEY_CURRENT_USER = &H80000001
    Public Const HKEY_LOCAL_MACHINE = &H80000002
    Public Const HKEY_USERS = &H80000003
    Public Const HKEY_PERFORMANCE_DATA = &H80000004
    Public Const ERROR_SUCCESS = 0&

    ' Registry API prototypes

    Declare Function RegCloseKey Lib "advapi32.dll" (ByVal Hkey As Long) As Long
    Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA"
    (ByVal Hkey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
    Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA"
    (ByVal Hkey As Long, ByVal lpSubKey As String) As Long
    Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA"
    (ByVal Hkey As Long, ByVal lpValueName As String) As Long
    Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal
    Hkey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
    Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA"
    (ByVal Hkey As Long, ByVal lpValueName As String, ByVal lpReserved As Long,
    lpType As Long, lpData As Any, lpcbData As Long) As Long
    Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA"
    (ByVal Hkey As Long, ByVal lpValueName As String, ByVal Reserved As Long,
    ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
    Public Const REG_SZ = 1 ' Unicode nul terminated
    string
    Public Const REG_DWORD = 4 ' 32-bit number

    Public Sub SaveKey(Hkey As Long, strPath As String)
    Dim keyhand&
    r = RegCreateKey(Hkey, strPath, keyhand&)
    r = RegCloseKey(keyhand&)
    End Sub

    Public Function GetString(Hkey As Long, strPath As String, strValue As
    String)

    Dim keyhand As Long
    Dim datatype As Long
    Dim lResult As Long
    Dim strBuf As String
    Dim lDataBufSize As Long
    Dim intZeroPos As Integer
    r = RegOpenKey(Hkey, strPath, keyhand)
    lResult = RegQueryValueEx(keyhand, strValue, 0&, lValueType, ByVal 0&,
    lDataBufSize)
    If lValueType = REG_SZ Then
    strBuf = String(lDataBufSize, " ")
    lResult = RegQueryValueEx(keyhand, strValue, 0&, 0&, ByVal strBuf,
    lDataBufSize)
    If lResult = ERROR_SUCCESS Then
    intZeroPos = InStr(strBuf, Chr$(0))
    If intZeroPos > 0 Then
    GetString = Left$(strBuf, intZeroPos - 1)
    Else
    GetString = strBuf
    End If
    End If
    End If
    End Function

    Public Sub SaveString(Hkey As Long, strPath As String, strValue As String,
    strdata As String)
    Dim keyhand As Long
    Dim r As Long
    r = RegCreateKey(Hkey, strPath, keyhand)
    r = RegSetValueEx(keyhand, strValue, 0, REG_SZ, ByVal strdata, Len(strdata))
    r = RegCloseKey(keyhand)
    End Sub

    Function GetDword(ByVal Hkey As Long, ByVal strPath As String, ByVal
    strValueName As String) As Long
    Dim lResult As Long
    Dim lValueType As Long
    Dim lBuf As Long
    Dim lDataBufSize As Long
    Dim r As Long
    Dim keyhand As Long

    r = RegOpenKey(Hkey, strPath, keyhand)

    ' Get length/data type
    lDataBufSize = 4

    lResult = RegQueryValueEx(keyhand, strValueName, 0&, lValueType, lBuf,
    lDataBufSize)

    If lResult = ERROR_SUCCESS Then
    If lValueType = REG_DWORD Then
    GetDword = lBuf
    End If
    'Else
    ' Call errlog("GetDWORD-" & strPath, False)
    End If

    r = RegCloseKey(keyhand)

    End Function

    Function SaveDword(ByVal Hkey As Long, ByVal strPath As String, ByVal
    strValueName As String, ByVal lData As Long)
    Dim lResult As Long
    Dim keyhand As Long
    Dim r As Long
    r = RegCreateKey(Hkey, strPath, keyhand)
    lResult = RegSetValueEx(keyhand, strValueName, 0&, REG_DWORD, lData, 4)
    'If lResult <> error_success Then Call errlog("SetDWORD", False)
    r = RegCloseKey(keyhand)
    End Function

    Public Function DeleteKey(ByVal Hkey As Long, ByVal strKey As String)
    Dim r As Long
    r = RegDeleteKey(Hkey, strKey)
    End Function

    Public Function DeleteValue(ByVal Hkey As Long, ByVal strPath As String,
    ByVal strValue As String)
    Dim keyhand As Long
    r = RegOpenKey(Hkey, strPath, keyhand)
    r = RegDeleteValue(keyhand, strValue)
    r = RegCloseKey(keyhand)
    End Function

    Вопрос:

    Как открыть файл (например 123.wav) из директории с утановленной программы?

    Можно так:

    Private Sub Form_Load()
    MediaPlayer1.FileName=Dir("123.wav")
    End Sub

    Но если запускать прогу с ярлыка, то но будет искать его в директории, где находится ярлык! :(

    Ответ:

    Автор ответа: Nechaev Sergey

    чтобы получить путь, где лежит исполняемый файл надо использовать App.path - возвратит каталог с файлом без закрывающего слеша.

    Ответ:

    Автор ответа: Michael Fezulaev

    MediaPlayer.Filename=App.Path + "\123.wav"

    Ответ:

    Автор ответа: Loki

    А ты так пробовал:

    Private Sub Form_Load()
    MediaPlayer1.FileName= (app.Path & "\123.wav")
    End Sub

    Ответ:

    Автор ответа: Корик

    App.Path - даёт директорию, в которой находится прога

    Ответ:

    Автор ответа: Doomsday

    Все просто

    Private Sub Form_Load()
    If Right(App.Path, 1) = "\" Then MediaPlayer1.FileName = Dir(App.Path & "123.wav") Else MediaPlayer1.FileName = Dir(App.Path & "\" & "123.wav")
    End Sub

    Ответ:

    Автор ответа: Артем Кривокрисенко

    App.path возвращает путь к исполняемому файлу (без последнего слэша)

    Ответ:

    Автор ответа: Мунгалов Андрей

    А для этого есть такое свойство ярлыка как "Рабочая папка" в ней надо прописать дорогу до твоей директории.
    Либо использовать функцию App.Path которая и возвращает дорогу где находиться программа.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 132.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск!
    Читайте!

    Содержание выпуска

    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на 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

    Дата: 02.02.2003 07:44 | Раздел: Примеры кода | Автор: tiutiunic

    Удаленное изменение пароля - Пример на VBScript получения имен всех юзверей в домене и изменение их сетевых паролей, получение имени домена, компьютера и пользователя в 2 строки кода при загрузке формы.

    Дата: 31.01.2003 14:37 | Раздел: Примеры кода | Автор: Половый Александр

    Environ - Небольшой пример определения некоторых системных переменных.

    Дата: 30.01.2003 14:36 | Раздел: Примеры кода | Автор: Ловиков Миха

    Drag&Drop - Использование функции Drag Drop в среде Windows. Пример перетаскивания иконок в корзину.

    Дата: 28.01.2003 10:59 | Раздел: Примеры кода | Автор: Silver Flamingo

    Price List v0.3 - Однажды меня спросили, могу ли я написать компактную программу прайс листа, чтобы она выдавала общую стоимость продуктов. Делай я его для компьютерного магазина. Программа компактная, понятная и удобная. Просто откройте файл Excel с базой продуктов. Пример прокоментирован.

    Дата: 28.01.2003 10:59 | Раздел: Примеры кода | Автор: Silver Flamingo

    Test Slovar v0.3 - Этот пример демонстрирует как можно занести данные из Excel в ListBox, и проверять знание слов. Вообщем откроете пример и там всё понятно. Также посмотрите на структуру дистрибутивного файла Excel.

    Дата: 27.01.2003 10:24 | Раздел: Примеры кода | Автор: Пукаленко Дмитрий

    Чат - Исходник чата на VB.

    Последние 20 тем форума на VBNet.Ru:

    02:31 / 2 фев. ADO-provider??? | Хитов: 3 | Ответов: 0
    02:15 / 2 фев. TextBox глючит, или что-то с моими руками? | Хитов: 4 | Ответов: 0
    22:27 / 1 фев. Как отслеживать нажатия клавишь, только в опред... | Хитов: 10 | Ответов: 1
    21:42 / 1 фев. Режим формы OnTop в VB.NET | Хитов: 19 | Ответов: 5
    21:31 / 1 фев. по секрету.. | Хитов: 24 | Ответов: 3
    19:45 / 1 фев. Cookies? | Хитов: 11 | Ответов: 1
    18:51 / 1 фев. Sleep | Хитов: 7 | Ответов: 0
    18:46 / 1 фев. Sleep | Хитов: 14 | Ответов: 2
    16:24 / 1 фев. Сканер сети | Хитов: 10 | Ответов: 0
    14:44 / 1 фев. IP adress | Хитов: 17 | Ответов: 2
    10:30 / 1 фев. Принтер | Хитов: 9 | Ответов: 0
    08:19 / 1 фев. COM Порт | Хитов: 14 | Ответов: 2
    08:17 / 1 фев. COM Порт | Хитов: 4 | Ответов: 0
    06:00 / 1 фев. Как вводить информацию в текстовое окно, чтобы ... | Хитов: 13 | Ответов: 0
    03:06 / 1 фев. Програмно заблокировать мыш | Хитов: 18 | Ответов: 1
    00:03 / 1 фев. Использование API SendInput в Win2000 | Хитов: 8 | Ответов: 1
    23:44 / 31 янв. Как пеменять разрешение | Хитов: 24 | Ответов: 4
    23:11 / 31 янв. Проблемы с многопоточностью в VB! | Хитов: 27 | Ответов: 4
    17:27 / 31 янв. StatusBar в VB.NET | Хитов: 18 | Ответов: 1
    17:14 / 31 янв. Как получить текущий каталог???? HELP | Хитов: 20 | Ответов: 1

    Последние поступления в Библиотеку кодов:

    Новости от VBNet-чиков!:

    23:17 / 30 янв. Ян сообщает: Открылся новый сайт по программированию на Visual Basic -> www.vbkoders.net.ru Сходите, надеюсь Вам понравится:)

    наверх

    Новости сайта VBMania

    • 27.01 - Наш каталог статей пополняется
      Хочу всем сообщить, что наш каталог статей "Директории" пополняется. Напоминаем Вам о существовании данного уникального каталога, надеемся, он Вам пригодится!

    наверх

    Новости сайта Азбука VB

    наверх

    Новости сайта MSDN

    наверх

    Новости сайта GotdotNet

    Новые статьи:

    • 31.01 - Объединение нескольких элементов управления в один
    • 29.01 - Расширение элемента управления TreeView
    • 28.01 - Использование Web User Controls для построения шаблонов страниц в ASP.Net
    • 27.01 - Использование сервисов COM+ в .NET

    наверх

    Новости сайта dotSite

    Новые статьи:

    Новые примеры:

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Костик

    Ответ ожидается по этому адресу

    Как в WinXP скрыть мою прогу из списка Ctrl+Alt+Del или запретить завершать е? через нажатие кнопки "Cнять задачу"?

    Автор вопроса: Роман

    Ответ ожидается по этому адресу

    Есть таблица DataBoundGrid и элемент Data. В коде пишу:

    Data.DatabaseName="МОЯ_БАЗА_ДАННЫХ"
    Data.RecordSource=sSQL 'SQL запрос
    Data.Refresh

    Во время исполнения последней строки выдается сообщение "Object doesn't support this property or method"(Объект не поддерживает это свойство или метод), но DBGrid заполняется нужными данными и далее все идет нормально. В чем причина ошибки? Как ее исправить?

    Автор вопроса: netfish

    Ответ ожидается по этому адресу

    podskagyte please kak udalat podkatalogi ili vse fajly w papke , sreda - VB 6

    Автор вопроса: I-Sof

    Ответ ожидается по этому адресу

    Как спустить мою прогу в трей?

    Автор вопроса: Олег

    Ответ ожидается по этому адресу

    Помогите пожалуйста выйти из затруднительной ситуации:

    1. Необходимо обойти ограничения методов Find для поиска определенной записи в БД Access (именно в динамическом наборе), т.к. Find ищет записи только при полном вхождении искомого выражения в поле.
    2. Как подсчитать и поместить в TextBoxы данные о том сколько всего записей в таблице и сколько отобрано по ранее созданному запросу.
    3. Возможно ли и каким образом подключить к проекту БД Access 2000 и XP не используя ODBC.
    Если не затруднит, то просьба ответы изложить поподробнее, т.к. в VB я еще полный USER.

    Автор вопроса: Игорь

    Ответ ожидается по этому адресу

    При испольяовании ADO не работает Bookmark, а именно:

    sVar = rs.Bookmark '-- сохранил текущую яапись в переменной
    ..................
    rs.Bookmark = sVar '-- вояврат на исходную яапись

    А вот последняя строка и не работает, - выдается ошибка 3001 и сообщение о несоответствии типов, превышении диапаяона яначений и еще чего-то. Посмотрел в текущие яначения rs.Bookmark, а оно - числовое. Заменил тип переменной с String на Long (Integer). Эффекта никакого, вылетает та же ошибка.

    Ответы:

    Вопрос:

    Как открыть файл (например 123.wav) из директории с утановленной программы?

    Можно так:

    Private Sub Form_Load()
    MediaPlayer1.FileName=Dir("123.wav")
    End Sub

    Но если запускать прогу с ярлыка, то но будет искать его в директории, где находится ярлык! :(

    Ответ:

    Автор ответа: ]CBK[CRaSH

    Это элэмэнтарно Сэррр. напиши app.path + "/123.wav" и все

    Вопрос:

    У меня вопрос, как узнать список расшаренных ресурсов с определенного ip.

    Ответ:

    Автор ответа: Anton B. Lozovski

    Я такую программу пишу, все никак не допишу - времени не хватает. расшареные ресурсы можно узнать если они используют TCP протокол (UDP тут ни ответа ни привета). Смысл примерно такой - плодишь в памяти экземпляры винсоков, соединяешь их на хост. и проверяешь состояние (либо коннектится долго если адрес хоста неверный, либо с ошибкой если сервиса нет, либо законнектился если сервис на удаленном компе включен). Только тут есть грабли: во-первых, если наплодить слишком много винсоков - машина рубится напрочь и ей не хватает ресурсов (на 300 пентиуме я наплодил всего 1024 сокета, и GUI похерился и зависло). Во-вторых, нужно организовать быстрый перебор состояния сокетов. А то пока твоя программа будет чего-то плодить и обрабатывать, на сервере сработает тайм-аут, и он сеанс связи с твоим сокетом завершит (хотя наверное можно это отследить по состоянию сокета sckClosed).

    А самый простой способ - использовать telnet (то есть, соединиться с конкретным ресурсом конкретного сервера вручную).

    В общем, читай документацию по winsockу.

    Вопрос:

    Как сделать screenshot экрана и передать его через WinSock, да еще и прочитать его, когда удаленный комп его примет?

    Ответ:

    Автор ответа: Anton B. Lozovski

    Если мы нажмем на клавишу PrintScreen, то содержимое экрана скопируется в буфер обмена. Далее, мы этот буфер можем вставить в любой графический редактор (например, в Paint). Дальше сохранить его в файл и соответственно передать через winsock не составит труда (прочти хоть документацию по винсоку).

    Вопрос:

    Как в VB подключить к Data базу Access 2000 и при этом защищенную паролем на открытие?

    Ответ:

    Автор ответа: Anton B. Lozovski

    Как и обычную. Ты не поймешь какую строку для открытия базы использовать, да? Попробуй сделать так: размести на форме элемент ADODC, зайди в его свойства, поотвечай на вопросы (в т.ч. имя и пароль для подключения). Потом найди в его свойствах ConnectionString и скопируй ее. Там все будет видно (не забудь конечно что ее прийдется менять в зависимости от расположения твоей базы. Но это можно делать запросто). Потом этот элемент можешь удалить, если он тебе не нужен.

    Ответ:

    Автор ответа: Alexander

    Не понятно, что значит базу - если таблицу - то просто!
    Настройте ODBC (конкретно DSN) и коннектитесь
    Можно и проще - создать у себя в приложении связанную таблицу -

    set tabl=Currentdb().CreateTabledef("моя таб")
    tabl.connect=";c:\baza.mdb" (здесь можно и пароль прописать - нажмите ф1)

    Добавьте в набор таблиц

    Currentdb().TableDefs.Append tabl

    - ит атбличка в вашем прожекте

    Вопрос:

    Как отправить письмо из VB-кода? Для этого API-функция какая есть? Причем со вложенным файлом (письмо)...

    Ответ:

    Автор ответа: Anton B. Lozovski

    Можно использовать MAPI (при условии, что стоит Outlook Express). А можно и через winsock, если знаешь smtp протокол

    Ответ:

    Автор ответа: Alexander

    Воспользоваться библиотекой Microsoft Outlook (вот их Outlook Express никак не получается). Можно заполнить все поля сообщения и присоеденить файл.

    Ответ:

    Автор ответа: Alexander

    А конкретно - так

    Private Sub кнопка0_Click()
    Set myOlApp = CreateObject("Outlook.Application")
    Set myItem = myOlApp.CreateItem(olMailItem)
    Set myRecipient = myItem.Recipients.Add("lasaret@cityline.ru")

    myItem.Subject = "субьект"

    myItem.Body = "This is the message body."
    Set myAttachments = myItem.Attachments
    myAttachments.Add "C:\1.xls"

    myItem.Display
    myItem.send
    End Sub

    Вопрос:

    Что-то я ничего не понимаю...
    Форматирую колонку с датами

    .Col = 2
    For i = 1 To .Rows - 1
    .Row = i
    .Text = Format(.Text, "dd.mm.yyyy hh:nn")
    Next

    А на форме получаю:
    - если dd > mm , то все OK!
    - усли dd < mm , то получаю mm.dd.yyyy hh:nn

    Такая пересортица получается, что и не поймешь какая всеже здесь дата!!!
    Может я что-то не то делаю?

    Ответ:

    Автор ответа: Anton B. Lozovski

    А может нужно не .Text = Format(.Text, "dd.mm.yyyy hh:nn") а .Text = Format(.Text, "dd.MM.yyyy hh:mm") ?

    Вопрос:

    Есть прога - локальный чат, который использует широковещательные пакеты. так вот, надо написать прогу, которая слушает порт (на котором сидит этот чат) и принимает не только "свои" пакеты с сообщениями, но и "чужие". Короче говоря, че-то типа сниффера! Как это можно организовать?

    Ответ:

    Автор ответа: Anton B. Lozovski

    Короче говоря, под словом "широковещательные пакеты" ты имеешь ввиду, что отсылаются UDP пакеты по адресу 255.255.255.255 в какой-то порт? Если да - то любой из этих чат-клиентов принимает информацию ОТ ВСЕХ. А потом просто отсеивает что адресовано не ему. А как написать такую программу - создаешь винсок, биндишь его на используемый порт и вперед и с песней: отлавливаешь событие DataArrival

    А вот как узнать какой нужно использовать порт - посмотри программу netstat

    Вопрос:

    У меня такой вопрос, а можно ли сделать пинговальщик (или что-то вроде этого) удалённого компьютера и чтобы он рботал без соединения с интернетом?

    Ответ:

    Автор ответа: Anton B. Lozovski

    А это как??? Ну полюбому должен быть канал связи чтобы пропингануть компьютер. Наверное, нельзя

    Вопрос:

    Как создать подключ в реестре при помощи RegCreateKey, постоянно происходит ошибка, не могу понять в чём дело.

    Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long.

    Ответ:

    Автор ответа: Тютюнников ИМ

    Не мучайтесь с регистрами через АПИ. Есть очень простой способ через VBScript

    Dim WshShell, bKey
    Set WshShell = CreateObject("WScript.Shell")
    'записывает значения , если таикх ключей нет - создат и записывает
    WshShell.RegWrite "HKCU\Software\ACME\FortuneTeller\", 1, "REG_BINARY"
    WshShell.RegWrite "HKCU\Software\ACME\FortuneTeller\MindReader", "Goocher!", "REG_SZ"

    bKey = WshShell.RegRead("HKCU\Software\ACME\FortuneTeller\")
    WScript.Echo WshShell.RegRead("HKCU\Software\ACME\FortuneTeller\MindReader")
    'удаляет
    WshShell.RegDelete "HKCU\Software\ACME\FortuneTeller\MindReader"
    WshShell.RegDelete "HKCU\Software\ACME\FortuneTeller\"
    WshShell.RegDelete "HKCU\Software\ACME\"

    Вопрос:

    Как нписать спектроанализатор (как в Winamp'е), т.е. как получить параметры звуковго потока, или как написать плагин к Winamp'у.

    Ответ:

    Автор ответа: Anton B. Lozovski

    Я думаю, что плагин к Винампу на VB не написать (хотя-бы по причине медлительности кода для подобных приложений). Си учить нужно...

    Вопрос:

    Как скопировать файл по WinSock'у?

    Ответ:

    Автор ответа: Anton B. Lozovski

    Наверное, в виде "как есть" его не передать. Тут может помочь MIME кодирование (как отсылаются аттачи в электронных письмах). Поищи RFC по MIME

    Вопрос:

    В Excel программа на VBA. Моя процедура вешается на событие BeforeDoubleClick (Sub Worksheet_BeforeDoubleClick), как сделать так что бы после завершения моей процедуры DoubleClick не отрабатывался? или может есть другой способ для вызова моей процедуры по DoubleClick?

    Ответ:

    Автор ответа: Anton B. Lozovski

    Я конечно вопроса не понял, потому-что самый разумный ответ был бы убрать обработчик DoubleCkick если он не нужен и если вместо него должен быть BeforeDoubleClick :)
    Либо объявить на уровне модуля логическую переменную, которая бы была истиной когда отработан BeforeDoubleClick, а при отработке DoubleClick проверялось ее состояние, делалось или не делалось чего-то в зависимости от нее, а потом ее снова в false

    Ответ:

    Автор ответа: Андрей Андреев

    В процедуре Worksheet_BeforeDoubleClick есть параметр Cancel - поставь его в TRUE перед выходом из процедуры

    Ответ:

    Автор ответа: Alexander

    В конце собственной процедуры повесить типа

    ОБЬЕКТ.BeforeDoubleClick="funk"

    где funk - функция которая ничего не делает, или вообще

    ОБЬЕКТ.BeforeDoubleClick=""
    Private sub funk
    end funk

    Вопрос:

    Как можно создать метку (Label) во время работы программы, и как можно ее удалить. Причем добавление и удаление по возможности неограниченного количества Labelов за один запуск программы и по возможности чтобы они были систематизированы.

    Ответ:

    Автор ответа: Алексей

    Можно сделать массив элементов:

    for i=0 to x
    load label1(i)
    label1(i).visible=true
    next

    а можно добавлять новый контрол

    Dim rControl As label
    Set rControl = Form1.Controls.Add ("VB.Label", "Labelx")

    Ответ:

    Автор ответа: Anton B. Lozovski

    Ну может быть если у тебя есть какая-то Label1, то нужно создать массив индексов (в свойстве .index поставить '0'), а потом делаешь

    for f=1 to [неограничено :) ]
    load Label1(f)
    with Label1(f)
    .задаешь свойства, типа расположения на форме, текста...
    end with
    next f

    Чтобы убрать их делай так:

    for f=1 to [неограничено :) ]
    unload Label1(f)
    next f

    Ответ:

    Автор ответа: Alexander

    В том модуле который работает - это нельзя, а в другом - можно (открыть в режиме конструктора и вставить)

    Вопрос:

    Не мог бы мне кто-нибудь подсказать, как работать с числами в двоичной, 16-ричной, 8-ричной системами счисления. Может быть, в бэйсике есть какие-нибудь операции и функции для работы с ними?

    Ответ:

    Автор ответа: Роман

    HEX(число) приводит число в шестнадцатиричный формат,
    OCT(число) в восьмиричный.

    Ответ:

    Автор ответа: Anton B. Lozovski

    Ну для двоичной системы исчисления есть логические функции. Для 16ричных есть по-моему запись типа &H7000

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 133.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта 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, просьба прислать мне! Так как материалы для рассылки практически иссякли!
    Читайте!

    Содержание выпуска

    • Книги

    • Контекстное меню. Практикум по созданию.
    • Описание элементов VScrollBar/HScrollBar
    • Как изменить цвет фона при изменении значения элемента ScrollBar
    • Перебор массива TextBox'ов
    • Использование API при работе с TextBox'ом

    • Вопрос/Ответ

    Книги

    Переход на 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 можно найти здесь.

    наверх

    Контекстное меню. Практикум по созданию.

    Почти во всех приложениях Windows используется контекстное меню, вызываемое при нажатии правой клавиши мыши. Контекстное меню (или всплывающее) является обычным меню, но его положение на форме не закреплено.

    Контекстное меню вызывается с помощью метода PopupMenu. Что требуется для создания к.меню? Создайте обычное меню первого уровня (как на картинке 1), снимите галочку Visible. Затем создайте три подменю (картинка 2). Значения Visible оставьте как есть.

    Затем в события формы вставьте следующий код:

    Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button And vbRightButton Then 'проверка, нажата ли правая клавиша мыши
    PopupMenu mnuPopup
    End If
    End Sub
    Private Sub mnuCopy_Click()
    MsgBox "Вы выбрали копировать"
    End Sub
    Private Sub mnuCut_Click()
    MsgBox "Вы выбрали вырезать"
    End Sub
    Private Sub mnuPaste_Click()
    MsgBox "Вы выбрали вставить"
    End Sub

    Пояснения: в событии MouseDown (более подробная справка по данному событию) необходимо проверить, нажата ли правая клавиша мыши, и только затем показать наше контекстное меню.

    Поясняющаая картинка 1

    (картинка 1)

            Поясняющаая картинка 2

    (картинка 2)

    Описание метода PopupMenu

    object.PopupMenu menuname, flags, x, y, boldcommand

    object объект, к которому цепляем меню.
    menuname имя меню, которое хоти прицепить
    flags константа, описывающая место появление меню
    x расположение меню по иксу
    y расположение меню по игрику
    boldcommand пункт меню, который должен быть выделен жирным (только один пункт!)

    Во-вторых, вот константы для flags:

    Константы | Значение | Описание
vbPopupMenuLeftAlign | 0 | (по умолчанию) меню появляется слева под курсором.
vbPopupMenuCenterAlign | 4 | меню появляется по центру под курсором.
vbPopupMenuRightAlign | 8 | меню появляется справа под курсором.

    наверх

    Описание элементов VScrollBar/HScrollBar

    Элементы VScrollBar/HScrollBar устанавливают значение некоторой величины, перемещая ползунок между минимальным и максимальным значением. В некоторых ситуациях пользователь не знает заранее точного значения этой величины и элементы ScrollBar представляют ему гибкий механизм задания значения.

    Элемент ScrollBar - это полоса с бегунком, позволяющая выбрать значение между двумя концами элемента. Элемент ScrollBar располагается вертикально или горизонтально. Левый (нижний) конец элемента соответствует минимальному значению. Максимально значение находится на другом конце элемента. Поэтому основными свойствами элемента являются

    • Min (Минимум) - минимальное значение элемента
    • Max (Максимум) - максимальное значение элемента
    • Value (Значение) - текущее значение, определяемое положение бегунка.

    Свойства Min/Max - целые положительные значения в диапазоне от 0 до 32655. Например, для задания диапазона от 3,5 до 11,5 установите значение свойства Min в 35, а значение свойства Max - в 115, затем разделите на 10 значение свойства Value. Для диапазон чисел от -3,5 до 11,5 установите свойство Min в 0, значение Max - 150 (т.е. 35 + 115). Результат разделите на 10 и вычтите из него 3,5, чтобы отобразить нулевое значение элемента, равного -3,5.

    События элемента ScrollBar

    Значения элемента ScrollBar можно изменять тремя способами:

    • Щелкая на двух концевых стрелках. Значение элемента изменяется на величину, заданную свойством SmallChange.
    • Щелкая на области между бегунком и стрелками. Значение элемента изменяется на величину, заданную значением свойства LargeChange
    • Перемещая бегунок с помощью мыши.

    Изменения значения ScrollBar можно отслеживать из программного кода с помощью двух событий: Change и Scroll

    • Change. Происходит каждый раз, когда пользователь, переместив бегунок, отпускает кнопку мыши. Во время перемещения бегунка событие Change не происходит.
    • Scroll. Происходит непрерывно при перемещение бегунка. Это позволяет обновить из программного кода остальные элементы формы, пока пользователь перемещает бегунок с помощью мыши. При отпускании мыши происходит единичное событие Change, поскольку значение элемента изменилось.

    наверх

    Как изменить цвет фона при изменении значения элемента ScrollBar

    Создайте новый проект, добавьте на форму 2 элемента PictureBox и 3 элемента HScrollBar. Изменяя значения элементов HScrollBar (кликая на стрелочках, перемещая бегунок или кликая на полосе между бегунком и правой/левой стрелкой) вы можете наблюдать, как меняется цвет элементов PictureBox. Заметьте, событие Change применяется к элементу PictureBox1, а событие Scroll - к элементу PictureBox2. Таким образом видна разница между событиями. Более подробно о событиях элемента HScrollBar можно прочитать здесь. Описание функции RGB читайте здесь.

    Private Sub HScroll1_Change()
    Colors
    Picture2.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value)
    End Sub
    Private Sub HScroll1_Scroll()
    Colors
    Picture1.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value)
    End Sub
    Private Sub HScroll2_Change()
    Colors
    Picture2.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value)
    End Sub
    Private Sub HScroll2_Scroll()
    Colors
    Picture1.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value)
    End Sub
    Private Sub HScroll3_Change()
    Colors
    Picture2.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value)
    End Sub
    Private Sub HScroll3_Scroll()
    Colors
    Picture1.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value)
    End Sub
    Public Sub Colors()
    Me.Caption = "Красный=" & HScroll1.Value & "; Зеленый=" & HScroll2.Value & "; Синий=" & HScroll3.Value
    End Sub

    наверх

    Перебор массива TextBox'ов

    Однажды мне задали вопрос: "Если у меня есть массив элементов TextBox, как мне последовательно обойти все элементы?". Данный пример годится не только для TextBox'ов.

    Private Sub Text1_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
    If KeyCode = 13 Then 'нажата клавиша ENTER
    NewIndex = Index + 1 'вычисляется следующий по индексу TextBox
    On Error Resume Next 'если достигнут последний индекс, это позволит избежать ошибки
    Text1(NewIndex).SetFocus 'операция получения ввода следующего ТекстБокса
    End If
    End Sub

    наверх

    Использование API при работе с TextBox'ом

    В данном примере вам понадобится дополнительный модуль, в который внесите следующий код:

    Option Explicit
    Public Const EM_EMPTYUNDOBUFFER = &HCD
    Public Const EM_CANUNDO = &HC6
    Public Const EM_GETMODIFY = &HB8
    Public Const EM_SETMODIFY = &HB9
    Public Const EM_UNDO = &HC7
    Public Const GWL_STYLE = (-16)
    Public Const ES_NUMBER = &H2000
    Public Const ES_UPPERCASE = &H8&
    Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

    А теперь вы можете использовать модуль для следующих действий над элементом TextBox

    Запрос: можно отменить последнее действие?

    SendMessage(Text1.hwnd, EM_CANUNDO, 0, 0)

    Запрос: изменился ли текст?

    SendMessage(Text1.hwnd, EM_GETMODIFY, 0, 0)

    Установить: изменился текст или нет

    Dim DirtyFlag As Long
    DirtyFlag = SendMessage(Text1.hWnd, EM_GETMODIFY, ByVal 0&, ByVal 0&)
    If DirtyFlag = 1 Then
    MsgBox "Содержимое Text Box изменилось"
    Else
    MsgBox "Содержимое Text Box не изменилось"
    End If
    End Sub

    Отменить последнее действие

    If SendMessage(Text1.hwnd, EM_CANUNDO, 0, 0) <> 0 Then SendMessage(Text1.hwnd, EM_UNDO, 0, 0)

    Позволить вводить в ТекстБокс только определенные символы

    Dim l As Long, Dim r As Long
l = GetWindowLong(Text1.hwnd, GWL_STYLE)
r = SetWindowLong(Text1.hwnd, GWL_STYLE, l Or ES_NUMBER) 'только цифры
l = GetWindowLong(Text1.hwnd, GWL_STYLE)
r = SetWindowLong(Text1.hwnd, GWL_STYLE, l Or ES_UPPERCASE) 'буквы в верхнем
регистре и цифры
l = GetWindowLong(Text1.hwnd, GWL_STYLE)
r = SetWindowLong(Text1.hwnd, GWL_STYLE, l Or ES_LOWERCASE) 'буквы в нижнем
регистре и цифры

    Очистить буфер отмены

    Call SendMessage(Text1.hwnd, EM_EMPTYUNDOBUFFER, 0, 0)
    Call SendMessage(Text1.hwnd, EM_SETMODIFY, False, 0)

    Перебор контролов на предмет изменения их содержимого

    Public Sub SaveData()
    Dim itextBoxCount As Integer
    For itextBoxCount = 0 To Controls.Count - 1
    If TypeOf Controls(itextBoxCount) Is TextBox Then
    If Changed(Controls(itextBoxCount)) Then
    'Place code to save data here
    End If
    End If
    Next
    End Sub

    Public Function Changed(ByVal ctlTextBox As TextBox) As Boolean
    Changed = SendMessage(ctlTextBox.hwnd, EM_GETMODIFY, 0, 0) <> 0
    End Function

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Dmitriy S.

    Ответ ожидается по этому адресу

    Как в VBA (Excel) подключить таймер?
    Или есть другие способы работы со временем?

    Автор вопроса: Alex

    Ответ ожидается по этому адресу

    У меня есть программка для MS Access где цифра записывается автоматически прописью. Мне надо вставить в текст нестандартные буквы (u,а,о с двумя точками наверху). как это сделать?

    Автор вопроса: Mind Engine

    Ответ ожидается по этому адресу

    Как программно получить уровень чернил в принтере (в данном случае с Epson C60)? Нужен пример работы с командами EscP Raster по битрониксу... МОжет есть контрол для такой беды?

    Автор вопроса: Игорь

    Ответ ожидается по этому адресу

    1. Если SQL-запрос, например, расчет суммы значений определенного поля по всем записям, выполнен в виде встроенной в БД процедуры, как осуществить отображение изменений этой суммы, например, при добавлении новой записи?

    2. Как правильно выполнить SQL-запрос к существующей таблице БД в коде отдельной процедуры?

    Автор вопроса: P@Ssword

    Ответ ожидается по этому адресу

    Я пишу реализацию несимметричного криптографического алгоритма RSA.
    Ядро практически готово. Приглашаю к соавторству программистов VB. Связь по
    е-мылу.

    Автор вопроса: I hate the fucking world

    Ответ ожидается по этому адресу

    Как привязать программу к ЭВМ. Только пожалуйста не надо писать всякую бурду про дату биоса т.к она одинакова на половине мам и в 2к эта фигня не работает SOS!!!!!!!

    Автор вопроса: Mystf0rse

    Ответ ожидается по этому адресу

    Нужна помощь в написании программы программа должна открывать .html, .mdb файлы и искать e-mail'ы, программа нужна, чтобы вести базу данных пользователей. Базы есть но в html и mdb в ручную переволит очень долго,люди если кто нибудь может помочь хелпните.

    Автор вопроса: Роберт

    Ответ ожидается по этому адресу

    Mожно создать Rule (Rules Wizard) с notification.
    Как только вы получаете интересующее вас письмо, Outlook <выбрасывает> на экран сообщение об этом.
    Так вот вопрос - какое событие (event) и для какого объекта нужно <отловить>.
    И второе - созданный Rule - что это за объект и как <достучаться> до его свойств.

    Автор вопроса: Роман

    Ответ ожидается по этому адресу

    Есть несколько MaskEdBox'ов с различными масками.
    Как стереть из них введенную информацию.

    Автор вопроса: LexSys

    Ответ ожидается по этому адресу

    Как сохранять несколько картинок, в формате Gif.
    Но чтобы сохранялись не просто картинки, а анимация.
    А если точнее, то мне надо:
    У меня есть Пикчер, в котором с отпределенным периодом меняется картинка, как сохранить все картинки как анимацию???

    Ответы:

    Вопрос:

    У меня такой вопрос, а можно ли сделать пинговальщик (или что-то вроде этого) удалённого компьютера и чтобы он рботал без соединения с интернетом?

    Ответ:

    Автор ответа: Mind Engine

    Удаленный в смысле в другой комнате? :) Если комп к локалке подключен - пингуй его по имени и все дела! Тока TCP-IP настрой везде!

    Вопрос:

    Есть вопрос. Даже два.
    1. Для сжимания базы ранее использовал DAO :

    Set fs = CreateObject("Scripting.FileSystemObject") 'Создаем файловую систему
    tmpMDB = fs.GetTempName 'Получаем временный файл
    DBEngine.CompactDatabase Base, tmpMDB, dbLangCyrillic 'Сжимаем базу данных
    fs.CopyFile tmpMDB, Base, True 'Переписываем файл
    Kill tmpMDB 'Удаляем временный файл

    А как это же сделать в ADO ??? В справке ACCESS 2000 ничего не нашел.

    2. Для формы открыт один Recordset на MDB-файл. Мне его нужно сжать.
    Для того чтобы отсоединится от базы использую

    rstTEL.Close
    Set rstVED = Nothing

    Не помогает. Как же от нее отсоединится???

    Ответ:

    Автор ответа: Sergey

    1.ADO не позволяет этого делать. Если хочешь уйти от DAO используй Access Object Model:

    Dim oAccessApp As Access.Application

    Set oAccessApp = New Access.Application
    oAccessApp.CompactRepair(, , LogFile)

    2.Для этого нужно также закрыть и текущее соединение:

    Dim oCon As ADODB.Connection
    ....
    'Полезная работа
    ....
    oCon.Close
    Set oCon = Nothing

    Вопрос:

    Как в WinXP скрыть мою прогу из списка Ctrl+Alt+Del или запретить завершать е? через нажатие кнопки "Cнять задачу"?

    Ответ:

    Автор ответа: Sergey

    Даже если ты ее скроешь из списка задач, она останется в списке процессов. Для таких случаев есть простое, но мудрое решение - РАЗРЕШАТЬ закрывать экземпляр программы, но при закрытии запускать новый экземпляр.

    P.S.Нет такой чистой и светлой мысли, которую бы русский человек не смог бы выразить в грязной матерной форме.

    Ответ:

    Автор ответа: Nechaev Sergey

    В системах на базе NT такое вряд ли возможно.

    Ответ:

    Автор ответа: Loki

    А помоему от XP хрен че скроешь.
    Может я и ошибаюсь?

    Ответ:

    Автор ответа: P@Ssword

    App.TaskVisible = False

    , кажется так или что-то похожее.

    Вопрос:

    Есть таблица DataBoundGrid и элемент Data. В коде пишу:

    Data.DatabaseName="МОЯ_БАЗА_ДАННЫХ"
    Data.RecordSource=sSQL 'SQL запрос
    Data.Refresh

    Во время исполнения последней строки выдается сообщение "Object doesn't support this property or method"(Объект не поддерживает это свойство или метод), но DBGrid заполняется нужными данными и далее все идет нормально. В чем причина ошибки? Как ее исправить?

    Ответ:

    Автор ответа: Sergey

    Если бы еще знать источник данных(я так полагаю Access),строку подключения, версию DAO и т.д., то можно было сказать что-то определенное ...

    Вопрос:

    podskagyte please kak udalat podkatalogi ili vse fajly w papke , sreda - VB 6

    Ответ:

    Автор ответа: Nechaev Sergey

    Точно не скажу, но FileSystemObject предоставляет довольно обширные возможности для работы с дисками. Чтобы задействовать его подключи библиотеку Microsoft Scripting Runtime или что-то такое, потом создай образец класса FSO и работай.

    Ответ:

    Автор ответа: Neuro

    Как один из вариантов - есть такая функция в VB для запуска внешних приложений под названием Shell (pathname[,windowstyle]). А в коммандном процесоре операционной системы (или это внешняя программа - не помню) для удаления директории и всего ее содержимого есть Deltree [/Y] [диск:]путь [[диск:]путь[...]] Попробуй использовать в своем коде нечто вроде

    shell "DelTree /Y c:\windows", vbHide

    Лично я такое не использовал, посему извиняюсь за возможные грабли.

    Вопрос:

    Как спустить мою прогу в трей?

    Ответ:

    Автор ответа: Slava

    Для начала добавь на форму Command1.
    У меня всё работает (на Win98 и WinXP)!

    Код формы:

    Dim NID As NOTIFYICONDATA
    Sub AddIcon()
    Dim IDLib As Long ' Указатель на библиотеку
    Dim IDIcon As Long ' Указатель на иконку
    Const IDMyIcon = 101 ' Идентификатор иконки внутри приложения
    Dim AddResult As Long ' Результат добавления иконки
    IDLib = GetModuleHandle("Project1.exe") ' Получаем hInstanse
    IDIcon = Me.Icon
    ' Заполняем структуру NID типа NOTIFYICONDATA
    NID.cbSize = Len(NID) ' Размер структуры
    NID.hwnd = Form1.hwnd ' Указатель на форму
    NID.uID = IDMyIcon ' Идентификатор иконки
    NID.uFlags = NIF_MESSAGE + NIF_ICON + NIF_TIP 'Указываем, что действующими являются поля uCallBackMessage, hIcon и szTip.
    NID.uCallbackMessage = WM_LBUTTONDOWN ' Указываем, что событием возвращаемым в форму является MouseDown с параметром Button = 2
    NID.hIcon = IDIcon ' Указатель на иконку в файле
    NID.szTip = Left$("MyIcon", 63) & Chr(0) ' Передаем всплывающую фразу "MyIcon", при этом обрезаем ее до 63 символов и добавляем 64-й символ с кодом ноль
    AddResult = Shell_NotifyIcon(NIM_ADD, NID) ' Вызываем функцию, через параметр dwMessage указываем, что следует добавить иконку, и передаем заполненный NID
    Me.Visible = False
    End Sub

    Sub DeleteIcon()
    Dim DeletResult As Long
    DeleteResult = Shell_NotifyIcon(NIM_DELETE, NID) ' Вызываем функцию, через dwMessage указываем, что следует удалить иконку, при этом, раз переменная NID описана на уровне модуля, не следует заполнять ее заново
    End Sub

    Private Sub Command1_Click()
    Call AddIcon
    End Sub

    Private Sub Form_Mousedown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If X = 7695 Then ' SysTray Icon Events
    Shell_NotifyIcon NIM_DELETE, NID
    Form1.Visible = True
    End If
    Me.Enabled = False
    Me.Enabled = True
    End Sub

    Код модуля:

    Public Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As dwMess, lpData As NOTIFYICONDATA) As Long
    Public Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long

    Public Enum dwMess
    NIM_ADD = &H0 ' Добавление иконки
    NIM_DELETE = &H2 ' Удаление иконки
    NIM_MODIFY = &H1 ' Изменение параметров иконки
    End Enum

    Type NOTIFYICONDATA
    cbSize As Long ' Размер переменной типа NOTIFYICONDATA
    hwnd As Long ' Указатель окна создающего иконку
    uID As Long ' Указатель на иконку в пределах приложения
    uFlags As uF ' Маска для следующих параметров
    uCallbackMessage As CallMess ' Возвращаемое событие
    hIcon As Long ' Указатель на изображение для иконки
    szTip As String * 64 ' Всплывающий над иконкой текст
    End Type

    Public Enum uF
    NIF_MESSAGE = &H1 ' Значение имеет uCallbackMessage
    NIF_ICON = &H2 ' Значение имеет hIcon
    NIF_TIP = &H4 ' Значение имеет szTip
    End Enum

    Public Enum CallMess
    WM_MOUSEMOVE = &H200
    WM_LBUTTONDOWN = &H201
    WM_LBUTTONUP = &H202
    WM_LBUTTONDBLCLK = &H203
    WM_RBUTTONDOWN = &H204
    WM_RBUTTONUP = &H205
    WM_RBUTTONDBLCLK = &H206
    WM_MBUTTONDOWN = &H207
    WM_MBUTTONUP = &H208
    WM_MBUTTONDBLCLK = &H209
    WM_SETFOCUS = &H7
    WM_KEYDOWN = &H100
    WM_KEYFIRST = &H100
    WM_KEYLAST = &H108
    WM_KEYUP = &H101
    End Enum

    Ответ:

    Автор ответа: Mind Engine

    Я пользуюсь MBTray.ocx, www.vb2themax.com, прикольный компонент, поддерживает анимацию дажо!

    Вопрос:

    Помогите пожалуйста выйти из затруднительной ситуации:

    1. Необходимо обойти ограничения методов Find для поиска определенной записи в БД Access (именно в динамическом наборе), т.к. Find ищет записи только при полном вхождении искомого выражения в поле.
    2. Как подсчитать и поместить в TextBoxы данные о том сколько всего записей в таблице и сколько отобрано по ранее созданному запросу.
    3. Возможно ли и каким образом подключить к проекту БД Access 2000 и XP не используя ODBC.
    Если не затруднит, то просьба ответы изложить поподробнее, т.к. в VB я еще полный USER.

    Ответ:

    Автор ответа: biv

    1. Да там как раз и нет практически никаких ограничений, например,

    rs.FindFirst "FIO Like '*Сергей*'"

    будет искать первого Сергея среди полных значений фамилии имени отчества в одном поле, а rs.FindNext с тем же условием - следующего

    2. rs.RecordCount возвратит кол-во записей, но если используется DAO, то только после полного заполнения рекордсета:

    rs.MoveLast
    rs.MoveFirst

    Открывают рекордсет без условий - всего записей в таблице, а потом с условием Where и получают разницу

    3. DAO 3.6 идет вместе с Access 2000 и XP и гораздо более мощное и удобное средство, чем ODBC для БД с небольшим числом пользователей в сети.

    Ответ:

    Автор ответа: Александр Горбылёв

    Олег, касательно ваших вопросов сообщаю следующее:

    1. Необходимо обойти ограничения методов Find для поиска определенной записи в БД Access (именно в динамическом наборе), т.к. Find ищет записи только при полном вхождении искомого выражения в поле. Ответ: в целом, не рекомендуется использовать Find-метод из-за невысокой скорости его выполнения, а замените его SQL-запросом. Например, так, как частичный фрагмент моей коммерческой программы (конечно, предварительно установив в проекте ссылку через "Project-References" на "Microsoft ActiveX Data Objects Library"):

    Option Explicit
    Dim rsHS As ADODB.Recordset ' таблица строк заказа
    ...
    Private Sub cmdSearch_Click() ' что искать, клиент вводит сюда
    Dim sSelect As String
    Dim sWhere As String
    Dim sLikeText As String

    Set dgdOutText.DataSource = Nothing ' dgdOutText - DataGrid с найденными строками
    sSelect = msHSselect ' часть SQL-select до WHERE
    sLikeText = Trim(txtSearch) ' что ищем

    If Len(sLikeText) > 0 Then
    sLikeText = " WHERE (TextOut LIKE '%" & sLikeText & "%')" ' TextOut - текст, который надо найти где-то в строке, неважно где!
    End If

    sSelect = sSelect & sLikeText

    With rsHS
    .Close
    .ActiveConnection = glADOconn ' здесь покоится строка подключения к БД
    .CursorLocation = adUseClient
    .LockType = adLockReadOnly
    .CursorType = adOpenStatic
    .Source = sSelect
    .Open Options:=adCmdText
    End With
    Set dgdOutText.DataSource = rsHS ' инициирование связи с DataGrid
    dgdOutText.Refresh ' лучше здесь оформить вызовом некой функции DataGridRefresh - переоформить таблицу,- где будет, в частности, вызов dgdOutText.Refresh
    Set txtString.DataSource = rsHS ' связать текст с таблицей
    End Sub

    Private Sub Form_Load()
    Set rsHS = New ADODB.Recordset
    With rsHS
    .ActiveConnection = glADOconn
    .CursorLocation = adUseClient
    .LockType = adLockReadOnly
    .CursorType = adOpenStatic
    .Source = msHSselect & msHSwhereAll ' вначале покажем все имеющиеся записи
    .Open Options:=adCmdText
    End With
    Set dgdOutText.DataSource = rsHS ' инициирование связи с DataGrid
    dgdOutText.Refresh ' лучше вызовом некоей DataGridRefresh, отвечающей за оформление таблицы
    End Sub

    2. Как подсчитать и поместить в TextBoxы данные о том сколько всего записей в таблице и сколько отобрано по ранее созданному запросу. Для нединамических (!) курсоров существует свойство в наборе "RecordCount", которое показывает количество записей, но для этого универсальнее сначала сделать прыжок в конец набора записей:

    rs.MoveLast
    nRecords = rs.RecordCount ' количество имеющихся записей

    3. Возможно ли и каким образом подключить к проекту БД Access 2000 и XP не используя ODBC. Кстати, и здесь ODBC тоже не рекомендуется. Лучше по-прямее и более функционально :-) Пример для MDB Access 2000, но элементарно переделывается для других СУБД. Access XP - провайдер просто должен присутствовать в системе. Его можно загрузить, например, из Microsoft или же он имеется, если установлен Office XP, хотя это не обязательно.

    Option Explicit
    Dim glADOconn As ADODB.Connection ' соединение, объявление которого можно поместить в отдельную процедуру отдельного модуля. Тогда будет
    Global glADOconn As ADODB.Connection ' Всё зависит от конткретной ситуации с соединением. Оно может быть даже модемным...
    ....
    Private Sub Form_Load()
    Dim MyDbString As String ' MDB-база умолчания
    Const StrProvider As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
    Dim cnn As ADODB.Connection

    ' Open a connection using a DSN and individual
    ' arguments instead of a connection string.
    'cnn.Open strConn, UserID, Psw[, Options]
    Set cnn = New ADODB.Connection
    ....
    MyDbString = "\\Сервер\Путь\МояБД.mdb" ' здесь как-то получаем полный путь к БД: в диалоге или через системный реестр и т.д.
    MyDbString = "D:\Путь\МояБД.mdb"
    ...

    If cnn.State = adStateClosed Then 'newly-created db may be open so
    cnn.CursorLocation = adUseClient 'create client side
    cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & MyDbString ' check first before opening
    End If

    If cnn.State = adStateOpen Then
    .....
    End If

    End Sub

    Ответ:

    Автор ответа: CrazyDima

    Пользуйся SQL.

    Вопрос:

    При испольяовании ADO не работает Bookmark, а именно:

    sVar = rs.Bookmark '-- сохранил текущую яапись в переменной
    ..................
    rs.Bookmark = sVar '-- вояврат на исходную яапись

    А вот последняя строка и не работает, - выдается ошибка 3001 и сообщение о несоответствии типов, превышении диапаяона яначений и еще чего-то. Посмотрел в текущие яначения rs.Bookmark, а оно - числовое. Заменил тип переменной с String на Long (Integer). Эффекта никакого, вылетает та же ошибка.

    Ответ:

    Автор ответа: Игорь Романов

    Закладка (Bookmark) должна быть Variant. Иначе не работает.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 134.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    В этом выпуске небольшое нововведение. Теперь я буду какждую неделю публиковать в рассылке наиболее интересную тему из форума VBNet.Ru за прошедшую неделю. Сегодня это тема о конвертировании двоичного кода в строку и наоборот.
    Читайте!

    Содержание выпуска

    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Один момент из жизни форума: 010101010101001001000

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на 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

    Дата: 09.02.2003 09:58 | Раздел: Примеры кода | Автор: Виталиум!

    Многоканальный Winsock - Как один винсок может принимать сразу несколько соединений? А вот так... Посмотрите сами. :-)))

    Дата: 09.02.2003 08:25 | Раздел: Примеры кода | Автор: Daniyar Atadjanov

    DoNotPressPrintScreen - Прога показывает как сделать так, чтобы нельзя было снять скриншот с вашей программы! Отличный пример!

    Дата: 08.02.2003 09:58 | Раздел: Примеры кода | Автор: neformat

    Посылалка sms-ок на beeline - Посылает sms-сообщение на мобильные телефоны beeline меняя прокси сервера, тем самым снимает ограничение на 12 сообщений с одного ip адреса. Доставка зависит от того как использовался прокси сервер. Клиентская чать убогая, сделана за 15 минут.

    Дата: 08.02.2003 08:25 | Раздел: Примеры кода | Автор: Daniyar Atadjanov

    Однорукий Джейк (Black Jack) - Игра-автомат! Немного переработанный Black Jack!

    Дата: 07.02.2003 08:25 | Раздел: Примеры кода | Автор: Daniyar Atadjanov

    Handle Explorer! - Прога понимает Хэндлы системы - Проводника, DOS, Internet Explorer. Вы можете добавить свои хэндлы!

    Дата: 06.02.2003 08:26 | Раздел: Примеры кода | Автор: Kirus

    Эволюция - Этот пример является реализацией игры "Жизнь". Основная идея игры состоит в том, чтобы, начав с какого-нибудь расположения клеток (по одной ячейке), проследить за эволюцией их колонии.

    Дата: 05.02.2003 15:47 | Раздел: Примеры кода | Автор: Kir Alper

    WinExit - Простенькая прога : Выход из Windows (XP) Видно ее работу только в SysTray. Иконка в SysTray "живая".

    Дата: 04.02.2003 15:47 | Раздел: Примеры кода | Автор: Касаткин Николай

    Палитра - Пример показывает как перевести код цвета из десятичного в RGB и Hex. Там можно найти еще кое что. Эта утилита родилась потому, что потребовалось заполнять таблицу, содержащую большое количество кодов цветов из определенного набора. Причем цвета заполнялись десятичными кодами. Цвета в таблице легко заменяются в свойствах PicrureBox. С точки зрения программирования решение самое никудышнее, зато очень простое и быстрое. Я надеюсь вернуться к ней, когда появится время, и сделать все по уму. Заодно надо добавить определение цветов с экрана. Если кто захочет повозится с ней, то рад буду посмотреть на результат.

    Дата: 03.02.2003 15:47 | Раздел: Примеры кода | Автор: Русский Сектор

    Musical Player 1.0 - Скромный пригрыватель, доступный начинающим програмистам.

    Дата: 03.02.2003 10:18 | Раздел: Статьи по VB | Автор: Daniyar Atadjanov

    Глазами Хакера - Статья о том, как узнать пароли, используемые в программе и как защитить EXE от взлома.

    Дата: 02.02.2003 07:44 | Раздел: Примеры кода | Автор: tiutiunic

    Удаленное изменение пароля - Пример на VBScript получения имен всех юзверей в домене и изменение их сетевых паролей, получение имени домена, компьютера и пользователя в 2 строки кода при загрузке формы.

    Последние 20 тем форума на VBNet.Ru:

    09:55 / 9 фев. Resurcy... | Хитов: 4 | Ответов: 0
    08:30 / 9 фев. Ресурсы и байты | Хитов: 4 | Ответов: 0
    08:29 / 9 фев. DoEvents, DoEvents... Как же он работает??? | Хитов: 4 | Ответов: 0
    00:53 / 9 фев. выбор папки средствами .net | Хитов: 3 | Ответов: 0
    00:29 / 9 фев. телефония | Хитов: 6 | Ответов: 0
    00:15 / 9 фев. Kак перетащить файл из Explorer'а в FileListBox | Хитов: 3 | Ответов: 0
    00:12 / 9 фев. ЛЮДИ ЗАЧЕМ НАМ ЧАТ ?????? | Хитов: 18 | Ответов: 1
    00:11 / 9 фев. Работа с реестров Windows на VB.NET | Хитов: 10 | Ответов: 0
    19:16 / 8 фев. TextBox зоблокировать стандартное контекстное м... | Хитов: 10 | Ответов: 2
    16:55 / 8 фев. help me | Хитов: 13 | Ответов: 1
    14:54 / 8 фев. Использование MAPI | Хитов: 4 | Ответов: 0
    11:16 / 8 фев. Редактрование TexBox в DataGrid | Хитов: 9 | Ответов: 0
    09:25 / 8 фев. КЛАССный облом | Хитов: 24 | Ответов: 2
    08:33 / 8 фев. Thread в линии(to User Unknown and ALL) | Хитов: 11 | Ответов: 0
    21:55 / 7 фев. Printer?? | Хитов: 24 | Ответов: 2
    21:24 / 7 фев. Подскажите насчет TabStrip... | Хитов: 22 | Ответов: 2
    18:37 / 7 фев. Управление COM- и LPT-портами через API из VB | Хитов: 23 | Ответов: 1
    14:07 / 7 фев. Ошибка компиляции! | Хитов: 25 | Ответов: 0
    14:02 / 7 фев. Остаётся болтаться в памяти MS Word | Хитов: 27 | Ответов: 4
    12:11 / 7 фев. Как может прогы посылать сообщения по ICQ | Хитов: 19 | Ответов: 0

    Последние поступления в Библиотеку кодов:

    Новости от VBNet-чиков!:

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Новости сайта MSDN

    • Загрузите пакет Windows Media 9 Series SDK (EN)
    • Вниманию независимых продавцов ПО! Подготовьтесь к выпуску Windows Server 2003 (EN)
    • Конференция Microsoft Mobility Developer Conference 2003 (EN)
    • Конференция Microsoft TechEd 2003 Europe (EN)

    наверх

    Новости сайта GotdotNet

    Новые статьи:

    • 07.02 - Создание асинхронных бизнес-объектов для использования в клиентах Windows Forms .NET
    • 05.02 - Разработка пользовательских элементов управления Windows с помощью Visual Basic .NET
    • 03.02 - Первый шаг (Первая статья из цикла по .NET Compact Framework)
    • 03.02 - .NET Compact Framework
    • 03.02 - Добавление проверки правильности регулярного выражения

    наверх

    Новости сайта dotSite

    Новые статьи:

    Новые примеры:

    наверх

    Один момент из жизни форума: 010101010101001001000

    Вопрос:
    Автор вопроса: AGR.

    Можете помочь? Нужно расшифровать это:
    010101010101001001000100000010000101111100010011010110010100
    (двоичный код). В один текстбокс вводить это, во втором это превращается в нормальный текст.

    Ответы:

    Автор: Tank
    Ну что ето:
    010101010101001001000100000010000101111100010011010110010100
    двоичный код ето понятно, ты напиши поподробнее по какому правилу ето должно превращаться в нормальный текст.

    Автор: Zeus
    цитирую из учебника:

    любое целое неотрицательное число с помощью степеней двойки запсывается так:

    a(n)*2^n+a(n-1)*2^(n-1)++++++++a(1)*2^1+a(0)*2^0

    где

    каждый из коэффициентов a(n), a(n-1)...a(1), a(0) - один из 2-х двоичных цифр 0 или 1, причём a(n)=1

    Надеюсь поймёте....

    Автор: Дeнис
    По 8 бит нарезай, потом по стд. функции переводи в 10ю систему, а затем chr(...)

    Автор: Tank
    Если правильно понял тогда так:

    Private Sub Text1_Change()
    Dim X, I, A As Long
    Dim str As String

    str = Text1.Text
    X = Len(str)

    For I = 0 To X - 1

    A = A + CLng(Left(str, 1)) * 2 ^ I
    str = Right(str, Len(str) - 1)
    Text2.Text = A

    Next I
    End Sub

    Ты попробуй и напиши!

    Автор: AGR
    Мне нужно в ASCII, а не в цифры!

    Автор: Goul
    Тогда так:

    Private Sub Command1_Click()
    Dim sRes As String
    Dim I As Long
    Dim N As Byte
    Dim T As Byte
    Dim lLen As Long
    Dim l2DegT As Long

    N = 0
    sRes = ""
    lLen = Len(Text1.Text)
    T = 0
    l2DegT = 1
    For I = 1 To lLen
    N = N + l2DegT * CLng(Mid(Text1.Text, lLen - I + 1, 1))
    T = T + 1
    l2DegT = l2DegT * 2
    If T = 8 Then
    T = 0
    l2DegT = 1
    s = Chr(N) & s
    N = 0
    End If
    Next I
    Text2.Text = s
    End Sub

    Автор: AGRAGR
    Спасибо! Но как обратно из букв в двоичный код?

    Автор: Goul
    Добавим ещё одну кнопку:

    Private Sub Command2_Click()
    Dim lLen As Long
    Dim I As Long
    Dim N As Byte
    Dim sRes As String
    Dim l2DegT As Byte

    lLen = Len(Text2.Text)
    sRes = ""
    For I = 1 To lLen
    N = Asc(Mid(Text2.Text, I, 1))
    l2DegT = 128
    While l2DegT >= 1
    If N >= l2DegT Then
    sRes = sRes & "1"
    N = N - l2DegT
    Else
    sRes = sRes & "0"
    End If
    l2DegT = l2DegT / 2
    Wend
    Next I
    Text1.Text = sRes
    End Sub

    Можно бы, конечно, и пооптимальнее...

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Евгений

    Ответ ожидается по этому адресу

    У меня один маленький вопрос по объекту ADODB.Recordset. Чем отличаются значения свойства CursorLocation - adUseClient и adUseServer? И почему, если это свойство установлено в adUserServer, то свойство RecordCount воявращает -1 и при попытке связать Recordset с DataGrid вояникает ошибка.

    Автор вопроса: lom

    Ответ ожидается по этому адресу

    Народ, у кого нибудь есть OCX от QuickTime, если он конечно вообще существует? Если есть, то пришлите на мыло.

    Автор вопроса: lom

    Ответ ожидается по этому адресу

    Может быть подскажите, как сделать ScrollBar у MDI-формы определённого цвета? (или у TextBox'a ScrollBar определённого цвета)?
    И ещё, как сделать,чтобы моя MDI-форма была на весь экран, т.е. закрывала бы панель задач?

    Автор вопроса: afb

    Ответ ожидается по этому адресу

    Как скопировать папку со всем её содержимым, хорошо бы было без перебора всех подпапок и файлов.

    Автор вопроса: Анатолий

    Ответ ожидается по этому адресу

    У меня 2 принтера, HP и VentaFax. Из моей проги мне нужно то напечатать заявку, то послать ее по факсу. Эту проблему пока я решаю вызовом окна Windows "Принтеры" и переключением принтера по умолчанию. А вот программно, выбрав сообветствующий переключатель на форме не удается. Если кто решил эту проблему, помогите п-та.

    Автор вопроса: 001

    Ответ ожидается по этому адресу

    Как, если можно, сделать в VB ассемблерные вставки?

    Автор вопроса: Michael Fezulaev

    Ответ ожидается по этому адресу

    Вот вопрос говарят он тежёлый. Есть обьект DanaGrid в его свойствах есть возможнасть сделать из колонки в ComboBox (как в Access) но я не знаю как. К примеру я делал так

    Private Sub Form_Load()
    Dim Indx As Integer
    DataGrid1.Columns(1).Button = True
    End Sub

    Private Sub DataGrid_ButtonClick(ByVal ColIndex As Integer)
    With DataGrid
    List1.Top = .RowTop(.Row) + .Top + .RowHeight + 10
    List1.Width = .Columns(1).Width + 50
    If Not .Columns(1).Text = "" Then
    For Indx = 0 To List1.ListCount - 1
    List1.ListIndex = Indx
    If List1.Text = .Columns(1).Text Then
    List1.ListIndex = Indx
    Exit For
    End If
    Next Indx
    Else
    List1.ListIndex = 0
    End If
    End With
    List1.Visible = True
    List1.SetFocus
    End Sub

    Может есть на много удобный способ, не проста так сделали эту кнопку в DataGrid.

    Автор вопроса: Андрей

    Ответ ожидается по этому адресу

    У меня VB6 не хочет работать с базами Access2000, примеры из Access97 берет, а для 2000 пишет - нераспознанный формат данных, когда выбираю RecordSource. Помогите, что я делаю не так?

    Автор вопроса: Александр

    Ответ ожидается по этому адресу

    Подскажите пожалуйста где можно бесплатно скачать самоучитель для начинающих или может быть есть какие-нибудь рассылеи уроков. Я живу за границей и поэтому имеются сложности с оплатой.

    Автор вопроса: LexSys

    Ответ ожидается по этому адресу

    Почему у меня 2 проекта не принимают функции Right или Left, создаю новый проект - все нормально, а в этих он просто не принимает их, как-будто их не существует. Эти 2 проекта исп. Winsock, может из-за этого?
    Если пишу так Right$ - Ошибка: Type-declaration character does not match declared date tupe.
    Если пишу так Right - Ошибка: Ожидаемый массив

    Автор вопроса: Andrew

    Ответ ожидается по этому адресу

    Переделываю программу (была на Access, теперь на VB). Такая трудность: в Access можно назначить колонке тип "логический" и тогда в ней будет отображаться флажок. В VB DataGrid тоже появоляет наяначать колонкам свойство CheckBox, однако в колонке отображаются 0 и 1 (т. е. состояние). Можно ли сделать так, чтобы в колонке отображался CheckBox? DataRepeater не предлагать.

    Автор вопроса: Samit Mail

    Ответ ожидается по этому адресу

    Как программно отключится от Интернета в Windows XP?

    Автор вопроса: Игорь

    Ответ ожидается по этому адресу

    Подскажите, как сделать форму проярачной? С SetWindowLong что-то не получается

    Автор вопроса: shadow

    Ответ ожидается по этому адресу

    Люди кто ковырялся в памяти игрушки Мафия(Mafia), или есть информация - поделитесь, а я поделюсь тем что сам надыбал. Я сделал трейнер к ней, ноокаяалось что он применим только для одного уровня, т.к. в игрухе на каждый уровень свои адреса памяти(оружие). Чужой трейнер очень корявый но эти адреса находит бея проблем, я пробовал найти но явного укаяания на эти адреса нигде нет.

    Автор вопроса: shadow

    Ответ ожидается по этому адресу

    Делаю так (естественно все продекларировав):

    Dim hwnd As Long
    Dim pid As Long
    Dim pHandle As Long
    Dim str As String*20
    hwnd = FindWindow(vbNullString,"яаголовок окна игры")
    If(hwnd=0) Then Exit Sub
    GetWindowThreadProcessld hwnd,pid
    pHandle =OpenProcess(PROCESS_ALL_ACCESS,False,pid)
    If(pHandle=0)Then Exit Sub
    ReadProcessMemory pHandle, &H(adres),str,20,0&
    text1.text=str
    CloseHandle hProcess

    Всё это яамечательно, только мне надо считывать не строку, а число. Если поставить str в Long то воявращается ноль, все остальные типы дают ошибку - несовпадение типов. Скажите как считать число? или придется преобраяовывать строчку по Asc?

    Автор вопроса: 001

    Ответ ожидается по этому адресу

    Как в VB играть MIDI,WAV,MP3и другие файлы?

    Автор вопроса: Blot-G

    Ответ ожидается по этому адресу

    Скажите, существует ли такая API функция, которая считывает состояние трафика, при соединении с Инетом?

    Автор вопроса: ]CBK[CRaSH

    Ответ ожидается по этому адресу

    Я создал прогу типа обучающего комплекса(Full ass) но самое главное что я хочу сделать это чтобы все базы были на серванте, а клиен юзал их по сети. НО фишка в том что WinSock едри его растуды связанный по протаколу TCP не разрешает конектится нескольким клиентам к одному порту. Я сделал процедуру автомотического добовления WinSocka и встретил баг. после дабавления около 40 sock`oв всех обрубало или начинало все глючить. Я начил использовать UDP и о чудо в забиндиный порт могут конектится дох..на народу и посылать инфу серванту, а вот наоборот сервер посылает инфу только тому кто первый ему пошлет что-нибудь.

    Автор вопроса: Шакиров Виталий

    Ответ ожидается по этому адресу

    Как мне создать новый элемент а именно OptionButton в работающей программе на фрейме и определить ему свойства.

    Автор вопроса: VMJ

    Ответ ожидается по этому адресу

    Подскажите как можно из Vb считать/отследить информацию по COM - порту. Скажем получить код со сканера штрих-кодов (как в супермаркете).

    Автор вопроса: Данила

    Ответ ожидается по этому адресу

    Как отправить данные на определённый порт. Т.е. нужно изменить значение второго (...девятого) штырька на LPT. В Qbasic-е это выглядит так:

    OUT &H378, g 'g-число от 0 до 255

    а на VB неизвестно.
    Сколько вольт и ампер должно быть на штырьках, чтоб порт не сгорел.
    Есть ли у кого-нибудь что-нибудь в примерах по этой теме?

    Ответы:

    Вопрос:

    1) Как в Data Bound Grid менять кол-во колонок без заполнения сетки?
    2) Использую базу данных MDB(Acces), элементы Data и Data Bound Grid.
    Как редактировать базу?

    Ответ:

    Автор ответа: Andrew

    Поставь AllowUpdate и AllowDelete в true.

    Вопрос:

    Как в VBA (Excel) подключить таймер?
    Или есть другие способы работы со временем?

    Ответ:

    Автор ответа: Andrushin Sergey

    Не обязательно использовать таймер, можно так:

    Dim I as Long
    Dim S As Long
    For I = 1 To 10000 " 10000 - количество миллисекунд
    S = S + 1
    Next

    Вопрос:

    Как привязать программу к ЭВМ. Только пожалуйста не надо писать всякую бурду про дату биоса т.к она одинакова на половине мам и в 2к эта фигня не работает SOS!!!!!!!

    Ответ:

    Автор ответа: Mind Engine

    A к серийному номеру винта слабо привязать прогу?

    Private Declare Function GetVolumeInformation Lib "Kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long

    Private Sub Form_Load()
    Dim Serial As Long, VName As String * 255, FSName As String * 255
    GetVolumeInformation "C:\", VName, Len(VName), Serial, 0, 0, FSName, Len(FSName)
    MsgBox "Serial Number: " & Trim(Str$(Serial))
    End Sub

    Правда, eсли винт переставить в другую тачку, прога кнешна тоже будет работать... Можно еще усилить - сделай запись в реестр (какую хошь) и потом при запуске проверяй ее наличие! А я бы еще круче сделал - сгенерил бы GUID, сохранил бы его (само собой encrypted) и в свою прогу и в реестр!

    Private Declare Function CoCreateGuid Lib "ole32" (id As Any) As Long

    Ответ:

    Автор ответа: Nechaev Sergey

    А кто тебе мешает привязаться к конкретному жесткому диску. С помощью FSO или API получи его серийник и работай с ним.

    Вопрос:

    Есть несколько MaskEdBox'ов с различными масками.
    Как стереть из них введенную информацию.

    Ответ:

    Автор ответа: Pistol

    Если я правильно понял твой вопрос, то можно это сделать так:

    К примеру у тебя есть MaskEditBox "mebDate" с маской даты " / / "
    Все что нужно сделать, это mebDate.Text = " / / "
    Т.е. ты присваиваешь ему его же пустую маску.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 135.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта 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!!!

    Несколько слов от автора:

    Обязательно загляните в раздел "MSAgent CD"!
    Читайте!

    Содержание выпуска

    • Книги

    • MSAgent CD

    • Добавить горизонтальную прокрутку в ListBox
    • Автоскролинг текста
    • Основы элемента RichTextBox
    • Какое слово под курсором мыши
    • Как включить прокрутку по горизонтали

    • Вопрос/Ответ

    Книги

    Переход на 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 можно найти здесь.

    наверх

    MSAgent CD

    VBNet.Ru представляет новый компакт-диск!
    Этот CD полностью посвящён технологии Microsoft Agent.
    На диске Вы сможете найти:

    • Статьи - Статьи о применении технологии MS Agent в Visual Basic.
    • Софт - Программное обеспечение, дополняющее MS Agent. Здесь Вы найдёте ядро MS Agent, движки воспроизведения и распознавания речи, программу создания персонажей, программу для просмотра действий персонажей, Speech API, русификатор MS Agent и т.д.
    • Персонажи - Более 100 персонажей для MS Agent!
    • Примеры - Несколько примеров использования технологии MS Agent в Visual Basic и .NET.
    • Справочники - Справочники о MS Agent - справочник от "Русского Проекта" на русском языке, а также полная документация от Microsoft.
    • Сайт VBNet.Ru - Также на диске находится полная свежая копия этого сайта (VBNet.Ru).
    • BalloonMessage for Microsoft Agent - Ну и небольшой подарок... Компонент BalloonMessage for Microsoft Agent с бесплатной лицензией!

    Полное содержание диска можно скачать здесь.
    Обращаю Ваше внимание на то, что в магазин CD сайта VBNet.Ru действует система скидок. Если Вы уже приобрели у нас один компакт-диск, то на последующие заказы действует скидка 5%. Если же Вы купили 3 или более CD, то скидка - 10%.
    Компакт-диск распространяется по почте наложенным платежом.
    Чтобы заказать диск, зайдите сюда: http://vbnet.ru/vbshop/order.asp?id=3.

    наверх

    Добавить горизонтальную прокрутку в ListBox

    Добавьте ListBox на форму, а также элемент CommandButton. Добавьте 1 длинную string-переменную в ListBox.

    Самым полным примером я считаю вариант 3, поскольку заранее вы не можете знать, какой у вас элемент в ListBox'е самый длинный. А Вариант 3 методом перебора всех элементов ListBox'а определяет самый длинный элемент (по числу символов)

    'Пример 1

    Private Declare Function SendMessageByNum Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Const LB_SETHORIZONTALEXTENT = &H194

    Private Sub Form_Load()
    Static x As Long
    List1.AddItem "Добавление длинной строки для проверки примера"
    'Замените все значения 'List1.List(0)'самым длинным элементом ListBox'а
    If x < TextWidth(List1.List(0) & " ") Then
    x = TextWidth(List1.List(0) & " ")
    If ScaleMode = vbTwips Then x = x / Screen.TwipsPerPixelX
    SendMessageByNum List1.hwnd, LB_SETHORIZONTALEXTENT, x, 0
    End If
    End Sub

    'Пример 2

    Private Declare Function SendMessageByNum Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Const LB_SETHORIZONTALEXTENT = &H194

    Private Sub Command1_Click()
    Dim s As String
    Static x As Long
    s = InputBox("Please enter any text", "List scroll", "this is a simple scrollbar sample for demonstration purposes")
    List1.AddItem s
    If x < TextWidth(s & " ") Then
    x = TextWidth(s & " ")
    If ScaleMode = vbTwips Then x = x / Screen.TwipsPerPixelX
    SendMessageByNum List1.hwnd, LB_SETHORIZONTALEXTENT, x, 0
    End If
    End Sub

    'Пример 3

    Private Declare Function SendMessageByNum Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Const LB_SETHORIZONTALEXTENT = &H194

    Private Sub Command1_Click()
    Static x As Long
    For Item = List1.ListCount - 1 To 0 Step -1
    If x < TextWidth(List1.List(Item) & " ") Then
    x = TextWidth(List1.List(Item) & " ")
    End If
    Next
    If ScaleMode = vbTwips Then x = x / Screen.TwipsPerPixelX
    SendMessageByNum List1.hwnd, LB_SETHORIZONTALEXTENT, x, 0
    End Sub

    Private Sub Form_Load()
    List1.AddItem "длинная переменная, которую надо"
    List1.AddItem "длинная переменная, которую надо увидеть или не увидеть или еще что-то"
    List1.AddItem "длинная переменная, которую надо увид"
    List1.AddItem "длинная переменная, которую надо увидеть или не увидеть или еще что-тоывеапапавп"
    End Sub

    наверх

    Автоскролинг текста

    Данный пример покажет, как можно организовать автоскролинг элемента RichTextBox.

    Для проверки выполнения кода вам надо добавить на форму элементы RichTextBox, Picture и CommandButton. Не забудьте указать правильную ссылку на файл mydoc.rtf

    Private Type SCROLLINFO
    cbSize As Long
    fMask As Long
    nMin As Long
    nMax As Long
    nPage As Long
    nPos As Long
    nTrackPos As Long
    End Type
    Private Declare Function GetScrollInfo Lib "user32" (ByVal hwnd As Long, ByVal n As Long, lpScrollInfo As SCROLLINFO) As Long
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

    Const SIF_RANGE = &H1
    Const SB_VERT = 1

    Dim lHeight As Long, OnePixel As Long
    Dim S As SCROLLINFO
    Private Sub Command1_Click()
    Do
    DoEvents
    ScrollUp 50
    Loop
    End Sub

    Private Sub Form_Load()
    rtb1(0).LoadFile App.Path & "\mydoc.rtf", rtfRTF
    Picture1.Move rtb1(0).Left, rtb1(0).Top, rtb1(0).Width, rtb1(0).Height
    Set rtb1(0).Container = Picture1
    OnePixel = Screen.TwipsPerPixelY
    S.cbSize = Len(S)
    S.fMask = SIF_RANGE
    Do
    Call GetScrollInfo(rtb1(0).hwnd, SB_VERT, S)
    If S.nMax = 0 Then Exit Do
    lHeight = S.nMax * OnePixel
    rtb1(0).Height = lHeight
    Loop
    If lHeight = 0 Then lHeight = rtb1(0).Height
    Text1 = lHeight / OnePixel
    rtb1(0).Move 0, 0
    Load rtb1(1)
    rtb1(1).Visible = False
    End Sub

    Private Sub ScrollUp(delay As Long)
    Sleep delay
    With rtb1(0)
    .Top = .Top - OnePixel
    If .Top + .Height = 0 Then
    .Move 0, 0
    rtb1(1).Visible = False
    End If
    If .Top + .Height <= Picture1.Height Then
    rtb1(1).Top = .Top + .Height
    rtb1(1).Visible = True
    End If
    End With
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    End
    End Sub

    наверх

    Основы элемента RichTextBox

    Элемент RichTextBox представляет собой усовершенствованное текстовое окно, с помощью которого вы можете создавать полноценные файлы в формате RTF, в которых вы можете как угодно форматировать внешний вид своего документа: расставлять переносы, выделять текст различными шрифтами, менять гарнитуру текста и т.д.

    Подключается данный контрол очень просто: через меню Project | Components. установите флажок на строчке Microsoft Rich Textbox Control 6.0 и у вас на панели Toolbox появится значок этого компонента. Затем вы размещаете данный контрол на вашей форме... и все.

    Выделить текст жирным шрифтом

    RichTextBox1.SelBold = True

    Выделить текст курсивом

    RichTextBox1.SelItalic = True

    Выделить текст подчеркнутым шрифтом

    RichTextBox1.SelUnderline = True

    Просмотр текста в виде простого текста

    MsgBox RichTextBox1.Text

    Просмотр текста в виде RTF

    MsgBox RichTextBox1.TextRTF

    Загрузить файл

    RichTextBox1.LoadFile App.Path & "\RTFText.rtf", rtfRTF

    или

    RichTextBox1.LoadFile App.Path & "\RTFText.rtf", rtfText

    Определение строки, на которой находится курсор

    На самом деле определение строки, на которой находится курсор, не вызывает никаких трудностей. У элемента RichTextBox существует метод GetLineFromChar, который и отвечает на вопрос этой страницы. Непонятно только, почему разработчики не предусмотрели определение позиции курсора на строке. Ответ на этот вопрос остается открытым. Пишите

    Private Sub Command1_Click()
    MsgBox RichTextBox1.GetLineFromChar(RichTextBox1.SelStart) + 1
    End Sub

    наверх

    Какое слово под курсором мыши

    Данный пример покажет вам, какое слово находится под курсором мыши в элементе RichTextBox.
    Добавьте на форму элемент RichTextBox и элемент Label

    Private Const EM_CHARFROMPOS& = &HD7
    Private Type POINTAPI
    X As Long
    Y As Long
    End Type
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Public Function RichWordOver(rch As RichTextBox, X As Single, Y As Single) As String
    Dim pt As POINTAPI
    Dim pos As Integer
    Dim start_pos As Integer
    Dim end_pos As Integer
    Dim ch As String
    Dim txt As String
    Dim txtlen As Integer
    pt.X = X \ Screen.TwipsPerPixelX
    pt.Y = Y \ Screen.TwipsPerPixelY
    pos = SendMessage(rch.hWnd, EM_CHARFROMPOS, 0&, pt)
    If pos <= 0 Then Exit Function
    txt = rch.Text
    For start_pos = pos To 1 Step -1
    ch = Mid$(rch.Text, start_pos, 1)
    If Not ((ch >= "0" And ch <= "9") Or (ch >= "a" And ch <= "z") Or (ch >= "A" And ch <= "Z") Or ch = "_") Then Exit For
    Next start_pos
    start_pos = start_pos + 1
    txtlen = Len(txt)
    For end_pos = pos To txtlen
    ch = Mid$(txt, end_pos, 1)
    If Not ((ch >= "0" And ch <= "9") Or (ch >= "a" And ch <= "z") Or (ch >= "A" And ch <= "Z") Or ch = "_") Then Exit For
    Next end_pos
    end_pos = end_pos - 1

    If start_pos <= end_pos Then RichWordOver = Mid$(txt, start_pos, end_pos - start_pos + 1)
    End Function
    Private Sub Form_Load()
    Label1.Caption = ""
    RichTextBox1.Text = "Ready-To-Run Visual Basic Algorithms, Second Edition" & vbCrLf & vbCrLf & "Extend your applications with powerful algorithms written in Visual Basic. Sorting, searching, trees, hashing, advanced recursion, network algorithms, object-oriented programming, and much more. Visual Basic Algorithms updated and expanded for Visual Basic 5." & vbCrLf & vbCrLf & "http://www.vb-helper.com/vba.htm"
    End Sub
    Private Sub RichTextBox1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim txt As String
    txt = RichWordOver(RichTextBox1, X, Y)
    If Label1.Caption <> txt Then Label1.Caption = txt
    End Sub

    наверх

    Как включить прокрутку по горизонтали

    По умолчанию, когда вы помещаете RichTextBox на форму, VB устанавливает свойство RightMargin как 0. Это означает, что вводимый пользователем текст целиком располагается внутри текстового окна. Для вывода горизонтальной линейки прокрутки необходимо, чтобы значение свойства RightMargin было больше, чем ширина текстового окна. Иначе, даже если установить свойство ScrollBars как 1-rtfHorizontal, RichTextBox не выведет линейку прокрутки.

    Поместите на форму RichTextBox, имеющий ширину 4000. Затем установите свойство RightMargin как 4400, а свойство ScrollBars как 1-rtfHorizontal. Запустите проект на выполнение и начните вводить текст. Когда достигнете границы текстового окна, VB выведет горизонтальную линейку прокрутки.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Костик

    Ответ ожидается по этому адресу

    Как можно выключить компьютер в WinXP и Win9x (нужно чтобы код был для WinXP и Win9x одним и темже)?

    Автор вопроса: Костик

    Ответ ожидается по этому адресу

    Можно ли сделать Рабочий стол = Enebled или сделать форму прозрачного цвета?
    Нужно чтобы до определённого события нельзя было польяоваться ни рабочим столом, ни панелью (там где кнопка Пуск)

    Автор вопроса: Paul

    Ответ ожидается по этому адресу

    Подскажите, есть ли программа для автоматического подсчета количества распечатанных листов на принтере. Я не спец в VB, но может быть есть люди, которые ее уже написали и успешно пользуются. Если не трудно, то пришлите мне ее или хотя бы адрес, где эту программу можно взять.

    Автор вопроса: Володя Шестерень

    Ответ ожидается по этому адресу

    Пишу прогу по типу простенького маршрутизатора: удаленная тачка-[1] с модемом ловит входящие звонки от DialUp-почтовок-[3] и перенаправляет по TCP данные на почтовку-[2] (Argus). Использую MSCOMM И WINSOCKET. Вообщем все работает но есть одна проблемка: при приеме WINSOCKET-ом [1] от [2] больших файлов - он почти сразу загоняет их к себе в буфер и т.к. модем-то помедленнее передает, то нарушается синхронность модемного протокола т.е. при появлении ошибок и запроса с [3]-й на Resend from byte... принятый ответ WINSOCKET-ом [1] от [2] попадает в конец буфера и покуда он дойдет на отправку в модем для [3] модемная связь [1] с [3] обрывается. Вопрос: можно ли уменьшить размер входного буфера WINSOCKET-а или как-то притормаживать закачку входного потока по TCP в его буфер или че другое попробовать. (На маршрутизаторах Cisco - размер буфера видать пару килобайт и все работает на ура, хотя конечно это разные вещи).

    Автор вопроса: Lexa

    Ответ ожидается по этому адресу

    Есть ли такой грид который мог бы отображать данные различными цветами в зависимости от условий,скажем если значение поля меньше 10 тогда чёрным, больше - красным?

    Автор вопроса: Valer

    Ответ ожидается по этому адресу

    Подскажите, плиз, как сделать прогу на VB, чтобы она запускалась только с CD (т.е.ссылалась на серийный номер CD-диска). Приведите пример кода, если не трудно.

    Автор вопроса: Шурик

    Ответ ожидается по этому адресу

    Подскажите как из программы открыть сидюк? И кто нибудь знает где можно достать инфу по работе с Swiftsoft Multimedia Tools OCX

    Автор вопроса: Роман

    Ответ ожидается по этому адресу

    Как осуществить перебор всех контролов только на одной вкладке SSTab?

    Автор вопроса: Олег

    Ответ ожидается по этому адресу

    Не подскажите ли вы как в тестбоксе (или рич текст боксе) изменить цвет
    (программным путём) конкретных символов, например, я ввожу в текст-бокс "Привет всем !!!". Нужно слово "привет" сделать зелёным, "всем" красным и "!!!" синим цветом. Или ещё например как в редакторе VB- все команды синим цветом, ремарки зелёным и т.д.

    Автор вопроса: Dmitri Islentyev

    Ответ ожидается по этому адресу

    Может кто подскажет как быть: пишу на vbscript(asp), задача - с помощью word.application сохранить указанный документ ворда как html? На vb все работает, а на asp валится с сообщением "Не удается открыть банк макросов", хотя никаких макросов там нет. Вот кусок кода, валится на 3 строке:

    Dim objWdDoc
    Set objWdDoc=Server.CreateObject("Word.Application")
    objWdDoc.Documents.Open "C:\work\word-work\bar.doc"

    Автор вопроса: Лёха

    Ответ ожидается по этому адресу

    Кто-нибудь может подсказать, как сделать прозрачный контрол, который бы реагировал на нажатие кнопок мыши. А может, кто знает, как отлавливать события мыши MouseUp MouseDown???

    Автор вопроса: LexSys

    Ответ ожидается по этому адресу

    1) Люди помогите, мне нужно сделать 1 графическую фишку:
    Есть Пикчер с картинкой (растянутый на весь экран), мне нучно, разбить его на много кубиков, и чтобы каждый кубик полетел в произвольную сторону, за границу экрана? (Может кто видал такую заставку)
    2) И еще дайте пример записи\чтения данных в ини файлы, но чтобы было без всяких ocx, dll`ок?

    Автор вопроса: Артем Коваль

    Ответ ожидается по этому адресу

    Скажите пожалуйста как перемещать строки в ListView'е, и как програмно выделять любую строку по индексу.

    Автор вопроса: Hidel

    Ответ ожидается по этому адресу

    Как програмно реализовать на VB принятый в LPT или COM порт сигнал, чтобы на экране что нибудь происходило?

    Автор вопроса: s-in

    Ответ ожидается по этому адресу

    Как получить пароли Outlook Express? У меня есть исходник на с++, но никак не могу перевести его на VB. Все что я понял, так это то, что используется не документируемая функция PStoreCreateInstancePtr, которая вызывается из файла pstorec.dll. В общем похож на алгоритм получения кешированых паролей.

    Ответы:

    Вопрос:

    У меня вопрос, как узнать список расшаренных ресурсов с определенного ip.

    Ответ:

    Автор ответа: Alex

    Ну, вот как всегда... на вопросы типа "как открыть меню" отвечает 10 человек, а на "нормальные" вопросы не отвечает никто. Непорядок!
    Кстати, в свое время я долго (приблизительно год) не мог получить вразумительного ответа на этот вопрос. Но... кто ищет тот всегда найдет.
    Нашел и ты.
    Для этого надо воспользоваться API функциями класса WNet
    Это:
    WNetOpenEnum - начинает процесс перечисления сетевых ресурсов с корневого уровня или уровня другого сетевого ресурса
    WNetEnumResource - перечисляет сетевые ресурсы
    WNetCloseEnum - закрывает манипулятор перечисления сетевых ресурсов
    Все это работает как поиск файлов с помощью FindeFirst и FindeNext, только чуть-чуть сложнее.
    Тебе также будут полезны функции:
    WNetGetConnection - получает информацию подключения для локального ресурса
    WNetGetUniversalName - получает полное сетевое имя файла или сетевого ресурса

    Недеюсь как пользоваться API ты разберешься сам, ну если что... мыль.

    Вопрос:

    Есть прога - локальный чат, который использует широковещательные пакеты. так вот, надо написать прогу, которая слушает порт (на котором сидит этот чат) и принимает не только "свои" пакеты с сообщениями, но и "чужие". Короче говоря, че-то типа сниффера! Как это можно организовать?

    Ответ:

    Автор ответа: Alex

    Берешь WinSock.
    Выбираешь UDP протокол, и говоришь какой порт слушать. Если "зашевелится" кто у тебя событие наступит и ты сможешь пакет этот прочитать.

    Вопрос:

    Как можно создать метку (Label) во время работы программы, и как можно ее удалить. Причем добавление и удаление по возможности неограниченного количества Labelов за один запуск программы и по возможности чтобы они были систематизированы.

    Ответ:

    Автор ответа: Alex

    Кладешь Label на форму. В свойстве index=0.

    Load Label1 'Создать новый Label со следующим индексом
    Unload Label1 'Выгрузить (удалить) Label из масива

    В процедуре события пишешь:

    Private Sub Label1_Click(Index As Integer)
    Label1(Index).Caption = "---"
    End Sub

    Надеюсь ясно.

    Вопрос:

    Не мог бы мне кто-нибудь подсказать, как работать с числами в двоичной, 16-ричной, 8-ричной системами счисления. Может быть, в бэйсике есть какие-нибудь операции и функции для работы с ними?

    Ответ:

    Автор ответа: Alex

    Функции:

    HEX(255) - вернет "FF" - шестнадцатиричное представление десятичного
    OCT(8) - вернет "10" - восьмеричное представление десятичного числа
    BIN - к сожалению из VB ее убрали, а QBasic и QBX и VBDos она помниться мне была. Ну, ничего, напиши сам свою.

    И это еще не все...

    VAL("&HFF") - вернет 255 (число, а не строку)
    VAL("&O10") - вернет 8

    И в своей программе ты можешь наровне с десятичными писать шестнадцатиричные и восьмиричные числа:

    A = &HFF или A = &O10

    Вопрос:

    Как привязать программу к ЭВМ. Только пожалуйста не надо писать всякую бурду про дату биоса т.к она одинакова на половине мам и в 2к эта фигня не работает SOS!!!!!!!

    Ответ:

    Автор ответа: shadow

    А чево ты сам-то к дате биоса привязался? Есьть ведь еще дофигища параметров - номер винта, мамки, видюхи - а если все эти номера еще и сложить(умножить, разделить и т.д.) - тогда вообще уникальное число получится.

    Ответ:

    Автор ответа: Alex

    В свое время я тоже сталкивался с этой проблемой, и единственный выход, который я нашел для себя это собрать как можно больше уникальной информации о конкретной машине. Это:

    1) Серийный номер HDD - он уникален. Используй API GetVolumeInformation
    2) При установке винда в реестре пишет уникальный идентефикатор машины т.е. machine_id.
    Точно не помню как он называется и где именно находится, попробуй поискать его в разделе:
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion
    (неохото лезть искать, но если оч. надо, то поискать можно)
    3) Серийный номер CPU. (надо рыть исходники)

    С первыми двумя у меня проблем не возникло, а третий работал не на всех процах. Надеюсь понятно. В принципе тебе может хватить и первого.

    Вопрос:

    Нужна помощь в написании программы программа должна открывать .html, .mdb файлы и искать e-mail'ы, программа нужна, чтобы вести базу данных пользователей. Базы есть но в html и mdb в ручную переволит очень долго,люди если кто нибудь может помочь хелпните.

    Ответ:

    Автор ответа: shadow

    Видимо предполагается что будет происходить поиск по слылкам на емайл, т.к. в тексте HTML @(сабака) может встречаться и без привязки к емылу (например в анекдотах для замены мата: х@й). Тогда нет ничего проще: открываеш HTML как текстовый файл на чтение и отсеиваещ по тегам:
    например есть HTML

    MyString="<куча текста>
    biaka@buka.ru
    <куча текста>"

    считываеш весь текст в MyString(или построчно если большой) и проверяеш (в случае считывания всего текста, проверенный кусок надо отсекать

    MyString=Right(MyString, Len(MyString)-A) )
    Dim A As Integer
    Dim Emyl As String
    Dim Begin As String
    Dim MyString As String
    MyString = Text1.Text
    Begin = " A = InStr(1, MyString, Begin, 1) + Len(Begin)
    Emyl = Mid(MyString, A, InStr(A, MyString, Chr$(34) + ">", 1) - A)
    Text1.Text = Emyl

    Пример рабочий

    Вопрос:

    У меня один маленький вопрос по объекту ADODB.Recordset. Чем отличаются значения свойства CursorLocation - adUseClient и adUseServer? И почему, если это свойство установлено в adUserServer, то свойство RecordCount воявращает -1 и при попытке связать Recordset с DataGrid вояникает ошибка.

    Ответ:

    Автор ответа:     Sergey

    Вопрос слишком глобальный, чтобы на него ответить одним предожением. Значения этого св-ва зависят от того какой источник данных и какой провайдер используется ADO для доступа к данным.
    Если брать MSSQL, то действительно при CursorLocation = adUseServer RecordCount всегда -1 потому что ADO не знает сколько записей в рекордсете и которые нужно вытягивать через Eof/MoveNext. Клиентские курсоры быстрее потому что данные располагаются на клиенте, но серверные используют меньше ресурсов.

    Вопрос:

    У меня 2 принтера, HP и VentaFax. Из моей проги мне нужно то напечатать заявку, то послать ее по факсу. Эту проблему пока я решаю вызовом окна Windows "Принтеры" и переключением принтера по умолчанию. А вот программно, выбрав сообветствующий переключатель на форме не удается. Если кто решил эту проблему, помогите п-та.

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Думаю, так:

    Printers(n).print .....

    где n - номер принтера

    Вопрос:

    Как, если можно, сделать в VB ассемблерные вставки?

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Option Explicit

    'restarting your machine by assembly
    'works only on win 9x os (not sure of win me)

    Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal ptrMC As Long, ByVal P1 As Long, ByVal P2 As Long, ByVal P3 As Long, ByVal P4 As Long) As Long
    Private MCode(0 To 8) As Byte 'the byte array to hold the machine code
    Private pointerMC As Long 'pointer to the first byte

    Private Sub Command1_Click()
    Dim dl As Long
    Dim response
    response = MsgBox("If you are using Win9x, this will restart your machine now. Save your works before clicking 'yes'. Are you sure to do it?", vbQuestion + vbYesNo + vbDefaultButton2)
    If response = vbNo Then Exit Sub
    dl = CallWindowProc(pointerMC, 0&, 0&, 0&, 0&)
    End Sub

    Private Sub Form_Load()

    'the assembly codes are these:
    ' in al,92h
    ' or al,1
    ' out 92h,al
    ' ret 16

    'the hex values of these codes from the generated binary file
    'by NASM are put into the byte array

    MCode(0) = &HE4
    MCode(1) = &H92
    MCode(2) = &HC
    MCode(3) = &H1
    MCode(4) = &HE6
    MCode(5) = &H92
    MCode(6) = &HC2
    MCode(7) = &H10
    MCode(8) = &H0

    'pointing to the first byte of machine code
    pointerMC = VarPtr(MCode(0))

    End Sub

    Если верить автору кода, этот код должен перезагрузить машину. У меня ни под XP, ни под 98-й ничего не происходит.

    Ответ:

    Автор ответа: P@Ssword

    Можно написать на Ассемблере Dynamic Link Library и использовать её функции в коде VB. Больше никак.

    Ответ:

    Автор ответа: Sergey

    Никак, да и для чего ? Ведь ты не сможешь все равно использовать в ассемблерном коде переменные/объекты VB.

    Ответ:

    Автор ответа: ]CBK[CRaSH

    Чего нету того нету.
    Но можно написать DLL на асме и юзать в вб

    Вопрос:

    Вот вопрос говарят он тежёлый. Есть обьект DanaGrid в его свойствах есть возможнасть сделать из колонки в ComboBox (как в Access) но я не знаю как. К примеру я делал так

    Private Sub Form_Load()
    Dim Indx As Integer
    DataGrid1.Columns(1).Button = True
    End Sub

    Private Sub DataGrid_ButtonClick(ByVal ColIndex As Integer)
    With DataGrid
    List1.Top = .RowTop(.Row) + .Top + .RowHeight + 10
    List1.Width = .Columns(1).Width + 50
    If Not .Columns(1).Text = "" Then
    For Indx = 0 To List1.ListCount - 1
    List1.ListIndex = Indx
    If List1.Text = .Columns(1).Text Then
    List1.ListIndex = Indx
    Exit For
    End If
    Next Indx
    Else
    List1.ListIndex = 0
    End If
    End With
    List1.Visible = True
    List1.SetFocus
    End Sub

    Может есть на много удобный способ, не проста так сделали эту кнопку в DataGrid.

    Ответ:

    Автор ответа: Sergey

    Если тебе нужен чтобы ты мог ввести данные из списка (ComboBox) в какую-то из ячеек используй ComponentOne True DBGrid + TDBDropDown компоненты.

    Вопрос:

    У меня VB6 не хочет работать с базами Access2000, примеры из Access97 берет, а для 2000 пишет - нераспознанный формат данных, когда выбираю RecordSource. Помогите, что я делаю не так?

    Ответ:

    Автор ответа: Кварк

    Привет, тебе нужно инстальнуть новый MDAC 2.6 вроде... Я нашел в 5 сервис паке (говорят еще в 4 был) мне помогло.

    Ответ:

    Автор ответа: Лозовский Антон Борисович

    Попробуй поставить Servicepack 5.

    Ответ:

    Автор ответа: Алексей

    Нужно работать через dao360.dll (формат Access 2000).

    Ответ:

    Автор ответа: Корик

    VB6 работает с Access2000 только после установления Server Pack, который ты можешь найти на сайте микрософта.

    Ответ:

    Автор ответа: Sergey

    Я так понял, речь идет о библиотеке DAO? Если так то для того, чтобы она понимала Access 2000/XP необходима версия 3.60 и не ниже.

    Вопрос:

    Подскажите пожалуйста где можно бесплатно скачать самоучитель для начинающих или может быть есть какие-нибудь рассылеи уроков. Я живу за границей и поэтому имеются сложности с оплатой.

    Ответ:

    Автор ответа: Артем Кривокрисенко

    www.vb.kiev.ua - Прекрасный учебник Андрея Гончарова "Мышление в стиле
    Visual Basic". Must have!
    Есть такая конференция - SoobCha_VB. Там можно получить ответ практически на любой ответ любой сложности. Подписаться можно, отправив пустое письмо по адресу vb-on@soobcha.org

    Ответ:

    Автор ответа: Loki

    Зайди на www.subscribe.ru там ты можешь подписаться на рассылки. Там ты найдеш раздел програмирование!!!

    Вопрос:

    Почему у меня 2 проекта не принимают функции Right или Left, создаю новый проект - все нормально, а в этих он просто не принимает их, как-будто их не существует. Эти 2 проекта исп. Winsock, может из-за этого?
    Если пишу так Right$ - Ошибка: Type-declaration character does not match declared date tupe.
    Если пишу так Right - Ошибка: Ожидаемый массив

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Не пойму, в чем проблема. Неплохо бы и привести кусочек кода.
    Попробуй сделать так:

    str= VBA.Right(.....)

    Ответ:

    Автор ответа: ]CBK[CRaSH

    Здесь может быть из-за того что у тебя в References подключин обьекс которого не существует

    Ответ:

    Автор ответа: TiborF

    В полне возможно что в твоих проектах уже объявлены одноимённые переменные или ф

    Вопрос:

    Подскажите, как сделать форму проярачной? С SetWindowLong что-то не получается

    Ответ:

    Автор ответа: P@Ssword

    Если с SetWinLong не получается, то первое, что надо сделать - установить Windows не ниже 2000.

    Вопрос:

    Делаю так (естественно все продекларировав):

    Dim hwnd As Long
    Dim pid As Long
    Dim pHandle As Long
    Dim str As String*20
    hwnd = FindWindow(vbNullString,"яаголовок окна игры")
    If(hwnd=0) Then Exit Sub
    GetWindowThreadProcessld hwnd,pid
    pHandle =OpenProcess(PROCESS_ALL_ACCESS,False,pid)
    If(pHandle=0)Then Exit Sub
    ReadProcessMemory pHandle, &H(adres),str,20,0&
    text1.text=str
    CloseHandle hProcess

    Всё это яамечательно, только мне надо считывать не строку, а число. Если поставить str в Long то воявращается ноль, все остальные типы дают ошибку - несовпадение типов. Скажите как считать число? или придется преобраяовывать строчку по Asc?

    Ответ:

    Автор ответа: P@Ssword

    Может, у тебя прописана передача строки ByVal, если да - то просто убери.

    Вопрос:

    Как в VB играть MIDI,WAV,MP3и другие файлы?

    Ответ:

    Автор ответа: Кварк

    Привет, а ты просто подцепи медиа оcx (из набора стандартных) он все могет

    Ответ:

    Автор ответа: lom

    Используй такой контрол, как WindowsMediaPlayer (Component-WindowsMediaPlayer)

    WindowsMediaPlayer.FileName = "Путь к твоемй файлу"

    а так же можешь использовать методы

    WindowsMediaPlayer.Play
    WindowsMediaPlayer.Stop
    WindowsMediaPlayer.Pause

    Вопрос:

    Скажите, существует ли такая API функция, которая считывает состояние трафика, при соединении с Инетом?

    Ответ:

    Автор ответа: Лозовский Антон Борисович

    Нету. Пиши заглушку через Винсок.

    Вопрос:

    Я создал прогу типа обучающего комплекса(Full ass) но самое главное что я хочу сделать это чтобы все базы были на серванте, а клиен юзал их по сети. НО фишка в том что WinSock едри его растуды связанный по протаколу TCP не разрешает конектится нескольким клиентам к одному порту. Я сделал процедуру автомотического добовления WinSocka и встретил баг. после дабавления около 40 sock`oв всех обрубало или начинало все глючить. Я начил использовать UDP и о чудо в забиндиный порт могут конектится дох..на народу и посылать инфу серванту, а вот наоборот сервер посылает инфу только тому кто первый ему пошлет что-нибудь.

    Ответ:

    Автор ответа: shadow

    У винсока есть такое свойство RemoteHost, и если RemoteHost не указан явно, то VB хватает тот хост который первым чевото сообщил. Видимо надо делать чтото вроде этого:

    Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    Dim strData As String
    Dim Adres As Long
    Adres = Winsock1.RemoteHost
    If strData = "zapros" Then
    Winsock1.RemoteHost = Adres
    Winsock1.RemotePort = kakoi_to_tam
    Winsock1.SendData "infa"
    End If
    End Sub

    Ответ:

    Автор ответа: P@Ssword

    ... WinSock едри его растуды связанный по протаколу TCP не разрешает конектится нескольким клиентам к одному порту...

    Это кто ж сказал, что не позволяет? Ещё как позволяет!

    А про UDP. Ты тоже загружаешь кучу WinSock? Нет? А надо... Или каждый раз менять RemoteHost на следующего клиента.

    Вопрос:

    Как мне создать новый элемент а именно OptionButton в работающей программе на фрейме и определить ему свойства.

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Могу прислать такой контрол. В стиле XP

    Вопрос:

    Подскажите как можно из Vb считать/отследить информацию по COM - порту. Скажем получить код со сканера штрих-кодов (как в супермаркете).

    Ответ:

    Автор ответа: Лозовский Антон Борисович

    Чтобы на VB работать с COM портом - используй Microfoft Comm Control (элемент управления такой).

    А чтоб получить еще и код со сканера штрих-кода этого мало: нужно знать его протокол обмена информацией с компьютером.

    Вопрос:

    Как отправить данные на определённый порт. Т.е. нужно изменить значение второго (...девятого) штырька на LPT. В Qbasic-е это выглядит так:

    OUT &H378, g 'g-число от 0 до 255

    а на VB неизвестно.
    Сколько вольт и ампер должно быть на штырьках, чтоб порт не сгорел.
    Есть ли у кого-нибудь что-нибудь в примерах по этой теме?

    Ответ:

    Автор ответа: Лозовский Антон Борисович

    Лучше не экспериментируй с вольтами и амперами - или порт попалишь, или принтер угробишь.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 136.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск!
    Читайте!

    Содержание выпуска

    • Книги

    • MSAgent CD

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Один момент из жизни форума: Индексирование Access базы данных по полю типа MEMO

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на 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.

    наверх

    MSAgent CD

    VBNet.Ru представляет новый компакт-диск!
    Этот CD полностью посвящён технологии Microsoft Agent.
    На диске Вы сможете найти:

    • Статьи - Статьи о применении технологии MS Agent в Visual Basic.
    • Софт - Программное обеспечение, дополняющее MS Agent. Здесь Вы найдёте ядро MS Agent, движки воспроизведения и распознавания речи, программу создания персонажей, программу для просмотра действий персонажей, Speech API, русификатор MS Agent и т.д.
    • Персонажи - Более 100 персонажей для MS Agent!
    • Примеры - Несколько примеров использования технологии MS Agent в Visual Basic и .NET.
    • Справочники - Справочники о MS Agent - справочник от "Русского Проекта" на русском языке, а также полная документация от Microsoft.
    • Сайт VBNet.Ru - Также на диске находится полная свежая копия этого сайта (VBNet.Ru).
    • BalloonMessage for Microsoft Agent - Ну и небольшой подарок... Компонент BalloonMessage for Microsoft Agent с бесплатной лицензией!

    Полное содержание диска можно скачать здесь.
    Обращаю Ваше внимание на то, что в магазин CD сайта VBNet.Ru действует система скидок. Если Вы уже приобрели у нас один компакт-диск, то на последующие заказы действует скидка 5%. Если же Вы купили 3 или более CD, то скидка - 10%.
    Компакт-диск распространяется по почте наложенным платежом.
    Стоимость компакт-диска с учётом почтовых расходов - 100 рублей.
    Чтобы заказать диск, зайдите сюда: http://vbnet.ru/vbshop/order.asp?id=3.

    наверх

    Новости сайта VBNet

    Дата: 16.02.2003 10:45 | Раздел: Примеры кода | Автор: Millenium

    Millenium Flash Player 3.x Source Code - Исходник Millenium Flash Player 3x. Большая возможность работы с медиа файдами типа SWF (ShockWave Flash) и FMF (Flash Media File)...

    Дата: 14.02.2003 08:38 | Раздел: Примеры кода | Автор: Zuf

    Zuf's MSG shell - Пример является оболочкой команды WinNT/2000/XP "NET SEND" Позволяет отсылать "админские" сообщения в локальной сети с большим удобством. Пример умеет прятаться в трей и подниматься поверх всех окон. Также использованы нестандартные кнопки на основе Label ;)

    Дата: 13.02.2003 08:38 | Раздел: Примеры кода | Автор: Stas

    Пример игры Пятнашки - Это простой пример наиболее популярной игры пятнашки. В архиве есть исходники по которым можно посмотреть принцип работы игры.

    Дата: 12.02.2003 08:38 | Раздел: Примеры кода | Автор: Замашной Вадим

    Блокировка CD - Программа блокирует CD диски от просмотра. Работает в WIN XP. Управление CTRL+P

    Дата: 11.02.2003 08:37 | Раздел: ActiveX контролы | Автор: Воронков Василий

    Office XP Button - Кнопка в стиле Office XP. В сущности - не что иное как пример использования пары API-функций.

    Дата: 09.02.2003 13:27 | Раздел: Примеры кода | Автор: Sheff

    Article Writer 1.25 - Эта программа предназначена для написания статей в формате HTML. Особенности програмы: -Вставка и выделение исходного кода -Возможность подсветки синтаксиса VB, VC++ -Подсветка синтаксиса, определённого пользователем -Выбор типа генерации HTML'а -Возможность сохранения проекта и др.

    Дата: 09.02.2003 09:58 | Раздел: Примеры кода | Автор: Виталиум!

    Многоканальный Winsock - Как один винсок может принимать сразу несколько соединений? А вот так... Посмотрите сами. :-)))

    Дата: 09.02.2003 08:25 | Раздел: Примеры кода | Автор: Daniyar Atadjanov

    DoNotPressPrintScreen - Прога показывает как сделать так, чтобы нельзя было снять скриншот с вашей программы! Отличный пример!

    Последние 20 тем форума на VBNet.Ru:

    08:18 / 16 фев. Post Script формат | Хитов: 2 | Ответов: 0
    03:10 / 16 фев. Помогите.. Как создать ЯРЛЫК на рабочем столе ? | Хитов: 7 | Ответов: 1
    22:17 / 15 фев. Люди, у меня трабл | Хитов: 13 | Ответов: 1
    20:29 / 15 фев. Eject 2 CD??? | Хитов: 13 | Ответов: 1
    17:09 / 15 фев. многострочные данные в ListBox | Хитов: 10 | Ответов: 0
    17:01 / 15 фев. Поля в RichTextBox? | Хитов: 14 | Ответов: 1
    14:42 / 15 фев. Три звезды | Хитов: 26 | Ответов: 2
    14:36 / 15 фев. Узнать точку пересечения срединных перпендикуля... | Хитов: 18 | Ответов: 4
    13:30 / 15 фев. Печать данных из базы | Хитов: 6 | Ответов: 0
    12:04 / 15 фев. Архивация mdb-базы | Хитов: 12 | Ответов: 1
    10:56 / 15 фев. WinInet | Хитов: 12 | Ответов: 0
    22:56 / 14 фев. Что за число - 13... | Хитов: 37 | Ответов: 3
    20:01 / 14 фев. Регистрация.... | Хитов: 29 | Ответов: 2
    19:43 / 14 фев. Сортировка данных | Хитов: 22 | Ответов: 1
    17:25 / 14 фев. Чат на АСП | Хитов: 26 | Ответов: 1
    17:16 / 14 фев. Защита поцесса от уничтожения | Хитов: 24 | Ответов: 2
    17:09 / 14 фев. ИЩЕМ ПРОГРАММИСТА НА VB | Хитов: 44 | Ответов: 1
    16:02 / 14 фев. Windows Explorer | Хитов: 30 | Ответов: 3
    13:23 / 14 фев. материнская плата | Хитов: 23 | Ответов: 1
    12:53 / 14 фев. Размывка курсора - круто... | Хитов: 53 | Ответов: 9

    Последние поступления в Библиотеку кодов:

    Новости от VBNet-чиков!:

    21:09 / 11 фев Иван сообщает: Представительство Microsoft в России и СНГ, Федеральное государственное унитарное предприятие "Научно-технический центр "Атлас" (НТЦ "Атлас") и Главное управление информационных ресурсов органов государственной власти Российской Федерации Федерального агентства правительственной связи и информации при Президенте Российской Федерации (ГУИР ФАПСИ) объявляют о том, что по согласованию с ФАПСИ НТЦ "Атлас" подписал Соглашение с корпорацией Microsoft об использовании исходного кода в интересах повышения доверия к программным продуктам корпорации Microsoft, применяемым в органах государственной власти Российской Федерации. Договоренности, достигнутые корпорацией Microsoft, НТЦ "Атлас" и ГУИР ФАПСИ в рамках данного Соглашения, создают уникальные предпосылки для долговременного сотрудничества и использования современных технологий Microsoft в защищенных информационных системах органов государственной власти России. Более подробную информацию можно получить по адресу http://www.microsoft.com/rus/news/issue.asp?15-01-2003-windows_source_open.xml

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Новости сайта MSDN

    наверх

    Новости сайта GotdotNet

    • 12.02.2003 - Скидка 15% на услуги хостинга PARKING.RU для посетителей GOTDOTNET.RU
      PARKING.RU - специализированный провайдер виртуального и выделенного хостинга на платформе Windows® предлагает посетителям сайта GOTDOTNET.RU получить скидку 15% при заказе услуг коммерческого лицензионного виртуального хостинга на Windows®-платформе.

    Новые статьи:

    • 13.02 - Рисование собственных элементов управления с помощью GDI+
    • 11.02 - Сортировка элементов ListView по столбцу с помощью Windows Forms

    наверх

    Новости сайта dotSite

    Новые статьи:

    Новые примеры:

    наверх

    Один момент из жизни форума: Индексирование Access базы данных по полю типа MEMO

    Вопрос:
    Автор вопроса: AlexSid

    Мое приложение использует Access БД. Одно из ключевых полей таблицы имеет тип MEMO, оно используется для хранения больших текстов, заранее неизвестного размера.
    О бъем базы порядка 10000 записей.
    При оранизации поиска c помощью VB я использую SQL запрос на поиск некого текста во всех записях (по полям типа MEMO).
    Поиск получился жутко долгим. На каждый запрос уходит порядка 20-и секунд, а Access не позволяет индексировать по этому полю.
    Что делать? Как ускорить поиск? Есть в Access что-нибудь типа FULLTEXT KEY?

    Ответы:

    Автор: BIV
    Поля типа MEMO не делают не то, что ключевыми, но и индексированными то же. Слово "ключевых", видимо ты употребил вместо "важных".
    Видимо, придется, выбирать из MEMO - поля ключевые слова и хранить их в индексированном поле, лучше в другой связанной таблице, где и осуществлять поиск. Примерно как в поисковиках.

    Автор: AlexSid
    Конечно, имелось в виду "важных" полей. Неоднозначно выразился, прошу прощения.
    Если не сложно, опишите, пожалуйста, немного подробнее процесс выборки ключевых слов и способ их хранения и связывания с данным полем в другой таблице. Как примерно должна выглядеть эта доп. таблица? Что в тексте должно называться ключевым словом?

    Автор: BIV
    Отправил тебе пример

    Автор: AlexSid
    Посмотрел...
    Ты предлагаешь создать вторую таблицу с записями типа (Id, Words), где Id в "индексной" таблице будет соответствовать Id в индексируемой таблице с MEMO полем...
    Но вот вопрос, а какой мне толк от текстового поля Words, если я индексирую большие тексты в поле MEMO? У меня же количество ключевых слов будет достаточно большим чтобы уместится в поле длиной 255 символов. Можно, конечно, выбрать набор слов из MEMO, не превышающий 255 символов, но тогда падает эффективность поиска!
    А нельзя ли созать "индексную" таблицу (Word, MEMO_Ids), где в поле Word будет какое-либо одно ключевое слово, а в поле MEMO_Ids все номера Id полей MEMO, в которых встречается данное ключевое слово? Не знаю, правда, какого типа должно быть поле MEMO_Ids... (Да тот же MEMO, хотя бы, если через запятую перечислять. Все равно же не поэтому полю индексировать)

    Автор: ericsson
    Для связи с Acces БД ты используешь компонент Data ?
    Или какой?
    Если Data, то подскажи пожалуйста какой файл нужен чтобы прога работала на других компах, а то у меня после перетаскивания проги на другой комп где нет VB60 вадает ошибку "Object class not registred"

    Автор: AlexSid
    To ericsson:
    Для связи я использую DAO, для которого соответственно нужен файл dao350.dll или dao360.dll. Почитай еще сообщения этого форума, здесь часто касались этой темы!
    Похоже, вопрос с индексированием замялся. А жаль, интересная, по-моему, тема!

    Автор: BIV
    Индексы, как сказал один умный человек, - это алфавитный указатель по краю телефонной книжки. Ты берешь букву "А" и смотришь телефоны на эту букву. Из этого следует, что, как минимум, индекс должен быть небольшим (он к тому же занимает место на диске), а лучше уникальным - свойственным только одной записи в таблице. Последнее далеко не всегда возможно.

    Автор: AlexSid
    To BIV:
    "как минимум, индекс должен быть небольшим"...
    А как же тогда создавать этот индекс? Ась? Автоматизация?
    Не руками же из 10000 статей ключевые слова вычленять! А программным путем, найти самые главные слова статьи и присвоить именно им статус КЛЮЧЕВЫХ, это, знаете, Artificial Intelligence...

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Роман

    Ответ ожидается по этому адресу

    Кто нибудь знает как запустить компьютер из сети. Не из спящего режима, а именно выключенный.

    Автор вопроса: Игорь

    Ответ ожидается по этому адресу

    Можно ли привяяать координаты дочерней формы (свойства Top и Left) к координатам кнопки, по нажатию на котррую эта форма выяывается. Например, чтобы дочерняя форма появлялась строго под кнопкой неяависимо от положения самой кнопки на родительской форме?
    В приведенном ниже примере привяяка почему-то не работает:

    Form1.Left = MainForm.cmdButton.Left + 100
    Form1.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 - не исчезает

    Автор вопроса: SAMspb

    Ответ ожидается по этому адресу

    Пишу программу на VBA в Excel, вешаю мою процедуру на DBClick, как сделать так, что бы после выполнения моей процедуры DBClick не отрабатывался.

    Автор вопроса: Костик

    Ответ ожидается по этому адресу

    Как отследить нажатие клавиши, которая "нажимает" на кнопку ПУСК (со значком Windows) и сочетание клавиш Alt+F4 (нужно чтобы до определ?нного события нельзя было закрыть форму)?

    Автор вопроса: PostMaster

    Ответ ожидается по этому адресу

    В VB я не мастер! Пожалуйста, расскажите, как сделать следующее:
    На экранной форме есть командная кнопка. Как, нажав на неё, загрузить и просмотреть файл на MS Word, а затем выгрузить и его, и MS Word.

    Автор вопроса: Laguna Ukraine

    Ответ ожидается по этому адресу

    Как получить в List адреса всех веб-страниц, которые расположены на текущем сервере? Т.е., например, мне надо получить полный список всех страниц, которые находятся на http://www.hostname.com/ и внести все полученные URL в ListBox. Если кто-то может помочь, напишите как.
    Буду благодарен, также, если приведете пример.

    Автор вопроса: Алексей

    Ответ ожидается по этому адресу

    Есть код на с++ который получает пароли Outlook Express из Protected Storage, но я не могу его перевести на VB.
    Может кто знает с++ и сможет перевести на Visual Basic.

    #import "c:\windows\system32\pstorec.dll"
    using namespace PSTORECLib;
    #include
    #include

    typedef HRESULT (WINAPI *PStoreCreateInstancePtr)(IPStore **, DWORD, DWORD, DWORD);

    int checkunicode(unsigned char *data, unsigned long length){
    for(unsigned int i=0; i if(data[i] == 0) return 1;
    return 0;
    }

    int main(int argc, char **argv){
    HRESULT hRes;

    HMODULE hPstoreDLL = LoadLibrary("pstorec.dll");
    PStoreCreateInstancePtr PStoreCreateInstance = (PStoreCreateInstancePtr)GetProcAddress(hPstoreDLL, "PStoreCreateInstance");

    IPStorePtr spPStore;
    hRes = PStoreCreateInstance(&spPStore, 0, 0, 0);

    IEnumPStoreTypesPtr spEnumTypes;
    hRes = spPStore->EnumTypes(0, 0, &spEnumTypes);

    GUID typeGUID;
    while(spEnumTypes->raw_Next(1,&typeGUID,0) == S_OK){
    printf("typeGUID = %.8x\n",typeGUID);

    IEnumPStoreTypesPtr spEnumSubTypes;
    hRes = spPStore->EnumSubtypes(0, &typeGUID, 0, &spEnumSubTypes);

    GUID subtypeGUID;
    while(spEnumSubTypes->raw_Next(1,&subtypeGUID,0) == S_OK){

    printf("\tsubtypeGUID = %.8x\n",subtypeGUID);

    IEnumPStoreItemsPtr spEnumItems;
    HRESULT hRes = spPStore->EnumItems(0, &typeGUID, &subtypeGUID, 0, &spEnumItems);

    LPWSTR itemName;
    while(spEnumItems->raw_Next(1,&itemName,0) == S_OK){
    printf("\t\titemName = %ws\n",itemName);

    unsigned long pcbData = 0;
    unsigned char *ppbData = NULL;
    _PST_PROMPTINFO *pi = NULL;
    hRes = spPStore->ReadItem(0,&typeGUID,&subtypeGUID,itemName,&pcbData,&ppbData,pi,0);
    if(checkunicode(ppbData,pcbData))
    printf("\t\titemData = %ws\n",ppbData);
    else
    printf("\t\titemData = %s\n",ppbData);
    }
    }
    }

    return 0;
    }

    Ответы:

    Вопрос:

    У меня VB6 не хочет работать с базами Access2000, примеры из Access97 берет, а для 2000 пишет - нераспознанный формат данных, когда выбираю RecordSource. Помогите, что я делаю не так?

    Ответ:

    Автор ответа: Andrew Stephanoff

    Скорее всего ты при подключении используешь провайдер Jet 3.51. а Access 2000 требует Jet 4.0.

    Вопрос:

    Подскажите, как сделать форму проярачной? С SetWindowLong что-то не получается

    Ответ:

    Автор ответа: ViTal

    Declare Function SetAlfaWindowEffect Lib "user32" Alias "SetLayeredWindowAttributes" (ByVal hWnd As Long, ByVal crey As Byte, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long

    Подробнее описание смотри в MSDN. Работает лишь в W2k и XP.

    Вопрос:

    Можно ли сделать Рабочий стол = Enebled или сделать форму прозрачного цвета?
    Нужно чтобы до определённого события нельзя было польяоваться ни рабочим столом, ни панелью (там где кнопка Пуск)

    Ответ:

    Автор ответа: Tank

    А не проще Form1 > Visible > False, а после определенного события
    Me.Visible.True

    Вопрос:

    Есть ли такой грид который мог бы отображать данные различными цветами в зависимости от условий,скажем если значение поля меньше 10 тогда чёрным, больше - красным?

    Ответ:

    Автор ответа: Gregory

    TBGrid

    Вопрос:

    Подскажите, плиз, как сделать прогу на VB, чтобы она запускалась только с CD (т.е.ссылалась на серийный номер CD-диска). Приведите пример кода, если не трудно.

    Ответ:

    Автор ответа: ]CBK[CRaSH

    Ты можеш привизать свою прогу к метки тома CD. Загружаясь она получает имя диска на котором работает, а потом с помощью dir получаеш метку и смотришь
    Пример

    if Dir(Mid(App.Path, 1, 3), vbVolume)<>"Супер_CD2000" then Msgbox"Ты куды мою прогу скопировал":end

    Вопрос:

    Подскажите как из программы открыть сидюк? И кто нибудь знает где можно достать инфу по работе с Swiftsoft Multimedia Tools OCX

    Ответ:

    Автор ответа: Славик

    Открыть/закрыть CD-ROM

    Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
    Private Sub Command1_Click()
    Call mciSendString("CD-ROM открыт", 0&, 0&, 0&)
    End Sub
    Private Sub Command2_Click()
    Call mciSendString("CD-ROM закрыт", 0&, 0&, 0&)
    End Sub

    Ответ:

    Автор ответа: Роман

    Инфа по Swiftsoft Multimedia на www.rouch.mailru.com
    Этот код откроет лоток CD-ROM:

    Option Explicit
    Private Declare Function mciSendString Lib "winmm.dll" Alias _ "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString _ As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long

    Private Sub Command1_Click()
    mciSendString "Set CDAudio Door Open Wait", 0, 0, 0
    End Sub

    Для закрытия же CD-ROM используем эту же функцию, но с другим первым параметром:

    mciSendString "Set CDAudio Door Closed Wait", 0, 0, 0

    Ответ:

    Автор ответа: lom

    Это делается следующим образом:

    Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long

    Private result As Long

    Private Sub cmdOpen_Click()
    result = mciSendString("set CDAudio door open", returnstring, 127, 0)
    End Sub

    Private Sub cmdClose_Click()
    result = mciSendString("set CDAudio door closed", returnstring, 127, 0)
    End Sub

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 135.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта 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!!!

    Несколько слов от автора:

    Очередной выпуск рассылки.
    Читайте!

    Содержание выпуска

    • Книги

    • Включить/выключить перенос по словам
    • Как сохранить RTF-файл в виде простого текста
    • Как снять форматирование при вставке текста в элемент RichTextBox
    • Выделить цветом определенное слово во всем тексте
    • Как вставить рисунок

    • Вопрос/Ответ

    Книги

    Переход на 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 для ответа

    наверх

    Выпуск подготовили:


Выпуск 138.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск!
    Читайте!

    Содержание выпуска

    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • VB как служба (системный сервис)

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на 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.02.2003 10:59 | Раздел: Примеры кода | Автор: Владимир

    JPGfromRES - Загрузка картинок в формате JPG и GIF из фаила ресурсов

    Дата: 22.02.2003 10:57 | Раздел: Примеры кода | Автор: Дорохов Кирилл

    The Kid - Мощный исскуственный интеллект в режиме разговора с человеком. Введена несложная система обучения! На мой взгляд самая умная прога для разговора с человеком!

    Дата: 21.02.2003 11:00 | Раздел: Примеры кода | Автор: Страшный Сон

    Размывка Движения Мышиного Курсора (1.0) - Размывка движения мышиного курсора. Крутая вещица. Рекомендую всем.

    Дата: 21.02.2003 10:57 | Раздел: Примеры кода | Автор: Дорохов Кирилл

    Catch Me! - Новая придуманная мною аркада с примитивной графикой, но немного затягивающая...

    Дата: 19.02.2003 07:43 | Раздел: Примеры кода | Автор: HACKER

    Визуальное рисование для QB на VB - Тяжко на QB рисовать даже элементарные изображения. Теперь всё легко.

    Дата: 18.02.2003 10:45 | Раздел: Примеры кода | Автор: Millenium

    Sum - Пример размельчения суммы в долларах на 50, 20, 10 и 5. Пример печати содержимого ListBox без использования API.

    Дата: 18.02.2003 08:21 | Раздел: Статьи по VB | Автор: Андреев Николай

    О работе с LPT-портами и другой аппаратурой в Visual Basic - Эта статья о том, как работать с LPT-портами на Visual Basic.

    Дата: 18.02.2003 07:43 | Раздел: Примеры кода | Автор: HACKER

    Пересчёт суммы ячеек - Пересчёт суммы ячеек вертикально и горизонтально.

    Дата: 17.02.2003 10:46 | Раздел: Примеры кода | Автор: Lesnick

    PassGen - Программа для генерации пароля с опциями(благозвучность, сохранение в файл).

    Последние 20 тем форума на VBNet.Ru:

    03:56 / 24 фев. определить процессы | Хитов: 12 | Ответов: 2
    03:45 / 24 фев. вопрос по combo | Хитов: 8 | Ответов: 1
    19:42 / 23 фев. Вопрос по массивам | Хитов: 14 | Ответов: 1
    14:51 / 23 фев. Обращение к админам | Хитов: 28 | Ответов: 2
    14:43 / 23 фев. !!! Работа с реестром !!! | Хитов: 19 | Ответов: 1
    14:39 / 23 фев. Как из DLL выдрать Api ??? | Хитов: 22 | Ответов: 2
    11:55 / 23 фев. Помогите начинающему, пожалуйста! (VB 6.0) | Хитов: 22 | Ответов: 3
    09:50 / 23 фев. работа с MIDI | Хитов: 15 | Ответов: 2
    09:06 / 23 фев. С праздником 23 февраля всех! | Хитов: 23 | Ответов: 3
    06:43 / 23 фев. наверно глупый вопрос | Хитов: 33 | Ответов: 2
    03:07 / 23 фев. Кому нужно: Системы счисления | Хитов: 29 | Ответов: 3
    00:04 / 23 фев. Как записать звук в MP3 | Хитов: 26 | Ответов: 4
    23:34 / 22 фев. Memory & Process | Хитов: 12 | Ответов: 0
    18:45 / 22 фев. LoadResPicture(..., vbResIcon) | Хитов: 24 | Ответов: 2
    18:36 / 22 фев. LoadResPicture(..., vbResIcon) | Хитов: 4 | Ответов: 0
    17:50 / 22 фев. Win XP API | Хитов: 39 | Ответов: 4
    13:47 / 22 фев. Драйвер виртуального устройства | Хитов: 12 | Ответов: 0
    12:47 / 22 фев. Phone | Хитов: 19 | Ответов: 0
    10:57 / 22 фев. Помогите... | Хитов: 50 | Ответов: 2
    06:26 / 22 фев. Поиск и замена. SQL ??? | Хитов: 26 | Ответов: 3

    Последние поступления в Библиотеку кодов:

    Новости от VBNet-чиков!:

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Новости сайта MSDN

    наверх

    Новости сайта GotdotNet

    Новые статьи:

    наверх

    Новости сайта dotSite

    Новые статьи:

    Новые примеры:

    наверх

    VB как служба (системный сервис)

    Вопрос:
    Автор вопроса: PeterS

    Подскажите пожалуйста, как запустить программу в качестве службы в Win NT/2000/XP.
    Желательно без контролла и утилит Windows, а напрямую редактированием реестра.

    Ответы:

    Автор: Zeus
    Я этот же вопрос задавал раньше, никто не ответил...
    Но кстати, в NT в реестре есть интересное место автозагрузки:
    \software\microsoft\windows nt\current version\windows
    создаёшь параметр "load" или "run", пишешь адрес проги, и она будет запускаться, но RegCleaner не увидит)))

    Автор: PeterS
    Я знаком с этим методом, но к сожалению он мне не подходит.

    Автор: ШевТ
    используй vb.net! там специально такие вещи делать можно, и, кстати, весма продуктивно! я лично еще до этого не дошел, но говорят, не хуже чем на с++.

    Автор: Free Hunter
    2ШефТ: ага, и носить за собой FrameWorks .NET чтобы этот системный сервис работал... Не слабого размера сервис получается...

    Автор: PeterS
    Нет я не могу и не хочу использовать VB.Net, так что нужно использовать другой вариант.

    Автор: Free Hunter
    Ну тады, ИМХО, на VB6 ты вряд ли такое намутишь...

    Автор: Bombardier
    Для меня самый простой способ запустить программу как сервис - это использовать WMI, посмотри WMI scripting и конкретно методы для Win32_Service на www.microsoft.com (замечательно работает в VB5-6)

    Автор: Free Hunter
    ну или вот такой вариант, как предлогает Bombardier - дело вкуса...

    Автор: PeterS
    Продвижение по этому вопросу такие: я добился запуска своей программы как служба путём добавления значение, в реестр, взяв за основу программу Venta Fax, НО возникает всего одна ошибка при запуске программы в роли службы Windows через некоторое время (секунд 5) сообщает об ошибке №1053: Служба не ответила на запрос своевременно. И после этого моя программа закрывается. Я так понял что надо во время загрузки моей программы передать какую-то команду Windows. Может кто-нибудь испробует это и сможет найти решение.
    Желаю успехов!!
    Пишите о ваших достижениях PeterStudio@mail.ru

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: 001

    Ответ ожидается по этому адресу

    У меня 3 вопроса

    1) Как можно яасунуть в ресурc MP3 файл, а потом проиграть его оттуда?

    2) Как програмно ияменять громкость явука, балланс?

    3) Объясните, пожалуйста, как пользоваться WinSock'ом? (Соединение, передача данных, файлов...)

    Автор вопроса: ViTal

    Ответ ожидается по этому адресу

    В режиме "Крупные значки" эксплорер отображает маленькие (16х16) иконки размазанными (до 32х32). Как получить такую размазанность при деформациях изображений в своём приложении?

    Автор вопроса: Владимир

    Ответ ожидается по этому адресу

    Как на VB6 создать папку для хранения URL c последующим их открытием в браузере по умолчанию. И со счетчиком их количества.

    Автор вопроса: Nicekaifer

    Ответ ожидается по этому адресу

    Доброе время суток. А реально написать прогу на VB6 и сделать так чтобы она висела в трее (прям значком) а при нажатии на нее левой открывалась, а правой показывала меню?

    Автор вопроса: Святослав

    Ответ ожидается по этому адресу

    У меня три вопроса, которые я сам пока не могу разрешить.

    1. Как в VB6 запретить запуск экранной заставки на время работы моей программы?

    2. Как проиграть avi-файл?

    В 71 выпуске была статья "Проиграть Avi-файл в Picture Box ".
    Пример рабочий, только есть одно большое НО.
    На время работы программа блокируется и невозможно
    выйти из нее, пока avi-файл не будет проигран.
    Т.е. если использовать этот пример, то необходимо добавить кнопку Stop и Pause, а также прогресс бар.

    Код программы привожу :

    Добавьте CommandButton и PictureBox на форму

    Private Declare Function mciSendString Lib "winmm" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long

    Private Declare Function mciGetErrorString Lib "winmm" Alias "mciGetErrorStringA" (ByVal dwError As Long, ByVal lpstrBuffer As String, ByVal uLength As Long) As Long

    Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long

    Const WS_CHILD = &H40000000

    Sub PlayAVIPictureBox(FileName As String, ByVal Window As PictureBox)

    Dim RetVal As Long
    Dim CommandString As String
    Dim ShortFileName As String * 260
    Dim deviceIsOpen As Boolean

    'Retrieve short file name format
    RetVal = GetShortPathName(FileName, ShortFileName, Len(ShortFileName))

    FileName = Left$(ShortFileName, RetVal)

    'Open the device
    CommandString = "Open " & FileName & " type AVIVideo alias AVIFile parent " & CStr(Window.hWnd) & " style " & CStr(WS_CHILD)

    RetVal = mciSendString(CommandString, vbNullString, 0, 0&)

    If RetVal Then GoTo error

    'remember that the device is now open
    deviceIsOpen = True

    'Resize the movie to PictureBox size
    CommandString = "put AVIFile window at 0 0 " & CStr(Window.ScaleWidth / _
    Screen.TwipsPerPixelX) & " " & CStr(Window.ScaleHeight / _
    Screen.TwipsPerPixelY)

    RetVal = mciSendString(CommandString, vbNullString, 0, 0&)

    If RetVal <> 0 Then GoTo error

    'Play the file
    CommandString = "Play AVIFile wait"

    RetVal = mciSendString(CommandString, vbNullString, 0, 0&)

    If RetVal <> 0 Then GoTo error

    'Close the device
    CommandString = "Close AVIFile"

    RetVal = mciSendString(CommandString, vbNullString, 0, 0&)

    If RetVal <> 0 Then GoTo error

    Exit Sub

    error:

    'An error occurred.
    'Get the error description
    Dim ErrorString As String

    ErrorString = Space$(256)

    mciGetErrorString RetVal, ErrorString, Len(ErrorString)

    ErrorString = Left$(ErrorString, InStr(ErrorString, vbNullChar) - 1)

    'close the device if necessary
    If deviceIsOpen Then
    CommandString = "Close AVIFile"
    mciSendString CommandString, vbNullString, 0, 0&
    End If

    'raise a custom error, with the proper description
    Err.Raise 999, , ErrorString

    End Sub

    Private Sub Command1_Click()

    'replace 'c:\myfile.avi' with the name of the AVI file you want to 'play
    PlayAVIPictureBox "путь к файлу\*.avi", Picture1

    End Sub

    3. Есть код, позволяющий создать окно произвольной формы.
    В Win9x/Me все работает как положено, а в Win XP ненужные участки формы не обрезаются, т.е. на экране форма имеет вид прямоугольника. Кто подскажет, в чем дело и как это поправить?

    Код программы привожу:

    Option Explicit

    'Объявляем API-функцию, которая так сказать
    'накладывает созданный регион на окно (те
    'части которые остались за пределами
    'региона исчезают), где: hwnd - идентифика-
    'тор окна, на котором нужно "выдавить"
    'форму, hRgn - "формочка" для окна,
    'bRedraw - перерисовывать ли окно после
    '"выдавления".

    Private Declare Function SetWindowRgn _
    Lib "user32" (ByVal hwnd As Long, _
    ByVal hRgn As Long, ByVal bRedraw As _
    Boolean) As Long

    'Объявляем API-функцию чтобы создать
    'регион-"формочку" (состоит регион из n-ого
    'количества точек, которое необходимо
    'задать), где: lpPoint - первая точка
    'региона, nCount - количество точек,
    'nPolyFillMode - описание метода заливки
    'полигона.

    Private Declare Function CreatePolygonRgn _
    Lib "gdi32" (lpPoint As POINTAPI, _
    ByVal nCount As Long, ByVal _
    nPolyFillMode As Long) As Long

    'Объявляем тип для описания координат
    'каждой точки

    Private Type POINTAPI
    x As Long
    y As Long
    End Type

    'Объявляем массив P по типу POINTAPI

    Dim P(128) As POINTAPI

    Private Sub Form_Load()
    'Присвоим свойству Picture формы такого
    'же вида свойство
    Picture = Image1

    'Записываем код для каждой точки,
    'описывающий её координаты в пикселах

    P(0).x = 448: P(0).y = 25
    P(1).x = 97: P(1).y = 45
    P(2).x = 98: P(2).y = 33
    'Задаются остальные точки...
    P(126).x = 90: P(126).y = 43
    P(127).x = 93: P(127).y = 45
    P(128).x = 448: P(128).y = 25

    'Объявляем переменную, содержащую
    'регион

    Dim Rgn As Long

    'Создаём регион

    Rgn = CreatePolygonRgn(P(0), 128, 0)

    '"Выдавливем форму"

    Call SetWindowRgn(hwnd, Rgn, True)

    End Sub

    Автор вопроса: Alec Perle

    Ответ ожидается по этому адресу

    Вопрос по VBA (Excel). К объектам Shape на листе можно приделать макрос (OnAction). У меня порядка двух-трех сотен элементов. Как программно определить, на каком именно элементе была нажата мышка?

    Автор вопроса: SinitsynM@FreeMail.ru

    Ответ ожидается по этому адресу

    У меня есть форма, на которой куча текстовых полей для внесения
    различного рода информации. Хочу, чтобы при печати они были распределены
    по листу А4 равномерно (ну чтобы оформление было приемлемым). Сразу
    расположить их в нужном порядке не получается. Как я ни старался, но А4
    никак не вписывается в мои диагонали. Может кто-нибудь подкинет идею?

    Сделал себе ScreenSaver, но заставить его по-человечески бегать никак не
    могу. Может кто видел, как эти твари бегают по рабочему столу? Так вот,
    это не про моего. Единственное, на что он способен (ну в этом отчасти и
    моя вина), так это на:

    Private Sub Timer1_Timer()
    b = CurrentX
    c = CurrentY
    Move Left + 100 * f + b * f, Top + 100 * g + c * g
    If Left >= Screen.Width - Form1.ScaleWidth Then f = -1
    If Left <= 0 Then f = 1
    If Top >= Screen.Height - Form1.ScaleHeight Then g = -1
    If Top <= 0 Then g = 1
    End Sub

    (отскакивает от стенки на 90 градусов и убегает от мышки)
    Может у кого-нибудь есть секретная формула активности этой живности?
    Поделитесь пожалуйста.

    П.С.: Так всегда бывает - как появляется свободное время, так куда-то
    деваются все идеи, которые вынашивал и взращивал в минуты отвратительной
    и нудной лекции по электрооборудованию с предвкушением их осуществления
    и заблаговременным поздравлением себя с преждевременным успехом. О чём
    это я?... А-а-а! Так вот - предлагаю поделиться с начинающими
    программистами проектами, с которых вы начинали мозолить пальцы
    клавиатурой. Думаю, не одному мне будет интересно.

    Автор вопроса: VMJ

    Ответ ожидается по этому адресу

    Кому попадалась подсказка - как влепить свою кнопку в Toolbar InternetExplorer-на манер FlashGet?
    Не обязательно на Vb...

    Автор вопроса: Den

    Ответ ожидается по этому адресу

    Как сделать, чтобы программа была сервисом в Windows XP?

    Ответы:

    Вопрос:

    Как скопировать папку со всем её содержимым, хорошо бы было без перебора всех подпапок и файлов.

    Ответ:

    Автор ответа: TiborF

    Для начала ты должен понять, что есть папка(директория)
    Без перебора подпапок и файлов содержащихся в них, ты скопируеш только саму папку.

    Вопрос:

    Как, если можно, сделать в VB ассемблерные вставки?

    Ответ:

    Автор ответа: TiborF

    Да никак. Там етого не предусмотрено :(

    Вопрос:

    Подскажите, как сделать форму проярачной? С SetWindowLong что-то не получается

    Ответ:

    Автор ответа: TiborF

    Это делаеться посредством ф BitBlt.
    Ищи исходники примеров работы с этой ф.
    А лудше поставь себе VB5, он немного отличаеться от 6 и там есть хелпы с семплами ;)

    Вопрос:

    Как в VB играть MIDI,WAV,MP3и другие файлы?

    Ответ:

    Автор ответа: TiborF

    Используй Microsoft Multimedia Control, он всё могёт.

    Вопрос:

    Скажите, существует ли такая API функция, которая считывает состояние трафика, при соединении с Инетом?

    Ответ:

    Автор ответа: TiborF

    Вообще существует много всёких полезных API.
    Некоторые из них ходёт за тебя в магазин :)

    Вопрос:

    Как мне создать новый элемент а именно OptionButton в работающей программе на фрейме и определить ему свойства.

    Ответ:

    Автор ответа: TiborF

    Ну вопервых на форме уже должен быть такой объект, причём с индексом. например всё так, и индекс первого объекта = 0, тогда чтобы создать ещё один надо всего лишь проделать следующее:

    Load Option1(1)
    With Option1(1)
    .Left = 0
    .Top = 0
    .Caption = "Caption"
    .Value = False
    .Visible = True
    End With

    Вопрос:

    Не подскажите ли вы как в тестбоксе (или рич текст боксе) изменить цвет
    (программным путём) конкретных символов, например, я ввожу в текст-бокс "Привет всем !!!". Нужно слово "привет" сделать зелёным, "всем" красным и "!!!" синим цветом. Или ещё например как в редакторе VB- все команды синим цветом, ремарки зелёным и т.д.

    Ответ:

    Автор ответа: TiborF

    Наверное тет оптимально использовать ф Find
    Только толку от неё мало :(

    Вопрос:

    Можно ли привяяать координаты дочерней формы (свойства Top и Left) к координатам кнопки, по нажатию на котррую эта форма выяывается. Например, чтобы дочерняя форма появлялась строго под кнопкой неяависимо от положения самой кнопки на родительской форме?
    В приведенном ниже примере привяяка почему-то не работает:

    Form1.Left = MainForm.cmdButton.Left + 100
    Form1.Top = MainForm.cmdButton.Top + 50

    Ответ:

    Автор ответа: ]CBK[CRaSH

    Тут фишка в том что координаты кнопки считаются по форме. А формы по экрану. Чтобы это все дело работало в процедуру Form_resize from1 засунь текст

    Me.Left = Form1.Command1.Left + MainForm.Left
    Me.Top = Form1.Command1.Top + MainForm.Top

    Но незабудь что дочерняя форма будет появляться чуть выше из-за заголовка

    Вопрос:

    У меня творческий облом ,и от делать нечего решил написать просмотрщик
    графики.
    Просто "просмотрщик графики" я сделал быстро, но просто "просмотрщик графики" это не интересно и даже грустно:((
    Поэтому я решил добавить возможность просмотра графики из и-нета ,но как вы уже поняли.....
    Если кто-нибуть знает как это возможно осуществить, напишите!!!

    Ответ:

    Автор ответа: ]CBK[CRaSH

    А в чем фишка. Я понять не могу.
    Я тоже решил написать СУПЕР МЕГА ИГРУ.
    Люди у кого есть код этой игры поделитесь :))))))

    А это делается легко
    Добовляеш Microsoft Internet Control

    WebBrowser1.Navigate "Имя картинки и путь"

    Вопрос:

    Помогите, какой нибудь информацией по поводу прокрутки колесиком мыши в элименте управления DBGrid и вообще в VB можно получить доступ к колесику

    Ответ:

    Автор ответа: Шалгачёв Алексей

    На самом деле тебе просто нужны грамотные дрова и грид будет листаться довольно неплохо.
    Посмотри дрова для своей мыши на сайте производителя.
    У меня Genius оптическая на работе и обычная дома, так я поставил дрова и никаких проблем.
    Если у тебя такая же мышь, пиши мне и я тебе дрова отправлю почтой!

    Вопрос:

    Народ, а каково Ваше мнение на Visual Basic 7.0... как он Вам на первый вягляд(а может быть и не на первый)...

    Ответ:

    Автор ответа: Loki

    Зайди на www.vbrain.narod.ru

    Вопрос:

    Как сделать программу сервисом в 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?

    Ответ:

    Автор ответа: Loki

    Никак!

    Вопрос:

    У меня несколько вопросов:

    1. Как можно записать рисунок в переменную, чтобы после значение переменной снова присвоить PictureBox?
    h = Picture1.Picture
    Picture2.Picture = h - так не выходит, говорит, что требуется объект
    h = Picture1.hDC - это вообще лишь указатель на картинку в памяти, если я правильно понял.
    Или, если кто знает, как считать ее из памяти в переменную? BitBlt или через сохранение в файл не предлагать.

    2. Как выключить комп из Win2k? Те API, что работали в Win9x в Win2k не работают.

    3. Может кто знает как использовать *.dic - словари из Word'a(для проверки орфографии).

    Буду рад любой информации!

    Ответ:

    Автор ответа: Loki

    1. А непроще сохранить путь к картинки в переменную.

    Вопрос:

    Вот Задача или незадача! Необходимо создать отчет таком виде чтобы во время выполнения на него можно было брасать разные контролы по DragDrop и затем его распечатать. Пробывал с PictureBox, печатает только графику, может кто подскажет или даст ссылку.

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Кидай контролы на форму, а потом - PrintForm

    Вопрос:

    Как определить момент выключения компьютера? Надо отсеять перезагруяку и завершение сеанса.

    Ответ:

    Автор ответа: ViTal

    Хехе.... VB для такого не предназначен. Обратись к asm.

    Вопрос:

    Как с помощью Vb очистить корзину?

    Ответ:

    Автор ответа: Eugene

    Private Declare Function SHEmptyRecycleBin Lib "shell32.dll" Alias "SHEmptyRecycleBinA" (ByVal hWnd As Long, ByVal pszRootPath As String, ByVal dwFlags As Long) As Long

    Const SHERB_NOPROGRESSUI = &H2

    Private Sub Command1_Click()

    Call SHEmptyRecycleBin(Me.hWnd, "", SHERB_NOPROGRESSUI)

    End Sub

    Ответ:

    Автор ответа: ]CBK[CRaSH

    На дисках есть папочки Recycled удаляеш их содержимое и все

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 139.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта 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!!!

    Несколько слов от автора:

    Очередной выпуск рассылки.
    Читайте!

    Содержание выпуска

    • Книги

    • Сохранение файла из Интернета на жесткий диск
    • Выделить кусок картинки
    • Получить размеры картинки
    • Как осуществить скролинг картинки
    • Изменение цвета отдельного пикселя в элементе PictureBox

    • Вопрос/Ответ

    Книги

    Переход на 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 можно найти здесь.

    наверх

    Сохранение файла из Интернета на жесткий диск

    Расположите на форме элемент CommandButton. После выполнения кода у вас на жестком диске появится новый файл - c:\1.gif

    Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
    Public Event ErrorDownload(FromPathName As String, ToPathName As String)
    Public Event DownloadComplete(FromPathName As String, ToPathName As String)

    Public Function DownloadFile(FromPathName As String, ToPathName As String)
    If URLDownloadToFile(0, FromPathName, ToPathName, 0, 0) = 0 Then
    DownloadFile = True
    RaiseEvent DownloadComplete(FromPathName, ToPathName)
    Else
    DownloadFile = False
    RaiseEvent ErrorDownload(FromPathName, ToPathName)
    End If
    End Function

    Private Sub Command1_Click()
    Call DownloadFile("http://vbnet.ru/subscribe/images/question.gif", "c:\1.gif")
    End Sub

    наверх

    Выделить кусок картинки

    пример использования примера Добавьте PictureBox на форму

    Dim X1 As Integer, X2 As Integer, Y1 As Integer, Y2 As Integer
    Dim SelectBox As Boolean

    Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Picture1.DrawMode = 6
    'Draw style to dots
    Picture1.DrawStyle = 2
    'Check if a Select Box is already drawn
    If X2 > 0 Then Picture1.Line (X1, Y1)-(X2, Y2), , B
    'Reset all the values to the current point
    X1 = X
    Y1 = Y
    X2 = X
    Y2 = Y
    End Sub

    Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    'Проверить, нажата ли левая кнопка мыши
    If Button = 1 Then
    Picture1.Line (X1, Y1)-(X2, Y2), , B
    X2 = X
    Y2 = Y
    Picture1.Line (X1, Y1)-(X, Y), , B
    End If
    End Sub

    наверх

    Получить размеры картинки

    Получить размеры любого изображения, если оно может быть загружено в Image box. Добавьте 1 Image Box на форму. Установите свойства ImageBox Stretch и Visible в False.

    Private Sub Form_Load()
    'замените путь c:\mypic.gif на ваш путь к картинке
    Image1.Picture = LoadPicture("c:\mypic.gif")
    'Вы получите размеры в пикселях. (если вы хотите получить размеры в твипах,
    удалите текст "/ Screen.TwipsPerPixelY" и "/ Screen.TwipsPerPixelX".)
    MsgBox "Image Height: " & Image1.Height / Screen.TwipsPerPixelY & _
    " Image width: " & Image1.Width / Screen.TwipsPerPixelX
    End Sub

    наверх

    Как осуществить скролинг картинки

    Данный пример покажет, как можно осуществить скролинг большой картинки в маленьком окне. Вам необходимо добавить 2 PictureBox, а также VScrollBar и HScrollBar (вертикальную и горизонтальную полосу прокрутки). (см. рисунок)

    Private Sub Form_Load()
    HScroll1.Min = 0
    HScroll1.Max = ScaleX(Picture1.Picture.Width, 8, vbTwips) - Picture2.Width
    HScroll1.LargeChange = 10 * Screen.TwipsPerPixelX
    HScroll1.SmallChange = Screen.TwipsPerPixelX
    VScroll1.Min = 0
    VScroll1.Max = ScaleX(Picture1.Picture.Height, 8, vbTwips) - Picture2.Height
    VScroll1.LargeChange = 10 * Screen.TwipsPerPixelY
    VScroll1.SmallChange = Screen.TwipsPerPixelY
    HScroll1_Change
    End Sub
    Private Sub HScroll1_Change()
    Picture2.PaintPicture Picture1.Picture, 0, 0, _
    Picture2.Width, Picture2.Height, _
    HScroll1.Value, VScroll1.Value, _
    Picture2.Width, Picture2.Height
    End Sub
    Private Sub HScroll1_Scroll()
    Picture2.PaintPicture Picture1.Picture, 0, 0, _
    Picture2.Width, Picture2.Height, _
    HScroll1.Value, VScroll1.Value, _
    Picture2.Width, Picture2.Height
    End Sub
    Private Sub VScroll1_Change()
    HScroll1_Change
    End Sub
    Private Sub VScroll1_Scroll()
    HScroll1_Scroll
    End Sub

    наверх

    Изменение цвета отдельного пикселя в элементе PictureBox

    Добавьте элемент PictureBox. Установите свойство AutoRedraw как True.
    В данном примере при нажатии левой клавишой мыши в PictureBox вы меняете цвет пикселя (в нашем примере - на красный цвет).
    Цвет фона для пикселя вы опеределяете функцией RGB (читайте справку по функции RGB)

    Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal crColor As Long) As Long
    Dim s As Long, d As Long
    Private Sub Form_Load()
    d = RGB(255, 255, 0) 'замените переменную d на любой нужный вам цвет
    End Sub
    Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    s = SetPixel(Picture1.hdc, X / 15, Y / 15, d)
    Picture1.Refresh
    End Sub
    Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 1 Then 'цвет пикселя меняется только при нажатой левой клавиши мыши
    s = SetPixel(Picture1.hdc, X / 15, Y / 15, d)
    Picture1.Refresh
    End If
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Michael Fezulaev

    Ответ ожидается по этому адресу

    Помагите с решением проблема такая. Есть функции как copy, cut, paste можно воспользаватся с помащю как Clipboard и как через WinApi

    Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long,_
    LParam As Any) As Long

    Какая разнится между ними разнится и какая из них боле эфектвна.

    Автор вопроса: Mister C

    Ответ ожидается по этому адресу

    Я столкнулся с такой проблемой.
    Хочу чтобы формулы в документе сами пресчитывались.
    Формулы написаны в редакторе формул MS Equation 3.0.
    Но никак не могу найти таких примеров.

    Автор вопроса: ]CBK[CRaSH

    Ответ ожидается по этому адресу

    ХА. Я наконец то отрыл код получения заводского серийника HDD!!!!!!!!!!
    Если каму-нибудь надо могу прислать.
    НО программа написана на С я ее подредактировал.
    Поевляется окошко консольного приложения и создается файл key.dat c номером
    Вобшем круто!!!!!!!!!!!

    Автор вопроса: Игорь

    Ответ ожидается по этому адресу

    Как определить, какие файлы, включая библиотеки, ActiveX-компоненты и т.д., необходимо включить в инсталлятор готового приложения? Стандартный VB Pack Wizard, по-моему, добавляет в пакет много лишнего ...

    Автор вопроса: Sergey

    Ответ ожидается по этому адресу

    Можно-ли запустить из VB файл *.mdb. Если да, то как это сделать?

    Автор вопроса: Sergey

    Ответ ожидается по этому адресу

    Как обновить DataEnvirinment при печати новой записи, а то после изменений в наборе recordset в DataReport выводится старая запись. Можно-ли в VB6 при формировании DataReport обойтись без DataEnvirinment?

    Автор вопроса: Dr_Max

    Ответ ожидается по этому адресу

    Как поставить vbnet на машину с win98 ??
    Вылетает сообщение "типа не устанавливается не вин98",
    а в хелпе "On Windows 98 or Windows Me run instmsiA.exe"

    Автор вопроса: Константин

    Ответ ожидается по этому адресу

    Подскажите, плз, как можно перетаскивать объект по форме мышкой (хорошо бы, что-бы было видно контур, как в нормальных приложениях) и как можно соединить два объекта на форме линией (опять же, с помощью крысы).

    Автор вопроса: Eugene

    Ответ ожидается по этому адресу

    Как добиться того, чтобы в объекте DataGrid автоматически (без применения Datagrid.Requery) отражались изменения внесенные в таблицу другими пользователями.

    Автор вопроса: Yory

    Ответ ожидается по этому адресу

    Мой проект (VB6) использует DAO 3.50, работал без проблем (Win 95/98/2000). Появились машины с той же самой операционкой, не открывающие базу данных при работе из exe-шника. При работе в среде отладки все отлично. Тогда меняю DAO 3.50 на DAO 3.60. На этих машинах все отлично, но на части тех, где раньше проблем не было (не на всех!) база загружаться перестала. Новую .dll я, естественно, нормально устанавливаю и регистрирую.
    Кто поможет?

    Автор вопроса: Anatoly

    Ответ ожидается по этому адресу

    Как из программы изменить время включения компьютера в BIOS-е?

    Ответы:

    Вопрос:

    Как осуществить перебор всех контролов только на одной вкладке SSTab?

    Ответ:

    Автор ответа: Sergey

    Используешь св-во Parent контрола:

    For each vControl in Me.Controls
    if vControl.Parent.Name = "То что нужно" Then
    ... 'твой код
    End If
    Next vControl

    Вопрос:

    Может кто подскажет как быть: пишу на vbscript(asp), задача - с помощью word.application сохранить указанный документ ворда как html? На vb все работает, а на asp валится с сообщением "Не удается открыть банк макросов", хотя никаких макросов там нет. Вот кусок кода, валится на 3 строке:

    Dim objWdDoc
    Set objWdDoc=Server.CreateObject("Word.Application")
    objWdDoc.Documents.Open "C:\work\word-work\bar.doc"

    Ответ:

    Автор ответа: Sergey

    Эти и похожие проблемы могут возникать если вызывающая среда(в данном случае ASP) игнорирует или не имеет доступа к переменнным системы. Также возможны глюки когда текущая папка не совпадает с папкой где находятся исполняемые файлы и т.д.

    Вопрос:

    Можно ли привяяать координаты дочерней формы (свойства Top и Left) к координатам кнопки, по нажатию на котррую эта форма выяывается. Например, чтобы дочерняя форма появлялась строго под кнопкой неяависимо от положения самой кнопки на родительской форме?
    В приведенном ниже примере привяяка почему-то не работает:

    Form1.Left = MainForm.cmdButton.Left + 100
    Form1.Top = MainForm.cmdButton.Top + 50

    Ответ:

    Автор ответа: Sergey

    Не забывай, что для формы Top и Left - координаты относительно границы экрана а для кнопок - это смещения по отношению к границе контейнера(в данном случае формы)

    Вопрос:

    Есть ComboBox со значениями, в зависимости от выбираемого значения появляетяс Lebel. При задании

    Private Sub Combo1_Change()
    Select Case Combo1.Value
    Case "СУГ"
    Form.Label2.Visible = True
    Case "Нефть"
    Form.Label2.Visible = False
    End Sub

    В результате Label2 - не исчезает

    Ответ:

    Автор ответа: Sergey

    Попробуй использовать другие свойства: Text например.

    Вопрос:

    В режиме "Крупные значки" эксплорер отображает маленькие (16х16) иконки размазанными (до 32х32). Как получить такую размазанность при деформациях изображений в своём приложении?

    Ответ:

    Автор ответа: ShAdE

    Попробуй это, тока ари не забудь нужные вставить

    Sub ProcessSmooth(Picture1 as PictureBox)
    Dim i As Long, j As Long
    Dim red As Integer, green As Integer, blue As Integer

    hBMP = CreateCompatibleBitmap(Picture1.hdc, Picture1.ScaleWidth, Picture1.ScaleHeight)
    hDestDC = CreateCompatibleDC(Picture1.hdc)
    SelectObject hDestDC, hBMP

    For i = 1 To y - 2
    For j = 1 To x - 2
    red = ImagePixels(0, i - 1, j - 1) + ImagePixels(0, i - 1, j) + ImagePixels(0, i - 1, j + 1) + _
    ImagePixels(0, i, j - 1) + ImagePixels(0, i, j) + ImagePixels(0, i, j + 1) + _
    ImagePixels(0, i + 1, j - 1) + ImagePixels(0, i + 1, j) + ImagePixels(0, i + 1, j + 1)

    green = ImagePixels(1, i - 1, j - 1) + ImagePixels(1, i - 1, j) + ImagePixels(1, i - 1, j + 1) + _
    ImagePixels(1, i, j - 1) + ImagePixels(1, i, j) + ImagePixels(1, i, j + 1) + _
    ImagePixels(1, i + 1, j - 1) + ImagePixels(1, i + 1, j) + ImagePixels(1, i + 1, j + 1)

    blue = ImagePixels(2, i - 1, j - 1) + ImagePixels(2, i - 1, j) + ImagePixels(2, i - 1, j + 1) + _
    ImagePixels(2, i, j - 1) + ImagePixels(2, i, j) + ImagePixels(2, i, j + 1) + _
    ImagePixels(2, i + 1, j - 1) + ImagePixels(2, i + 1, j) + ImagePixels(2, i + 1, j + 1)

    SetPixelV hDestDC, j, i, RGB(red / 9, green / 9, blue / 9)
    Next
    Form3.ProgressBar1.Value = i * 100 / (y - 1)
    DoEvents
    Next
    Form3.Hide
    BitBlt Picture1.hdc, 1, 1, Picture1.ScaleWidth - 2, Picture1.ScaleHeight - 2, hDestDC, 1, 1, &HCC0020
    Picture1.Refresh
    Call DeleteDC(hDestDC)
    Call DeleteObject(hBMP)

    End Sub

    Вопрос:

    Доброе время суток. А реально написать прогу на VB6 и сделать так чтобы она висела в трее (прям значком) а при нажатии на нее левой открывалась, а правой показывала меню?

    Ответ:

    Автор ответа: RaZoom

    'Код модуля:
    Option Explicit

    Public Declare Function ReleaseCapture Lib "user32" () As Long
    Public Declare Function Shell_NotifyIconA Lib "SHELL32" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Integer
    Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

    Public Const WM_NCLBUTTONDOWN = &HA1
    Public Const HTCAPTION = 2

    Public bTrayFlag As Boolean

    Public Const NIM_ADD = 0&
    Public Const NIM_MODIFY = 1&
    Public Const NIM_DELETE = 2&
    Public Const NIF_MESSAGE = 1&
    Public Const NIF_ICON = 2&
    Public Const NIF_TIP = 4&

    Public Const WM_LBUTTONDOWN = &H201&
    Public Const WM_LBUTTONUP = &H202&
    Public Const WM_LBUTTONDBLCLK = &H203&
    Public Const WM_RBUTTONDOWN = &H204&
    Public Const WM_RBUTTONUP = &H205&
    Public Const WM_RBUTTONDBLCLK = &H206&
    Public Const WM_MBUTTONDOWN = &H207&
    Public Const WM_MBUTTONUP = &H208&
    Public Const WM_MBUTTONDBLCLK = &H209&

    Type NOTIFYICONDATA
    cbSize As Long
    hwnd As Long
    uID As Long
    uFlags As Long
    uCallbackMessage As Long
    hIcon As Long
    szTip As String * 64
    End Type

    Public Function SetTrayIcon(Mode As Long, hwnd As Long, Icon As Long, tip As String) As Long
    Dim nidTemp As NOTIFYICONDATA
    nidTemp.cbSize = Len(nidTemp)
    nidTemp.hwnd = hwnd
    nidTemp.uID = 0&
    nidTemp.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
    nidTemp.uCallbackMessage = WM_RBUTTONDOWN
    nidTemp.hIcon = Icon
    nidTemp.szTip = tip & Chr$(0)
    SetTrayIcon = Shell_NotifyIconA(Mode, nidTemp)
    End Function

    'Код формы:
    Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    Dim msg As Long
    'Проверка, сидит ли прога в tray'e, если да обрабатываем издевательства над иконкой
    If bTrayFlag Then
    If Me.ScaleMode = vbPixels Then
    msg = x
    Else
    msg = x / Screen.TwipsPerPixelX
    End If
    Select Case msg
    'По левому даблклику по иконке - разворачиваем. Можно заменить на WM_LBUTTONUP
    Case WM_LBUTTONDBLCLK:
    Me.WindowState = vbNormal
    Me.Show
    Me.SetFocus
    Case WM_RBUTTONUP:
    'По правой - показываем popup. Me.mnuPopMnu - создаем заранее
    Me.PopupMenu Me.mnuPopMnu, , , , mnuRestore
    End Select
    Else
    'В противном случае - таскаем форму за любое место
    If y <> 0 Then
    ReleaseCapture
    SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&
    End If
    End If
    End Sub

    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    Cancel = 0
    End Sub

    Private Sub Form_Resize()
    'При нажатии на кнопку свернуть - прячем в tray
    If Me.WindowState = vbMinimized And (Not bTrayFlag) Then
    Me.Visible = False
    SetTrayIcon NIM_ADD, Me.hwnd, Me.Icon, "Текст подсказки"
    bTrayFlag = True
    Else
    'При разворачивании - удаляем иконку из трэя
    If bTrayFlag Then
    SetTrayIcon NIM_DELETE, Me.hwnd, 0&, ""
    Me.Visible = True
    bTrayFlag = False
    End If
    End If
    End Sub

    Вопрос:

    У меня три вопроса, которые я сам пока не могу разрешить.

    1. Как в VB6 запретить запуск экранной заставки на время работы моей программы?

    2. Как проиграть avi-файл?

    В 71 выпуске была статья "Проиграть Avi-файл в Picture Box ".
    Пример рабочий, только есть одно большое НО.
    На время работы программа блокируется и невозможно
    выйти из нее, пока avi-файл не будет проигран.
    Т.е. если использовать этот пример, то необходимо добавить кнопку Stop и Pause, а также прогресс бар.

    Код программы привожу :

    Добавьте CommandButton и PictureBox на форму

    Private Declare Function mciSendString Lib "winmm" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long

    Private Declare Function mciGetErrorString Lib "winmm" Alias "mciGetErrorStringA" (ByVal dwError As Long, ByVal lpstrBuffer As String, ByVal uLength As Long) As Long

    Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long

    Const WS_CHILD = &H40000000

    Sub PlayAVIPictureBox(FileName As String, ByVal Window As PictureBox)

    Dim RetVal As Long
    Dim CommandString As String
    Dim ShortFileName As String * 260
    Dim deviceIsOpen As Boolean

    'Retrieve short file name format
    RetVal = GetShortPathName(FileName, ShortFileName, Len(ShortFileName))

    FileName = Left$(ShortFileName, RetVal)

    'Open the device
    CommandString = "Open " & FileName & " type AVIVideo alias AVIFile parent " & CStr(Window.hWnd) & " style " & CStr(WS_CHILD)

    RetVal = mciSendString(CommandString, vbNullString, 0, 0&)

    If RetVal Then GoTo error

    'remember that the device is now open
    deviceIsOpen = True

    'Resize the movie to PictureBox size
    CommandString = "put AVIFile window at 0 0 " & CStr(Window.ScaleWidth / _
    Screen.TwipsPerPixelX) & " " & CStr(Window.ScaleHeight / _
    Screen.TwipsPerPixelY)

    RetVal = mciSendString(CommandString, vbNullString, 0, 0&)

    If RetVal <> 0 Then GoTo error

    'Play the file
    CommandString = "Play AVIFile wait"

    RetVal = mciSendString(CommandString, vbNullString, 0, 0&)

    If RetVal <> 0 Then GoTo error

    'Close the device
    CommandString = "Close AVIFile"

    RetVal = mciSendString(CommandString, vbNullString, 0, 0&)

    If RetVal <> 0 Then GoTo error

    Exit Sub

    error:

    'An error occurred.
    'Get the error description
    Dim ErrorString As String

    ErrorString = Space$(256)

    mciGetErrorString RetVal, ErrorString, Len(ErrorString)

    ErrorString = Left$(ErrorString, InStr(ErrorString, vbNullChar) - 1)

    'close the device if necessary
    If deviceIsOpen Then
    CommandString = "Close AVIFile"
    mciSendString CommandString, vbNullString, 0, 0&
    End If

    'raise a custom error, with the proper description
    Err.Raise 999, , ErrorString

    End Sub

    Private Sub Command1_Click()

    'replace 'c:\myfile.avi' with the name of the AVI file you want to 'play
    PlayAVIPictureBox "путь к файлу\*.avi", Picture1

    End Sub

    3. Есть код, позволяющий создать окно произвольной формы.
    В Win9x/Me все работает как положено, а в Win XP ненужные участки формы не обрезаются, т.е. на экране форма имеет вид прямоугольника. Кто подскажет, в чем дело и как это поправить?

    Код программы привожу:

    Option Explicit

    'Объявляем API-функцию, которая так сказать
    'накладывает созданный регион на окно (те
    'части которые остались за пределами
    'региона исчезают), где: hwnd - идентифика-
    'тор окна, на котором нужно "выдавить"
    'форму, hRgn - "формочка" для окна,
    'bRedraw - перерисовывать ли окно после
    '"выдавления".

    Private Declare Function SetWindowRgn _
    Lib "user32" (ByVal hwnd As Long, _
    ByVal hRgn As Long, ByVal bRedraw As _
    Boolean) As Long

    'Объявляем API-функцию чтобы создать
    'регион-"формочку" (состоит регион из n-ого
    'количества точек, которое необходимо
    'задать), где: lpPoint - первая точка
    'региона, nCount - количество точек,
    'nPolyFillMode - описание метода заливки
    'полигона.

    Private Declare Function CreatePolygonRgn _
    Lib "gdi32" (lpPoint As POINTAPI, _
    ByVal nCount As Long, ByVal _
    nPolyFillMode As Long) As Long

    'Объявляем тип для описания координат
    'каждой точки

    Private Type POINTAPI
    x As Long
    y As Long
    End Type

    'Объявляем массив P по типу POINTAPI

    Dim P(128) As POINTAPI

    Private Sub Form_Load()
    'Присвоим свойству Picture формы такого
    'же вида свойство
    Picture = Image1

    'Записываем код для каждой точки,
    'описывающий её координаты в пикселах

    P(0).x = 448: P(0).y = 25
    P(1).x = 97: P(1).y = 45
    P(2).x = 98: P(2).y = 33
    'Задаются остальные точки...
    P(126).x = 90: P(126).y = 43
    P(127).x = 93: P(127).y = 45
    P(128).x = 448: P(128).y = 25

    'Объявляем переменную, содержащую
    'регион

    Dim Rgn As Long

    'Создаём регион

    Rgn = CreatePolygonRgn(P(0), 128, 0)

    '"Выдавливем форму"

    Call SetWindowRgn(hwnd, Rgn, True)

    End Sub

    Ответ:

    Автор ответа: ViTal

    Отвечу на 3-й вопрос:

    'создаём регион
    'последний параметр может принимать значения ALTERNATE=1 или WINDING=2!!!
    hRgn = CreatePolygonRgn(P(0), 128, ALTERNATE)
    'присваиваем регион форме
    Call SetWindowRgn(hwnd, hRgn, True)
    'удаляем созданый в памяти регион
    Call DeleteObject(hRgn)

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 140.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Загляните в раздел "Конкурс".
    Читайте!

    Содержание выпуска

    • Книги

    • Конкурс

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Узнать точку пересечения срединных перпендикуля...

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на 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 можно найти     здесь.

    наверх

    Конкурс

    Здравствуйте, любители Visual Basic! Подведены итоги второго конкурса на лучшую статью по программированию на Visual Basic. В конкурсе участвовало 6 работ и, надо признаться, что было очень трудно выбрать из них самую лучшую! Спасибо всем, кто принял участие в конкурсе, прислав свои работы, а также тем, кто помогал в выборе победителя, голосовав на сайте. О результатах. Я не смог выбрать одну статью в качестве победителя и решил, что на этот раз первых мест будет два. Итак, вот победители:

    Первое место: Гриненко Виталий "Классовая теория програмизьма", Ларин Александр "Реализация длинной арифметики на Visual Basic'е".
    Второе место: Калмыков Дмитрий "Как стать автором shareware программ".

    Какие же призы мы приготовили авторам? Как и в прошлый раз мы предлагаем Гриненко Виталию и Ларину Александру самим выбрать в качестве приза книгу из магазина оЗон. Книги будут оплачены сайтом VBNet. Калмыков Дмитрий получает комплект CD дисков, выпускаемых сайтом VBNet. Все остальные участники конкурса, работы которых были представлены на сайте, получают в качестве поощрительного приза любой из дисков, выпускаемых сайтом VBNet.

    Ну и хочу сообщить всем, что начинается новый конкурс! Присылайте свои статьи на сайт и становитесь победителями конкурса! Нужно отметить, что конкурсы на VBNet выходят на новый уровень развития с теперь у нас есть спонсор в лице авторитетного журнала "Hard'n'Soft", который предлагает победителям конкурса бесплатные подписки на журнал. Думаю, что это придаст вам больше сил и участников конкурса станет еще больше.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 02.03.2003 08:21 | Раздел: Статьи по VB | Автор: Ройтер Роман

    Как защитить свою программу от взломщиков - Я решил написать статью о том, как защитить свои программы от взлома. Оговорюсь сразу, практически невозможно создать такую защиту, которая могла бы противостоять опытному взломщику. Но можно попытаться создать такую защиту, которая окажется не по зубам около 90% взломщиков. Все мои идеи по защите основаны на личных наблюдениях, и они могут не быть достоверными, но могут быть полезными против большинства новичков и продвинутых взломщиков.

    Дата: 28.02.2003 15:47 | Раздел: Примеры кода | Автор: Kir Alper

    WinExit II - Простенькая прога : Выход из Windows (XP) Видно ее работу только в SysTray. Иконка в SysTray "живая". Добавлена быстрая перезагрузка,получение своего IP-address и переменных среды.

    Дата: 28.02.2003 14:51 | Раздел: ActiveX контролы | Автор: Вологин Артём

    PicButton - Кому не хочется украсить свою программу красивыми, подвижными кнопками? Но делать их с помощью Label'ов, Imag'ов очень долго и нудно. Этот контрол поможет сделать кнопку на ваш вкус.

    Дата: 27.02.2003 08:38 | Раздел: Примеры кода | Автор: Замашной Вадим

    Timer - Таймер выключения компьютера

    Дата: 27.02.2003 08:38 | Раздел: Примеры кода | Автор: Замашной Вадим

    Avtointernet (sys tray vb) - Автонабор интернет-адресов (URL).

    Дата: 26.02.2003 17:47 | Раздел: Полезные программы | Автор: Ловиков Миха

    MicroGerakL 6.3 - Редактор иконок и курсоров. Извлечение иконок из .exe,.ocx,.icl,.dll,.ani и др. Возможность захвата в буфер части экрана,cохранение в форматах .ico,.cur,.ani В этой версии исправлены баги при сохранении, рисовании.Сейчас пытаюсь усовершенствовать извлекатель. Он будет тащить иконки из всех файлов и рисунков! В этой версии добавлен файл TipOfDay.txt для советов дня.

    Дата: 26.02.2003 08:38 | Раздел: Примеры кода | Автор: Замашной Вадим

    Калькулятор - Ещё один калькулятор.

    Дата: 26.02.2003 08:38 | Раздел: Примеры кода | Автор: Замашной Вадим

    ScreenCopi - Программа для быстрого создания снимка экрана (или части экрана) и сохранения его в файл.

    Дата: 25.02.2003 12:10 | Раздел: Примеры кода | Автор: CyRax

    Конвертер систем счисления - Переводит число из одно системы счисления в другую. Например из 16-ричной в 2-ичную.

    Дата: 25.02.2003 08:25 | Раздел: Примеры кода | Автор: Daniyar Atadjanov

    VB 6.0 Recent Files Corrector - У VB при показе диалогового окна для открытия файлов есть вкладка Recent Files, где вы можете выбрать проект из списка наиболее часто используемых вами. Но когда проект удаляется с диска, VB не удаляет его из этого списка, что не совсем удобно, а точнее совсем не удобно. Забудьте про это неудобство с данной маленькой программой! Она покажет список всех проектов, а также список проектов, которых уже нет! И спросит разрешения удалить их!

    Дата: 24.02.2003 08:25 | Раздел: Примеры кода | Автор: Daniyar Atadjanov

    Background Converter - Все знакомы с прогами-латинизаторами. Обычно они имеют два поля. Копируешь текст, вставляешь в верхнее поле, нажимаешь на кнопку. В нижнем появляется конвертированный текст. Копируешь его и вставляешь куда надо. Зачем столько возни? Взгляните на мою прогу! Вы с ней почти не общаетесь! Просто выделяете нужный текст прямо из программы в которой вы работаете (Блокнот, Word, IE и т. д.) и копируете его. Конвертированный текст вставится автоматически!

    Дата: 23.02.2003 10:59 | Раздел: Примеры кода | Автор: Владимир

    JPGfromRES - Загрузка картинок в формате JPG и GIF из фаила ресурсов

    Последние 20 тем форума на VBNet.Ru:

    01:41 / 2 мар. Модем, поодключения... | Хитов: 6 | Ответов: 0
    01:41 / 2 мар. Модем, поодключения... | Хитов: 2 | Ответов: 0
    23:59 / 1 мар. com порт | Хитов: 5 | Ответов: 1
    20:12 / 1 мар. ASP чат без global.asa | Хитов: 4 | Ответов: 0
    19:37 / 1 мар. Сообщение Windows - нужна помощь | Хитов: 13 | Ответов: 0
    17:52 / 1 мар. работа с тел. линией | Хитов: 11 | Ответов: 0
    16:40 / 1 мар. Лицензирование ActiveX | Хитов: 17 | Ответов: 3
    13:51 / 1 мар. Как воспроизвести звук из массива переменных In... | Хитов: 7 | Ответов: 0
    11:54 / 1 мар. Гррр | Хитов: 15 | Ответов: 0
    10:49 / 1 мар. COM-порт. | Хитов: 9 | Ответов: 0
    05:16 / 1 мар. Reestr??? | Хитов: 7 | Ответов: 0
    23:55 / 28 фев. помогите с винсокс!!! | Хитов: 18 | Ответов: 1
    22:59 / 28 фев. Новое сообщение без темы | Хитов: 4 | Ответов: 0
    20:40 / 28 фев. TreeView аналог winamp | Хитов: 25 | Ответов: 3
    14:40 / 28 фев. шрифты и ListBox | Хитов: 11 | Ответов: 0
    11:01 / 28 фев. vb.net и БД | Хитов: 21 | Ответов: 2
    09:55 / 28 фев. NET | Хитов: 20 | Ответов: 0
    05:55 / 28 фев. Vbscript / ASP | Хитов: 42 | Ответов: 5
    22:38 / 27 фев. Не пойму что с DLL | Хитов: 26 | Ответов: 2
    22:03 / 27 фев. нажать, открыть, записать, закрыть... | Хитов: 42 | Ответов: 4

    Последние поступления в Библиотеку кодов:

    Римские цифры (47)

    Новости от VBNet-чиков!:

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Новости сайта MSDN

    наверх

    Новости сайта GotdotNet

    Новые статьи:

    • 28.02 - Создание пользовательских элементов управления с помощью .NET Compact Framework

    наверх

    Новости сайта dotSite

    Новые статьи:

    • Использование ASP.NET Forums для создания дискуссионных групп.
      Что такое ASP.NET Forums и с чем их едят.

    Новые примеры:

    • ASP.NET Forums (Russian)
      Руссификация движка для форумов, разработанного командой ASP.NET

    наверх

    Узнать точку пересечения срединных перпендикуля...

    Вопрос:
    Автор вопроса: Страшный Сон

    Надо узнать точку пересечения срединных перпендикуляров в трёугольнике, проще говоря, просто узнать точку пересечения двух отрезков! Кто-нить в этом разбирается?

    Ответы:

    Автор: Silent Bob
    Можно приравнять ур-я прямых. Подробно онахождении ур-ий по координатам можно прочитать в руководстве для поступающих в МГУ.

    Автор: AlexSid
    Составляешь систему уравнений прямых. Решаешь... По методу Крамера, например! Если есть решение, значит ты получил то, что надо. Нет - значит параллельны... (хотя, если это серед. перпендикуляры, то такой случай исключается).

    Автор: Страшный Сон
    Расскажите тада что-нибудь об этих уравнениях, или ссыллочку дайте.
    > хотя, если это серед. перпендикуляры, то такой случай исключается
    Я так не думаю. Если у треугольника один из углов равен 180 градусам, а длина самой длинной стороны равна сумме длин двух других, то ср. перпендикуляры будут параллельны. В таком случае треугольник будет выглядеть как линия, а описать окружность вокруг него будет невозможно. :-)))

    Автор: vig11
    У треугольника один угол не может быть равным 180 градусам. 180 градусов это сумма всех углов треугольника.

    Автор: AlexSid
    "Если у треугольника один из углов равен 180 градусам"...
    Я не рассматриваю вырожденного случая!
    Глянь на http://algolist.manual.ru/maths/geom/intersect/lineline2d.php...
    И вообще на algolist.ru, может найдешь чего.

    Автор: Страшный Сон
    > У треугольника один угол не может быть равным 180 градусам. 180 градусов это сумма всех углов треугольника.
    Ну вот так и есть - один угол равен 180 градусам, два других - нулю. Треугольник такой.

    Автор: Страшный Сон
    Уау, получилось! Нашло оно этот проклятый центр описанной окружности! Правда, пришлось немного поломать голову над этим уравнением...

    Автор: Bob
    Пресечение прямых получишь используя функцию peresec
    Немножко нелепо выглядит (без особых раздумий перенёс со старых своих исходников на С), но работать должна, проверь.
    Я проверял корректность функции рисуя на форме пересекающиеся линии.

    Global Const HORIZ = 0
    Global Const VERT = 1
    Global Const ANGLL = 2
    Global Const ORTO = 3
    Global Const ERRORH = 50
    Global Const OFF = -1
    Global Const OMM = 1
    Public Function Parline(ByRef a As Variant, ByRef b As Variant, x0 As Variant, _
    y0 As Variant, x1 As Variant, y1 As Variant) As Integer
    Dim dx, dy, tmp As Double
    Dim PI As Double
    PI = 4 * Atn(1)
    tmp = Sqr((x1 - x0) ^ 2 + (y1 - y0) ^ 2)
    If tmp = 0# Then: Parline = ERRORH: Exit Function
    dx = Abs(x1 - x0)
    dy = Abs(y1 - y0)
    If dy < 0.25 Then: a = 0#: b = y0: Parline = HORIZ: Exit Function
    If dx < 0.25 Then: a = 1E+15: b = x0: Parline = VERT: Exit Function
    If dx > dy Then
    dx = dx / tmp
    dx = Atn(-dx / Sqr(-dx * dx + 1)) + 2 * Atn(1)
    If Abs(dx) < 0.0001 Then
    a = 0#
    b = y0
    Parline = HORIZ
    Exit Function
    Else
    If Abs(dx - PI / 2) < 0.0001 Then a = 1E+15: b = x0: Parline = VERT: Exit Function
    End If
    Else
    dy = dy / tmp
    dx = Atn(dy / Sqr(-dy * dy + 1))
    If Abs(dx) < 0.0001 Then
    a = 0#: b = y0: Parline = HORIZ: Exit Function
    Else
    If Abs(dx - PI / 2) < 0.0001 Then a = 1E+15: b = x0: Parline = VERT: Exit Function
    End If
    End If
    a = (y1 - y0) / (x1 - x0)
    b = y0 - a * x0
    Parline = ANGLL
    End Function

    Public Function Peresec(ByRef xp As Variant, ByRef yp As Variant, x1 As Variant, _
    y1 As Variant, x2 As Variant, y2 As Variant, x3 As Variant, y3 As Variant, _
    x4 As Variant, y4 As Variant) As Integer

    Dim to1, to2 As Integer
    Dim a1, a2, b1, b2 As Single
    xp = -1
    yp = -1
    to1 = Parline(a1, b1, x1, y1, x2, y2)
    to2 = Parline(a2, b2, x3, y3, x4, y4)
    If to1 = VERT Then
    If Sqr(x1 ^ 2 + y1 ^ 2) < Sqr(x2 ^ 2 + y2 ^ 2) Then
    x2 = x1
    Else
    x1 = x2
    End If
    End If
    If to2 = VERT Then
    If Sqr(x3 ^ 2 + y3 ^ 2) < Sqr(x4 ^ 2 + y4 ^ 2) Then
    x4 = x3
    Else
    x3 = x4
    End If
    End If
    If to2 = to1 And (to2 = VERT Or to2 = HORIZ) Then
    If Abs(b1 - b2) > 0.0001 Then: GoTo OFF
    If to1 = HORIZ Then
    If x1 > x2 Then: Swap x1, x2
    If x3 > x4 Then: Swap x3, x4
    yp = b1
    xp = x4
    If Abs(x2 - x1) > Abs(x4 - x3) Then
    If x1 = x3 And x2 > x4 Then: GoTo OM
    End If
    xp = x2
    If Abs(x2 - x1) < Abs(x4 - x3) Then
    If x1 = x3 And x2 < x4 Then: GoTo OM
    End If
    xp = x1
    If x1 = x4 Then: GoTo OM
    xp = x2
    If x2 = x3 Then: GoTo OM
    If x4 = x2 Then
    xp = x1
    If Abs(x2 - x1) < Abs(x4 - x3) Then GoTo OM
    xp = x3
    If Abs(x2 - x1) > Abs(x4 - x3) Then GoTo OM
    End If
    If (x2 < x3) Or (x1 > x4) Then GoTo OFF
    Peresec = ERRORH
    Exit Function
    End If
    If y1 > y2 Then: Swap y1, y2
    If y3 > y4 Then: Swap y3, y4
    If (y2 - y1) > (y4 - y3) Then
    xp = b1
    If (y1 = y3) And (y2 > y4) Then: yp = y4: GoTo OM
    'If y2 = y3 Then: yp = y2: GoTo Om
    'If y1 = y4 Then: yp = y1: GoTo Om
    If y2 = y4 Then
    If Abs(y2 - y1) < Abs(y4 - y3) Then: yp = y1: GoTo OM
    If Abs(y2 - y1) > Abs(y4 - y3) Then: yp = y3: GoTo OM
    End If
    End If
    If y2 - y1 < y4 - y3 Then
    If (y1 = y3) And (y2 < y4) Then: xp = b1: yp = y2: GoTo OM
    End If
    End If
    If (to1 = VERT) And (to2 = HORIZ) Then
    xp = b1
    yp = b2
    If (((b2 >= y1 And b2 <= y2) Or (b2 <= y1 And b2 >= y2)) _
    And ((b1 >= x3 And b1 <= x4) Or (b1 <= x3 And b1 >= x4))) Then
    GoTo OM
    Else
    GoTo OFF
    End If
    End If
    If (to2 = VERT) And (to1 = HORIZ) Then
    xp = b2
    yp = b1
    If (((b2 > x1 And b2 < x2) Or (b2 < x1 And b2 > x2)) And _
    ((b1 >= y3 And b1 <= y4) Or (b1 <= y3 And b1 >= y4))) Then
    GoTo OM
    Else
    GoTo OFF
    End If
    End If
    xp = x1
    yp = y1
    If (Abs(x1 - x3) < 0.01 And Abs(y1 - y3) < 0.01 And a1 <> a2) Then GoTo OM
    If (Abs(x1 - x4) < 0.01 And Abs(y1 - y4) < 0.01 And a1 <> a2) Then GoTo OM
    xp = x2
    yp = y2
    If (Abs(x2 - x4) < 0.01 And Abs(y2 - y4) < 0.01 And a1 <> a2) Then GoTo OM
    If (Abs(x2 - x3) < 0.01 And Abs(y2 - y3) < 0.01 And a1 <> a2) Then GoTo OM
    If (x1 > x2) Then: Swap x1, x2
    If (y1 > y2) Then: Swap y1, y2
    If (x3 > x4) Then: Swap x3, x4
    If (y3 > y4) Then: Swap y3, y4
    If (to1 = ANGLL Or to2 = ANGLL) Then
    If (Abs(a1 - a2) < 0.0001) Then
    If (Abs(b2 - b1) < 0.0001) Then
    If (((x1 > x3) And (x2 < x3)) Or ((x1 > x4) And (x2 < x4))) Then
    GoTo OM
    Else
    GoTo OFF
    End If
    Else
    GoTo OFF
    End If
    End If
    End If
    If (to1 = ANGLL And to2 = ANGLL) Then
    xp = (b2 - b1) / (a1 - a2)
    '___
    If Abs(b1) < Abs(b2) Then
    yp = xp * a1 + b1
    Else
    yp = xp * a2 + b2
    End If
    If ((xp >= x1 And xp <= x2) And (xp >= x3 And xp <= x4) Or _
    ((Abs(xp - x1) < 0.001) And (Abs(xp - x2) < 0.001))) Then
    GoTo OM
    Else
    GoTo OFF
    End If
    End If
    If (to2 = ANGLL) Then
    Swap a1, a2
    Swap b1, b2
    Swap to1, to2
    Swap x1, x3
    Swap y1, y3
    Swap x2, x4
    Swap y2, y4
    End If

    If (to1 = ANGLL And to2 = VERT) Then
    xp = x3
    yp = xp * a1 + b1
    If ((xp > x1 And xp < x2) And (yp > y3 And yp < y4)) Then
    GoTo OM
    Else
    GoTo OFF
    End If
    End If
    If (to1 = ANGLL And to2 = HORIZ) Then
    yp = y3
    xp = (b2 - b1) / a1
    If ((xp > x1 And xp < x2) And (xp > x3 And xp < x4) Or _
    ((Abs(xp - x1) < 0.001) And (Abs(xp - x2) < 0.001))) Then
    GoTo OM
    Else
    GoTo OFF
    End If
    End If
    Peresec = ERRORH
    Exit Function
    OFF:
    Peresec = OFF
    Exit Function

    OM:
    Peresec = OMM
    Exit Function

    End Function

    Public Sub Swap(ByRef a As Variant, ByRef b As Variant)
    Dim tmp As Variant
    tmp = a
    a = b
    b = tmp
    End Sub

    Автор: Страшный Сон
    Ну ты блин закрутил... Никакой процессор не возьмётся выполнять стоко всякого д..... 100 раз в секунду!

    Автор: СBob
    Это работает.
    Не нравится сделай лучше. Удачи!

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Игорь

    Ответ ожидается по этому адресу

    Как ияменить цвет фона отдельной кнопки, не меняя при этом основные настройки Windows?

    Автор вопроса: Serega435

    Ответ ожидается по этому адресу

    Подскажите, плз как преобразовать документ DOC (Word) в RTF. Слышал, что эти функции есть в библиотеках WordPad, но как с ними работать?

    Автор вопроса: Stalker

    Ответ ожидается по этому адресу

    Как сделать, чтобы программа запускалась как сервис в Win NT/2000/XP (Service NT)? Я смотрю, что на этот вопрос никто не знает ответа.
    Ламеры задают вопросы наподобие "Как засунуть программу в Systray, там где часики", а продвинутые ламеры на них отвечают. Вопрос задаешь чуть посложней, так все кричат в один голос: "это на VB нельзя сделать". Что никто не может толком программировать на VB?
    В общем я частично согласен, что на VB сервисы не пишутся. Но можно использовать ocx, написанные на с/с++ или создать сервис используя API. Может кто-то сталкивался с этим, или есть готовый пример?

    Автор вопроса: Yory

    Ответ ожидается по этому адресу

    Мой проект (VB6) использует DAO 3.50, работал без проблем (Win 95/98/2000). Появились машины с той же самой операционкой, не открывающие базу данных при работе из exe-шника. При работе в среде отладки все отлично. Тогда меняю DAO 3.50 на DAO 3.60. На этих машинах все отлично, но на части тех, где раньше проблем не было (не на всех!) база загружаться перестала. Новую .dll я, естественно, нормально устанавливаю и регистрирую.

    Автор вопроса: DeDMoRoZ

    Ответ ожидается по этому адресу

    Мой вопрос связан с API. Заключается он в следующем. Мне нужно помещать в ListBox все запускаемые exe и com приложения в Windows 95. А так же все открываемые папки. И после клика в ListBox переходить к выполнению тои или иной задачи. К примеру у меня открыта папка Windows и работает exe файл Nootpade.exe они помещены в этот ListBox. Первая строка c:\windows вторая c:\windows\nootpade.exe (в ListBox). Пощелчки по 1 строке мы переходим к папке Windows а по второй переходим к nootpade.exe. Вообщем получить что то вроде панели задач (нижняя часть экрана) как Windows.
    Так же нужно поместить обсалютно все работающие процессы в системе во второй ListBox и по щелчку нужно что бы задача снималась. То есть что вроде "Заверщение работы програм" как Windows по нажатию на Alt+Ctrl+Del.
    МОЖЕТ кто нибудь знает где достать такой компонент или пример (только не очень сложный) а ещё лучше OCX.

    Автор вопроса: 001

    Ответ ожидается по этому адресу

    Можно ли в VB вставлять в код программы подпрограммы "на лету"?
    Так это приблизительно выглядит на Паскале:

    if <какое-то условие> then
    ...
    <тело программы>
    ...
    begin
    ...
    <код подпрограммы>
    ...
    end;
    ...
    <тело программы>
    ...

    А как в Visual Basic?

    Ответы:

    Вопрос:

    Доброе время суток. А реально написать прогу на VB6 и сделать так чтобы она висела в трее (прям значком) а при нажатии на нее левой открывалась, а правой показывала меню?

    Ответ:

    Автор ответа: Dima

    Реально. Даже не сложно.

    Вопрос:

    Помагите с решением проблема такая. Есть функции как copy, cut, paste можно воспользаватся с помащю как Clipboard и как через WinApi

    Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long,_
    LParam As Any) As Long

    Какая разнится между ними разнится и какая из них боле эфектвна.

    Ответ:

    Автор ответа: ]CBK[CRaSH

    Через Clipboard

    Private Sub mnuEditCopy_Click()
    Clipboard.Clear
    Clipboard.SetText frmMain.ActiveControl.SelText
    End Sub

    Private Sub mnuEditCut_Click()
    Clipboard.Clear
    Clipboard.SetText frmMain.ActiveControl.SelText
    frmMain.ActiveControl.SelText = ""
    End Sub

    Private Sub mnuEditDelete_Click()
    frmMain.ActiveControl.SelText = ""
    End Sub

    Private Sub mnuEditPast_Click()
    frmMain.ActiveControl.SelText = Clipboard.GetText
    Clipboard.Clear
    End Sub

    Через API ???

    Вопрос:

    Я столкнулся с такой проблемой.
    Хочу чтобы формулы в документе сами пресчитывались.
    Формулы написаны в редакторе формул MS Equation 3.0.
    Но никак не могу найти таких примеров.

    Ответ:

    Автор ответа: mif

    Насколько я знаю они никак не пересчитываются. Может быть это и позволяет сделать MathType (не ручаюсь за правильность), но его я не искал - тогда у меня не было инета. Пересчитываться могут разве что таблицы MSExcel вставленные в документ Word. А так математику я делал в MathCad и ручками перебивал в Word.

    PS. В Ворде я набрал пару десятков курсовых (на технической специальности) и диплом в 103 стр...

    Вопрос:

    ХА. Я наконец то отрыл код получения заводского серийника HDD!!!!!!!!!!
    Если каму-нибудь надо могу прислать.
    НО программа написана на С я ее подредактировал.
    Поевляется окошко консольного приложения и создается файл key.dat c номером
    Вобшем круто!!!!!!!!!!!

    Ответ:

    Автор ответа: Senin V.N.

    Ну если выложишь в Инет исходники, то классно, если выложишь только прогу, то таких у меня уже 2 штуки, причем одна не работает по NT, а другая требует установки какого-то драйвера.

    Вопрос:

    Как определить, какие файлы, включая библиотеки, ActiveX-компоненты и т.д., необходимо включить в инсталлятор готового приложения? Стандартный VB Pack Wizard, по-моему, добавляет в пакет много лишнего ...

    Ответ:

    Автор ответа: ]CBK[CRaSH

    Посмотри файл твоего проекта Мой_проект.vbp

    Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\WIN98\SYSTEM\stdole2.tlb#OLE Automation
    Reference=*\G{00020813-0000-0000-C000-000000000046}#1.3#0#..\..\..\Program Files\Microsoft Office\Office\EXCEL9.OLB#Microsoft Excel 9.0 Object Library
    Object={6B7E6392-850A-101B-AFC0-4210102A8DA7}#1.3#0; COMCTL32.OCX

    Object-ActiveX подключенный к проекту
    Reference-ActiveDLL подключенный через меню Reference

    Вопрос:

    Можно-ли запустить из VB файл *.mdb. Если да, то как это сделать?

    Ответ:

    Автор ответа: progist

    ShellExecute - запустит кого угодно и куда угодно.

    Ответ:

    Автор ответа: DUKE

    Запустить можно все что угодно, используя API :

    Private Declare Function ShellExecute& Lib "shell32.dll" Alias "ShellExecuteA" (ByVal _
    hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal _
    lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long)
    Private Const SW_SHOWMAXIMIZED = 3

    Call ShellExecute(0&, "open", "yourfile.ext", vbNullString, vbNullString,
    SW_SHOWMAXIMIZED)

    Вопрос:

    Как обновить DataEnvirinment при печати новой записи, а то после изменений в наборе recordset в DataReport выводится старая запись. Можно-ли в VB6 при формировании DataReport обойтись без DataEnvirinment?

    Ответ:

    Автор ответа: Malikov

    Тут проблема не в enviromente. Дело в том что печать идет в асинхронном режиме, и ты вызываешь его снова когда он еще обрабатывается, ессно данные он сменить не успевает. Напиши что нибудь типа(где repdoc_invoice - твой DataReport):

    While repdoc_invoice.AsyncCount > 0
    DoEvents
    Wend
    Unload repdoc_invoice
    repdoc_invoice.PrintReport False

    А обойтись без enviromenta легко, я обычно так и делаю на инициализацию прописываешь:

    Private Sub DataReport_Initialize()
    Set repdoc_invoice.DataSource = RstDocData
    end sub

    Вопрос:

    Как поставить vbnet на машину с win98 ??
    Вылетает сообщение "типа не устанавливается не вин98",
    а в хелпе "On Windows 98 or Windows Me run instmsiA.exe"

    Ответ:

    Автор ответа: Дмитриев Николай

    VB.Net на Вынь95, 98, Ме не ставится, ставится он только на W2k или Windows XP, так как для работы он требует Microsoft .NET Framework, который ставится соответственно только на две указанные выше системы.

    Вопрос:

    Подскажите, плз, как можно перетаскивать объект по форме мышкой (хорошо бы, что-бы было видно контур, как в нормальных приложениях) и как можно соединить два объекта на форме линией (опять же, с помощью крысы).

    Ответ:

    Автор ответа: Роман

    Private Declare Function SendMessage Lib "user32" _
    Alias "SendMessageA" (ByVal hwnd As Long, _
    ByVal wMsg As Long, ByVal wParam As Long, _
    lParam As Any) As Long

    Перетаскивать объект:

    Private Declare Sub ReleaseCapture Lib "user32" ()
    Private Const WM_NCLBUTTONDOWN = &HA1
    Private Const HTCAPTION = 2

    Private Sub "за что хватаемся"_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim lngReturnValue As Long

    If Button = vbLeftButton Then
    Call ReleaseCapture
    lngReturnValue = SendMessage("что перетаскиваем".hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&)
    End If
    End Sub

    Нарисовать линию:

    Form.Line (X1,Y2)-(X2,Y2),цвет,B или BF
    B - пустой прямоугольник
    BF - закрашенный прямоугольник

    Вопрос:

    Мой проект (VB6) использует DAO 3.50, работал без проблем (Win 95/98/2000). Появились машины с той же самой операционкой, не открывающие базу данных при работе из exe-шника. При работе в среде отладки все отлично. Тогда меняю DAO 3.50 на DAO 3.60. На этих машинах все отлично, но на части тех, где раньше проблем не было (не на всех!) база загружаться перестала. Новую .dll я, естественно, нормально устанавливаю и регистрирую.
    Кто поможет?

    Ответ:

    Автор ответа: progist

    А Reference?

    Ответ:

    Автор ответа: Michael Fezulaev

    Я однажды сталкнулся с такой проблемой. Дело в том что когда ставиш свою прогу на другую машину и на той машине нет дравера для DAO или стоит другой дравер, то VB не может открыть. Перепиши дравер DAO 3.50 на ту машину или инсталируй её. (Мне это помгло)

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 141.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта 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!!!

    Несколько слов от автора:

    Поздравляю прекрасную половину читателей этой рассылки с Международным Женским Днём!
    Читайте!

    Содержание выпуска

    • Книги

    • Функция для изменения размеров картинки
    • Скопировать содержимое PictureBox в буфер обмена
    • Определение типа рисунка и его размеров
    • CommonDialog: Выбор нескольких файлов для открытия
    • Определение, виден ли СкроллБар у элемента

    • Вопрос/Ответ

    Книги

    Переход на 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 PictureBox и 1 CommandButton.

    Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal Nwidth As Long, ByVal Nheight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
    Const SRCCOPY = &HCC0020

    Private Sub ImgResize(src As PictureBox, TmpPic As PictureBox, mWidth As Long, mHeight As Long)
    src.AutoRedraw = False
    TmpPic.AutoRedraw = True
    TmpPic.Height = mHeight 'установка размеров невидимого picturebox
    TmpPic.Width = mWidth
    StretchBlt TmpPic.hdc, 0, 0, mWidth, mHeight, src.hdc, 0, 0, src.Width, src.Height, SRCCOPY
    'сохранить временной файл на диске
    SavePicture TmpPic.Image, App.Path + "\tempimg.bmp"
    'перезагрузить оригинальный picturebox
    src.AutoSize = True
    src.Picture = LoadPicture(App.Path + "\tempimg.bmp")
    'удалить временной файл
    Kill App.Path + "\tempimg.bmp"
    'очистить невидимый picturebox
    TmpPic.Picture = LoadPicture()
    'пример для вызова функции
    'ImgResize Picture1, Picture2, Picture1.Width / 2, Picture1.Height / 2
    End Sub
    Private Sub Command1_Click()
    ImgResize Picture1, Picture2, Picture1.Width / 2, Picture1.Height / 2
    End Sub
    Private Sub Form_Load()
    Picture2.Visible = False
    End Sub

    наверх

    Скопировать содержимое PictureBox в буфер обмена

    Интересный пример, правда не до конца понятый мною.

    Расположите на форме элемент PictureBox и элемент CommandButton. Запустите проект, нажмите на кнопку. Затем откройте приложение Paint и нажмите сочетание клавиш Ctrl + V.

    Option Explicit
    Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
    End Type

    Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal XSrc As Long, ByVal YSrc As Long, ByVal dwRop As Long) As Long
    Private Const SRCCOPY = &HCC0020
    Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long
    Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
    Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
    Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
    Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function CloseClipboard Lib "user32" () As Long
    Private Declare Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As Long
    Private Declare Function GetClipboardFormatName Lib "user32" Alias "GetClipboardFormatNameA" (ByVal wFormat As Long, ByVal lpString As String, ByVal nMaxCount As Long) As Long
    Private Declare Function EmptyClipboard Lib "user32" () As Long
    Private Declare Function CountClipboardFormats Lib "user32" () As Long
    Private Declare Function EnumClipboardFormats Lib "user32" (ByVal wFormat As Long) As Long
    Private Declare Function IsClipboardFormatAvailable Lib "user32" (ByVal wFormat As Long) As Long
    Private Declare Function RegisterClipboardFormat Lib "user32" Alias "RegisterClipboardFormatA" (ByVal lpString As String) As Long
    Private Declare Function GetClipboardData Lib "user32" (ByVal wFormat As Long) As Long
    Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As Long
    Private Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As Long) As Long
    Private Declare Function GlobalSize Lib "kernel32" (ByVal hMem As Long) As Long
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (lpvDest As Any, lpvSource As Any, ByVal cbCopy As Long)

    Public Enum EPredefinedClipboardFormatConstants
    [_First] = 1
    CF_TEXT = 1
    CF_BITMAP = 2
    CF_METAFILEPICT = 3
    CF_SYLK = 4
    CF_DIF = 5
    CF_TIFF = 6
    CF_OEMTEXT = 7
    CF_DIB = 8
    CF_PALETTE = 9
    CF_PENDATA = 10
    CF_RIFF = 11
    CF_WAVE = 12
    CF_UNICODETEXT = 13
    CF_ENHMETAFILE = 14
    CF_HDROP = 15
    CF_LOCALE = 16
    CF_MAX = 17
    [_Last] = 17
    End Enum

    Public Function CopyEntirePictureToClipboard(ByRef objFrom As Object) As Boolean
    Dim lhDC As Long
    Dim lhBmp As Long
    Dim lhBmpOld As Long
    lhDC = CreateCompatibleDC(objFrom.hdc)
    If (lhDC <> 0) Then
    lhBmp = CreateCompatibleBitmap(objFrom.hdc, objFrom.ScaleWidth \ Screen.TwipsPerPixelX, objFrom.ScaleHeight \ Screen.TwipsPerPixelY)
    If (lhBmp <> 0) Then
    lhBmpOld = SelectObject(lhDC, lhBmp)
    BitBlt lhDC, 0, 0, objFrom.ScaleWidth \ Screen.TwipsPerPixelX, objFrom.ScaleHeight \ Screen.TwipsPerPixelY, objFrom.hdc, 0, 0, SRCCOPY
    SelectObject lhDC, lhBmpOld
    EmptyClipboard
    OpenClipboard 0
    SetClipboardData CF_BITMAP, lhBmp
    CloseClipboard
    End If
    DeleteObject lhDC
    CopyEntirePictureToClipboard = True
    Else
    CopyEntirePictureToClipboard = False
    End If
    End Function

    Private Sub Command1_Click()
    Call CopyEntirePictureToClipboard(Picture1)
    End Sub

    наверх

    Определение типа рисунка и его размеров

    Данный пример позволяет узнать такие параметры файла рисунка в формате 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

    наверх

    CommonDialog: Выбор нескольких файлов для открытия

    Некоторое время назад я натолкнулся на одном из сайтов на вопрос: "А как мне с помощью CommonDialog выбрать несколько файлов для открытия". Ответ кроется в устанавливаемом флажке cdlOFNAllowMultiselect. Подробности? Пожалуйста. Скопирова код, запустите программу на выполнение. Нажмите на кнопку, выберите несколько файлов, нажмите "Открыть". Вы получите строку, содержащую полный путь к отрываемой папке, а также разделенные пробелами список файлов для открытия. Вам останется только разделить полученную строку на отдельные элементы. Я могу это сделать, а Вы?

    Private Sub ShowOpen()
    On Error GoTo ErrorHandler
    CommonDialog1.CancelError = True
    CommonDialog1.Filter = "All Files (*.*)|*.*|Word Documents (*.doc )|*.doc |Text Files (*.txt)|*.txt|"
    CommonDialog1.FilterIndex = 3
    CommonDialog1.InitDir = "D:\DOCUMENTS"
    CommonDialog1.Flags = cdlOFNFileMustExist Or cdlOFNAllowMultiselect
    CommonDialog1.Action = 1 'Или же CommonDialog1.ShowOpen
    '***********
    'Здесь распологается Ваш код (не забудьте, что путь к выбранному файлу Вы считываете из свойства FileName)
    MsgBox CommonDialog1.FileName
    '**********
    Exit Sub
    ErrorHandler:
    If Err.Number = 32755 Then Exit Sub
    End Sub

    Private Sub Command1_Click()
    Call ShowOpen
    End Sub

    наверх

    Определение, виден ли СкроллБар у элемента

    Разместите на форме элемент ListBox. (В оригинале примера на форме был размещен элемент TreeView из библиотеки Microsoft Common Dialog Control 6.0. Можете разместить и его, только не забудьте снять комментарии, относящиеся к элементу TreeView).

    Private Const GWL_STYLE = (-16)
    Private Const WS_HSCROLL = &H100000
    Private Const WS_VSCROLL = &H200000
    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long

    Private Sub Command1_Click()
    Dim wndStyle As Long
    wndStyle = GetWindowLong(List1.hwnd, GWL_STYLE)
    'wndStyle = GetWindowLong(TreeView1.hwnd, GWL_STYLE)

    If (wndStyle And WS_HSCROLL) <> 0 Then
    MsgBox "A horizontal scroll bar is visible."
    Else
    MsgBox "A horizontal scroll bar is NOT visible."
    End If
    If (wndStyle And WS_VSCROLL) <> 0 Then
    MsgBox "A vertical scroll bar is visible."
    Else
    MsgBox "A vertical scroll bar is NOT visible."
    End If
    End Sub

    Private Sub Command2_Click()
    List1.Move 250, 900, 1000, 1000
    'TreeView1.Move 250, 900, 1000, 1000
    End Sub

    Private Sub Form_Load()
    ' Size and position the form and controls.
    Form1.ScaleMode = 1
    Form1.Move 0, 0, 5100, 5040
    Command1.Caption = "Scroll Bar Test"
    Command1.Move 120, 120, 1700, 500
    Command2.Caption = "Size Control"
    Command2.Move 2000, 120, 1700, 500
    List1.Move 250, 900, 3000, 1500
    'TreeView1.Move 250, 900, 3000, 1500
    List1.AddItem "1: Sample Text"
    List1.AddItem "2: Sample Text"
    List1.AddItem "3: Sample Text"
    List1.AddItem "4: Sample Text"
    List1.AddItem "5: Sample Text"
    List1.AddItem "6: Sample Text"
    'TreeView1.Nodes.Add , , , "1: Sample Text"
    'TreeView1.Nodes.Add , , , "2: Sample Text"
    'TreeView1.Nodes.Add , , , "3: Sample Text"
    'TreeView1.Nodes.Add , , , "4: Sample Text"
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: DeDMoRoZ

    Ответ ожидается по этому адресу

    Мой вопрос связан с API. Заключается он в следующем. Мне нужно помещать в ListBox все запускаемые exe и com приложения в Windows 95. А так же все открываемые папки. И после клика в ListBox переходить к выполнению тои или иной задачи. К примеру у меня открыта папка Windows и работает exe файл Nootpade.exe они помещены в этот ListBox. Первая строка c:\windows вторая c:\windows\nootpade.exe (в ListBox). Пощелчки по 1 строке мы переходим к папке Windows а по второй переходим к nootpade.exe. Вообщем получить что то вроде панели задач (нижняя часть экрана) как Windows.
    Так же нужно поместить обсалютно все работающие процессы в системе во второй ListBox и по щелчку нужно что бы задача снималась. То есть что вроде "Заверщение работы програм" как Windows по нажатию на Alt+Ctrl+Del.

    МОЖЕТ кто нибудь знает где достать такой компонент или пример (только не очень сложный) а ещё лучше OCX.

    Автор вопроса: Лёха

    Ответ ожидается по этому адресу

    Если кто хочет переписывоться-пишите skorpion200284@mail.ru (одна
    голова хорошо, а с туловищем лучше!)

    Автор вопроса: bad_tula@msn.com

    Ответ ожидается по этому адресу

    Поиогите исходниками, доками, про то как можно сделать программу для
    соединения с ИНТЕРНЕТ. Ответы намыльте сюда: bad_tula@msn.com

    Автор вопроса: mikl

    Ответ ожидается по этому адресу

    1) Как сделать так, чтоб при попытке удаления определённой папки в программу поступал сигал.
    2) Пишу программу запрашивающую пароль при попытке открыть папку. Как при получении правильного пароля открыть обычную Windows-кую папку

    Автор вопроса: LexSys

    Ответ ожидается по этому адресу

    Как сделать чтото типо видео захвата?
    А именно: У меня есть тюнер к которому подключена миникамера("скрытая").
    Как перехватить видео сигнал и поместить его куданибудь(Пикчер, может контрол какой).
    Но ето не самое главное: мне надо чтобы программа следила за изобр. и кодга ино изменялось происходило мной закодир. действие.
    PC: К примеру камера смотрит в комнату(ниче не двигается) и вдруг появляется какойнить чел, и моя прога реагирует на ияменение и сообщяет мне.
    Ето все для того, чтобы мне не слидить яа монитором, а смотреть только когда чтото происходит...
    Может таймер подключить который сравнивает картинку и если она отличается от прежней, делается что-либо, может как по др...
    Пожалуйста помогитееееее, или хотябы скажите вояможно ли это???
    Если это поможет то тюнет - AverTV Studio

    Автор вопроса: Алексей Кувалин

    Ответ ожидается по этому адресу

    Вот такой вопрос: в текстбоксе есть определенный текст. Так вот что требуется: если первые 6 символов соответсвуют образцу (например If six number = "sobaka" Then) то будет происходить какое-то действие. Как это осуществить?

    Автор вопроса: Анатолий

    Ответ ожидается по этому адресу

    Мой проект (VB6) испольяует DAO 3.50, работал бея проблем (Win 95/98/2000). Появились машины с той же самой операционкой, не открывающие баяу данных при работе ия exe-шника. При работе в среде отладки все отлично. Тогда меняю DAO 3.50 на DAO 3.60. На этих машинах все отлично, но на части тех, где раньше проблем не было (не на всех!) баяа яагружаться перестала. Новую .dll я, естественно, нормально устанавливаю и регистрирую.
    Да, проблема не из легких. Я тоже столкнулся с ней при установке своей программы на другую машину (испольяуя Setup Vizard VB5). Помогло, когда вручную удалил все *.dll драйвера DAO (они оказались, если судить по дате более поздние), затем снова установил Office. Иначе если переустанавливать Office, нерабочие драйвера оставались к сожалению, нетронутыми, т.к. похоже - это особенность Windows, при установке не трогать более свежие драйвера.
    Думаю, проблема тут вояникает изза версий библиотек - на машине должен стоять неконфликтный набор. Теперь делаю установочный комплект дискет на той машине, где яаведомо янаю, что драйвера DAO самые древние. Если начинать устанавливать свою программу на машину с более свежими драйверами (рабочими), то они не затруться, а те, которых не хватает - добавятся. Или делать установочный комплект другими средствами, например InstallShield. При подготовке установочного комплекта, он берет драйвера не из системы Windows, как родной Setup Vizard VB5, а из своего каталога. Возможно я, конечно, ошибаюсь и есть более разумный способ.
    Но факт остается фактом - конфликт библиотек в VB существует. Это ему большой минус.

    Автор вопроса: Vladimir

    Ответ ожидается по этому адресу

    Как на VB6 из буфера обмена извлечь только URL и вставить его в ListBox без кнопок.

    Автор вопроса: Loki

    Ответ ожидается по этому адресу

    Кто может мен расказать как объщаться с ИК портом (USB) с помощью VB!

    Автор вопроса: Dr.Max

    Ответ ожидается по этому адресу

    Только что узнал, что vbnet имеет смысл только для серверных программ.
    Это что ли, писать на нем не серверные проги (типа игр и т.п.) бесполезно???
    Да и вообще как у него со скоростью, в сравнении вб6???7

    Автор вопроса: Lord207

    Ответ ожидается по этому адресу

    Люди, кто-нибудь знает как сделать инсталляшку IE5.5 раямером 4-7м. все 70м таскать неохота изза простого юзания пары файликов типа mshtml.dll да shdocvw.dll. просто заменить их не канает - форты умирают :-)

    Автор вопроса: MC Green

    Ответ ожидается по этому адресу

    Какие есть API-функции для работы с *.ini файлами (если можно, пример кода).

    Ответы:

    Вопрос:

    Помагите с решением проблема такая. Есть функции как copy, cut, paste можно воспользаватся с помащю как Clipboard и как через WinApi

    Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long,_
    LParam As Any) As Long

    Какая разнится между ними разнится и какая из них боле эфектвна.

    Ответ:

    Автор ответа: Tibor

    Ни какой.

    Вопрос:

    Подскажите, плз, как можно перетаскивать объект по форме мышкой (хорошо бы, что-бы было видно контур, как в нормальных приложениях) и как можно соединить два объекта на форме линией (опять же, с помощью крысы).

    Ответ:

    Автор ответа: P@Ssword

    Для удобства кладём поверх контрола лейбл с такими же размерами и BackStyle = Transparent. По событию Маус_Мув пишем:

    If Button = vbLeftButton then
    Контрол.Move Лейбл.Left + X, Лейбл.Top + Y
    End If

    А в Маус_Ап

    Лейбл.Move Контрол.Left, Контрол.Top

    Вопрос:

    Как ияменить цвет фона отдельной кнопки, не меняя при этом основные настройки Windows?

    Ответ:

    Автор ответа: Алексей

    Свойства смотрел?
    В рунтайме так:

    Command1.Background = цвет

    Вопрос:

    Подскажите, плз как преобразовать документ DOC (Word) в RTF. Слышал, что эти функции есть в библиотеках WordPad, но как с ними работать?

    Ответ:

    Автор ответа: Лозовский Антон Борисович

    Попробуй через ole automation загрузить из своей программы текст в ворд, а потом сохрани его в нужном формате.

    Вопрос:

    Как сделать, чтобы программа запускалась как сервис в Win NT/2000/XP (Service NT)? Я смотрю, что на этот вопрос никто не знает ответа.
    Ламеры задают вопросы наподобие "Как засунуть программу в Systray, там где часики", а продвинутые ламеры на них отвечают. Вопрос задаешь чуть посложней, так все кричат в один голос: "это на VB нельзя сделать". Что никто не может толком программировать на VB?
    В общем я частично согласен, что на VB сервисы не пишутся. Но можно использовать ocx, написанные на с/с++ или создать сервис используя API. Может кто-то сталкивался с этим, или есть готовый пример?

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Раз тебе так интересно, а все вокруг ламеры, то сходи на Microsoft.
    Там ооочень даже хорошо написано, как на Бэйсике делать сервисы :-)

    Если ты ленивый, то могу сразу выслать контрол.
    Пиши, если что.

    Ответ:

    Автор ответа: Eugene

    Ну ты обиделся! Я чуть не зарыдал!

    Можно сделать как сервис, но для этого нужна одна .dll библиотечка! У меня где-то была, запустит твое веяние как сервис и в 95 и в ХР, давно я ее на доставал из кобуры - надо поискать. Пиши на личный - обсудим, если больше некому, иль присоединяйся к Сообчанинам.

    Вопрос:

    Мой проект (VB6) использует DAO 3.50, работал без проблем (Win 95/98/2000). Появились машины с той же самой операционкой, не открывающие базу данных при работе из exe-шника. При работе в среде отладки все отлично. Тогда меняю DAO 3.50 на DAO 3.60. На этих машинах все отлично, но на части тех, где раньше проблем не было (не на всех!) база загружаться перестала. Новую .dll я, естественно, нормально устанавливаю и регистрирую.

    Ответ:

    Автор ответа: Yory

    Спасибо за то, что Вы откликнулись на мою просьбу помочь. Речь идет о проблемах DAO 3.50/3.60. Именно в Reference я меняю ссылку на ту или иную библиотеку, и тем не менее на части машин Dao360.dll нормально работать не желает - при первом же обращении возвращает "не могу создать объект".
    Еще раз повторяю, что все библиотеки я нормальным образом инсталлирую и регистрирую.

    Ответ:

    Автор ответа: Лозовский Антон Борисович

    Может быть, там нужно переставить последнюю версию MSDAC.

    Вопрос:

    Мой вопрос связан с API. Заключается он в следующем. Мне нужно помещать в ListBox все запускаемые exe и com приложения в Windows 95. А так же все открываемые папки. И после клика в ListBox переходить к выполнению тои или иной задачи. К примеру у меня открыта папка Windows и работает exe файл Nootpade.exe они помещены в этот ListBox. Первая строка c:\windows вторая c:\windows\nootpade.exe (в ListBox). Пощелчки по 1 строке мы переходим к папке Windows а по второй переходим к nootpade.exe. Вообщем получить что то вроде панели задач (нижняя часть экрана) как Windows.
    Так же нужно поместить обсалютно все работающие процессы в системе во второй ListBox и по щелчку нужно что бы задача снималась. То есть что вроде "Заверщение работы програм" как Windows по нажатию на Alt+Ctrl+Del.
    МОЖЕТ кто нибудь знает где достать такой компонент или пример (только не очень сложный) а ещё лучше OCX.

    Ответ:

    Автор ответа: gav

    Ссылка на чтото подобное - когдато и я это делал... http://v-b.nm.ru/PROJECT5.ZIP

    Вопрос:

    Можно ли в VB вставлять в код программы подпрограммы "на лету"?
    Так это приблизительно выглядит на Паскале:

    if <какое-то условие> then
    ...
    <тело программы>
    ...
    begin
    ...
    <код подпрограммы>
    ...
    end;
    ...
    <тело программы>
    ...

    А как в Visual Basic?

    Ответ:

    Автор ответа: Иван ака Atlanoff

    Не понял, что именно имеется в виду.
    Может имеется в виду конструкция

    If ...условие... Then
    ...делать...
    End if

    Но это не "на лету".

    Если присать на VBA, то можно например загнуть так:

    Sub test()
    Modules.Item("testModule").InsertText ("Public Sub test1()")
    Modules.Item("testModule").InsertText (" msgBox ""Hello World!!!""")
    Modules.Item("testModule").InsertText ("End sub")
    Run "test1"
    End Sub

    В VB6 такого конечно нельзя, зато какой простор для мысли!!!!

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 142.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Очередной выпуск рассылки.
    Читайте!

    Содержание выпуска

    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Узнать точку пересечения срединных перпендикуля...

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на 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

    Дата: 09.03.2003 12:10 | Раздел: Примеры кода | Автор: CyRax

    System Colors - Как узнать системные цвета Windows.

    Дата: 08.03.2003 12:10 | Раздел: Примеры кода | Автор: CyRax

    Image Cloner - Копирование изображений (возможности StretchBlt).

    Дата: 08.03.2003 10:32 | Раздел: Примеры кода | Автор: Щелканов Александр

    RAVEN's CHAT - Простенький чат на VB с использованием Winsock.

    Дата: 07.03.2003 15:28 | Раздел: Примеры кода | Автор: Страшный Сон

    KeyWatch3 - Программа определяет положение мышиного курсора, отслеживает нажатия клавиш клавиатуры и мыши, и, к тому же, является отличным примером с SAFEARRAY 24-bit, AlphaBlend

    Дата: 07.03.2003 12:10 | Раздел: Примеры кода | Автор: CyRax

    Custom ToolTip - Программное создание всплывающей подсказки.

    Дата: 07.03.2003 10:31 | Раздел: ActiveX контролы | Автор: Paul

    ScrollText - Контрол ScrollText - это просто текст с автоматической прокруткой. Разрабатывался без всяких целей, просто для изучения графики в VB6. Есть исходный код. Краткое описание - Readme.txt

    Дата: 06.03.2003 12:10 | Раздел: Примеры кода | Автор: CyRax

    AutoRun Viewer - Просмотр ключей автозагрузки реестра.

    Дата: 06.03.2003 09:58 | Раздел: Примеры кода | Автор: Виталиум!

    Многоканальный Winsock 2 - В этой версии теперь исправлены некоторые ошибки, присущие предыдущей версии, а также добавлены некоторые новые функции.

    Дата: 05.03.2003 12:10 | Раздел: Примеры кода | Автор: CyRax

    PicInDoc - Обновление просмоторщика рисунков в DOC-файлах.

    Дата: 04.03.2003 12:10 | Раздел: Примеры кода | Автор: CyRax

    Age - Dычисление возраста (Лет,Месяцев,Дней).

    Последние 20 тем форума на VBNet.Ru:

    22:08 / 9 мар. vb.net | Хитов: 16 | Ответов: 1
    22:07 / 9 мар. Что заменяет FileListBox и DirListBox? | Хитов: 17 | Ответов: 3
    19:12 / 9 мар. Работа с form ? | Хитов: 26 | Ответов: 2
    15:06 / 9 мар. Проверьте | Хитов: 16 | Ответов: 0
    14:49 / 9 мар. А DirectX? | Хитов: 14 | Ответов: 1
    12:15 / 9 мар. Посоветуйте книгу по VB | Хитов: 25 | Ответов: 3
    11:56 / 9 мар. Новое сообщение без темы | Хитов: 8 | Ответов: 1
    11:46 / 9 мар. Командная строка | Хитов: 16 | Ответов: 3
    09:26 / 9 мар. Как изменить цвет статус-бара ? | Хитов: 14 | Ответов: 2
    08:45 / 9 мар. Чат | Хитов: 14 | Ответов: 0
    06:14 / 9 мар. Экранная заставка | Хитов: 26 | Ответов: 4
    21:53 / 8 мар. инсталяшка | Хитов: 30 | Ответов: 4
    16:56 / 8 мар. TreeView | Хитов: 29 | Ответов: 5
    11:10 / 8 мар. Как сделать так, чтобы окно нельзя было изменит... | Хитов: 39 | Ответов: 6
    11:05 / 8 мар. Как перехватить закрытие программы ? | Хитов: 21 | Ответов: 2
    09:15 / 8 мар. t | Хитов: 12 | Ответов: 0
    04:38 / 8 мар. ActiveX ishe odyn | Хитов: 4 | Ответов: 0
    21:25 / 7 мар. ActiveX...GRRRR | Хитов: 13 | Ответов: 6
    16:35 / 7 мар. Только для девчонок, мальчишки могут смотреть т... | Хитов: 65 | Ответов: 7
    15:03 / 7 мар. Q: большие и маленькие в MS Access | Хитов: 22 | Ответов: 1

    Последние поступления в Библиотеку кодов:

    Новости от VBNet-чиков!:

    наверх

    Новости сайта VBMania

    • 10.03 - Вышел долгожданный третий номер Мании!

    наверх

    Новости сайта Азбука VB

    • 03.03

      VB - Исходные коды - Элементы управления - ToolTipText горизонтальной линейки прокрутки
      Показан пример создания оригинального ToolTipText горизонтальной линейки прокрутки.

      VB - Исходные коды - Вычисления - Пример определения возраста
      В примере используются функции DateDiff, DateSerial....

      VB - Исходные коды - Графика - Пример перерисовки
      В примере используются API-функции GetDC и StretchBlt

      VB - Исходные коды - Графика - Извлечение рисунков из документа Word
      Показан пример извлечения картинок из документа Word. Пример имеет небольшой Help.

      VB - Исходные коды - Графика - Системная палитра Windows 9x

      VB - Исходные коды - Работа с Windows - Работа с Регистрами Windows

      VB - Статьи - Работа с Windows - О работе с LPT-портами и другой аппаратурой в Visual Basic
      Статья расчитана на читателей, знакомых с устройством и работой LPT-порта.

      VB - Исходные коды - Работа с Windows - Работа LPT-порта с другой аппаратурой в Visual Basic
      В примере показывается принцип работы с классом TVicHW32, онисанный в статье "О работе с LPT-портами и другой аппаратурой в Visual Basic"

      VB - Исходные коды - Работа с Windows - Работа с *. ini файлами
      Программа IniFile - это наиболее полное собрание функций Win32API для работы с приватными файлами .ini и файлом Win.ini Все используемые функции разделены на разделы и для них написаны функции-оболочки. Все функции с комментариями.

    наверх

    Новости сайта MSDN

    наверх

    Новости сайта GotdotNet

    Новые статьи:

    • 04.03 - Построение приложений из готовых блоков

    наверх

    Новости сайта dotSite

    Новые статьи:

    Новые примеры:

    наверх

    Где взять декампилятор для VB

    Вопрос:
    Автор вопроса: AQUALITY

    Где взять декампилятор для VB? Очень нужен !!!

    Ответы:

    Автор: Ян
    Я видел декомпилятор для прог, написанных на VB3, а декомпилятор программ на VB4 и выше, вроде не существует:(

    Автор: paul_sn
    СЯ слышал есть что декомпилятор для VB5. Но говорят что почти все существующие декомпиляторы коряво работают. Изначальный код получить практически невозможно

    Автор: AGReSSoRs
    decompiljator estj tolko dla vb3!!! sam ego juzal no frm on ne decompiliruet nomano tolko bas i drugie mono prosmotretj!!

    Автор: Stick
    Нормального Декомпилятора для VB НЕТ и не будет. Хотя если Microsoft включили его в VB.NET То еще Можно понадеется на VB 8.0. Хотя я думаю, что врят(д)ли. А еще где-то есть статья про то что, якобы, декомпилятор из VB.NET можно переделать для VB разных версий... Хотя, опять же, врят(д)ли.
    P/S Только не надо спрашивать "Где Ты ЕЕ(статью) Видел???" - я не помню.

    Автор: JEDI
    ЕСТЬ Универсальный декомпилятор но он декомпилит в код АСМА, а это врдяли те поможет

    Автор: Иван
    Как это переделать декомпилятор VB .NET для других версий???? VB .NET же генерирует не р-код и не машинный код, а JIT код! Это промежеточный код, который компилируется при запуске проги, как в JAVA!!! Это же совсем другой код! Переделать никак нельзя.

    Автор: SeMa
    A decompilyator kagis tolko do VB3 tak kak v vb3 kod i ne compilirovalsa on prosto bil zashit v EXE i eto exe evo translirovalo a decompilyator tolko vityagivaet cod s exehi (vrode) vot takto ...

    Автор: msv
    У меня где-то был декомпилятор для VB6 (в исходниках). Но вот одна проблема - основной язык его - французский (но есть и инглиш)

    Автор: Диман
    Идеальный декомпилятор - Notepad!

    Автор: Страшный Сон
    Notepad - это всё тот же асм.

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: MC Green

    Ответ ожидается по этому адресу

    Какие есть API-функции для работы с *.ini файлами (если можно, пример кода)

    Автор вопроса: CV

    Ответ ожидается по этому адресу

    Как в VB написать драйвер, работающий с LPT портом ?
    И если возможно вставить ассемблерные коды.

    Автор вопроса: 001

    Ответ ожидается по этому адресу

    Как размещать GIF-анимировыанные картинки на форме? Я пробовал Image, PictureBox, но ничего не помогает. Может кто-нибудь знает?

    Автор вопроса: leonxl

    Ответ ожидается по этому адресу

    Есть у кого-нибудь исходники обычного Scroller'а??? Если не в лом, мыльте: leonxl@vpcit.ru

    Автор вопроса: Melkor

    Ответ ожидается по этому адресу

    В процессе работы программы создается текстовый файл событий. Можно ли как-нибудь его зашифровать?

    Автор вопроса: Лёха

    Ответ ожидается по этому адресу

    Может кто знает как изменить значок папки? Простое создание\копирование файла Desktop.ini не помогает.

    Автор вопроса: P@Ssword

    Ответ ожидается по этому адресу

    Пипл, что за оператор такой - LSet?

    Автор вопроса: P@Ssword

    Ответ ожидается по этому адресу

    Как после испольяования CryptHashData получить этот самый хэш, а не его handler?

    Автор вопроса: Леонид И Карлов

    Ответ ожидается по этому адресу

    Приобретал несколько CD с бэйсиком 6, ни один из них не хочет работать на моём компьютере. Инсталяция нормально, а потом сообщение "программа выполнила недопустимую операцию и будет закрыта" это сообщение либо после попытки сохранить пустую форму, либо при помещении на форму кнопки и попытке сохранить (пустую форму и проект некоторые крмпакты сохраняют).
    Не встречалась такая ситуация?
    Как с ней бороться?
    Кстати 5 Бэйсик пашет во всю...

    Ответы:

    Вопрос:

    Вот такой вопрос: в текстбоксе есть определенный текст. Так вот что требуется: если первые 6 символов соответсвуют образцу (например If six number = "sobaka" Then) то будет происходить какое-то действие. Как это осуществить?

    Ответ:

    Автор ответа: Mind Engine

    A language reference полистать влом?

    ok = "sobakadrugcheloveka"

    If ok Like "sobaka*" Then MsgBox "Попадос!"

    Ответ:

    Автор ответа: Роман

    If Right$("переменная",6)="sobaka" then ...

    Ответ:

    Автор ответа: DeDMoRoZ

    Размещаеш на форме TextBox и Кнопку. Для кнопки на событие он_клик пишиш следующие:

    Dim ss, sss As String
    ss = Text1.Text
    sss = Mid(ss, 1, 6)
    if sss = "sobaka" then
    MsgBox sss
    else
    msgbox "Не собака !!!"
    end if

    Ответ:

    Автор ответа: leonxl

    Легко и просто:

    if Left$ (txtTextBox1.text, 6) = "Образец" then ...

    Ответ:

    Автор ответа: Дмитриев Николай

    Все делается ну очень просто!
    Имеется TextBox и некий фрагмент текста там, чтобы получить первые шесть символов из строки пользуемся функцией MID$(строка, начальный символ, конечный символ), на примере это выглядит так:

    Private Sub Command1_Click()

    ' получаем первые шесть символов и сравниваем их с образцом в нижнем
    регистре

    If LCase(Mid$(Me.Text1.Text, 1, 6)) = "sobaka" Then

    ' тут прописываем ссылку на действия или сами действия в случае истины

    MsgBox "Hello!" ' тут выскакивает мессаж ПРИВЕТ (по англицки)

    Else

    ' : прописываем действия при отрицательном результате, или убераем
    оператор Else

    End If

    End Sub

    Ответ:

    Автор ответа: ]CBK[CRaSH

    if MID(str,1,6)="123456" then msgbox "Est"

    Mid(строка,начальный символ,скока символов)=Строка

    Ответ:

    Автор ответа: MaxOn

    Private Sub Text1_Change()
    Static slovo As String
    Static alltxt As String
    slovo = "собака"
    alltxt = Text1.Text
    If Left(alltxt, Len(slovo)) = slovo Then MsgBox "Вы написали" & slovo
    End Sub

    Ответ:

    Автор ответа: Tibor

    if mid(textbox1.text, 1, 6) = "sobaka" then ....

    Вопрос:

    Как на VB6 из буфера обмена извлечь только URL и вставить его в ListBox без кнопок.

    Ответ:

    Автор ответа: ]CBK[CRaSH

    Ты можешь извлечь все данные, а потом найти в старке нужный URL

    Вопрос:

    Кто может мен расказать как объщаться с ИК портом (USB) с помощью VB!

    Ответ:

    Автор ответа: Александр

    Ищу ответ на Ваш вопрос и не только я.
    если вы где то встретите решение дайте знать.
    Но знаю, что IRDA соединение может решаться чачстично через Comport, но под NT кажется не работает
    Слышал, что все работает через Socket, Но как понятия не имею.

    Вопрос:

    Люди, кто-нибудь знает как сделать инсталляшку IE5.5 раямером 4-7м. все 70м таскать неохота изза простого юзания пары файликов типа mshtml.dll да shdocvw.dll. просто заменить их не канает - форты умирают :-)

    Ответ:

    Автор ответа: Tibor

    Foton Basic Compiler - компилятор базика.
    Компилирует макросы написаные на SAX BASIC в exe файлы.
    Размер файла от 3Kb

    Вопрос:

    Какие есть API-функции для работы с *.ini файлами (если можно, пример кода).

    Ответ:

    Автор ответа: DeDMoRoZ

    Вот тебе текст модуля:

    Declare Function GetPrivateProfileString Lib _
    "kernel32" Alias "GetPrivateProfileStringA" _
    (ByVal lpApplicationName As String, ByVal lpKeyName _
    As Any, ByVal lpDefault As String, ByVal lpReturnedString _
    As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

    Declare Function WritePrivateProfileString Lib _
    "kernel32" Alias "WritePrivateProfileStringA" _
    (ByVal lpApplicationName As String, ByVal lpKeyName _
    As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long

    Public Function LoadINI(sInifile As String, sSection As String, _
    sKey As String, sDefault As String) As String
    Dim sTemp As String * 256
    Dim nLength As Integer
    sTemp = Space$(256)
    nLength = GetPrivateProfileString(sSection, _
    sKey, sDefault, sTemp, 255, sInifile)
    LoadINI = Left$(sTemp, nLength)
    End Function

    Public Sub SaveINI(sInifile As String, sSection As String, _
    sKey As String, sValue As String)
    Dim n As Integer
    Dim sTemp As String
    sTemp = sValue
    For n = 1 To Len(sValue)
    If Mid$(sValue, n, 1) = vbCr Or Mid$(sValue, n, 1) = vbLf _
    Then Mid$(sValue, n) = " "
    Next n
    n = WritePrivateProfileString(sSection, sKey, sTemp, sInifile)

    End Sub

    Функция SaveINI отвечает за запись в ИНИ файл параметры соответственно. Путь и имя файла, Секция, Ключ, Значение.
    Функция LoadINI отвечает за чтение из ИНИ файла параметры соответственно. Путь и имя файла, Секция, Ключ, Значение.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 143.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта 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!!!

    Несколько слов от автора:

    Этот выпуск немного задержался по техническим причинам. Только начал его создавать, начал капитально глючить IIS. Запустил "Восстановление системы". Но вместо восстановления оно полностью обрушило систему. Вот они, славные продукты MS... В пятницу пытался поднять Windows цивилизованными методами. Не удалось. А вчера format C:, потом установка и настройка программ, распаковка тонн архивов... Зато несколько гигабайт на диске осовбодилось - покупку нового винта можно на пару недель отложить. Правильно говорят - нет худа без добра.
    Читайте!

    Содержание выпуска

    • Книги

    • Хотите знать, какие файлы скопированы в память?
    • Получение имен всех логических дисков
    • Установить высоту выпадающего окна ComboBox'а к количеству имеющихся строк
    • Определение соответствия имени файла маске
    • Получение длинного и короткого имени файла/директории

    • Вопрос/Ответ

    Книги

    Переход на 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 можно найти здесь.

    наверх

    Хотите знать, какие файлы скопированы в память?

    Добавьте на форму элемент CommandButton и ListBox.
    Вставьте код, запустите. Затем переключитесь в Проводник, выберите несколько файлов, скопируйте их.
    Затем перейдите в вашу программу и нажмите на кнопку.

    Private Const CF_HDROP = 15
    Private Type POINT
    x As Long
    y As Long
    End Type
    Private Type DROPFILES
    pFiles As Long
    pt As POINT
    fNC As Long
    fWide As Long
    End Type
    Private Declare Function GlobalSize Lib "kernel32" (ByVal hMem As Long) As Long
    Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As Long
    Private Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As Long) As Long
    Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function CloseClipboard Lib "user32" () As Long
    Private Declare Function GetClipboardData Lib "user32" (ByVal wFormat As Long) As Long
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

    Private Sub ShowFilesOnClipboard()
    Dim lHandle As Long
    Dim lpResults As Long
    Dim lRet As Long
    Dim df As DROPFILES
    Dim strDest As String
    Dim lBufferSize As Long
    Dim arBuffer() As Byte
    Dim vNames As Variant
    Dim i As Long

    If OpenClipboard(0) Then
    lHandle = GetClipboardData(CF_HDROP)
    ' If you don't find a CF_HDROP, you don't want to process anything
    If lHandle > 0 Then
    lpResults = GlobalLock(lHandle)

    lBufferSize = GlobalSize(lpResults)
    ReDim arBuffer(0 To lBufferSize)

    CopyMemory df, ByVal lpResults, Len(df)
    Call CopyMemory(arBuffer(0), ByVal lpResults + df.pFiles, (lBufferSize - Len(df)))

    If df.fWide = 1 Then
    ' it is wide chars--unicode
    strDest = arBuffer
    Else
    strDest = StrConv(arBuffer, vbUnicode)
    End If
    GlobalUnlock lHandle
    vNames = Split(strDest, vbNullChar)
    i = 0
    While Len(vNames(i)) > 0
    List1.AddItem vNames(i)
    i = i + 1
    Wend
    End If
    End If
    CloseClipboard
    End Sub

    Private Sub Command1_Click()
    List1.Clear
    Call ShowFilesOnClipboard
    End Sub

    наверх

    Получение имен всех логических дисков

    Очередной пример из серии "как определить имена всех дисков в системе". Причина появления этого примера - использование API-функции GetLogicalDriveStrings

    Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long

    Private Function GetDriveStrings() As String
    Dim result As Long ' Result of our api calls
    Dim strDrives As String ' String to pass to api call
    Dim lenStrDrives As Long ' Length of the above string
    result = GetLogicalDriveStrings(0, strDrives)
    strDrives = String(result, 0)
    lenStrDrives = result
    result = GetLogicalDriveStrings(lenStrDrives, strDrives)
    If result = 0 Then
    GetDriveStrings = ""
    Else
    GetDriveStrings = strDrives
    End If
    End Function

    Private Sub Command1_Click()
    Dim strDrives As String
    strDrives = GetDriveStrings()
    If strDrives = "" Then
    MsgBox "No Drives were found!", vbCritical
    Else
    DisplayDriveTypes strDrives
    End If
    End Sub

    Private Sub DisplayDriveTypes(drives As String)
    Dim pos As Long
    Dim drive As String
    List1.Clear
    pos = 1
    Do While Not Mid$(drives, pos, 1) = Chr(0)
    drive = Mid$(drives, pos, 3)
    pos = pos + 4
    List1.AddItem UCase(drive)
    Loop
    End Sub

    наверх

    Установить высоту выпадающего окна ComboBox'а к количеству имеющихся строк

    Запустите проект, нажмите на стрелку элемента ComboBox, затем сделайте клик левой клавишей мыши на любом пустом месте формы, затем снова щелкните на элементе ComboBox...

    Private Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long

    Public Sub ResizeCbo(cbo As ComboBox)
    Counter = cbo.ListCount
    cboLeft = cbo.Left / Screen.TwipsPerPixelX
    cboTop = cbo.Top / Screen.TwipsPerPixelY
    cboWidth = cbo.Width / Screen.TwipsPerPixelX
    cboHeight = cbo.Height / Screen.TwipsPerPixelX * Counter
    MoveWindow cbo.hwnd, cboLeft, cboTop, cboWidth, cboHeight, 1
    End Sub

    Private Sub Form_Click()
    Call ResizeCbo(Combo1)
    End Sub

    Private Sub Form_Load()
    Combo1.AddItem "1"
    Combo1.AddItem "2"
    Combo1.AddItem "3"
    Combo1.AddItem "4"
    Combo1.AddItem "5"
    Combo1.AddItem "6"
    Combo1.AddItem "7"
    Combo1.AddItem "8"
    Combo1.AddItem "9"
    Combo1.AddItem "10"
    Combo1.AddItem "11"
    Combo1.AddItem "12"
    Combo1.AddItem "13"
    Combo1.AddItem "14"
    End Sub

    наверх

    Определение соответствия имени файла маске

    Данный пример позволяет определить, соответствует ли имя файла какой-либо маске. Очень часто вы используете специальные символы (к примеру при поиске файлов) - знак вопроса (?) или звездочку (*). Знак вопроса означает, что в данном месте может быть только один символ, а звездочка означает, что в данном месте может быть любое количество символов. В общем, посмотрите на прилагающийся пример, и вы сразу поймете в чем дело.

    Private Function IsMask(ByVal FileName As String, ByVal Mask As String) As Boolean
    'объявляем переменные
    Dim i As Integer
    Dim pos As Integer
    Dim posit As Integer
    Dim curs As String
    Dim tmp As Integer
    Dim temp As String
    Dim j As Integer
    'Заменяем идущие подряд несколько звёздочек на одну
    pos = 1
    posit = InStr(pos, Mask, "**")
    Do While posit <> 0
    temp = Left$(Mask, posit - 1)
    temp = temp & Mid$(Mask, posit, 1)
    temp = temp & Right$(Mask, Len(Mask) - (posit + 1))
    Mask = temp
    posit = InStr(pos, Mask, "**")
    Loop
    'Заменяем *? на *
    pos = 1
    posit = InStr(pos, Mask, "*?")
    Do While posit <> 0
    temp = Left$(Mask, posit - 1)
    temp = temp & Mid$(Mask, posit, 1)
    temp = temp & Right$(Mask, Len(Mask) - (posit + 1))
    Mask = temp
    posit = InStr(pos, Mask, "*?")
    Loop
    'Перебираем все символы в Mask
    For pos = 1 To Len(Mask)
    curs = Mid$(Mask, pos, 1)
    Select Case curs
    'если символ "?", то это любой знак
    Case "?"
    j = j + 1
    i = i + 1
    'если символ "*", то
    Case "*"
    If pos = Len(Mask) Then
    'Если это последний символ, отпускаем с богом
    i = i + (Len(FileName) - j)
    'А если нет, то ищем символв FileName,
    'стоящий в Mask за звездой
    Else
    tmp = InStr(pos, FileName, Mid$(Mask, pos + 1, 1))
    'Если символ не найден, то
    If tmp = 0 Then
    'Значение функции = False
    IsMask = False
    'Выходим из функции
    Exit Function
    End If
    'i = i + кол-во непроверенных символов
    i = i + (tmp - (j + 1))
    'то же самое с j
    j = j + (tmp - (j + 1))
    End If
    'если символ не "*" и не "?", то
    Case Else
    j = j + 1
    'если символ в FileName совпадает с символом
    'в Mask, то
    If Mid$(FileName, j, 1) = Mid$(Mask, pos, 1) Then
    'Увеличиваем счётчик попаданий
    i = i + 1
    End If
    End Select
    'завершаем цикл
    Next
    'Если i соответствует длине FileName, то
    'значение функции True, иначе False
    If i = Len(FileName) Then IsMask = True Else IsMask = False
    End Function

    Private Sub Form_Load()
    MsgBox IsMask("ritual.txt", "*.*"), , "ritual.txt" & " *.*"
    MsgBox IsMask("ritual.txt", "r*.*"), , "ritual.txt" & " r*.*"
    MsgBox IsMask("ritual.txt", "m*.*"), , "ritual.txt" & " m*.*"
    MsgBox IsMask("ritual.txt", "?i????.*"), , "ritual.txt" & " ?i????.*"
    MsgBox IsMask("ritual.txt", "*u??.*"), , "ritual.txt" & " *u??.*"
    MsgBox IsMask("ritual.txt", "*.htm"), , "ritual.txt" & " *.htm"
    MsgBox IsMask("ritual.txt", "*.txt"), , "ritual.txt" & " *.txt"
    End
    End Sub

    наверх

    Получение длинного и короткого имени файла/директории

    Данный вопрос очень часто звучит на многих форумах: "Как мне получить короткое имя файла" или "Как мне получить длинное имя файла, зная короткое". Далее следует ответ на эти вопросы.

    P.S. Надеюсь, мне не надо объяснять что такое "длинное"/"короткое" имя файла. :))

    Private Const MAX_PATH& = 260
    Private Const INVALID_HANDLE_VALUE = -1

    Private Type FILETIME
    dwLowDateTime As Long
    dwHighDateTime As Long
    End Type
    Private Type WIN32_FIND_DATA
    dwFileAttributes As Long
    ftCreationTime As FILETIME
    ftLastAccessTime As FILETIME
    ftLastWriteTime As FILETIME
    nFileSizeHigh As Long
    nFileSizeLow As Long
    dwReservedЇ As Long
    dwReserved1 As Long
    cFileName As String * MAX_PATH
    cAlternate As String * 14
    End Type
    Private Declare Function apiFindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
    Private Declare Function apiFindClose Lib "kernel32" Alias "FindClose" (ByVal hFindFile As Long) As Long
    Private Declare Function apiGetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long

    Function fGetShortName(ByVal stLongPath As String) As String
    Dim stShortPath As String
    Dim lngBuffer As Long, lngRet As Long
    stShortPath = String$(MAX_PATH, 0)
    lngBuffer = Len(stShortPath)
    lngRet = apiGetShortPathName(stLongPath, stShortPath, lngBuffer)
    fGetShortName = Left(stShortPath, lngRet)
    End Function

    Function fGetLongName(ByVal strFilename As String) As String
    Dim lpFindFileData As WIN32_FIND_DATA
    Dim strPath As String, lngRet As Long
    Dim strFile As String, lngx As Long, lngY As Long
    Dim strTmp As String
    strTmp = ""
    Do While Not lngRet = INVALID_HANDLE_VALUE
    lngRet = apiFindFirstFile(strFilename, lpFindFileData)
    strFile = Left$(lpFindFileData.cFileName, InStr(lpFindFileData.cFileName, vbNullChar) - 1)
    If Len(strFilename) > 2 Then
    strTmp = strFile & "\" & strTmp
    strFilename = fParseDir(strFilename)
    Else
    strTmp = strFilename & "\" & strTmp
    Exit Do
    End If
    Loop
    fGetLongName = Left$(strTmp, Len(strTmp) - 1)
    lngY = apiFindClose(lngRet)
    End Function

    Private Function fParseDir(strInFile As String) As String
    Dim intLen As Long, boolFound As Boolean
    Dim i As Integer, F As String, strDir As String
    intLen = Len(strInFile)
    If intLen > 0 Then
    boolFound = False
    For i = intLen To 1 Step -1
    If Mid$(strInFile, i, 1) = "\" Then
    F = Mid$(strInFile, i + 1)
    strDir = Left$(strInFile, i - 1)
    boolFound = True
    Exit For
    End If
    Next i
    End If
    If boolFound Then
    fParseDir = strDir
    Else
    fParseDir = strInFile
    End If
    End Function

    Private Sub Command1_Click()
    Dim fShort
    fShort = fGetShortName("C:\Program Files")
    MsgBox fShort
    fShort = fGetLongName(fShort)
    MsgBox fShort
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Memphis

    Ответ ожидается по этому адресу

    Имеется: форма, распахнутая на весь экран, на форме - PictureBox (или Image - сейчас это не суть важно), в PictureBox загружается картинка. Суть проблемы: необходимо, чтобы картинка масштабировалась под размеры экрана (а так как форма распахнута на весь экран - следовательно, под размеры формы).
    Пример масштабирования картинки из выпуска 141 рассылки не помог.

    Автор вопроса: 001

    Ответ ожидается по этому адресу

    Объясните, пожалуйста, как с помощью MMControl проиграть MP3 файл.
    Я пробовал его переделать ия примера, который играет WAV файлы, там есть такое свойство DeviceType, яначение которого "WaveAudio". Какое значение этого свойства должно быть для MP3?
    Вояможно, в этом моя проблема? Поделитесь кодом, кто может.

    Автор вопроса: Alexandr

    Ответ ожидается по этому адресу

    На форме имется несколько кнопок. Каждая запускает определенную программу. После отработки программы ожидается нажатие другой кнопки. При этом все данные от предыдущей работы утрачиваются. Как сделать результаты работы (переменные) доступными программам, связанным с другими кнопками?

    Автор вопроса: Alex

    Ответ ожидается по этому адресу

    Вопрос элементарный: как сохранить ияображение в формате JPG, GIF. Метод SavePicture сохраняет только в BMP ???

    Автор вопроса: Vadim

    Ответ ожидается по этому адресу

    Как синхронияировать бд ACCESS 97/2000 ?
    Делал с помощью DAO:

    Sub InternetSynchronizeX()

    Dim dbsTemp As Database

    Set dbsTemp = OpenDatabase("C:\veda_dog\dbProf.mdb")

    ' Synchronize the local database with the replica on
    ' the Internet server.
    dbsTemp.Synchronize _
    "http://vad.chat.ru/dbProf.mdb", _
    dbRepImpExpChanges + dbRepSyncInternet

    dbsTemp.Close

    End Sub

    выдает ошибку :"Неправельный HTTP адрес"

    Автор вопроса: Vadim

    Ответ ожидается по этому адресу

    Как показать список всех процессов как это делает win2000.

    Автор вопроса: Корик

    Ответ ожидается по этому адресу

    1. Есть ли в ВБ константа содержащая число ПИ?
    2. Как узнать какая папка на компе обозначена под "My Documents", какая под "Desktop"?
    3. Как вообще можно обратиться к системным переменным типа %Temp%?

    Автор вопроса: Eugene

    Ответ ожидается по этому адресу

    Как сохранить OLE объект в базе данных MS ACCESS и как затем его обратно вычитать и поместить в контрол OLE?

    Автор вопроса: Maxim

    Ответ ожидается по этому адресу

    Хочу узнать как извлеч корень n-ой степени из числа???

    Автор вопроса: 001

    Ответ ожидается по этому адресу

    Вопрос мой уже был яадан(про подпрограммы "на лету"), но ия-яа нехватки времени я не смог нормально объяснить, что от вас хочу, да и выраяился коряво, что первое в голову пришло. Я имел ввиду следующее: моя проблема в том, что в моей проге при каком-то условии она должна выполнять несколько операторов, я пробовал это реалияовать так:

    if условие1 then
    делать1
    делать2
    if условие2 then
    делать 3
    делать 4

    НО при выполнении условия1, если оно истинно, то выполняется делать1, в противном случае делать1 не выполняется, а делать 2 выполняется в любом случае то же самое и с условием2: делать3 яависит от условия2, а делать4 выполняется всегда. Можно, конечно было так:

    (General)|(Declarations)
    -------------------------------
    Private Sub подпрограмма1()
    делать1
    делать2
    End Sub
    -------------------------------
    Private sub подпрограмма2()
    делать3
    делать4
    End Sub

    (Button1)|(Click)
    --------------------------------
    Private Sub Button1_Click()
    if условие1 then подпрограмма1
    if условие2 then подпрограмма2
    End Sub

    Но мне не надо описывать подпрограммы в модулях или еще где,
    можно ли какими-нибудь операторами в VB объединить делать1
    и делать2, а также делать3 и делать4 в группы, не описывая их
    в (General)|(Declarations) или в модулях?

    Сравните примеры на Паскале:

    var a,b:integer;
    begin
    randomize;
    a:=random(10);
    b:=4
    if a=3 then
    begin {1}
    a:=a+b;
    b:=3; {2}
    end;
    end.
    ---------------------------------
    var a,b:integer;
    procedure sub1
    a:=a+b;
    b:=3;
    end;
    begin
    randomize;
    a:=random(10);
    b:=4;
    if a=3 then sub1;
    end.

    В первом примере операторы {1} и {2} - аналоги тех
    операторов, которые мне нужны для объединения
    их в подпрограмму. Но это на Паскале, а как это
    сделать на Visual Basic?

    Искренне благодарен яа любую информацию.

    Автор вопроса: goodroman

    Ответ ожидается по этому адресу

    Привет, у меня вот такие вопросы от которых я вообще не в понятках:

    1) как VB вообще вяаимодействует с Инетом (всяческими портами)?
    2) для этого есть какие-то функции, методы или ещё что?
    3) мне где-то в ухо залетело, что с помощью какой-то MAPI, правильно залетело или нет?
    4) если в ухо правильно залетело, то где надыбать инфу по этому MAPI?
    5) и вообще чё такое этот MAPI? Это набор функций, типа API, но для взаимодействия с Инетом?
    6) стоит ли вообще использовать VB для работы с инетом? Или стоит выбрать чё-нить другое?

    Ответы:

    Вопрос:

    Можно ли в VB вставлять в код программы подпрограммы "на лету"?
    Так это приблизительно выглядит на Паскале:

    if <какое-то условие> then
    ...
    <тело программы>
    ...
    begin
    ...
    <код подпрограммы>
    ...
    end;
    ...
    <тело программы>
    ...

    А как в Visual Basic?

    Ответ:

    Автор ответа: as

    Компонент Microsoft Script Control X.X и ...

    Private Sub Form_Load()
    Dim strCode As String
    strCode = "Sub NameMe() MsgBox ""Hello World"" End Sub"
    ScriptControl1.AddCode strCode
    ScriptControl1.Run "NameMe"
    End Sub

    Вопрос:

    1) Как сделать так, чтоб при попытке удаления определённой папки в программу поступал сигал.
    2) Пишу программу запрашивающую пароль при попытке открыть папку. Как при получении правильного пароля открыть обычную Windows-кую папку

    Ответ:

    Автор ответа: Sergey

    1)Проще узнать что с папкой или файлом произошли изменения - с помощью WinAPI - FindFirstChangeNotification. А чтобы перехватить попытку удаления - нужно перехватывать вызовы системных ф-ций таких как DeleteFile, то есть писать свои библиотеки типа kernel32.dll и т.д.
    2)Просто вызвать: Shell "explorer.exe " & sFolderPathToDisplay

    Вопрос:

    Вот такой вопрос: в текстбоксе есть определенный текст. Так вот что требуется: если первые 6 символов соответсвуют образцу (например If six number = "sobaka" Then) то будет происходить какое-то действие. Как это осуществить?

    Ответ:

    Автор ответа: VMJ

    Private Sub Txt_Change()
    if instr(ucase(Txt.text),"ABCDE")=1 then
    'То что нужно сделать
    end if
    End Sub

    Вопрос:

    Какие есть API-функции для работы с *.ini файлами (если можно, пример кода)

    Ответ:

    Автор ответа: Memphis

    Для работы с *.ini файлами существуют следующие функции:

    Private Declare Function OSWritePrivateProfileString _
    Lib "kernel32" Alias "WritePrivateProfileStringA" ( _
    ByVal lpApplicationName As String, _
    ByVal lpKeyName As Any, _
    ByVal lpString As Any, _
    ByVal lpFileName As String _
    ) As Long

    Private Declare Function OSGetPrivateProfileString _
    Lib "kernel32" _
    Alias "GetPrivateProfileStringA" ( _
    ByVal lpApplicationName As String, _
    ByVal lpKeyName As Any, _
    ByVal lpDefault As String, _
    ByVal lpReturnedString As String, _
    ByVal nSize As Long, _
    ByVal lpFileName As String _
    ) As Long

    А вот как их можно использовать (код придумал не я, я его только доработал - добавил запись в *.ini файлы). Кстати, код проверенный и на 100% рабочий (я его смастерил в виде модуля INIReaderWriter.bas и использую в трёх проектах):

    Option Explicit

    Private Declare Function OSWritePrivateProfileString _
    Lib "kernel32" Alias "WritePrivateProfileStringA" ( _
    ByVal lpApplicationName As String, _
    ByVal lpKeyName As Any, _
    ByVal lpString As Any, _
    ByVal lpFileName As String _
    ) As Long

    Private Declare Function OSGetPrivateProfileString _
    Lib "kernel32" _
    Alias "GetPrivateProfileStringA" ( _
    ByVal lpApplicationName As String, _
    ByVal lpKeyName As Any, _
    ByVal lpDefault As String, _
    ByVal lpReturnedString As String, _
    ByVal nSize As Long, _
    ByVal lpFileName As String _
    ) As Long

    Private Const nBUFSIZEINI = 1024
    Private Const nBUFSIZEINIALL = 4096

    Public Function GetPrivateProfileString(ByVal szSection As String, _
    ByVal szEntry As Variant, _
    ByVal szDefault As String, _
    ByVal szFileName As String) As String

    ' szSection - это секция, например [setup]
    ' szEntry - это вхождение, например в секции [setup] есть вхождение File=C:\111.exe, так вот File и будет значением szEntry
    ' szDefault - это значение, возвращаемое по умолчанию
    ' szFileName - это путь и имя к INI файлу

    Dim szTmp As String
    Dim nRet As Long

    If (IsNull(szEntry)) Then
    szTmp = String$(nBUFSIZEINIALL, 0)
    nRet = OSGetPrivateProfileString(szSection, _
    0&, _
    szDefault, _
    szTmp, _
    nBUFSIZEINIALL, _
    szFileName)
    Else
    szTmp = String$(nBUFSIZEINI, 0)
    nRet = OSGetPrivateProfileString(szSection, _
    CStr(szEntry), _
    szDefault, _
    szTmp, _
    nBUFSIZEINI, _
    szFileName)
    End If
    GetPrivateProfileString = Left$(szTmp, nRet)
    End Function

    Public Sub WritePrivateProfileString(ByVal szSection As String, _
    ByVal szEntry As Variant, _
    ByVal szString As String, _
    ByVal szFileName As String)

    ' szSection - это секция, например [setup]
    ' szEntry - это вхождение, например в секции [setup] есть вхождение File=C:\111.exe, так вот File и будет значением szEntry
    ' szString - это строка, которая запишется в указанное вхождение (см. выше - это будет 111.exe)
    ' szFileName - это путь и имя к INI файлу

    Dim szTmp As String
    Dim nRet As Long

    If (IsNull(szEntry)) Then
    szTmp = String$(nBUFSIZEINIALL, 0)
    nRet = OSWritePrivateProfileString(szSection, _
    0&, _
    szString, _
    szFileName)
    Else
    szTmp = String$(nBUFSIZEINI, 0)
    nRet = OSWritePrivateProfileString(szSection, _
    CStr(szEntry), _
    szString, _
    szFileName)
    End If
    End Sub

    Вопрос:

    Как размещать GIF-анимировыанные картинки на форме? Я пробовал Image, PictureBox, но ничего не помогает. Может кто-нибудь знает?

    Ответ:

    Автор ответа: vmv

    просто и сердито получается с помощью DSMAniGifControl (56к)

    Ответ:

    Автор ответа: Tibor

    Не совсем уверен что это именно то что тебе надо но советую попробовать Microsoft Internet Control

    Вопрос:

    Приобретал несколько CD с бэйсиком 6, ни один из них не хочет работать на моём компьютере. Инсталяция нормально, а потом сообщение "программа выполнила недопустимую операцию и будет закрыта" это сообщение либо после попытки сохранить пустую форму, либо при помещении на форму кнопки и попытке сохранить (пустую форму и проект некоторые крмпакты сохраняют).
    Не встречалась такая ситуация?
    Как с ней бороться?
    Кстати 5 Бэйсик пашет во всю...

    Ответ:

    Автор ответа: Bob

    Сталкивался с подобной ситуацией, после неудачных попыток победить заново поставил OS и там уже без проблем встаёт VStudio и нормально работает. Меня угнетает то что в XP работая в оболочке VB я не могу вызвать MSDN хотя установка проходит нормально т.е. после установки VStudio запрашивается CD1 с MSDN и далее остальные диски.
    Если узнаешь как победить напиши.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 144.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Очередной выпуск рассылки.
    Читайте!

    Содержание выпуска

    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Какой использовать Grid?

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на 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

    Дата: 16.03.2003 07:26 | Раздел: Статьи по VB | Автор: Ларин Александр

    Защита Защиты - Статью на тему защиты хотелось написать уже давно. Стремление это подкреплялось ещё и тем, что эта тема начинает набирать популярность (уже две статьи, затрагивающие данную тематику, представлены для конкурса). Действительно, в современном мире термин “безопасность” приобретает всё более весомую значимость. Но он идёт вкупе с такими вещами как криптография, значение которой столь же немаловажно...

    Дата: 16.03.2003 04:32 | Раздел: Примеры кода | Автор: EROS

    Picture in Access - Пример показывает, как поместить изображение в БД Access.

    Дата: 16.03.2003 04:27 | Раздел: Примеры кода | Автор: Половый Александр

    Пример Combo - Пример показывает, как в списке (combo, list) быстро перебрать все фамилии начинающиеся с одинаковой буквы, нажимая для этого вышеуказанную букву.

    Дата: 11.03.2003 10:56 | Раздел: ActiveX контролы | Автор: Paul

    ScrollText - Контрол ScrollText - это просто текст с автоматической прокруткой. Разрабатывался без всяких целей, просто для изучения графики в VB6. Есть исходный код. Краткое описание - Readme.txt

    Дата: 09.03.2003 12:10 | Раздел: Примеры кода | Автор: CyRax

    System Colors - Как узнать системные цвета Windows.

    Последние 20 тем форума на VBNet.Ru:

    08:01 / 16 мар. Открытие новй страницы в IE | Хитов: 1 | Ответов: 0
    23:29 / 15 мар. Вопрос не по VB | Хитов: 13 | Ответов: 2
    19:57 / 15 мар. Импорт/экспорт в Listbox | Хитов: 13 | Ответов: 2
    19:49 / 15 мар. Нужны исходники, какой-нибудь сетевой игры. | Хитов: 6 | Ответов: 0
    19:22 / 15 мар. Работа с ODBC - как декларировать? | Хитов: 2 | Ответов: 0
    12:29 / 15 мар. Срочно нужна инфошка (на русском) о XOR | Хитов: 24 | Ответов: 7
    09:23 / 15 мар. Работа с модемом | Хитов: 14 | Ответов: 1
    02:01 / 15 мар. Сложный вопрос (для посетителей форума, но не д... | Хитов: 39 | Ответов: 2
    23:50 / 14 мар. Chat | Хитов: 21 | Ответов: 0
    23:01 / 14 мар. Как отличить виртуалку от cd-rom. | Хитов: 39 | Ответов: 5
    21:22 / 14 мар. job | Хитов: 24 | Ответов: 0
    19:31 / 14 мар. вопрос о цвете label | Хитов: 42 | Ответов: 9
    19:31 / 14 мар. Учусь по книге... | Хитов: 19 | Ответов: 0
    19:31 / 14 мар. Учусь по книге... | Хитов: 3 | Ответов: 0
    17:24 / 14 мар. Распространение игрулек/прог??? | Хитов: 33 | Ответов: 5
    15:54 / 14 мар. Crack PowerBasic | Хитов: 46 | Ответов: 5
    13:59 / 14 мар. Skin технология | Хитов: 40 | Ответов: 5
    13:39 / 14 мар. Вопрос по вин сокет! | Хитов: 20 | Ответов: 2
    11:27 / 14 мар. открыть в новом окне заданного размера... | Хитов: 14 | Ответов: 0
    10:13 / 14 мар. Дельная программа - для умных | Хитов: 55 | Ответов: 2

    Последние поступления в Библиотеку кодов:

    CommonDialog: Просмотр списка директори... (36)
    ListBox: Проверка дубликатности элемент... (19)
    Получение анимированного курсора (24)
    Глобальное изменение размеров формы/кон... (26)

    Новости от VBNet-чиков!:

    22:31 / 3 мар. Иван сообщает: Новый конкурс статей на сайте VBNet.RU, участвуйте! Главный приз - подписка на журнал Hard'n'Soft! Статьи принимаются до 1 апреля.

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Новости сайта MSDN

    наверх

    Новости сайта GotdotNet

    Новые статьи:

    • 13.03 - Visual Basic .NET приходит на мобильные устройства
    • 11.03 - Рекомендации по созданию адаптируемых пользовательских интерфейсов с помощью Mobile Internet Toolkit

    наверх

    Новости сайта dotSite

    Новые статьи:

    Новые примеры:

    наверх

    Какой использовать Grid?

    Вопрос:
    Автор вопроса: Raptor

    ГЯ новичок в VB. Понадобилось использовать Grid. Просто прямоугольную табличку с числами в ячейках. Какой для этого контрол использовать, но такой, что бы он был на любом компе с виндами и не надо было тащить за собой ActiveX. Помогите, пожалуйста.

    Ответы:

    Автор: Piterskoy
    Используй стандартный DataGrid если нужно вводить кокуюто инфорацыю, а если не нужно можно использовать FlexGrid

    Автор: EROS
    В VB встроенного GRIDа нет! В любом случае тебе придется тащить ActiveX за собой. Вопрос лишь в том какой? DBGrid или MSFlexGrid- это уже дело вкуса...

    Автор: Raptor
    Мне нужен простой грид в ячейки которого я мог бы поместить строчки или числа и потом считать их оттуда. Причем возможность ручного редактирования не обязательна. Я пробовал FlexGrid, но не нашел как там записывать информацию в ячейки.

    Автор: EROS
    Тогда старый добрый DBGrid самый простой вариант ! Хотя постой, он удобен для работы с базой данных... Если же тебе надо просто загонять информацию (не из DB) то лучше будет FlexGrid...

    Автор: EROS
    А работать с FlexGrid очень просто... Как один из вариантов...
    FlexGrid1.TextMatrix(2,4)="Hello World" где-
    2-rowindex(номер строки), а 4-colindex(номер столбца)

    Автор: Raptor
    Большой Thanx!
    Это именно то, что мне надо было
    Но еще вопрос. Как изменить высоту строк и ширину солбцов в FlexGrid?

    Автор: CyRax
    Я тоже не очень большой любитель всяких OCX-ов.
    Если всё таки решишь рисовать таблицу сам, то посмотри как это релизовано в моём примере AutoRun Viewer

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Андрей

    Ответ ожидается по этому адресу

    Программа работает с dbf-файлами, а при выполнении строки

    Data1.Recordset.Delete

    запись из таблицы помечается на удаление, а физически не удаляется. Есть ли какой-нибудь аналог команды PACK из Foxpro?!

    Автор вопроса: MC Green

    Ответ ожидается по этому адресу

    Кто может подсказать, как извлекать иконки из exe'шников и dll'ок (как, например, в IconToy)?

    Автор вопроса: Maxim

    Ответ ожидается по этому адресу

    А где можно почитать про DHTML Project????

    Автор вопроса: Володя

    Ответ ожидается по этому адресу

    Можно ли написять программу на VisuaL Basicе каторая бы черея определёное время самоуничтожилась?

    Автор вопроса: Костя

    Ответ ожидается по этому адресу

    Мне надо построить диаграмму в Excel из VB данные находяться в массиве! Если подскажешь где можно скачать инфу я буду благодарен.

    Автор вопроса: Vadim

    Ответ ожидается по этому адресу

    Как узнать IP нужного сайта.

    Автор вопроса: Сергей Перехода

    Ответ ожидается по этому адресу

    Я хотел задать вопрос- Window Me может перезагружаться через командную строку? если да, то подскажите полуйста код в Бэйсике.

    Автор вопроса: vovan

    Ответ ожидается по этому адресу

    Скажитес чем лучше работатьв БД:
    ADOX? ADO? и т. д.

    Автор вопроса: Вячеслав

    Ответ ожидается по этому адресу

    Много раз читал про DSMAniGifControl. Где его можно взять?

    Ответы:

    Вопрос:

    1) Как сделать так, чтоб при попытке удаления определённой папки в программу поступал сигал.
    2) Пишу программу запрашивающую пароль при попытке открыть папку. Как при получении правильного пароля открыть обычную Windows-кую папку

    Ответ:

    Автор ответа: as

    B nt лучше использовать ReadDirectoryChanges - отслеживает все события в заданной папке (а также в "подпапках" да еще сразу определяет путь) Подробности в MSDN

    Вопрос:

    Может кто знает как изменить значок папки? Простое создание\копирование файла Desktop.ini не помогает.

    Ответ:

    Автор ответа: P@Ssword

    Я и сам долго мучался. Вся фишка в том, что у папки должен стоять атрибут "Системная"

    Вопрос:

    Имеется: форма, распахнутая на весь экран, на форме - PictureBox (или Image - сейчас это не суть важно), в PictureBox загружается картинка. Суть проблемы: необходимо, чтобы картинка масштабировалась под размеры экрана (а так как форма распахнута на весь экран - следовательно, под размеры формы).
    Пример масштабирования картинки из выпуска 141 рассылки не помог.

    Ответ:

    Автор ответа: vmv

    К большому сожалению не помню откуда у меня этот пример растяжки рисунка на форме

    Option Explicit
    Private Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
    Private Declare Function CreatePatternBrush Lib "gdi32" (ByVal hBitmap As Long) As Long
    Private Declare Function FillRect Lib "user32" (ByVal hdc As Long, lpRect As RECT, ByVal hBrush As Long) As Long
    Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
    End Type
    Dim lngBrush As Long, rctMain As RECT

    Private Sub Form_Load()
    lngBrush = CreatePatternBrush(LoadPicture(App.Path & "\bgstars.jpg"))' bgstars.jpg - имя вашего рисунка
    Me.AutoRedraw = True
    End Sub

    Private Sub Form_Resize()
    GetClientRect hwnd, rctMain
    FillRect hdc, rctMain, lngBrush
    End Sub

    Ответ:

    Автор ответа: xirix

    Можно реализовать следующими способами:

    1. Кладёшь на форму компонент Image. Свойство Stretch выставляешь в True. Грузишь в Image нужную картинку. В процедуре Form_Resize пишешь:

    Image1.Move 0, 0, Me.ScaleWidth, Me.ScaleHeight

    2. Кладёшь на форму компонент PictureBox со свойством Visible = False. Грузишь картинку. В процедуре Form_Resize пишешь:

    Me.PaintPicture Picture1.Picture, 0, 0, ScaleWidth, ScaleHeight, 0, 0, Picture1.Width, Picture1.Height

    или (объявив АПИ-функцию StretchBlt)

    Call StretchBlt(Me.hdc, 0, 0, ScaleWidth, ScaleHeight, Picture1.hdc, 0, 0, Picture1.Width, Picture1.Height, vbSrcCopy)

    Ответ:

    Автор ответа: goodroman

    Если я тебя правильно понял, то у ImageBox'а есть свойство Stretch. Установи его в True и картинка будет сама подгоняться под размеры ImageBox'а.

    Вопрос:

    На форме имется несколько кнопок. Каждая запускает определенную программу. После отработки программы ожидается нажатие другой кнопки. При этом все данные от предыдущей работы утрачиваются. Как сделать результаты работы (переменные) доступными программам, связанным с другими кнопками?

    Ответ:

    Автор ответа: vmv

    Помести переменные в модуль - они станут "видимы" для всего твоего проекта.

    P.S. полезно начинать "творение" с освоения какой нибудь библии по VB

    Ответ:

    Автор ответа: Habibullin@vkab.ru

    Возможно Твоя проблема в следующем: переменные, используемые различными модулями программы, объявляются внутри Private, а их нужно объявить доступными всем событиям OnClick, происходящими при нажатии на кнопку (если все они находятся в одном модуле, то используется Dim, если же в различных, то Public), например:

    Dim i as integer
    Dim mystr as string
    ...
    ...
    ...
    ---------------------------------------------
    Private Sub Command1_Click
    ....
    ....
    End Sub

    Private Sub Command2_Click
    ....
    ....
    End Sub

    Ответ:

    Автор ответа: goodroman

    А ты не закрываю, ту форму, которую закрываешь, а просто прячь. Вот так:

    Form.Hide

    Тогда и все переменные сохраняться, а после завершения работы форму надо выгрузить, вот так:

    UnLoad Formname

    Чтобы обратиться к переменным другой формы, делай так:

    formname.ValueName=...

    , где ValueName имя переменной.

    Вопрос:

    Как синхронияировать бд ACCESS 97/2000 ?
    Делал с помощью DAO:

    Sub InternetSynchronizeX()

    Dim dbsTemp As Database

    Set dbsTemp = OpenDatabase("C:\veda_dog\dbProf.mdb")

    ' Synchronize the local database with the replica on
    ' the Internet server.
    dbsTemp.Synchronize _
    "http://vad.chat.ru/dbProf.mdb", _
    dbRepImpExpChanges + dbRepSyncInternet

    dbsTemp.Close

    End Sub

    выдает ошибку :"Неправельный HTTP адрес"

    Ответ:

    Автор ответа: xirix

    Может попробовать или

    Вопрос:

    1. Есть ли в ВБ константа содержащая число ПИ?
    2. Как узнать какая папка на компе обозначена под "My Documents", какая под "Desktop"?
    3. Как вообще можно обратиться к системным переменным типа %Temp%?

    Ответ:

    Автор ответа: xirix

    1. В вб нету. Самому трудно объявить?
    3. Environ("Temp")?

    Ответ:

    Автор ответа: afb

    1. Нет.
    Const PI = 3.1415927

    2.
    Private Enum SpecialFolderIDs
    sfidDESKTOP = &H0 'рабочий стол
    sfidCOMMON_DESKTOPDIRECTORY = &H19
    sfidPERSONAL = &H5 'мои доки
    End Enum

    Private Declare Function SHGetSpecialFolderLocation Lib "shell32" (ByVal hwndOwner As Long, ByVal nFolder As SpecialFolderIDs, ByRef pIdl As Long) As Long
    Private Declare Function SHGetPathFromIDListA Lib "shell32" (ByVal pIdl As Long, ByVal pszPath As String) As Long
    Const NOERROR = 0
    Dim sPath As String
    Dim IDL As Long
    Dim strPath As String
    Dim lngPos As Long

    Private Function GetSpecFolder(speFolder As SpecialFolderIDs)
    If SHGetSpecialFolderLocation(0, speFolder, IDL) = NOERROR Then
    sPath = String$(255, 0)
    SHGetPathFromIDListA IDL, sPath
    lngPos = InStr(sPath, Chr(0))
    If lngPos > 0 Then
    GetSpecFolder = Left$(sPath, lngPos - 1)
    End If
    End If
    End Function

    Private Sub Command1_Click()
    Print GetSpecFolder(sfidDESKTOP)
    Print GetSpecFolder(sfidCOMMON_DESKTOPDIRECTORY)
    Print GetSpecFolder(sfidPERSONAL)
    End Sub

    3. Очень просто через функцию Environ.
    windir = Environ ("windir") 'директория windows
    tempdir = Environ ("TMP") 'директория временных файлов TEMP

    Вопрос:

    Хочу узнать как извлеч корень n-ой степени из числа???

    Ответ:

    Автор ответа: vmv

    корень N-ной степени - это степень 1/N числа !!!

    Для бестолковых:

    12^3 = 1728 - 12 в степени 3
    1728^(1/3) = 12 - корень куб. числа 1728

    Ответ:

    Автор ответа: ccc

    (1) Вобщем есть такая замечательная вещь как ряд Тейлора можно найти любую функцыю с любой точностью используя лиш имножение и сложение (после соответствующей подготовки).

    (2) Ну это так на буддущее а тебе надо лиш надо возвести в степень 1/n но этот способ занимает больше машинного времени так как вычисляется машиной через логорифм который всё равно сводится к ряду Тейлора на вычисление которог требуется времени больше чем в первом случае.
    Вывод: Первый случай работает быстрее но кода больше и умственных затрат тоже.
    Второй работает дольше но кода меньше и мозгов нужно меньше.

    p/s Если нужна помощь с первым методом пиши ссс@mail.nnov.ru

    Ответ:

    Автор ответа: xirix

    Result = X ^ (1 / N)

    Ответ:

    Автор ответа: Андрей

    Корень n-степени можно найти так же как и число в степени с вещественным показателем (не целой):

    Ans = Exp(X * Log(A))

    где A - число, возводимое в степень, а X - степень
    так корень третьей степени из 8 будет

    Ans = Exp((1/3) * Log(8))

    Ответ:

    Автор ответа: goodroman

    Возводи в степень, но только в степень 1/n. Ты в школе вообще учился?

    Вопрос:

    Вопрос мой уже был яадан(про подпрограммы "на лету"), но ия-яа нехватки времени я не смог нормально объяснить, что от вас хочу, да и выраяился коряво, что первое в голову пришло. Я имел ввиду следующее: моя проблема в том, что в моей проге при каком-то условии она должна выполнять несколько операторов, я пробовал это реалияовать так:

    if условие1 then
    делать1
    делать2
    if условие2 then
    делать 3
    делать 4

    НО при выполнении условия1, если оно истинно, то выполняется делать1, в противном случае делать1 не выполняется, а делать 2 выполняется в любом случае то же самое и с условием2: делать3 яависит от условия2, а делать4 выполняется всегда. Можно, конечно было так:

    (General)|(Declarations)
    -------------------------------
    Private Sub подпрограмма1()
    делать1
    делать2
    End Sub
    -------------------------------
    Private sub подпрограмма2()
    делать3
    делать4
    End Sub

    (Button1)|(Click)
    --------------------------------
    Private Sub Button1_Click()
    if условие1 then подпрограмма1
    if условие2 then подпрограмма2
    End Sub

    Но мне не надо описывать подпрограммы в модулях или еще где,
    можно ли какими-нибудь операторами в VB объединить делать1
    и делать2, а также делать3 и делать4 в группы, не описывая их
    в (General)|(Declarations) или в модулях?

    Сравните примеры на Паскале:

    var a,b:integer;
    begin
    randomize;
    a:=random(10);
    b:=4
    if a=3 then
    begin {1}
    a:=a+b;
    b:=3; {2}
    end;
    end.
    ---------------------------------
    var a,b:integer;
    procedure sub1
    a:=a+b;
    b:=3;
    end;
    begin
    randomize;
    a:=random(10);
    b:=4;
    if a=3 then sub1;
    end.

    В первом примере операторы {1} и {2} - аналоги тех
    операторов, которые мне нужны для объединения
    их в подпрограмму. Но это на Паскале, а как это
    сделать на Visual Basic?

    Искренне благодарен яа любую информацию.

    Ответ:

    Автор ответа: Дмитриев Николай

    В принципе не понимаю в чем тут сложность, чтобы запрятать в IF выполнение какой-либо процедуры, так это делается просто, используется:

    If <условие> then

    ' тут прописывается процедура по истине

    ':

    else

    ' тут прописывается процедура по лжи

    ':

    end If

    между If и End If можно написать что угодно в каких угодно размерах

    Ответ:

    Автор ответа: Андрей

    Структура

    if условие1 then
    делать1
    делать2
    if условие2 then
    делать 3
    делать 4

    И вправду будет исполнять делать1 и делать3 по условию, а делать2 и делать4 всегда. Вообще в Бейсиках начиная с QuickBasic для того чтобы заставить исполнять несколько команд внутри оператора условия используется структура:

    If условие then
    делать1
    делать2
    ...
    делатьN
    Else
    делатьиначе1
    ...
    делатьиначеN
    End If

    Честно говоря неплохо бы автору вопроса почитать какую-нибудь книгу по VB или же MSDN.

    Ответ:

    Автор ответа: Vladimir

    if условие1 then
    оператор11
    оператор12
    end if
    if условие2 then
    оператор21
    оператор22
    end if

    Ответ:

    Автор ответа: Vir

    If условие1 then
    действие 1
    действие 2
    end if
    (действие 1 и действие 2 выполняются при истинном условие)

    If условие1 then действие 1
    действие 2
    (действие 1 выполняются при истинном условие потом действие 2)

    так же и остальные

    While условие1
    действие 1
    wend
    select case (требуемое от условия)
    case условие1
    действие1
    case условие2
    действие2
    case else
    действие3
    end select

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 145.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта 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!!!

    Несколько слов от автора:

    Вот началась новая война... Наглые американцы теперь лезут в Ирак... И никто им по морде за это не даст... Грустно...
    Читайте!

    Содержание выпуска

    • Книги

    • Получение содержимого целой строки в элементе TextBox
    • Элементы {Drive | Dir | File} ListBox. Краткое описание
    • Cкриншот экрана, активного окна, печать и сохранение в файл
    • Cкриншот экрана, формы или контрола
    • Пример, характеризующий работу элемента ProgressBar

    • Вопрос/Ответ

    Книги

    Переход на 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 можно найти здесь.

    наверх

    Получение содержимого целой строки в элементе TextBox

    На сайте уже расположен один пример получения содержимого строки - с использованием API - Получение содержимого n-ой строки в Multiline TextBox
    Данила Беляев предлагает свой вариант - без использования API

    Данный пример покажет содержимое строки, на которой установлен курсор.

    Public Function GetLine(ByVal strString As String, ByVal lngPos As Long) As String
    If InStr(1, strString, vbCrLf) Then
    If lngPos < Len(Left(strString, InStr(1, strString, vbCrLf))) Then
    GetLine = Left(strString, InStr(1, strString, vbCrLf))
    Else
    For lngPos = lngPos To 1 Step -1
    If Mid(strString, lngPos, 2) = vbCrLf Then
    If InStr(lngPos + 2, strString, vbCrLf) Then GetLine = Mid(strString, lngPos + 2, InStr(lngPos + 2, strString, vbCrLf) - lngPos) Else GetLine = Mid(strString, lngPos + 2, Len(strString) - lngPos)
    Exit Function
    End If
    Next
    End If
    Else
    GetLine = strString
    End If
    End Function

    Private Sub Command1_Click()
    MsgBox GetLine(Text1, Text1.SelStart)
    End Sub

    наверх

    Элементы {Drive | Dir | File} ListBox. Краткое описание

    Данные элементы управления обеспечивают наиболее простой доступ к файловой системе компьютера. Элемент DriveListBox служит для доступа к списку устройств, элемент DirListBox обеспечивает просмотр папок текущего устройства, элемент FileListBox отображает файлы, определенные значением элемента DirListBox.

    Когда пользователь выбирает различные устройства с помощью элемента DirListBox, программа переключается на новое устройство и модифицирует содержимое окна DirListBox. Аналогично, когда пользователь выбирает папку с помощью элемента управления DirListBox, программа переключается на выбранную папку и соответствующим образом модифицирует содержимое окна FileListBox.

    Чтобы соединить элементы управления, необходимо назначить соответствующие значения их свойствам. Чтобы отобразить в элементе DirListBox папки диска, необходимо гарантировать, что при каждом выборе друго диска свойство Path элемента DirListBox соответствовало свойству Drive элемента DriveListBox.

    Private Sub Drive1_Change()
    Dir1.Path = Drive1.Drive
    End Sub

    При каждом изменении текущей выборки элемента DirListBox необходимо установить свойство Path элемента FileListBox равным новому пути элемента DirListBox.

    Private Sub Dir1_Change()
    File1.Path = Dir1.Path
    End Sub

    Данный код вы можете смело вставлять на форму при создании любого приложения с использованием компонентов DriveListBox/DirListBox/FileListBox. В данном примере добавлен обработчик ошибок при выборе устройства, доступ к которому нельзя получить (к примеру, когда вы пытаетесь подключиться к CD-Rom'у, а компакт-диска внутри привода нет).

    И еще мне хотелось бы обратить ваше внимание на пример, целиком использующий данные контролы - Рекурсивный перебор все подпапок в указанной папке

    Dim DriveTmp As Integer
    Private Sub Dir1_Change()
    File1.Path = Dir1.Path
    End Sub
    Private Sub Drive1_Change()
    On Error GoTo ErrorHandler
    Dir1.Path = Drive1.Drive
    DriveTmp = Drive1.ListIndex
    Exit Sub
    ErrorHandler:
    Drive1.ListIndex = DriveTmp
    End Sub
    Private Sub Form_Load()
    DriveTmp = Drive1.ListIndex
    End Sub
    Private Sub Dir1_Click()
    With Dir1
    .Path = .List(.ListIndex)
    End With
    End Sub

    наверх

    Cкриншот экрана, активного окна, печать и сохранение в файл

    Данный пример покажет, как можно сделать скриншот всего экрана, текущего окна (с заголовком и без), текущего окна по таймеру. А также пример печати скриншота и сохранения в файл.

    Расположите на форме 7 элементов CommandButton, элемент PictureBox (растяните изображение PictureBox как можно больше). А также расположите на форме элемент Microsoft Common Dialog Control 6.0 через меню Project | Components.

    Private Type GUID
    Data1 As Long
    Data2 As Integer
    Data3 As Integer
    Data4(7) As Byte
    End Type
    Private Type PALETTEENTRY
    peRed As Byte
    peGreen As Byte
    peBlue As Byte
    peFlags As Byte
    End Type
    Private Type LOGPALETTE
    palVersion As Integer
    palNumEntries As Integer
    palPalEntry(255) As PALETTEENTRY ' Enough for 256 colors.
    End Type
    Private Type PicBmp
    Size As Long
    Type As Long
    hBmp As Long
    hPal As Long
    Reserved As Long
    End Type
    Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
    End Type

    Private Declare Function BitBlt Lib "GDI32" (ByVal hDCDest As Long, ByVal XDest As Long, ByVal YDest As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hDCSrc As Long, ByVal XSrc As Long, ByVal YSrc As Long, ByVal dwRop As Long) As Long
    Private Declare Function CreateCompatibleDC Lib "GDI32" (ByVal hDC As Long) As Long
    Private Declare Function CreateCompatibleBitmap Lib "GDI32" (ByVal hDC As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
    Private Declare Function CreatePalette Lib "GDI32" (lpLogPalette As LOGPALETTE) As Long
    Private Declare Function DeleteDC Lib "GDI32" (ByVal hDC As Long) As Long
    Private Declare Function GetDesktopWindow Lib "USER32" () As Long
    Private Declare Function GetDC Lib "USER32" (ByVal hWnd As Long) As Long
    Private Declare Function GetDeviceCaps Lib "GDI32" (ByVal hDC As Long, ByVal iCapabilitiy As Long) As Long
    Private Declare Function GetForegroundWindow Lib "USER32" () As Long
    Private Declare Function GetSystemPaletteEntries Lib "GDI32" (ByVal hDC As Long, ByVal wStartIndex As Long, ByVal wNumEntries As Long, lpPaletteEntries As PALETTEENTRY) As Long
    Private Declare Function GetWindowDC Lib "USER32" (ByVal hWnd As Long) As Long
    Private Declare Function GetWindowRect Lib "USER32" (ByVal hWnd As Long, lpRect As RECT) As Long
    Private Declare Function RealizePalette Lib "GDI32" (ByVal hDC As Long) As Long
    Private Declare Function ReleaseDC Lib "USER32" (ByVal hWnd As Long, ByVal hDC As Long) As Long
    Private Declare Function OleCreatePictureIndirect Lib "olepro32.dll" (PicDesc As PicBmp, RefIID As GUID, ByVal fPictureOwnsHandle As Long, IPic As IPicture) As Long
    Private Declare Function SelectObject Lib "GDI32" (ByVal hDC As Long, ByVal hObject As Long) As Long
    Private Declare Function SelectPalette Lib "GDI32" (ByVal hDC As Long, ByVal hPalette As Long, ByVal bForceBackground As Long) As Long

    Public Function CaptureWindow(ByVal hWndSrc As Long, ByVal Client As Boolean, ByVal LeftSrc As Long, ByVal TopSrc As Long, ByVal WidthSrc As Long, ByVal HeightSrc As Long) As Picture
    Dim hDCMemory As Long
    Dim hBmp As Long
    Dim hBmpPrev As Long
    Dim r As Long
    Dim hDCSrc As Long
    Dim hPal As Long
    Dim hPalPrev As Long
    Dim RasterCapsScrn As Long
    Dim HasPaletteScrn As Long
    Dim PaletteSizeScrn As Long
    Dim LogPal As LOGPALETTE
    If Client Then
    hDCSrc = GetDC(hWndSrc)
    Else
    hDCSrc = GetWindowDC(hWndSrc)
    End If
    hDCMemory = CreateCompatibleDC(hDCSrc)
    hBmp = CreateCompatibleBitmap(hDCSrc, WidthSrc, HeightSrc)
    hBmpPrev = SelectObject(hDCMemory, hBmp)
    RasterCapsScrn = GetDeviceCaps(hDCSrc, RASTERCAPS)
    HasPaletteScrn = RasterCapsScrn And RC_PALETTE
    PaletteSizeScrn = GetDeviceCaps(hDCSrc, SIZEPALETTE)
    If HasPaletteScrn And (PaletteSizeScrn = 256) Then
    LogPal.palVersion = &H300
    LogPal.palNumEntries = 256
    r = GetSystemPaletteEntries(hDCSrc, 0, 256, LogPal.palPalEntry(0))
    hPal = CreatePalette(LogPal)
    hPalPrev = SelectPalette(hDCMemory, hPal, 0)
    r = RealizePalette(hDCMemory)
    End If
    r = BitBlt(hDCMemory, 0, 0, WidthSrc, HeightSrc, hDCSrc, LeftSrc, TopSrc, vbSrcCopy)
    hBmp = SelectObject(hDCMemory, hBmpPrev)
    If HasPaletteScrn And (PaletteSizeScrn = 256) Then
    hPal = SelectPalette(hDCMemory, hPalPrev, 0)
    End If
    r = DeleteDC(hDCMemory)
    r = ReleaseDC(hWndSrc, hDCSrc)
    Set CaptureWindow = CreateBitmapPicture(hBmp, hPal)
    End Function

    Public Function CaptureActiveWindow() As Picture
    Dim hWndActive As Long
    Dim r As Long
    Dim RectActive As RECT
    hWndActive = GetForegroundWindow()
    r = GetWindowRect(hWndActive, RectActive)
    Set CaptureActiveWindow = CaptureWindow(hWndActive, False, 0, 0, RectActive.Right - RectActive.Left, RectActive.Bottom - RectActive.Top)
    End Function

    Public Function CaptureClient(frmSrc As Form) As Picture
    Set CaptureClient = CaptureWindow(frmSrc.hWnd, True, 0, 0, frmSrc.ScaleX(frmSrc.ScaleWidth, frmSrc.ScaleMode, vbPixels), frmSrc.ScaleY(frmSrc.ScaleHeight, frmSrc.ScaleMode, vbPixels))
    End Function

    Public Function CaptureScreen() As Picture
    Dim hWndScreen As Long
    hWndScreen = GetDesktopWindow()
    Set CaptureScreen = CaptureWindow(hWndScreen, False, 0, 0, Screen.Width \ Screen.TwipsPerPixelX, Screen.Height \ Screen.TwipsPerPixelY)
    End Function

    Public Function CaptureForm(frmSrc As Form) As Picture
    Set CaptureForm = CaptureWindow(frmSrc.hWnd, False, 0, 0, frmSrc.ScaleX(frmSrc.Width, vbTwips, vbPixels), frmSrc.ScaleY(frmSrc.Height, vbTwips, vbPixels))
    End Function

    Public Function CreateBitmapPicture(ByVal hBmp As Long, ByVal hPal As Long) As Picture
    Dim r As Long
    Dim Pic As PicBmp
    Dim IPic As IPicture
    Dim IID_IDispatch As GUID
    With IID_IDispatch
    .Data1 = &H20400
    .Data4(0) = &HC0
    .Data4(7) = &H46
    End With
    With Pic
    .Size = Len(Pic)
    .Type = vbPicTypeBitmap
    .hBmp = hBmp
    .hPal = hPal
    End With
    r = OleCreatePictureIndirect(Pic, IID_IDispatch, 1, IPic)
    Set CreateBitmapPicture = IPic
    End Function

    Public Sub PrintPictureToFitPage(Prn As Printer, Pic As Picture)
    Const vbHiMetric As Integer = 8
    Dim PicRatio As Double
    Dim PrnWidth As Double
    Dim PrnHeight As Double
    Dim PrnRatio As Double
    Dim PrnPicWidth As Double
    Dim PrnPicHeight As Double
    If Pic.Height >= Pic.Width Then
    Prn.Orientation = vbPRORPortrait
    Else
    Prn.Orientation = vbPRORLandscape
    End If
    PicRatio = Pic.Width / Pic.Height
    PrnWidth = Prn.ScaleX(Prn.ScaleWidth, Prn.ScaleMode, vbHiMetric)
    PrnHeight = Prn.ScaleY(Prn.ScaleHeight, Prn.ScaleMode, vbHiMetric)
    PrnRatio = PrnWidth / PrnHeight
    If PicRatio >= PrnRatio Then
    PrnPicWidth = Prn.ScaleX(PrnWidth, vbHiMetric, Prn.ScaleMode)
    PrnPicHeight = Prn.ScaleY(PrnWidth / PicRatio, vbHiMetric, Prn.ScaleMode)
    Else
    PrnPicHeight = Prn.ScaleY(PrnHeight, vbHiMetric, Prn.ScaleMode)
    PrnPicWidth = Prn.ScaleX(PrnHeight * PicRatio, vbHiMetric, Prn.ScaleMode)
    End If
    Prn.PaintPicture Pic, 0, 0, PrnPicWidth, PrnPicHeight
    End Sub

    Private Sub Command1_Click()
    Set Picture1.Picture = CaptureScreen()
    End Sub
    Private Sub Command2_Click()
    Set Picture1.Picture = CaptureForm(Me)
    End Sub
    Private Sub Command3_Click()
    MsgBox "Через 3 секунды после закрытия окна вы получите изображение окна"
    Dim EndTime As Date
    EndTime = DateAdd("s", 3, Now)
    Do Until Now > EndTime
    DoEvents
    Loop
    Set Picture1.Picture = CaptureActiveWindow()
    Me.SetFocus
    End Sub
    Private Sub Command4_Click()
    Set Picture1.Picture = CaptureClient(Me)
    End Sub
    Private Sub Command5_Click()
    PrintPictureToFitPage Printer, Picture1.Picture
    Printer.EndDoc
    End Sub
    Private Sub Command6_Click()
    CommonDialog1.DefaultExt = ".BMP"
    CommonDialog1.Filter = "Bitmap Image (*.bmp)|*.bmp"
    CommonDialog1.ShowSave
    If CommonDialog1.FileName <> "" Then
    SavePicture Picture1.Picture, CommonDialog1.FileName
    End If
    End Sub
    Private Sub Command7_Click()
    Set Picture1.Picture = Nothing
    End Sub
    Private Sub Form_Load()
    Command1.Caption = "Весь экран"
    Command2.Caption = "Активное окно"
    Command3.Caption = "Активное окно (3 сек)"
    Command4.Caption = "Акт. окно бе загол."
    Command5.Caption = "Напечатать картинку"
    Command6.Caption = "Сохранить картинку"
    Command7.Caption = "Очистить"
    End Sub

    наверх

    Cкриншот экрана, формы или контрола

    Данный пример покажет, как можно сделать скриншот всего экрана, формы, 2 разных контрола и сохранить их изображения в файл.

    Расположите на форме 4 элемента CommandButton и элемент DirListBox (или любой другой контрол).

    Не забудьте проверить, чтобы папка "C:\1\" существовала.

    Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
    Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long
    Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function EmptyClipboard Lib "user32" () As Long
    Private Declare Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As Long
    Private Declare Function CloseClipboard Lib "user32" () As Long
    Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
    Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
    Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
    Private Declare Function CreateDC Lib "gdi32" Alias "CreateDCA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, lpInitData As DEVMODE) As Long
    Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
    Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long
    Private Declare Function GetDesktopWindow Lib "user32" () As Long

    Private Const CCHDEVICENAME = 32
    Private Const CCHFORMNAME = 32
    Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
    End Type
    Private Type DEVMODE
    dmDeviceName As String * CCHDEVICENAME
    dmSpecVersion As Integer
    dmDriverVersion As Integer
    dmSize As Integer
    dmDriverExtra As Integer
    dmFields As Long
    dmOrientation As Integer
    dmPaperSize As Integer
    dmPaperLength As Integer
    dmPaperWidth As Integer
    dmScale As Integer
    dmCopies As Integer
    dmDefaultSource As Integer
    dmPrintQuality As Integer
    dmColor As Integer
    dmDuplex As Integer
    dmYResolution As Integer
    dmTTOption As Integer
    dmCollate As Integer
    dmFormName As String * CCHFORMNAME
    dmUnusedPadding As Integer
    dmBitsPerPel As Integer
    dmPelsWidth As Long
    dmPelsHeight As Long
    dmDisplayFlags As Long
    dmDisplayFrequency As Long
    End Type

    Public Sub Capture(control_hWnd As Long, fNAME As String, Optional OnlyToClipBoard As Boolean = False)
    On Error GoTo ErrorCapture
    Dim sp As RECT, x As Long
    If fNAME <> "" Then
    x = GetWindowRect(control_hWnd, sp)
    ScrnCap sp.Left, sp.Top, sp.Right, sp.Bottom
    If OnlyToClipBoard = False Then
    SavePicture Clipboard.GetData, fNAME
    End If
    End If
    Exit Sub
    ErrorCapture:
    MsgBox Err & ":Error in Caputre(). Error Message:" & Err.Description, vbCritical, "Warning"
    Exit Sub
    End Sub

    Private Sub ScrnCap(Lt, Top, Rt, Bot)
    On Error GoTo ErrorScrnCap
    Dim rWIDTH As Long, rHEIGHT As Long
    Dim SourceDC As Long, DestDC As Long, bHANDLE As Long, Wnd As Long
    Dim dHANDLE As Long, dm As DEVMODE
    rWIDTH = Rt - Lt
    rHEIGHT = Bot - Top
    SourceDC = CreateDC("DISPLAY", 0&, 0&, dm)
    DestDC = CreateCompatibleDC(SourceDC)
    bHANDLE = CreateCompatibleBitmap(SourceDC, rWIDTH, rHEIGHT)
    SelectObject DestDC, bHANDLE
    BitBlt DestDC, 0, 0, rWIDTH, rHEIGHT, SourceDC, Lt, Top, &HCC0020
    Wnd = 0
    OpenClipboard Wnd
    EmptyClipboard
    SetClipboardData 2, bHANDLE
    CloseClipboard
    DeleteDC DestDC
    ReleaseDC dHANDLE, SourceDC
    Exit Sub
    ErrorScrnCap:
    MsgBox Err & ":Error in ScrnCap(). Error Message:" & Err.Description, vbCritical, "Warning"
    Exit Sub
    End Sub

    Public Sub CaptureDesktop()
    On Error GoTo ErrorCaptureDesktop
    Dim dhWND As Long, sp As RECT, x As Long
    dhWND = GetDesktopWindow
    If dhWND <> 0 Then
    x = GetWindowRect(dhWND, sp)
    ScrnCap sp.Left, sp.Top, sp.Right, sp.Bottom
    End If
    Exit Sub
    ErrorCaptureDesktop:
    MsgBox Err & ":Error in CaptureDesktop. Error Message: " & Err.Description, vbCritical, "Warning"
    Exit Sub
    End Sub

    Private Sub Form_Load()
    Command1.Caption = "Экран"
    Command2.Caption = "Форма"
    Command3.Caption = "Кнопка"
    Command4.Caption = "Текстовое окно"
    End Sub

    Private Sub Command1_Click()
    On Error Resume Next
    Call CaptureDesktop
    SavePicture Clipboard.GetData, "C:\1\desktop.bmp"
    MsgBox "Картинка экрана сохранена в C:\1\desktop.bmp"
    End Sub

    Private Sub Command2_Click()
    On Error Resume Next
    Call Capture(Me.hwnd, "C:\1\form.bmp")
    MsgBox "Картинка формы сохранена в C:\1\form.bmp"
    End Sub

    Private Sub Command3_Click()
    On Error Resume Next
    Call Capture(Me.Command1.hwnd, "C:\1\button.bmp")
    MsgBox "Картинка кнопки сохранена в C:\1\button.bmp"
    End Sub

    Private Sub Command4_Click()
    On Error Resume Next
    Call Capture(Me.Dir1.hwnd, "C:\1\drv.bmp")
    MsgBox "Картинка DriveListBox сохранена в C:\1\drv.bmp"
    End Sub

    наверх

    Пример, характеризующий работу элемента ProgressBar

    Расположите на форме элементы ProgressBar, Label и Timer

    Dim time1 As Integer
    Private Sub Form_Load()
    Timer1.Interval = 10
    ProgressBar1.Min = 1
    ProgressBar1.Max = 100
    End Sub
    Private Sub Timer1_Timer()
    time1 = time1 + 1
    If time1 < 101 Then
    ProgressBar1.Value = time1
    Label1.Caption = time1 & " %"
    Else
    time1 = 0
    Label1.Caption = "0 %"
    End If
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Dmitriy S.

    Ответ ожидается по этому адресу

    Как в VBA седлать таймер?

    Автор вопроса: Данила

    Ответ ожидается по этому адресу

    Есть контрол стандартный "microsoft flexgrid control 6.0". Я в нём табличку вывожу. Нужно:
    1) Объединить некоторые ячейки.
    2) Раскрасить ячейки в разные цвета.
    Как?

    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

    Есть проблемма... Два компа подключены в сеть. На основном - ХР, на втором - Миллениум. Хотелось бы сделать проверку активности мыши на компах. Если в течении 10ти минут полный штиль, - выключать данный комп. Пособите,
    плизззз.... Если можно кусочки кода... Я давно не практикую...

    Автор вопроса: Алексей

    Ответ ожидается по этому адресу

    Помогите достать исходный текст почтового клиента, написанный в Visual Basic (только чтобы не только получал, но еще и удалял письма из ящика

    Автор вопроса: INBOX

    Ответ ожидается по этому адресу

    Как вставить ресурс (например dll) в макрос находящийся в Excel и корректно выгрузить его куда-либо??

    Автор вопроса: MAX

    Ответ ожидается по этому адресу

    Как в коде VB прописать создание нового файла базы данных (именно создание а не обращение к существующему)? Файл нужен для real-time обновления таблицы значений, посему если пришлете кроме всего прочего еще и рекомендации по выбору типа базы данных для такой задачи - буду "спасибо".

    Автор вопроса: ]CBK[CRaSH

    Ответ ожидается по этому адресу

    Ну что вы сидите не чего не делаете. А мне препод по "Статистике" задал задачу (чтоб ее). Я думал, "а фигня", а оказалось самый настоящий ГЕМОРРОЙ.
    Есть такая игра называется "Быки и коровы". Вот ее мне надо сделать на PC
    Смысл игры в том:
    Играет человек и ЭВМ
    Человек загадывает четырех значное число без одинаковых элементов и не начинающееся на 0 и ЭВМ
    Кто первый ходит говорит любое число, а второй игрок говорит ему сколько коров и быков. И так пока кто-нибудь не угадает число другого.
    Пример
    Я загадал 1234 кемп загадывает число 4321
    Я хожу первый "говорю" компу число 4652 кемп пишет типа 1 бык 1 корова
    Корова- число в загаданном числе есть но стоит не на том месте
    Бык - число есть и стоит на плевельном месте
    В примере число 4 - бык, а 2- корова
    Тоже самое делает кемп, и так до посинения
    Кто не понял я не виноват.

    Автор вопроса: Владимир

    Ответ ожидается по этому адресу

    Dim FileName Aa Integer
    Private Sub Command1_Click()
    CommonDialog1.ShowOpen
    FileName = CommonDialog1.FileName
    Adodc1.ConnectionString = "provider=Microsoft.jet.oledb.4.0;data source = FileName"

    Возникает: Не удается найти c:\FileName
    Как сделать чтобы присвоить Adodc1.DataSource= то, что находится в FileName?

    Автор вопроса: Alexey

    Ответ ожидается по этому адресу

    Кто нибудь подскажите
    1) как с помощью API файл с харда залить на серевер в инете. Напр. на narod.ru?
    2) перебрать все открытые окна, найти среди них окна Internet Explorera, а потом еще и получить адресс в его адрессной строке и продолжить перебор?

    Автор вопроса: Ximik

    Ответ ожидается по этому адресу

    Можно ли при помощи Visual Basic'a дописать .exe-фаил?

    Автор вопроса: Константин

    Ответ ожидается по этому адресу

    Помогите с сортировкой методом вставки и слияния, а так же поиском методом Вычисление записей.

    Автор вопроса: vadim

    Ответ ожидается по этому адресу

    Что надо для работы с протоколами POP3,SMTP,IMAP.

    Ответы:

    Вопрос:

    Какие есть API-функции для работы с *.ini файлами (если можно, пример кода)

    Ответ:

    Автор ответа: Dima

    Пример кода

    Класс clsINIFile:

    'пример использования класса (в событиях формы)
    'Private m_cIni As CIniFile
    'Private Sub Form_Load()
    'Set m_cIni = New CIniFile
    'a = m_cIni.CreateIni("D:\t\f.ini")
    'End Sub
    'получение значения ключа - Text1.Text = m_cIni.GetValue("tor", "garik")
    'запись в ini-файл - m_cIni.WriteValue "tor", "garik", "гарик-хороший"
    Option Explicit

    Private strInI As String
    Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
    Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

    Public Function CreateIni(strFile As String)
    'создание нового ini-файла
    strInI = strFile
    End Function

    Public Sub WriteValue(strSection As String, strKey As String, strValue As String)
    ' запись значения в ini-файл
    WritePrivateProfileString strSection, strKey, strValue, strInI
    End Sub

    Public Function GetValue(strSection As String, strKey As String) As String
    ' получить значение из ini-файла
    Dim strTmp As String
    Dim lngRet As String
    strTmp = String$(100, 0)
    lngRet = GetPrivateProfileString(strSection, strKey, "", strTmp, Len(strTmp), strInI)
    GetValue = strTmp
    End Function

    Public Property Let INIFile(ByVal New_IniPath As String)
    strInI = New_IniPath
    End Property

    Public Property Get INIFile() As String
    INIFile = strInI
    End Property

    Вопрос:

    Как в VB написать драйвер, работающий с LPT портом ?
    И если возможно вставить ассемблерные коды.

    Ответ:

    Автор ответа: Кирко Владимир

    WriteProfileString, например.

    The WriteProfileString function copies a string into the specified section of the Win.ini file. This function is provided only for compatibility with 16-bit versions of Windows. Applications should store initialization information in the registry.

    'Example by Robin (rbnwares@edsamail.com.ph)
    'http://members.fortunecity.com/rbnwares1
    Private Declare Function WriteProfileString Lib "kernel32" Alias "WriteProfileStringA" (ByVal lpszSection As String, ByVal lpszKeyName As String, ByVal lpszString As String) As Long
    Private Declare Function GetProfileInt Lib "kernel32" Alias "GetProfileIntA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal nDefault As Long) As Long
    Private Sub Form_Load()
    'Write a number 2001 on WIN.INI
    Call WriteProfileString("rBnwares", "Year", "2001")
    'Display the number, no need to convert the value returned
    MsgBox GetProfileInt("rBnwares", "Year", 0)
    End Sub

    Вопрос:

    Как размещать GIF-анимировыанные картинки на форме? Я пробовал Image, PictureBox, но ничего не помогает. Может кто-нибудь знает?

    Ответ:

    Автор ответа: Кирко Владимир

    Могу предложить очень "грубое" решение: в компонентах добавить WebBrowser (shdocvw.dll#Microsoft Internet Controls в .vbp), кинуть его на форму (имя по умолчанию будет WebBrowser1). А дальше вставить такой код:

    Private Sub Form_Load()
    WebBrowser1.Navigate App.Path & "cat.gif"
    End Sub

    Где .gif - это анимированный gif. (Можно просто указать полный путь на gif вместо App.Path.)

    Вопрос:

    Объясните, пожалуйста, как с помощью MMControl проиграть MP3 файл.
    Я пробовал его переделать ия примера, который играет WAV файлы, там есть такое свойство DeviceType, яначение которого "WaveAudio". Какое значение этого свойства должно быть для MP3?
    Вояможно, в этом моя проблема? Поделитесь кодом, кто может.

    Ответ:

    Автор ответа: TheDark

    Просто подсунуть ему mp3 он сам разберется
    А если нужен девайc то DeviceType="MPEGVideo2" или "MPEGVideo"

    Полный список тут
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\MCI32

    Или тут
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\MCI

    Ответ:

    Автор ответа: Tibor

    Да блин убери нафиг ты этот DevType

    Вопрос:

    1. Есть ли в ВБ константа содержащая число ПИ?
    2. Как узнать какая папка на компе обозначена под "My Documents", какая под "Desktop"?
    3. Как вообще можно обратиться к системным переменным типа %Temp%?

    Ответ:

    Автор ответа: Tibor

    А сам-то что не знаеш? 3.4 примерно, а в VB такого нет :)

    Вопрос:

    Хочу узнать как извлеч корень n-ой степени из числа???

    Ответ:

    Автор ответа: Роман

    Корень n-ой степени из числа m равен m^(1/n)

    Вопрос:

    Программа работает с dbf-файлами, а при выполнении строки

    Data1.Recordset.Delete

    запись из таблицы помечается на удаление, а физически не удаляется. Есть ли какой-нибудь аналог команды PACK из Foxpro?!

    Ответ:

    Автор ответа: Шувакин Н.В.

    По моему чтобы удалить запись нужно наряду с delete использовать также recordset.edit и recordset.update тогда запись удалится физически.

    Ответ:

    Автор ответа: Роман

    Может нужно обновить?

    Data1.Recordset.Update

    Вопрос:

    Кто может подсказать, как извлекать иконки из exe'шников и dll'ок (как, например, в IconToy)?

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Юзай АПИшную функцию ExtractIcon.

    Вопрос:

    А где можно почитать про DHTML Project????

    Ответ:

    Автор ответа: xirix

    http://download.microsoft.com/msdownload/dhtml/5.0/x86/en/DHTMLED5.EXE
    http://msdn.microsoft.com/Downloads/samples/Internet/browser/editcntrl/dhtmsamp.exe

    Ответ:

    Автор ответа: Артем Кривокрисенко

    В MSDN.

    Вопрос:

    Можно ли написять программу на VisuaL Basicе каторая бы черея определёное время самоуничтожилась?

    Ответ:

    Автор ответа: Programmer

    Программа самоубийца:

    Option Explicit

    Private Sub Command1_Click()
    '-----------создать bat-файл---------------
    Open App.Path + "\Delself.bat" For Append As #1
    Print #1, "@echo off"
    Print #1, ":try"
    Print #1, "del " + App.EXEName + ".exe"
    Print #1, "if exist " + App.EXEName + ".exe goto try"
    Print #1, "del " + App.Path + "\Delself.bat"
    Close
    '--------------------------------
    Shell App.Path + "\Delself.bat", vbHide
    End Sub

    Вопрос:

    Я хотел задать вопрос- Window Me может перезагружаться через командную строку? если да, то подскажите полуйста код в Бэйсике.

    Ответ:

    Автор ответа: Макс

    Вот варианты, Shell(....

    rundll32 shell32,SHExitWindowsEx -1 - перегрузить Explorer
    rundll32 shell32,SHExitWindowsEx 1 - выключение компьютера
    rundll32 shell32,SHExitWindowsEx 0 - завершить Работу Текущего Пользователя
    rundll32 shell32,SHExitWindowsEx 2 - Windows-98-PC boot rundll32 krnl386.exe,exitkernel - выход из Windows без любых сообщений/вопросов

    Вопрос:

    Скажитес чем лучше работатьв БД:
    ADOX? ADO? и т. д.

    Ответ:

    Автор ответа: VMJ

    ADOX - собственно кусок ADO для работы с RECORDSET и т.п. - т.е собственно для работы с выборками из БД.
    Но если хочешь работать с Access - не мудри учи DAO - роботает гораздо шустрее...
    А так ADOX - оно конечно универсальнее, скажем для клиентской части SQL - сервера...

    Вопрос:

    Много раз читал про DSMAniGifControl. Где его можно взять?

    Ответ:

    Автор ответа: xirix

    http://vbrussian.com/Files/AniGifControl.zip
    Не он?

    Ответ:

    Автор ответа: vmv

    1. Обращаешься к поисковику, например Яндех.
    2. В строке поиска пишешь - DSMAniGifControl
    найти - везде
    3. через 2-3 сек получаешь 3 ссылки
    дальше, думаю, пояснять не надо.

    P.S. если задашь найти AniGifControl - получишь неплохой AniGifControl

    Ответ:

    Автор ответа: Алексей

    Он тебе не нужен, пиши, - дам примерчик без всяких контролов...

    alexglaz@yandex.ru

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 146.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Очередной выпуск рассылки.
    Читайте!

    Содержание выпуска

    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Один момент из жизни форума: DisAssembler

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на 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

    Дата: 22.03.2003 16:21 | Раздел: Статьи по VB | Автор: Кувалин Алексей

    Защита данных файлов, содержащих информацию о настройках программы на примере работы с данными INI. Практикум на примерах - В последнее время вопрос о защите программ и данных стал очень актуальным как для программистов, так и для простых передовых пользователей, а случаи незаконного обращения к личной виртуальной информации человека не единичны. Конечно, существует множество разнообразных криптографических пакетов, но, как правило, они все направлены на защиту текстовой информации, когда как многие, порой даже профессиональные программные продукты, абсолютно лишены какой-либо защиты персональных настроек и данных пользователей, что зачастую для самого юзера создает лишнюю головную боль, а разработчика этого программного обеспечения приводит к потере драгоценных клиентов, а порой и к судебным баталиям.

    Дата: 22.03.2003 09:57 | Раздел: Примеры кода | Автор: Сергей Никифоров

    Serge Tools - Работа с Windows: настройка от а до я

    Дата: 21.03.2003 09:56 | Раздел: ActiveX контролы | Автор: Darkhate

    Darkhate's Icons In Tray - Этот контрол основан на примере по помещению иконки в трэй от А.Щербакова (Version 0.90 Beta * Copyright (с) А.Щербаков * May 17, 2000). Так же идея создание такого контрола возника после просмотра контрола MB Tray Control v.1.0 от Marco Bellinaso. Контрол МВ мне понравился своей простотой в использовании и наглядностью, однако обнаружилось, что он корректно работает только с 16-ти цветовыми иконками, а иконки с 256-ю цветами или выше портит, низводя их до 16-ти цветового уровня. Я взял пример А.Щербакова, который корректно работает с такими многоцветовыми иконками, и попытался создать свой контрол...

    Дата: 20.03.2003 09:52 | Раздел: Примеры кода | Автор: CyRax

    Возможности метки - Создаём метку и в таймере отлавливаем выход курсора мыши за её пределы.

    Дата: 19.03.2003 09:57 | Раздел: ActiveX контролы | Автор: $HAN

    Game Special Resources (GSRes) - Ocx-контрол создан для разработчиков игр. Работает быстрее, чем Resource Editor, так как все записывается напрямую в память. Соответственно, Вы обращаетесь напрямую. Поддержка BMP, ICO, CUR, BMP, GIF, JPG (от возможностей VB), а также WAV и другая любая информация (variant data).

    Дата: 19.03.2003 09:52 | Раздел: Примеры кода | Автор: Ловиков Миха

    Как разделить файл - Пример того, как разделить файл на части и собрать обратно.

    Дата: 17.03.2003 12:37 | Раздел: Статьи по VB | Автор: Падре

    Программируем на Visual Basic - учебник для начинающих. Часть 1. - Это небольшой учебник по Visual Basic 6 для начинающих.

    Последние 20 тем форума на VBNet.Ru:

    12:40 / 24 мар. Как скролить MSFlexGrid или FlexGridPlus с помо... | Хитов: 4 | Ответов: 0
    12:33 / 24 мар. Администрации сайта!!! (Книги) | Хитов: 9 | Ответов: 0
    11:46 / 24 мар. Как зарегистрировать библиотеку? | Хитов: 8 | Ответов: 1
    10:27 / 24 мар. Помогите чайнику | Хитов: 8 | Ответов: 0
    10:24 / 24 мар. PictureBox | Хитов: 3 | Ответов: 0
    03:46 / 24 мар. !Амины! | Хитов: 17 | Ответов: 0
    00:12 / 24 мар. Нужна помощь | Хитов: 21 | Ответов: 0
    23:05 / 23 мар. ActiveX | Хитов: 42 | Ответов: 5
    21:56 / 23 мар. xml 2 rtf | Хитов: 12 | Ответов: 0
    19:56 / 23 мар. Смена языка клавиатуры на VBA | Хитов: 15 | Ответов: 1
    18:49 / 23 мар. Работа с формами в VB.NET | Хитов: 11 | Ответов: 1
    18:44 / 23 мар. Get/setwindowlong | Хитов: 10 | Ответов: 1
    17:10 / 23 мар. Где больше узнать о ASP??? | Хитов: 7 | Ответов: 0
    16:14 / 23 мар. Работа с инетом | Хитов: 19 | Ответов: 1
    15:31 / 23 мар. Бета-тестирование | Хитов: 34 | Ответов: 3
    13:11 / 23 мар. SystemTime | Хитов: 22 | Ответов: 2
    10:23 / 23 мар. Программа-паук | Хитов: 59 | Ответов: 4
    08:56 / 23 мар. Название таблиц из БД | Хитов: 18 | Ответов: 1
    08:04 / 23 мар. Публикация ваших программ | Хитов: 31 | Ответов: 2
    08:04 / 23 мар. Положение дочерней формы | Хитов: 17 | Ответов: 1

    Последние поступления в Библиотеку кодов:

    ComboBox: автоматическое открывание списка (53)
    Проверить, находится ли указанный файл ... (33)
    Генерация последовательности неповторяю... (35)
    Компактное отображение длинного имени пути (27)
    Вызов диалога "Поиск файлов" (112)
    Получить полное название окна, зная кусок (76)
    Получить содержимое Web-страницы, испол... (94)

    Новости от VBNet-чиков!:

    22:31 / 3 мар. Иван сообщает: Новый конкурс статей на сайте VBNet.RU, участвуйте! Главный приз - подписка на журнал Hard'n'Soft! Статьи принимаются до 1 апреля.

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    • 18.03.03

      VB - Исходные коды - Элементы управления - Создание Lable на форме и отлавливание движения 'мыши'
      Пример создания метки на форме и отлавливания, когда мышь выходить за её пределы.
      Автор: CyRax

      VB - Исходные коды - Работа с приложением - Пример создания программы уничтожающей саму себя
      Программа KillMe разработана на основе пограммы delself Влада Помелова .
      Устранены ошибки и доработана программа. Сейчас программа самоудаляется из любого места на диске, удаляется .bat файл. Остался баг: после самоликвидации в оперативке остаётся Winoldar. Тестировалось на Win98\Me
      Автор: В. Назаров

      VB - Исходные коды - Работа с приложением - Пример неуничтожаемой программы
      Программа AntiEnd - это реализация на VB6 "неубиваемой проги", которая при нажатии на [x] создаёт свой клон с передачей параметров от исходной программы.
      AntiEnd не закрывается по Ctrl+Alt+Delete.
      Автор: В. Назаров

      VB - Программы в кодах - Пользовательские - Программа "Прикол"
      Программа печатает в блокноте сообщение пользователю.
      Автор: В. Назаров

    наверх

    Новости сайта MSDN

    наверх

    Новости сайта GotdotNet

    • 21.03 - Призерами на этот раз стали Иванов Сергей и Иванов Роман.
      Спешите и Вы принять участие в конкурсе и получить интересные книги!

    Новые статьи:

    • 21.03 - Пакетная компиляция в ASP.NET
    • 17.03 - Разработка серверных элементов управления ASP.NET
    • 17.03 - Еще раз о многопоточности в Windows Forms

    наверх

    Новости сайта dotSite

    Новые статьи:

    Новые примеры:

    наверх

    Один момент из жизни форума: DisAssembler

    Вопрос:
    Автор вопроса: Millenium

    Срочно нужно достать дисс ассемблер с документацией...
    Кто знает методику создания ДисАссемблера на Бейзике?

    Ответы:

    Автор: F.A.K.K.2
    Ну, во первых дисассемблер конкретно для какого компилятора тебе нужен? Во вторых для создания дисассемблера тебе надо уметь читать байты и преобразовывать их в команды ассемблера, в совершенстве разбираться в структуре EXE файла, и к тому же уметь обрабатывать фызовы функций.
    Так что проще поискать IDA или W32Dasm, это нормальные, подходящие дисассемблеры

    Автор: Millenium
    Для WinEXE - знать хочу примерчики...
    И команды, а байты читать умею...

    Автор: SeMa
    Команды можно узнать с помощю HView или QView , но на *.com файле, так как ети проги не хавают ексе хеадера

    Автор: CyRax
    Хоть я и чайник в ассемблере, но выскажу своё мнение.
    По-моему нужно просто во всём тексте искать код команды и подставлять вместо него мнемонику.
    Например шестнадцатиричное CD 20 аналогично INT 20H и т.д.

    Автор: SeMa
    ну так тебе надо узнать какая команда, типа надо команда, и какой команде она соответствует на ассемблере и ето можно зделать с помощю HView или QView

    Автор: Millenium
    Дас... а яя уже на малых шагах делаю это всё...
    Список команд достать только надо...
    Кто HEX 16 читать умеет?

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: БВМ

    Ответ ожидается по этому адресу

    Проблема с Access2000. При подключении dbf таблиц при помощи ODCB VisualFoxpro драйвера (VFPODBC от 23.03.2000 ver 6.01.8629.01) не работатют запросы использующие UNION операцию. Например :
    SELECT FILD1, FILD2 FROM TAB1 UNION ALL SELECT FILD1, FILD2 FROM TAB1
    самообъединение написано для наглядности, та же ошибка при объединении разных таблиц. Выдается ошибка:
    ODBC - ошибка вызова. [Microsoft][ODBC VIsual FoxPro Driver]Syntax error. (№200)
    Пробовал и с сетевыми и с локальними таблицами - одно и то же. Кто знает подскажите.

    Автор вопроса: Stalker

    Ответ ожидается по этому адресу

    Как скрыть программу на Панели Задач (Ctrl+Alt+Del) в Windows XP?

    Автор вопроса: Stalker

    Ответ ожидается по этому адресу

    Троян использует mswinsck.ocx. Как сделать, чтобы троян при запуске автоматически регистрировал mswinsck.ocx?
    Может есть какой-то инсталятор, который позволяет не показывать окна, а просто запустить exe-шник и зарегить ActiveX?

    Автор вопроса: Владимир

    Ответ ожидается по этому адресу

    Подскажите как открыть Базу данных Microsoft Access 2000? С помощью Data1.databasename не получается, ругается что не подходящий формат!

    Автор вопроса: Maria Kudriavtzev

    Ответ ожидается по этому адресу

    Какую можно сделать заставку при загрузке программы?

    Автор вопроса: VOSH

    Ответ ожидается по этому адресу

    Люди, как поместить иконку(иконки) в трей и по нажатию на нее показать форму (для каждой тконки свою)????

    Ответы:

    Вопрос:

    Как в VBA седлать таймер?

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Напиши на VB контрол таймера и прицепи к VBA проекту

    Ответ:

    Автор ответа: Алексей

    Создать в новом потоке цикл

    Do while bEnabled
    sleep xxx
    loop

    Вопрос:

    Есть контрол стандартный "microsoft flexgrid control 6.0". Я в нём табличку вывожу. Нужно:
    1) Объединить некоторые ячейки.
    2) Раскрасить ячейки в разные цвета.
    Как?

    Ответ:

    Автор ответа: vmv

    With Me.MSFlexGrid1
    .Visible = False
    .Cols = 3: .Rows = 10

    .MergeCells = flexMergeFree 'разрешим объединение
    '.... тут ,например, заполнение таблицы
    .MergeCol(1) = True 'объединим ячейки по столбцу 1

    ' ВАЖНО ! - ячейки объединяться если содержат одинаковый .Text
    'т.е. эффект объединения виден только на экране(!),что выгодно улучшает
    'восприятие Вашей таблицы

    .MergeRow(2) = True '... по строке ...

    'красим в разные цвета
    .Col = 1: .Row = 2: .CellBackColor = vbYellow
    .Col = 2: .Row = 1: .CellBackColor = vbRed

    .Visible = True
    ' "выключение" видимости таблицы в начале и вкл. в конце -
    ' - позволит сделать, например, загрузку данными - моментальной
    End With

    P.S. в сети полно толковых статей по MsFlexGrid - например:
    В.Сартин "Элемент управления MicrosoftFlexGrid"

    Вопрос:

    Есть проблемма... Два компа подключены в сеть. На основном - ХР, на втором - Миллениум. Хотелось бы сделать проверку активности мыши на компах. Если в течении 10ти минут полный штиль, - выключать данный комп. Пособите,
    плизззз.... Если можно кусочки кода... Я давно не практикую...

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Нужно, чтоб было две проги. Одна - серверная. вторая - клиентская. И клиентская через GetCursorPos смотрит, не изменилось ли положение курсора. Хотя, по-моему, серверная часть проги ваще не нужна.

    Вопрос:

    Помогите достать исходный текст почтового клиента, написанный в Visual Basic (только чтобы не только получал, но еще и удалял письма из ящика

    Ответ:

    Автор ответа: Курбаков Виталий

    Вот здесь есть
    http://am.rusimport.ru/MSAccess/topic.aspx?ID=34
    там access-й но в VB переделать не трудно, сам делал...

    Вопрос:

    Как в коде VB прописать создание нового файла базы данных (именно создание а не обращение к существующему)? Файл нужен для real-time обновления таблицы значений, посему если пришлете кроме всего прочего еще и рекомендации по выбору типа базы данных для такой задачи - буду "спасибо".

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Стандартный мастер в VB - Visual Data Manager написан на ВБ и майкрософт распространяет на МСДН его исходный код. Остается только скопировать модули в свой проект.

    Вопрос:

    Ну что вы сидите не чего не делаете. А мне препод по "Статистике" задал задачу (чтоб ее). Я думал, "а фигня", а оказалось самый настоящий ГЕМОРРОЙ.
    Есть такая игра называется "Быки и коровы". Вот ее мне надо сделать на PC
    Смысл игры в том:
    Играет человек и ЭВМ
    Человек загадывает четырех значное число без одинаковых элементов и не начинающееся на 0 и ЭВМ
    Кто первый ходит говорит любое число, а второй игрок говорит ему сколько коров и быков. И так пока кто-нибудь не угадает число другого.
    Пример
    Я загадал 1234 кемп загадывает число 4321
    Я хожу первый "говорю" компу число 4652 кемп пишет типа 1 бык 1 корова
    Корова- число в загаданном числе есть но стоит не на том месте
    Бык - число есть и стоит на плевельном месте
    В примере число 4 - бык, а 2- корова
    Тоже самое делает кемп, и так до посинения
    Кто не понял я не виноват.

    Ответ:

    Автор ответа: Александр

    Учи лучше русский язык. Он тебе ещё понадобится. Делаешь так: берёшь блокнот, ручку, читаешь великолпный роман - например, Айрис Мердок "Чёрный принц", выписываешь фразы и выучиваешь их наизусть. Это тебе поможет такие плёвые задачи решать самостоятельно и даст трамплин для самостоятельности. А так - ты не-ин-те-ре-се-н.

    Вопрос:

    Dim FileName Aa Integer
    Private Sub Command1_Click()
    CommonDialog1.ShowOpen
    FileName = CommonDialog1.FileName
    Adodc1.ConnectionString = "provider=Microsoft.jet.oledb.4.0;data source = FileName"

    Возникает: Не удается найти c:\FileName
    Как сделать чтобы присвоить Adodc1.DataSource= то, что находится в FileName?

    Ответ:

    Автор ответа: Кременченко

    Adodc1.ConnectionString = "provider=Microsoft.jet.oledb.4.0;data source = " & FileName

    Ответ:

    Автор ответа: Шувакин Н.В.

    Ты задаешь FILENAME как целое число , а потом хочешь присвоить свойству datasourse число. а datasoure по моему должно быть string.

    Ответ:

    Автор ответа: Sergey

    Не знаю, какую конкретно ошибку генерирует Visual Basic,но я бы написал так:

    CommonDialog1.ShowOpen
    Dim FileName As String
    FileName = CommonDialog1.FileName

    if FileName <> vbNullString Then
    Adodc1.ConnectionString = "provider=Microsoft.jet.oledb.4.0;data source = " & FileName
    End If

    Ответ:

    Автор ответа: Лёха

    Попробуй:
    Adodc1.ConnectionString = "provider=Microsoft.jet.oledb.4.0;data source = " & FileName

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Оно и не удивительно. Ведь ты объявил переменную как Integer. Э этот тип, насколько мне известно, хранить строки не может. Используй String.

    Вопрос:

    Кто нибудь подскажите
    1) как с помощью API файл с харда залить на серевер в инете. Напр. на narod.ru?
    2) перебрать все открытые окна, найти среди них окна Internet Explorera, а потом еще и получить адресс в его адрессной строке и продолжить перебор?

    Ответ:

    Автор ответа: Алексей

    Юзай EnumWindows и FindWindow

    Вопрос:

    Можно ли при помощи Visual Basic'a дописать .exe-фаил?

    Ответ:

    Автор ответа: Артем Кривокрисенко

    А почему бы и нет? Если в конец ексе-файла чего-нибудь допишешь, его работоспособность не изменится.

    Вопрос:

    Что надо для работы с протоколами POP3,SMTP,IMAP.

    Ответ:

    Автор ответа: Алексей

    Надо юзать WINSOCK.ocx ;)

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 147.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта 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!!!

    Несколько слов от автора:

    Завтра у меня день рождения! Поздравления принимаются.
    Читайте!

    Содержание выпуска

    • Книги

    • VBNet CD 04 2003

    • Работа с CommonDialog без ocx: ShowColor/ShowPrinter
    • windows: Возвращение глубины цвета
    • Определить текущее разрешение экрана
    • Изменение набора изображений в элементе управления ImageList
    • Получить цвет пикселя вне формы

    • Вопрос/Ответ

    Книги

    Переход на 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 можно найти здесь.

    наверх

    VBNet CD 04 2003

    VBNet.RU представляет новый компакт диск "VBNet CD 04 2003". Диск был существенно переработан. Добавлено около 200 мб новой информации и софта.
    Добавлены новые разделы:
    • Эксклюзив - Здесь публикуются примеры и статьи, которые Вы не увидите нигде, кроме этого CD и моего копьютера... Ну в мой комп вряд ли кто-нибудь полезет, значит эти материалы есть только на этом CD! На данном компакт-диске находится 3 статьи ("Обзор ADO .NET", "Обзор ASP .NET", "Массивы и коллекции в Visual Basic .NET") и 5 примеров с большим количеством комментариев на русском языке (использование ADO .NET, отправка почты в VB .NET средствами CDO, отправка почты в VB .NET прямым взаимодействием с SMTP-сервером, использование технологии MS Agent в VB .NET и преобразование цветов в разные системы (RGB, YUV, YIQ, CMY, CMYK)).
    • Примеры - разнообразные примеры от простейших (использование массивов) до 3-мегобайтных коммерческих приложений с исходниками на VB.

    Раздел "Книги" пополнился книгой Андрея Гончарова "Мышление в стиле Visual Basic" в формате pdf.
    Большие изменения в разделе "Софт". Добавлены несколько патчей и исправлений для VS .NET. Также добавлены инструменты для создания приложений для мобильных утсройств.
    В раздел "ActiveX" добавлено 15 бесплатных компонентов и библиотек.

    Полное содержание диска Вы можете скачать здесь.

    Диск распространяется по почте наложенным платежом.
    Цена: 60 рублей + 40 рублей (за почтовые расходы) = 100 рублей. Действует система скидок для постоянных клиентов.
    Заказать диск можно здесь.

    наверх

    Работа с CommonDialog без ocx: ShowColor/ShowPrinter

    Данный пример (у меня на компе) реагирует только на два события:

    Call ShowColor
    Call ShowPrinter

    Поэтому этот пример является далеко не полным.

    Option Explicit

    'API function called by ChooseColor method
    Private Declare Function ChooseColor Lib "comdlg32.dll" Alias "ChooseColorA" (pChoosecolor As ChooseColor) As Long
    'API function called by ChooseFont method
    Private Declare Function CHOOSEFONT Lib "comdlg32.dll" Alias "ChooseFontA" (pChoosefont As CHOOSEFONT) As Long
    'API function inside ShowHelp method
    Private Declare Function WinHelp Lib "user32" Alias "WinHelpA" (ByVal hWnd As Long, ByVal lpHelpFile As String, ByVal wCommand As Long, ByVal dwData As Long) As Long
    'API function called by ShowOpen method
    Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OpenFilename) As Long
    'API function called by ShowSave method
    Private Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" (pOpenfilename As OpenFilename) As Long
    'API function called by ShowPrint method
    Private Declare Function PrintDlg Lib "comdlg32.dll" Alias "PrintDlgA" (pPrintdlg As PrintDlg) As Long
    'API function to retrieve extended error information
    Private Declare Function CommDlgExtendedError Lib "comdlg32.dll" () As Long
    'API memory functions
    Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long
    Private Declare Function GlobalFree Lib "kernel32" (ByVal hMem As Long) As Long
    Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As Long
    Private Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As Long) As Long

    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)

    'constants for API memory functions
    Private Const GMEM_MOVEABLE = &H2
    Private Const GMEM_ZEROINIT = &H40
    Private Const GHND = (GMEM_MOVEABLE Or GMEM_ZEROINIT)

    Public Enum ColorDlgFlags
    CC_RGBINIT = &H1
    CC_FULLOPEN = &H2
    CC_PREVENTFULLOPEN = &H4
    CC_SHOWHELP = &H8
    CC_ENABLEHOOK = &H10
    CC_ENABLETEMPLATE = &H20
    CC_ENABLETEMPLATEHANDLE = &H40
    CC_SOLIDCOLOR = &H80
    CC_ANYCOLOR = &H100
    End Enum

    'data buffer for the ChooseColor function
    Private Type ChooseColor
    lStructSize As Long
    hwndOwner As Long
    hInstance As Long
    rgbResult As Long
    lpCustColors As Long
    flags As Long
    lCustData As Long
    lpfnHook As Long
    lpTemplateName As String
    End Type

    'constants for LOGFONT
    Private Const LF_FACESIZE = 32
    Private Const LF_FULLFACESIZE = 64
    Private Const FW_BOLD = 700

    'data buffer for the ChooseFont function
    Private Type LOGFONT
    lfHeight As Long
    lfWidth As Long
    lfEscapement As Long
    lfOrientation As Long
    lfWeight As Long
    lfItalic As Byte
    lfUnderline As Byte
    lfStrikeOut As Byte
    lfCharSet As Byte
    lfOutPrecision As Byte
    lfClipPrecision As Byte
    lfQuality As Byte
    lfPitchAndFamily As Byte
    lfFaceName(LF_FACESIZE) As Byte
    End Type

    'data buffer for the ChooseFont function
    Private Type CHOOSEFONT
    lStructSize As Long
    hwndOwner As Long
    hdc As Long
    lpLogFont As Long
    iPointSize As Long
    flags As Long
    rgbColors As Long
    lCustData As Long
    lpfnHook As Long
    lpTemplateName As String
    hInstance As Long
    lpszStyle As String
    nFontType As Integer
    MISSING_ALIGNMENT As Integer
    nSizeMin As Long
    nSizeMax As Long
    End Type

    'data buffer for the GetOpenFileName and GetSaveFileName functions
    Private Type OpenFilename
    lStructSize As Long
    hwndOwner As Long
    hInstance As Long
    lpstrFilter As String
    lpstrCustomFilter As String
    nMaxCustFilter As Long
    iFilterIndex As Long
    lpstrFile As String
    nMaxFile As Long
    lpstrFileTitle As String
    nMaxFileTitle As Long
    lpstrInitialDir As String
    lpstrTitle As String
    flags As Long
    nFileOffset As Integer
    nFileExtension As Integer
    lpstrDefExt As String
    lCustData As Long
    lpfnHook As Long
    lpTemplateName As String
    End Type

    'data buffer for the PrintDlg function
    Private Type PrintDlg
    lStructSize As Long
    hwndOwner As Long
    hDevMode As Long
    hDevNames As Long
    hdc As Long
    flags As Long
    nFromPage As Integer
    nToPage As Integer
    nMinPage As Integer
    nMaxPage As Integer
    nCopies As Integer
    hInstance As Long
    lCustData As Long
    lpfnPrintHook As Long
    lpfnSetupHook As Long
    lpPrintTemplateName As String
    lpSetupTemplateName As String
    hPrintTemplate As Long
    hSetupTemplate As Long
    End Type

    'internal property buffers

    Private iAction As Integer 'internal buffer for Action property
    Private bCancelError As Boolean 'internal buffer for CancelError property
    Private lColor As Long 'internal buffer for Color property
    Private lCopies As Long 'internal buffer for lCopies property
    Private sDefaultExt As String 'internal buffer for sDefaultExt property
    Private sDialogTitle As String 'internal buffer for DialogTitle property
    Private sFileName As String 'internal buffer for FileName property
    Private sFileTitle As String 'internal buffer for FileTitle property
    Private sFilter As String 'internal buffer for Filter property
    Private iFilterIndex As Integer 'internal buffer for FilterIndex property
    Private lFlags As Long 'internal buffer for Flags property
    Private bFontBold As Boolean 'internal buffer for FontBold property
    Private bFontItalic As Boolean 'internal buffer for FontItalic property
    Private sFontName As String 'internal buffer for FontName property
    Private lFontSize As Long 'internal buffer for FontSize property
    Private bFontStrikethru As Boolean 'internal buffer for FontStrikethru property
    Private bFontUnderline As Boolean 'internal buffer for FontUnderline property
    Private lFromPage As Long 'internal buffer for FromPage property
    Private lhdc As Long 'internal buffer for hdc property
    Private lHelpCommand As Long 'internal buffer for HelpCommand property
    Private sHelpContext As String 'internal buffer for HelpContext property
    Private sHelpFile As String 'internal buffer for HelpFile property
    Private sHelpKey As String 'internal buffer for HelpKey property
    Private sInitDir As String 'internal buffer for InitDir property
    Private lMax As Long 'internal buffer for Max property
    Private lMaxFileSize As Long 'internal buffer for MaxFileSize property
    Private lMin As Long 'internal buffer for Min property
    Private objObject As Object 'internal buffer for Object property
    Private iPrinterDefault As Integer 'internal buffer for PrinterDefault property
    Private lToPage As Long 'internal buffer for ToPage property

    Private lApiReturn As Long 'internal buffer for APIReturn property
    Private lExtendedError As Long 'internal buffer for ExtendedError property

    'constants for color dialog
    Private Const CDERR_DIALOGFAILURE = &HFFFF
    Private Const CDERR_FINDRESFAILURE = &H6
    Private Const CDERR_GENERALCODES = &H0
    Private Const CDERR_INITIALIZATION = &H2
    Private Const CDERR_LOADRESFAILURE = &H7
    Private Const CDERR_LOADSTRFAILURE = &H5
    Private Const CDERR_LOCKRESFAILURE = &H8
    Private Const CDERR_MEMALLOCFAILURE = &H9
    Private Const CDERR_MEMLOCKFAILURE = &HA
    Private Const CDERR_NOHINSTANCE = &H4
    Private Const CDERR_NOHOOK = &HB
    Private Const CDERR_NOTEMPLATE = &H3
    Private Const CDERR_REGISTERMSGFAIL = &HC
    Private Const CDERR_STRUCTSIZE = &H1

    'constants for file dialog

    Private Const FNERR_BUFFERTOOSMALL = &H3003
    Private Const FNERR_FILENAMECODES = &H3000
    Private Const FNERR_INVALIDFILENAME = &H3002
    Private Const FNERR_SUBCLASSFAILURE = &H3001

    Public Sub ShowColor()
    'display the color dialog box
    Dim tChooseColor As ChooseColor
    Dim alCustomColors(15) As Long
    Dim lCustomColorSize As Long
    Dim lCustomColorAddress As Long
    Dim lMemHandle As Long

    Dim n As Integer

    On Error GoTo ShowColorError

    '*** init property buffers
    iAction = 3 'Action property - ShowColor
    lApiReturn = 0 'APIReturn property
    lExtendedError = 0 'ExtendedError property
    '*** prepare tChooseColor data
    'lStructSize As Long
    tChooseColor.lStructSize = Len(tChooseColor)
    'hwndOwner As Long
    tChooseColor.hwndOwner = lhdc
    'hInstance As Long
    'rgbResult As Long
    tChooseColor.rgbResult = lColor
    'lpCustColors As Long
    ' Fill custom colors array with all white
    For n = 0 To UBound(alCustomColors)
    alCustomColors(n) = &HFFFFFF
    Next
    ' Get size of memory needed for custom colors
    lCustomColorSize = Len(alCustomColors(0)) * 16
    ' Get a global memory block to hold a copy of the custom colors
    lMemHandle = GlobalAlloc(GHND, lCustomColorSize)
    If lMemHandle = 0 Then
    Exit Sub
    End If
    ' Lock the custom color's global memory block
    lCustomColorAddress = GlobalLock(lMemHandle)
    If lCustomColorAddress = 0 Then
    Exit Sub
    End If
    ' Copy custom colors to the global memory block
    Call CopyMemory(ByVal lCustomColorAddress, alCustomColors(0), lCustomColorSize)
    tChooseColor.lpCustColors = lCustomColorAddress
    'flags As Long
    tChooseColor.flags = lFlags
    'lCustData As Long
    'lpfnHook As Long
    'lpTemplateName As String
    '*** call the ChooseColor API function
    lApiReturn = ChooseColor(tChooseColor)
    '*** handle return from ChooseColor API function
    Select Case lApiReturn
    Case 0 'user canceled
    If bCancelError = True Then
    'generate an error
    On Error GoTo 0
    Err.Raise Number:=vbObjectError + 894, Description:="Cancel Pressed"
    Exit Sub
    End If
    Case 1 'user selected a color
    'update property buffer
    lColor = tChooseColor.rgbResult
    Case Else 'an error occured
    'call CommDlgExtendedError
    lExtendedError = CommDlgExtendedError
    End Select
    Exit Sub

    ShowColorError:
    Exit Sub
    End Sub

    Public Sub ShowFont()
    'display the font dialog box
    Dim tLogFont As LOGFONT
    Dim tChooseFont As CHOOSEFONT
    Dim lLogFontSize As Long
    Dim lLogFontAddress As Long
    Dim lMemHandle As Long
    Dim lReturn As Long
    Dim sFont As String
    Dim lBytePoint As Long
    On Error GoTo ShowFontError

    '*** init property buffers
    iAction = 4 'Action property - ShowFont
    lApiReturn = 0 'APIReturn property
    lExtendedError = 0 'ExtendedError property
    '*** prepare tChooseFont data
    'tLogFont.lfHeight As Long
    'tLogFont.lfWidth As Long
    'tLogFont.lfEscapement As Long
    'tLogFont.lfOrientation As Long
    'tLogFont.lfWeight As Long - init from FontBold property
    If bFontBold = True Then
    tLogFont.lfWeight = FW_BOLD
    End If
    'tLogFont.lfItalic As Byte - init from FontItalic property
    If bFontItalic = True Then
    tLogFont.lfItalic = 1
    End If
    'tLogFont.lfUnderline As Byte - init from FontUnderline property
    If bFontUnderline = True Then
    tLogFont.lfUnderline = 1
    End If
    'tLogFont.lfStrikeOut As Byte - init from FontStrikethru property
    If bFontStrikethru = True Then
    tLogFont.lfStrikeOut = 1
    End If
    'tLogFont.lfCharSet As Byte
    'tLogFont.lfOutPrecision As Byte
    'tLogFont.lfClipPrecision As Byte
    'tLogFont.lfQuality As Byte
    'tLogFont.lfPitchAndFamily As Byte
    'tLogFont.lfFaceName(LF_FACESIZE) As Byte
    'tChooseFont.lStructSize As Long
    tChooseFont.lStructSize = Len(tChooseFont)
    'tChooseFont.hwndOwner As Long
    'tChooseFont.hdc As Long
    'tChooseFont.lpLogFont As Long
    lLogFontSize = Len(tLogFont)
    ' Get a global memory block to hold a copy of tLogFont - exit on failure
    lMemHandle = GlobalAlloc(GHND, lLogFontSize)
    If lMemHandle = 0 Then
    Exit Sub
    End If
    ' Lock tLogFont's global memory block - exit on failure
    lLogFontAddress = GlobalLock(lMemHandle)
    If lLogFontAddress = 0 Then
    Exit Sub
    End If
    ' Copy tLogFont to the global memory block
    Call CopyMemory(ByVal lLogFontAddress, tLogFont, lLogFontSize)
    tChooseFont.lpLogFont = lLogFontAddress
    'tChooseFont.iPointSize As Long - init from FontSize property
    tChooseFont.iPointSize = lFontSize * 10
    'tChooseFont.flags As Long - init from Flags property
    tChooseFont.flags = lFlags
    'tChooseFont.rgbColors As Long
    'tChooseFont.lCustData As Long
    'tChooseFont.lpfnHook As Long
    'tChooseFont.lpTemplateName As String
    'tChooseFont.hInstance As Long
    'tChooseFont.lpszStyle As String
    'sFont = Chr$(0) & Space$(20) & Chr$(0)
    'tChooseFont.lpszStyle = sFont
    'tChooseFont.nFontType As Integer
    'tChooseFont.MISSING_ALIGNMENT As Integer
    'tChooseFont.nSizeMin As Long
    'tChooseFont.nSizeMax As Long
    '*** call the CHOOSEFONT API function
    lApiReturn = CHOOSEFONT(tChooseFont) 'store to APIReturn property
    '*** handle return from CHOOSEFONT API function
    Select Case lApiReturn
    Case 0 'user canceled
    If bCancelError = True Then
    'generate an error
    Err.Raise (2001)
    Exit Sub
    End If

    Case 1 'user selected a font
    ' Copy global memory block to tLogFont
    Call CopyMemory(tLogFont, ByVal lLogFontAddress, lLogFontSize)
    'tLogFont.lfWeight As Long - store to FontBold property
    If tLogFont.lfWeight >= FW_BOLD Then
    bFontBold = True
    Else
    bFontBold = False
    End If
    'tLogFont.lfItalic As Byte - store to FontItalic property
    If tLogFont.lfItalic = 1 Then
    bFontItalic = True
    Else
    bFontItalic = False
    End If
    'tLogFont.lfUnderline As Byte - store to FontUnderline property
    If tLogFont.lfUnderline = 1 Then
    bFontUnderline = True
    Else
    bFontUnderline = False
    End If

    'tLogFont.lfStrikeOut As Byte - store to FontStrikethru property
    If tLogFont.lfStrikeOut = 1 Then
    bFontStrikethru = True
    Else
    bFontStrikethru = False
    End If

    'tLogFont.lfFaceName(LF_FACESIZE) As Byte - store to FontName property
    FontName = sByteArrayToString(tLogFont.lfFaceName())

    'tChooseFont.iPointSize As Long - store to FontSize property
    lFontSize = CLng(tChooseFont.iPointSize / 10)

    Case Else 'an error occured
    'call CommDlgExtendedError
    lExtendedError = CommDlgExtendedError 'store to ExtendedError property

    End Select

    Exit Sub

    ShowFontError:
    Exit Sub
    End Sub

    Public Sub ShowHelp()
    'run winhelp.exe with the specified help file
    Dim sHelpFileBuff As String
    Dim lData As Long

    On Error GoTo ShowHelpError

    '*** init Private properties
    iAction = 6 'Action property - ShowHelp
    lApiReturn = 0 'APIReturn property
    lExtendedError = 0 'ExtendedError property

    '*** prepare the buffers and parameters for the API function
    'sHelpFile is a null terminated string
    sHelpFileBuff = sHelpFile & Chr$(0)

    'sData is dependent on lHelpCommand
    Select Case lHelpCommand
    Case 0
    lData = 0
    Case Else
    lData = 0
    End Select

    '*** call the API function
    lApiReturn = WinHelp(lhdc, sHelpFile, lHelpCommand, lData) ' - Store to APIReturn property

    Select Case lApiReturn
    Case 0 '
    'call CommDlgExtendedError
    lExtendedError = CommDlgExtendedError ' - store to ExtendedError property

    Case Else '
    'call CommDlgExtendedError
    lExtendedError = CommDlgExtendedError

    End Select

    Exit Sub

    ShowHelpError:
    Exit Sub
    End Sub

    Public Sub ShowOpen()
    'display the file open dialog box
    ShowFileDialog (1) 'Action property - ShowOpen
    End Sub

    Public Sub ShowPrinter()
    'display the print dialog
    Dim tPrintDlg As PrintDlg

    On Error GoTo ShowPrinterError

    '*** init public properties
    iAction = 5 'Action property - ShowPrint
    lApiReturn = 0 'APIReturn property
    lExtendedError = 0 'ExtendedError property

    '*** prepare tPrintDlg data

    'lStructSize As Long
    tPrintDlg.lStructSize = Len(tPrintDlg)

    'hwndOwner As Long

    'hDevMode As Long

    'hDevNames As Long

    'hdc As Long - init from hDC property
    tPrintDlg.hdc = lhdc

    'flags As Long - init from Flags property
    tPrintDlg.flags = lFlags

    'nFromPage As Integer - init from FromPage property
    tPrintDlg.nFromPage = lFromPage

    'nToPage As Integer - init from ToPage property
    tPrintDlg.nToPage = lToPage

    'nMinPage As Integer - init from Min property
    tPrintDlg.nMinPage = lMin

    'nMaxPage As Integer - init from Max property
    tPrintDlg.nMaxPage = lMax

    'nCopies As Integer - init from Copies property
    tPrintDlg.nCopies = lCopies

    'hInstance As Long

    'lCustData As Long

    '*** Call the PrintDlg API function
    lApiReturn = PrintDlg(tPrintDlg)

    '*** handle return from PrintDlg API function
    Select Case lApiReturn

    Case 0 'user canceled
    If bCancelError = True Then
    'generate an error
    Err.Raise (2001)
    Exit Sub
    End If

    Case 1 'user selected OK
    'nFromPage As Integer - store to FromPage property
    lFromPage = tPrintDlg.nFromPage

    'nToPage As Integer - store to ToPage property
    lToPage = tPrintDlg.nToPage

    'nMinPage As Integer - store to Min property
    lMin = tPrintDlg.nMinPage

    'nMaxPage As Integer - store to Max property
    lMax = tPrintDlg.nMaxPage

    'nCopies As Integer - store to Copies property
    lCopies = tPrintDlg.nCopies

    Case Else 'an error occured
    'call CommDlgExtendedError
    lExtendedError = CommDlgExtendedError 'store to ExtendedError property

    End Select

    Exit Sub

    ShowPrinterError:
    Exit Sub
    End Sub

    Public Sub ShowSave()
    'display the file save dialog box
    ShowFileDialog (2) 'Action property - ShowSave
    End Sub

    Private Function sLeftOfNull(ByVal sIn As String)
    'returns the part of sIn preceding Chr$(0)
    Dim lNullPos As Long

    'init output
    sLeftOfNull = sIn

    'get position of first Chr$(0) in sIn
    lNullPos = InStr(sIn, Chr$(0))

    'return part of sIn to left of first Chr$(0) if found
    If lNullPos > 0 Then
    sLeftOfNull = Mid$(sIn, 1, lNullPos - 1)
    End If
    End Function

    Private Function sAPIFilter(sIn)
    'prepares sIn for use as a filter string in API common dialog functions
    Dim lChrNdx As Long
    Dim sOneChr As String
    Dim sOutStr As String

    'convert any | characters to nulls
    For lChrNdx = 1 To Len(sIn)
    sOneChr = Mid$(sIn, lChrNdx, 1)
    If sOneChr = "|" Then
    sOutStr = sOutStr & Chr$(0)
    Else
    sOutStr = sOutStr & sOneChr
    End If
    Next

    'add a null to the end
    sOutStr = sOutStr & Chr$(0)

    'return sOutStr
    sAPIFilter = sOutStr

    End Function

    Private Function sByteArrayToString(abBytes() As Byte) As String
    'return a string from a byte array
    Dim lBytePoint As Long
    Dim lByteVal As Long
    Dim sOut As String

    'init array pointer
    lBytePoint = LBound(abBytes)

    'fill sOut with characters in array
    While lBytePoint
    lByteVal = abBytes(lBytePoint)

    'return sOut and stop if Chr$(0) is encountered
    If lByteVal = 0 Then
    sByteArrayToString = sOut
    Exit Function
    Else
    sOut = sOut & Chr$(lByteVal)
    End If

    lBytePoint = lBytePoint + 1
    Wend

    'return sOut if Chr$(0) wasn't encountered
    sByteArrayToString = sOut
    End Function

    Private Sub ShowFileDialog(ByVal iAction As Integer)
    'display the file dialog for ShowOpen or ShowSave

    Dim tOpenFile As OpenFilename
    Dim lMaxSize As Long
    Dim sFileNameBuff As String
    Dim sFileTitleBuff As String

    On Error GoTo ShowFileDialogError

    '*** init property buffers

    iAction = iAction 'Action property
    lApiReturn = 0 'APIReturn property
    lExtendedError = 0 'ExtendedError property

    '*** prepare tOpenFile data

    'tOpenFile.lStructSize As Long
    tOpenFile.lStructSize = Len(tOpenFile)

    'tOpenFile.hWndOwner As Long - init from hdc property
    tOpenFile.hwndOwner = lhdc

    'tOpenFile.lpstrFilter As String - init from Filter property
    tOpenFile.lpstrFilter = sAPIFilter(sFilter)

    'tOpenFile.iFilterIndex As Long - init from FilterIndex property
    tOpenFile.iFilterIndex = iFilterIndex

    'tOpenFile.lpstrFile As String
    'determine size of buffer from MaxFileSize property
    If lMaxFileSize > 0 Then
    lMaxSize = lMaxFileSize
    Else
    lMaxSize = 255
    End If

    'tOpenFile.lpstrFile As Long - init from FileName property
    'prepare sFileNameBuff
    sFileNameBuff = sFileName
    'pad with spaces
    While Len(sFileNameBuff)
    sFileNameBuff = sFileNameBuff & " "
    Wend
    'trim to length of lMaxFileSize - 1
    sFileNameBuff = Mid$(sFileNameBuff, 1, lMaxFileSize - 1)
    'null terminate
    sFileNameBuff = sFileNameBuff & Chr$(0)
    tOpenFile.lpstrFile = sFileNameBuff

    'nMaxFile As Long - init from MaxFileSize property
    If lMaxFileSize = 255 Then 'default is 255
    tOpenFile.nMaxFile = lMaxFileSize
    End If

    'lpstrFileTitle As String - init from FileTitle property
    'prepare sFileTitleBuff
    sFileTitleBuff = sFileTitle
    'pad with spaces
    While Len(sFileTitleBuff)
    sFileTitleBuff = sFileTitleBuff & " "
    Wend
    'trim to length of lMaxFileSize - 1
    sFileTitleBuff = Mid$(sFileTitleBuff, 1, lMaxFileSize - 1)
    'null terminate
    sFileTitleBuff = sFileTitleBuff & Chr$(0)
    tOpenFile.lpstrFileTitle = sFileTitleBuff
    'tOpenFile.lpstrInitialDir As String - init from InitDir property
    tOpenFile.lpstrInitialDir = sInitDir
    'tOpenFile.lpstrTitle As String - init from DialogTitle property
    tOpenFile.lpstrTitle = sDialogTitle
    'tOpenFile.flags As Long - init from Flags property
    tOpenFile.flags = lFlags
    'tOpenFile.lpstrDefExt As String - init from DefaultExt property
    tOpenFile.lpstrDefExt = sDefaultExt

    '*** call the GetOpenFileName API function
    Select Case iAction
    Case 1 'ShowOpen
    lApiReturn = GetOpenFileName(tOpenFile)
    Case 2 'ShowSave
    lApiReturn = GetSaveFileName(tOpenFile)
    Case Else 'unknown action
    Exit Sub
    End Select
    '*** handle return from GetOpenFileName API function
    Select Case lApiReturn
    Case 0 'user canceled
    If bCancelError = True Then
    'generate an error
    Err.Raise (2001)
    Exit Sub
    End If
    Case 1 'user selected or entered a file
    'sFileName gets part of tOpenFile.lpstrFile to the left of first Chr$(0)
    sFileName = sLeftOfNull(tOpenFile.lpstrFile)
    sFileTitle = sLeftOfNull(tOpenFile.lpstrFileTitle)
    Case Else 'an error occured
    'call CommDlgExtendedError
    lExtendedError = CommDlgExtendedError
    End Select
    Exit Sub

    ShowFileDialogError:
    Exit Sub
    End Sub

    Private Sub Command1_Click()
    Call ShowColor
    Call ShowPrinter
    'Call ShowFont
    'Call ShowHelp
    'Call ShowOpen
    'Call ShowSave
    End Sub

    наверх

    windows: Возвращение глубины цвета

    Функция возвращает глубину цвета - 8, 16, 24 или 32

    Private Const PLANES& = 14
    Private Const BITSPIXEL& = 12
    Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long
    Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long
    Public Function ColorDepth() As Integer
    Dim intPlanes As Integer
    Dim intBitsPerPixel As Integer
    Dim lngDC As Long
    lngDC = GetDC(0)
    intPlanes = GetDeviceCaps(lngDC, PLANES)
    intBitsPerPixel = GetDeviceCaps(lngDC, BITSPIXEL)
    ReleaseDC 0, lngDC
    ColorDepth = intPlanes * intBitsPerPixel
    End Function

    Private Sub Form_Load()
    Dim intColorDepth As Integer
    intColorDepth = ColorDepth
    MsgBox intColorDepth
    End Sub

    наверх

    Определить текущее разрешение экрана

    Private Sub Form_Load()
    Dim intWidth As Integer
    Dim intHeight As Integer
    intWidth = Screen.Width \ Screen.TwipsPerPixelX
    intHeight = Screen.Height \ Screen.TwipsPerPixelY
    MsgBox "Screen Resolution:" + vbCrLf + vbCrLf + Str$(intWidth) + " x" + Str$(intHeight), 64, "Info"
    End Sub

    наверх

    Изменение набора изображений в элементе управления ImageList

    В режиме разработки проекта вам может пригодиться возможность свободно добавлять изображения в элемент управления ImageList, связанный с элементом управления Toolbar, или удалять их оттуда. И поскольку VB не позволяет изменять набор изображений в ImageList, пока он связан с панелью инструментов, мы покажем вам способ, как обойти данное ограничение

    Шаг 1. Заполнение элемента управления ImageList.Поместите элемент управления ImageList на форму.(Если данный компонент не входит в комплект инструментальных средств вашего проекта, то его можно добавить так, как показано в Совете 187.) Щелкните по нему правой кнопкой мыши, а затем выберите команду Properties для открытия диалогового окна Property Pages. Выберите вкладку Images и щелкните кнопку Insert Picture. В диалоговом окне Select Picture найдите изображение, которое хотите добавить в элемент управления ImageList. Присвойте ему уникальное свойство Key. Повторите эти операции, пока не заполните элемент управления ImageList так, как вам хочется.

    Шаг 2. Добавление кнопок к панели инструментов.Щелкните правой кнопкой мыши элемент управления Toolbar и затем выберите команду Properties. В раскрывшемся диалоговом окне Property Pages выберите вкладку Buttons. Щелкните кнопку Insert Button и в текстовом поле Key введите уникальное имя, присвоенное изображению в элементе управления ImageList. Каждая кнопка с изображением должна иметь то же свойство Key, что и соответствующее изображение в компоненте ImageList. Каждая кнопка без изображения, например tbrSeparator или tbrPlaceholder, не должна иметь свойства Key.

    Шаг 3. В событии Load для формы установите связь элементов управления ImageList и Toolbar:

    Set ToolBar1.ImageList = ImageList1

    Шаг 4. Присвойте изображения кнопкам на панели инструментов:

    Dim myButton as Variant
    For Each myButton in ToolBar1.Buttons
    If myButton.Key <> Empty Then
    myButton.Image = myButton.Key
    ' если значение свойство Key имеет
    ' какой-либо смысл, используйте его
    ' для описания и текста подсказки
    myButton.Description = myButton.Key
    myButton.ToolTipText = myButton.Key
    End If
    Next

    (Источник: Компьютер-пресс'1999)

    наверх

    Получить цвет пикселя вне формы

    Картинка будет иметь цвет пикселя под курсором мышки. Не важно где находится курсор (на вашей форме или нет) TextBox покажет Hex-значение цвета. Добавьте элементы Timer, PictureBox и Text Box на форму

    Private Declare Function CreateDC& Lib "gdi32" Alias "CreateDCA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, lpInitData As Any)
    Private Declare Function DeleteDC& Lib "gdi32" (ByVal hdc As Long)
    Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
    Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
    Private Type POINTAPI
    x As Long
    y As Long
    End Type
    Dim z As POINTAPI

    Private Sub Form_Load()
    Timer1.Interval = 10
    End Sub
    Private Sub Timer1_Timer()
    GetCursorPos z
    screendc = CreateDC("DISPLAY", "", "", 0&)
    'замените текст Text1 = Hex(GetPixel(screendc, z.x, z.y))
    'если вы хотите увидеть Hex-значение цвета
    Text1 = GetPixel(screendc, z.x, z.y)
    Picture1.BackColor = GetPixel(screendc, z.x, z.y)
    DeleteDC (screendc)
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: 001

    Ответ ожидается по этому адресу

    У меня за последнее время скопилось несколько вопросов:

    1. Ваш совет проиграть MP3 на MMControl с DeviceType="MpegVideo" не пошел, да и я не нашел в реестре по указанному вами пути типы девайсов, попробовал я играть его на ActiveMovie Control, знакомые люди сказали, что должно заработать, но при запуске проекта выскакивает сообщение: System error &H80004005 (-2147467259), может кто сталкивался с аналогичной проблемой, на всякий случай у меня Win98, DirectX 8.1, VisualBasic 6 SP5, с железом проблем нет. Просьба объяснить нормально, с помощью чего и, главное, как играть MP3 в Visual Basic?

    2. Можно ли с помощью WinSock'а органияовать UDP или TCP свяяь по модему на прямую, без ИНЕТа? Если можно, то как узнать номера портов для связи?

    Автор вопроса: ximik

    Ответ ожидается по этому адресу

    Можно ли на Visual Basice написать программу каторая бы уменьшала скорость CD если можно то как ?

    Автор вопроса: Alex

    Ответ ожидается по этому адресу

    Есть запрос на ACCESS который работает с переменой как передать эту переменую через VB

    Автор вопроса: MaxiM

    Ответ ожидается по этому адресу

    Как компилить прогу в vb7 (net)???
    И можно ли там работать с директом икс ???

    Автор вопроса: Valery Tesher

    Ответ ожидается по этому адресу

    Как прокручивать TreeView в процессе drag-and-drop, когда курсор мышки достигает верхнего или нижнего края этого компонента?

    Автор вопроса: Максим Гаранин

    Ответ ожидается по этому адресу

    Можно ли в Access программно открыть запрос, основанный на SQL-операторе SELECT (строка с SQL-инструкцией может изменяться)?
    Метод DoCmd.OpenQuery работает только для сохраненных запросов, а метод DoCmd.RunSQL не работает с SELECT.

    Автор вопроса: Анатолий

    Ответ ожидается по этому адресу

    Подскажите пож-та, у меня БД на Access-97, как выбрав на форме перекл-ль или лучше из поля со списком (VB должен определять и выводить имена принтеров, установленных в данный момент на компе) и делать его "по умолчанию". Т.е. то печатаем отчет на HP-1000, то отправляем на принтер/факс VentaFax.

    Автор вопроса: Данила

    Ответ ожидается по этому адресу

    Есть ComboBox, в нём значения из таблицы (методом ADD). Таблица подключается с помощью DAO 3.51 и имеет 2 колонки. В ComboBox выбрали значение из 1-ой колонки. Как узнать соответствующее ему значение из 2-ой колонки.

    Автор вопроса: Sergey

    Ответ ожидается по этому адресу

    1. Вы не подскажете как удалить приложение из диспетчера задач я работаю на VB 6.0 под WinXP.
    2. И ещё как в этом виндовсе можно отключить драйвера, например, для мыши или как её можно откл.

    Автор вопроса: goodroman

    Ответ ожидается по этому адресу

    Что такое WINSOCK? Он штучка вообще в VB входит или это чё другое?

    Ответы:

    Вопрос:

    Как в коде VB прописать создание нового файла базы данных (именно создание а не обращение к существующему)? Файл нужен для real-time обновления таблицы значений, посему если пришлете кроме всего прочего еще и рекомендации по выбору типа базы данных для такой задачи - буду "спасибо".

    Ответ:

    Автор ответа: Alexbor

    Для Access это выглядит так:

    Dim wrkDefault As Workspace

    'создаем временную БД
    Set wrkDefault = DBEngine.Workspaces(0)

    Set dbTempDB = wrkDefault.CreateDatabase(App.Path & "\TempDB.mdb", _
    dbLangCyrillic)

    P.S. Не забудь подключить в Project-References библиотеку Microsoft DAO 3.6. Object Library.

    Ответ:

    Автор ответа: Кирко Владимир

    См. примеры на http://www.vbnet.ru/faq/showfaqgroup.asp?id=23

    Вопрос:

    Dim FileName Aa Integer
    Private Sub Command1_Click()
    CommonDialog1.ShowOpen
    FileName = CommonDialog1.FileName
    Adodc1.ConnectionString = "provider=Microsoft.jet.oledb.4.0;data source = FileName"

    Возникает: Не удается найти c:\FileName
    Как сделать чтобы присвоить Adodc1.DataSource= то, что находится в FileName?

    Ответ:

    Автор ответа: Сергей

    Dim db As Connection
    Set db = New Connection
    db.CursorLocation = adUseClient
    db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\transport.mdb;"

    Ответ:

    Автор ответа: Шалгачёв Алексей

    Попробуй так:

    Private Sub Command1_Click()
    Dim FileName
    CommonDialog1.ShowOpen
    FileName = CommonDialog1.FileName
    Adodc1.ConnectionString = "provider=Microsoft.jet.oledb.4.0;data source = " & FileName
    End Sub

    Вопрос:

    Троян использует mswinsck.ocx. Как сделать, чтобы троян при запуске автоматически регистрировал mswinsck.ocx?
    Может есть какой-то инсталятор, который позволяет не показывать окна, а просто запустить exe-шник и зарегить ActiveX?

    Ответ:

    Автор ответа: Programmer

    Глянь тут http://www.vbnet.ru/forum/show.asp?id=12466

    Ответ:

    Автор ответа: Dima

    regsvr32 \mswinsck.ocx /s
    подробнее о ключах: regsvr32 /?

    Вопрос:

    Подскажите как открыть Базу данных Microsoft Access 2000? С помощью Data1.databasename не получается, ругается что не подходящий формат!

    Ответ:

    Автор ответа: Кременченко

    Была та же проблема. Может я действовал непрофессионально, но выкрутился, преобразовав базу данных Access 2000 в 97-ю (Сервис - Служебные программы - Преобразовать базу данных). Просто возникло подозрение, что этот .ocx работает только с 97 - й версией.

    Ответ:

    Автор ответа: ViTal

    А если в свойстве Connect установить Access 2000?

    Ответ:

    Автор ответа: Александр Горбылёв

    Это зависит от варианта подключения Access 2000. Должен быть установленным также MDAC не ниже версии 2.5. Выбирай свой случай. Далее
    Set rs = oConn.Execute "SELECT..." или что-то в этом роде.

    If MDB has a database password

    oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=c:\somepath\mydb.mdb;" & _
    "Jet OLEDB:Database Password=MyDbPassword;", _
    "myUsername", "myPassword"

    If want to open up the MDB exclusively

    oConn.Mode = adModeShareExclusive
    oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=c:\somepath\myDb.mdb;" & _
    "User Id=admin;" & _
    "Password=;"

    If MDB is located on a network share

    oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=\\myServer\myShare\myPath\myDb.mdb;

    If MDB is located on a remote machine
    - Or use an XML Web Service via SOAP Toolkit or ASP.NET
    - Or upgrade to SQL Server and use an IP connection string
    - Use an ADO URL with a remote ASP web page
    - Or use a "MS Remote" or RDS connection string

    If you don't know the path to the MDB (using ASP)

    <% ' ASP server-side code
    oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" & Server.MapPath(".") & "\myDb.mdb;" & _
    "User Id=admin;" & _
    "Password=;"
    %>
    This assumes the MDB is in the same directory where the ASP page is running. Also make sure this directory has Write permissions for the user account.

    If you don't know the path to the MDB (using VB)

    oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" & App.Path & "\myDb.mdb;" & _
    "User Id=admin;" & _
    "Password=;"
    This assumes the MDB is in the same directory where the application is running.

    For more information, see: OLE DB Provider for Microsoft Jet, Q191754, and Q225048

    Note: Microsoft.Jet.OLEDB.3.51 only gets installed by MDAC 2.0. Q197902
    Note: MDAC 2.6 and 2.7 do not contain any of the JET components. Q271908 and Q239114

    To view Microsoft KB articles related to OLE DB Provider for Microsoft JET, click here

    Ответ:

    Автор ответа: Denis

    Необходимо подключить DAO 3.6

    Вопрос:

    Какую можно сделать заставку при загрузке программы?

    Ответ:

    Автор ответа: ]CBK[CRaSH

    Создаеш форму frmLoad
    создаеш процедуру main() в модуле
    в проекте ставиш его в загрузку load StartUp
    в процедуре пишиш

    frmLoad.show
    load frmMain
    load frmMain2
    load frmMain3
    unload frmLoad
    frmMain.show

    Вопрос:

    Люди, как поместить иконку(иконки) в трей и по нажатию на нее показать форму (для каждой тконки свою)????

    Ответ:

    Автор ответа: Programmer

    По этому поводу существует масса контролов и других причиндалов.
    Сходи на www.vbnet.ru www.vbstreets.ru www.vbrussian.com там этого добра навалом.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 148.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Очередной выпуск рассылки.
    Читайте!

    Содержание выпуска

    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Один момент из жизни форума: Ctrl+Alt+Del

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на 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

    Дата: 30.03.2003 07:17 | Раздел: Статьи по VB | Автор: Хейфец Илья

    Архитектура .NET (обзор) - .NET платформа упрощает разработку приложений и повышает надежность кода. В частности, она обеспечивает автоматическое управление временем жизни объектов, нейтральные к языкам библиотеки классов и пересекающие границы языков наследование, обработку исключений и отладку.

    Дата: 27.03.2003 05:24 | Раздел: Примеры кода | Автор: Абашин Андрей

    Генератор бланков отчетов - Генератор простых бланков отчетов фиксированного размера. Есть возможность дублирования отчета как по вертикали так и по горизонтали.

    Дата: 25.03.2003 09:42 | Раздел: Примеры кода | Автор: vitus

    New Combo - Работа с ComboBox на подобие примера Combo 1.1. Можно вводить текст в ComboBoxe и он отображает слово если оно есть у него в списке.

    Последние 20 тем форума на VBNet.Ru:

    10:04 / 31 мар. Кто нить запускал флеш на форме VB | Хитов: 2 | Ответов: 0
    08:42 / 31 мар. Прокрутка экрана | Хитов: 7 | Ответов: 0
    08:33 / 31 мар. звук через бипер | Хитов: 7 | Ответов: 0
    03:58 / 31 мар. Запутался, помогите, люди.... SQL запрос и DTPi... | Хитов: 9 | Ответов: 1
    02:34 / 31 мар. Это опять я =) | Хитов: 9 | Ответов: 0
    00:44 / 31 мар. CreateObject | Хитов: 7 | Ответов: 0
    22:17 / 30 мар. Народ помогите!!!!!!! | Хитов: 20 | Ответов: 1
    21:40 / 30 мар. Новое сообщение без темы | Хитов: 20 | Ответов: 1
    20:31 / 30 мар. Tabstrip and Command Button | Хитов: 11 | Ответов: 0
    17:36 / 30 мар. Поиск | Хитов: 22 | Ответов: 2
    12:57 / 30 мар. Проблема с Package and Deployment Wizard | Хитов: 19 | Ответов: 3
    11:30 / 30 мар. OCX от Internet Explorer | Хитов: 17 | Ответов: 1
    06:41 / 30 мар. Приглашаю потестить, кого не ломает | Хитов: 46 | Ответов: 2
    04:13 / 30 мар. Важный вопрос | Хитов: 29 | Ответов: 3
    03:01 / 30 мар. cd-rom | Хитов: 23 | Ответов: 2
    22:58 / 29 мар. Кто профи в vb.net | Хитов: 26 | Ответов: 2
    20:11 / 29 мар. Киньте ссылочки на колл-и кнопок | Хитов: 34 | Ответов: 2
    19:05 / 29 мар. Как узнать имя компа по его IP? | Хитов: 31 | Ответов: 2
    19:05 / 29 мар. Вставка картинки из клипборда (+) | Хитов: 15 | Ответов: 0
    17:53 / 29 мар. Copy file to FTP ??? HELP | Хитов: 16 | Ответов: 1

    Последние поступления в Библиотеку кодов:

    Новости от VBNet-чиков!:

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Новости сайта MSDN

    • Компания Scotiabank использует Visual Studio .NET для обновления финансовой дилерской сети (EN)
    • Компания Fiserv CBS Worldwide переносит систему Communicator на платформу Microsoft .NET Framework (EN)
    • Отели, модемы и кафе — копирование в фоновом режиме (EN)
    • Апрельский выпуск журнала MSDN Magazine: новые технологии помогают повысить безопасность веб-служб (EN)
    • Продемонстрируйте пример программного кода и получите шанс выиграть компьютер Tablet PC (EN)
    • Бета-версия ASP.NET Starter Kits (EN)

    наверх

    Новости сайта GotdotNet

    Новые статьи:

    наверх

    Новости сайта dotSite

    Новые статьи:

    Новые примеры:

    наверх

    Один момент из жизни форума: Ctrl+Alt+Del

    Вопрос:
    Автор вопроса: агент x-com

    Я хочу заблокировать клавиши Ctrl и Alt. Представьте себе, чувак жмет Ctrl+Alt+Del и у него ни фига не выходит. Подскажите, как мне это сделать

    Ответы:

    Автор: serWAR
    Сразу скажу 2 способ под XP не идет, нефакт что и под другие
    1 способ( прикольный )
    отслеживаеш нажатия на CTRL+ALT+DEL и закрываеш появившееся окно.

    2 способ
    МОДУЛЬ

    Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) As Long
    Private Const SPI_SCREENSAVERRUNNING = 97

    Public Sub ChangeState(SrcSaverRunnig As Boolean)
    Dim Ret As Long
    Ret = SystemParametersInfo(SPI_SCREENSAVERRUNNING, SrcSaverRunnig, 0, 0)
    End Sub

    ФОРМА:

    Private Sub Form_Load()
    ChangeState True
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    ChangeState False
    End Sub

    Автор: агент x-com
    Немного не понял насчет 1 спопсоба. 2 способ мне точно не подходит т.к. у моего друга XP. Пожалуйста, объясните мне 1 способ.

    Автор: serWAR
    Добавь таймер и поставь свойсто Interval = 1 или 10 или 100, как понравится.
    Private Sub Timer1_Timer()
    On Error GoTo errorer ' если незапущен диспетчер то будет ошибка
    AppActivate "Диспетчер задач Windows" ' ПЕРЕДАЕМ ФОКУС
    SendKeys "%{F4}" ' Посылаем Alt + F4
    errorer:
    End Sub

    Автор: агент x-com
    Может быть я полный ламер, но я не врубаюсь, при чем тут Alt+F4? Нужно то Alt+tab и Ctrl+Alt+Del

    Автор: serWAR
    Ты его пробовал?
    ALT+F4 закрывает окно "Диспетчера задач ..." , а не блокирует его.
    Еще пример закрытия приложения:
    http://www.vbnet.ru/faq/showtopic.asp?id=120

    Автор: Павел
    Зачем SendKeys?
    Лучше найти hwnd окна диспетчера задач АПИ-функцией FindWindow и потом API-функцией SenMessage заставить это окно закрыться. Так надёжнее.
    А вообще, где-то недавно обсуждалась подобная тема. И порешили, что процесс можно вырубить не только в диспетчере задач, но и из командной строки и из Far'а... Так что это пойдет, если твой друг совсем ламер.

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: 108vadim

    Ответ ожидается по этому адресу

    Помогите решить проблему:
    Допустим я добавляю клиента, потом делаю сохранить потом пытаюсь добавить товары а они не добавляются:(((
    а если я редактирую уже добавленую запись Клиента то товары нормально добавляются и при этом автоматически связываются с гл таблицей
    код весит 12кб VB6.0+acces97
    http://www.chat.ru/~vadim108/test1.rar
    прошу исправить его и выслать мне на майл.

    Автор вопроса: Ivashka

    Ответ ожидается по этому адресу

    Знает ли кто нибудь как максимально быстро принять большой обьём данных (ну к примеру файл 10Мб по LAN 100Mbit) через Winsock и запихнуть их в массив? ведь данные приходят пачками примерно по 8Кб и их нужно собрать воедино.

    Вот такой вариант (или что то подобное) у меня получился самым быстрым:
    Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    Dim b() As Byte
    Open "C:\test.zip" For Binary As #1
    Winsock1.GetData b, vbArray + vbByte
    Put #1, LOF(1), b
    Close #1
    End sub

    Можно конечно ещё быстрее если вынести функции Open и Close за пределы этой процедуры, но неустраивает то что при этом используется диск.
    Заюзал API`шную CopyMemory чтобы массивы байтов обьединять но получилось почему то ещё медленнее :(

    Автор вопроса: alek

    Ответ ожидается по этому адресу

    Нашел такой пример.Но сдесь всего 3 команды. А команды управления папками и файлами как записать(копировать,удалить,создать,переместить)?

    Private Sub ws_DataArrival(ByVal bytesTotal As Long)
    Dim Data As String
    ws.GetData Data

    Select Case Data
    Case "BEEP"
    Beep
    Case "MSG"
    MsgBox "Привет!", vbInformation, ":o)"
    Case "END"
    End
    End Select
    End Sub

    Автор вопроса: 001

    Ответ ожидается по этому адресу

    Если у кого-нибудь есть небольшая документация по VBScript, огромная просьба прислать ее на ilya_001@mail.ru. Век не забуду доброго человека!

    Автор вопроса: P@Ssword

    Ответ ожидается по этому адресу

    Как из PropertyPage контейнера получить контролы, лежащие на контейнере?

    Автор вопроса: Headson

    Ответ ожидается по этому адресу

    Подскажите как проверить не резервирована ли горячая клавиша (например F11,F12) другим приложением.

    Автор вопроса: MaxiM

    Ответ ожидается по этому адресу

    Осваиваю ужасные дебри вбнэт.
    Начинаю с простого:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Единственное что я здесь понимаю - это "Private Sub Button1_Click", а для чего остальные параметры???
    И еще я понял, что такой полезной штуки как index больше нет, но может, есть аналог(просто другое название), или есть какой-то более сложный способ???
    А также нужна помощь с hdc - в vbnet такова нет, но уверен, что также есть аналог.

    Автор вопроса: kostyastat

    Ответ ожидается по этому адресу

    Подскажите как програмно работать(создавать,изменять столбцы, редактировать) с DataGrid, а также как работать с ListView

    Ответы:

    Вопрос:

    У меня за последнее время скопилось несколько вопросов:

    1. Ваш совет проиграть MP3 на MMControl с DeviceType="MpegVideo" не пошел, да и я не нашел в реестре по указанному вами пути типы девайсов, попробовал я играть его на ActiveMovie Control, знакомые люди сказали, что должно заработать, но при запуске проекта выскакивает сообщение: System error &H80004005 (-2147467259), может кто сталкивался с аналогичной проблемой, на всякий случай у меня Win98, DirectX 8.1, VisualBasic 6 SP5, с железом проблем нет. Просьба объяснить нормально, с помощью чего и, главное, как играть MP3 в Visual Basic?

    2. Можно ли с помощью WinSock'а органияовать UDP или TCP свяяь по модему на прямую, без ИНЕТа? Если можно, то как узнать номера портов для связи?

    Ответ:

    Автор ответа: KAS (c)

    Вообще ничего не указывай
    DeviceType=""

    Вопрос:

    Можно ли на Visual Basice написать программу каторая бы уменьшала скорость CD если можно то как ?

    Ответ:

    Автор ответа: ViTal

    Имеется некоторый набор АПИ-функций, которые позволяют манипулировать
    скоростями CD-привода. НО! Они работают лишь если сам привод
    поддерживает смену скоростей. Т.е. если CD-привод достаточно старый и не
    подерживает манипуляцию скоростями - то хоть 100 раз воспользуйся
    вызовом АПИ, это не даст никакого эффекта!
    Где копать и какие функции - не помню :) Могу только посоветовать
    скачать, например, CDSlow и почитать прилогающуюся к нему инфу (или
    почитать в других ответах)

    Вопрос:

    Есть запрос на ACCESS который работает с переменой как передать эту переменую через VB

    Ответ:

    Автор ответа: Dima

    Запрос - это SQL-выражение. В Басике описывается как строковая переменная.

    dim strSQL as string
    dim iID as long
    Dim recADOTemp As ADODB.Recordset

    strSQL="SELECT * FROM sprWorkers WHERE (ID=" & iID & ")"
    Set recADOTemp = New ADODB.Recordset
    recADOTemp.Open strSQL, adoCon, adOpenStatic, adLockOptimistic

    Вопрос:

    Можно ли в Access программно открыть запрос, основанный на SQL-операторе SELECT (строка с SQL-инструкцией может изменяться)?
    Метод DoCmd.OpenQuery работает только для сохраненных запросов, а метод DoCmd.RunSQL не работает с SELECT.

    Ответ:

    Автор ответа: Иван

    Простой пример для абсцесса
    Например так:

    Public Function getName(s As String) As String
    Dim DB as Database
    Dim st As String
    On Error Resume Next
    Set DB = CurrentDb 'устанавливаем переменную БД
    Dim rs As Recordset
    'строим запрос
    st = "SELECT * FROM Res where Code='" & s & "' AND ID_Lang=" & getLangId
    'открываем запрос
    Set rs = DB.OpenRecordset(st)
    getName = "<" & s & ">"
    getName = rs!name 'считываем данные
    rs.Close 'закрываем запрос
    End Function

    Это работа через DAO. Работа через ADO делается по другому.

    Вопрос:

    Есть ComboBox, в нём значения из таблицы (методом ADD). Таблица подключается с помощью DAO 3.51 и имеет 2 колонки. В ComboBox выбрали значение из 1-ой колонки. Как узнать соответствующее ему значение из 2-ой колонки.

    Ответ:

    Автор ответа: Иван

    lstControl.Column(1)
    Нумерация (насколько я помню) идёт с нуля

    Ответ:

    Автор ответа: Damir Kh

    Dim ws as Workspace
    Dim db as database
    Dim rs as recordset

    Private sub Form_Load
    set ws = CreateWorkspace("","admin","")
    set db = ws.OpenDatabase("путь к базе")
    set rs = db.OpenRecordset("таблица")
    Do while Not rs.Eof
    Combo1.AddItem rs("поле1")
    Loop
    End sub

    Private Sub Combo1_OnClick
    set ws = CreateWorkspace("","admin","")
    set db = ws.OpenDatabase("путь к базе")
    set rs = db.OpenRecordset("таблица")
    value = rs("поле2")
    End sub

    Вопрос:

    1. Вы не подскажете как удалить приложение из диспетчера задач я работаю на VB 6.0 под WinXP.
    2. И ещё как в этом виндовсе можно отключить драйвера, например, для мыши или как её можно откл.

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Можно просто спрятать курсор (ShowCursor)
    А можно в таймере поставить, чтоб он с места не сдвинулся (SetCursorPos).

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 149.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта 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!!!

    Несколько слов от автора:

    Купил новый винт. Второй день пытаюсь на него перебросить данные со старого. Пока ничего путнего не получается... Вот сейчас будет последняя попытка... Или всё получится или ... считайте мой винт коммунистом...
    Читайте!

    Содержание выпуска

    • Книги

    • API-переброс данных из массива в элемент ListBox
    • Drag&Drop в элементе ListBox
    • Сортировка массива данных по порядку
    • Сохранение/загрузка массива данных в ListBox
    • Автозагрузка вашей программы со стартом Windows

    • Вопрос/Ответ

    Книги

    Переход на 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 можно найти здесь.

    наверх

    API-переброс данных из массива в элемент ListBox

    Как вы знаете, у элементов ListBox или ComboBox существует метод AddItem, который просто-напросто добавляет в выбранный контрол некие значения, определяемые пользователем. Но с использованием API функций можно ускорить процесс занесения данных в указанные выше элементы. Как я это определил? В данном примере вам понадобятся 4 элемента CommandButton, а также элемент ListBox (или ComboBox). При нажатии на кнопку 3, вы получите время загрузки 1000 элементов в ЛистБокс с использованием метода AddItem, при нажатии на кнопку 4 - при использовании API-функций. Заметили разницу? Ну а первые две кнопки всего лишь показывают работу функции ArrayToListBox.

    Что еще может функция ArrayToListBox? Как вы видите, в параметрах функции 5 элементов. Два обязательных (контрол и массив данных), третий параметр при значении True очищает список элементов, а четвертый и пятый параметры всего лишь определяют, с какого элемента из массива данных (по порядковому номеру) начинать заносить в элемент ListBox и каким элементом (по порядковому номеру) заканчивать.

    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) As Long
    Private Const LB_ADDSTRING = &H180
    Private Const LB_RESETCONTENT = &H184
    Private Const CB_ADDSTRING = &H143
    Private Const CB_RESETCONTENT = &H14B
    Private Declare Function GetTickCount Lib "kernel32" () As Long
    Dim adr()

    Sub ArrayToListBox(ctrl As Object, arr As Variant, Optional clearIt As Boolean, Optional ByVal First As Variant, Optional ByVal Last As Variant)
    Dim msgReset As Long
    Dim msgAdd As Long
    Dim hWnd As Long
    Dim index As Long
    If TypeOf ctrl Is ListBox Then
    msgReset = LB_RESETCONTENT
    msgAdd = LB_ADDSTRING
    ElseIf TypeOf ctrl Is ComboBox Then
    msgReset = CB_RESETCONTENT
    msgAdd = CB_ADDSTRING
    Else
    ' none of the above, exit
    Exit Sub
    End If
    If IsMissing(First) Then First = LBound(arr)
    If IsMissing(Last) Then Last = UBound(arr)
    ' disable redrawing
    hWnd = ctrl.hWnd
    LockWindowUpdate hWnd
    ' clear control if requested
    If clearIt Then
    SendMessage hWnd, msgReset, 0, 0
    End If
    ' add all items in the array
    For index = First To Last
    SendMessage hWnd, msgAdd, 0, ByVal CStr(arr(index))
    Next
    ' re-enable redrawing
    LockWindowUpdate 0
    End Sub

    Private Sub Command1_Click()
    Call ArrayToListBox(List1, adr, False, 2, 9)
    End Sub
    Private Sub Command2_Click()
    Call ArrayToListBox(List1, adr, True, 11, 18)
    End Sub

    Private Sub Command3_Click()
    t1 = GetTickCount
    List1.Clear
    For i = 1 To 1000
    List1.AddItem adr(i)
    Next
    t2 = GetTickCount
    MsgBox t2 - t1
    End Sub

    Private Sub Command4_Click()
    t1 = GetTickCount
    Call ArrayToListBox(List1, adr, True)
    t2 = GetTickCount
    MsgBox t2 - t1
    End Sub

    Private Sub Form_Load()
    ReDim adr(1000)
    For i = 1 To 1000
    adr(i) = Str(i)
    Next i
    List1.AddItem "--"
    List1.AddItem "--"
    List1.AddItem "--"
    End Sub

    наверх

    Drag&Drop в элементе ListBox

    Данный пример покажет, как можно воспользоваться Drag&Drop при переносе элементов из одного ListBox в другой. Расположите на форме 2 элемента ListBox. Установите свойства элементов OLEDragMode = 1 'Automatic и OLEDropMode = 1 'Manual. Попробуйте после запуска программы перетащить элемент из 1-го ListBox'а в другой.

    Private Sub Form_Load()
    List1.AddItem "11"
    List1.AddItem "22"
    List1.AddItem "33"
    List1.AddItem "44"
    List1.AddItem "55"
    End Sub

    Private Sub List1_OLEStartDrag(Data As DataObject, AllowedEffects As Long)
    Dim i As Integer
    Dim strdata As String

    For i = 0 To List1.ListCount - 1
    If List1.Selected(i) = True Then
    strdata = strdata & List1.List(i) & vbCrLf
    End If
    Next i
    Data.SetData strdata
    End Sub

    Private Sub List2_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim intin As Integer
    Dim intstart As Integer

    intstart = 1
    intin = InStr(Data.GetData(1), vbCrLf)
    Do
    On Error Resume Next
    List2.AddItem Replace(Mid(Data.GetData(1), intstart, (InStr(intstart + 1, Data.GetData(1), vbCrLf) - intstart) + 1), vbCr, "")
    If Err = 5 Then
    List2.AddItem Replace(Mid(Data.GetData(1), intstart + 1), vbCrLf, "")
    Exit Do
    End If
    intstart = intin + 2
    intin = InStr(intstart, Data.GetData(1), vbCrLf)
    Loop Until intin = 0
    End Sub

    наверх

    Сортировка массива данных по порядку

    Иногда требуется в процесе работы отсортировать массив данных по порядку. Вы, конечно, можете использовать элемент ListBox для сортировки, но все же... Вот вам готовый пример для сортировки данных во возрастанию. Если вы хотите сортировать данные по убыванию, то вы догадаетесь, что нужно сделать...

    Option Base 1
    Dim ard() As String

    Sub BubbleSort(pstrArray() As String)
    plngMaxItem = UBound(pstrArray)
    Dim i As Long
    Dim fSwitched As Boolean
    Dim strTemp As String
    Do
    fSwitched = False
    For i = 1 To plngMaxItem - 1
    If pstrArray(i) > pstrArray(i + 1) Then 'сортируем по возрастанию
    ' If pstrArray(i) < pstrArray(i + 1) Then 'сортируем по убыванию
    fSwitched = True
    strTemp = pstrArray(i)
    pstrArray(i) = pstrArray(i + 1)
    pstrArray(i + 1) = strTemp
    End If
    Next
    Loop While fSwitched
    End Sub

    Private Sub Command1_Click()
    Call BubbleSort(ard())
    For i = 1 To UBound(ard())
    MsgBox ard(i), , i
    Next
    End Sub

    Private Sub Form_Load()
    ReDim ard(6)
    ard(1) = "http://aa4"
    ard(2) = "http://aa3"
    ard(3) = "http://bb2"
    ard(4) = "http://aa1"
    ard(5) = "http://aa2"
    ard(6) = "http://bb1"
    End Sub

    наверх

    Сохранение/загрузка массива данных в ListBox

    Данный пример позволяет вам сохранить данные из элемента ListBox в файл на диске, а также загрузить данные из файла в ListBox.

    Вам понадобятся 2 элемента CommandButton.

    Sub saveitems(lstin As ListBox)
    Dim i As Integer
    Open App.Path & "\" & lstin.Name & ".txt" For Output As #1
    For i = 0 To lstin.ListCount - 1
    Print #1, lstin.List(i)
    Next i
    Close #1
    End Sub

    Sub LoadItems(lstin As ListBox)
    Dim i As Integer
    Dim str As String
    If Len(Dir(App.Path & "\" & lstin.Name & ".txt")) Then
    Open App.Path & "\" & lstin.Name & ".txt" For Input As #1
    Do While Not EOF(1)
    Line Input #1, str
    List1.AddItem str
    Loop
    Close #1
    End If
    End Sub

    Private Sub Command1_Click()
    Call saveitems(List1)
    List1.Clear
    End Sub

    Private Sub Command2_Click()
    Call LoadItems(List1)
    End Sub

    Private Sub Form_Load()
    List1.AddItem "http://aa4"
    List1.AddItem "http://aa3"
    List1.AddItem "http://bb2"
    List1.AddItem "http://aa1"
    List1.AddItem "http://aa2"
    List1.AddItem "http://bb1"
    End Sub

    наверх

    Автозагрузка вашей программы со стартом Windows

    А также удаление программы из автозагрузки.

    Еще один полезный совет, как можно загружать вашу программу вместе с загрузкой Windows. Все просто: вы должны указать "Имя твоей проги" и "Путь к твоей проге", то есть имя вашей программы для загрузки, а также ПОЛНЫЙ путь к ней на жестком диске, если она не лежит в директории Windows.

    Пример гораздо проще для использования, чем возможность работы с реестром через API_функции. >>>

    Private Sub Command1_Click() 'Запись в реестр
    Set Reg = CreateObject("WScript.Shell")
    Reg.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\Имя твоей проги", "Путь к твоей проге"
    End Sub

    Private Sub Command2_Click() 'Удаление из реестра
    Set Reg = CreateObject("WScript.Shell")
    Reg.RegDelete "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\Имя твоей проги"
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: XAM

    Ответ ожидается по этому адресу

    Суть проблемы:
    Создается файл *.mdb, в котором создается таблица (например на 5 полей), в которую затем пишутся real-time данные.
    Проблема в том, что из-за св-ва Required=true прога требует обязательного заполнения данными всех полей. А данные (иногда бывает) могут отсутствовать в некоторых полях.
    Каким образом и где в коде установить св-во Required в false?
    Или есть другой выход из положения?

    Автор вопроса: JSC Shuyskaya Vodka

    Ответ ожидается по этому адресу

    Как в скрипте на VBSripts запустить команду ДОС с правами адмнистратора, зная пароль и логин админа ??

    Автор вопроса: Славик

    Ответ ожидается по этому адресу

    Как перехватить сообщения Windows (все подряд MsgBox).
    А еще лучше определить строку, которая находится под мышкой, в любом приложении Win.
    Это вобще возможно?

    Для того, чтобы легче было понять проблему объясню на пальцах.
    Представьте лупу из специальных возможностей Windows.
    Висит она значит в углу, и отображает только текст, находящийся под мышкой (без графики).
    Или текст сообщения, выскочившего при ошибке, копировании, перемещении и т.д.

    На самом деле мне нужна не лупа, а нечто другое, поэтому не пишите как увеличить картинку. Мне нужен только текст.

    Автор вопроса: Носарь Александр

    Ответ ожидается по этому адресу

    Простейшая ситуация, но не знаю как ее решить. Есть два ListBox, в первом и во втором содержится взаимосвязанная информация. Возникает ситуация когда количество строк в ListBox1 не вмещаются на экран, и для просмотра, тех что не "влезли" на экран приходится пользоваться полосой прокрутки. Можно ли сделать так что бы при использовании полосы прокрутки в ListBox1, информация в ListBox2, также поднималась (или опускалась) синхронно с информацией в ListBox1 ?

    Автор вопроса: KAS (c)

    Ответ ожидается по этому адресу

    У меня такой вопрос: Как отправить письмо средствами VB?
    Побывал:

    Private Sub Command1_Click()
    Set myOlApp = CreateObject("Outlook.Application")
    Set myItem = myOlApp.CreateItem(olMailItem)
    Set myRecipient = myItem.Recipients.Add("k.a.s@dts.ru")
    myItem.Subject = "тема"
    myItem.Body = "сообщение"
    Set myAttachments = myItem.Attachments
    myAttachments.Add "C:\1.xls" ' вложенный файл
    myItem.Display
    myItem.send
    End Sub

    Выдаёт ошибку: не могу создать объект ActiveX

    Автор вопроса: Тоша

    Ответ ожидается по этому адресу

    Может ли приложение написанное на Visual Basic 6.0, испольяуюещее, например, WindowsCommunControls, под Windows 98 заработать на Windows 95, Windows 2000 & XP?
    После переноса приложения на другой компьютер (бея VB) все не работает. Что сделать?

    Автор вопроса: KAS (c)

    Ответ ожидается по этому адресу

    Подскажите как пользоваться API функциями:
    FindWindow и EnumWindow

    Автор вопроса: Дима

    Ответ ожидается по этому адресу

    Можно ли подцепить CrystalReport к контролу Adodc (без использования DataEnvironment со своими command)? То есть при измении SQL-запросов для Adodc соответсвенно изменяется и отчет, выводимый на печать. DataReport1.DataSource = Adodc1 - не проходит. Может я забываю что-то объявить/прописать?

    Автор вопроса: KAS (c)

    Ответ ожидается по этому адресу

    Подскажите как работать с API функцией: SetWindowText

    Автор вопроса: Егоров

    Ответ ожидается по этому адресу

    Как открыть папку с помщью апи или без него?

    Автор вопроса: 108vadim

    Ответ ожидается по этому адресу

    Как правильно обновить рекордсет в DataEnvironment?
    Все обновляется один раз :

    private sub Obnovit()
    DataEnvironment.rsMyTable.update
    DataEnvironment.rsMyTable.requery
    'потом обновляю все Контролы (раньше не понимал почему данные не
    'обновляются в контролах вот пример:)
    set text1.DataSource=DataEnvironment
    set DataGrid1.DataSource=DataEnvironment
    end sub

    Если я второй раз вызываю sub Obnovit то ругается на update и requery, я нашел выход при котором хоть сколько раз вызывай Obnovit все обновляется : просто надо закрыть и заново открыть DataEnvironment после обновления:

    DataEnvironment.rsMyTable.close
    DataEnvironment.rsMyTable.open

    Все работает, но думаю что закрывать и открывать это неправильно, есть ли способы этого не делать чтобы правильно обновлять рекордсеты в DataEnvironment???? Вобщем как правильно обновить рекордсет в DataEnvironment ??

    Автор вопроса: Роман

    Ответ ожидается по этому адресу

    1) Как програмно изменить цвет рабочего стола?
    2) На форме лежит SSTab, между его закругленными закладками виднеется сама форма. Как эти фидимые куски формы вырезать? Знаю, что с Path, но нужен пример.

    Автор вопроса: Владимир

    Ответ ожидается по этому адресу

    Как создать АктивХ для игры в морской бой? То есть поле игры! Кто знает просьба ответить или дать ссылочку на документацию! Исходники брать не хочу! Хочу писать сам.

    Автор вопроса: alexander

    Ответ ожидается по этому адресу

    Как можно задействовать бланк написаный на Access в VB?

    Автор вопроса: Matrix

    Ответ ожидается по этому адресу

    Вот какие вопросы:
    1. Какие есть способы для закрашивания половины (части) буквы, например половина буквы "А" зеленая, другая - красная?
    2. И второй вопрос, как сделать так, чтобы буквы в слове были разноцветными?

    Ответы:

    Вопрос:

    Можно ли на Visual Basice написать программу каторая бы уменьшала скорость CD если можно то как ?

    Ответ:

    Автор ответа: ]CBK[CRaSH

    Конечно можно для этого тебе необходимо использовать функцию DivaceIOcontrol и все

    Вопрос:

    Есть запрос на ACCESS который работает с переменой как передать эту переменую через VB

    Ответ:

    Автор ответа: Александр Чернов

    Не совсем понял отношения Access и VB:

    1. Если из-под ВБ открывается запрос, то
    Set db = DBEngine.OpenDatabase("полный путь к файлу")
    Set qry = db.QueryDefs("запрос с параметром")
    qry.Parameters(индекс параметра) = значение
    Set rs = qry.OpenRecordSet

    2. Если ВБ-прога должна установить значение, а запрос в Access его прочитать, то в Access-е можно создать скрытую форму, запускаемую при открытии базы данных, которую можно использовать как контейнер для хранения переменных. Параметр запроса настроить на соответствующее свойство формы. Или использовать специальную таблицу для хранения переменных. Этот способ универсальней, т.к. не зависит от порядка запуска ВБ и Акцесс.

    Вопрос:

    Можно ли в Access программно открыть запрос, основанный на SQL-операторе SELECT (строка с SQL-инструкцией может изменяться)?
    Метод DoCmd.OpenQuery работает только для сохраненных запросов, а метод DoCmd.RunSQL не работает с SELECT.

    Ответ:

    Автор ответа: Александр Чернов

    Да DoCmd.OpenQuery открывает только сохраненный запрос, а кто мешет его сохранить, а потом удалить, напр. так:

    Dim sSQL As String
    Dim sQTemp As String
    sQTemp = "qdfTemp"

    sSQL = "SELECT * FROM Заказы WHERE [Код работника]=2;"

    CurrentDb.CreateQueryDef sQTemp, sSQL ' создание запроса

    DoCmd.OpenQuery sQTemp, acViewNormal ' открытие

    CurrentDb.QueryDefs.Delete sQTemp ' удаление

    Или можно создать ленточную форму и в событии Form_Open формировать свойство Me.RecordSource

    Вопрос:

    Подскажите пож-та, у меня БД на Access-97, как выбрав на форме перекл-ль или лучше из поля со списком (VB должен определять и выводить имена принтеров, установленных в данный момент на компе) и делать его "по умолчанию". Т.е. то печатаем отчет на HP-1000, то отправляем на принтер/факс VentaFax.

    Ответ:

    Автор ответа: Александр Чернов

    Воспользуйся свойством формы или отчета PrtDevNames.

    Вопрос:

    Есть ComboBox, в нём значения из таблицы (методом ADD). Таблица подключается с помощью DAO 3.51 и имеет 2 колонки. В ComboBox выбрали значение из 1-ой колонки. Как узнать соответствующее ему значение из 2-ой колонки.

    Ответ:

    Автор ответа: Александр Чернов

    ComboBox.Column(1) - индекс от 0 до ColumnCount-1

    Вопрос:

    Если у кого-нибудь есть небольшая документация по VBScript, огромная просьба прислать ее на ilya_001@mail.ru. Век не забуду доброго человека!

    Ответ:

    Автор ответа: ViTal

    Здесь было: http://ssz.by.ru/programming/vbs.htm

    Вопрос:

    Осваиваю ужасные дебри вбнэт.
    Начинаю с простого:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Единственное что я здесь понимаю - это "Private Sub Button1_Click", а для чего остальные параметры???
    И еще я понял, что такой полезной штуки как index больше нет, но может, есть аналог(просто другое название), или есть какой-то более сложный способ???
    А также нужна помощь с hdc - в vbnet такова нет, но уверен, что также есть аналог.

    Ответ:

    Автор ответа: Vir

    Index в VB.NET нет есть только отголосок от VB6.0 если сделаеш прогу на VB6.0 с Index и переделаеш на VB.NET стандартным конвертатоом то увидиш ее. Hdc можеш посмотреть в справке там много чего есть в том числе и функции которые вымерли или переделали в другой вид.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 150.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Ну вот я опять с вами! Как я и ожидал, ничего путнего с винтом у меня не получилось. В выходные переустанавливал систему, в понедельник уже вечером собрался выпустить рассылку, да вспомнил, что диск со своим любимым HTML-редактором (Macromedia Homesite 5) я дал знакомому. Так что добрался до рассылки только сейчас.
    Читайте!

    Содержание выпуска

    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Один момент из жизни форума: Подскажите ресурс с иконками.

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на 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

    Дата: 07.04.2003 10:47 | Раздел: Примеры кода | Автор: Kir Alper

    WinExit III - Простенькая прога : Выход из Windows (XP) Видно ее работу только в SysTray. Иконка в SysTray "живая"(True Color). Добавлена быстрая перезагрузка, выключение, LogOff,Mailto,время работы Windows, получение своего IP-address и переменных среды. Добавлена возможность AutoStart. Добавлены украшательства.

    Дата: 03.04.2003 10:29 | Раздел: Статьи по VB | Автор: Багиров Заур

    Внедрение ака Свободу макросам - Статья о обходе защите приложений MS Office средствами Visual Basic for Applictions (VBA).

    Последние 20 тем форума на VBNet.Ru:

    13:54 / 7 апр. СРОЧНЫЙ ХЕЛП! Системы исчесления | Хитов: 1 | Ответов: 0
    13:34 / 7 апр. Удаление записей из связанных таблиц | Хитов: 0 | Ответов: 0
    11:30 / 7 апр. Как открыть документ Word в форме?(помгите гори... | Хитов: 3 | Ответов: 0
    11:10 / 7 апр. Реестр и копирование файлов | Хитов: 3 | Ответов: 0
    10:42 / 7 апр. Какие подстановочные значки исп-ть в vb.net с L... | Хитов: 2 | Ответов: 0
    10:37 / 7 апр. Как запихнуть данные в dataset в vb.net не из Б... | Хитов: 0 | Ответов: 0
    10:32 / 7 апр. Как получить страничку | Хитов: 4 | Ответов: 0
    09:40 / 7 апр. Как отключить главное меню при запуске, наприме... | Хитов: 4 | Ответов: 0
    09:20 / 7 апр. события dbgrid | Хитов: 1 | Ответов: 0
    07:47 / 7 апр. Add to ListBox | Хитов: 7 | Ответов: 0
    07:41 / 7 апр. Глюк или как? | Хитов: 3 | Ответов: 0
    01:10 / 7 апр. ComboBox | Хитов: 21 | Ответов: 1
    00:50 / 7 апр. Вопрос по VB .NET | Хитов: 12 | Ответов: 1
    22:54 / 6 апр. Работа с реестром | Хитов: 27 | Ответов: 3
    22:50 / 6 апр. Кряки | Хитов: 32 | Ответов: 2
    22:48 / 6 апр. RasDialParams | Хитов: 11 | Ответов: 1
    21:18 / 6 апр. How to mail some.... | Хитов: 30 | Ответов: 3
    21:01 / 6 апр. как на VB скачать и закачать файлы на FTP | Хитов: 18 | Ответов: 1
    19:04 / 6 апр. Rus2Trans v 0.2 (open source) | Хитов: 26 | Ответов: 1
    18:52 / 6 апр. Помогите ответами на все мои сообщения | Хитов: 37 | Ответов: 0

    Последние поступления в Библиотеку кодов:

    Новости от VBNet-чиков!:

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Новости сайта MSDN

    наверх

    Новости сайта GotdotNet

    • 04.04.2003 - Завершен прием заявок на участие в конкурсе на лучшую программу для КПК
      Всего приняло участие 28 разработчиков, которые прислали в общей сложности 68 программ.

    Новые статьи:

    • 07.04 - Внешний вид Windows-форм
    • 04.04 - ASP .NET Web Matrix
    • 02.04 - ASP.NET - повторное использование кода для построения пользовательского интерфейса
    • 31.03 - .NET - Проблема распространения приложений

    наверх

    Новости сайта dotSite

    Новые статьи:

    Новые примеры:

    наверх

    Один момент из жизни форума: Подскажите ресурс с иконками.

    Вопрос:
    Автор вопроса: NightVolk

    Просто у самого руки кривые, не могу нарисовать, а очень надо.

    Ответы:

    Автор: PeterS
    Во всех Win's в файлах moricons.dll; pifmgr.dll; shell32.dll есть очень красивые иконки. А также Вы можете сами поискать иконки в dll-файлах в системном каталоге Windows'а.

    Автор: Gravity
    А лучше посмотри на www.ikonki.ru

    Автор: boevik
    Ссылка то не рабочая.

    Автор: msv
    Хочешь 300 XP-иконок? Могу прислать.

    Автор: aka
    http://www.iconarchive.com/

    Автор: Padre
    есть некоторые анимированные ХР иконки

    Автор: Alliancce
    http://www.torry.net/docs_graphics.htm
    особенно полная коллекция Eldos

    Автор: mc-black
    Попробуй лучше сам что-нибудь этакое оригинальное нарисовать, я использую Icon Studio (freeware!), IconEdit Pro. В обоих случаях ты можешь сделать снимок любой иконки с экрана, если очень хочется стандартную или чужую иконку. Можно еще содрать иконки из любых exe/dll, например с помощью ResTrief (freeware). Где все это найти? В Яндексе :)

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Lexa

    Ответ ожидается по этому адресу

    Как напечатать две формы на одном листе?

    Автор вопроса: Alex

    Ответ ожидается по этому адресу

    Как вывести " на экран с текстом

    Автор вопроса: mikl

    Ответ ожидается по этому адресу

    При попытке подключить ActiveX компонент выскакивает ошибка:

    The file 'C:\WINDOWS\SYSTEM\VBDirect8.ocx' was not registerable as an ActiveX component (Файл 'C:\WINDOWS\SYSTEM\VBDirect8.ocx' не был registerable как ActiveX компонент)

    У меня Win98, DirectX 7.1. Может быть дело в DirectX? Что значит такая ошибка?

    Автор вопроса: Борис

    Ответ ожидается по этому адресу

    Как известно стандартный ListBox имеет свойство Style, которое может принимать значение CheckBox. Одноко свойство Selected при этом принимает только два значения (True, False). В то же время элемент CheckBox может принимать три значения (Unchecked, Checked и Grayed). Можно ли стандартный ListBox заставить действовать аналогичным образом или нужно писать свой?

    Автор вопроса: George

    Ответ ожидается по этому адресу

    Как считать параметры переданные программе в командной строке. Типа argc[] or argv[] in С#

    Автор вопроса: Алексей

    Ответ ожидается по этому адресу

    Подскажите, как и какие команды надо отправлять окну Winamp'а зная его hdc и прочее что бы останавливать или продолжать воспроизведение, менять уровень звука и другое?

    Автор вопроса: Иван

    Ответ ожидается по этому адресу

    Существует ли хороший ActiveX для отображения такой штуки: что-то среднее между гридом и диаграммой,
    По вертикали идут позиции, а по горизонтали даты.
    Надо отображать горизонтальные линии соответствующие периодам дат. например:

    1.03 - 1.04 - 1.05 - 1.06
    AAA Х=============Х
    BBB Х================...
    CCC ..=====================Х

    Данные будут браться из БД.

    Автор вопроса: LexSys

    Ответ ожидается по этому адресу

    Люди помогите "первоклашке"!
    Что значит работать с портами, или посылать данные на порт?
    Есть ли про это документация <ссылка>?
    Можно ли управлять эл/питанием на порту?
    К примеру у меня есть подключёный к COM`у провод от старой мышки.
    А на конце провода какое-нибудь устройство... например эл/моторчик... Можно ли подавать напрягу то +/-, то -/+ ? Как?

    Автор вопроса: Максим

    Ответ ожидается по этому адресу

    Помогите написать прогу отправляющую файлы на почту!!!!!

    Автор вопроса: Alexey

    Ответ ожидается по этому адресу

    Как сделать, чтобы все буквы в тексте заменялись на какие-то другие буквы?
    Например: буквы а,б,в - заменялись на п,м,и.

    Автор вопроса: ShAdE

    Ответ ожидается по этому адресу

    вот проблема такая, ни как не получается ярлычек создать, еслть ли у кого-нибудь искодики для создания этих самых ярличков?

    Автор вопроса: Игорь

    Ответ ожидается по этому адресу

    Не могу раяобраться, в чем дело? Запутался в "трех соснах".
    Обычный SQL-яапрос:
    "Select Sum(Volume) from Fuel" - отрабатывается отлично.
    "Select Sum(Volume) from Fuel Where Year(Date) = nYear"
    выдается ошибка, что не хватает каких-то параметров. Причем, если яаменить переменную nYear на конкретное число, скажем, 2002, то все в порядке. (Volume и Date - поля таблицы Fuel). Подскажите пожалуйста, в чем может быть причина?

    Ответы:

    Вопрос:

    Как компилить прогу в vb7 (net)???
    И можно ли там работать с директом икс ???

    Ответ:

    Автор ответа: Anton Pronoza

    Можно, конечно. У VB7 есть огромные возможности для работы с DirectX.
    Вопрос - как?...

    Вопрос:

    Суть проблемы:
    Создается файл *.mdb, в котором создается таблица (например на 5 полей), в которую затем пишутся real-time данные.
    Проблема в том, что из-за св-ва Required=true прога требует обязательного заполнения данными всех полей. А данные (иногда бывает) могут отсутствовать в некоторых полях.
    Каким образом и где в коде установить св-во Required в false?
    Или есть другой выход из положения?

    Ответ:

    Автор ответа: Gregory

    You can use function iif(conditon,"false","true")
    exp iif( isnull(field),"default value",field_value")

    Ответ:

    Автор ответа: Pistol

    А не пробовал в самой базе .mdb выставить некоторые поля как необязательные?
    А потом ты можешь манипулировать кодом, т.е. если какое-то поле обязательно, в коде ставишь проверку.

    Ответ:

    Автор ответа: Alexander

    Это зависит от атрибута поля, а именно: adColNullable даёт возможность полю иметь значение Null.
    Пример:

    Dim cnn As New ADODB.Connection
    Dim cat As New ADOX.Catalog
    Dim colTemp As New ADOX.Column
    Dim rstEmployees As New Recordset
    Dim strMessage As String
    Dim strInput As String

    ' Connect the catalog.
    cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;data source=c:\" & _
    "Program Files\Microsoft Office\Office\Samples\Northwind.mdb;"
    Set cat.ActiveConnection = cnn

    Set tblEmp = cat.Tables("Employees")

    ' Create a new Field object and append it to the Fields
    ' collection of the Employees table.
    colTemp.Name = "FaxPhone"
    colTemp.Type = adVarWChar
    colTemp.DefinedSize = 24
    colTemp.Attributes = adColNullable
    cat.Tables("Employees").Columns.Append colTemp

    Ответ:

    Автор ответа: Шувакин Н.В.

    можно вписывать в эти поля пустую строку. например в поле нужно поместь значение А. Но оно отсутствует, нужно в коде при записи данных в таблицу (да и при редактировании) писать

    RECSET.FILDS(5)=TXTBOX1.TEXT&""

    таким образом в таблице в строке будет не отсутствие данных а пустая строка. программа это поймет

    Вопрос:

    Как перехватить сообщения Windows (все подряд MsgBox).
    А еще лучше определить строку, которая находится под мышкой, в любом приложении Win.
    Это вобще возможно?

    Для того, чтобы легче было понять проблему объясню на пальцах.
    Представьте лупу из специальных возможностей Windows.
    Висит она значит в углу, и отображает только текст, находящийся под мышкой (без графики).
    Или текст сообщения, выскочившего при ошибке, копировании, перемещении и т.д.

    На самом деле мне нужна не лупа, а нечто другое, поэтому не пишите как увеличить картинку. Мне нужен только текст.

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Мне кажется, что ты уж слишком круто взял. Насколько мне известно, текст на MSGBox'е пишется АПИшкой и сохраняется только на экране. Найти его никак нельзя. Раве что напишешь прогу, которая будет распознавать шрифт... Вот выдрать заголовок - более менее реально - GetWindowText. А получить верхнеуровневое окно можно аипшкой GetForegroundWindow.

    Вопрос:

    Простейшая ситуация, но не знаю как ее решить. Есть два ListBox, в первом и во втором содержится взаимосвязанная информация. Возникает ситуация когда количество строк в ListBox1 не вмещаются на экран, и для просмотра, тех что не "влезли" на экран приходится пользоваться полосой прокрутки. Можно ли сделать так что бы при использовании полосы прокрутки в ListBox1, информация в ListBox2, также поднималась (или опускалась) синхронно с информацией в ListBox1 ?

    Ответ:

    Автор ответа: Пащено А.

    У ListBox есть свойство, если не ошибаюсь, TopIndex.
    ListBox2.TopIndex=ListBox1.TopIndex

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Ты будешь долго смеяться, но для этого существует свойство topIndex.

    Private Scrolling As Boolean

    Private Sub Form_Load()
    For i = 0 To 200
    List1.AddItem i
    List2.AddItem i
    Next i
    Scrolling = False
    End Sub

    Private Sub List1_Scroll()
    If Not Scrolling Then
    Scrolling = True
    List2.TopIndex = List1.TopIndex
    Scrolling = False
    End If

    End Sub

    Private Sub List2_Scroll()
    If Not Scrolling Then
    Scrolling = True
    List1.TopIndex = List2.TopIndex
    Scrolling = False
    End If
    End Sub

    Листбоксы "синхронизируются", но немного глючно.

    Ответ:

    Автор ответа: ]CBK[CRaSH

    Private Sub lst_Click()
    lst2.ListIndex = lst.ListIndex
    End Sub

    Private Sub lst_Scroll()
    lst.Visible = False'Обьекты скрываются для того чтобы прокрутка была не такой тупой
    lst2.Visible = False
    lst2.TopIndex = lst.TopIndex
    lst.Visible = True
    lst2.Visible = True
    End Sub

    Вопрос:

    У меня такой вопрос: Как отправить письмо средствами VB?
    Побывал:

    Private Sub Command1_Click()
    Set myOlApp = CreateObject("Outlook.Application")
    Set myItem = myOlApp.CreateItem(olMailItem)
    Set myRecipient = myItem.Recipients.Add("k.a.s@dts.ru")
    myItem.Subject = "тема"
    myItem.Body = "сообщение"
    Set myAttachments = myItem.Attachments
    myAttachments.Add "C:\1.xls" ' вложенный файл
    myItem.Display
    myItem.send
    End Sub

    Выдаёт ошибку: не могу создать объект ActiveX

    Ответ:

    Автор ответа: Anatoliy Zhukov

    Ispol'suy MAPI. Gdeto w MSDN bil primer ... no ja ne pomnyu gde .. poetomu widral kusok iz swoego koda kotoriy ja ispol'suja dlja togo chtobi slat' sebe Reporti ob oshibkah ot pol'sowateley

    Esli chto ne ponjatno pishite ili stuchite.

    Private Sub ComposeMessage(ByVal strText As String)
    On Error GoTo ComposeErr
    Dim strMessage As String

    With mapMess
    .Compose
    .MsgSubject = "Fehlerbeschreibung und Fehlerprotokoll / Sollout Assistent"
    .RecipAddress = ErrPtnr_EMail

    'Add attachment
    '.AttachmentPathName = "c:\Status Report.doc"

    .MsgNoteText = strText

    ' Outlook nicht anzeigen
    .Send False ' True ' Pokazat' ili skrit' oktno Poch'towogo klienta
    End With

    Exit Sub
    ComposeErr:
    Debug.Print Err.Number, Err.Description
    Resume Next
    End Sub

    Private Function LogOn() As Boolean
    ' If a session is already started, exit sub.

    'mapSess = GetObject("MAPISession")

    If mapSess.NewSession Then
    MsgBox "MAPI-Session already established"
    Exit Function
    End If

    On Error GoTo errLogInFail
    With mapSess
    ' Set DownLoadMail to False to prevent immediate download.
    .DownLoadMail = False
    .LogonUI = True ' Use the underlying email system's logon UI.
    .SignOn ' Signon method.
    ' If successful, return True
    LogOn = True
    ' Set NewSession to True and set0
    ' variable flag to true
    .NewSession = True
    bNewSession = .NewSession
    mapMess.SessionID = .SessionID ' You must set this before continuing.
    End With

    Exit Function
    errLogInFail:
    Debug.Print Err.Number, Err.Description
    If Err.Number = 32003 Then
    MsgBox "Canceled Login"
    LogOn = False
    End If
    Exit Function
    End Function

    Private Sub LogOff()
    ' Logoff the MapSessions control.
    With mapSess
    .SignOff ' Close the session.
    .NewSession = False ' Flag for new session.
    bNewSession = .NewSession ' Reset flag.
    End With
    End Sub

    Ответ:

    Автор ответа: Sergey

    Для того, чтобы этот код работал , необходимо чтобы на машине стоял Microsoft Outlook, который входит в состав Office. Однако DCOM - не самый быстрый способ,особенно под 95/98/ME.Еще один вариант - использовать CDO (Collaboration Data Objects) интерфейс.

    Вопрос:

    Может ли приложение написанное на Visual Basic 6.0, испольяуюещее, например, WindowsCommunControls, под Windows 98 заработать на Windows 95, Windows 2000 & XP?
    После переноса приложения на другой компьютер (бея VB) все не работает. Что сделать?

    Ответ:

    Автор ответа: Степанов Антон

    Просто надо посмотреть какую библиотеку использует твоя прога. То есть если ты добавляешь какой-нибудь компонент ActiveX, то библиотеку с расширением "ocx" надо обязательно скопировать в папку где лежит твоя прога иначе она не будет запускаться в других средах (windows)

    Ответ:

    Автор ответа: Programmer

    Что бы твоя прога работала на другом компе, надо тащить за ней msvbvm60.dll и другие контролы и длл-ки , если ты их используешь в проекте.

    Ответ:

    Автор ответа: Alexander

    В учёбнику написена: пользуй "Мастер создания инсталляций!" (Add-in: Package and Deployment Wizard)!

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Это же надо парочку библиотечек с прогой таскать. Есть в VB такой мастер - Package and Deployment Wizard. Сам, правда, немного глюковат, но списочек нужых библиотек предоставить может.

    Ответ:

    Автор ответа: Sergey

    Если твое приложение испрользует Windows Common Controls(который распространяются вместе с VB) , то ты должен распространять их вместе со своим приложением. Самый просто способ - создать инсталляцию например в Wise Installation System и указать в опциях distribute VB-runtime.

    Ответ:

    Автор ответа: ]CBK[CRaSH

    Тебе надо прихватить с собой и используемый ActiveX

    Вопрос:

    Подскажите как пользоваться API функциями:
    FindWindow и EnumWindow

    Ответ:

    Автор ответа: Programmer

    вот пример получения hwnd всех окон в системе при помощи EnumWindows

    'Add this code to a module
    Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Boolean
    Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
    Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
    Public Function EnumWindowsProc(ByVal hwnd As Long, ByVal lParam As Long) As Boolean
    Dim sSave As String, Ret As Long
    Ret = GetWindowTextLength(hwnd)
    sSave = Space(Ret)
    GetWindowText hwnd, sSave, Ret + 1
    Form1.List1.AddItem ("&H" & Hex(hwnd)) + " " + sSave
    'continue enumeration
    EnumWindowsProc = True
    End Function

    'Add this code to a form
    Private Sub Form_Load()
    'call the Enumwindows-function
    EnumWindows AddressOf EnumWindowsProc, ByVal 0&
    End Sub

    Ответ:

    Автор ответа: Alexander

    Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

    Пример:

    lTBarHwnd = FindWindowEx(hwnd, 0&, "ToolbarWindow32", vbNullString)

    Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long

    Пример:
    While HWnd <> 0
    count = count + 1
    Call EnumWindows(Level + 1, HWnd)
    'Debug.Print String$(Level, Chr$(9)); count; ". "; Hex$(HWnd)

    'Get the next task list item in the master list.
    HWnd = GetWindow(HWnd, GW_HWNDNEXT)
    Wend

    Вопрос:

    Можно ли подцепить CrystalReport к контролу Adodc (без использования DataEnvironment со своими command)? То есть при измении SQL-запросов для Adodc соответсвенно изменяется и отчет, выводимый на печать. DataReport1.DataSource = Adodc1 - не проходит. Может я забываю что-то объявить/прописать?

    Ответ:

    Автор ответа: Sergey

    Я конечно не профи в Crystal Reports но мне кажется что источник данных и тип провайдера нельзя изменять динамически, а только в режиме разработки,поскольку это влечет за собой data remapping. И вообще: для чего использовать в качестве источника данных ADO Data Control,если он просто поставляет данные, ничего с ними не делая ?

    Вопрос:

    Подскажите как работать с API функцией: SetWindowText

    Ответ:

    Автор ответа: Alexander

    Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long

    Пример:

    a = InputBox("New string for " & txtClass & ":", "New string")
    b = SetWindowText(hwnd1, a)
    txtClassText.Text = ""
    Picture1.Picture = LoadResPicture(102, vbResIcon)
    Form1.MousePointer = 0

    Ответ:

    Автор ответа: Артем Кривокрисенко

    lngtemp=SetWindowText (me.hwnd, "VB.NET - Rules Forever!!!" & chr(0))

    Строка должна оканчиваться на нулевой символ, поэтому я его и написал.

    Вопрос:

    Как правильно обновить рекордсет в DataEnvironment?
    Все обновляется один раз :

    private sub Obnovit()
    DataEnvironment.rsMyTable.update
    DataEnvironment.rsMyTable.requery
    'потом обновляю все Контролы (раньше не понимал почему данные не
    'обновляются в контролах вот пример:)
    set text1.DataSource=DataEnvironment
    set DataGrid1.DataSource=DataEnvironment
    end sub

    Если я второй раз вызываю sub Obnovit то ругается на update и requery, я нашел выход при котором хоть сколько раз вызывай Obnovit все обновляется : просто надо закрыть и заново открыть DataEnvironment после обновления:

    DataEnvironment.rsMyTable.close
    DataEnvironment.rsMyTable.open

    Все работает, но думаю что закрывать и открывать это неправильно, есть ли способы этого не делать чтобы правильно обновлять рекордсеты в DataEnvironment???? Вобщем как правильно обновить рекордсет в DataEnvironment ??

    Ответ:

    Автор ответа: Alexander

    Да, всё почти так.
    Microsoft сама рекомендует сделать так:

    private sub Obnovit()
    set DataGrid1.DataSource=Nothing ' рвём связь ====

    DataEnvironment.rsMyTable.update
    DataEnvironment.rsMyTable.requery
    'потом обновляю все Контролы (раньше не понимал почему данные не
    'обновляются в контролах вот пример:)
    set text1.DataSource=DataEnvironment

    set DataGrid1.DataSource=DataEnvironment ' восстанавливаем связь =====
    end sub

    Вопрос:

    1) Как програмно изменить цвет рабочего стола?
    2) На форме лежит SSTab, между его закругленными закладками виднеется сама форма. Как эти фидимые куски формы вырезать? Знаю, что с Path, но нужен пример.

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Что-то вроде этого:

    lngRgn=CreateRoundRectRgn(0,0,frmMain.width/15,frmmain.height/15,10,10)
    lngTemp=SetWindowRgn(frmmain.hwnd,lngrgn,true)

    10,10 - это ширина и высота скругления.

    Вопрос:

    Как создать АктивХ для игры в морской бой? То есть поле игры! Кто знает просьба ответить или дать ссылочку на документацию! Исходники брать не хочу! Хочу писать сам.

    Ответ:

    Автор ответа: ViTal

    >>> Хочу писать сам.
    :)))))))))))))) А чё ж вопросы задаёшь???

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Хе... Высоко взял. Для этого и DX можно взять. А если не хочешь, то сначала арисуй само поле, а на нем уже и клеточки. ИМХО, это несложно. Если хочешь, проконсультую: Artyom_kr@zp.ukrtel.net. Или подписывайся в почтовую конференцию VB-программистов: пустое письмо на vb-on@soobcha.org.

    Вопрос:

    Вот какие вопросы:
    1. Какие есть способы для закрашивания половины (части) буквы, например половина буквы "А" зеленая, другая - красная?
    2. И второй вопрос, как сделать так, чтобы буквы в слове были разноцветными?

    Ответ:

    Автор ответа: Eugen

    #1
    Что, инсталлер хочешь сделать, чтобы как в стандартном проценты отображать? :))

    Не суть. Я думаю, только через GetPixel/SetPixel применительно к hDc

    #2
    Используй RichTextBox

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили: