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

для защиты Windows приложений

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

Visual Basic 6.0 - win95 or 98 or 2k or xp or 2k3 ...


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

Привет, All!

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

Кнопа "Пуск"

From: "Hарожный Иван" <nafan [@] ufacom.ru>


Как заставить 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ордлинк\)" <naa [@] arh.ru>


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

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

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

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


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

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

From: "Slaventij" <v.Davydenko [@] mt-bank.com>


> 1). Можно ли сделать так, чтобы панель меню как-то выделялась на форме

> (скажем, под ней черта была, или сама панель была бы выпуклой)? Вообще не

> нашел никакого доступа к свойствам панели меню.


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

> 2). Как сделать Toolbar с кнопками не на всю ширину формы, и чтобы его

можно
> было бы перемещать (как это делается во всех "нормальных" приложениях)? И

> чтобы можно было несколько Toolbar'ов разместить на форме. Может быть,

есть
> более удачная альтернатива "казенному" контролу с Toolbar'ом, который

> предлагает VB?


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


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

Re: HEX in VB

From: Alexander Trishin <trialFORSPAM [@] trishin.com>


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" <didinst [@] rol.ru>


Доброго времени суток, 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)