VBNet
VBMania
Голосование: Ссылки: |
Господа!!! читайте MSDN!!! Несколько слов от автора:
Новый выпуск!
Читайте! Содержание выпуска
Citycat by Email Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое. Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru. наверх Новости сайта VBNet
Последние 20 тем форума на VBNet.Ru: 10:43 / 16 сен. Координаты курсора | Хитов: 0 | Ответов: 0 09:56 / 16 сен. RichTextBox | Хитов: 3 | Ответов: 0 09:54 / 16 сен. Форум по почте | Хитов: 2 | Ответов: 0 07:34 / 16 сен. Вызов функции COM+ | Хитов: 14 | Ответов: 1 22:32 / 15 сен. папочки | Хитов: 19 | Ответов: 1 19:10 / 15 сен. Прокси | Хитов: 14 | Ответов: 0 17:58 / 15 сен. Анализатор своего языка | Хитов: 21 | Ответов: 1 17:00 / 15 сен. Word и .net | Хитов: 18 | Ответов: 2 16:53 / 15 сен. ActiveX: экспорт меню на форму. | Хитов: 9 | Ответов: 0 14:33 / 15 сен. Где? | Хитов: 19 | Ответов: 0 14:05 / 15 сен. Трабл насущный | Хитов: 17 | Ответов: 0 13:49 / 15 сен. "Can't find project or library" | Хитов: 12 | Ответов: 0 12:56 / 15 сен. Модератору.Срочно. | Хитов: 23 | Ответов: 0 11:58 / 15 сен. Cystal Report 7 | Хитов: 16 | Ответов: 0 09:30 / 15 сен. Цастота экрана??? | Хитов: 20 | Ответов: 2 Последние поступления в Библиотеку кодов: Как создать в IIS виртуальную директорию (36) наверх Новости сайта MSDN наверх Новости сайта GotdotNet
Новые статьи:
наверх Новости сайта dotSite Новые статьи: Новые примеры: наверх Один момент из жизни форума: Word и .net Вопрос: Автор вопроса: WaX Делаю так: Dim wordApp As New Word.Application() wordApp.Documents.Open("c:\data.doc") ', False, False, False, "", "", False, "", "", "wdopenformatauto") wordApp.ActiveDocument.Activate() With wordApp.ActiveDocument .ActiveWindow.Selection.WholeStory() With .ActiveWindow.Selection.Font .Name = "Times New Roman" End With End With wordApp.ActiveDocument.Save() wordApp.ActiveDocument.Close() Мне пишут: "Close' is ambiguous across the inherited interfaces 'Word._Document' and 'Word.DocumentEvents_Event'". Что бы это значило? Ответы: Автор: Артём Л. Есть такая штука, и с ней я тоже намучался. Если вам нужно закрыть все окна Word, используйте WordApp.Documents.Close(False(true)), по-моему ещё можно для отдельных использовать Documents.Item(). Если нужно закрыть приложение вобще, то ничего кроме как CallByName(WordApp, "Quit", CallType.Method) не смог придумать.... наверх Доска объявлений Ищу телеработу.
наверх Вопрос/Ответ Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы. Вопросы:Автор вопроса: Дмитрий Ответ ожидается по этому адресу Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long) С помощью этих трех функций можно отобразить окно выбора папки. Что нужно сделать чтобы в этом окне появилась кновпка Создать? По умолчанию ее там нет. Автор вопроса: Дмитрий Ответ ожидается по этому адресу Как в окно сообщения MessageBox добавить элемент управления CheckBox? Желательно чтобы не пришлось писать собственный контрол на эту тему. Автор вопроса: Димон Ответ ожидается по этому адресу Есть два вопроса. 1 Как с помощью проги создать ярлыки с параметрами? 2 Как выключить компьютер, перепробывал пару примеров, в том числе и на Vb .net, ничего не работает, функция проходит и на этом все. Автор вопроса: Vao Ответ ожидается по этому адресу Наверное многие делали в Access 2002 импорт данных в базу. Вопроc в следующем. Как сделать это программно на VB (если есть какая-нибудь разница для импорта из источников различного формата, то прежде всего интересует импорт из файла в формате XML). Автор вопроса: Vao Ответ ожидается по этому адресу В своей проге испольяую объект ADOX.Catalog для получения в контроле ListBox списка всех таблиц, содержащихся в баяе. При установке соединения c БД все гладко: Set Cnct = New ADODB.Connection Call Cnct.Open(Connect_Path) Но как только идет инициалияация обекта ADOX.Catalog: Set Ctlg = New ADOX.Catalog Set Ctlg.ActiveConnection = Cnct выдается ошибка 429 "ActiveX component can't create object", причем это происходит только на отдельных компах. Пробовал подключать к проекту разные версии библиотек, попробовал даже поставить на один из тех компов VB - не помогло. В чем тут дело? Автор вопроса: Kirill I. Vinokurov Ответ ожидается по этому адресу Подкиньте, пожалуйста, пример для определения CRC32. А то на сайте ссылка не работает. Автор вопроса: Максим Ответ ожидается по этому адресу У меня в переменной сохранен текст веб-страницы. Я вношу изменения в этот текст и вот вопрос: как теперь эту страницу исполнить в webbrowser? Я, конечно, могу сохранить на диск и загрузить с диска, но это мне не подходит. Автор вопроса: Максим Ответ ожидается по этому адресу Необходимо, чтобы в процедуру подставлялась формула, введённая пользователем. Т.е. например, в TextBox вводится формула: 5*x^2+12. Процедура следующая: Private Sub Command1_Click() x=0 For i = 1 to 10 y(i)=text1 List1.AddItem Format(y(i), "0.00000") x=x+1 next End Sub Пробовал возиться с функцией EbExecuteLine, но либо я с ней не разобрался, либо она для этого не годится. В место х она подставляет 0 и в итоге ListBox заполнен цифрой 12. Если кто-нибудь сталкивался с такой задачей, то поделитесь успехами с народом. Он Вас не забудет. Автор вопроса: Данила Ответ ожидается по этому адресу Как народ умудряется писать такие маленькие контролы? У меня меньше 100Кб не получается (хотя подобный занимает 25) Автор вопроса: Максим Ответ ожидается по этому адресу А что значит Option Compare Text? Автор вопроса: Vlasenko Fedor Ответ ожидается по этому адресу Помогите вставить форму в панель меню EXCEL 2002. Option Explicit Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" _ (ByVal hWnd1 As Long, _ ByVal hWnd2 As Long, _ ByVal lpsz1 As String, _ ByVal lpsz2 As String) As Long Private Declare Function GetWindow Lib "user32" _ (ByVal hwnd As Long, _ ByVal wCmd As Long) As Long Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _ (ByVal hwnd As Long, _ ByVal nIndex As Long) As Long Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _ (ByVal hwnd As Long, _ ByVal nIndex As Long, _ ByVal dwNewLong As Long) As Long Private Declare Function GetWindowRect Lib "user32" _ (ByVal hwnd As Long, _ lpRect As RECT) As Long Private Declare Function SetParent Lib "user32" _ (ByVal hWndChild As Long, _ ByVal hWndNewParent As Long) As Long Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Private Const GWL_STYLE = (-16) Private Const WS_BORDER = &H800000 Private Const WS_CAPTION = &HC00000 Private Const WS_POPUP = &H80000000 Private Const WS_SYSMENU = &H80000 Private Const SWP_FRAMECHANGED = &H20 Private Const SWP_NOREPOSITION = &H200 Private Const SWP_NOZORDER = &H4 Public Sub CreateMyBar() Dim MyBar As CommandBar Dim butMyBar As CommandBarButton Dim FormHwnd As Long, ExHwnd As Long, BarHwnd As Long, XldeskHwnd As Long Dim frmStyle As Long Dim xlR As RECT 'Индитификатор XLDESK окна ' XldeskHwnd = FindWindowEx(Application.hwnd, 0, "XLDESK", vbNullString) 'Кординаты XLDESK окна ' GetWindowRect XldeskHwnd, xlR 'Проверка наличия меню For Each MyBar In CommandBars If MyBar.Name = "DocBar" Then Application.CommandBars("DocBar").Delete Next 'Соядаем меню Set MyBar = Application.CommandBars.Add("DocBar", msoBarRight, False, True) MyBar.Protection = msoBarNoMove Set butMyBar = Application.CommandBars("DocBar").Controls.Add(msoControlButton) butMyBar.Height = 200 butMyBar.Width = 550 'ВОПРОС, КАК СДЕЛАТЬ ЭТО ЗНАЧЕНИЕ MyBar.Visible = True 'butMyBar.Width = xlr.Bottom-xlr.Top 'ПРИ ЭТОМ ОТОБРАЗИТЬ ФОРМУ 200х400 'Загружаем форму Load MyForm 'Индитификатор формы FormHwnd = FindWindow("ThunderDFrame", MyForm.Caption) 'Читаем и ияменяем стиль формы frmStyle = GetWindowLong(FormHwnd, GWL_STYLE) _ - WS_CAPTION - WS_BORDER - WS_POPUP - WS_SYSMENU 'Индитификатор Excel 2 окна ExHwnd = FindWindowEx(Application.hwnd, 0, "EXCEL2", vbNullString) 'Индетификатор панели DocBar BarHwnd = FindWindowEx(ExHwnd, 0, "MsoCommandBar", "DocBar") 'Наяначаем нового родителя SetParent FormHwnd, BarHwnd 'Устанавливаем стили формы SetWindowLong FormHwnd, GWL_STYLE, frmStyle SetWindowLong FormHwnd, -20, &H0 'Покаяываем форму MyForm.Show End Sub Ответы: Вопрос: Вопрос по ADO На серваке MSSQL2000 есть база. Есть хранимая процедура. Хочу открыть рекордсет с возможностью перемещения по записям вверх-вниз. Вот такой код. Dim rs As ADODB.Recordset, cm As ADODB.Command, param As ADODB.Parameter, dDate As Date Set cm = New ADODB.Command Set cm.ActiveConnection = cn cm.CommandType = adCmdStoredProc cm.CommandText = "usr_repWSP" Set param = cm.CreateParameter("dDate", adDate, adParamInput, , dDate) cm.Parameters.Append param Set rs = New ADODB.Recordset rs.CursorLocation = adUseClient rs.CursorType = adOpenStatic Set rs = cm.Execute После выполнения последней строки, рекодсет почему то становится ForwardOnly и adUseServer (как по умолчанию), игнорируя предыдущие установки и естессно метод rs.moveprevious вызывает ошибку. Если же я открываю рекордсет таким образом: rs.Source = "sql-запрос такой как в хранимой проц. на серваке" rs.activeconnection = cn rs.Open то он чудесно открывается как и надо в соответствие с установленными свойствами. Статический курсор использую из-за того, что запрос с групповой операцией. Помогите разобраться в чём дело? Перепробовал всякие варианты. Неужели через объект ADO.Command невозможно так сделать? Ответ: Автор ответа: Alexander Да, вот ещё что: >Set rs = New ADODB.Recordset >rs.CursorLocation = adUseClient >rs.CursorType = adOpenStatic >Set rs = cm.Execute > После выполнения последней строки, рекодсет почему то становится ForwardOnly и adUseServer (как по умолчанию)... В дополнение можно добавить, что "Set rs = cm.Execute" не обладает никаким "интеллектом" и присваивает умолчания из Connection. Поэтому, например, надо делать так: cm.CursorLocation = adUseClient, а не rs.CursorLocation = adUseClient ! Т.е. оптимальный способ "лепить-что-хочешь", всё же использование полной конструкции для Recordset: recordset.Open Source, ActiveConnection, CursorType, LockType, Options Великолепно то, что и Connection и Recordset выполняют такие сложнейшие SQL-конструкции за кратчайшее время, что диву даёшься! Поэтому предпочительнее выполнять "Select...", вместо метода .Find, например. Вопрос: Использовать функции GDI в GDI+ не катит. Мне нужно что-нибудь аналогичное getpixel/setpixel. И createbitmap с selectobject. В общем, это нужно перевернуть картинку. Не удивлюсь, если в .net уже есть класс для этой беды. Но мне еще нужно будет копировать это на поверхность DirectDrawSurface7! Трюк с методом getCD не пройдет. А может directdraw сам может отразить зеркально? Посоветуйте как решить задачу! Ответ: Автор ответа: Butch Используй BLTFX. Вот тебе пример зеркального отражения слева на право rcSource As RECT rcDest As RECT ddbltfx as DDBLTFX ddbltfx.lDDFX = DDBLTFX_MIRRORLEFTRIGHT rcSource.top = 0 rcSource.left = 0 rcSource.bottom = 100 rcSource.right = 200 rcDest.top = 0 rcDest.left = 201 rcDest.bottom = 100 rcDest.right = 401 DDS.BLTFX(rcDest,DDS,rcSource,DDBLT_WAIT Or DDBLT_DDFX,ddbltfx) Если что-то не понятно намыль мне Вопрос: Есть программа, написанная на VB. Как сделать ее ShareWare, т.е. как организовать временное ограничение так, что бы над его снятием человеку пришлось бы довольно долго повозиться и все же согласиться заплатить оговоренную сумму? Вопрос тот же, но теперь он относиться в DLL - компонентам. Если можно, то расскажите про методы постановки защиты и методах ее обхода. Согласен что все это тянет на приличную статью, но может есть линки на уже готовую доку (можно даже с примерами) Ответ: Автор ответа: Anton Lozovski Например, в коде, особенно в DLL, при инициализации класса и при вызове его методов, можно обращаться к нижеуказанной функции. И если она вернет True, ничего не делать. Самый простой вариант, ИМХО, и лечится изменением системной даты. private function isExpired() as boolean if val(year(date())) > 2002 then isExpired = True msgbox "Время халявы прошло, господа!" , vbSetForeground endif end function Вопрос: Как изменить формат бумаги для принтера в VB6 в операционнной среде win2000NT? Ответ: Автор ответа: Kuznetsoft Printer.Orientation Вопрос: Проблема такая. Нужна прога, типа телефонного справочника, которая по заданным параметрам умела находить нужную строку в базе данных, если есть у кого простой пример, просьба намылить. Ответ: Автор ответа: Данила Тебя какая база интерисует? Если ADO, то так: Dim rs As Recordset Set rs = база.OpenRecordset("select коды.код, from коды where коды.ID='всякая ерунда'", dbOpenDynaset) Можешь использовать уже открытый набор: rs.findfirst "коды.код, from коды where коды.ID='всякая ерунда'" Искать в таблице медленно, я не рекомендую. Ответ: Автор ответа: Vao Я как раз деляю телефонный справочник, типа записной книжки. Проблему поиска я решил так: Private Sub Search() 'cule cioo a nraecol Dim i_Loc As Integer i_Loc = 1 Dim j As Integer j = 0 With Form_rez ProgressBar.Max = BD_Recordset.RecordCount ProgressBar.Value = 0 BD_Recordset.MoveFirst Do While Not BD_Recordset.EOF 'Yes_In_BD = False For j = 0 To Num_Of_Controls Select Case j Case 0: Call FieldCheck(f) 'Значения в скобках - имена текстовых полей на форме Case 1: Call FieldCheck(i) Case 2: Call FieldCheck(o) Case 3: Call FieldCheck(dr) Case 4: Call FieldCheck(c) Case 5: Call FieldCheck(st) Case 6: Call FieldCheck(h) Case 7: Call FieldCheck(crp) Case 8: Call FieldCheck(fl) Case 9: Call FieldCheck(telh) Case 10: Call FieldCheck(telm) Case 11: Call FieldCheck(telw) Case 12: Call FieldCheck(mail) Case 13: Call FieldCheck(pr) End Select Next j Dim All_Field_In_BD As Boolean ' nir?rer n?cnrle ?ni ariir? crdcnu oaiaelnaid?ln one-?e dicner All_Field_In_BD = True For j = 0 To Num_Of_Controls All_Field_In_BD = All_Field_In_BD And Yes_In_BD(j) Next j If All_Field_In_BD = False Then GoTo JUMP .Rez.AddItem ("-|-") For j = 0 To Num_Of_Controls - 1 Select Case j Case 0: Form_rez.Rez.TextMatrix(i_Loc, j) = OutPut(f) Case 1: Form_rez.Rez.TextMatrix(i_Loc, j) = OutPut(i) Case 2: Form_rez.Rez.TextMatrix(i_Loc, j) = OutPut(o) Case 3: Form_rez.Rez.TextMatrix(i_Loc, j) = OutPut(dr) Case 4: Form_rez.Rez.TextMatrix(i_Loc, j) = OutPut(c) Case 5: Form_rez.Rez.TextMatrix(i_Loc, j) = OutPut(st) Case 6: Form_rez.Rez.TextMatrix(i_Loc, j) = OutPut(h) Case 7: Form_rez.Rez.TextMatrix(i_Loc, j) = OutPut(crp) Case 8: Form_rez.Rez.TextMatrix(i_Loc, j) = OutPut(fl) Case 9: Form_rez.Rez.TextMatrix(i_Loc, j) = OutPut(telh) Case 10: Form_rez.Rez.TextMatrix(i_Loc, j) = OutPut(telm) Case 11: Form_rez.Rez.TextMatrix(i_Loc, j) = OutPut(telw) Case 12: Form_rez.Rez.TextMatrix(i_Loc, j) = OutPut(mail) Case 13: Form_rez.Rez.TextMatrix(i_Loc, j) = OutPut(pr) End Select Next j i_Loc = i_Loc + 1 JUMP: BD_Recordset.MoveNext ProgressBar.Value = ProgressBar.Value + 1 Loop Dim Max_Len As Integer For j = 0 To Num_Of_Controls Max_Len = Len(.Rez.TextMatrix(0, j)) * 136 For i_Loc = 0 To .Rez.Rows - 1 If Len(.Rez.TextMatrix(i_Loc, j)) * 136 > Max_Len _ Then Max_Len = Len(.Rez.TextMatrix(i_Loc, j)) * 136 '- Len(.Rez.TextMatrix(i_Loc, j)) Next i_Loc .Rez.ColWidth(j) = Max_Len Next j Form_rez.TotalLabel.Caption = "Irealii crdcnle: " & (i_Loc - 1) ProgressBar.Value = 0 End With End Sub Private Sub FieldCheck(TXT As TextBox) ' iddlale?le lnnu ec ariiil cir?licl a AA If Len(TXT.Text) <> 0 _ Then If InStr(1, BD_Recordset(TXT.Name).Value, TXT.Text, vbTextCompare) <> 0 _ Then Yes_In_BD(TXT.TabIndex) = True Else Yes_In_BD(TXT.TabIndex) = False End If Else ' lnec diel donnil ni n?cnrle, ?ni iii lnnu a AA '(irddceld dicne nier di orececc - dieuciarnlet di ocao cir?lic? adoaco diele) Yes_In_BD(TXT.Tag) = True End If End Sub Private Function OutPut(TXT As TextBox) As String OutPut = BD_Recordset(TXT.Name).Value If OutPut = Empty_Value Then OutPut = "" End Function Ответ: Автор ответа: Роман Есть у меня телефонный справочник, сам делал. Без картинок и баз данных (FoxPro 3.0) весит 100кб, а вместе с ними 1,341 мб (это исходники на VB6). Использует DBGRID32.OCX, TABCTL32.OCX, MSMASK32.OCX, mscomctl.ocx, DBLIST32.OCX. Могу отправить, если нужно. Ответ: Автор ответа: Anton Lozovski Саамый простой способ - конвертнуть базу в лист Экселя, и пользоваться автофильтром. Ответ: Автор ответа: Anton Lozovski Для начала почитай документацию по ADO и SQL. Вопрос: Как в VB пользоваться сервисом Telnet? Winsock выдает что-то вроде "яэ.яэ.яэ#яэ'яэ$" Ответ: Автор ответа: Anton Lozovski А обычным телнетом подключаться пробовал? Пуск/Выполнить/Telnet.exe И в настройках пропиши удаленный хост/порт. И что он выдает? Винсок должен выдавать то, что получает в свой порт от удаленной машины. Если обычным телнетом у тебя выдает не то, что выдает тебе твой код - рой в коде. Проверь свойства RemoteHost (RemoteHostIP), Protocol и RemotePort, а также запусти netstat.exe - a n1 и посмотри что у тебя вообще куда подключено. И найди где-то на isi.edu RFC по портам и посмотри для каких служб они стандартно промапены (изначально были промапены порты от 0 до 1023, дальше коммерческие организации стали платить за то, чтобы определенные номера были промапены за ними). Вопрос: У меня ACCESS-овская база данных в одной из таблиц которой имеется поле MySound типа OLE Object. Как с помощью SQL запроса произвести изменения в этом поле, если новое значение я имею в виде байтового массива? Ответ: Автор ответа: Vir Данный код сохраняет файл в БД через массив Dim dbsFoto As New ADODB.Connection Dim rstFormat As New ADODB.Recordset Dim buffer() As Byte GetObject hBmp, LenB(bmp), bmp dbClass.OpenBD dbsFoto rstFormat.Open "SELECT Pic FROM Foto_PicFon", dbsFoto, adOpenStatic, adLockOptimistic, adCmdText With rstFormat .AddNew Open App.path & "\Temp.jpg" For Binary Access Read As 1 ReDim buffer(LOF(1) - 1) Get 1, , buffer() Close rstFormat!Pic = buffer() .Update .Close End With dbsFoto.Close Можете заполнить эту форму, либо отослать вопрос СЮДА Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта. |
||||
Выпуск подготовили: |
Сурменок Павел |