Вопрос № 27702: Добрый день! В формах Excel можно работать с элементом ListView. В инете, чаще всего, встречаются статьи для Access, применение в Excel, практически не описано. В своем приложении хочу с его помощью организовать форму, где таблица строится из списка ...Вопрос № 27712: Здравствуйте!
Надо что бы когдо программа определит что пользователь подключён к интернету выскакивала форма. Причём как сделать что бы выскакивала форма я знаю, а вот определить подключ. ли польз. к нету я не знаю как!?...
Вопрос № 27.702
Добрый день! В формах Excel можно работать с элементом ListView. В инете, чаще всего, встречаются статьи для Access, применение в Excel, практически не описано. В своем приложении хочу с его помощью организовать форму, где таблица строится из списка ячеек, отобранных по условию и дать возможность пользователю вводить/изменять данные. Может "много хочу" от этого элемента -:))) мне надо, что бы для редактирования была доступна, например, ячейка ListView в строке 4 столбец 3. Сейчас для редактирования
доступны ячейки только первого столбца.
Фрагмент моего кода:
frmL.LV.ListItems.Clear
frmL.LV.ColumnHeaders.Clear
frmL.LV.ColumnHeaders.Add 1, , "Код", 50
frmL.LV.ColumnHeaders.Add 2, , "Наименование", 150, lvwColumnLeft
frmL.LV.ColumnHeaders.Add 3, , "Количество", 50, lvwColumnLeft
For i = 1 To 10
frmL.LV.ListItems.Add i, , Cells(i + 1, 1).Value
frmL.LV.ListItems(i).ListSubItems.Add 1, , Cells(i + 1, 2).Value
Next
frmL.Show
Форма frmL, ListView - LV
Может я не правильно наполняю его?
Отвечает: Залетин Виталий Викторович
Здравствуйте, Кулагин Сергей Викторович!
Если не ошибаюсь, ListView не адет узнать, на каком SubItem клацнуль мышью, но если заранее известно, какой столбец, какая строка, то могу посоветовать создать скрытое текстовое окно и в нужное время(двойной щелчок) в нужном месте (посчитать от первого столбца местоположение) показать его. Я так делаю с MSHFlexGrid.
--------- Учиться никогда не поздно. Особенно программированию!
Ответ отправил: Залетин Виталий Викторович (статус: 4-ый класс)
Отправлен: 15.10.2005, 14:54 Оценка за ответ: 4
Вопрос № 27.712
Здравствуйте!
Надо что бы когдо программа определит что пользователь подключён к интернету выскакивала форма. Причём как сделать что бы выскакивала форма я знаю, а вот определить подключ. ли польз. к нету я не знаю как!?
Отвечает: Licvidator
Здравствуйте, Dushin Igor!
Три способа узнать это (см приложение)
Приложение:
Ответ отправил: Licvidator (статус: Профессор)
Отправлен: 14.10.2005, 22:55
Отвечает: _Виталий
Licvidator
3 способа и ни одного полного. Ни объявленных API, ни определений констант.......
Здравствуйте, Dushin Igor!
Один способ но работает без заморочек;-)
Код для кнопки:
----------------------------------
Private Sub Command1_Click()
Dim Inet As WinInet
Set Inet = New WinInet
If Inet.ActiveConnection() Then
MsgBox "Connected"
Else
MsgBox "Not connected"
End If
Set Inet = Nothing
End Sub
----------------------------------
Код для Class Module возми из приложения. Имя класса WinInet.
Приложение:
Ответ отправил: _Виталий (статус: 8-ой класс)
Отправлен: 15.10.2005, 02:47 Оценка за ответ: 5 Комментарий оценки: Отлично всё работает!
Отвечает: Залетин Виталий Викторович
Здравствуйте, Dushin Igor!
Эта штука называется RAS. Вот статья из НЕТа в тему:
Как я могу сделать disconnect от Интернета, используя VisualBasic?
Если Вам нужно завершить все соединения с интернетом используя Visual Basic, Вы можете использовать функции Remote Access Services Hangup. Перво наперво необходимо объявить следующий код в секции declaration формы или модуля.
Declarations
Public Const RAS_MAXENTRYNAME As Integer = 256
Public Const RAS_MAXDEVICETYPE As Integer = 16
Public Const RAS_MAXDEVICENAME As Integer = 128
Public Const RAS_RASCONNSIZE As Integer = 412
Public Const ERROR_SUCCESS = 0&
Public Type RasEntryName
dwSize As Long
szEntryName(RAS_MAXENTRYNAME) As Byte
End Type
Public 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
Public Declare Function RasEnumConnections Lib _
"rasapi32.dll" Alias "RasEnumConnectionsA" (lpRasConn As _
Any, lpcb As Long, lpcConnections As Long) As Long
Public Declare Function RasHangUp Lib "rasapi32.dll" Alias _
"RasHangUpA" (ByVal hRasConn As Long) As LongPublic _
gstrISPName As String
Public ReturnCode As Long
Procedure
Public 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
Использование процедуры HangUp
теперь достаточно просто вызвать процедуру HangUp, и все модемные соединия завершаться:
Call HangUp
--------- Учиться никогда не поздно. Особенно программированию!