VBNet
VBMania
Голосование: Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом. Ссылки: |
Господа!!! читайте MSDN!!! Несколько слов от автора:
Внимание! Кто хочет помочь в разработке новой версии сайта VBNet.Ru на ASP .NET, просьба обратиться ко мне: pavel@vbnet.ru. Желательны знания архитектуры .NET Framework и хотя бы на начальном уровне - ASP .NET.
Читайте! Содержание выпуска
CD Внимание! В магазине компакт-дисков VBNet.Ru новые цены! Снижены до 50 рублей цены на VBNet CD 12 2002 и VBNet CD 04 2003. А также введена новая система расчёта расходов на пересылку, теперь они подсчитываются по формуле 30+(10*n), где n - количество заказываемых дисков. Комплект из всех 5 дисков с учётом почтовых расходов всего за 350 рублей! Заходите: http://vbnet.ru/vbshop/cdshop.asp. наверх Как загрузить в ListView текст из файла? Вопрос: Как загрузить в ListView текст из файла? Ответ: При условии, что файл текстовый, то есть нормально прослеживается EOF, сделай так: Dim Str As String Open "C:\autoexec.bat" For Input As 1 'вместо autoexec.bat указывается свой файл Do Until EOF(1) Input #1, Str ListView1.ListItems.Add , , Str Loop Чтобы было красивее, можно вставить ListView1.View=2. Тогда все данные будут выводиться как список. Игорь наверх Как сделать чтобы форма была всегда поверх всех окон? Вопрос: Как сделать чтобы форма была всегда поверх всех окон? Ответ: Делается это очень просто. Это в модуль: Public Declare Function SetWindowPos Lib "user32" _ (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _ ByVal X As Long, ByVal Y As Long, ByVal cx As Long, _ ByVal cy As Long, ByVal wFlags As Long) As Long Public Const HWND_NOTOPMOST = -2 Public Const HWND_TOPMOST = -1 Public Const SWP_NOACTIVATE = &H10 Public Const SWP_NOMOVE = &H2 Public Const SWP_NOSIZE = &H1 Public Sub SetFormPosition(frmHandl As Long, TopPosition As Boolean) If TopPosition Then SetWindowPos frmHandl, HWND_TOPMOST, 0, 0, 0, 0, _ SWP_NOACTIVATE Or SWP_NOSIZE Or SWP_NOMOVE Else SetWindowPos frmHandl, HWND_NOTOPMOST, 0, 0, 0, 0, _ SWP_NOSIZE Or SWP_NOMOVE End If End Sub Это в любом месте формы: call SetFormPosition(Me.hwnd, True) Комментарий: Это работает точно под WINDOWS 98 и под WINDOWS 98 SE, под другие ОС не пробовалось, проблемы есть точно в WIN XP. b17 наверх Как с помощью API вызвать диалоговое окно выбора цвета? Вопрос: Как с помощью API вызвать диалоговое окно выбора цвета и сохранить новые значения? Ответ: Private Type ChooseColor lStructSize As Long hwndOwner As Long hInstance As Long rgbResult As Long lpCustColors As String flags As Long lCustData As Long lpfnHook As Long lpTemplateName As String End Type Private Declare Function ChooseColor Lib "comdlg32.dll" Alias "ChooseColorA" (pChoosecolor As CHOOSECOLOR) As Long Private Sub Command1_Click() Dim cc As ChooseColor Dim ret as long cc.lStructSize = Len(cc) 'При указании хендела доступ к форме временно блокируется, до закрытия вызванного диалога(выбор цвета). cc.hwndOwner = Form1.hWnd 'Хендел вызывающей формы. cc.hInstance = App.hInstance cc.flags = 0 'Состояния вызываемого окна. 0-default state. (0-14) шагом = 2 cc.lpCustColors = String$(16 * 4, 0) ret = ChooseColor(cc) 'Вызываем диалог If (ret) Then 'Если была нажата кнопка ОК BackColor = cc.rgbResult 'Меняем цвет фона формы на выбранный нами цвет Else MsgBox "Действие отменено" End If End Sub SC наверх Как на VB установить шрифты в систему? Вопрос: Как на VB установить шрифты в систему? Пробовал использовать API функцию AddFontResource. Она устанавливает выбранный шрифт в систему, только после перезагрузки шрифт удаляется из системы. Ответ: Бывает необходимо добавить в систему шрифт. Для его использования не достаточно просто скопировать файл шрифта в C:\WINDOWS\Fonts. Необходимо инсталлировать, это выполняет функция API AddFontResource, которая объявляется так: Declare Function AddFontResource& Lib "gdi32" Alias "AddFontResourceA" (ByVal lpFileName As String) Использование: 1.Можно файлы шрифтов включить в дистрибутив с помощью встроенных возможностей Package & Deployment Wizard . В форме: 2.Потом с, помощью MyFile = Dir("C:\WINDOWS\Fonts\Helvenlt.ttf"), проверяем из своей программы, наличие файла в системе: If MyFile = "Helvenlt.ttf" Then Exit Sub Else 'если его нет, то копируем и устанавливаем шрифт. 'Копируем шрифт в систему FileCopy App.Path & "\Helveblt.TTF", "C:\WINDOWS\Fonts\Helvenlt.ttf" 'Необходимо скопировать шрифт в систему 'Устанавливаем шрифт Call AddFontResource("Helvenlt.ttf") 'Команда устанавливает шрифты в систему End If Текст1.FontName = "HelveticaLT" 'Используем шрифт slavik наверх Как получить адрес папки для временных файлов в W2k Server? Вопрос: Есть переменная WindowsDirectory и я всегда ее использовал для временных файлов, так стабильнее чем Temp но вдруг мне пришло письмо что моя программа не работет в W2k Server так как он не распознает эту переменную и пишет файл куда хочет, а когда его нужно прочитать то читает тоже откуда хочет и эти папки не сходятся. Отсюда информация не теряется, а просто пишется в одно месте, а читается из другого места - т.е. файла нулевого! Стандартные переменные $System_Root$ VB не понимает! P.S. В W2K Proffesional все работает! Ответ: Попробуй воспользоваться API функцией GetTempPath. Private Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long Помести куда нужно: Dim szTempPath As String * 100 GetTempPath 100, szTempPath Всё. Теперь переменная будет содержать путь Темп директории 8) SC наверх Вопрос/Ответ Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы. Вопросы:Автор вопроса: efimov_oleg Ответ ожидается по этому адресу Не сталкивался ли кто-то с OpenOffic-ом. В чем проблема: программа осуществляет экспорт в документ .doc, как это реализовать в среде VB6 но организуя экспорт через OpenOffice? Автор вопроса: Соколов Алексей Ответ ожидается по этому адресу Как запустить макрос Excel из программы на VB? Автор вопроса: lexus Ответ ожидается по этому адресу Как в VB отсортировать массив чисел? Автор вопроса: Борис Ответ ожидается по этому адресу Как средствами VB зарегистрировать в Windows библиотеку DLL и проверить, что она зарегистрирована? Автор вопроса: Andy Ferolli Ответ ожидается по этому адресу Для программирования баз данных Майкрософт предлагает вб-программистам такие гриды как: MSFlexGrid MSHFlexGrid Grid К сожалению ни один из них (по многим причинам) меня не устраивает (они мне кажутся какими-то не представительными). Я видел много баз данных, где используются очень симпатичные, с невероятными возможностями, гриды. Будьте добры, подскажите, где можно скачать или приобрести, например, такой грид как в программе Телефонный справочник (Semantica)? Автор вопроса: Andr Ответ ожидается по этому адресу В подпрограмме есть N-подпрограмм (для GOSUB). Каким образом можно сделать непосредственный переход на адрес подпрограммы или её имя без использования условий типа Case или IF? В Ассемблере это переход типа Call eBx. Смысл: надо обрабатывать сразу, без перебора типа сравнения из N-признаков. Дабы избежать затрат времени... Автор вопроса: Мартынова Н. В. Ответ ожидается по этому адресу Как сделать, чтобы TextBox добавлялся в форму автоматически, если, например, нажать ins? Автор вопроса: kolorit Ответ ожидается по этому адресу Прошу прошения, если вопросы покажутся банальными. Просто я только начинаю изучать VB. Как сделать так, чтобы объекты Сombo в которых отображаются, шрифт и размер шрифта работали так же как и в Worde. Т.Е. если ставлю курсор на любое место в тексте, а в объектах Combo должно отражаться использованный шрифт и размер шрифта. Автор вопроса: Anakonda Ответ ожидается по этому адресу Основная форма моей программы должна находится у правого края экрана, в таймере я пишу: Me.Left = Screen.Width - Me.Width. Но когда я запускаю какую-нибудь игрушку/прогу, работающую в полноэкранном режиме с расширением меньше моего, она опять настраивается по краю экрана, но вот когда я вырубаю эту игрушку/прогу форма обратно уже не идёт, стоит где-то ближе к середине. Как это исправить? Автор вопроса: HAK Ответ ожидается по этому адресу Пишу курсовую работу по "Базам данных" нужны справки, коды. Если у кого есть готовые коды по созданию базы данных для библиотеки, вышлите, очень прошу. Автор вопроса: Humbat Ответ ожидается по этому адресу Как с помощью мыши выделить прямоугольный и круглый участок на PictureBox (на подобие Paint)? Автор вопроса: Ефремов СЮ Ответ ожидается по этому адресу Имеется ряд компьютеров в локальной сети. На одном из них находится некая программа. Каким образом можно с этого компа запустить эту прогу на любом компе в сети? Ответы: Вопрос: Срочно нужен ответ на вопрос: Существует запись объявленная в модуле как глобальная: private type aaa dim j() as string end type Public v as aaa Нужно в какой то момент ее выгрузить из памяти, как это сделать. Хотя бы как выгрузить массив например в той же записи: v.j() неиспользуя redim v.j(0) ? Ответ: Автор ответа: C...R...a...S...H private type aaa j() as string end type Public v as aaa Public XXX as aaa 'если ааа-private ххх-пустой v=xxx Вопрос: Как сделать, чтобы датчик случайных чисел выдавал целые числа в заданных интевалах (например, от 1 до 30)? Ответ: Автор ответа: SBJocker rnd() * 30 - выдаст числа от 0 до 30 rnd() * 29 +1 - выдаст числа от 1 до 30 т.е. rnd() возвращает дробные числа от 0 до 1 При умножении результата на какое-либо число - получим результат от 0 до этого числа ( т.к. 0*X=0, а 1*X = X) Добавление к результату числа "сдвигает" диапазон получаемых чисел на величину этого числа... Вопрос: Как правильнои передать фокус от одной форме к другой? Имеются 2 формы. Сначала с формы1 вызывается модальная форма2. Private Sub Command1_Click(Index As Integer)' код в форме1 Select Case Index Case 0 Form1.Visible = False Form2.SetFocus ' вызов формы 2 End Select После выполнения необходимых процедур форма2 закрывается командой "unload form2" и при попытке передать фокус обратно форме1 происходит ошибка выполнения. Private Sub Form_Unload(Cancel As Integer) ' код в форме2 Form1.Visible = False Unload Form2 Set Form2 = Nothing Form1.Visible = True Form1.SetFocus Т.е. команда form1.setfocus выполняется, осуществляется переход (как видно при пошаговом выполнении) обратно в форму1 на строку "Form2.SetFocus" с которой ранее вызывалась форма2 и при этом происходит ошибка (№364). Ошибка происходит потому что форма форма2 уже закрыта, но как предотвратить это не могу понять. Ведь команда "Form2.SetFocus" уже отработала и переход должен был произойти на следующую за ней строку. Пожалуста подскажите в чем ошибка или дайте ссылку на пример кода. Ответ: Автор ответа: RaZoom Чего ж тебе Form2 такого плохого сделала, что ты ее в ее собственном обработчике выгрузки так пинаешь? :) Это работает: 'Первая форма Private Sub Command1_Click() Form1.Hide Load Form2 Form2.Show End Sub 'Вторая форма Private Sub Form_Unload(Cancel As Integer) Form1.Show End Sub Ответ: Автор ответа: Александр > Private Sub Form_Unload(Cancel As Integer) ' код в форме2 > Form1.Visible = False > Unload Form2 ' можно сказать, что имеет место рекурсия (т.е. ситуация "у попа была собака..."), что плохо сказывается на "самочуствии", например, стэка и пресекается самим VB. > Set Form2 = Nothing ' здесь это уже "удар оп почкам" Вот как раз для таких ситуаций оч-ч-ень полезно введение в форму события "Event". Т.е. структура примерно такая ("главная" - Form1, которая время от времени вынуждена вызывать Form2): Event MyEventTralialia [(argumentlist)]) - где-то вначале Form1 процедуры прочие, где где-то есть вызов Form2: Form2.Show ...... Sub Form1_MyEventTralialia [argumentlist] - продолжение обработки после завершения отработки в Form2! ' Здесь типа Unload Form2 (или Form2.Visible=False) 'всё-что-угодно ..... процедуры прочие |
Выпуск подготовили: |
Сурменок Павел |