Обсуждение программирования на Visual Basic в конференции ru.visual.basic
Re: Прозрачный контейнер |
Hello, Sergey! You wrote to "A Skrobov" 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ума на Исходниках.Ру (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: 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" Hi Dmitry! > А смысл? Все равно wide-версия принимает строки через StrPtr, а для ansi > переконвертирования избежать сложно. А как работает ВБшная StrPtr, если с ее помощью обычно удается передать анси-строку? ;) Тогда уж передавать через VarPtr... -- With best regards Dmitry Viazowkin * Origin: Me? Organized??? (2:5020/400) |
Re: Работа с файлами на уpовне HEX |
From: Alexander Asyabrik Привет, 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) |