VBNet
VBMania
Голосование:
Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.
Нет тем.
Доска почёта:
Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:
Улицы VB
Использование VB
Азбука VB
VB на русском
Улицы VB
Кирпичики VB
CообЧа VB
Snoozex Design
IgorykSoft
|
Господа!!! читайте MSDN!!!
Несколько слов от автора:
Скоро праздники!!!
Читайте!
Содержание выпуска
Книги
|
ADO и Visual Basic. Руководство разработчика
В книге описано использование технологии доступа к данным (ADO) с помощью основного инструмента разработки приложений Microsoft - Visual Basic 6.0. Из книги вы узнаете, как можно исследовать источники данных при помощи окна Data View, как создавать формы для ввода и запроса данных, используя связанные элементы управления, и подсоединяться к источникам данных со сложной иерархической структурой средствами Data Environment. Далее вы изучите, как можно, используя Data Report, представлять информацию в форме, подходящей для печати, или как следует исполнять некоторые, наиболее широко распространенные задачи, связанные с обработкой данных, используя ADO внутри кода Visual Basic. В последних главах книги рассмотрены дополнительные операции, используемые в коде, в том числе формирование данных, для создания иерархических наборов записей, применение ADO в сети Internet и даже создание собственных источников данных. Чтобы более полно использовать средства ADO для извлечения информации из различных источников, в приложении к книге вы найдете справочник по языку SQL, в котором обсуждаются основы работы с оператором SQL SELECT.
Автор: Гандерлой М.
Издательсвто: Энтроп, Век
Год издания: 2001
Кол-во страниц: 336
Стоимость: 177 р.
Формат: 70х100/16
Переплёт: мягкий
|
|
Excel, VBA, Internet в экономике и финансах
Книга является руководством по использованию Microsoft Excel, разработке офисных бизнес-приложений средствами VBA и конструированию Web-страниц на базе DHTML и VBScript. Рассматриваются приемы создания отчетной финансовой и экономической документации средствами MS Excel, способы анализа и обработки собранной информации для принятия на ее основе оптимального решения; даются ответы на вопросы, которые возникают у программиста при разработке автоматизированных и интегрированных систем с помощью VBA; описываются особенности конструирования пользовательских элементов управления ActiveX, а также написания Windows-сценариев. Большое внимание уделено принципам создания интерактивных Web-страниц, виртуальных каталогов и магазинов. Книга содержит уникальную коллекцию типичных примеров. Почти каждая глава заканчивается списком упражнений, способствующих закреплению материала
Автор: Гарнаев А
Издательсвто: BHV - Санкт - Петербург
Год издания: 2001
Кол-во страниц: 816
Стоимость: 230 р.
Формат: 70х100/16
Переплёт: мягкий
|
|
MCSD. Сертификационный экзамен 70-175. Разработка распределенных приложений на Visual Basic 6.0. Учебный курс (+ CD-ROM)
Настоящий учебный курс рекомендован корпорацией Microsoft как официальное пособие для подготовки к экзамену 70-175 «Designing and Implementing Distributed Applications with Microsoft Visual Basic 6.0» по программе сертификации разработчиков программных решений на основе продуктов Microsoft (Microsoft Certified Solutions Developer, MCSD). Эта книга познакомит Вас с основными понятиями, концепциями и методами, необходимыми для разработок распределенных программных решений на базе Visual Basic 6.0.
Автор: MCSD Training Kit
Издательсвто: Русская Редакция
Год издания: 2000
Кол-во страниц: 400
Стоимость: 272 р.
Формат: 70х100/1670х100/16
Переплёт: мягкий
|
|
Microsoft Visual Basic 5.0
В книге рассматривается новая пятая версия Microsoft Visual Basic - языка программирования, являющегося фактическим стандартом визуального проектирования приложений. Описываются общие черты Visual Basic, реализованные в нем концепции объектно-ориентированного программирования, среда разработки (IDE). Далее рассматривается объектно-ориентированная модель Visual Basic и доступные разработчику объектные компоненты. Подробно описываются технологии программирования на языке Visual Basic и SQL, отладка и оптимизация кода приложения, вопросы компиляции исполняемых модулей. В последующих главах освещаются практические вопросы построения приложений - работа с текстом и графикой, механизмы доступа и управления данными, работа с внешними базами данных и создание приложений клиент/сервер. Книга предназначена для широкого круга программистов, работающих в области обработки данных и информационных систем.
Автор: Шмидт В
Издательсвто: ABF
Год издания: 1997
Кол-во страниц: 688
Стоимость: 85 р.
Формат: 84x108/16
Переплёт: мягкий
|
|
Microsoft Visual Basic 6.0
Нет описания
Автор: Лабор В, Макарчук Д
Издательсвто: нет данных
Год издания: 2001
Кол-во страниц: 160
Стоимость: 60 р.
Формат: 70х100/16
Переплёт: мягкий
|
|
Microsoft Visual Basic 6.0. Мастерская разработчика (+ CD-ROM)
Книга состоит из 3 частей (34 главы) и предметного указателя. Написанная живо и доходчиво, она позволит освоить множество полезных приемов программирования, в том числе объектно-ориентированного, и научит, как создавать 32-разрядные приложения для Windows 95/98 и Windows NT — от экранных заставок до программ, ориентированных на Интернет. Кроме того, Вы узнаете, как расширить возможности языка за счет функций Win32 API и воспользоваться преимуществами технологии ActiveX.
Автор: Джон Кларк Крейг, Джефф Уэбб
Издательсвто: Русская Редакция
Год издания: 2001
Кол-во страниц: 720
Стоимость: 272 р.
Формат: 70х100/16
Переплёт: твёрдый
|
|
VB Script и ActiveX
Книга предназначена для разработчиков Web - приложений на языке VBScript, желающих повысить свой профессиональный уровень и стать экспертами в этой области. В ней подробно рассказывается о новых возможностях VBScript, включая использование именованных констант, функций, переменных и коллекций, приводится вся необходимая информация о технологии ActiveX, принципах взаимодействия VBScript и Visual Basic при создании приложений, работающих на сервере. Прочитав эту книгу, вы научитесь использовать звуковые эффекты, создавать анимированную графику, строить формы для ввода данных, узнаете, как с помощью VBScript создать в Web электронный магазин и отслеживать число посетителей и деланные ими покупки. Вы даже сумеете написать увлекательную мультимедийную игру для Web.
Автор: Скотт Палмер
Издательсвто: Питер
Год издания: 1999
Кол-во страниц: 368
Стоимость: 94 р.
Формат: 70х100/16
Переплёт: мягкий
|
|
VBA 2000. Самоучитель
В книге содержится краткий курс по использованию языка и системы VBA для Word и Excel 2000. Книга предназначена для начинающих программировать в среде Windows 95/98 с использованием в качестве базовых таких объектов Word и Excel, как документы, рабочие книги, листы и так далее. Материала книги достаточно для создания как простых макросов, помогающих автоматизировать рутинную повторяющуюся работу над документами и электронными таблицами, так и для разработки достаточно сложных приложений, обрабатывающих данные в диалоговых окнах, обеспечивающих пользователя самыми современными интерфейсными средствами.
Автор: Кузьменко В
Издательсвто: Бином
Год издания: 2000
Кол-во страниц: 416
Стоимость: 116 р.
Формат: 70х100/16
Переплёт: мягкий
|
|
Visual Basic 6 Desktop. Экзамен 70-176
Книги серии `Экзамен – экстерном` представляют собой удобные, сжатые, хорошо структурированные конспекты для подготовки к сдаче сертификационных экзаменов на звание Microsoft Certified Solution Developer. Книга `Visual Basic 6.0 Desktop. Экзамен 70-176` содержит только действительно необходимый материал, типовые вопросы с ответами и пример экзамена. Возможно, некоторые подходы, применяемые автором, покажутся вам не совсем привычными - не удивляйтесь: это не учебник по Visual Basic; организация материала в этой книге призвана максимально облегчить задачу экзаменуемого. Учтите, что в ряде случаев экзаменационные вопросы выходят за рамки тем, отраженных в документации по Visual Basic, а иной раз правильные ответы на них даже входят в противоречие с `официальной` информацией.
Автор: Майкл Макдоналд
Издательсвто: Питер
Год издания: 2001
Кол-во страниц: 608
Стоимость: 123 р.
Формат: 60x90/16
Переплёт: мягкий
|
|
Visual Basic 6. Руководство разработчика (+ CD-ROM)
Эта книга, написанная известным специалистом и неутомимым пропагандистом Visual Basic, представляет собой прекрасный путеводитель по одному из наиболее популярных визуальных средств разработки Windows-приложений. Подробно освещаются такие ключевые темы программирования на Visual Basic, как проектирование и использование элементов ActiveX, программирование баз данных и разработка Web-приложений. Несомненный интерес представляют главы, посвященные работе с графикой. Большое количество тщательно продуманных примеров облегчает восприятие материала. Подбор материала и стиль изложения делают издание интересным и полезным для программистов разных уровней.
Автор: Евангелос Петрусос
Издательсвто: BHV, Ирина, SYBEX Inc
Год издания: 2000
Кол-во страниц: 1072
Стоимость: 267 р.
Формат: 70x100/32
Переплёт: твёрдый
|
Остальные книги о VB можно найти здесь.
наверх
Различный вид формы
Данный пример добавляет почти по границе формы
небольшую кайму, определяющую внешний вид формы.
Такой вид, как если бы на форме присутствовал
элемент Frame, CommandButton или
нажатый CommandButton.
Private Const BDR_SUNKENOUTER = &H2
Private Const BDR_RAISEDINNER = &H4
Private Const BF_BOTTOM = &H8
Private Const BF_LEFT = &H1
Private Const BF_RIGHT = &H4
Private Const BF_TOP = &H2
Private Const EDGE_ETCHED = (BDR_SUNKENOUTER Or BDR_RAISEDINNER)
Private Const BF_RECT = (BF_LEFT Or BF_TOP Or BF_RIGHT Or BF_BOTTOM)
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function DrawEdge Lib "user32" (ByVal hdc As Long, qrc As RECT,
ByVal edge As Long, ByVal grfFlags As Long) As Long
Private 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
Private Sub Form_Paint()
Dim TRect As RECT
Me.ScaleMode = vbPixels
SetRect TRect, 10, 10, Me.ScaleWidth - 10, Me.ScaleHeight - 10
'вы можете использовать одну из трех строчек ниже
'DrawEdge Me.hdc, TRect, EDGE_ETCHED, BF_RECT
DrawEdge Me.hdc, TRect, BDR_SUNKENOUTER, BF_RECT
'DrawEdge Me.hdc, TRect, BDR_RAISEDINNER, BF_RECT
End Sub
наверх
Где в реестре хранятся все интернет-соединения
ключ HKEY_CURRENT_USER\RemoteAccess\Addresses
наверх
Получить IP адрес
Как вы знаете (или не знаете), при вашем подключении к Интернету, вашему компьютеру назначается адрес, по которому вас можно идентифицировать в сети: что-то типа 201.194.10.12. Так вот этот пример и покажет вам ваш текущий адрес.
'1 ВАРИАНТ
'Расположите на форме компонент Winsock(Winsock1) через
меню Project|Components - Microsoft Winsock Control 6.0
Private Sub Form_Load()
MsgBox Winsock1.LocalIP
End Sub
'2 ВАРИАНТ
'Вставьте следующий код в событие формы
Private Sub Form_Load()
MsgBox "IP Host Name: " & GetIPHostName()
MsgBox "IP Address: " & GetIPAddress()
End Sub
'Добавьте модуль в проект. Вставьте следующий код
в модуль
Public Const MAX_WSADescription = 256
Public Const MAX_WSASYSStatus = 128
Public Const ERROR_SUCCESS As Long = 0
Public Const WS_VERSION_REQD As Long = &H101
Public Const WS_VERSION_MAJOR As Long = WS_VERSION_REQD \ &H100 And &HFF&
Public Const WS_VERSION_MINOR As Long = WS_VERSION_REQD And &HFF&
Public Const MIN_SOCKETS_REQD As Long = 1
Public Const SOCKET_ERROR As Long = -1
Public Type HOSTENT
hName As Long
hAliases As Long
hAddrType As Integer
hLen As Integer
hAddrList As Long
End Type
Public 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
Public Declare Function WSAGetLastError Lib "WSOCK32.DLL" () As Long
Public Declare Function WSAStartup Lib "WSOCK32.DLL" (ByVal wVersionRequired As
Long, lpWSADATA As WSADATA) As Long
Public Declare Function WSACleanup Lib "WSOCK32.DLL" () As Long
Public Declare Function gethostname Lib "WSOCK32.DLL" (ByVal szHost As String,
ByVal dwHostLen As Long) As Long
Public Declare Function gethostbyname Lib "WSOCK32.DLL" (ByVal szHost As String)
As Long
Public 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
Public Function HiByte(ByVal wParam As Integer)
HiByte = wParam \ &H100 And &HFF&
End Function
Public Function LoByte(ByVal wParam As Integer)
LoByte = wParam And &HFF&
End Function
Public Sub SocketsCleanup()
If WSACleanup() <> ERROR_SUCCESS Then
MsgBox "Socket error occurred in Cleanup."
End If
End Sub
Public 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
наверх
Как программно отсоединиться от Интернета
Добавьте на форму элемент CommandButton. При
нажатии на кнопку происходит вызов функции HangUp,
которая закрывает соединение с Интернетом.
Const RAS_MAXENTRYNAME As Integer = 256
Const RAS_MAXDEVICETYPE As Integer = 16
Const RAS_MAXDEVICENAME As Integer = 128
Const RAS_RASCONNSIZE As Integer = 412
Const ERROR_SUCCESS = 0&
Private Type RasEntryName
dwSize As Long
szEntryName(RAS_MAXENTRYNAME) As Byte
End Type
Private Type RasConn
dwSize As Long
hRasConn As Long
szEntryName(RAS_MAXENTRYNAME) As Byte
szDeviceType(RAS_MAXDEVICETYPE) As Byte
szDeviceName(RAS_MAXDEVICENAME) As Byte
End Type
Private Declare Function RasEnumConnections Lib "rasapi32.dll" Alias
"RasEnumConnectionsA" (lpRasConn As Any, lpcb As Long, lpcConnections As Long)
As Long
Private Declare Function RasHangUp Lib "rasapi32.dll" Alias
"RasHangUpA" (ByVal hRasConn As Long) As Long
Private gstrISPName As String
Public ReturnCode As LongPublic Sub HangUp()
Dim i As Long
Dim lpRasConn(255) As RasConn
Dim lpcb As Long
Dim lpcConnections As Long
Dim hRasConn As Long
lpRasConn(0).dwSize = RAS_RASCONNSIZE
lpcb = RAS_MAXENTRYNAME * lpRasConn(0).dwSize
lpcConnections = 0
ReturnCode = RasEnumConnections(lpRasConn(0), lpcb, lpcConnections)
If ReturnCode = ERROR_SUCCESS Then
For i = 0 To lpcConnections - 1
If Trim(ByteToString(lpRasConn(i).szEntryName)) = Trim(gstrISPName) Then
hRasConn = lpRasConn(i).hRasConn
ReturnCode = RasHangUp(ByVal hRasConn)
End If
Next i
End If
End Sub
Public Function ByteToString(bytString() As Byte) As String
Dim i As Integer
ByteToString = ""
i = 0
While bytString(i) = 0&
ByteToString = ByteToString & Chr(bytString(i))
i = i + 1
Wend
End Function
Private Sub Command1_Click()
Call HangUp
End Sub
наверх
Напечатать Web-страницу
Требуется Интернет Эксплорер версии 4 и выше.
Перед началом печати будет показан диалог
печати.
Добавьте элемент CommandButton.
Private Const MAX_PATH = 255
Private Declare Function GetSystemDirectory Lib "kernel32" Alias
"GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Public Function PrintWebPage(ByVal URL As String) As Boolean
Dim sFile As String
sFile = SystemDir & "\MSHTML.DLL"
If Dir(sFile) = "" Then Exit Function
On Error Resume Next
Shell "rundll32.exe " & sFile & ",PrintHTML " & URL,
vbNormalFocus
PrintWebPage = Err.Number = 0
End Function
Private Function SystemDir() As String
Dim sRet As String, lngRet As Long
sRet = String$(MAX_PATH, 0)
lngRet = GetSystemDirectory(sRet, MAX_PATH)
SystemDir = Left(sRet, lngRet)
End Function
Private Sub Command1_Click()
PrintWebPage "http://vbnet.ru"
End Sub
наверх
Вызвать окно "Установка связи с Интернетом"
Данный код вызывает окно "Установка связи" из "Удаленный доступ к сети". Естественно, вы должны знать имя текущего соединения с интернетом.
Private Sub Form_Load()
Result = Shell("rundll32.exe rnaui.DLL,RnaDial " &
"connection_name", 1)
End Sub
наверх
Мои программы
BalloonMessage for MS Agent
BalloonMessage for Microsoft Agent реализует диалог программы с
пользователем, используя при этом технологию Microsoft Agent. OCX реализует три
типа диалоговых окон: InputBox, MsgBox и MsgLabels.
Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
наверх
Вопрос/Ответ
Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.
Вопросы:
Автор вопроса: EUgene
Ответ ожидается по этому адресу
Скажите пожалуйста, могу ли я через VB - узнать: дату и время создания файла COMMAND.COM, если да- то как?
Автор вопроса: Вано
Ответ ожидается по этому адресу
Даны два двумерных массива. После ввода первого массива, должен отображаться другой, но с условием что строки и столбцы этого массива будут перевернуты, т.е. первый элемент массива один должен стать последним элементом второго массива. И так со всеми элементами.
Автор вопроса: CyRax
Ответ ожидается по этому адресу
Какие функции VB(встроенные или API) можно использовать для работы с памятью?
Автор вопроса: Sensey
Ответ ожидается по этому адресу
У кого имеется туторы и справки по VB и 3D MAX можете закидать мой почтовый ящик
Автор вопроса: alex
Ответ ожидается по этому адресу
Пример:
Private Sub cmdSave_KeyPress(KeyAscii As Integer)
If ((KeyAscii = vbKeyReturn) Or (KeyAscii = vbKeyTab)) Then
Saving
End If
End Sub
Вопрос: почему-то такой код нормально реагирует на , но никак не реагирует на . Может, кто янает?
Автор вопроса: Alexandr
Ответ ожидается по этому адресу
Как программно перетащить ярлык файла в RichTextBox ? Обращаюсь к янатокам Visual Basic. Элементарная на первый вягляд яадача. Требуется программно сформировать в RichTextBox текст, содержащий таблицу в смысле MS Word.
Делаю так.
sFileRTF=App.Path & "\tmp.rtf"
Set wrd = New Word.Application
Set objDoc = New Word.Document
With objDoc.ActiveWindow.Selection
.TypeText rsI.Fields("titul")
.TypeText rsI.Fields("adres")
.TypeText ""
' и т.д.
Set objTable = ActiveDocument.Tables.Add(Range:=Selection.Range, _
NumRows:=1, NumColumns:=4)
End With
objDoc.SaveAs sFileRTF, FileFormat:=wdFormatRTF
Me.RichTextBox1.LoadFile sFileRTF, rtfRTF
А табличек на экране нету, только голый текст. Хотя, если открыть в MS Word файл tmp.rtf, то там все в порядке, таблички на месте.
Теперь делаем такой фокус.
Открываем Проводник. Хватаем "мышкой" ярлык файла "tmp.rtf" и тащим его на RichTextBox.
Все садится прекрасно.
Вопрос: как это перетаскивание сделать программно вместо LoadFile ?
Скорее всего должна быть API-функция такая.
Поиски методом тыка не увенчались успехом.
Кто-нибудь сталкивался с этой яадачей ?
Автор вопроса: Белоусов Артем
Ответ ожидается по этому адресу
Подскажите пожалуйста как в CommonDialog настроить фильтр на расширение tst.
Автор вопроса: Николай
Ответ ожидается по этому адресу
Подскажите пожалуйсто как в проекте вместо стандартной бейсиковской иконки поставить свою.
Автор вопроса: Василий
Ответ ожидается по этому адресу
Подскажите как в VBA прописать winsock !
Автор вопроса: Vladimir
Ответ ожидается по этому адресу
Как в Visual Basic открывается форма для выбора каталогов, можно ли при помощи Win_API?
Автор вопроса: FAS
Ответ ожидается по этому адресу
Подскажите, пожалуйста, как можно узнать:
1) Объем заданного диска;
2) Сколько места свободно;
3) Сколько места занято.
Автор вопроса: sapient
Ответ ожидается по этому адресу
Народ, вы случаем не в курсе, нет ли в Excel-ном VB встроенной функции, для конвертания адреса ячйки из формата R1C1 (R26C27) в A1 (AA26)???
Автор вопроса: Владимир Б.
Ответ ожидается по этому адресу
Необходимо подключить БД Paradox, стандартными способами не могу подключить,говорит что БД не того формата.Может кто-то подскажет как это сделать.
Ответы:
Вопрос:
У меня у формы BorderStyle=0, как мне программно поменять его на 1 или 2, если написать просто form1.borderstyle=1, то ничего не происходит.
Ответ:
Автор ответа: Алексей Каленов
Этот небольшой пример показывает как можно на лету менять структуру окна (внешний вид и не только).
Создайте форму (Form1), поместите на неё пять кнопок (Command1, Command2, Command3, Command4, Command5) и данный код.
Вся информация взята из книги "Win32 и Visual BASIC. Для профессионалов(+CD)". Автор Dan Appleman's. Большая благодарность автору!!! Цена книге соответствует.
В коде есть только одна проблема. После использования функции SetWindowLong окно меняет свои свойства, но не перерисовывается. Для этого я использовал изменения размеров окна. Наверное можно использовать что-нибудь попроще с использованием SendMessage или как нибудь еще.
Option Explicit
Dim tmplong As Long
Dim tmplong1 As Long
' Основные параметры окна
Const WS_OVERLAPPED& = &H0& ' при создании - окно с рамкой и заголовком, в работе - ошибка защиты Windows
Const WS_MAXIMIZEBOX& = &H10000 ' для окна - наличие кнопки минимизировать
Const WS_TABSTOP& = &H10000 ' для других элементов - закрепление позиции табуляции
Const WS_MINIMIZEBOX& = &H20000 ' для окна - наличие кнопки свернуть
Const WS_GROUP& = &H20000 ' для остального - является началом группы элементов
Const WS_THICKFRAME& = &H40000 ' для окна - размеры окна меняются за толстую рамку
Const WS_SYSMENU& = &H80000 ' в левой части окна есть кнопка системного меню
Const WS_HSCROLL& = &H100000 ' в окне есть горизонтальная полоса прокрутки
Const WS_VSCROLL& = &H200000 ' в окне есть вертикальная полоса прокрутки
Const WS_DLGFRAME& = &H400000 ' окно с двойной рамкой но нет заголовка
Const WS_BORDER& = &H800000 ' окно с рамкой
Const WS_CAPTION& = &HC00000 ' окно с рамкой и заголовком
Const WS_MAXIMIZE& = &H1000000 ' окно развернуто
Const WS_CLIPCHILDREN& = &H2000000 ' в окне нельзя рисовать поверх других элементов (аналог свойства ClipControls)
Const WS_CLIPSIBLINGS& = &H4000000 ' запрещает дочернему окну рисовать поверх другого дочернего окна
Const WS_DISABLED& = &H8000000 ' окно заблокировано (аналог Enable = False)
Const WS_VISIBLE& = &H10000000 ' окно является видимым (аналог Visible = True)
Const WS_MINIMIZE& = &H20000000 ' окно свернуто
Const WS_CHILD& = &H40000000 ' окно является дочерним (надо установить после SetPatent)
Const WS_CHILDWINDOW& = (WS_CHILD) '
Const WS_POPUP& = &H80000000 ' окно является всплывающим
Const WS_OVERLAPPEDWINDOW& = (WS_OVERLAPPED Or WS_CAPTION Or WS_SYSMENU Or WS_THICKFRAME Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX)
Const WS_POPUPWINDOW& = (WS_POPUP Or WS_BORDER Or WS_SYSMENU)
Const WS_TILED& = WS_OVERLAPPED '
Const WS_TILEDWINDOW& = WS_OVERLAPPEDWINDOW '
' Расширенные параметры окна
Const WS_EX_LEFT& = &H0& ' значение по умолчанию
Const WS_EX_LTRREADING& = &H0& ' значение по умолчанию
Const WS_EX_RIGHTSCROLLBAR& = &H0& ' значение по умолчанию
Const WS_EX_DLGMODALFRAME& = &H1& ' окно имеет двойную рамку
Const WS_EX_NOPARENTNOTIFY& = &H4& ' Windows не будет уничтожать это окно
Const WS_EX_TOPMOST& = &H8& ' окно находится поверх остальных у которых бит не установлен
Const WS_EX_ACCEPTFILES& = &H10& ' окно принимает файлы при перетаскивании из диспетчера файлов (?)
Const WS_EX_TRANSPARENT& = &H20& ' окно является прозрачным и не скрывает окна под собой
Const WS_EX_MDICHILD& = &H40& ' окно имеет уменьшенный заголовок и не отображается в панели задач
Const WS_EX_TOOLWINDOW& = &H80& ' окно представляет собой кнопку, содержащую растр вместо текста
Const WS_EX_WINDOWEDGE& = &H100& ' окно имеет приподнятую рамку
Const WS_EX_CLIENTEDGE& = &H200& ' окно имеет утопленную рамку
Const WS_EX_CONTEXTHELP& = &H400& ' в заголовке есть кнопка с вопросом.
Const WS_EX_RIGHT& = &H1000& ' если WS_EX_RTLREADING установлен текст выравнивается по правому краю
Const WS_EX_RTLREADING& = &H2000& ' в иврите и арабском языке текст вывлдится справа налево
Const WS_EX_LEFTSCROLLBAR& = &H4000& ' если WS_EX_RTLREADING установлен полоса прокрутки перемещается налево
Const WS_EX_CONTROLPARENT& = &H10000 ' клавиша Tab вызывает переключение между дочерними окнами данного окна
Const WS_EX_STATICEDGE& = &H20000 ' объемное оформление
Const WS_EX_APPWINDOW& = &H40000 ' свернутое приложение помещается в панель задач
' Разновидность параметра
Const GWL_WNDPROC& = (-4) ' адрес функции окна
Const GWL_HINSTANCE& = (-6) ' манипулятор экземпляра, владеющего заданным окном
Const GWL_HWNDPARENT& = (-8) ' манипулятор родителя для заданного окна (лучше только читать, для записи SetParent)
Const GWL_ID& = (-12) ' идентификатор дочернего окна в диалоговой панели
Const GWL_STYLE& = (-16) ' СТИЛЬ ОКНА
Const GWL_EXSTYLE& = (-20) ' РАСШИРЕННЫЙ СТИЛЬ ОКНА
Const GWL_USERDATA& = (-21) ' параметры определяются приложением (что то навроде Tag)
' функции для чтения и записи информации о структуре окна
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 SendMessage 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()
SetWindowLong Me.hwnd, -16, tmplong 'GetWindowLong(Me.hwnd, -16) Or WS_CAPTION& Or WS_THICKFRAME&
Me.Height = Me.Height - 10
Me.Height = Me.Height + 10
End Sub
' кнопка убирает заголовок окна режим BorderStyle=2
Private Sub Command2_Click()
SetWindowLong Me.hwnd, -16, tmplong And (Not WS_CAPTION&)
Me.Height = Me.Height - 10
Me.Height = Me.Height + 10
End Sub
' кнопка убирает толстую рамку. режим BorderStyle=1
Private Sub Command3_Click()
SetWindowLong Me.hwnd, -16, tmplong And (Not WS_THICKFRAME&)
Me.Height = Me.Height - 10
Me.Height = Me.Height + 10
End Sub
' кнопка убирает толстую рамку. режим BorderStyle=0
Private Sub Command4_Click()
SetWindowLong Me.hwnd, -16, tmplong And (Not (WS_THICKFRAME& Or WS_CAPTION&))
Me.Height = Me.Height - 10
Me.Height = Me.Height + 10
End Sub
'кнопка утопляет поверхность формы
Private Sub Command5_Click()
SetWindowLong Me.hwnd, -20, tmplong1 Or WS_EX_CLIENTEDGE&
Me.Height = Me.Height - 10
Me.Height = Me.Height + 10
End Sub
' при загрузке формы желательно сохранить ее параметры в переменных
' и восстановить их при ее удалении,
' а то можно получить ошибку защиты
Private Sub Form_Load()
tmplong = GetWindowLong(Me.hwnd, -16) Or WS_VISIBLE&
tmplong1 = GetWindowLong(Me.hwnd, -20)
End Sub
Private Sub Form_Unload(Cancel As Integer)
SetWindowLong Me.hwnd, -16, tmplong And Not WS_VISIBLE&
SetWindowLong Me.hwnd, -20, tmplong1
End Sub
' Т.е. вид окна определяется набором флагов.
' Для установки SetWindowLong Me.hwnd, GWL_ ... , GetWindowLong(Me.hwnd, GWL_ ....) Or (сбрасываемое значение WS_ или WS_EX)
' Для сброса SetWindowLong Me.hwnd, GWL_ ... , GetWindowLong(Me.hwnd, GWL_ ....) And Not (сбрасываемое значение WS_ или WS_EX)
Можете заполнить эту форму, либо отослать вопрос СЮДА
Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
наверх
|