VBNet
VBMania
Голосование: Ссылки: |
Господа!!! читайте MSDN!!! Несколько слов от автора:
Новый выпуск.
Читайте! Содержание выпуска
Citycat by Email Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое. Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru. наверх Новости сайта VBNet
Последние 20 тем форума на VBNet.Ru: 11:30 / 15 окт. Аналог команды ping на VB.Net | Хитов: 1 | Ответов: 0 11:25 / 15 окт. Что лучше использовать DAO или ADO? | Хитов: 1 | Ответов: 0 11:15 / 15 окт. вопрос по Fusion! | Хитов: 0 | Ответов: 0 10:03 / 15 окт. Графика: углы и линии | Хитов: 2 | Ответов: 0 23:07 / 14 окт. простите за оффтопик, но не знаю куда писать... | Хитов: 23 | Ответов: 5 21:38 / 14 окт. Form_Keydown с Button | Хитов: 12 | Ответов: 1 21:14 / 14 окт. Описание функций API на русском | Хитов: 26 | Ответов: 4 20:35 / 14 окт. RAS API | Хитов: 8 | Ответов: 0 19:44 / 14 окт. Иконка в трее. Как правильно убрать? | Хитов: 11 | Ответов: 1 18:31 / 14 окт. Читайте все! | Хитов: 22 | Ответов: 0 15:37 / 14 окт. OLE и ACCESS | Хитов: 12 | Ответов: 0 13:21 / 14 окт. сохранить html страницу с картинками | Хитов: 18 | Ответов: 2 13:10 / 14 окт. Розовая Звезда | Хитов: 26 | Ответов: 2 10:39 / 14 окт. Опять Звонилка | Хитов: 3 | Ответов: 0 09:40 / 14 окт. Тогда еще вопрос | Хитов: 40 | Ответов: 8 09:08 / 14 окт. Доступ к методам | Хитов: 28 | Ответов: 2 06:48 / 14 окт. PinkStar | Хитов: 27 | Ответов: 2 22:50 / 13 окт. Run-time в ADODC | Хитов: 21 | Ответов: 2 19:44 / 13 окт. Треугольники и циклы | Хитов: 36 | Ответов: 4 18:30 / 13 окт. Как в .NET запретить запуск ещё одной копии про... | Хитов: 28 | Ответов: 2 Последние поступления в Библиотеку кодов: Стандартный диалог завершения работы (68) Как узнать процент соответствия двух строк (89) наверх Новости сайта MSDN наверх Новости сайта GotdotNet
Новые статьи:
наверх Новости сайта dotSite Новые статьи: Новые примеры: наверх Один момент из жизни форума: DataTable.GetChanges() Вопрос: Автор вопроса: Артём Л. Проблема какая-то непонятная. В таблице есть колонка с типом boolcolumn, тоесть с чеком. После загрузки данных кликаю на одном. Потом вызываю tbl=Table.GetChanges() - возвращается nothing. Если щелкнуть на 2х чеках, то Table.GetChanges() возвратится таблица только с одной строчкой. Почему-то всегда пропадает одна измененная строка. После сборки изменений всегда делаю ЭкцептЧенчз. Ответы: Автор: Павел Попробуй после чека переместиться в гриде на другую строку. Либо вызывай перед вызовом GetChanges метод EndEdit грида. Просто пока ты с этой строки не уйдёшь, изменения не пишутся в DataTable. Автор: Артём Л. Помогло вот это: grdData.EndEdit(Nothing, grdData.CurrentRowIndex, False) grdData.CurrentRowIndex = grdData.CurrentRowIndex наверх Доска объявлений Ищу телеработу.
наверх Вопрос/Ответ Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы. Вопросы:Автор вопроса: Swift Ответ ожидается по этому адресу Как определить где (Top и Width) находится Systray (имеется в виду вся системная панель)? Автор вопроса: Swift Ответ ожидается по этому адресу Как сделать, чтобы программа висела в памяти и при нажатии определенной комбинации клавиш (напр. Ctrl+F8) выводилась на экран? Причем она должна ловить нажатия этих клавиш при работе пользователя совершенно в другом приложении. Автор вопроса: KeeL Ответ ожидается по этому адресу Как сделать чтобы прога считывала при загрузке значения из ini файла, добавляла в lisbox листы с этими значениями; как осуществить такое: если значение из ini равно 1 то выполняется то-то, если 0 -выполняется что-то другое? Автор вопроса: Nicekaifer Ответ ожидается по этому адресу Очень нужно автоматически будучи подключенным к инету: 1. Подключиться к FTP серверу (Пароль и все дела я знаю) 2. Записать на него, скопировать с него, удалить, и т.п. 3. Отключиться от сервера. Может кто поможет готовыми процедурами или советом. Обещаю поделиться результатом с каждым из отозвавшихся! Автор вопроса: Элина Ответ ожидается по этому адресу Имеется кнопочная форма, как по кнопке вызвать выполнение стандартного модуля? Автор вопроса: Sergey Ответ ожидается по этому адресу Никак не пойму, почему при переносе документа Excel на другой комп с такой же ОС и таким же офисом, пересала работать встроенная функция MkDir в VBA? Автор вопроса: Костя Ответ ожидается по этому адресу Как сделать OptionButton или CheckBox прозрачным? Наподобие BackStyle property Label control. Автор вопроса: Кирилл Ответ ожидается по этому адресу Как добавить заставку к программе, т.е. сначала идёт запуск заставки, а после сама программа? Ответы: Вопрос: Как удалить файл в корзину? В vb6 и vb .net. Ответ: Автор ответа: Sergey Используй ф-цию ShFileOperation вместе с флагом FOF_ALLOWUNDO. Вопрос: Как сделать так, чтобы базу данных привязать к жесткому диску компа и поставить ограничения на использование программы? Ответ: Автор ответа: Anton Lozovski Может быть, плясать от номер тома. Узнать его можно через FileSystemObject. Правда, при переформатировании винта номер изменится. Вопрос: Какие переменные Windows возвращает функция Environ? Хотелось бы весь список. Ответ: Автор ответа: Владимир Кирко Список Ваших переменных, возвращаемых функцией Environ, Вы можете получить сами. Примерно таким циклом: Dim EnvString, Indx Indx = 1 Do EnvString = Environ(Indx) Debug.Print Indx & ". " & EnvString Indx = Indx + 1 Loop Until EnvString = "" Строки имеют вид <имя переменной>=<значение переменной>. Если верить MSDN, то к Environ можно обращаться не только по индексу, но и по имени переменной, т.е. по тому, что левее знака равенства.. У меня, например, этот список состоит их 29 строк. Насчёт "всего списка". Это, видимо, будет некий "стандартный список" + то, что Вы зададите оператором set <имя переменной>=<значение переменной> самостоятельно. Вопрос: Идея: Моя программа запускается, определяет, что в определенной папке (на сетевом диске) находится новая версия этой программы, сообщает об этом пользователю, заменяет себя на новую версию (заменяет только EXE файл) и перезапскается уже в новой версии. Внимание вопрос: а) Как программе удалить свой собственный EXE-файл, при этом оставаясь в памяти и будучи в запущенном состоянии? б) Как ей перезапуститься? Ответ: Автор ответа: Alexander А никак! Для этого обычно используют временный пакетный файл (.cmd для WinXP/2k, .bat для Win9x/2k/XP). Т.е. формируют такой батник, обычно какой-то другой вызываемой программой (можно из твоего экзешника), потом завершают основную программу и запускают пакетный файл, в конце которого стоит запуск новой версии. Т.е. такие операции может сделать и вспомогательная программа: есть специальные программы для таких вещей, которые называются инсталляторы. Кроме того, WinXP/2k требуют наличия соответствующих прав администратора. Поищи в %WINDOWS%-каталоге, например, "tmpcpyis.bat", "tmpdelis.bat", "winstart.bat" и т.п. и разберись в их работе. Ответ: Автор ответа: Sergey Здесь вариантов может быть превеликое множество, например: локальная версия программы запускает сетевую с каким-то ключом, например путем к папке, где она установлена и закрывается. Сетевая при определенном ключе удаляет существующую версию, копирует себя на ее место и запускается. Ответ: Автор ответа: RaZoom 'c:\myexe.exe - расположение новой версии 'd:\myexe.exe - расположение старой версии Const txtBat$ = "@echo off" & vbNewLine & _ "copy /Y c:\myexe.exe d:\" & vbNewLine & _ "d:\myexe.exe" & vbNewLine & _ "del bat.bat" Dim blUpdate As Boolean Private Sub Command1_Click() blUpdate = True Open "c:\bat.bat" For Binary Access Write As #1 Put #1, 1, txtBat Close #1 Unload Form1 End Sub Private Sub Form_Load() blUpdate = False End Sub Private Sub Form_Terminate() If blUpdate Then Shell "c:\bat.bat" End Sub Но тут два недостатка: 1. Создается файл c:\bat.bat, который, правда, затем сам себя и убивает (не очень красиво). 2. Нужно заботится о закрытии окна консоли после выполнения bat-файла (тут не реализовано). Можно пойти другим путем - запустить в Form_Terminate файл новой версии с удаленной машины и передать ему в качестве параметра куда он должен себя скопировать, после чего, запустить новую версию уже с локального диска и закрыть новую версию, запущенную с удаленного диска. Вопрос: При одновременной работе 4 и более winsock (созданных заранее и работающих на разные ІР адреса) через некоторое время появляется сообщение об ошибке "No buffer space is available”. Можно ли как-то очищать этот буфер или избежать ошибки другими способами? Ответ: Автор ответа: Ivan_R Наверное вы при приёме пользуетесь .PeekData, откажитесь от этого в пользу .GetData, тк PeekData, насколько я помню, только читает данные из буфера, не удаляя их. Вопрос: Я как-то спрашивал как редактировать idtag из VB и мне помогли, прислали класс для работы с tag v1 - но проблема в том что инфа из tagv2 как бы главнее и её видно в Winamp и ХРюше. Как редактировать Tag v2 - или просто стереть их? Ответ: Автор ответа: Anton Lozovski На прошлой недели меня мучал этот вопрос. Но как показал опрос, и взятые для примера MP3 файлы, таг ID3v2 практически никем не используется. Вопрос: Я решил несколько дополнить стандартный элемент TextBox. Создал новый Activex контрол добавил стандартный TextBox и дописал для него несколько новых свойств: получение фокуса, ввод только букв или чисел с разрешением использования разделителя используемого в системе. (подобное описано в статье Михаила Эскина, есть на многих сайтах). Затем заметил что не работает свойство DataChange и нет динамического обновления полей при связи с БД посредством элемента Data. В атрибутах процедуры Text для Data стоят все галочки. Если надо кину исходник. Ответ: Автор ответа: Alexander Чует моё сердце, что пытаетесь менять данные в полях БД с атрибутами числовой/логический. Это так? В таком случае для используются объекты StdDataValue, StdDataFormat, а не только Textbox. Вопрос: Как сделать на VB DLL-библиотеку? Если можно, пришлите пример (не сложный, но и не простой). Ответ: Автор ответа: Sergey Если ты имеешь в ввиду ActiveX DLL, то для этого есть отдельный шаблон (New Project). Если же просто библиотеку с экспортируемыми ф-циями, то нет. Вопрос: Я делаю прогу с множеством OCX ' ов, как сделать так, чтобы прога работала на других компах? Где-то слышал что надо OCX ' ы копировать в system32. Если так, то посоветуйте каким инсталлятором пользоваться. Ответ: Автор ответа: vmv Для того, чтобы твоя прога работала на других компьютерах, достаточно поместить на другом компе в корневом каталоге (рядом с твоей прогой) все задействованные OCX (для Win-98 и выше). Под Win-95 не все нынешние OCX будут работать. Из простых и хороших инсталяторов рекомендую - GPBuilder. Ответ: Автор ответа: Dima Можно скопировать его ручками, а затем - Regsvr32 <путь\OCX-файл>. Ответ: Автор ответа: Anton Lozovski Можно пользоваться стандартным инсталлятором, который является Add-In'ом к VB. А можно использовать туеву хучу разных инсталляторов. Они сами регестрируют ActiveX. А руками регестрить ActiveX можно через regsvr32 <имя_файла> Вопрос: Как сделать надпись под углом 45, 90 градусов? Если есть OCX ' ы, намыльте пожалуйста. Ответ: Автор ответа: Dima Используй вместо текста картинку. Вопрос: Имеется форма в acceess'e. Данные сохраняются естественно в таблицу. На форме имеется комбо со значениями, которые берутся из таблицы "адреса" (3 столбца код [цифровой] район [цифровой], адрес [текстовой]), необходимо чтобы при выборе адреса на форме в текстовом поле отображался район, для этого имеется таблица с районами (код [цифровой], район [текстовой]). Как это сделать я не могу связать это цифровое значение с текстовым, как заставить его брать значение района если известен его код? Ответ: Автор ответа: Alexander Это есть, в частности в MSDN. Найдите "Creating a DataGrid Linked to a DataList Control". Суть такова: На форме есть DataGrid1 (С ним связан некий Recodset) и по-соседству располагаем Datalist1 (Datalist1.Style = 2). В Datalist1 устанавливаем свойства: - ListField - имя поля с текстовыми значениями списка, - DataField - имя поля с ID этого списка (пользователь его не видит), - RowSource - собственно, Recordset-источник этого самого списка (как правило, всего-то этих два поля в "Select..."). Далее: - BoundColumn - имя поля с ID для Recordset в DataGrid (столбез, как правило, тоже скрываем от пользователя), - Datalist1.DataSource = DataGrid1.DataSource. Уже всё будет работать! Правда, не совсем. Изменения будут видны, если переоткрыть DataGrid1 :-( Это печально, т.к. если мы вносим изменения в текстовое поле, то они сразу видны. Этот глюк в VB6 не удаётся убрать. В MSDN поступают через пару .ClearFields/.ReBind: ---------------------------------------------------------------------------- Private Sub Datalist1_Click() ' Declare a string variable that will contain a new query. The ' new query uses the BoundText property of the DataList control ' to supply a SupplierID value. The new query simply asks for ' all products with the same SupplierID. This query is assigned ' to the RecordSource property of the ADO Data control named ' adoProducts. After refreshing the control, the DataGrid is ' updated with the new recordset of all products that are ' supplied by the same company. Dim strQuery As String strQuery = "Select * FROM Products WHERE SupplierID = " & _ Datalist1.BoundText With adoProducts .RecordSource = strQuery .Refresh End With With DataGrid1 .ClearFields .ReBind End With End Sub ---------------------------------------------------------------------------- Знатоки советуют использовать Bookmark. Т.е. Dim bkm With DataGrid1 bkm = .Bookmark Set .RecordSource = Nothing Set .RecordSource = rsGrid ' т.е. пересоединяем rs .Bookmark = bkm End With ========== Сразу возникает вопрос: а как сделать выпадающий в клетке список? Делают Datalist1.Visible = False, а затем после позиционирования над DataGrid1 Datalist1.Visible = True. Но и это не всё: в поле, с которым будет связан список, включают кнопку. Тогда всё выглядит примерно так: Private Sub DataGrid1_ButtonClick(ByVal ColIndex As Integer) Select Case ColIndex Case 2 ' столбец с кнопкой Datalist1.Width = DataGrid1.Columns(ColIndex).Width Datalist1.Top = DataGrid1.Top + DataGrid1.RowTop(DataGrid1.Row) ' + DataGrid1.RowHeight Datalist1.Left = DataGrid1.Left + DataGrid1.Columns.Item(ColIndex).Left Datalist1.Visible = True Datalist1.SetFocus End Select End Sub Private Sub Datalist1_Click(Area As Integer) If Area > 0 Then Datalist1_KeyPress vbKeyReturn End If End Sub Private Sub Datalist1_KeyPress(KeyAscii As Integer) Dim bkmDataGrid If KeyAscii = vbKeyReturn Then If rsGrid!ID <> CByte( Datalist1.BoundText) Then bkmDataGrid = dgdTemplate.Bookmark rsTemplates!TypeEditionID = CByte( Datalist1.BoundText) Set dgdTemplate.DataSource = Nothing rsTemplates.Update rsTemplates.Requery Set dgdTemplate.DataSource = rsTemplates dgdTemplate.Bookmark = bkmDataGrid dgdTemplate.SetFocus End If End If End Sub Private Sub Datalist1_LostFocus() Datalist1.Visible = False End Sub Ответ: Автор ответа: Анатолий Используй для задания значения поля функцию LOOKUP(), пример посмотри в справке. Вопрос: Можно ли на Visual Basic отправить игре нажатие клавиш A,W,S,Z, например, игре MK4? Ответ: Автор ответа: Sergey Легко. Для этого есть процедура SendKeys, которая посылает задаваемые комбинации клавиш активному окну. Можете заполнить эту форму, либо отослать вопрос СЮДА Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта. |
||||||||||||||||
Выпуск подготовили: |
Сурменок Павел |