VBNet
VBMania
Голосование: Ссылки: |
Господа!!! читайте MSDN!!! Несколько слов от автора:
Свежий выпуск. Извините, что задержался...
Читайте! Содержание выпуска
Citycat by Email Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое. Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru. наверх Новости сайта VBNet
Последние 20 тем форума на VBNet.Ru: 05:43 / 9 ноя. Кто знает! | Хитов: 1 | Ответов: 0 03:29 / 9 ноя. Частота обновления таблицы в EXCEL | Хитов: 0 | Ответов: 0 16:07 / 8 ноя. Клавиатурный шпион | Хитов: 16 | Ответов: 1 15:10 / 8 ноя. ListView&Win32Api | Хитов: 5 | Ответов: 0 14:53 / 8 ноя. ..::Заставка ::.. | Хитов: 44 | Ответов: 7 13:33 / 8 ноя. Как поймть ошибку при выполнении ADODC.Recordes... | Хитов: 7 | Ответов: 0 11:58 / 8 ноя. Самоудаление | Хитов: 20 | Ответов: 1 10:59 / 8 ноя. плеер | Хитов: 11 | Ответов: 0 10:55 / 8 ноя. Словари | Хитов: 17 | Ответов: 1 10:53 / 8 ноя. Сочетание клавиш | Хитов: 13 | Ответов: 1 07:56 / 8 ноя. Вечный вопрос: анализатор звука | Хитов: 132 | Ответов: 3 07:32 / 8 ноя. Новая вкладка в свойствах файла | Хитов: 24 | Ответов: 1 06:18 / 8 ноя. ASTON 1.9 | Хитов: 12 | Ответов: 1 04:45 / 8 ноя. Новое сообщение без темы | Хитов: 1 | Ответов: 0 03:03 / 8 ноя. 5 иконок | Хитов: 44 | Ответов: 7 02:42 / 8 ноя. помогите с USB | Хитов: 13 | Ответов: 1 02:09 / 8 ноя. Ocherednoi vopros:) | Хитов: 30 | Ответов: 4 01:13 / 8 ноя. Удаление программы из таска в ВИН 2к\ХР | Хитов: 27 | Ответов: 7 01:13 / 8 ноя. Vkljuchenie kompa | Хитов: 33 | Ответов: 7 00:30 / 8 ноя. Новое сообщение без темы | Хитов: 3 | Ответов: 0 Последние поступления в Библиотеку кодов: Как получить имена всех дисков (60) наверх Новости сайта MSDN наверх Новости сайта GotdotNet Новые статьи:
наверх Новости сайта dotSite Новые статьи: Новые примеры: наверх Один момент из жизни форума: TreeView в VB.NET Вопрос: Автор вопроса: .COM Есть дерево: Предприятие1 ...........Выручка ...........Затраты ...........Адрес ...........и т.д. Предприятие2 ...........Выручка ...........Затраты ...........Адрес ...........и т.д. Предприятие N ...........и т.д. Короче, предприятий может быть сколько угодно. Свойство Text у всех дочерних нод одинаковое (т.е. по этому свойству невозможно однозначно идентифицировать дочернюю ноду). В свойстве Tag для родительской ноды (Предприятие) записываются названия таблиц в базе данных. Таким образом, предположим получаем такую ситуацию...Юзер развернув несколько веток Предприятие1, Предприятие6, Предприятие28, думает чего бы ему посмотреть, а потом щелкает по какой-либо дочерней ноде. А вот и собственно вопросы: Как, блин, определить к какому родителю относится дочерняя нода, чтоб соответственно считать ее Tag и отправить запрос в базу...? Как программно найти/выделить определенную ноду (т.е. есть ли у каждой ноды уникальный идентификатор с точки зрения всего контрола независимо от того родительская она или дочерняя)? P.S. Теоретически (хоть и маловероятно) может случится ситуация когда и наименования родителей (Предприятия) будут одинаковыми, поэтому не подходит такой вариант как считать из дочерней ноды путь и вытащить оттуда наименование родителя...В идеале хотелось бы иметь уникальный идентификатор для каждой ноды в контроле. (еще один вопрос) Ответы: Автор: Svetlana Dim pr1 As TreeNode Dim pr2 As TreeNode pr1 = New TreeNode("predpr1") pr2 = New TreeNode("predpr2") Private Sub TreeView1_AfterSelect(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect If e.Node.Parent Is pr1 Then 'ВЫбрали "predpr1" Select Case e.Node.Index Case 0 Case 1 End Select End If If e.Node.Parent Is pr2 Then 'ВЫбрали "predpr2" Select Case e.Node.Index Case 0 Case 1 End Select End If End Sub наверх Вопрос/Ответ Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы. Вопросы:Автор вопроса: Blackday9@mail2000.ru Ответ ожидается по этому адресу Как в VBA создать DLL? Автор вопроса: Константин Ответ ожидается по этому адресу Друзья! Не могу докопаться до причины! У меня сетка TrueDBGrid подключена к базе через Data-элемент (используется DAO). Она добавляет записи, удаляет, обновляет. Если я делаю отдельно запрос к той же базе через коннект к ней и обыкновенный SQL-запрос (при этом сетка остается подключенной), то не всегда только что введенные записи отображаются в этом стороннем запросе. Т.е. как бы должно пройти время между только что введенными данными и созданием запроса со стороны, а моментально эти данные не попадают в базу. Никакие средства не помогают устранить эту проблему Автор вопроса: Sergei Ответ ожидается по этому адресу Как запретить пользователю изменять размеры стандартной MDI формы (640*480) и разворачивать ее на весь экран? Изменять размеры после "ресайза" не предлагать. Автор вопроса: Мартынова Н. В. Ответ ожидается по этому адресу На форме есть CommandButton1 и Label1. Необходимо добавить CommandButton2 при нажатии CommandButton1: Dim Mycmd as Control Private Sub CommandButton1_Click() Set Mycmd = Controls.Add("MSForms.CommandButton.1") ', CommandButton2, Visible) Mycmd.Left = 18 Mycmd.Top = 150 Mycmd.Width = 175 Mycmd.Height = 20 Mycmd.Caption = "This is fun." & Mycmd.Name End Sub Private Sub UserForm_AddControl(ByVal Control As _ MSForms.Control) Label1.Caption = "Control was Added." End Sub Что и как исправить в программе (выдает: несоответствие типов)? Автор вопроса: Леонов А. Ответ ожидается по этому адресу Как мне можно определить версию Bios? Автор вопроса: Anakonda Ответ ожидается по этому адресу А как программно сделать моё окно активным? Me.SetFocus - не помогает... Пробовал АПИ GetFocus, SetFocus, SetActiveWindow - тоже самое... Может кто подскажет? Автор вопроса: Роганов Владимир Ответ ожидается по этому адресу Как создавать заставки? Если можно с примерчиком. Ответы: Вопрос: Есть форма на ней TextBox и Кнопка. В TextBox вводим число, например, "1.3", как сделать, чтоб при нажатии на кнопку "1.3" изменился на "1,3" и внеся в TextBox? Ответ: Автор ответа: C...R...a...S...H textbox.text=replace(textbox.text,".",",") Вопрос: Я написал незамысловатую программу на VB .Net (у меня стоит VS .Net 2003) мне надо, что бы она работала под любой Windows. Как это сделать? Ответ: Автор ответа: Alexander Переписать программу, например, под VB 6. .NET - специально только для современных "замысловатых" NT-клонов. Вопрос: Как, с помощью VB6, отправить файл (через интернет) с удалённого компьютора, на мой. Желательно, чтобы на другом компьюторе передача файла была незаметной. Ответ: Автор ответа: Alexander Посадить за другой "компьютотор" лоха, которого лично обучить, которому лично передать и настроить свою же программу на указанную функцию и указанный адрес. Иначе такого рода "вирусы" отлавливаются а) антивирусом, б) файерволом. У меня на компьютере, как и у моих приятелей такие штуки стоят у всех. У меня eTrust EZ Antivirus + Zonealarm. Сейчас, "после 11-го сентября" без таких презервативов мало-мальски обученный или ведомый опытным куратором пользователь выходить в интернет просто не должен, о чём я рассказываю всем своим - да и чужим тоже - абонентам. Тем более, Win XP уже содержит в себе файервол, который активизируется всего-то галочкой "защитить моё интернет-соединение". Вопрос: Как сделать так, чтобы при нажатии на кнопку программа копировала сама себя в другую директорию? И из новой директории яапускала себя. Ответ: Автор ответа: C...R...a...S...H filecopy "откуда и что", "куда" shell "что" Вопрос: Установил пакет исправлений для Win2k - KB823980 (якобы помогает от вируса Blaster). После этого во фрагменте кода ......... Set obExcel = New Excel.Application obExcel.SheetsInNewWorkbook = 1 Set obBook = obExcel.Workbooks.Add ......... на второй строке происходит Automation error. Удаляю пакет обновлений - и всё работает, как часы. Как установить пакет обновлений и чтобы работал приведенный фрагмент кода? Ответ: Автор ответа: Роман У меня стоит этот пакет, а ошибки такой не выдает. Вопрос: Как в VB отсортировать массив чисел? Ответ: Автор ответа: VMJ Держи свежеслеплено: 'Сортировка по возростанию Dim a() As Variant Dim i As Integer Dim j As Integer Dim sWP As Double 'Aey iaiaia a = Array(2, 4, 5, 1, -1, 7, 6) For i = 0 To UBound(a) For j = i To UBound(a) If a(j) < a(i) Then sWP = a(i) a(i) = a(j) a(j) = sWP End If Next j Next i For i = 0 To UBound(a) Debug.Print i; "|"; a(i) Next i Ответ: Автор ответа: Данила Предлагаю следующее: 'Добавь на форму Список1, Комманда1, Комманда2, Комманда3 Private Sub Комманда1_Click() Список1.Clear For i = 0 To 1000 Список1.AddItem Rnd(100) * 100 Next End Sub Private Sub Комманда2_Click() Dim флаг As Boolean 'флаг показывает, были изменения или нет Do флаг = False 'если изменений небыло, то сортировка закончина For i = 0 To Список1.ListCount - 2 'проходим по всему списку If CDec(Список1.List(i)) < CDec(Список1.List(i + 1)) Then 'само сравнение a = Список1.List(i + 1) 'дальше идут действия Список1.RemoveItem (i + 1) 'если числа нужно поменять местами Список1.AddItem a, i флаг = True 'фиксируем изменение End If Next DoEvents 'чтоб успевало отоблазиться Loop While (флаг = True) 'проверяем флаг MsgBox "Готово!" End Sub Private Sub Комманда3_Click() i = 0 'указывает строку, на которой остановились Do Until i >= Список1.ListCount Max = CDec(Список1.List(i)) 'содержит максимально-найденное число Index = i 'содержит его положение For j = i To Список1.ListCount - 1 'поиск максимального числа по всему списку If CDec(Список1.List(j)) > Max Then Max = CDec(Список1.List(j)) Index = j End If Next If i <> Index Then a = Список1.List(Index) 'дальше идут действия Список1.RemoveItem (Index) 'если числа нужно поменять местами Список1.AddItem a, i End If i = i + 1 DoEvents 'чтоб успевало отоблазиться Loop MsgBox "Готово!" End Sub Вопрос: Как средствами VB зарегистрировать в Windows библиотеку DLL и проверить, что она зарегистрирована? Ответ: Автор ответа: Сан Саныч Можно использовать такую ф-ию: Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long Private Declare Function CreateThread Lib "kernel32" (anyThread As Any, ByVal lngSize As Long, ByVal lngStart As Long, ByVal lngValue As Long, ByVal lngFlags As Long, lngThread As Long) As Long Private Declare Function GetProcAddress Lib "kernel32" (ByVal lngModule As Long, ByVal strName As String) As Long Private Declare Function FreeLibrary Lib "kernel32" (ByVal lngModule As Long) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal lngHandle As Long) As Long Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal lngHandle As Long, ByVal lngTime As Long) As Long Public Sub Reg(ByVal DLLforRegistre As String, Optional ByVal RegorUnreg As Boolean = True) Dim hNd As Long, HnnD As Long HnnD = LoadLibraryA(DLLforRegistre) hNd = CreateThread(ByVal 0, 0, ByVal GetProcAddress(HnnD, IIf(RegorUnreg, "DllRegisterServer", "DllUnregisterServer")), ByVal 0, 0, 0) WaitForSingleObject hNd, 10000 CloseHandle hNd FreeLibrary HnnD End Sub Ппроверяем зарегистрирована библиотека или нет: Public Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long Public Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long Public Function isDLLReg(ByVal TM As String)As Boolean Dim hModule As Long hModule = LoadLibrary(TM) 'attempt to load DLL If hModule > 32 Then FreeLibrary hModule 'decrement the DLL usage counter isDLLReg = True 'Return true Else isDLLReg = False 'Return False End If End Function Ответ: Автор ответа: Артем Кривокрисенко Зарегестрировать - Shell "RegSvr PathToDLL". Вопрос: Для программирования баз данных Майкрософт предлагает вб-программистам такие гриды как: MSFlexGrid MSHFlexGrid Grid К сожалению ни один из них (по многим причинам) меня не устраивает (они мне кажутся какими-то не представительными). Я видел много баз данных, где используются очень симпатичные, с невероятными возможностями, гриды. Будьте добры, подскажите, где можно скачать или приобрести, например, такой грид как в программе Телефонный справочник (Semantica)? Ответ: Автор ответа: Sergey Раньше тоже мучала такая же проблема. Сейчас уже проблем нет: или VSFlexGrid 8.0 или TrueDBGrid 7.0. Возможностей море. Если програмишь под .NET, то у Infragistics много красивых таблиц. Вопрос: Прошу прошения, если вопросы покажутся банальными. Просто я только начинаю изучать VB. Как сделать так, чтобы объекты Сombo в которых отображаются, шрифт и размер шрифта работали так же как и в Worde. Т.Е. если ставлю курсор на любое место в тексте, а в объектах Combo должно отражаться использованный шрифт и размер шрифта. Ответ: Автор ответа: Иванченко Максим Для того, чтоб отобразить в ComboBox'e размер шрифта и тип шрифта, надо использовать RichTextBox и два ComboBox'a. Например: Private Sub RichTextBox_Click() Combo1.Text = RichTextBox1.SelFontName 'Показывает тип шрифта Combo2.Text = RichTextBox2.SelFontSize 'Показывает размер шрифта End Sub А при перемещения курсора клавиатурой или ввода символов: Private Sub RichTextBox_Change() Combo1.Text = RichTextBox1.SelFontName 'Показывает тип шрифта Combo2.Text = RichTextBox2.SelFontSize 'Показывает размер шрифта End Sub Тут Combo1 и Combo2 - ComboBox'ы, имена могут быть другие, а RichTextBox1 - RichTextBox. Ответ: Автор ответа: Александр Юрьевич Например, чтобы установить название шрифта можно сделать так (код разместить в процедурах Change и Click текстового поля): ... Combo1.Text = Text1.FontName ... Соответственно для получения размера шрифта используй свойство FontSize Ответ: Автор ответа: Vladimir [PRC] Предполагается, что в cmdFont загружены имена всех шрифтов в системе, а в cmdSize все размеры шрифтов, а текст хранится в txtText типа RichTextBox. Для обычного TextBox меняются .Font.Size на .FontSize и Font.Name на .FontName. Обрабатываются изменение положения курсора в тексте: Click, DoubleClick, KeyDowm Private Sub txtText_KeyDown(KeyCode As Integer, Shift As Integer) ' Можно было бы отслеживать нажатие именно курсорных клавиш, но проще каждый раз вызывать подпрограмму ' смены имени шрифта и размера. txtText_Click End Sub Private Sub txtText_DoubleClick() txtText_Click End Sub Private Sub txtText_Click() Dim sFont As String, iSize As Integer Dim i As Integer sFont = txtText.Font.Name ' Получение названия шрифта For i = 0 To cmdFont.ListCount - 1 If sFont = cmdFont.List(i) Then GoTo ExitFont 'Поиск названия шрифта Next i ' На такой редкий случай, что шрифт был добавлен в систему после запуска программы и именно он используется ' добавляем в ListBox новое название и устанавливаем индекс cmdFont.AddItem sFont i = cmdFont.ListCount - 1 ExitFont: ' Шрифт найден ' Устанавливаем индекс на шрифт cmdFont.ListIndex = i ' Для размера шрифта поступаем точно также iSize = txtText.Font.Size For i = 0 To cmdSize.ListCount - 1 If iSize = cmdSize.List(i) Then GoTo ExitSize Next i cmdSize.AddItem iSize i = cmdSize.ListCount - 1 ExitSize: cmdSize.ListIndex = i End Sub И на всякий случай, получение всех шрифтов установленных в системе: Dim i As Integer For i = 0 To Screen.FontCount - 1 cmdFont.AddItem Screen.Fonts(i) Next i cmdFont.ListIndex = 0 Вопрос: Основная форма моей программы должна находится у правого края экрана, в таймере я пишу: Me.Left = Screen.Width - Me.Width. Но когда я запускаю какую-нибудь игрушку/прогу, работающую в полноэкранном режиме с расширением меньше моего, она опять настраивается по краю экрана, но вот когда я вырубаю эту игрушку/прогу форма обратно уже не идёт, стоит где-то ближе к середине. Как это исправить? Ответ: Автор ответа: Роман Эту строку нужно писать в свойстве Resize или GotFocus формы, а вы, наверное, в Load. Ответ: Автор ответа: Sergey Вся проблема в том, что значение св-в Screen.Width и Screen.Height вычитывается во время запуска программы и потом не меняется даже если разрешение изменилось. Для таких случаев нужно юзать API.GetSystemMetrics с параметрами SM_CXFULLSCREEN, SM_CYFULLSCREEN Ответ: Автор ответа: Alexander Интересно, а обработка в Form_Activate не помогает? Вопрос: Пишу курсовую работу по "Базам данных" нужны справки, коды. Если у кого есть готовые коды по созданию базы данных для библиотеки, вышлите, очень прошу. Ответ: Автор ответа: Alexander Готовых библиотек много. Полагаю, будет дано много адресов. Для ответа на вопросы по БД я высоко ценю, например, http://vbaccelerator.com/. Он на американском языке. Вопрос: Имеется ряд компьютеров в локальной сети. На одном из них находится некая программа. Каким образом можно с этого компа запустить эту прогу на любом компе в сети? Ответ: Автор ответа: Alexander Универсального рецепта не дам. Зависит от архитектуры конкретной программы. Если вы знаете, какие COM-ресурсы ей нужны, то обеспечьте доступ к этим ресурсам. Если же ей нужны DLL, то вопрос усложняется. Зависит от характеристик затребованного компонента. Примерно также обстоят дела с различными ActiveX. Возможно, в скором будущем программа будет продаваться в виде какой-либо электронной коробочки. И тогда не нужно ломать голову: взял и купил, если есть за что и есть для чего :-) Т.е. более-менее проблема легче решается, если вы сами написали эту программу и знаете, как она работает:) Можете заполнить эту форму, либо отослать вопрос СЮДА Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта. |
||
Выпуск подготовили: |
Сурменок Павел |