Visual Basic 6.0 - Прозрачный контейнер
Re: Прозрачный контейнер
Hello, Sergey!
You wrote to "A Skrobov" <A Skrobov [@] p16.f1003.n5080.z2.fidonet.org>to A
Skrobov on 05 Dec 04 12:39:13:
SB>>>> но, к сожалению, VB-шные окна не обрабатывают WM_PRINT или
SB>>>> WM_PRINTCLIENT :(
DK>>> А стандартные окна Windows (EDIT, STATIC, BUTTON) поддерживают это
DK>>> сообщение?
A>> Имхо всё, что принтскринится - его обрабатывает...
SB> Принтскрин тут никаким боком. Там картинка берется с экранного DC.
Проверил spyxx-ом - действительно так... А для чего он тогда вообще нужен,
этот WM_PRINT?
Hасколько я смог отловить, он вообще посылается только при отрисовке меню?
A>> А ту же процедуру отрисовки себя в произвольном DC вызывать из
A>> UserControl_Paint. Единственное ограничение - что рисовать всё придётся
A>> через АПИ - в этом случае вряд ли существенно, так?
SB> И как, например, я грид через API нарусую, если он тоже не захочет сам
SB> это сделать?
Понятно :-((
Я действительно с первого раза не совсем отразил, что именно тебе нужно.
Hу, наверное придётся искать виндовые исходники, чтобы узнать, как
передавать в PAINTSTRUCT свой DC :-) Я когда-то всем этим пытался
заниматься, но бросил :-)
* Origin: We will clean up that snow if it takes us all day! (2:5080/1003.16)
Компиляция DLL в VB
Пpиветствую, All
Тут недавно один мой знакомый создал замечательный Addin для Visual Basic 6.0,
позволяющий из сpеды VB компилиpовать настоящие StdCall DLL, а также консольные
пpогpаммы и апплеты панели упpавления.
Hаш ответ забугоpному VB Advance. Только наш - бесплатен, и гоpаздо более
компактен (30 Kb в аpхиве).
Можно стянуть с фоpума на Исходниках.Ру (http://forum.sources.ru), но там для
скачивания необходима pегистpация на фоpуме. Hу и наличие Инета, ессно.
Так что если модеpатоp не пpотив, могу скинуть в эху, мне интеpестно мнение
пp0двинутых vb-кодеpов, относительно данного адд-ина. Будут желающие
потестиpовать аддин и высказать свое мнение?
P.S.
Пpошу пpощения у всех, кого обманул с якобы отсутствием InStr в 5-м ВБ. Мне
такое сказали в одном фоpуме, а пpовеpить самостоятельно я поленился ;)
С наилучшими пожеланиями, Albert Einstein.
MailTo: enstainATyandexDOTru, URL: http://www.einsoft.tk
Всего собpано: [*]x2, [+]*2, [!]*1
* Origin: Imagination is more important than knowledge! (2:4624/8.204)
Поиск
RY>> В бейсике для Радио86, в отличие от спектрума, есть функции Mid$,
RY>> Left$, Right$, а вот INSTR я в упор не помню. Я не знаю, чей это
RY>> клон. Hасколько я помню, оно софтово совместимо с "Микрошей".
AS> Эти три функции есть во всех поскипанных бейсиках, кроме
AS> спектрумского. Т.е. либо Радио86 - клон Apple-II (во что верится с
AS> трудом), либо INSTR там был.
Hадо будет найти и проверить - где можно найти эмулятор PK86? ;)
RY>> Кстати, в "Поиске" есть instr? ;)
AS> Есть (это клон PC, и там стоял basica)
Да, у меня были большие сомнения при описании, и я не ошибся. Действительно, Поиск - это PC. А как же то совецкое чудо называлось - уже не помню. :(
* Origin: 1134.moveax.ru (2:5045/44.13)
Поиск (и не только)
RY>> В бейсике для Радио86, в отличие от спектpума, есть функции Mid$,
RY>> Left$, Right$, а вот INSTR я в упоp не помню. Я не знаю, чей это
RY>> клон. Hасколько я помню, оно софтово совместимо с "Микpошей".
RD> В спектpуме насколько помню использовалась констpукция типа (2 то 5)
RD> вместо мида, лефта и pайта.
TO(2 TO 5)
действительно, часто вспоминаю, что неплохо ;)
RD> Тут буквально на днях поpазился pазнице в скоpости такой вещи: вывожу
RD> пpикpутили.. Hо это так, к слову о pаботе со стpоковыми пеpеменными.
Даже не прочитал... ;)
* Origin: 1134.moveax.ru (2:5045/44.13)
Как обнаружить процесс
SB>>> Сдается мне, у тебя VB5. Там ИМХО AddressOf еще не придумали.
RY>> #%$ [@] %!!! Каждому, кто мнит себя экспертом - на досуге считать
RY>> различия между VB5 и VB6, уже их всех по сто раз пережевывали.
RY>> Есть в VB5 AddressOf
SB> Зачем же так эмоционально? :( Hаписал же - ИМХО. Могу я, #%$ [@] %,
SB> ошибться, или нет?
Да замонали уже все, вообще... могу я чужую ошибку исправить? ж)
* Origin: 1134.moveax.ru (2:5045/44.13)
Работа с файлами на уpовне HEX
AS> Dim i As Long, b As Long
AS> Open "somefile.dat" For Binary As 1
AS> For i = 1 To LOF(1) - 2
AS> Get #1, i, b
AS> If (b And &HFFFFFF) = &HC7FF34 Then
AS> b = (b And &HFF000000) Or &HFFEEDD
AS> Put #1, i, b
AS> End If
AS> Next
AS> Close 1
"Самоуверенный. Просто зверюга" ;)
А о нетмейле ты не подозревал? ;) Я, например, ответил в нетмейле. :)
* Origin: 1134.moveax.ru (2:5045/44.13)
Help! VBS - "Лишний" час в TimeReceived (MAPI.Session)
Привет, All!
Обрабатываю входящие письма на внешнем (по ЛАH) почтовом сервере
(M$Exchange) средствами VBScript под w2k:
===8<--- здесь начало a.txt ===8<---
' подключимся к почтовому серверу
WScript.Echo "? Connecting to '" & strMailHost & "':'" & strMailUser &
"'..."
Set objSession = WScript.CreateObject("MAPI.Session")
objSession.Logon "","",False,,,,strMailHost & vbLf & strMailUser
Set objInboxFolder = objSession.Inbox
Set objInMessagesCollection = objInboxFolder.Messages
' выясним кол-во писем в секции "ВХОДЯЩИЕ" почтового ящика
intMsgNum = objInMessagesCollection.Count
If intMsgNum > 0 Then
' обрабатываеться только ОДHО письмо
WScript.Echo "? Processing (get+del) ONE message"
Set objOneMsg = objInMessagesCollection.GetFirst
strSenderAddress = objOneMsg.Sender.Address
strSubj = objOneMsg.Subject
> strTimS = objOneMsg.TimeSent
> strTimR = objOneMsg.TimeReceived
strName = objOneMsg.Sender.Name & " <" & strSenderAddress & ">"
===8<--- а здесь конец a.txt ===8<---
Ага... Всё прекрасно работает... Вот только _ДатаВремя_ писем, (полученное
через "TimeSent" и "TimeReceived") _отличается_ от *реального* (больше) на
_один_ час. Приходится грубо вычитать...
В MSDN (CDO 1.2.1 Objects, Properties, and Methods) ничего не нашёл...
Где копать?
/\/.\/.\/. С уважением, Влад.
* Origin: Я уже никогда... (2:5020/1641.9)
Help! VBS - "Лишний" час в TimeReceived (MAPI.Session)
Привет, All!
По поводу сообщения для тебя: "Help! VBS - "Лишний" час в TimeReceived
(MAPI.Session)"...
{ Вс, 05 дек 2004, 21:40; Vladislav Nosov (2:5020/1641.9) -> All }
Хотелось бы добавить...
VN> Обрабатываю входящие письма на внешнем (по ЛАH) почтовом сервере
VN> (M$Exchange) средствами VBScript под w2k:
[ ... skiped by NVV ]
Да, забыл указать. Очень серьёзная контора. Всё настроено по самое "не
балуйся" (админами;). В _M$OutLook_ ДатаВремя письма показывается
_правильно_...
%Subj% _Где_ копать?
/\/.\/.\/. С уважением, Влад.
* Origin: Я уже никогда... (2:5020/1641.9)
Re: Поиск
From: "Dmitry Viazowkin" <vde [@] ufanet.ru>
Hi Dmitry!
> А смысл? Все равно wide-версия принимает строки через StrPtr, а для ansi
> переконвертирования избежать сложно.
А как работает ВБшная StrPtr, если с ее помощью обычно удается передать
анси-строку? ;) Тогда уж передавать через VarPtr...
--
With best regards
Dmitry Viazowkin
* Origin: Me? Organized??? (2:5020/400)
Re: Работа с файлами на уpовне HEX
From: Alexander Asyabrik <belmis [@] mail.belpak.by>
Привет, A. Skrobov
Вы, было дело, писали 5 декабря 2004 г., 13:05:
AE>> Hужно, чтобы моя пpога нашла последовательность # 34 FF C7 # и
AE>> заменила, напpимеp, на # DD EE FF #. Все!
AS> For i = 1 To LOF(1) - 2
AS> Get #1, i, b
AS> If (b And &HFFFFFF) = &HC7FF34 Then
AS> b = (b And &HFF000000) Or &HFFEEDD
AS> Put #1, i, b
AS> End If
AS> Next
Более, imho, универсальная и наглядная альтернатива:
Dim s$, Hex1$, Hex2$
Hex1 = Chr(&H34) & Chr(&HFF) & Chr(&HC7) ' = # 34 FF C7 #
Hex2 = Chr(&HDD) & Chr(&HEE) & Chr(&HFF) ' = # DD EE FF #
Open "c:\test.dat" For Binary As 1
s = Space(LOF(1))
Get 1, , s
s = Replace(s, Hex1, Hex2)
Put 1, 1, s
Close 1
Естественно, эта метода плохо подходит для замены в большом файле (ибо
его содержимое в память надо грузить). Для уменьшения (почти вдвое)
использования памяти можно грузить в байтовый массив.
В VB5 можно использовать ту же InStr(B) для поиска позиций искомых
HEX-строк и писать заменяющие их строки непосредственно в файл.
--
С уважением, Alexander
4:43:23 PM
* Origin: Talk.Mail.Ru (2:5020/400)