VB Студия
VB Line
Голосование:
Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.
Каким браузером Вы пользуетесь?
Результаты голосования
Доска почёта:
Sergey Y. Tkachev
Sergey Sapozhnikov
Sobic
|
Несколько слов от автора:
Вот новый девятый номер рассылки. Присылайте информацию. Без Вашей помощи рассылка долго не протянет.
Содержание выпуска
О группе СообЧаVB
Группа VB. Заходите в гости. Здесь вы приобретете практические навыки по программированию на Visual Basic.
Как вы этого сможете достигнуть? Путем написания собственной серьезной программы. Чем обычно занимается
рядовой чайник-программист? Ну пишет там всякие приколы на VB... Ну ма-а-ленькую полезную программку
наваяет. А как получить навыки в создании серьезных программ? Правильно, путем создания серьезных программ. ;)
Но в одиночку вам с этим не справиться. Вот для этого в проекте СообЧа существует группа
программистов-чайников, которые занимаются разработкой серьезного софта на VB. Суть состоит в том, что
вам совсем необязательно знать все в Visual Basicе. Вам достаточно быть рядовым чайником и немного знать
операторы VB. Остальному научимся вместе. На данный момент в группе разрабатывается почтовая программа
под рабочим названием "Сообчайлер". Она будет уметь все, что умеет популярная программа The Bat и даже
намного больше. Есть сборник оригинальных идей, выдвинутых членами нашей группы, которые мы постараемся
реализовать все вместе. Проект разбивается на отдельные простые задачи. Такие как: проверка орфографии,
форма для написания нового письма, главное окно... и т.п. Каждую часть делает отдельный человек. Затем он
высылает сделанный модуль в группу и остальные просто присоединяют его к базовому проекту. Вам совсем не
обязательно четко представлять как это сделать. Достаточно просто начать и столкнуться с какой-нибудь
проблемой. Пусть это будет даже проблема типа "А как добавить новый модуль к проекту?". Все. Наткнулись... ;)
Дальше действуем по одной схеме - пишем письмо с описанием проблемы в группу и мы все вместе разбираемся в
проблеме. Таким образом все остальные получат ЗНАНИЯ и некоторые навыки в решении создавшихся проблем. Не
забывайте - все мы чайники. Не стоит бояться задать вопрос. Задавайте - а мы вместе попытаемся найти ответ.
Подписаться в группу (пустое письмо)
наверх
Новости сайта VB Студия
24 сентября 2001 года - Обновление в разделе Хитрости. Добавлено 8 новых хитростей.
21 сентября 2001 года - Пополнение в разделе Примеры пополнение. Добавлены два примера Аркадия Оловянникова.
Небольшие изменения в разделах FAQ и Библиотека кодов
11 сентября 2001 года - В раздел Примеры добавлен пример создания Floating Bar - плавающей формы.
Добавлен раздел Архив рассылки
Количество подписчиков рассылки перевалило за 2000!
наверх
Новости сайта VB Line
17 сентября 2001 г. Раздел Программы пополнился новой версией программы Михаила Эскина для регистрации OCX и DLL.
15 сентября 2001 г. В разделе Советы обновление, кроме того добавлены несколько новых
примеров в Примеры, а также интересный OCX для работы
со Scin-ами в разделе ActiveX.
наверх
По теме UpFolder
Прислал Иван Р.
Это моё видение функции UpFolder - снижено
количество операторов для обращений к строкам,
сохранены все свойства от оригинала (неприкосновен
ность входной переменной).
Public Function UpFolder(Folder As String) as String
Dim nn As Long
nn=Len(Folder)
If Right$(Folder, 1) = "\" Then nn=(nn-1)
For nn = nn To 1 Step -1
If Mid(Folder, nn, 1) = "\" Then Exit For
Next nn
UpFolder = Left(Folder, nn)
End Function
наверх
Создание линии, подчёркивающей меню
Если ваша форма содержит меню, введите в событие Form_Load этот код и под
меню появится маленькая полоска, подчёркивающая меню:
AutoRedraw = True
ScaleMode = 3
Cls
Line (0, 0)-Step(ScaleWidth, 0), QBColor(8)
Line (0, 1)-Step(ScaleWidth, 0), QBColor(15)
AutoRedraw = False
наверх
Как минимизировть все открытые окна, или восстановить их обратно
Поставьте на форму две кнопки и этот код:
Private Const WM_COMMAND = &H111
Private Const MIN_ALL = 419
Private Const MIN_ALL_UNDO = 416
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Sub Command1_Click()
Dim lRetVal As Long
lRetVal = FindWindow("Shell_TrayWnd", vbNullString)
lRetVal = PostMessage(lRetVal, WM_COMMAND, MIN_ALL, 0&)
End Sub
Private Sub Command2_Click()
Dim lRetVal As Long
lRetVal = FindWindow("Shell_TrayWnd", vbNullString)
lRetVal = PostMessage(lRetVal, WM_COMMAND, MIN_ALL_UNDO, 0&)
End Sub
наверх
Как определить HOST и IP-адрес компьютера
Подготовте проект, добавив в него форму.
На форму поместите:
- Кнопку с именем cmdGetHost
- 2 текстовых поля с именами txtHostName и txtIpAddr
Добавте в форму:
----
Option Explicit
Private Const MAX_WSADescription = 256
Private Const MAX_WSASYSStatus = 128
Private Const ERROR_SUCCESS As Long = 0
Private Const WS_VERSION_REQD As Long = &H101
Private Const WS_VERSION_MAJOR As Long = WS_VERSION_REQD \ &H100 And &HFF&
Private Const WS_VERSION_MINOR As Long = WS_VERSION_REQD And &HFF&
Private Const MIN_SOCKETS_REQD As Long = 1
Private Const SOCKET_ERROR As Long = -1
Private Type HOSTENT
hName As Long
hAliases As Long
hAddrType As Integer
hLen As Integer
hAddrList As Long
End Type
Private Type WSADATA
wVersion As Integer
wHighVersion As Integer
szDescription(0 To MAX_WSADescription) As Byte
szSystemStatus(0 To MAX_WSASYSStatus) As Byte
wMaxSockets As Integer
wMaxUDPDG As Integer
dwVendorInfo As Long
End Type
Private Declare Function WSAGetLastError Lib "WSOCK32.DLL" () As Long
Private Declare Function WSAStartup Lib "WSOCK32.DLL" _
(ByVal wVersionRequired As Long, lpWSADATA As WSADATA) As Long
Private Declare Function WSACleanup Lib "WSOCK32.DLL" () As Long
Private Declare Function gethostname Lib "WSOCK32.DLL" _
(ByVal szHost As String, ByVal dwHostLen As Long) As Long
Private Declare Function gethostbyname Lib "WSOCK32.DLL" _
(ByVal szHost As String) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long)
Public Function GetIPAddress() As String
Dim sHostName As String * 256
Dim lpHost As Long
Dim HOST As HOSTENT
Dim dwIPAddr As Long
Dim tmpIPAddr() As Byte
Dim i As Integer
Dim sIPAddr As String
If Not SocketsInitialize() Then
GetIPAddress = ""
Exit Function
End If
If gethostname(sHostName, 256) = SOCKET_ERROR Then
GetIPAddress = ""
MsgBox "Windows Sockets error " & Str$(WSAGetLastError()) & _
" has occurred. Unable to successfully get Host Name."
SocketsCleanup
Exit Function
End If
sHostName = Trim$(sHostName)
lpHost = gethostbyname(sHostName)
If lpHost = 0 Then
GetIPAddress = ""
MsgBox "Windows Sockets are not responding. " & _
"Unable to successfully get Host Name."
SocketsCleanup
Exit Function
End If
CopyMemory HOST, lpHost, Len(HOST)
CopyMemory dwIPAddr, HOST.hAddrList, 4
ReDim tmpIPAddr(1 To HOST.hLen)
CopyMemory tmpIPAddr(1), dwIPAddr, HOST.hLen
For i = 1 To HOST.hLen
sIPAddr = sIPAddr & tmpIPAddr(i) & "."
Next
GetIPAddress = Mid$(sIPAddr, 1, Len(sIPAddr) - 1)
SocketsCleanup
End Function
Public Function GetIPHostName() As String
Dim sHostName As String * 256
If Not SocketsInitialize() Then
GetIPHostName = ""
Exit Function
End If
If gethostname(sHostName, 256) = SOCKET_ERROR Then
GetIPHostName = ""
MsgBox "Windows Sockets error " & Str$(WSAGetLastError()) & _
" has occurred. Unable to successfully get Host Name."
SocketsCleanup
Exit Function
End If
GetIPHostName = Left$(sHostName, InStr(sHostName, Chr(0)) - 1)
SocketsCleanup
End Function
Private Function HiByte(ByVal wParam As Integer)
HiByte = wParam \ &H1 And &HFF&
End Function
Private Function LoByte(ByVal wParam As Integer)
LoByte = wParam And &HFF&
End Function
Private Sub SocketsCleanup()
If WSACleanup() <> ERROR_SUCCESS Then
MsgBox "Socket error occurred in Cleanup."
End If
End Sub
Private Function SocketsInitialize() As Boolean
Dim WSAD As WSADATA
Dim sLoByte As String
Dim sHiByte As String
If WSAStartup(WS_VERSION_REQD, WSAD) <> ERROR_SUCCESS Then
MsgBox "The 32-bit Windows Socket is not responding."
SocketsInitialize = False
Exit Function
End If
If WSAD.wMaxSockets < MIN_SOCKETS_REQD Then
MsgBox "This application requires a minimum of " & _
CStr(MIN_SOCKETS_REQD) & " supported sockets."
SocketsInitialize = False
Exit Function
End If
If LoByte(WSAD.wVersion) < WS_VERSION_MAJOR Or _
(LoByte(WSAD.wVersion) = WS_VERSION_MAJOR And _
HiByte(WSAD.wVersion) < WS_VERSION_MINOR) Then
sHiByte = CStr(HiByte(WSAD.wVersion))
sLoByte = CStr(LoByte(WSAD.wVersion))
MsgBox "Sockets version " & sLoByte & "." & sHiByte & _
" is not supported by 32-bit Windows Sockets."
SocketsInitialize = False
Exit Function
End If
SocketsInitialize = True
End Function
' Использование
Private Sub cmdGetHost_Click()
txtHostName = GetIPHostName()
txtIpAddr = GetIPAddress()
End Sub
наверх
Мои программы
BalloonMessage for MS Agent
BalloonMessage for Microsoft Agent реализует диалог программы с
пользователем, используя при этом технологию Microsoft Agent. OCX реализует три
типа диалоговых окон: InputBox, MsgBox и MsgLabels.
наверх
Вопрос/Ответ
Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.
Вопросы:
Автор вопроса: Sergey
Ответ ожидается по этому адресу
Как создавать WinHelp файлы.
И как сделать справку "Что это?"
Автор вопроса: Сергей
Ответ ожидается по этому адресу
Как сделать на VB элемент управления ActiveX типа TreeView в такой иерархической системе, которая используется в
Win98. Если можно покажите код.
Автор вопроса: Сергей
Ответ ожидается по этому адресу
Прошу помочь в написании кода для работы с LPT портом, необходимо:
переслать байт в порт,
управлять линией STROBE.
Автор вопроса: Vasiliy
Ответ ожидается по этому адресу
Вот еще один вопросик: как сохранять иконку из picture на диск
через API(по типу SavePicture)?
Автор вопроса: Богдан
Ответ ожидается по этому адресу
Как внедрить Word2000 на форму Access2000?
Вместо поля Edit я хотел бы поместить Ворд для редактирования текста на
форму Access'а.
Автор вопроса: Сергей
Ответ ожидается по этому адресу
Есть БД Access. Ия таблицы Tabl необходимо вытащить внешним модулем на VB5
проиявольную яапись с некоторым номером, для дальнейшей обработки.
Помогите, кто янает.
Автор вопроса: ViDo
Ответ ожидается по этому адресу
Как можно определить номер страницы в Верде (проблема яаключается в том, что иногда
нумерация начинается с нуля, например, а номер страницы в верхний/нижний колонтитул не вставлен
- обращаться некуда)?
Автор вопроса: Артём
Ответ ожидается по этому адресу
Можно ли прочитать указанный мной сектор диска, если да то как?
Автор вопроса: Сергей
Ответ ожидается по этому адресу
Как_ сделать так, чтобы .wav файл играл как фоновая музыка и была слышен клик мыши_ на фоне
музыки.
Автор вопроса: Алексей
Ответ ожидается по этому адресу
Как из-под Basic for MS Excel выдать через динамик звук определенной частоты
и длительности ( например, нота ЛЯ: 440 Гц, 1 секунда ) ?
А как это сделать через колонки ( наушники ) ?
Автор вопроса: Тимур
Ответ ожидается по этому адресу
Возможно ли с Помощью VB соядать программу дозвона по ppp-протоколу? Хотелось видеть
исходный код, если это возможно.
Автор вопроса: Vasiliy
Ответ ожидается по этому адресу
Люди!!! Кто знает как сделать графическое сопровождение
музыкального файла как в Win. Media Player.
Автор вопроса: Sobic
Ответ ожидается по этому адресу
Нужно вывести картинку запиханную в массив pic(width,height) as byte на экран,
используя палитру Pal(255,2). Причем с максимальной скоростью. Пробовал
преобразовывать в RGB картинку и выводить с помощью SetDIBitsToDevice,
но получается медленно. Преобразования тормозят вывод. Может кто
поможет?
Автор вопроса: Olya
Ответ ожидается по этому адресу
Внедряю .xls в Access (использую OLE). Сразу открывается этот файл. Каким образом
заставить минимизироваться приложение Excel и как мне закрыть файл .xls или Excel. Перепробовала
все команды из help'а, но они игнорируются. Помогите!!!
Ответы:
Вопрос:
Можно ли в ACCESS2000 сделать так, чтобы раяличные яаписи (строки)в форме
отображались раяным цветом,например,для выделения красным просроченных платежей.
Пробовала помечать bmp-ияображением, но это так долго_груяится. Записей много.
Ответ:
Автор ответа Руленков Александр
Да можно. Это делается при помощи условного форматирования. Открывай в меню формат >условное
форматирование. Для поля в ленточной форме можно задать до 3 условий и соответсвенно разные
цвета, начертание текста ,а также доступность или нет поля при соответсвия разным значениям. Это
можно делать и в режиме конструктора формы и программно через семейство FormatConditions
Можете заполнить эту форму, либо отослать вопрос СЮДА
Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
наверх
Доска объявлений
Требуется человек, знающий HTML для работы с сайтом группы СооБчаVB. Вопросы и предложения по этому адресу
наверх
|