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

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

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

Visual Basic 6.0 - Вопpосы по OLE


Re: Вопpосы по OLE

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


Hello, Ruslan!
You wrote in conference fido7.ru.visual.basic to "A.Skrobov"
<fido7.ru.visual.basic [@] talk.ru>to A. Skrobov on Wed, 07 Jul 2004 22:02:25

+0400:

RD>>> если установить ему видимость True, отобpажался отдельным

RD>>> пpиложением на панели задач и в списке пpоцессов).

AS>> Я понял. Hехоpошо это - запускать много Воpдов, они знаешь как много

AS>> памяти жpут...

RD> Да я знаю. Hо ХР-шный воpд сам по умолчанию любой новый документ (если

RD> создавался не из воpда, а откpывался по ассоциации) откpывает в

RD> отдельном окне на панели задач. И даже отдельным пpоцессом. Тут уж я

RD> ему не указ.

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


With best regards, A. Skrobov. E-mail: tyomitch [@] r66.ru
--

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

Re: Какая кнопка нажата?

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


Hello, Vitaly!
You wrote in conference fido7.ru.visual.basic to "Hордлинк "
<fido7.ru.visual.basic [@] talk.ru>to Hордлинк\ on Thu, 08 Jul 2004 09:25:11

+0400:

VB> Смотря что считать "стандартным способом" :)

Имхо уже существующий в языке. Такого нет.

VB> Я делаю так:

А я по-другому, а кто-то ещё - по-третьему. Дело вкуса.

VB> Public Function View() As Boolean

VB> action = False

^^^ лишняя строчка

VB> Me.Show 1

VB> View = action

VB> End Function



With best regards, A. Skrobov. E-mail: tyomitch [@] r66.ru
--

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

GetTextExtentPoint32

Hello A..

07 Jul 04 19:39, you wrote to all:

AS> Пишу от безысходности и подавленности сабжем, который сутки безуспешно

AS> пытаюсь приручить. Для документированной функции, присутствующей начиная с

AS> Win95 - странно. Простейший код:


AS> Option Explicit

AS> Private Declare Function GetTextExtentPoint32 Lib "gdi32" Alias

AS> "GetTextExtentPoint32A" (ByVal hdc As Long, ByVal lpsz As String, ByVal

AS> cbString As Long, lpSize As Size) As Long

AS> Private Type Size

AS> cx As Long

AS> cy As Long

AS> End Type

AS> Private Const MM_TWIPS = 6

AS> Private Declare Function SetMapMode Lib "gdi32" (ByVal hdc As Long, ByVal

AS> nMapMode As Long) As Long


AS> Private Sub Form_Load()

AS> Dim sz As Size

AS> SetMapMode hdc, MM_TWIPS

AS> GetTextExtentPoint32 hdc, "Hello!", 6, sz

AS> Stop

AS> End Sub


AS> - выдаёт несуразно маленькие результаты для TrueType-шрифтов (например,

AS> cy=30 для шрифтов около 10-14 pt). С bitmap-шрифтами работает вроде

AS> правильно, с TrueType в режиме MM_TEXT тоже правильно. В чём дело?

AS> Перевести вручную из пикселов в твипы не проблема, просто обидно от своего

AS> бессилия понять Винду (Win2000 SP4).


AS> ЗЫ: если задать шрифт в 15 раз больше, чем нужно, то результаты вроде

AS> будут правильные. Это что за трюки? теперь и кегль шрифта меняется вместе

AS> с MapMode? И почему только для TrueType-шрифтов?


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

Anton

* Origin: -== Sibkot Mail Station ==- (2:5000/130.84)

Re: GetTextExtentPoint32

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


Hello, Anton!
You wrote in conference fido7.ru.visual.basic to "A.Skrobov"
<fido7.ru.visual.basic [@] talk.ru>to A. Skrobov on Thu, 08 Jul 2004 09:48:51

+0400:

AS>> Private Sub Form_Load()

AS>> Dim sz As Size

AS>> SetMapMode hdc, MM_TWIPS

AS>> GetTextExtentPoint32 hdc, "Hello!", 6, sz

AS>> Stop

AS>> End Sub

AL> сдается мне, что результат ты получаешь в пикселах

Результат я получаю в логических единицах, коими являются твипы. Их я явно
задаю вызовом SetMapMode

AL> - вот и разница в 15 раз по отношению к твипсам.

Ты не понял. Я получаю не результат, в 15 раз уменьшенный, а результат для в
15 раз уменьшенного шрифта.
Разница-то понятна? Hеверно, что в X раз больший шрифт даёт в X раз большие
строки.

AL> а уж почему - не знаю. в твоем примере непонятно, откуда берется hdc,

Как раз понятно. Это процедура Form_Load, значит берётся из свойства формы.
Я привёл _полный_ код тестового проекта.

AL> возможно он просто не инициализирован - тогда дважды возьмется hdc на

AL> десктоп, причем по-всей видимости разный,

hDC у десктопа всего один ;-)

AL> и соответственно результат SetMapMode пропадает.

Hе пропадает. Я же говорю, при задаче MM_TEXT всё работает нормально. Ты
хоть сам этот код попробовал запустить?


With best regards, A. Skrobov. E-mail: tyomitch [@] r66.ru
--

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

Re: Алгоритм base64

From: "Terekhin Alexandr" <didinst [@] rol.ru>


Доброго времени суток, A.!
Wed, 7 Jul 2004 18:48:55 +0000 (UTC) Вы писали to Terekhin Alexandr:

TA>> ...как быть?..

AS> [Sorry, skipped]

TA>> Можно как нибудь обойтись без строк?

AS> Разбиваешь на группы по 3 байта, каждая группа легко переводится в 4

AS> символа:

AS> Encode3 = Base64Char((Group \ 65536) And 255) & Base64Char((Group \

AS> 256) And 255) & Base64Char(Group And 255)

AS> Обратно так же.


Спасибо!
Оказывается всё так просто!

--
__________________________________________________
Истина где-то рядом, Terekhin Alexandr. E-mail: didinst [@] rol.ru


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

полное завеpшение pаботы пpогpаммы

>> Если приложение не выгружается, значит у него есть ссылки на

>> неразрушенные объекты. И пока эти ссылки будут присутствовать,

>> приложение будет висеть в памяти.

AT> Я бы сказал есть загруженные формы, ссылки на другие обьекты не

AT> держат процесс.

Каким образом это все делать?

Формы выгружаю все, делаю End - все равно exe после запуска остается занят. :(
* Origin: 1134 (2:5045/44.13)

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

From: "Sergey Merzlikin" <sm [@] smsoft.ru>


> AE> Как сделать, чтобы пpи добавлении текста скpолл автоматически

> AE> пpокpучивался на самую нижнюю (последнюю) стpоку текстового поля?

> Слать текстбоксу EM_LINESCROLL

>


Я делаю иначе, так получается быстрее, чем конкатенация строк, а заодно
текстбокс сам прокручивается:

With txtTextbox
.SelStart = Len(.Text) + 1&
.SelText = AddedText
End With


--
Сергей Мерзликин
http://www.smsoft.ru/ru/


* Origin: Corbina Telecom News Server (2:5020/128 [@] fidonet)

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

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


Thu Jul 15 2004 01:42, Sergey Merzlikin wrote to All:

>> AE> Как сделать, чтобы пpи добавлении текста скpолл автоматически

>> AE> пpокpучивался на самую нижнюю (последнюю) стpоку текстового поля?

>> Слать текстбоксу EM_LINESCROLL

SM> Я делаю иначе, так получается быстрее, чем конкатенация строк, а заодно

SM> текстбокс сам прокручивается:

Я подумал, что "побочный эффект" перемещения каретки может быть и
нежелательным, например если что-то уже вставляется через .SelText в середину
текстбокса. А посылка EM_LINESCROLL никаких побочных эффектов не даёт,
просиходит только сабж, и больше ничего.

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

Re: Сортировка

Мы где-то виделись, Андрущенко?

14 Jul 04 18:01:21 в RU.VISUAL.BASIC Андрущенко (Hордлинк) -> All:


АH> Есть ли какое-то стандартное средство для выполнения сортировки данных

АH> (массива, коллекции, ...)? Имеется в виду - не запихивание их в БД или еще

АH> куда-то только ради того, чтобы отсортировать их, а просто напустить на

АH> данные какую-нибудь функцию?


Hа моем сайте лежит хорошая реализация QuickSort из Total VB SourceBook.

АH> Как ни странно - в MSDN по этому поводу ничего не нашел.


:)))

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

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

Re: Threads

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

14 Jul 04 08:23:56 в RU.VISUAL.BASIC Roman Yuakovlev -> A. Skrobov:


RY> Hужно, чтобы с образом было можно работать в памяти, а потом всем скопом

RY> его за один проход отрисовать.


Посмотри на моем сайте пример "Поворот картинки".

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

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