Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Visual Basic: новости сайтов, советы, примеры кодов. Выпуск 308.


Информационный Канал Subscribe.Ru

Visual Basic: новости сайтов, советы, примеры кодов.
Выпуск 308.


VBNet VBMania
Ссылки:

  • GotDotNet
  • Улицы VB
  • Азбука VB
  • VB по русски
  • MDesign
  • DanSoft
  • Хрестоматия VB
  • VBCoder
  • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

       На сайте VBNet.Ru существенно усовершенствован раздел Магазин. Книжный отдел теперь автоматически обновляет список книг непосредственно с сайта оЗона. Также немного улучшен интерфейс в отделе компакт-дисков.
    Читайте!


    Содержание выпуска




    Новости сайта VBNet

    Дата: 02.11.2004 11:42 | Раздел: Примеры кода | Автор: empro

    Grey Player v. 2.1 - Новая версия плеера. В исходнике исправлены баги предыдущей версии и добавлена функция работы со списком Default. Также рассматривается работа с временными файлами.

    Дата: 01.11.2004 12:30 | Раздел: Статьи по VB | Автор: Салихов Рафаиль Ильдусович

    Использование счетчика. - Как "заставить" счетчик начинать нумеровать с произвольного номера и с произвольным инкрементом

    Дата: 01.11.2004 12:30 | Раздел: Статьи по VB | Автор: Салихов Рафаиль Ильдусович

    Резервирование БД. - Создание сжатых резервных копий базы данных

    Дата: 01.11.2004 12:23 | Раздел: Примеры кода | Автор: Kеrish

    Memon - Менеджер памяти. Удобный интерфейс, сидит в трее, занимает мало памяти и места. Обладает функцией очистки физ. памяти от накопившегося мусора.

    Дата: 01.11.2004 12:23 | Раздел: Примеры кода | Автор: Comanche

    Excel-style Color Picker - Симпатичный (и очень компактный) Color Picker в стиле Office XP. Сделан мной на базе кода, загруженного с сайта FreeVbCode.Com, - добавлен ряд полезных свойств и событий. Демо-проект прилагается. Сам контрол идёт в исходниках (CTL).

    Дата: 28.10.2004 10:42 | Раздел: Статьи по VB | Автор: Салихов Рафаиль Ильдусович

    Условное форматирование строк табличной части подформы - В одной программе понадобилось мне выделить строки в подчиненной форме для усиления визуального контроля....

    Дата: 27.10.2004 15:56 | Раздел: Статьи по VB | Автор: Салихов Рафаиль Ильдусович

    "Упакованное" хранение в MS Access - "Упакованное" хранение до 32-х стандартных логических полей (Boolean) в одном числовом поле таблицы



    Последние 20 тем форума на VBNet.Ru:

    10:40 / 3 ноя.  Help! Help! Help! | Хитов: 8 |  Ответов: 0
    09:56 / 3 ноя.  Совсем запутался, помогите отобрать данные | Хитов: 8 |  Ответов: 0
    09:14 / 3 ноя.  Помогите, типа... | Хитов: 18 |  Ответов: 3
    21:29 / 2 ноя.  Res | Хитов: 14 |  Ответов: 1
    18:15 / 2 ноя.  Разработка оффлайн-клиента | Хитов: 43 |  Ответов: 13
    18:09 / 2 ноя.  Как работать с crypt32.dll ? | Хитов: 24 |  Ответов: 1
    17:21 / 2 ноя.  initialize common controls | Хитов: 30 |  Ответов: 7
    15:09 / 2 ноя.  НеЧаВо | Хитов: 48 |  Ответов: 8
    13:38 / 2 ноя.  Скорость интернет-соединения | Хитов: 29 |  Ответов: 4
    09:15 / 2 ноя.  Как получить количество страниц в Report? | Хитов: 9 |  Ответов: 0
    04:20 / 2 ноя.  Оказывается при работе с базами данных... | Хитов: 28 |  Ответов: 0
    22:34 / 1 ноя.  DistributedWare | Хитов: 57 |  Ответов: 10
    18:48 / 1 ноя.  Вопрос по отображение HEX | Хитов: 54 |  Ответов: 12
    18:27 / 1 ноя.  FATAL.RU - Script Error | Хитов: 24 |  Ответов: 1
    16:46 / 1 ноя.  ХОСТ | Хитов: 33 |  Ответов: 2
    16:01 / 1 ноя.  VBA, Outlook 2K  | Хитов: 22 |  Ответов: 2
    14:09 / 1 ноя.  Определение раздела | Хитов: 42 |  Ответов: 1
    12:18 / 1 ноя.  ASP.NET:как грамотно сохранить состояние страницы | Хитов: 15 |  Ответов: 0
    11:23 / 1 ноя.  регистрация ActiveX | Хитов: 35 |  Ответов: 3
    07:23 / 1 ноя.  Как при печати отчета в Access принудительно закон | Хитов: 20 |  Ответов: 1


    Последние поступления в Библиотеку кодов:



    наверх


    Новости сайта MSDN

    • Новый региональный директор сети разработчиков MSDN в европейской части России
      В сентябре 2004 г. был назначен новый региональный директор Microsoft в европейской части России. Им стал Антон Смольянинов — начальник отдела исследований Департамента программных решений компании Digital Design (Санкт-Петербург).


    наверх


    Новости сайта GotdotNet



    Новые статьи:



    наверх


    Новости сайта dotSite

    Новые статьи:



    Новые примеры:



    наверх


    Один момент из жизни форума: Скорость.Графика.NET?

    Адерес темы: http://vbnet.ru/forum/show.aspx?id=60561

    Вопрос:
    Автор вопроса: K&M

       Кто мне подскажет, неужели .NET и скорость работы с графикой - две несовместимые вещи? Может я напрасно наговариваю на .NET , но есть ли у .NET Framework средства для быстрого(Желательно быстрее, чем Graphics) для прорисовки хотя бы следующих фигур: Точка, Линия и Треугольник цветом RGB? (А если в него можно впихнуть текстуру типа IMAGE, то это вообще просто супер.) Неужели только DirectX?


    Ответы:

    Автор: Павел
       GDI+ не годится для таких задач. Используйте unmanaged GDI.

    Автор: K&M
       GDI, где его брать и как с ним работать?

    Автор: Павел
       GDI - это unmanaged DLL, содержащая функции Win32API для рисования, вроде BitBlt, TextOut и прочих.

    Автор: Artyom
       В MSDN помотри следующий раздел:

    MSDN Library - Graphics and Multimedia - Windows GDI - SDK
    Documentation - Windows GDI.

    Дальше, думаю, не заблудишься.



    наверх


    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:


    Автор вопроса: Mail.ru

    Ответ ожидается по этому адресу

       Пишу качалку на VB6, необходимо с выделенного фрагмента в броузере скопировать все ссылки. Буду рад любой информации, будь то исходники или ссылки.


    Автор вопроса: Стахановмежрайгаз

    Ответ ожидается по этому адресу

       Нужно заполнить TreeView дисками и папками (и другими элементами) как дерево каталогов в проводнике или Nero. Желательно чтоб с корзиной, моим компом и сетевым окружением. Но я согласен и на меньшее. Умоляю не предлагайте контролы.


    Автор вопроса: Стахановмежрайгаз

    Ответ ожидается по этому адресу

       Может кто-нибудь скинуть код, как отослать элемктронную почту? Надо только установить соединение и отослать текстовое сообщение (без аттачей). Желательно ещё узнавать список имеющихся соединений.

    "ShellExecute (..."mailto:"...)" не предлагать.


    Автор вопроса: Алекс

    Ответ ожидается по этому адресу

       Используя SendKeys можно имитировать нажатие клавиши. А как имитировать нажатие клавиши мыши? Левой, правой и средней?


    Автор вопроса: Юрий

    Ответ ожидается по этому адресу

       Как в VB6 набрать номер телефона, т.е. позвонить?




    Ответы:


    Вопрос:

       Как, при открытии (или закрытии) каждой книги EXCEL автоматом с помощью VBA выполнить определенные действия, например вывести ее имя в log.txt?

    Ответ:

    Автор ответа: C...R...a...S...H

    Private Sub Workbook_BeforeClose(Cancel As Boolean)

    End Sub

    Private Sub Workbook_Deactivate()

    End Sub

    Эти два отвечают за закрытие

    Private Sub Workbook_Open() - за открытие


    Вопрос:

       Как в VB6 определить, на какой элемент (точнее его имя) наведен курсор мыши? Обрабатывать у каждого событие MouseMove не подходит, слишком много элементов на форме (свыше 60). Индексирование тоже не подходит.

    Ответ:

    Автор ответа: C...R...a...S...H

    Поможет вычисление координат.
    Создай массив точек, где будут храниться Left и Top, Width и Height твоих элементов
    А затем в цикле проверяй.



    Ответ:

    Автор ответа: RaZoom

    На счет получения имени, даже и не знаю, но может это поможет. Обработчик один (MouseProc) и он всегда получает сообщения, не зависимо от того, над самой формой бегает курсор или над каким-то объектом на форме. А заодно приоткроет завесу над тем, хто ж такие эти хуки для тех кому лень порыться в инете. :)

    Код модуля:

    Option Explicit
    Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long,
    lParam As Any) As Long
    Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As
    Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
    Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
    Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String,
    ByVal cch As Long) As Long
    Public Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long

    Public Type POINTAPI
             x As Long
             y As Long
    End Type

    Public Type MOUSEHOOKSTRUCT
             pt As POINTAPI
             hwnd As Long
             wHitTestCode As Long
             dwExtraInfo As Long
    End Type

    Public Const WH_MOUSE = 7
    Public hHook As Long

    Public Function MouseProc(ByVal nCode As Long, ByVal wParam As Long, ByRef lParam As MOUSEHOOKSTRUCT) As Long
         Dim str As String, lLen As Long
         'lParam.hwnd - хендл окна, которому предназначалось сообщение (над
         'которым бегает курсор) не имя, конечно, но через хендл тоже много
         'чего можно проделать.
         'lParam.pt - координаты курсора (в поинтах, абсолютные). Если
         'хендл не подходит (например, у label'ов нет хендла), можно
         'проанализировать врукопашную, над каким окном зависла крыcа
         If nCode >= 0 Then 'MSDN рекомендует не обрабатывать событие, если nCode < 0
    '------- делаем-что-надо -----------------------------------------------------
             lLen = GetWindowTextLength(lParam.hwnd) + 1
             str = Space(lLen)
             GetWindowText lParam.hwnd, str, lLen
             Form1.Label1.Caption = lParam.pt.x & ", " & lParam.pt.y & " - " & str
    '-----------------------------------------------------------------------------
         End If
         'вызываем следующую ловушку, вдруг стоит кей-логгер и он обломается, если не сделать этого ;)
         MouseProc = CallNextHookEx(hHook, nCode, wParam, lParam)
    End Function


    Код формы:
    Private Sub Form_Load()
         'Ставим ловушку
         hHook = SetWindowsHookEx(WH_MOUSE, AddressOf MouseProc, 0, App.ThreadID)
         'SetWindowsHookEx(ловим мышь, _
         'адрес процедуры обработки, _
         'функция в этой же программе, _
         'ловим события только в нашем приложении)
    End Sub


    Private Sub Form_Terminate()
         'Снимаем ловушку при выходе.
         UnhookWindowsHookEx hHook
    End Sub


    Вопрос:

       Допустим, имеется следующая строка:
    215@243а@в21ав@mailto:name@domen.com”543253@4@3@54”>name2@domen.com!21!”
    Как из нее выдрать email’ы? При этом нужно учесть имена, домены и Интернет зоны в email’ах могут быть разными. Email’ы в строках могут быть отделены от текста (например пробелами), так сливаться с текстом. (VB .Net)

    Ответ:

    Автор ответа: Tigre

        Можно воспользоваться регулярными выражениями. Для использования регулярных выражений в своих программах, необходимо подключить библиотеку Microsoft Windows Script. Такая библиотека поставляется с IE4 (и выше). Для подключения, зайдите в Project->References и поставьте флажок у VBScript Regular Expressions. Теперь к Visual Basic добавился объект RegExp, который содержит в себе все, что нужно для работы с регулярными выражениями.

    Dim myRegExp As New RegExp ' создаём экземпляр RegExp'a
    myRegExp.MultiLine = False ' текст однострочный
    myRegExp.Global = True ' будем проходить всю строку
    myRegExp.IgnoreCase = True ' игнорируем регистр символов
    myRegExp.Pattern = ".+@.+\..+" ' маска

    Dim aMatch As Match ' один из совпавших образцов
    Dim colMatches As MatchCollection ' коллекция этих образцов
    Dim testString As String ' тестируемая строка

    testString = "215@243а@в21ав@mailto:name@domen.com”543253@4@3@54”>name2@domen.com!21!&rdquo" ' текст для теста

    Set colMatches = myRegExp.Execute(testString) ' запускаем!

    For Each aMatch In colMatches ' проходим по всей коллекции
         List1.AddItem aMatch.SubMatches(0) 'Это первый совпавший образец (\1). Для \2 нужно смотреть SubMatches(1) и т.д.
    Next aMatch


    Вопрос:

       Подскажите пожалуйста, есть картинка в формате JPEG 128x128, нужно сузить ее до 128х96 и сохранить. Пробовал при помощи Picture.image, но картинка снизу обреяается. Если есть у кого исходники, или любая консультация буду очень признателен.

    Ответ:

    Автор ответа: TNR

    'Вот только прочитал твой вопрос и сочинил код - сырой, но полностью рабочий
    'Создай на форме Picture1 и Picture2, помести Command1
    'и скопируй этот код.
    'В Picture1 загружается твой JPEG , а в Picture2 получаешь картинку
    'c измененными размерами
    'Всё работает, только чуть подправишь под свои нужды...
    'Извини что без сглаживания ;-)


    Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As
    Long) As Long
    Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long


    Private Sub Command1_Click()
    Dim x As Integer, y As Integer, color As Long
    'Загружаешь свой JPEG 128x128
    Picture1.Picture = LoadPicture("c:\Do.jpg")
    Picture1.AutoSize = True
    Picture2.Move Picture2.Left, Picture2.Top, (128 + 4) * 15, (97 + 3) * 15
    Picture2.Cls
    Picture2.AutoRedraw = True
    For y = 1 To 128
         For x = 1 To 128
             color = GetPixel(Picture1.hdc, x, y)
             SetPixel Picture2.hdc, x, Int(y * 95 / 128) + 1, color
         Next x
    Next y
    'Сохраняешь BMP 128x96
    SavePicture Picture2.Image, "c:\Posle.bmp"
    End Sub



    Ответ:

    Автор ответа: Cerber

    Public Declare Function StretchBlt Lib "gdi32" Alias "StretchBlt" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long,
    ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth
    As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long

    Работает так же как и BitBlt, только еще сжимает или растягивает картинку до определенного размера.


    Вопрос:

       Как добвить запись в связанные таблицы реляционной базы данных? Связь между таблицами многие к одному. Хотелось бы пример на VB5.

    Ответ:

    Автор ответа: Ольга

    Я делаю это очень просто. Сначала просто открываю две таблицы. Добавляю запись, сначала в одну таблицу, потом в другую. Потом беру значение идентифицирующего поля "Код" для записи из той таблицы, на которую ссылаются, и присваиваю это значение в поле со ссылкой другой таблицы, которая на эту запись ссылается. И не важно какая связь один-ко-многим, или многие-ко-многим.


    Вопрос:

       Как можно в TextBox перевести курсор на новую строчку при нажатии кнопки (или при обращении к функции), подобно кнопке Enter?

    Ответ:

    Автор ответа: Tigre

    TextBox.text = TextBox.text + CHR(10) + CHR(13)



    Ответ:

    Автор ответа: Ольга

    Добавьте в текст символы перехода на новую строку vbNewLile.



    Ответ:

    Автор ответа: C...R...a...S...H

    Text1.Text = Text1.Text & vbCrLf




    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх


    Выпуск подготовили:

    Сурменок Павел

    http://subscribe.ru/
    http://subscribe.ru/feedback/
    Подписан адрес:
    Код этой рассылки: comp.soft.prog.vbnewsadvices
    Отписаться

    В избранное