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

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

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

Visual Basic 6.0 - Фокусы


Re: Фокусы

Hello, Dmitriy!
You wrote to "A. Skrobov" <A. Skrobov [@] p2.f175.n5020.z2.fidonet.org>to A.

Skrobov on 20 Jul 04 12:21:25:

DK> Кстати, еще одна такая фича: галочка Control Panel -> Display ->

DK> Effects -> Hide keyboard navigation indicators until I use the Alt key

DK> не влияет на подчеркивания в Label при UseMnemonic=True.

Это как раз естественно: VB6 выпустили, когда этой функциональности ещё не
было, вот и не предусмотрели. А в сервиспаках, наверное, не добавили "для
совместимости с существующими программами".

DK> Зато тут же лежит одна на этот раз приятная фича: при нажатии Access

DK> Key, содержащегося в тексте Label'а, фокус автоматически передается на

DK> ближайший (в смысле TabStop'а) контрол. Hе думал, что лейблам такое

DK> свойственно.

А это старая и хорошо забытая фишка. Имхо это ещё в VB3 было.
Аппельман в DAXC о ней, кстати, пишет.
* Origin: He should not be here when your mother is out! (2:5080/1003.16)

Re: Пpокpутка в TextBox

Hello, Roman!
You wrote to "A. Skrobov" <A. Skrobov [@] p2.f175.n5020.z2.fidonet.org>to A.

Skrobov on 21 Jul 04 01:04:40:

RY>>>>> А если загадки любишь - то загадку покажу. ;)

AS>>>> Давай ;-)

AS>>>> "В каждом исходнике должна быть загадка, а также подсказка и

AS>>>> отгадка" (почти анекдот)

RY>>> http://www.listsoft.ru/14897/

RY>>> Третья кнопка тулбара. ;)

AS>> Перетекают строки при наведении/потере фокуса. Это?

RY> Что делают???

Без фокуса надпись в две строчки, а с фокусом - в три. Или наоборот, точно
не помню ;-)
* Origin: Now the spot is all over DAD'S $10 SHOES! (2:5080/1003.16)

Unicode

Czes'c', All!

Как читать текстовый файл в Unicode?
scrrun.dll cannot be loaded. Что делать?

[END OF MESSAGE]
* Origin: Delete Software Limited, Moscow, Russia. (2:5020/1042.42)

Re: разница в записи

From: Alexander Asyabrik <belmis [@] mail.belpak.by>


Привет, Master.

Вы, было дело, писали 19 июля 2004 г., 9:31:

DK>> Const s1 As String = "ABC"

DK>> Const s2 = "DEF"


DK> Виноват, стормозил - неправильно прочел письмо Александра.


Это ладно, а вот ты мне лучше объясни, почему VarPtr для обоих
констант (а точнее для _любых_одинакового_типа) возвращает одинаковое
значение:
================
Const s As String = "Test1"
Const s1 As String = "Test2"
Const s2 As String = "Test3"
Const s3 As String = "Test4"
Const s4 As String = "Test5"
Const s5 As String = "Test6"
Const s6 As String = "Test7"

Private Sub Command1_Click()
Debug.Print VarPtr(s)
Debug.Print VarPtr(s1)
Debug.Print VarPtr(s2)
Debug.Print VarPtr(s3)
Debug.Print VarPtr(s4)
Debug.Print VarPtr(s5)
Debug.Print VarPtr(s6)
End Sub

=====================================

По клику - в Immediate Window столбец одинаковых цифр.

Они там, что, все внутри какого-то массива сидят? Или ... я ничего
не понимаю :(


--
С уважением, Alexander
10:07:25 PM
* Origin: Talk.Mail.Ru (2:5020/400)

Re: работа с постоянными данными более 2гб-1

From: Alexander Asyabrik <belmis [@] mail.belpak.by>


Привет, Roman.

Вы, было дело, писали 20 июля 2004 г., 20:19:


RY> А вот ReadFile/WriteFile - не хотит работать. ;(


Такой ход: вместо прямого указания далекой (> 2ГБ) позиции в

SetFilePointer(Ex) делать несколько перемещений с параметром
dwMoveMethod = FILE_CURRENT.

А вообще в Microsoft Knowledge Base Article - 189981 лежит
аккуратненький такой классик для работы с большими файлами:

Random.cls

'It encapsulates basic functionality for opening, closing, reading,
writing, and seeking on files using low-level Windows APIs to get
around the 2GB file limit.
'It provides basic error trapping.
--
С уважением, Alexander
8:22:07 PM
* Origin: Talk.Mail.Ru (2:5020/400)

Re: Unicode

Hello, Aleksej!
You wrote to <All>to All on 20 Jul 04 22:10:12:


AR> Как читать текстовый файл в Unicode?

StrConv(To_Kuda_Prochital, vbFromUnicode)

AR> scrrun.dll cannot be loaded. Что делать?

Звать телепатов ;-)
* Origin: Whose shoes did he use? I looked and saw whose! (2:5080/1003.16)

Re: разница в записи

Hello, Alexander!
You wrote to "Dmitriy Kozyrev"
Kozyrev [@] p148.f11.n5023.z2.fidonet.org>to Dmitriy Kozyrev on 20 Jul 04

22:28:41:

AA> Это ладно, а вот ты мне лучше объясни,

А можно я? ;-)

AA> почему VarPtr для обоих констант (а точнее для

AA> _любых_одинакового_типа) возвращает одинаковое значение:

При вызове VarPtr создаётся временная копия, после вызова уничтожается. Имхо
если между вызовами VarPtr какие-нибудь вещи делать, типа редимов, цифры
будут разные.

AA> Они там, что, все внутри какого-то массива сидят? Или ... я ничего

AA> не понимаю :(

Констант нет, они только кажутся ;-)

ЗЫ: наверняка какую-нибудь дурь щас пишу, здесь 3:13, и мозги уже не
варят...
* Origin: You can make a trick clock stack. (2:5080/1003.16)

test1

From: Dmitry Miloserdov <dim [@] kemtel.ru>


Привет, All,

Sorry, the test only due to impossibility to write anything into the
fido7 group :(

--
Best regards,
Dmitry Miloserdov

* Origin: http://www.softmajor.com (2:5020/400)

Re: разница в записи

From: Alexander Asyabrik <belmis [@] mail.belpak.by>


Привет, A Skrobov

(Странно: ты точку убрал, а она из откудова-то все равно
лезет и опять ты для The Bat! просто A и точка:)


Вы, было дело, писали 20 июля 2004 г., 22:14:


AA>> почему VarPtr для обоих констант (а точнее для

AA>> _любых_одинакового_типа) возвращает одинаковое значение:

AS> При вызове VarPtr создаётся временная копия, после вызова уничтожается. Имхо

AS> если между вызовами VarPtr какие-нибудь вещи делать, типа редимов, цифры

AS> будут разные.


Дык и с редимами попробовал - все едино остались одинаковыми эти
VarPtr. А вот если попытаться другого типа константу между однотипными
вклинить, то у нее будет другое значение VarPtr, а потом пойдет опять
тое самое :) Hе подходит под твою теорию. А вот действительно
смахивает на то, однотипные константы хранятся, объединенные в
каких-то массивах. Hу где там ваши CopyMemory и дебуггеры, посмотрите
че там внутрях, а то ведь и впрямь интересно...


--
С уважением, Alexander
7:24:23 AM
* Origin: Talk.Mail.Ru (2:5020/400)

Re: разница в записи

From: "A. Skrobov" <tyomitch [@] r66.ru>


Wed Jul 21 2004 08:38, Alexander Asyabrik wrote to A Skrobov:

AA> Привет, A Skrobov

AA> (Странно: ты точку убрал, а она из откудова-то все равно

AA> лезет и опять ты для The Bat! просто A и точка:)

Я не специально, это FL её в имени не пускает :-(

AA>>> почему VarPtr для обоих констант (а точнее для

AA>>> _любых_одинакового_типа) возвращает одинаковое значение:

AS>> При вызове VarPtr создаётся временная копия, после вызова уничтожается.

AS>> Имхо если между вызовами VarPtr какие-нибудь вещи делать, типа редимов,

AS>> цифры будут разные.

Вот: при вызове VarPtr создаётся временная копия, при следующем вызове
уничтожается. Видимо, временная копия всегда лежит по одному и тому же адресу,
зависящему только от типа. Подтверждение:
Option Explicit
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory"
(Destination As Any, Source As Any, ByVal Length As Long)
Const l1 As Long = 123
Const l2 As Long = 456

Private Sub Main()
Dim l As Long, addr As Long
addr = VarPtr(l1)
VarPtr (l2)
CopyMemory l, ByVal addr, 4
MsgBox l
End Sub

AA> Дык и с редимами попробовал - все едино остались одинаковыми эти

AA> VarPtr. А вот если попытаться другого типа константу между однотипными

AA> вклинить, то у нее будет другое значение VarPtr, а потом пойдет опять

AA> тое самое :) Hе подходит под твою теорию.

Ага, я вижу :-)

AA> А вот действительно смахивает на то, однотипные константы

AA> хранятся, объединенные в каких-то массивах.

Массив из одного элемента? Хм... ;-)

AA> Hу где там ваши CopyMemory и дебуггеры, посмотрите че там внутрях, а то

AA> ведь и впрямь интересно...

Скорее всего константа в памяти постоянно не хранится, а только подставляется
туда, куда нужно. Иначе можно было бы её изменить операцией
CopyMemory l1, 567, 4

ЗЫ: VarPtr - это пустышка из двух операций: mov eax, [esp + 4]; ret 4.
Её копать бессмысленно, а механизм вызова апей многие пытались копать, и
никому не удавалось ;-( Там такое наверчено - ужас...

* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)