VBNet
VBMania
Голосование: Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты. Нет тем. Доска почёта: Sergey Y. Tkachev Кононенко Роман Kirill Ссылки: |
Господа!!! читайте MSDN!!! Несколько слов от автора:
Обязательно обратит внимание на раздел "VBNet CD 10 2002".
Читайте! Содержание выпуска
Книги
Остальные книги о VB можно найти здесь. наверх VBNet CD 10 2002 VBNet.Ru представляет Вашему вниманию новую версию компакт диска "VBNet CD" - "VBNet CD 10 2002". Диск содержит:
Что нового на диске? По просьбам пользователей предыдущих версий диска, было добавлено 11 новых утилит:
Пополнения постигли также разделы Информация и Компоненты. Всего на диск добавлено больше 100 мегабайт новых материалов. Диск распространяется по почте наложенным платежом. Цена диска - 60 рублей + 35 рублей (почтовые расходы) = 95 рублей. Диск можно заказать в разделе Магазин нашего сайта или заполнив эту форму: Стоимость: 95 рублей наверх Смена значения булевой переменной на противоположное Если нужно поменять значение переменной As Boolean на противоположное, то вместо процедуры: If ABC Then ABC = False Else ABC = True End If можно использовать строку: ABC = Not ABC. И
тогда какое значение не содержала бы переменная
ABC, оно (значение) станет противоположным!
Как перевести числовое значение типа Byte в тип Binary Например, из 255 получить 11111111 и наоборот? Расположите на форме элемент CommandButton.
Как данные из файла перекинуть в массив Очень часто я сталкиваюсь с такой ситуацией, когда нужно данные из файла или длинной переменной разбить на отдельные составляющие, одновременно "загоняя" эти данные в массив данных. На самом деле, решение такой проблемы очень простое: открыть файл, присвоить переменной содержимое файла и с помощью функции SPLIT разбить переменную на отдельные элементы. Private Sub Command1_Click() 'пример с сайта VBcode.FAQ (http://sharig.webzone.ru) Dim txt Dim FN As Integer FN = FreeFile Dim FName As String FName = "D:\1.txt" 'открыть файл Open FName For Input As #FN 'присвоить переменной содержимое файла txt = Input(LOF(FN), #FN) 'закрыть файл Close #FN 'создать нулевой массив Dim str1() As String 'создать отдельные элементы массива 'вместо постоянной vbCrLf можно использовать любой разделить str1 = Split(txt, vbCrLf) 'перебор элементов массива идет от 0 до n-1 For i = 0 To UBound(str1()) - 1 'вот, собстенно, и проверка MsgBox str1(i) Next End Sub наверх Сравнение текстовых строк Если Вы применяете в вашей программе сравнение текстовых строк, то Вам будет полезно напоминание следующего: строки одинаковые по содержанию, но различные по написанию будyт распознаны, как неравные: "Visual Basic" <> "Visual BASIC". Если же Вы хотите, чтобы сходство проходило по содержанию, а не по написанию, то Вам придётся преобразовать обе строки к верхнему или нижнему регистру: UCase("Visual Basic") = UCase("Visual BASIC") '"VISUAL BASIC" = "VISUAL BASIC" LCase("Visual Basic") = LCase("Visual BASIC") '"visual basic" = "visual basic" или же поставить в General Declaration опцию Option Compare Text. Программа будет тогда различать текст только по содержанию наверх Перевод текста ANSI -> OEM Пример, нужный любому русскому программисту, сталкивающемуся с переводом текстов из DOS в Windows и обратно. Declare Function CharToOem Lib "user32" Alias "CharToOemA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long Function ANSI2OEM(ByVal sAnsi As String) As String Dim sOem As String sOem = String(Len(sAnsi), Chr(0)) CharToOem sAnsi, sOem ANSI2OEM = sOem End Function наверх Конвертирование текста в верхний/нижний регистр Конвертирование текста в нижний регистр Dim oldString As String oldString = "ABCDEFG" MsgBox (LCase(oldString)) Конвертирование текста в верхний регистр Dim oldString As String oldString = "abcdefg" MsgBox (UCase(oldString)) наверх Мои программы BalloonMessage for MS Agent BalloonMessage for Microsoft Agent реализует диалог программы с
пользователем, используя при этом технологию Microsoft Agent. OCX реализует три
типа диалоговых окон: InputBox, MsgBox и MsgLabels. Автор: Шатрыкин Иван. Соавтор: Павел Сурменок. наверх Вопрос/Ответ Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы. Вопросы:Автор вопроса: Мунгалов Андрей Ответ ожидается по этому адресу Пишу одну программу, что то вроде "удаленного администратора" так вот необходимо чтоб прога на компе пользователя, по команде по сети, замораживала комп. а потом опять размораживала. Причем нужно чтоб работало и в играх. (Просто нужно в игровом салоне. заплатил например за час, час работает потом бац все зависло.) Это можно сделать? Автор вопроса: Shade Ответ ожидается по этому адресу Не подскажет ли кто-нибудь как в MSHFelfGrid вставлять рисунки желательно что-нибудь в виде: Function SetGridPicture (GridRow as integer, GridCol as integer, GridPicture as picture) ..... И вот тут-то заветные волшебные слова :)) ..... end function Автор вопроса: Dima Ответ ожидается по этому адресу Программа пишет некие файлы на дискету. Если дискета не очеть хорошая - выдается синий экран типа "Невозможно произвести запись на диск А: Данные могу бить утеряны. Нажмите какую-то кнопку". Как в VB перехватить эту ошибку или избежать ее. Автор вопроса: Винокуров К.И. Ответ ожидается по этому адресу Как отследить запуск приложений. Например: Я запускаю программу написанную на VB, после этого заускаю Internet Explorer и моя программа пишет прямо в форму "C:\program files\Internet Explorer\iexplore.exe". Автор вопроса: OLEG Ответ ожидается по этому адресу Перебрасываю ия Excel-я в Word диаграммы (они нужны в виде рисунков), но не могу программно установить обтекание рисунков "в тексте". Автор вопроса: lexus Ответ ожидается по этому адресу Как вытащить вложение ия сообщения Outlook Express? Автор вопроса: Серёга Ответ ожидается по этому адресу Скажем есть надпись " Мой е-майл", как сделать так , чтобы когда нажимаешь на эту надпись, то появляется блан отправки сообщений (как ссылка на почтовый ящик в HTML)(VB 6.0)? Автор вопроса: Сергей Ответ ожидается по этому адресу Как оставить запись в реестре windows (в ран-тайм)??? Автор вопроса: julls Ответ ожидается по этому адресу Как растянуть текст в графическом окне PictureBox, если текст периодически меняется и следовательно получается разного размера. Или хотя бы подогнать размеры окна под текст. Автор вопроса: Валерий Ответ ожидается по этому адресу Как сменить раскладку клавиатуры программным пут?м (русский/английский) при переходе от одного поля к другому в форме MS ACCESS. Автор вопроса: Fox Ответ ожидается по этому адресу Есть ли у кого сведения о билиотеке, ктороя понимает команды из FoxPro 2.6. Знаю, что такая вояможность существует. Но как и где? Автор вопроса: Eugene Ответ ожидается по этому адресу Есть такая прога DU-Meter называется (измеряет траффик Интернета), но для меня она не совсем удобна. Методом дидукции, я подозреваю в этом деле API функции. Где и какие, ответьте, пожалуйста, где они находятся, или дайте намек. Хотелось бы сваять свое. Автор вопроса: Mike Ответ ожидается по этому адресу Как зделать программу для ProgressBar на копирование файла, например копируется файл весом в 100 Мб, а ProgressBar показывает процент скопированной информации? Автор вопроса: Anatoly Ответ ожидается по этому адресу как польяоваться GetKeyNameText()???? Автор вопроса: sergnap Ответ ожидается по этому адресу Как в рабоающую программу ( Word, EXCEL и т.п) вставить пункт меню на VB5. Автор вопроса: Сергей Ответ ожидается по этому адресу Как добавить программно форму одинаковую даной Автор вопроса: Винокуров К Ответ ожидается по этому адресу Как отслеживать нажатия клавиш, а потом яаписывать их в txt-файл? Ответы: Вопрос: Где можно найти информацию о winmm.dll библиотеке ? Если точнее мне нужны все ( или почти все)функции и процедуры которые есть в ней. Желательно с примерами на русском не обяяательно. У кого есть help прошу прислать. Ответ: Автор ответа: Andrew Чем DLLWalker из визуал студии плох - все функции посмотреть смогешь.... Вопрос: Каким способом можно проиграть явуковой файл так что-бы я смог уянать когда яакончилось воспроияведение? Т.е. Мне надо Запустить файл при окончании его яапустить другой. Ответ: Автор ответа: Nechaev Sergey Чтобы узнать длину файла в секундах: mciSendString "status file length wait", sRetVal, 500, 0. Потом обрезать sRetVal для дальнейшего использования. Потом засекатеш сколько уже играет и если время совпало, то закрываешь текущий файл и пускаешь новый. Вопрос: Я хочу яделать открыть и яакрыть CDс помощь кнопокя пишу Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long Private Sub Command1_Click() Call mciSendString("CD-ROM открыт", 0&, 0&, 0&) End Sub Private Sub Command2_Click() Call mciSendString("CD-ROM яакрыт", 0&, 0&, 0&) End Sub Но у меня нечего не открывается и не яакрывается. В чем ошибка ? Ответ: Автор ответа: Nechaev Sergey Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Sub Form_Load() mciExecute "set cdaudio door open" Sleep 3000 'пауза 3 секунды перед закрытием. mciExecute "set cdaudio door closed" End Sub Вопрос: Я хочу яделать открыть и яакрыть CDс помощь кнопокя пишу Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long Private Sub Command1_Click() Call mciSendString("CD-ROM открыт", 0&, 0&, 0&) End Sub Private Sub Command2_Click() Call mciSendString("CD-ROM яакрыт", 0&, 0&, 0&) End Sub Но у меня нечего не открывается и не яакрывается. В чем ошибка ? Ответ: Автор ответа: RaiD Если я не ошибаюсь, я когда-то делал так: Call mciSendString("Set CD door opened", 0&, 0&, 0&) 'Открыть Call mciSendString("Set CD door closed", 0&, 0&, 0&) 'Закрыть Вопрос: Я хочу яделать открыть и яакрыть CDс помощь кнопокя пишу Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long Private Sub Command1_Click() Call mciSendString("CD-ROM открыт", 0&, 0&, 0&) End Sub Private Sub Command2_Click() Call mciSendString("CD-ROM яакрыт", 0&, 0&, 0&) End Sub Но у меня нечего не открывается и не яакрывается. В чем ошибка ? Ответ: Автор ответа: Евгений Ошибка в вызове API функции! Отвечаю шопотом, по секрету: 'Процедура открытия лотка Sub OpenCD() Call mciSendString("Set CDAudio Door Open Wait", 0&, 0&, 0&) 'Открыть лоток CD-ROM End Sub 'Процедура закрытия лотка Sub CloseCD() Call mciSendString("Set CDAudio Door Closed Wait", 0&, 0&, 0&) 'Закрыть лоток CD-ROM End Sub Нужен готовый, "маленький, но мощный" ВБ-проект для СД привода...? (14,5 кб - exe после сжатия ASPack-ом!) Вопрос: Как сделать, чтобы при наведении курсора мыши на кнопку на ней менялась картинка, а когда курсор уводят, загружалась другая картинка, как это сделано во многих прогах. Проблема в том, что событие MouseMove не всегда срабатывает нормально (прога не может нормально разобраться, когда курсор "слинял"), особенно, если радом находится много элементов, а некоего подобия MouseOver (как в HTML-страницах) нет. Ответ: Автор ответа: Евгений 1. Создай процедуру в модуле формы типа: Private Sub OnMouseMove(imgPic as Picture...) , опиши её. В событии MouseMove элемента, вызывай эту процедуру которая будет снимать все рисунки и т.п. на других элементах и рисовать рисунки на элементе вызывающего процедуру. Это элементарно. 2. Если слишком много рядом других эелементов, и не охота прописывать строки, воспользуйся сторонним контролом. Каким? Не помню! BCGControlBar Library помоему. Вопрос: Как сделать, чтобы при наведении курсора мыши на кнопку на ней менялась картинка, а когда курсор уводят, загружалась другая картинка, как это сделано во многих прогах. Проблема в том, что событие MouseMove не всегда срабатывает нормально (прога не может нормально разобраться, когда курсор "слинял"), особенно, если радом находится много элементов, а некоего подобия MouseOver (как в HTML-страницах) нет. Ответ: Автор ответа: Shade если хочешь дам свою супер кнопку, там много чего есть и это в том числе Вопрос: Глобальный вопрос мультимедиа. Кто знает как можно сделать гистограмму громкости звука разных частот, как в Winamp, желательно использовать звук идущий на звуковой, а не только от проигрываемого файла. Если есть пример можете кинуть на E-mail. Ответ: Автор ответа: Bogdanov Alex Есть готовый OCX, с помощью которого можно создать свой winAMp. Классно получается, сам пробовал. Если кому надо - говорите куда выложить. Вопрос: Пишу программки на VBA. После долгой работы в них появляется сообщение о том, что не хватает ресурсов для перерисовки экрана. В чем проблема? И как ее исправить? Ответ: Автор ответа: ]CBK[CRaSH Скорее всего ты устанавливаеш переменные с помощью функции set XXX= XXX и не очищяеш память Set XXX=nothing. Если ты посреди работы программы остановиш ее то все переменные останутся в памяти, то просто выпуби VBA и запусти его снова Вопрос: Как сделать так чтобы программа находила определ?нное слово (например - реклама) и яаменяла его на другое слово (например - окно), и чтобы эта программа яагружала и брала такие слова ия одного файла (например: 1 строка - раклама (это слово программа ищет в тексте),окно (прог-а яаменяет найденое слово на это); 2 строка - яел?ный,красный и т. д.) Если можно, пример!!! Ответ: Автор ответа: Романьков В Простенькая функция написанная в бытность перевода программ в FoxPro под Access. Разобраться не сложно. Встречный вопрос. Знакомы ли библиотеки, которые понимают команда FoxPro 2.6 Знаю, что есть, но где? Public Static Function StrTrans(String1 As String, String2 As String, String3 As String) ' функция адекватна функции FoxPro strtrans() ' заменяет в String1 текст String2 на String3 Dim ChastStrFest As String, ChastStrSecond As String, pozStr As Long UpdateString: pozStr = InStr(String1, String2) If pozStr <> 0 Then If InStr(String1, String2) = 1 Then ChastStrFest = "" ElseIf InStr(String1, String2) > 1 Then ChastStrFest = Left(String1, InStr(String1, String2) - 1) Else ChastStrFest = "" End If 'If ChastStrFest <> "" Then If InStr(String1, String2) > 0 Then ChastStrSecond = Mid(String1, InStr(String1, String2) + Len(String2), Len(String1) - (InStr(String1, String2) + Len(String2)) + 1) Else ChastStrSecond = String1 End If String1 = ChastStrFest + String3 + ChastStrSecond End If 'End If If InStr(String3, String2) > 0 Then pozStr = pozStr + InStr(String3, String2) - 1 If InStr(String1, String2) > pozStr And InStr(String1, String2) <> 0 Then GoTo UpdateString StrTrans = String1 End Function Вопрос: Как сделать так чтобы программа находила определ?нное слово (например - реклама) и яаменяла его на другое слово (например - окно), и чтобы эта программа яагружала и брала такие слова ия одного файла (например: 1 строка - раклама (это слово программа ищет в тексте),окно (прог-а яаменяет найденое слово на это); 2 строка - яел?ный,красный и т. д.) Если можно, пример!!! Ответ: Автор ответа: Bogdanov Alex Function ChangeString(Text, Find, ChangeTo) 'Находит в Text Find и меняет Finde на ChangeTo Dim i As Long, T, l As Long T = Text l = Len(Find) Do i = InStr(T, Find) If i = 0 Then Exit Do T = Left(T, i - 1) & ChangeTo & Mid(T, i + l) Loop ChangeString = T End Function Вопрос: Люди у кого есть контрол и инфа для того чтобы сделать кросивый интерфейс (типа winAmp) пришлите плиЗЗ Прим. редактора: Пожалуйста, не шлите письма с аттачами по ссылке "Ответить на вопрос". Все письма с аттачами в рассылку не попадают. Ответ: Автор ответа: Shade У меня есть классная кнопка собственного производства - когда я ее зделал, ни один проэкт не обходится без нее если хочешь могу дать пиши сюда 2563813@goldmail.ru Вопрос: Как программно открыть http-адрес в броуяере по умолчанию и соядать новое письмо в почтовой прогамме по умолчанию (то есть чтоб работало и для Outlook Express, и для The Bat! - смотря у какого какая). Ответ: Автор ответа: Bogdanov Alex После этого откроется стандартный диалог отправки письма по адресу. Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long ShellExecute Me.hWnd, "Open", "mailto:rouch@mail.ru", "", "", 1 Второй вариант: ShellExecute Me.hWnd, "Open", "www.rouch.fatal.ru", "", "", 1 Вопрос: Подскажите плиз адрес сайта где можно скачать прогу, которая делает так, чтобы не нужно было таскать вместе с exe-шкой VB библиотеки (говорят такая есть) А еще было бы не плохо скачать гне нибудь OCX для проигрывания Mp3 музыки Ответ: Автор ответа: ]CBK[CRaSH Такая программа ЕСТЬ!!!!!!!!!!!!!!!!!!!!!!! Называется она Fusion от BitArts качай но ОБЯЗАТЕЛЬНО КРЯК не забудь Вопрос: Как сделать так, чтобы в определённой папке имена всех файлов были в нижнем регистре. Ответ: Автор ответа: Bogdanov Alex Смотря что именно тебе надо. Например FAR может стандартно преобразовать имена файлов в нижний регистр. А ты сам можешь написать прогу, которая приводит имена файлов и папок к нижнему регистру. Для этого используй: File = DIR (Path & "\*.*",vbDirectory + vbHidden + vbSystem) А затем в зависимости от того что это файл или папка переименуй его(ее) If GetAttr(File) And vbDirectory Then ... используй: NewName = LCase (File) для приведения имени файла к нижнему регистру. P.S. Можно воспользоваться FSO (File System Object). Вопрос: При строительстве DLL на VB Можно укаяать совместимость Не совместимый Совместимый проект Двоичная совместимость Что это яначит ? Ответ: Автор ответа: Zoubar Serguey Установка параметров совместимости необходима при выпуске новых версий уже реализованных и распространенных компонентов ActiveX. Вот как эти установки описаны в книге "Visual Basic 6 Desctop" Понятие совместимость версий позволяет создавать компоненты, интерфейсы которжых отличаются от интерфейсов предыдущих версий тех же компонентов, с учетом того обстоятельства, что старым клиентам по-прежнему нужны старые интерфейсы. Различаются три уровня совместимости версий: - Версии идентичны. Интефейсы полностью совпадают. Реализация процедур могла измениться, но на клиентах это никак не отражается. - Версии совместимы. Были добавлены новые интерфейсы (объекты, методы и т.п.), однако интерфейсы, суцествовавшие ранее, остались неизменными. Старые клиенты смогут работать с новыми компонентами, но не сумеют воспользоваться преимуществами новых интерфейсов. - Версии несовместимы. Хотя бы один элемент интерфейса был изменен или перемещен. Клиенты, написанные для работы со старыми версиями компонента, не смогут пользоваться его новой версией. В любом случае следует увеличить номер версии на квладке Make (Сборка) диалогового окна Project Properties (Свойства проекта). На вкладке Component диалогового окна Project Properties предоставляются следующие значения параметров Virsion Compatibility (Совместимость версий): - No Compatibility (Отсутствие совместимости). Этот вариант означает несовместимость версий компонента. Старые версии программ не смогут пользоваться этим компонентом. - Project Compatibility (Совместимость на уровне проектов). Данный вариант означает, что версии компонента совместимы. Обычно используется для новых компонентов, хотя этот параметр следует устанавливать также и при создании несовместимой с прежними версии старого программного продукта. (Установка этого переключателя вызывает при компиляции генерацию нового идентификатора GUID.) - Binary Compatibility (Двоичная совместимость). Этот вариант заставляет VB извлечь все интерфейсы из первоначальной версии и сравнить их с интрефейсами текущей версии, после чего VB создает либо идентичную, либо совместимую версию компонента. Использование данного варианта позволяет старым программам работать с новым компонентом, даже если интерфейс изменился. Вопрос: (VB.Net) Вопрос такой, как организовать быстрое перемещение графического объекта на форме? К примеру бегущая строка, катящиеся фигурки, и т.д. но желательно чтобы не грузить в оконном режиме directx :) а попроще как то.. Ответ: Автор ответа: Renat Rahimov Воспользуйся API : Private Declare Function BitBlt _ Lib "gdi32" (ByVal hDestDC As Long, _ ByVal x As Long, ByVal y As Long, _ ByVal nWidth As Long, ByVal nHeight As Long, _ ByVal hSrcDC As Long, _ ByVal xSrc As Long, ByVal ySrc As Long, _ ByVal dwRop As Long) As Long Вопрос: Не подскажет ли кто как написать программку на VB, чтобы она разрывала модемное соединение, если скорость слишком низкая? (например, разорвать при сединении меньше 33600 kbs). Ответ: Автор ответа: Shade на сколько я знаю, где-то в настройках модема есть такая вещь как "дополнительные команды инициализации" и если у тебя хороший модем, то у него обязательно есть команда, которая не позволяет устанавливать связь если скорость ниже заданнной у меня для 3Com US Robotics 56k - нужно писать так: AT&Un, где n - число от 0 до 38 для разных значений скорости например: AT&U6 - не меньше чем 9600 AT&U10 - не меньше чем 19200 AT&U13 - не меньше чем 26400 AT&U16 - не меньше чем 33600 AT&U25 - не меньше чем 38666 AT&U29 - не меньше чем 44000 AT&U34 - не меньше чем 50666 AT&U38 - не меньше чем 56000 Можете заполнить эту форму, либо отослать вопрос СЮДА Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта. |
||||||||||||||||||
Выпуск подготовили: |
Сурменок Павел |