За последние дни ничего сверхъестественного не случалось. ПО-немногу наступает осень. Сейчас за окном 0:12 по местному времени, и идет дождь. Рядом спит вечно голодный кот, передо мной тихо шумит ноутбук. Такая вот картинка :)
Читайте!
Isq - I S Q (quick image saver) создан для быстрого сохранения имэйджа из буфера. То есть скажем скриншотишь любимую игру и файлы при нажатии PrintScreen + F5 автоматически сохраняются без выхода в Windows. не особо интересная программа, но может пригодится...
Проблема с помощью в программе, созданной на Visual Basic 6.0:
Указываю имя файла справки в свойствах проекта (например, help.chm), указываю в свойстве формы HelpContextID номер раздела справки (например, 10), но при нажатии F1 открывается всегда начальная страница справочной системы.
Файл справки создан в программе HelpWorkShop 1.1. Пробовал подключать "сторонние" файлы справок, но тоже выдается только главная страница.
В чем тут дело?
Ответы:
Автор: CyRax
Вот нашёл у себя на винте.
Declare Function HtmlHelpLongArg Lib "hhctrl.ocx" _
Alias "HtmlHelpA" (ByVal hwndCaller As Long, _
ByVal pszFile As String, ByVal uCommand As Long, _
ByVal dwData As Long) As Long
Public Const HH_HELP_CONTEXT = &HF
On Error Resume Next
Dim iRetCode As Long
iRetCode = HtmlHelpLongArg(Me.hwnd, App.Path & "\Справка.chm", HH_HELP_CONTEXT, Me.ActiveControl.HelpContextID)
PS: На самом деле настоящее название внешней функции идёт после Alias, а то что в объявленни - это псевдоним. Псевдоним может быть какой хочешь.
Например в этом случае настоящим именем будет Alias "HtmlHelpA", а псевдонимом HtmlHelpLongArg. Ты можешь объявить и так:
Declare Function ЛюбоеНовоеИмя Lib "hhctrl.ocx" Alias "HtmlHelpA" ...
Как сделать чтобы, при нажатии кнопки cmd выполнялись такие действия :
1. Создание файла Excel с именем Name.
2. Занесение в ячейку А2 значение переменной тхт1.
3. Занесение в ячейку А3 значение переменной тхт2.
Private Sub Запись()
Open App.Path & "\файл" For Append As #1
With Сервер 'Тип обозначен ранее
.Имя = txtName.Text
.Адрес = txtAdress.Text
.Порт = txtPort.Text
Write #1, .Имя; .Адрес; .Порт
End With
Close #1
End Sub
Вот, эта функция успешно записывает все данные в файл. Теперь мне надо прочесть данные из файла и разместить это в ListView'е. Делаю я это так:
Private Sub Чтение()
Dim i As Long
Dim DAS As ListItem
Open App.Path & "\файл" For Input As #2
i = 1
Do While Not EOF(2)
With Сервер
Set DAS = ListView1.ListItem.Add (.Имя)
DAS.SubItem(1) = .Адрес
DAS.SubItem(2) = .Порт
End With
i = i + 1
Loop
Close #2
End Sub
Так вот, проблема заключается в незаполнении ListView. Я не пойму, почему. Может кто-то подскажет
Ответы:
Вопрос:
Интересно узнать, существует ли возможность изменения цвета текста в TextBox (например, одно слово одним цветом, другое - другим). Если нет, то есть ли какой-нибудь альтернативный контрол?
private sub Col
...
RichTextBox1.SelStart = 1 ' с первого символа
RichTextBox1.SelLength = 5 ' по пятый
RichTextBox1.SelColor = vbRed ' цвет красный
...
end sub
Это контрол RichTextbox!
Там свойство selcolor, которое изменяет цвет выделенного текста.
Сам текст хранится в свойстве text.
Вопрос:
Как определить, существует ли устройство (логичечкий, лазерный диск или дисковод) в системной конфигурации, и как определить его вид (см.выше)? Напрмер, программе надо определить, есть второй дисковод или второй (третий) cd-rom, или узнать, сколько логических (жестких) дисков имеет данный компьютер. Как это сделать?
a=Drive1.ListCount-1 ' кол-во дисков
for i=1 to a
if instr(1, Drave1.List(i), "\\") then ' сетевой
else
if instr(1, Drave1.List(i), "CD-ROM") then ' CD-ROM
else
end if
end if
next
Option Explicit
Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As
Long, ByVal lpBuffer As String) As Long
Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
Private Sub Form_Load()
Dim strSave As String, ret As Long, i As Integer, arr() As String
Me.AutoRedraw = True
strSave = String$(255, vbNullChar)
ret = GetLogicalDriveStrings(255, strSave)
strSave = TrimLeftNull(strSave)
arr = Split(strSave, vbNullChar)
For i = 0 To UBound(arr)
getDRVType arr(i)
Next i
End Sub
Private Sub getDRVType(Drv As String)
Dim text As String
Me.AutoRedraw = True
text = Drv & " - "
Select Case GetDriveType(Drv)
Case 2: text = text & "Removable"
Case 3: text = text & "Drive Fixed"
Case 4: text = text & "Remote"
Case 5: text = text & "Cd-Rom"
Case 6: text = text & "Ram disk"
Case Else: text = text & "Unrecognized"
End Select
Me.Print text
End Sub
Private Function TrimLeftNull(str As String) As String
Dim i As Integer
For i = Len(str) To 1 Step -1
If Mid$(str, i, 1) <> vbNullChar Then Exit For
Next i
TrimLeftNull = Left$(str, i)
End Function
Используйте Microsoft Scripting (найдите его в project/references). Это даст возможность использовать FileSystemObject (FSO), а там, в свою очередь, можно получить информацию о коллекции приводов (drives). И у каждого привода есть свойство типа (лазерный, жесткий, сетевой, виртуальный и пр).
Пример по памяти, к сожалению, привести не могу, но, сделав reference на Microsoft Scripting, и зайдя в Object Browser (F2 в VB), вы можете ознакомиться с его объектной моделью, и увидеть enum типовов привода.
Можете заполнить эту форму, либо отослать вопрос СЮДА
Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.