VBNet
VBMania
Голосование: Ссылки: |
Господа!!! читайте MSDN!!! Несколько слов от автора:
Свежий выпуск. Извините, что задержался...
Читайте! Содержание выпуска
Citycat by Email Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое. Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru. наверх Новости сайта VBNet
Последние 20 тем форума на VBNet.Ru: 08:00 / 26 окт. Автономная работа браузера | Хитов: 2 | Ответов: 0 02:08 / 26 окт. Люди, у кого-нибудь есть полнофункциональный пр... | Хитов: 3 | Ответов: 0 21:58 / 25 окт. Самое страшное слово - ДОКУМЕНТАЦИЯ | Хитов: 9 | Ответов: 0 19:31 / 25 окт. копирование файлов по маске | Хитов: 9 | Ответов: 1 18:44 / 25 окт. Вопрос про ФИДО | Хитов: 6 | Ответов: 0 18:38 / 25 окт. Помогите начинающему Web-программисту!!! | Хитов: 14 | Ответов: 1 16:03 / 25 окт. MAPI | Хитов: 7 | Ответов: 0 13:38 / 25 окт. Automation | Хитов: 12 | Ответов: 1 13:06 / 25 окт. Новый язык программирования | Хитов: 28 | Ответов: 5 12:57 / 25 окт. Продолжительность работы любой программы | Хитов: 18 | Ответов: 1 12:00 / 25 окт. Медленно Webbrowser работает | Хитов: 6 | Ответов: 0 23:01 / 24 окт. Обновление IE | Хитов: 34 | Ответов: 1 22:33 / 24 окт. ADODC.Recordet->DataGrid | Хитов: 20 | Ответов: 2 20:23 / 24 окт. ЧАТ на Winsock(е) ???? | Хитов: 31 | Ответов: 2 17:59 / 24 окт. Работа с папками | Хитов: 57 | Ответов: 12 17:55 / 24 окт. Как сжать базу на веб-сервере? | Хитов: 13 | Ответов: 0 17:45 / 24 окт. Сжать базу на сервере | Хитов: 15 | Ответов: 0 17:19 / 24 окт. Скролинг програмного кода при помошо колесика мыши | Хитов: 30 | Ответов: 1 17:10 / 24 окт. VBRKit | Хитов: 28 | Ответов: 5 16:37 / 24 окт. про MSFLEX и .FixedCols | Хитов: 17 | Ответов: 1 Последние поступления в Библиотеку кодов: Конвертирование цветной картинки в черн... Как получить размер папки наверх Новости сайта MSDN наверх Новости сайта GotdotNet Новые статьи: наверх Новости сайта dotSite Новые статьи: Новые примеры: наверх Один момент из жизни форума: Прозрачность Вопрос: Автор вопроса: Артём Л. .NET. Я создаю юзерконтрол, рисую на нем парочку линий. Как мне можно сделать остальной фон контрола прозрачным? пробовал разбираться по сценарию фака о прозрачной панеле, но делает, что-то не то - прозрачным становиться и форма под контролом. Ответы: Автор: Павел Попробуй поставить у контрола BackColor с нужным значением компоненты Alpha (прозрачность). Автор: SAVok Действительно, управление прозрачьностью осуществляется Alpha компонентом цвета. Но только надо помнить, что не все ОС поддерживают прозрачность. наверх Вопрос/Ответ Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы. Вопросы:Автор вопроса: Денис Ответ ожидается по этому адресу Можно ли как - нибудь убрать выбранные байты из файла не перезаписывая весь файл? Например: 1111 2222 3333 Как убрать 2222 чтобы в файле получилось 1111 3333 ? Автор вопроса: Роганов Владимир Ответ ожидается по этому адресу Я пишу прогу и она занимает 1.93 МВ. Когда я запаковываю туда, с помощью VB-PowerWrap1.7, OCX и dll-ы, то размер становится 3.34 МВ, при архивировании WinRar-ом, размер становится 3.31 МВ. Кто может, подскажите любые методы, чтобы как можно сильнее уменьшить размер! Автор вопроса: Максим Гаранин Ответ ожидается по этому адресу Как на vb.net осуществить чтение данных из текстового файла? Никак не могу найти аналог команды vb6: input #1, var1, var2 и т.д. Процедуры из классов StreamReader и BinaryReader не помогают. Автор вопроса: C...R...a...S...H Ответ ожидается по этому адресу У меня на форме куча textbox`ов, данные в них связаны. Например: txtName(0) - имя ' txtSoName(0) - фамилия ' это все как-бы ячейка txtLastName(0) - отчество ' 'и так повторяется до 62 Вопросы такие: 1. Как мне реально сделать Отмену последнего действия (причем отменяется во всей ячейке)? 2. Как сделать, чтобы можно было выделять несколько ячеек и получить из них данные? P.S. Прим. Павла: господа, может нам в рассылке раздел обучения русскому языку открыть? Я уже устал править сообщения местных "грамотеев"! Автор вопроса: Соколов Алексей Ответ ожидается по этому адресу Каким образом можно добраться из программы на VB6 до изменения формата ячеек в Excel? При передаче информации типа 01/03 Excel воспринимает ее как дату, а необходимо, чтобы она воспринималась как текст. Автор вопроса: valix Ответ ожидается по этому адресу Что возвращает функция VarPtr? Автор вопроса: Сан Саныч Ответ ожидается по этому адресу Как скопировать из одномерного массива типа byte в переменную типа IPictureDisp, или в контейнер PictureBox? Лучше если это будет при помощи АПИ. Автор вопроса: Viktor Ответ ожидается по этому адресу С видеоглазка принимается изображение и сохраняется в архиве, также есть окно с электронных весов. Как сделать, чтобы окна открывались синхронно, то есть при просмотре архива видеоизображения, просматривать информацию с весов в тот же момент. В код программы видеоизображения добавить ничего немогу (написана не мной). Автор вопроса: EfSU Ответ ожидается по этому адресу Как определить, установлен ли в системе принтер, и если установлен, то в каком он находится состоянии - "вкл." или "выкл". Если можно, то кусок кода. Автор вопроса: Oleg Ответ ожидается по этому адресу Access2000. Как динамически вкл\выкл доступ к пункту меню, в зависимости от моих условий? Автор вопроса: Oleg Ответ ожидается по этому адресу Access2000. DoCmd.MoveSaiz [right][, down][, width][, height] Как определить максимальные значения [right][, down][, width][, height] ? Автор вопроса: Serzh Ответ ожидается по этому адресу Можно ли в TextBox выделить не все, а несколько знаков? К примеру 4-ый и 5-ый справа? Ответы: Вопрос: Функция Time() возвращает время на компьютере, а как можно получить время на другом компе в локальной сети? Ответ: Автор ответа: Роман В командной строке набрать NET TIME /? и увидишь инфу. Вопрос: Существует кем-то написанная программа, работающая в фоновом режиме, хочу послать ее окну комбинацию клавиш: Shift+a, ctrl+a, alt+a (a – для примера). Знаю hwnd этого окно, пробовал при помощи sendmessage, но посылается только отдельная клавиша, а как комбинацию послать не знаю Ответ: Автор ответа: Роман По-моему нужно отсылать константу типа VK_SHIFT (смотри а API) следующим образом: VK_SHIFT OR CHR$(клавиша). Вопрос: Возвращаясь к напечатанному: Отвечал: Alexander Чует моё сердце, что пытаетесь менять данные в полях БД с атрибутами числовой/логический. Это так? В таком случае для испольяуются объекты StdDataValue, StdDataFormat, а не только Textbox. Данные меняются и в полях с атрибуто- текстовый, обновления все равно нет. Можно ли по-подробнее про объекты StdDataValue, StdDataFormat? Ответ: Автор ответа: Александр Итак, а) данные меняются и в полях с атрибутом "текстовый", обновления все равно нет. Рекомендации: - проверить, что данное текстовое поле опирается на Recordset не с атрибутом "только для чтения", - проверить, что присвоено .DataField имя поля, присутствующее в Recordset - изменения базы данных не проводятся до тех пор, пока мы не уйдём с поля, например, на кнопку "ОК", поэтому для форсирования события можно, например, в событии _Change сделать так: rs.Update "MyTextField", TextBox1.Text Это редкий случай. Т.к., как правило, на форме несколько полей и кнопок. Поэтому анализ делается, к примеру, когда Form_Unload или <что-то>_LostFocus: If rs.EditMode = adEditInProgress Then rs.UpdateBatch adAffectAllChapters ... End If б) касательно StdDataValue, StdDataFormat. Легче на стандартном примере: если какое-то логическое поле имеет значение True, то выдать "Да", иначе - "Нет". В "References" проекта поставим галочку напротив "Microsoft Data Formatting Object Library 6.0 (SP4)" В программе, где оформляем DataGrid1, обычно Form_Load(), припишем: Set fmtBooleanData = New StdDataFormat fmtBooleanData.Type = fmtBoolean fmtBooleanData.TrueValue = "Да" fmtBooleanData.FalseValue = "Нет" fmtBooleanData.NullValue = "" Set DataGrid1.Columns(index).DataFormat = fmtBooleanData index - номер столбца, который надо так отобразить. Результат не заставит себя долго ждать :-) Естественно, это можно связать с событием _Button. Т.е. как заблагорассудится. Остальное - в MSDN или MVP.org. Вопрос: На форме есть RichTextBox. Как узнать скорость ввода символов? Ответ: Автор ответа: Максим 31 соответствует наибольшему значению скорости повтора, 0 - наименьшему. Const SPI_GETKEYBOARDSPEED = 10 Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" _ (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) As Long Private Sub Form_Load() Dim r As Long q = SystemParametersInfo(SPI_GETKEYBOARDSPEED, 0, r, 0) MsgBox "Скорость повтора = " & r & " символ в секунду" End Sub Ответ: Автор ответа: Максим Может быть это подойдет. Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long) 'bVk - Виртуальный код клавиши для имитации нажатия и отпускания клавиши. 'bScan - Зарезервировано -- установлено в 0. 'dwFlags - Комбинация следующих флагов определяет различные способы имитации: 'KEYEVENTF_EXTENDEDKEY - Префикс скэн-кода с префиксным байтом, имеющим значение &HE0. 'KEYEVENTF_KEYUP - Клавиша, указанная в bVk будет отпущена. Если этот флажок не определен, клавиша будет нажата. 'dwExtraInfo - Дополнительное 32-разрядное значение, связанное с событием клавиатуры. Const KEYEVENTF_KEYUP = &H2 'событие отпускания клавиши Const VK_ADD = &H6B 'клавиша + Const VK_CONTROL = &H11 'клавиша Ctrl Const VK_TAB = &H9 'клавиша Tab Const VK_MENU = &H12 'клавиша Alt Const VK_ESCAPE = &H1B 'клавиша Escape Const VK_LWIN = &H5B 'левая клавиша, эмулирующая нажатие кнопки ПУСК Private Sub ShowStartMenu() 'Функция эмулирует нажатие Ctrl + Esc Call keybd_event(VK_CONTROL, 0, 0, 0) 'Hажимаем Ctrl Call keybd_event(VK_ESCAPE, 0, 0, 0) 'Hажимаем Esc Call keybd_event(VK_ESCAPE, 0, KEYEVENTF_KEYUP, 0) 'Отпускаем Esc Call keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0) 'Отпускаем Ctrl End Sub Коды клавиш в объектбраузере. Но окно должно быть активно. Вопрос: Как красивее написать следующее условие: Если NameVariable = 0 или NameVariable = 1 или NameVariable = 2 или NameVariable = 3 или NameVariable = 1000 ...и т.д. (Переменная одна, а значений, при которых это условие должно выполнятся, может быть ооооооочень много). Ответ: Автор ответа: VMJ dim i as integer dim Vtest as Variant Vtest =array(1,25,49,2015,3.62)'Массив проверяемых значений for i=lbound(Vtest ) to ubound(Vtest ) if Name_ariable=Vtest(i) then .... exit function end if next i Вопрос: 1. Как различить нажатие левой и правой клавиши Ctrl ( Shift, Alt). В программе мне необходимо выполнить два разных действия при нажатии левой или правой клавиши? 2. Аналогично, как различить нажатие Enter и Enter дополнительной клавиатуры? Ответ: Автор ответа: Максим Ну, в общем, ответ про то, что в vb6 этого нет, а в .net есть, банальный... На всякий случая для .net: в обработчике события keyup или down, в e.Modifiers. Ответ: Автор ответа: Александр Шелапугин По 2 вопросу: в VB есть константы, соответствующие кодам клавиш: vbKeyReturn = vbKeySeparator = Решение проблемы есть в MSDN (статья "BUG: vbKeySeparator Constant Does Not Work"), пример оттуда: Добавьте код в Form1 Private Declare Function PeekMessage Lib "user32" Alias _ "PeekMessageA" (lpMsg As MSG, ByVal hwnd As Long, _ ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long, _ ByVal wRemoveMsg As Long) As Long Private Type POINTAPI x As Long y As Long End Type Private Type MSG hwnd As Long message As Long wParam As Long lParam As Long time As Long pt As POINTAPI End Type Const PM_NOREMOVE = &H0 Const WM_KEYDOWN = &H100 Const WM_KEYUP = &H101 Const VK_RETURN = &HD Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Dim MyMsg As MSG, RetVal As Long ' pass: ' MSG structure to receive message information ' my window handle ' low and high filter of 0, 0 to trap all messages ' PM_NOREMOVE to leave the keystroke in the message queue ' use PM_REMOVE (1) to remove it RetVal = PeekMessage(MyMsg, Me.hwnd, 0, 0, PM_NOREMOVE) ' now, per Q77550, you should look for a MSG.wParam of VK_RETURN ' if this was the keystroke, then test bit 24 of the lparam - if ON, ' then keypad was used, otherwise, keyboard was used If RetVal <> 0 Then If MyMsg.wParam = VK_RETURN Then If MyMsg.lParam And &H1000000 Then MsgBox "Enter from Keypad pressed" Else MsgBox "Enter from Keyboard pressed" End If End If Else MsgBox "No message waiting, or possible problems calling PeekMessage" End If End Sub Запустите проект и нажимайте обе клавиши ENTER. Вопрос: Подскажите, как достучаться до динамически созданного контрола. Я динамически добавил на форму CombBox. Как теперь получить к нему доступ: произвести чтение, проверить есть ли он вообще. В Васике 6.0 можно было создавать массив элементов, и обращаться к ним через индексы, а как это же сделать в NET'e. Ответ: Автор ответа: Максим Нужно добавлять обработчик собятия. AddHandler. Вопрос: Как с помощью модема соедениться с двумя машинами и передать файл (на VB6)? Ответ: Автор ответа: C...R...a...S...H В MSDN есть sample работы с mscomm.ocx, называется vbterm. Ответ: Автор ответа: Bold Если устоновлен MSDN то посмотри по этому пути: "Program Files\Microsoft Visual Studio\MSDN\2001JAN\1033\SAMPLES\VB98\Mscomm". Вопрос: Как проигрывать звук циклически без всяких там контролов, только средствами Win API и VB? Ответ: Автор ответа: Vladimir [PRC] Для WAV файлов можно поступить так: Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long Private Const SND_FILENAME = &H20000 ' name is a file name Private Const SND_SYNC = &H0 ' play synchronously (default) Private Const SND_ASYNC = &H1 ' play asynchronously Private Const SND_LOOP = &H8 ' loop the sound until next sndPlaySound PlaySound "ИМЯ ФАЙЛА.WAV", 1, SND_FILENAME Or SND_ASYNC Or SND_LOOP При этом необходимо: 1. После воспроизведении другого звука перезапускать файл 2. При завершении работы программы остановливать звук Вопрос: Как на VB получить системную переменную? Мне конкретно нужна переменная, в которой хранится полный путь к временной дирректории (temp). Полагаю, нужно использьзовать WINAPI, но какую ф-ю не знаю. Может кто делал и поделится инфой, можно и примерчиком маленьким. Ответ: Автор ответа: mt Dim TempDir As String TempDir = VBA.Environ ("temp") А вот более навороченая функция. Возвращает кучу всяких переменных с учетом типа ОС. Private Declare Function SHGetSpecialFolderLocation Lib "shell32" (ByVal hwndOwner As Long, ByVal nFolder As Integer, ppidl As Long) As Long Private Declare Function SHGetPathFromIDList Lib "shell32" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal szPath As String) As Long Private Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long Public Enum DIRS [Desktop] = 0 [Programs] = 2 [Windows] = 36 [Windows9x] = 101 [System] = 37 [temp] = 100 End Enum Public Const MAX_PATH As Byte = 255 Public Function GetSysFolder(ByRef ForDir As DIRS) As String Dim sPath As String Dim lPath As Long Dim lReturn As Long Dim lPidl As Long sPath = Space$(MAX_PATH) If ForDir = [temp] Then lPath = GetTempPath(256, sPath) lReturn = (lPath > 0) ' sPath = VBA.Environ$("temp") ElseIf ForDir = [Windows9x] Then sPath = VBA.Environ$("windir") lReturn = 1 Else lReturn = SHGetSpecialFolderLocation(0, ForDir, lPidl) ' Get lPidl for Id... If lReturn = 0 Then ' If success is 0 lReturn = SHGetPathFromIDList(lPidl, sPath) ' Get Path from Item Id List End If End If If lReturn Then ' If success sPath = Trim$(sPath) ' Fix path string lPath = Len(sPath) ' Get length of path If lPath = 0 And ForDir = [Windows] Then sPath = VBA.Environ$("windir") If lPath > 0 Then If Asc(Right$(sPath, 1)) = 0 Then lPath = lPath - 1 'Adjust path length sPath = Left$(sPath, lPath) If Right$(sPath, 1) <> "\" Then sPath = sPath + "\" End If Else sPath = "" End If GetSysFolder = sPath End Function Ответ: Автор ответа: Vladimir [PRC] Читайте MSDN, раздел ENVIRON: Dim Indx, EnvString Indx = 1 Do EnvString = Environ(Indx) ' Get environment variable. If Left$(EnvString, 4) = "TEMP" Or Left$(EnvString, 3) = "TMP" Then ' EnvString содержит полный путь к каталогу Temp или TMP ' Типа: TEMP=C:\WINDOWS\TEMP или ' TMP=C:\DOCUME~1\Админ~1\LOCALS~1\Temp End If Indx = Indx + 1 Loop Until EnvString = "" Ответ: Автор ответа: Bold Declare Function GetTempPath& Lib "kernel32" Alias "GetTempPathA" (ByVal _ nBufferLength As Long, ByVal lpBuffer As String) nBufferLength Long—The length of the lpBuffer string. lpBuffer String—A preinitialized string to load with the temporary path. Daniel Appleman Можете заполнить эту форму, либо отослать вопрос СЮДА Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта. |
||||||||||
Выпуск подготовили: |
Сурменок Павел |