Как привлечь внимание пользователя к окну
2009-10-12 15:23 Александр
Как привлечь внимание пользователя к окну?
Мигаем заданным окном, для того, чтобы привлечь к нему внимание пользователя.
Option Explicit
Private Declare Function FlashWindow Lib "user32" (ByVal hwnd As Long, ByVal bInvert As Long) As Long
Private Sub Command1_Click()
Call FlashWindow(Me.hwnd, -1)
End Sub
Как обратить все цвета рисунка
2009-10-17 15:11 Александр
Как обратить все цвета рисунка
Инвертируем все цвета рисунка. Каждый цвет будет заменен на обратный к нему.
Например, черный будет преобразован в белый, а синий — в желтый.
Option Explicit
Private Declare Function InvertRect Lib "user32" (ByVal hdc As Long, lpRect As RECT) As Long
Private Type RECT
Left As Long
[...]
Генератор случайных чисел GUID
2009-10-17 15:39 Александр
Генератор случайных чисел GUID
Private Type GUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(7) As Byte
End Type
Private Declare Function CoCreateGuid Lib "OLE32.DLL" (pGuid As GUID) As Long
Public Function GetGUID() As String
Dim udtGUID As GUID
If (CoCreateGuid(udtGUID) = 0) Then
GetGUID = _
String(8 - Len(Hex$(udtGUID.Data1)), "0") & Hex$(udtGUID.Data1) & _
String(4 - Len(Hex$(udtGUID.Data2)), "0") & Hex$(udtGUID.Data2) & _
String(4 - Len(Hex$(udtGUID.Data3)), "0") [...]
Генератор случайных чисел, Методом Фибоначчи
2009-10-17 19:00 Александр
Генератор случайных чисел.
Вот еще вариант ГСЧ. Методом Фибоначчи:
Код поместить в модуль.
Public LastNums(16) As Double
Sub RndRandomize()
Randomize
For I = 0 To 16
LastNums(I) = Rnd
Next
End Sub
Function RndRnd() As Double
Dim NewNum As Double
If LastNums(1) >= LastNums(12) Then
[...]
Генератор случайных чисел
2009-10-17 23:01 Александр
Генератор случайных чисел.
RandInit вызываем вместо Randomize, Rand – вместо Rnd.
В Native Code работает в 3-4 раза быстрее, чем Rnd.
Option Explicit
Dim Ri As Double
Function Rand() As Single
Ri = 1.314 * Ri + 1.737
If Ri > 983732.3456 Then Ri = Ri * 0.3141
Rand = Ri - Int(Ri)
End Function
Sub RandInit(r As Single)
[...]
Генератор случайных чисел – как получить ряд случайных чисел?
2009-10-18 08:00 Александр
Генератор случайных чисел – как получить ряд случайных чисел?
Function RndGenerator(X As Double) As Double
Const Max = 2000000000
Const Min = 0
Const a2 = 2
Const a3 = 3
Const a4 = 4
Const a5 = 5
Const a6 = 7
Const a7 = 8
Const a8 = 9
Const a9 = 10
Const a10 = 11
Const a11 = 12
Const b2 = 100
Const b3 = [...]
Перевод цвета в RGB
2009-10-18 17:00 Александр
Перевод цвета в RGB.
Private Sub cmd_Click()
txtDClr.Text = RGB(Val(txtInR.Text), Val(txtInG.Text), Val(txtInB.Text))
txtHClr.Text = Hex(Val(txtDClr.Text))
RGBT txtDClr.Text
'Функция RGBT возвращает в массив DRGB значения цветов в следующем порядке
'DRGB(1) - Red
'DRGB(2) - Green
'DRGB(3) - Blue
txtOutR.Text = DRGB(1)
txtOutG.Text = DRGB(2)
txtOutB.Text = DRGB(3)
End Sub
Public DRGB() As Integer
Public Function RGBT(Sense As String)
ReDim DRGB(1 To 3)
[...]
Как заполнить двумерный массив буквами русского алфавита?
2009-10-19 08:00 Александр
Как заполнить двумерный массив буквами русского алфавита?
Dim m(20, 20) As String
Dim i, j, k, l, n As Integer
Private Sub Command1_Click()
n = Val(Text1.Text)
l = Val(Text2.Text)
If n >= 20 Or l >= 20 Then
MsgBox ("Количество столбцов и строк должно быть менее 20")
Text1.Text = ""
Text2.Text = ""
Exit Sub
End If
[...]
Определить серийный номер материнской платы
2009-10-19 17:00 Александр
Определить серийный номер материнской платы.
Dim Computer As String
Dim WMI As Variant
Dim Items As Variant
Dim Item As Variant
Computer = "."
Set WMI = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & Computer & "\root\cimv2")
Set Items = objWMIService.ExecQuery("SELECT * FROM Win32_BaseBoard")
For Each Item In Items
Debug.Print [...]
Определить серийный номер BIOS
2009-10-20 08:00 Александр
Определить серийный номер BIOS
Dim Computer As String
Dim WMI As Variant
Dim Items As Variant
Dim Item As Variant
Computer = "."
Set WMI = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & Computer & "\root\cimv2")
Set Items = WMI.ExecQuery("Select * from Win32_BIOS")
For Each Item In Items
Debug.Print Item.SerialNumber
Next