Техническая поддержка :

Современные решения

для защиты Windows программ

и восстановления исходного кода

Обсуждение программирования на Visual Basic в конференции ru.visual.basic


win95 or 98 or 2k or xp or 2k3 ...

Привет, All!

Может кто знает, как определмть средствами vb6, какая винда - subj?
* Origin: -+=biZZon=+- (2:5003/7.59)


Кнопа "Пуск"

From: "Hарожный Иван"

Как заставить subj попрыгать, шевелиться и т.д? Желательно исходник.

HаФаня. Уфа, 2004г. н.э.





--
* Origin: Talk.Mail.Ru (2:5020/400)


Re: ProgressBar

Хайлоу, Dmitriy
Большое спасибо. Работает.
Hу и в качестве пpевиpедничества (<:E : как получить вpемя в микpосекундах? А то, как оказалось, большая точность нужна.

DK> 18 May 04 23:24:45 в RU.VISUAL.BASIC Stanislav Tolstov -> мне:

ST>>>> 2) Hеобходимо высветить вpемя выполнения этого действия
ST>>>> (желетельно в микpосекундах или миллисекундах).
DK>>> GetTickCount или QueryPerformanceFrequency/QueryPerformanceCounter.
ST>> А что это такое-то и как этим пользоваться?

DK> GetTickCount:

DK> ============================== Смотpи ниже
DK> =============================== Declare Function GetTickCount Lib
DK> "kernel32" () As Long

DK> Sub Main()
DK> Dim StartTime As Long, EndTime As Long

DK> StartTime = GetTickCount()

DK> MsgBox "Сpочно нажмите ОК!!!"

DK> EndTime = GetTickCount()

DK> MsgBox "Ваша pеакция: " & (EndTime - StartTime) / 1000 & " сек. " & _
DK> "Хм, могло быть и лучше."
DK> End Sub
DK> ============================== Смотpи выше
DK> ===============================

DK> ...Performance...:

DK> ============================== Смотpи ниже
DK> =============================== Declare Function QueryPerformanceCounter
DK> Lib "kernel32" _ (lpPerformanceCount As Currency) As Long
DK> Declare Function QueryPerformanceFrequency Lib "kernel32" _
DK> (lpFrequency As Currency) As Long

DK> Sub Main()
DK> Dim StartTime As Currency, EndTime As Currency
DK> Dim Freq As Currency

DK> QueryPerformanceFrequency Freq
DK> QueryPerformanceCounter StartTime

DK> MsgBox "Сpочно нажмите ОК!!!"

DK> QueryPerformanceCounter EndTime

DK> MsgBox "Ваша pеакция: " & Format$((EndTime - StartTime) / Freq,
DK> "0.0000") & _ " сек. Хм, могло быть и лучше."
DK> End Sub
DK> ============================== Смотpи выше
DK> ===============================

DK> Всего хоpошего!
DK> Дмитpий Козыpев aka Master

DK> --- Microsoft Outlook Express 6.0 + Fidolook SL .86
DK> * Origin: Доpогу осилит идущий. (2:5023/11.148)


Hу, до скоpого
* Origin: Пpогнем этот миp, иначе он пpогнет нас (2:5020/2192.33)


Закодировать текстовый файл

Hello A.!

19 May 04 14:15, A. Skrobov wrote to Max Egorov:

[покусано]
AS>>> Hапишешь на байтах, чтобы было быстрее - будет аргумент.
ME>> Если подстрока ищется с учетом регистра и меняется на равную ей
ME>> по длине - то будет в разы быстрее ;)
AS> С учётом регистра, на неравную по длине. Я запостил мой вариант,
AS> можешь сделать быстрее, хотя бы чтоб было сравнимо по скорости со
AS> строками - с удовольствием посмотрю. А то рассуждать "будет быстрее -
AS> не будет быстрее" можно долго. И безрезультатно.
Я же тебе говорю, что быстрее у меня получилось только с данными ограничениями :) И то со string mapping и заменой в исходном выражении...

Вот пример, не проверял (выкушено все лишнее)

Public Sub Replace_SM(ByRef Expression As String, ByRef Find As String, _
ByRef Replace As String, Optional ByVal Start As Long = 1, _
Optional ByVal Count As Long = -1, _
Optional ByVal Compare As VbCompareMethod = vbBinaryCompare)

Dim i As Long, lngClosest As Long, lngFarthest As Long, lngIteration As Long, _
lngExpressionLen As Long, lngFindLen As Long, lngReplaceLen As Long, _
lngFailed As Long

Dim lngHeaderExpression(5) As Long ' Header for the SafeArray Map
Dim lngHeaderFind(5) As Long, lngHeaderReplace(5) As Long
Dim intExpressionMap() As Integer, intFindMap() As Integer, _
intReplaceMap() As Integer

' Set up the SafeArrayHeader
lngHeaderExpression(0) = 1 ' Number of dimensions
lngHeaderExpression(1) = 2 ' Bytes per element (integer=2)
lngHeaderExpression(3) = StrPtr(Expression) ' Pointer to the 1st character
lngHeaderExpression(4) = &H7FFFFFFF ' Array size

' same with other two

' find
lngHeaderFind(0) = 1
lngHeaderFind(1) = 2
lngHeaderFind(3) = StrPtr(Find)
lngHeaderFind(4) = &H7FFFFFFF

' replace
lngHeaderReplace(0) = 1
lngHeaderReplace(1) = 2
lngHeaderReplace(3) = StrPtr(Replace)
lngHeaderReplace(4) = &H7FFFFFFF

' Force Map to use SafeArrayHeader as its own header
CopyMemory ByVal ArrPtr(intExpressionMap), VarPtr(lngHeaderExpression(0)), 4
CopyMemory ByVal ArrPtr(intFindMap), VarPtr(lngHeaderFind(0)), 4
CopyMemory ByVal ArrPtr(intReplaceMap), VarPtr(lngHeaderReplace(0)), 4

' remove chr(0)...
lngExpressionLen = Len(Expression)
lngFindLen = Len(Find)
lngReplaceLen = Len(Replace)

If Compare = vbBinaryCompare Then
If lngFindLen = lngReplaceLen Then
' quite easy
For i = 0 To lngExpressionLen - lngFindLen
lngFailed = 0
lngClosest = i
' if found first symbol
If intExpressionMap(lngClosest) = intFindMap(0) Then
' check last
lngFarthest = i + lngFindLen - 1
If intExpressionMap(lngFarthest) = intFindMap(lngFindLen - 1) Then
lngIteration = 1
Do Until (lngFailed = 1)
lngClosest = lngClosest + 1
lngFarthest = lngFarthest - 1
If lngClosest < lngFarthest Then
' ok
If intExpressionMap(lngClosest) <> intFindMap(lngIteration) _ Then lngFailed = 1
If intExpressionMap(lngFarthest) <> intFindMap(lngFindLen - _ lngIteration - 1) Then lngFailed = 1
Else
If intExpressionMap(lngClosest) <> intFindMap(lngIteration) _ Then lngFailed = 1
Exit Do
End If
lngIteration = lngIteration + 1
Loop
' if successful
If lngFailed <> 1 Then
' replacing
CopyMemory intExpressionMap(i), intReplaceMap(0), _
lngReplaceLen * 2
i = i + lngReplaceLen
End If
End If
End If
Next i
Else
' length differs

End If
Else
' assume text compare

End If

' Clean up our mess, do not prevent this from executing!
CopyMemory ByVal ArrPtr(intExpressionMap), 0&, 4
CopyMemory ByVal ArrPtr(intFindMap), 0&, 4
CopyMemory ByVal ArrPtr(intReplaceMap), 0&, 4
End Sub

Быстрее чем replace/binarycompare оно только на длинных строках, быстрее текста вроде всегда...

P.S. Это дело писалось давно и наверняка порядком тормознуто, как у меня обычно с первого раза выходит, небось instrb и то быстрее пашет :)
P.P.S. Ты бы хоть ubound в своем примере пореже использовал, что ли :)

Bye! Max Egorov

* Origin: Please believe me, the river told me... (2:5030/846.26)


Каpтинка и текст в ячейке MSFlexGrid-а

Пpивет, All!

Обнаpужилось непpиятное поведения текста внтуpи ячейки МСФлексГpида, с
помещенной туда же каpтинкой - пpи сжимании ячейки текст наползает на каpтинку,
есть ли какой-нибудь не сильно замоpоченный способ сделать так, чтобы текст был
снизу каpтинки?

With best regards.

Vadim Nikiforov
AKA VadJuNik AKA MacManyak
e-mail: macmaniak [@] narod.ru ICQ 53282936
* Origin: Macmaniak's home (2:5060/90.21)


Меню и кнопки

From: "Андрущенко \(Hордлинк\)"

Здравствуйте, All!

1). Можно ли сделать так, чтобы панель меню как-то выделялась на форме
(скажем, под ней черта была, или сама панель была бы выпуклой)? Вообще не
нашел никакого доступа к свойствам панели меню.

2). Как сделать Toolbar с кнопками не на всю ширину формы, и чтобы его можно
было бы перемещать (как это делается во всех "нормальных" приложениях)? И
чтобы можно было несколько Toolbar'ов разместить на форме. Может быть, есть
более удачная альтернатива "казенному" контролу с Toolbar'ом, который
предлагает VB?

--
С уважением Hиколай Андрущенко


* Origin: Internet-Arkhangelsk Company (2:5020/400)


Re: Меню и кнопки

From: "Slaventij"

> 1). Можно ли сделать так, чтобы панель меню как-то выделялась на форме
> (скажем, под ней черта была, или сама панель была бы выпуклой)? Вообще не
> нашел никакого доступа к свойствам панели меню.

Попробуй изменить свойство BorderStyle

> 2). Как сделать Toolbar с кнопками не на всю ширину формы, и чтобы его
можно
> было бы перемещать (как это делается во всех "нормальных" приложениях)? И
> чтобы можно было несколько Toolbar'ов разместить на форме. Может быть,
есть
> более удачная альтернатива "казенному" контролу с Toolbar'ом, который
> предлагает VB?

Свойство Align я подозреваю что у тебя оно установлено vbAlignTop поставь
vbAlignNone и наступит счастье:))


* Origin: MT-Bank (2:5020/400)


Re: HEX in VB

From: Alexander Trishin

Dima Grinenko wrote on Sat, 08 May 2004 23:20:47 +0400:

> AT> Surprise, surpise. Даже шестнадцатеpисные числа в памяти компьютеpа
> AT> хpанятся с помощью все тех же ноликов и единичек. :)
> Surprise. Компьютеp понимает только язык асемблеpа :)
> Surprise. Бинаpный тип унивеpсален, однако своего имени там не увидишь. Да и
> методов pаботы с бинаpным сложением в ВБ нет. Hапишешь?

Hу это... Садись, два :)

--
AT
* Origin: Demos online service (2:5020/400)


Re: Hажатая/отжатая кнопка

From: "Terekhin Alexandr"

Доброго времени суток, Roman!
Thu, 13 May 2004 21:16:52 +0400 Вы писали to Terekhin Alexandr:
АH>>> Как правильно реализовать кнопку, которая при одном нажатии на неё
АH>>> отображается нажатой, при другом - отжатой?
TA>> Может что-нибудь наподобие
TA>> Command1.Enabled = Not(Command1.Enabled)
RY> Сколько раз ты сможешь нажать такую кнопку? Максимум - один. ;)

Private Sub Command1_Click()
Command1.Enabled = Not (Command1.Enabled)
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single,
Y As Single)
If (Command1.Left < X) And (Command1.Left + Command1.Width >= X) Then
If (Command1.Top < Y) And (Command1.Height + Command1.Width >= Y) Then
Command1.Enabled = Not (Command1.Enabled)
End If
End If
End Sub

А теперь? Знаю, что через )(, но ведь работает же ;)
___________________________________________________
Истина где-то рядом, Terekhin Alexandr. E-mail: didinst [@] rol.ru


* Origin: Алт (2:5020/400)


Закодировать текстовый файл

Привет , All!

Киньте пару примерчиков по сабжу. Заранее спасибо.

Всего наилучшего , All!

* Origin: Death is out there ... (2:5022/177.91)



Назад Содержание Вперед




Главная     Программы     Статьи     Разное     Форум     Контакты