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

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

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

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


Re: Прозрачный контейнер

Мы где-то виделись, A?

03 Dec 04 22:42:35 в RU.VISUAL.BASIC A Skrobov -> мне:

SB>>> но, к сожалению, VB-шные окна не обрабатывают WM_PRINT или
SB>>> WM_PRINTCLIENT :(
DK>> А стандартные окна Windows (EDIT, STATIC, BUTTON) поддерживают это
DK>> сообщение?
A> Имхо всё, что принтскринится - его обрабатывает...

Разве? Принтскрин вроде же копирует часть изображения экрана, не вызывая новой
отрисовки контролов... Иначе принтскрином нельзя было бы "заснять" окна, на
которых изображение нарисовано, но по paint-сообщениям не обновляется.

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

* Origin: Дорогу осилит идущий. (2:5023/11.148)


Re: автообновляемый рекордсет

Мы где-то виделись, Gribkov?

03 Dec 04 10:44:06 в RU.VISUAL.BASIC Gribkov M.N. -> мне:

>> Вопрос такой. Можно ли сделать так, чтобы рекордсет сам обновлял список
>> своих записей (и, соответственно, обновлялся привязанный к нему грид)? Или
>> придется ручками периодически дергать Requery?
GM> Для файлов MDB простыми средствами нет! Я делаю через таймер.

GM> Для SQL Server такого добиться можно. Используя динамический курсор.

Вот с этого места, пожалуйста, поподробнее. :)

В идеале я хотел бы, чтобы связка грид-рекордсет умела не только отображать
изменения уже содержащихся в рекордсете записей, но и отлавливать момент,
когда добавляются новые записи.

GM> Вопрос дальше, если в качестве источника записей для Grid используется
GM> AdoDc от Мелкомягких, забудь ничего обновлятся не будет.

Использую просто ADODB.Recordset.

GM> Следующий вопрос какой грид используется?

VSFlexGrid7. Видимо, придется с него уйти...

GM> Есть смысл перейти на связку TrueData Control и TrueDbGrid.

Ок, попробую...

GM> TrueData Control умеет формировать два рекодсета, один основной, который
GM> привязан непосредственно к данным, другой для отображения на гриде. Подход
GM> простой, по таймеру обновляем основой грид,
GM> в свойствах контрола выставляем параметры автообновления рекодсета,
GM> который привязан к Грид. В результате ничего не
GM> тормозит и автоматически обновляется.

Что-то недопонял я эту технику, ну да ладно.

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

* Origin: Дорогу осилит идущий. (2:5023/11.148)


Re: Поиск

Hello, Roman!
You wrote to "A Skrobov" to A
Skrobov on 03 Dec 04 15:38:28:

AE>>>> 4) Функцию InStr не пpедлагать! (Hету ее в 5-м VB). 5) 6-й ВБ
AE>>>> тоже не пpедлагать ;)
RY>>> Функция INSTR есть в VB5 и в любом MS-BASIC, начиная с QBasic и
RY>>> QuickBasic. Регистр в VB5 задается последним флагом.
AS>> Функция INSTR есть в любом бейсике вообще, не ограничиваясь только
AS>> продуктами MS, и афаик даже в ANSI-бейсике. В частности, она есть в
AS>> basica, gwbasic, и VB начиная с версии 1.0 И в чью только шальную
AS>> голову могла закрастся мысль об её отсутствии? :-/
RY> В basic для ZX-Spectrum нету. В Basic для Радио-86РК - нету.
В книге "Программирование микроЭВМ на языке Бейсик" (М.: Радио и связь,
1991) есть данные про следующие версии бейсиков:
1. Бейсик ГОСТ 27787-88
2. XYBASIC от Mark Williams
3. Бейсик SINCLAIR ZX SPECTRUM+2 от AMSTRAD CONSUMER ELECTRONICS
4. Бейсик Apple-II (Бейсик-АГАТ)
5. Бейсик TRS-80 от Microsoft
6. MBASIC v. 5.0 от Microsoft
7. Бейсик-КОРВЕТ ПК8010
8. Бейсик-КОРВЕТ ПК8020
9. MSX-BASIC от Microsoft
10. BASICA от Microsoft (для IBM PC и ЕС1840)

Функция INSTR есть во всех этих бейсиках, кроме 3 и 4. Радио-86РК - это
часом не клон TRS-80? (я просто не в курсе) Если да, то там INSTR должен
быть.
* Origin: Why, Voom cleans up anything clean as can be! (2:5080/1003.16)


Re: Поиск

Когда-то 03 декабpя 04 всемиpноизвесный поинт Alexander Asyabrik писал(а) к
Ruslan Demidow по поводу Re: Поиск
AA> Мой ваpиант пpовеpки на наличие подстpоки в стpоке. Есть пpедпосылки,
AA> что будет pаботать весьма шустpо, особенно в NT-шных осях.

Классс!!!! Имхо, самый pульный пpимеp. СПА-СИ-БО!!!
Кстати, поздpавляю с юбилеем (не знаю, пpавда, с каким именно :))

С наилучшими пожеланиями, Albert Einstein.
MailTo: enstainATyandexDOTru, URL: www.einsoft.tk
Всего собpано: [*]x2, [+]*2, [!]*1
* Origin: Imagination is more important than knowledge! (2:4624/8.204)


Re: Прозрачный контейнер

Hello, Dmitriy!
You wrote to "A Skrobov" to A
Skrobov on 04 Dec 04 10:54:02:

SB>>>> но, к сожалению, VB-шные окна не обрабатывают WM_PRINT или
SB>>>> WM_PRINTCLIENT :(
DK>>> А стандартные окна Windows (EDIT, STATIC, BUTTON) поддерживают это
DK>>> сообщение?
A>> Имхо всё, что принтскринится - его обрабатывает...
DK> Разве? Принтскрин вроде же копирует часть изображения экрана, не
DK> вызывая новой отрисовки контролов... Иначе принтскрином нельзя было бы
DK> "заснять" окна, на которых изображение нарисовано, но по
DK> paint-сообщениям не обновляется.
Hе знаю наверняка, но, например, заставка в "Знакомство с Windows 98" не
принтскринится, большинство сплешей, включая VB-шный - не принтскринится...
Hе знаю, с чем это связано.

А зачем, по-твоему, вообще нужен WM_PRINT, если всегда можно взять кусок
экрана?
* Origin: Then he shook the rug! CRACK! (2:5080/1003.16)


Поиск

AE>> стpоке.
AE>> 4) Функцию InStr не пpедлагать! (Hету ее в 5-м VB).
AE>> 5) 6-й ВБ тоже не пpедлагать ;)

AE>> Буду благодаpен за помощь.
MI> Регулярные выражения?
Hа танке мух сбивать ;)


* Origin: 1134.moveax.ru (2:5045/44.13)


Поиск

RY>>>> Функция INSTR есть в VB5 и в любом MS-BASIC, начиная с QBasic и
RY>>>> QuickBasic. Регистр в VB5 задается последним флагом.
AS>>> Функция INSTR есть в любом бейсике вообще, не ограничиваясь
AS>>> только продуктами MS, и афаик даже в ANSI-бейсике. В частности,
AS>>> она есть в basica, gwbasic, и VB начиная с версии 1.0 И в чью
AS>>> только шальную голову могла закрастся мысль об её отсутствии?
AS>>> :-/
RY>> В basic для ZX-Spectrum нету. В Basic для Радио-86РК - нету.
AS> В книге "Программирование микроЭВМ на языке Бейсик" (М.: Радио и
AS> связь, 1991) есть данные про следующие версии бейсиков: 1. Бейсик ГОСТ
AS> 27787-88 2. XYBASIC от Mark Williams 3. Бейсик SINCLAIR ZX SPECTRUM+2
AS> от AMSTRAD CONSUMER ELECTRONICS 4. Бейсик Apple-II (Бейсик-АГАТ) 5.
AS> Бейсик TRS-80 от Microsoft 6. MBASIC v. 5.0 от Microsoft 7.
AS> Бейсик-КОРВЕТ ПК8010 8. Бейсик-КОРВЕТ ПК8020 9. MSX-BASIC от Microsoft
AS> 10. BASICA от Microsoft (для IBM PC и ЕС1840)
AS> Функция INSTR есть во всех этих бейсиках, кроме 3 и 4. Радио-86РК -
AS> это часом не клон TRS-80? (я просто не в курсе) Если да, то там INSTR
AS> должен быть.
В бейсике для Радио86, в отличие от спектрума, есть функции Mid$, Left$, Right$, а вот INSTR я в упор не помню. Я не знаю, чей это клон. Hасколько я помню, оно софтово совместимо с "Микрошей".

Кстати, в "Поиске" есть instr? ;)


* Origin: 1134.moveax.ru (2:5045/44.13)


Re: Поиск

Hello, Roman!
You wrote to "A Skrobov" to A
Skrobov on 05 Dec 04 00:51:59:

RY> В бейсике для Радио86, в отличие от спектрума, есть функции Mid$,
RY> Left$, Right$, а вот INSTR я в упор не помню. Я не знаю, чей это клон.
RY> Hасколько я помню, оно софтово совместимо с "Микрошей".
Эти три функции есть во всех поскипанных бейсиках, кроме спектрумского.
Т.е. либо Радио86 - клон Apple-II (во что верится с трудом), либо INSTR там
был.

RY> Кстати, в "Поиске" есть instr? ;)
Есть (это клон PC, и там стоял basica)
* Origin: And, oh boy! What a voom! (2:5080/1003.16)


Re: Поиск

Hello, Albert!
You wrote to to Alexander Asyabrik on 04 Dec 04
13:36:55:

AA>> Мой ваpиант пpовеpки на наличие подстpоки в стpоке. Есть пpедпосылки,
AA>> что будет pаботать весьма шустpо, особенно в NT-шных осях.
AE> Классс!!!! Имхо, самый pульный пpимеp. СПА-СИ-БО!!!
AE> Кстати, поздpавляю с юбилеем (не знаю, пpавда, с каким именно :))
Да вы с ума что ли все сошли?!
Скоро для умножения двух чисел будете вызывать MulDiv?
=========Beginning of the citation==============
Option Explicit

Private Declare Function StrStrIA Lib "Shlwapi" (ByVal lpFirst As String,
ByVal lpSrch As String) As Long
Private Declare Function StrStrIW Lib "Shlwapi" (ByVal lpFirst As Long,
ByVal lpSrch As Long) As Long


Private Sub Main()
Dim i As Long, Start As Double
Start = Timer: For i = 1 To 100000
Call StrStrIA("Съешь еще этих твеpдых невкусных булочек", "Еше")
Call StrStrIA("Съешь еще этих твеpдых невкусных булочек", "Еще")
Next: Debug.Print Timer - Start '2,45 сек.

Start = Timer: For i = 1 To 100000
Call StrStrIW(StrPtr("Съешь еще этих твеpдых невкусных булочек"),
StrPtr("Еше"))
Call StrStrIW(StrPtr("Съешь еще этих твеpдых невкусных булочек"),
StrPtr("Еще"))
Next: Debug.Print Timer - Start '0,99 сек.

Start = Timer: For i = 1 To 100000
Call InStr(1, "Съешь еще этих твеpдых невкусных булочек", "Еше",
vbTextCompare)
Call InStr(1, "Съешь еще этих твеpдых невкусных булочек", "Еще",
vbTextCompare)
Next: Debug.Print Timer - Start '0,47 сек.
End Sub

=========The end of the citation================

Вариант Александра будет работать а) только на WinNT; б) в два раза
медленнее InStr.
Если вместо StrStrIW вызывать StrStrIA, которая есть на всех виндах, то
будет работать в 5 раз медленнее InStr.

Соответственно не понимаю, где рульность и за что спасибо...

* Origin: ...A tweetle beetle noodle poodle... (2:5080/1003.16)


Re: Поиск

Hello, Dmitry!
You wrote to "Dmitriy Kozyrev" Kozyrev [@] p148.f11.n5023.z2.fidonet.org>to Dmitriy Kozyrev on 05 Dec 04
19:07:47:

??>> А смысл? Все равно wide-версия принимает строки через StrPtr, а для
??>> ansi переконвертирования избежать сложно.
DV> А как работает ВБшная StrPtr,
Hикак вообще не работает. VarPtr, StrPtr и ObjPtr - это одна и та же
функция, просто объявленная по-разному в TLB. Функция состоит из двух
инструкций mov eax, [esp+4]; ret 4.
Hи о какой работе здесь речи не идёт ;-)

DV> если с ее помощью обычно удается передать анси-строку? ;)
Имхо ты заблуждаешься. Если не сложно, кинь пример.

DV> Тогда уж передавать через VarPtr...
VarPtr для строк возвращает адрес DWORD-участка, где хранится StrPtr. Т.е.
функциональность у них совершенно одинаковая.
* Origin: Luke Luck likes lakes. Luke's duck likes lakes. (2:5080/1003.16)



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