VBNet
VBMania
Голосование: Доска почёта: Sergey Y. Tkachev Кононенко Роман Kirill Sergey Sapozhnikov Sobic Ссылки: |
Господа!!! читайте MSDN!!! Несколько слов от автора:
Я немного модернизировал программу, работающую над разделом Вопрос/Ответ. Теперь ответы на один вопрос сгруппированы.
Читайте! Содержание выпуска
Книги
Остальные книги о VB можно найти здесь. наверх Citycat by Email Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое. Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru. наверх Новости сайта VBNet
Последние 20 тем форума на VBNet.Ru: 14:30 / 25 ноя. Хостинг | Хитов: 10 | Ответов: 1 14:28 / 25 ноя. Как сделать ссылку на сайт в программе? | Хитов: 4 | Ответов: 1 12:43 / 25 ноя. как можно выключить компьтер по сети ? | Хитов: 2 | Ответов: 0 00:33 / 25 ноя. Как выбрать из базы данных неповторяющиеся записи? | Хитов: 24 | Ответов: 2 22:20 / 24 ноя. Удаление из массива | Хитов: 19 | Ответов: 4 20:33 / 24 ноя. Да та что в Пуске! | Хитов: 23 | Ответов: 1 19:59 / 24 ноя. Кто скажет... | Хитов: 20 | Ответов: 0 14:20 / 24 ноя. Как связать 2 recordset-а? | Хитов: 11 | Ответов: 0 12:50 / 24 ноя. КАк скопировать файл? и Как определить папку а... | Хитов: 23 | Ответов: 2 12:03 / 24 ноя. Работы с другими приложениями. | Хитов: 17 | Ответов: 0 00:21 / 24 ноя. HELP!!!!! | Хитов: 20 | Ответов: 0 23:47 / 23 ноя. FindExecutable, ShellExecute | Хитов: 20 | Ответов: 3 22:14 / 23 ноя. Мозги уже опухли, и думать отказываются. | Хитов: 38 | Ответов: 1 22:07 / 23 ноя. Cd-Rom | Хитов: 23 | Ответов: 2 10:27 / 23 ноя. PictureBox+прорисовка ОГРОМНЫХ размеров | Хитов: 17 | Ответов: 2 09:23 / 23 ноя. Админы! Что-то у Вас с закачакой примеров не то... | Хитов: 24 | Ответов: 3 09:14 / 23 ноя. опять Winsock | Хитов: 11 | Ответов: 0 08:58 / 23 ноя. 1.Help!- Microsoft Agent Editor? | Хитов: 13 | Ответов: 0 05:41 / 23 ноя. Возможно ли программно открыть файл? | Хитов: 40 | Ответов: 3 05:29 / 23 ноя. Convert TControl to *.OCX | Хитов: 20 | Ответов: 3 Последние поступления в Библиотеку кодов: наверх Новости сайта VBMania наверх Новости сайта Азбука VB
наверх Доска объявлений Ищу телеработу.
наверх Мои программы BalloonMessage for MS Agent BalloonMessage for Microsoft Agent реализует диалог программы с
пользователем, используя при этом технологию Microsoft Agent. OCX реализует три
типа диалоговых окон: InputBox, MsgBox и MsgLabels. Авторы: Шатрыкин Иван и Павел Сурменок. наверх Вопрос/Ответ Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы. Вопросы:Автор вопроса: Vasilenko Denis Leonidovich Ответ ожидается по этому адресу Есть у меня программа которая рассчитывает кое-какие параметры для босса. Как зделать что бы данные посылались по E-mail 'у без использования стандартных почтовых клиентов, таких как Outlook Express или the bat. Т.е если они у меня не установленны. Автор вопроса: Denis Ответ ожидается по этому адресу При получении фокуса на кнопке прорисовывается прямоугольник (FocusRect) Как избавиться от него (слышал вроде через WindowsProc) Если можно поподробней Автор вопроса: -=CBK=-CRaSH Ответ ожидается по этому адресу Люди как записать звуки с микрофона и хранить их в переменной, а потом воспроизводить. Автор вопроса: Данила Ответ ожидается по этому адресу Вопросы такие: 1) Как регистрировать библиотеки в реестре. Меня не интересует "regsvr32.exe" и пр., только программный код. Как подбирается универсальный номер (это самое важное), что прописывается внутрь этого ключа и т.д. (грамотный текстовик по реестру приветствуетсся) 2) Я написал библиотеку и OCX, и зараза VB их автоматом прописал в реестре. Теперь в раздумье, будут ли они работать на другой машине (с голыми 98(5)-и окнами). Задумывалось поместить библиотеку и OCX в папку с программой, нигде их не регистрировать и вызывать их прямо из этой папки. Автор вопроса: s-in Ответ ожидается по этому адресу Как добавить иконку в ListBox? Хотелось бы вывести список запущенных процессов в ListBox и возле показать иконку процесса. Знаю что можно легко сделасть это в ListView, но не хочется таскать громадный ocx. Ответы: Вопрос: Как в VBA Excel импортировать формы, модули и листы в другую книгу( только в неё, а не во все )? Можно ли создать библиотеку собственных модулей и форм и пользоваться ей в других книгах? Ответ: Автор ответа: Zoubar Serguey Для сохранения формы или модуля в отдельном файле необходимо щелкнуть по нужной форме или модулю в Project Explorer правой кнопкой мыши и в контекстном меню выбрать Export file... Соответственно для вставки ранее сохраненного модуля или формы необходимо в том же контекстном меню выбрать опцию Import file... Отдельно листы сохранять нельзя, но можно сохранять код, который к ним относится. Вопрос: Товарищи!! Может кто знает как в DirectDraw7 сделать объекта полупрозрачными???????? Ответ: Автор ответа: -=CBK=-CRaSH Там есть параметр alpha ставь его 0.5 Вопрос: У меня VB60. Почему в его собственном редакторе не работает колесико у скролинговой мыши? Везде работает а в VB нет. Мышь обыкновенная Genius NetScroll. Драйвера стандартные Windows. Установлена Win98. Как можно решить? Или никак? А? Ответ: Автор ответа: Андрей Никитин Попробуй поставить драйвера от поставщика (в трее появится иконка мыши с бегающими глазками). Скроллинг заработает во всех окнах, имеющих линейки прокрутки. Ответ: Автор ответа: Мошкин Про драйвер мыши да, у меня тоже так было. Когда мышь с колесом - то в Виндах и офисе колесо работает, а в байсике нет. Для этого надо поставить родные драйвера для мыши. Обычно они с ней продаются. Тогда все станет нармально и в визуал байсике. Сам тоже мучился, привыкаешь ведь в офисе колесом катать документ. Ответ: Автор ответа: Tibor Да, была такая проюлема, попробуй поставить те дрова что с крысой подовались должно получиться Ответ: Автор ответа: Rutshtein Alex Не знаю поможет тебе мой ответ или нет, но у меня мышь Logitech и прокрутка работает. А вообще, насчет мышек, то все продавцы рекомендуют брать Logitech, ну а если нет на нее денег, то взамен идеальный вариант - Mitsumi. Вопрос: Private Declare Function RasEnumConnections Lib "RasApi32.dll" Alias "RasEnumConnectionsA" (lpRasCon As Any, lpcb As Long, lpcConnections As Long) As Long Private Declare Function RasGetConnectStatus Lib "RasApi32.dll" Alias "RasGetConnectStatusA" (ByVal hRasCon As Long, lpStatus As Any) As Long Private Const RAS95_MaxEntryName = 256 Private Const RAS95_MaxDeviceType = 16 Private Const RAS95_MaxDeviceName = 32 Private Type RASCONN95 dwSize As Long hRasCon As Long szEntryName(RAS95_MaxEntryName) As Byte szDeviceType(RAS95_MaxDeviceType) As Byte szDeviceName(RAS95_MaxDeviceName) As Byte End Type Private Type RASCONNSTATUS95 dwSize As Long RasConnState As Long dwError As Long szDeviceType(RAS95_MaxDeviceType) As Byte szDeviceName(RAS95_MaxDeviceName) As Byte End Type Public Function IsConnected() As Boolean Dim TRasCon(255) As RASCONN95 Dim lg As Long Dim lpcon As Long Dim RetVal As Long Dim Tstatus As RASCONNSTATUS95 TRasCon(0).dwSize = 412 lg = 256 * TRasCon(0).dwSize RetVal = RasEnumConnections(TRasCon(0), lg, lpcon) Tstatus.dwSize = 160 RetVal = RasGetConnectStatus(TRasCon(0).hRasCon, Tstatus) If Tstatus.RasConnState = &H2000 Then IsConnected = True Else IsConnected = False End If End Function Private Sub Form_Load() MsgBox IsConnected() End Sub Эта программа проверяет есть свяяь с инетом или нет Когда программу яапускаю под Win98 все рабоиает нормально, а когда под Win2000 Происходит крах программы Вопросы: 1.Почему ? 2.Какими функциями можно яаменить их чтобы работали под Win2000 3.Может кто янает как еще можно проверить есть свьяь с инетом или нет. Ответ: Автор ответа: Eugene У меня работает в Windows XP. Private Declare Function RasEnumConnections Lib "RasApi32.dll" Alias "RasEnumConnectionsA" (lpRasCon As Any, lpcb As Long, lpcConnections As Long) As Long Private Declare Function RasGetConnectStatus Lib "RasApi32.dll" Alias "RasGetConnectStatusA" (ByVal hRasCon As Long, lpStatus As Any) As Long Private Const RAS95_MaxEntryName = 256 Private Const RAS95_MaxDeviceType = 16 Private Const RAS95_MaxDeviceName = 32 Private Type RASCONN95 dwSize As Long hRasCon As Long szEntryName(RAS95_MaxEntryName) As Byte szDeviceType(RAS95_MaxDeviceType) As Byte szDeviceName(RAS95_MaxDeviceName) As Byte End Type Private Type RASCONNSTATUS95 dwSize As Long RasConnState As Long dwError As Long szDeviceType(RAS95_MaxDeviceType) As Byte szDeviceName(RAS95_MaxDeviceName) As Byte End Type '---------------------------------------------- 'А вот и сама функция If IsConnected = True Then...End If Public Function IsConnected() As Boolean On Error Resume Next Dim TRasCon(255) As RASCONN95 Dim lg As Long Dim lpcon As Long Dim retVal As Long Dim Tstatus As RASCONNSTATUS95 TRasCon(0).dwSize = 412 lg = 256 * TRasCon(0).dwSize retVal = RasEnumConnections(TRasCon(0), lg, lpcon) Tstatus.dwSize = 160 retVal = RasGetConnectStatus(TRasCon(0).hRasCon, Tstatus) If Tstatus.RasConnState = &H2000 Then IsConnected = True Else IsConnected = False End If End Function Ответ: Автор ответа: AVIX У меня win2000 и этот код работает: Private Declare Function InternetGetConnectedStateEx Lib "wininet.dll" Alias "InternetGetConnectedStateExA" (ByRef lpdwFlags As Long, ByVal lpszConnectionName_ As String, ByVal dwNameLen As Long, ByVal dwReserved As Long) As Long 'Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef lpdwFlags As_ Long, ByVal dwReserved As Long) As Long 'this function used with IE4 Private Sub Check(Optional ByRef ConnectionInfo As Long, Optional ByRef ConnectionName As String) Dim dwFlags As Long Dim NameBuf As String Dim lPos As Long NameBuf = String$(513, 0) If InternetGetConnectedStateEx(dwFlags, NameBuf, 512, 0&) Then lPos = InStr(NameBuf, vbNullChar) If lPos > 0 Then ConnectionName = Left$(NameBuf, lPos - 1) Else ConnectionName = "" End If MsgBox "Есть связь" Else MsgBox "Нет связи" End If End Sub Private Sub Form_Load() Call Check End Sub Вопрос: А все таки как нарисовать треугольник по трем точкам. Конкретно мне надо: чтобы на экране нарисовался закрашенный треугольник. Если я буду рисовать его по линиям, то это займет много времени. Ответ: Автор ответа: Tibor используй функцию Line Line (x1,y1) - ( x2, y2) Ответ: Автор ответа: Михаил Я думаю, есть смысл попробовать функции типа Polygon, виндовые. Правда, в какой библиотеке они лежат я не в курсе... Да и лежат ли? Можно библиотеку на С написать :). Ответ: Автор ответа: RaZoom 'Кода много, но работает быстро. 'Рисует треугольник на форме. Если нужен desktop см. GetDesktopWindow, 'GetDC, ReleaseDC Option Explicit Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long Private Declare Function FillRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long) As Long Private Declare Function CreateBrushIndirect Lib "gdi32" (lpLogBrush As LOGBRUSH) As Long Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long Private Type POINTAPI x As Long y As Long End Type Private Type LOGBRUSH lbStyle As Long lbColor As Long lbHatch As Long End Type Const ALTERNATE = 1 Const WINDING = 2 Const BLACKBRUSH = 4 Dim pts(1 To 3) As POINTAPI Dim hwdRgn&, brush As LOGBRUSH, hwdBrush& Private Sub cmd1_Click() pts(1).x = Rnd * frm1.ScaleWidth pts(1).y = Rnd * frm1.ScaleHeight pts(2).x = Rnd * frm1.ScaleWidth pts(2).y = Rnd * frm1.ScaleHeight pts(3).x = Rnd * frm1.ScaleWidth pts(3).y = Rnd * frm1.ScaleHeight brush.lbColor = Val("&HFFF0ff") brush.lbHatch = 0 brush.lbStyle = 0 hwdRgn& = CreatePolygonRgn(pts(1), 3, ALTERNATE) hwdBrush& = CreateBrushIndirect(brush) If hwdRgn& And hwdBrush& Then FillRgn(frm1.hdc, hwdRgn&, hwdBrush&) DeleteObject hwdRgn& DeleteObject hwdBrush& End If End Sub Private Sub Form_Load() frm1.ScaleMode = 3 End Sub Ответ: Автор ответа: P@Ssword Код взят из API-Guide, разберёшся: Private Type COORD x As Long y As Long End Type Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As Any, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long Private Declare Function Polygon Lib "gdi32" (ByVal hdc As Long, lpPoint As Any, ByVal nCount As Long) As Long Private Declare Function FillRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long) As Long Private Declare Function GetStockObject Lib "gdi32" (ByVal nIndex As Long) As Long Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long Const ALTERNATE = 1 ' ALTERNATE and WINDING are Const WINDING = 2 ' constants for FillMode. Const BLACKBRUSH = 4 ' Constant for brush type. Private Sub Form_Paint() 'KPD-Team 1999 'URL: http://www.allapi.net/ 'E-Mail: KPDTeam@Allapi.net Dim poly(1 To 3) As COORD, NumCoords As Long, hBrush As Long, hRgn As Long Me.Cls ' Number of vertices in polygon. NumCoords = 3 ' Set scalemode to pixels to set up points of triangle. Me.ScaleMode = vbPixels ' Assign values to points. poly(1).x = Form1.ScaleWidth / 2 poly(1).y = Form1.ScaleHeight / 2 poly(2).x = Form1.ScaleWidth / 4 poly(2).y = 3 * Form1.ScaleHeight / 4 poly(3).x = 3 * Form1.ScaleWidth / 4 poly(3).y = 3 * Form1.ScaleHeight / 4 ' Polygon function creates unfilled polygon on screen. ' Remark FillRgn statement to see results. Polygon Me.hdc, poly(1), NumCoords ' Gets stock black brush. hBrush = GetStockObject(BLACKBRUSH) ' Creates region to fill with color. hRgn = CreatePolygonRgn(poly(1), NumCoords, ALTERNATE) ' If the creation of the region was successful then color. If hRgn Then FillRgn Me.hdc, hRgn, hBrush DeleteObject hRgn End Sub Private Sub Form_Resize() Form_Paint End Sub Вопрос: Как сделать запрос к двум таблицам, которые храняться в разных базах данных? Ответ: Автор ответа: Sergey Y. Tkachev Это зависит от того, какой СУБД ты пользуешься и при помощи какой технологии доступаешься Например, Для MS Access + DAO можно использовать IN Для MSSQL + ADO можно использовать USE Вопрос: Как отобаяить в listbox имена файлов в укаяаной папки Ответ: Автор ответа: Tibor А FileListBox на что? Ответ: Автор ответа: Данила Используй "FileListBox" Ответ: Автор ответа: Nechaev Sergey Для этого есть специальный контрол - FileListBox Ответ: Автор ответа: P@Ssword Используй стандартный контрол FileListBox Вопрос: Народ непоскажител какие есть типы БД с которымиможно было работать на ВБ, хорошобы чтоб они поддерживали тип данных в котором моглт бы храниться графические файлы. Ответ: Автор ответа: Данила Microsoft DAO (точно держит графику) FoxPro Oracle Ответ: Автор ответа: VMJ Самый тривиальный Access - прекрасно работает с картинками. Ответ: Автор ответа: Ревягин_Алексей стандартный *.MDB тип поля должен быть OLE Вопрос: Может кто подскажет, как сделать звонилку для Инета, восстанавливающую связь при обрыве, при работе по системе CallBack (обратный звонок). Т.к. телефонщики перешли на повременную оплату, все перешли на этот способ в ответ, но поставить задачу закачки на ночь невозможно т.к. этот метод стандартный софт дозвона не поддерживает. Ответ: Автор ответа: Tibor ну вот тебе и вылажи всё да разжуй, ты конкретезируй вопросы. звонилку то можно зделать, скажи что именно тебе не понятно, с удовольствием отвечу :) Вопрос: Если в буфер обмена помещается строка текста (к примеру адрес сайта), то как записать его отдельной строкой в файл(txt), если строка уже сужествует вывести сообщение и повторно не записывать. Ответ: Автор ответа: Tibor Если я правильно тебя понял то наверное так :) Private Sub Form_Load() Dim f$, rStr$, a$ Dim Yes As Boolean f = FreeFile ' Clipboard.SetText "искомая строка" ' - этой строкой сам понял что вожно зделать :) rStr = Clipboard.GetText Open "c:\autoexec.bat" For Input As #f While Not EOF(f) Line Input #f, a If a = rStr Then Yes = True Else Yes = False Wend Close If Not Yes Then Open FileName For Append As #f Print #f, rStr Close End If End End Sub Ответ: Автор ответа: Ревягин_Алексей Если я правильно понял вопрос то так: сначала считываем файл в массив (желательно делать это в Form_load) dim mas() as string dim str as string,i& i=0 open "ПУТЬ_К_ФАЙЛУ" for input as #2 do until eof(2) line input #2,str i=i+1 loop close #2 redim mas(i) as string i=0 open "ПУТЬ_К_ФАЙЛУ" for input as #2 do until eof(2) line input #2,str mas(i)=str i=i+1 loop close #2 размести на форме таймер с интервалом в 500 мс объяви в declarations переменную buf as string в таймере пиши: buf=Clipboard.GetText теперь проверяем имеется ли такой URL for i=0 to ubound(mas) if mas(i)=buf then msgbox "Already have" exit sub endif next i 'а если такой строки нет, то пишем её в файл open "ПУТЬ_К_ФАЙЛУ" for append as #2 ? #2,buf close #2 form_load 'снова заполняем массив из файла можно сделать по другому объявить массив к примеру в 101 элемент (mas(100) as string), но тогда придётся вводить проверку на пустые элементы массива и следить за тем, чтобы не произошло переполнение массива. Можно щаранее объявить большой массив (1000) или больше, но он сожрёт много памяти. Вопрос: Как можно прицепить к TextBox'у свое контекстное меню, чтобы при нажатии правой кнопки мыши выскакивала моя менюшка а не стандартная. А может можно как-нибудь добавить в стандартное меню свой пункт? (хотя сильно в этом сомневаюсь). Писать свой контрол с нуля или подключать уже готовый не хотелось бы, т.к. данный ход нужен только в одном месте на весь проект, а сторонний контрол ресурсов сожрет немерено. Ответ: Автор ответа: Tibor Конечно можно добавить и в стандарную менуху своё но реч сейчас не об етом. 1. Создаёшь новую форму(или на уже созданой форме создаёшь меню) 2. Создаёшь меню. 3. В свойстве TextBox-а MouseDown: Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then PopupMenu MenuName End If End Sub вот собственно и всё :) Ответ: Автор ответа: Данила Для создания меню для любого элемента, нужно: 1) сделать это меню в "Редактор меню". Допустим, у тебя получилось следующее "Меню" "....Подменю1" 2) для элемента пишишь следующий код Private Sub ЭЛЕМЕНТ_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then ФОРМА_С_ЭЛЕМЕНТОМ.PopupMenu Меню End If End Sub И всё. Действия по добавлению в стандартное меню своего пункта сложнее. Можете заполнить эту форму, либо отослать вопрос СЮДА Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта. |
|||||||||||||||||
Выпуск подготовили: |
Сурменок Павел |