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

VBNet
  • Статьи
  • Библиотека кодов
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

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

    Новый выпуск!
    Читайте!

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

    • Книги

    • Имена компьютеров в сети
    • Определение раскладки клавиатуры любого окна
    • Создание директории любой степени вложености
    • Функция для изменения расширения файла
    • Определить, имеет ли папка подпапки

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

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти здесь.

    наверх

    Имена компьютеров в сети

    Очень необходимый пример, который позволяет узнать имя подсети, в которой вы работаете, а также имена всех компьютеров в данной сети, а также имена ресурсов, доступ к которым открыт на каждом из компьютеров.

    Большой объем данного примера не позволяет разместить его на страницах "Библиотеки кодов", поэтому вот вам ссылка для загрузки проекта в ZIP-файле.

    СКАЧАТЬ ПРИМЕР

    наверх

    Определение раскладки клавиатуры любого окна

    Хотите знать, какая раскладка клавиатуры у любой программы, запущенной в данный момент? Будь то Microsoft Word, простейший Блокнот или любая программа для редактирования текстов. Теперь нет ничего проще. Благодаря форуму http://bbs.vbstreets.ru и человеку, ответившему на этот вопрос, вы можете использовать этот пример в своих программах.

    Прежде всего, вам понадобится модуль из ранее опубликованного примера "Поиск hwnd процесса на панели задач", ну а на основной форме добавьте элемент CommandButton.

    '---КОД МОДУЛЯ---
    Private Declare Function EnumWindows& Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long)
    Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
    Private Declare Function IsWindowVisible& Lib "user32" (ByVal hwnd As Long)
    Private Declare Function GetParent& Lib "user32" (ByVal hwnd As Long)
    Dim sPattern As String, hFind As Long

    Function EnumWinProc(ByVal hwnd As Long, ByVal lParam As Long) As Long
    Dim k As Long, sName As String
    If IsWindowVisible(hwnd) And GetParent(hwnd) = 0 Then
    sName = Space$(128)
    k = GetWindowText(hwnd, sName, 128)
    If k > 0 Then
    sName = Left$(sName, k)
    If lParam = 0 Then sName = UCase(sName)
    If sName Like sPattern Then
    hFind = hwnd
    EnumWinProc = 0
    Exit Function
    End If
    End If
    End If
    EnumWinProc = 1
    End Function

    Public Function FindWindowWild(sWild As String, Optional bMatchCase As Boolean = True) As Long
    sPattern = sWild
    If Not bMatchCase Then sPattern = UCase(sPattern)
    EnumWindows AddressOf EnumWinProc, bMatchCase
    FindWindowWild = hFind
    End Function

    '---КОД ФОРМЫ---
    Private Declare Function GetKeyboardLayout Lib "user32" (ByVal dwLayout As Long) As Long
    Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
    Private Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long
    Private Const LOCALE_SENGLANGUAGE = &H1001
    Public Function GetLanguageInfo(ByVal hwnd As Long) As String
    Dim sReturn As String, nRet As Long
    Dim pID As Long, tId As Long, LCID As Long
    tId = GetWindowThreadProcessId(hwnd, pID)
    LCID = LoWord(GetKeyboardLayout(tId))
    sReturn = String$(128, 0)
    nRet = GetLocaleInfo(LCID, LOCALE_SENGLANGUAGE, sReturn, Len(sReturn))
    If nRet > 0 Then GetLanguageInfo = Left$(sReturn, nRet - 1)
    End Function
    Public Function LoWord(DWORD As Long) As Integer
    If DWORD And &H8000& Then
    LoWord = &H8000 Or (DWORD And &H7FFF&)
    Else
    LoWord = DWORD And &HFFFF&
    End If
    End Function

    Private Sub Command1_Click()
    'MsgBox GetLanguageInfo(FindWindowWild("FineReader*", False))
    MsgBox GetLanguageInfo(FindWindowWild("Microsoft Word*", False))
    End Sub

    наверх

    Создание директории любой степени вложености

    Данный пример работает на всех версиях ВБ (5 и 6, поскольку более старые версии ВБ я практически не видел).

    Sub MakeDirPath(dirname As String)
    Dim i As Long, path As String
    Do
    i = InStr(i + 1, dirname & "\", "\")
    path = Left$(dirname, i - 1)
    If Right$(path, 1) <> ":" And Dir$(path, vbDirectory) = "" Then
    MkDir path
    End If
    Loop Until i >= Len(dirname)
    End Sub

    Private Sub Command1_Click()
    Call MakeDirPath("c:\1\2\3\4\")
    End Sub

    наверх

    Функция для изменения расширения файла

    Данный пример очень прост, поэтому особых пояснений не нужно.

    Function ChangeFileExtension(FileName As String, Extension As String, Optional AddIfMissing As Boolean) As String
    Dim i As Long
    For i = Len(FileName) To 1 Step -1
    Select Case Mid$(FileName, i, 1)
    Case "."
    ChangeFileExtension = Left$(FileName, i) & Extension
    Exit Function
    Case ":", "\"
    Exit For
    End Select
    Next
    If AddIfMissing Then
    ChangeFileExtension = FileName & "." & Extension
    Else
    ChangeFileExtension = FileName
    End If
    End Function

    Private Sub Command1_Click()
    MsgBox ChangeFileExtension("ggg.htm", "txt")
    MsgBox ChangeFileExtension("ggg", "txt", True)
    End Sub

    наверх

    Определить, имеет ли папка подпапки

    Private Const MAX_PATH = 260
    Private Type SHFILEINFO
    hIcon As Long
    iIcon As Long
    dwAttributes As Long
    szDisplayName As String * MAX_PATH
    szTypeName As String * 80
    End Type
    Private Declare Function SHGetFileInfo Lib "Shell32" Alias "SHGetFileInfoA" (ByVal pszPath As Any, ByVal dwFileAttributes As Long, psfi As SHFILEINFO, ByVal cbFileInfo As Long, ByVal uFlags As Long) As Long

    Function FolderHasSubFolders(ByVal sPath As String) As Boolean
    Const SFGAO_HASSUBFOLDER = &H80000000
    Const SHGFI_ATTRIBUTES = &H800
    Dim FInfo As SHFILEINFO
    SHGetFileInfo sPath, 0, FInfo, Len(FInfo), SHGFI_ATTRIBUTES
    FolderHasSubFolders = (FInfo.dwAttributes And SFGAO_HASSUBFOLDER)
    End Function

    Private Sub Command1_Click()
    MsgBox FolderHasSubFolders("C:\Program Files")
    MsgBox FolderHasSubFolders("C:\Program Files\NetMeeting")
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

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

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

    Вопросы:

    Автор вопроса: kakerss

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

    у меня 4 вопроса но особенно меня волнуют 1 и 4(в особенности) вопросы.

    1).как через winsock отправлять файлы
    2).как из *dll использовать ресурсы
    3).как с помощью vb запорлить папку
    4).как в ходе работы программы записовать текст прямо в *exe-шник программы и читать его от туда!

    Автор вопроса: Николай Шаманов

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

    Где найти библиотеку VB со статистическими или аналитическими функциями, например вычисление корреляции между массивами?
    Всё-таки испольяование Excel тяжеловесно!

    Автор вопроса: HoodWin

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

    Как ассоциировать приложение с какой либо папкой. Т. е. чтобы при её открытии запускалась и программа.

    Автор вопроса: Vadim

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

    Как узнать рассшареные ресурсы на удаленом компе.

    Автор вопроса: ALEX

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

    А можно передать "нажатие" клавиш на клаве программе, которая уже запущена?

    Автор вопроса: Лёха

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

    Кто знает как получить содержимое ListBox с помощью API???

    Автор вопроса: Kirill I. Vinokurov

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

    1) Мне надо чтобы файл readme.txt записывался на все компьютеры в сети, например, в папку C:\Мои документы\.
    2) Подскажите где можно найти подробное описание работы с MAPI. Можно (и нужно :)) ссылку.

    Автор вопроса: efimov_oleg

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

    Существует какой-либо контрол для отображение полей БД в виде таблицы, и как им пользовааться. А то использовать несколько ListBox-ов кажется перегибом.

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

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

    Как использовать файл "programm.exe.manifest". У меня однажды получилось, интерфейс действительно стал в стиле ХР, но потом убрал ссылку на какую-то библиотеку и все пропало. Win XP начал выдавать ошибку в msvbm60.dll прияапуске приграммы. Удаляю .manifest - все работает, но интерфейс становится стандартным. Как это исправить?

    Автор вопроса: XAM

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

    Суть проблемы:
    есть база данных (mdb), в которой есть например 5 полей, первое из которых - время записи. Хочется просматривать значения полей в виде графиков. Использовал для этой цели MSChart, привязанный к Adodc. Данные отображаются сносно, но я не смог найти, как заставить MSChart отображать на оси времени не номера записей (R1...R5)а значения поля времени соответствующих записей. Кто знает, как это сделать не сильно выворобушкываясь? Или есть какой-нить более продвинутый контрол?

    Автор вопроса: ShAdE

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

    Кто-нть знает как можно поместить свой эелмент в панель управления, как например это делает ReGet?? Принимаются любые мысли и ссылки на ресурсы, посвященные этому вопросу...

    Автор вопроса: Ivan Salnikov

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

    Как можнл перехватить нажатие клавиши tab на каком нибудь контроле, keypress и keydown не работают. Может надо пользоваться какой-нибудь API-шной функцией, поскольку вроде Windows перехватывает упрвление на себя?

    Ответы:

    Вопрос:

    Подскажите как открыть Базу данных Microsoft Access 2000? С помощью Data1.databasename не получается, ругается что не подходящий формат!

    Ответ:

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

    Используй DAO 3.6 - в ссылках редактора (примерно там где добавляются новые компоненты)
    А свой элемент дата запускай таким образом:

    dim mDb as database
    set mDb=opendatebase("Имя файла")
    set data1.recordset=mDb.openrecordset("Название таблицы или SQL-запрос", dbopendynaset) 'или Dbopentable, Dbopensnapshot....

    Будет работать как из пушки, но будут проблемы с подготовкой дистрибутива - стандартный паковщик "заточен" под DAO 3.5 и недостающие компонеты придется доставлять "ручками"...

    Вопрос:

    Суть проблемы:
    Создается файл *.mdb, в котором создается таблица (например на 5 полей), в которую затем пишутся real-time данные.
    Проблема в том, что из-за св-ва Required=true прога требует обязательного заполнения данными всех полей. А данные (иногда бывает) могут отсутствовать в некоторых полях.
    Каким образом и где в коде установить св-во Required в false?
    Или есть другой выход из положения?

    Ответ:

    Автор ответа: Александр Чернов

    При создании полей в Access-е 97 с пом. DBEngine по умолч. св-во Required = False. Если же ты польз-ся чем-то, что по умолч. ставит это св-во в Труе, то устанавливай св-во в лоб:

    Dim dbNew As Database
    Dim tdNew As TableDef
    Dim fldNew As Field

    Set dbNew = DBEngine.CreateDatabase("D:\db1", dbLangCyrillic)
    Set tdNew = dbNew.CreateTableDef("TempTable")

    Set fldNew = tdNew.CreateField("fld1", dbText, 20)
    fldNew.Required = False
    tdNew.Fields.Append fldNew

    Set fldNew = tdNew.CreateField("fld2", dbLong)
    fldNew.Required = False
    tdNew.Fields.Append fldNew

    Set fldNew = tdNew.CreateField("fld3", dbCurrency)
    fldNew.Required = False
    tdNew.Fields.Append fldNew

    Set fldNew = tdNew.CreateField("fld4", dbInteger)
    fldNew.Required = False
    tdNew.Fields.Append fldNew

    Set fldNew = tdNew.CreateField("fld5", dbBoolean)
    fldNew.Required = False
    tdNew.Fields.Append fldNew

    dbNew.TableDefs.Append tdNew

    dbNew.Close

    Set fldNew = Nothing
    Set tdNew = Nothing
    Set dbNew = Nothing

    А если тебе надо какое-то временное хранилище для real-time, то может воспользоваться чем-то попроще, напр. текстовым файлом с разделителями или dbf?

    Вопрос:

    Как перехватить сообщения Windows (все подряд MsgBox).
    А еще лучше определить строку, которая находится под мышкой, в любом приложении Win.
    Это вобще возможно?

    Для того, чтобы легче было понять проблему объясню на пальцах.
    Представьте лупу из специальных возможностей Windows.
    Висит она значит в углу, и отображает только текст, находящийся под мышкой (без графики).
    Или текст сообщения, выскочившего при ошибке, копировании, перемещении и т.д.

    На самом деле мне нужна не лупа, а нечто другое, поэтому не пишите как увеличить картинку. Мне нужен только текст.

    Ответ:

    Автор ответа: Лёха

    Если знать hWnd окна под курсором, то с помощью функции WindowTextFromWnd можно получить текст сообщения.

    Ответ:

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

    Как перехватывать системные сообщения - незнаю, а вот текст под курсором прочитать можно (вот тут кстати Артём Кривокрисенко и неправ :о) ): форма со свойством авторедрав = труе и таймером (интервал 200 - вполне достаточно)
    'кстати кто спрашивал про енумвиндовс - можно тут посмотреть в действии

    МОДУЛЬ:

    Option Explicit

    Public Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long,
    ByVal lParam As Long) As Long
    Public Declare Function EnumChildWindows Lib "user32" (ByVal hWndParent As
    Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
    Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA"
    (ByVal hWnd As Long, ByVal nIndex As Long) As Long
    Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal
    hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As
    Long

    Public Const WM_GETTEXT = &HD
    Public m_Count As Long
    Public m_TopLevel As Long
    Public m_Buffer As String
    Public m_Results As String

    Global hWndOver As Long
    Global hWndParent As Long
    Global hWndParentOld As Long

    Public Function SeeText(Results As String) As Long
    m_Count = 0
    m_Results = ""
    m_Buffer = Space$(1024)
    Call EnumWindows(AddressOf EnumMain, 0&)
    Results = m_Results
    SeeText = m_Count
    End Function

    Public Function EnumMain(ByVal hWnd As Long, ByVal lParam As Long) As Long
    m_TopLevel = hWndOver
    Call EnumChildWindows(hWndParentOld, AddressOf EnumChild, 0&)
    End Function

    Public Function EnumChild(ByVal hWnd As Long, ByVal lParam As Long) As Long
    SendMessage m_TopLevel, WM_GETTEXT, Len(m_Buffer), ByVal m_Buffer
    m_Results = m_Results & TrimNull(m_Buffer) & vbCrLf
    m_Count = m_Count + 1
    End Function

    Public Function TrimNull(ByVal StrIn As String) As String
    Dim nul As Long
    nul = InStr(StrIn, vbNullChar)
    Select Case nul
    Case Is > 1
    TrimNull = Left$(StrIn, nul - 1)
    Case 1
    TrimNull = ""
    Case 0
    TrimNull = Trim$(StrIn)
    End Select
    End Function

    '****

    ФОРМА:

    Option Explicit
    Private OldX As Single
    Private OldY As Single
    Private TpX As Integer ' TwipsPerPixelX
    Private HotX As Integer
    Private HotY As Integer
    Private Type POINTAPI
    X As Long
    Y As Long
    End Type
    Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As
    Long
    Private Declare Function WindowFromPointXY Lib "user32" Alias
    "WindowFromPoint" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
    Private Declare Function GetParent Lib "user32" (ByVal hWnd As Long) As Long
    Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA"
    (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

    Sub Timer1_Timer()
    Dim pt32 As POINTAPI
    Dim ptx As Long, pty As Long
    Static hWndLast As Long
    ' позиция курсора
    GetCursorPos pt32
    ptx = pt32.X
    pty = pt32.Y
    If ptx = HotX And pty = HotY Then Show
    ' окно под курсором
    hWndOver = WindowFromPointXY(ptx, pty)
    ' изменения
    hWndLast = hWndOver
    Cls

    hWndParent = GetParent(hWndOver)
    If hWndParent <> 0 Then
    hWndParentOld = hWndParent
    Else
    hWndParentOld = hWndOver
    End If

    1 hWndParent = GetParent(hWndParent)
    If hWndParent <> 0 Then
    hWndParentOld = hWndParent
    GoTo 1
    End If

    Dim msg As String
    If SeeText(msg) Then
    Else
    msg = "Нет там текста"
    End If
    Print "Текст в подмышкином окне: " + msg
    Height = (Height - ScaleHeight) + CurrentY
    End Sub
    'їShadow

    '******
    вроде работает
    Если скажут как ловить системные сообщения - делись

    Вопрос:

    Простейшая ситуация, но не знаю как ее решить. Есть два ListBox, в первом и во втором содержится взаимосвязанная информация. Возникает ситуация когда количество строк в ListBox1 не вмещаются на экран, и для просмотра, тех что не "влезли" на экран приходится пользоваться полосой прокрутки. Можно ли сделать так что бы при использовании полосы прокрутки в ListBox1, информация в ListBox2, также поднималась (или опускалась) синхронно с информацией в ListBox1 ?

    Ответ:

    Автор ответа: Александр Чернов

    Используй событие Scroll первого списка:

    Private Sub List1_Scroll()
    List2.TopIndex = List1.TopIndex
    End Sub

    Вопрос:

    Как вывести " на экран с текстом

    Ответ:

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

    CHR(34) или """"

    Ответ:

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

    "Печатаем """ в тексте"

    или

    "Печатаем " & Chr(34) & " в тексте"

    Вопрос:

    При попытке подключить ActiveX компонент выскакивает ошибка:

    The file 'C:\WINDOWS\SYSTEM\VBDirect8.ocx' was not registerable as an ActiveX component (Файл 'C:\WINDOWS\SYSTEM\VBDirect8.ocx' не был registerable как ActiveX компонент)

    У меня Win98, DirectX 7.1. Может быть дело в DirectX? Что значит такая ошибка?

    Ответ:

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

    "not registerable" = "не способен к регистрации", т.е. не соответствует стандартам, принятым для регистрации AcriveX. Причины этого могут быть разные, но это имя действительно не отвечает на стандартные вопросы при регистрации...

    Вопрос:

    Как считать параметры переданные программе в командной строке. Типа argc[] or argv[] in С#

    Ответ:

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

    Если я правильно понял:
    запускаешь пргу так:

    EXENAME.exe qwerty

    а в form_load'e пишешь

    dim qwerty as string
    qwerty=command

    в итоге qwerty="qwerty"

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Функция Command возвращает параметры коммандной строки.

    Вопрос:

    Подскажите, как и какие команды надо отправлять окну Winamp'а зная его hdc и прочее что бы останавливать или продолжать воспроизведение, менять уровень звука и другое?

    Ответ:

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

    Я думаю, нужно искать каждую кнопку и посылать ей что-то типа Click

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Зная hdc, ты можешь только рисовать на этом окне. Управлять им можно, зная его hwnd.

    Вопрос:

    Люди помогите "первоклашке"!
    Что значит работать с портами, или посылать данные на порт?
    Есть ли про это документация <ссылка>?
    Можно ли управлять эл/питанием на порту?
    К примеру у меня есть подключёный к COM`у провод от старой мышки.
    А на конце провода какое-нибудь устройство... например эл/моторчик... Можно ли подавать напрягу то +/-, то -/+ ? Как?

    Ответ:

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

    1. Порт - это некоторое значение в адресном пространстве компьютера, выставляемое на какое-то мгновение, используя Out-команду процессора. Т.е. у команды Out мы должны задать значение адреса и значение (комбинацию нулей и единиц), которое должно быть выставлено по этому адресу.

    2. Порт связан "проводами" с некоторым устройством, которое должно "услышать" свою команду за короткое время (доли секунды) и отреагировать на неё, т.е. хотя бы запомнить переданную ему комбинацию нулей и единиц. А далее оно может поступать по своему усмотрению. Желательно также, чтобы оно известило подобным образом своего "заказчика", что оно хотя бы "расслышало" приказ. Поэтому, кроме программы, используют ещё и специальные микросхемы, важнейшим из элементов которых является понятие "регистра", способного "защёлкнуть", т.е. запомнить по команде значение, чтобы действовать дальше.
    3. Не всякая операционная система даст возможность напрямую "дострелить" до порта. В частности, Windows XP, Windows 2000, Windows NT и другие, которые вынуждены "бороться" за свое выживание. Возникает следующий термин "драйвер".

    4. Com-порт - тоже регистр и его возможности электропитания крайне малы: т.е. на наушник может хватить, а на запуск реле и не хватит. Т.е. этот регистр надо запомнить в регистре приёмника, а потом, "отсоединившись" от компьютера запустить, например, троллейбус в дорогу.

    Вот и всё. Т.е. по-хорошему для начала надо освоить понятия "регистр", "драйвер". А они потянут за собой и магистрали, и кольца защиты, и семафоры, и микроконтроллеры, и интерфейсы и массу других непонятных вещей :-)

    Вопрос:

    Как сделать, чтобы все буквы в тексте заменялись на какие-то другие буквы?
    Например: буквы а,б,в - заменялись на п,м,и.

    Ответ:

    Автор ответа: Артем Кривокрисенко

    strText=replace(strText,"а", "п")

    Все буквы "а" заменятся на "п"

    Ответ:

    Автор ответа: Лёха

    В VB есть такая функция Replace (строка в которой ищем,что ищем,на что
    заменить). Например:

    text1.text=Replace (text1.text,"а","п")

    Ответ:

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

    Если при наборе текста, то обработкой событий KeyPress элемента формы, а если в уже имеющемся тексте, то, например, комбинацией InStr и Mid.

    Вопрос:

    вот проблема такая, ни как не получается ярлычек создать, еслть ли у кого-нибудь искодики для создания этих самых ярличков?

    Ответ:

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

    Private Declare Function OSfCreateShellLink Lib "vb6stkit.dll" Alias "fCreateShellLink"
    (ByVal lpstrFolderName As String, ByVal lpstrLinkName As String, ByVal lpstrLinkPath
    As String, ByVal lpstrLinkArguments As String, ByVal fPrivate As Long, ByVal sParent As
    String) As Long

    Private Sub Form_Load()
    OSfCreateShellLink "C:\Win\Рабочий стол" & vbNullChar, "Блокнот", "C:\Win\Notepad.exe", "", True, ""

    End Sub

    Вопрос:

    Не могу раяобраться, в чем дело? Запутался в "трех соснах".
    Обычный SQL-яапрос:
    "Select Sum(Volume) from Fuel" - отрабатывается отлично.
    "Select Sum(Volume) from Fuel Where Year(Date) = nYear"
    выдается ошибка, что не хватает каких-то параметров. Причем, если яаменить переменную nYear на конкретное число, скажем, 2002, то все в порядке. (Volume и Date - поля таблицы Fuel). Подскажите пожалуйста, в чем может быть причина?

    Ответ:

    Автор ответа: Сергей

    А что такое nYear - переменная?

    "Select Sum(Volume) from Fuel Where Year(Date) = " & nYear

    Ответ:

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

    Надо писать так:

    "Select Sum(Volume) from Fuel Where Year(Date) =" & nYear

    Ответ:

    Автор ответа: Chernov Dmitry

    Дело вообще-то в том, что обработчик SQL-запросов ничего не знает о переменных VB. Это другая программа. Он знает только имена полей таблицы из базы данных. А поля nYear там нету. Соответственно он и ругается...
    Поэтому пиши следующим образом:

    "Select Sum(Volume) from Fuel Where Year(Date) = " & nYear

    Если хечется узнать об этом более подробно, ищи документацию по SQL.

    Ответ:

    Автор ответа: Корик

    На мой взгляд тут одно из двух:

    1. Очень нежелательно использовать слово Date для названия поля в базе
    данных

    2. Если я правильно понял, то ты эти выражения используешь как string, а
    nYear - переменная с определённым годом. Тогда попробуй написать так:

    "Select Sum(Volume) from Fuel Where Year(Date) =" & nYear

    Ответ:

    Автор ответа: Грегер Сергей

    "Select Sum(Volume) from Fuel" - отрабатывается отлично.
    "Select Sum(Volume) from Fuel Where Year(Date) = nYear"
    Дел в том, что запрос -это строка, а nYear - переменная.
    Правильно будет так:
    "Select Sum(Volume) from Fuel Where Year(Date) ='" & CDATE(nYear) & "'"
    Общее правило - значения внутри запроса должны быть в одинарных кавычках.
    Данный пример годится в случае если nYear будет менятся.
    CDATE(nYear)- преобразование типа DATE в STRING. Из опыта советую не писать длинный строковый запрос а лепить его из несколких строк:

    SQLstr="Select Sum(Volume) from Fuel Where Year(Date) ='"
    fullSQL=SQLstr & CDATE(nYear) & "'"

    Ответ:

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

    скорее всего должно быть так:

    "Select Sum(Volume) from Fuel (Where (Year(Date) = " & nYear & "))"

    Ответ:

    Автор ответа: Damir Kh

    "Select Sum(Volume) from Fuel Where Year(Date) = #" & nYear & "#"

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

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

    наверх

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

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


Выпуск 152.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

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

    Читайте!

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

    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Один момент из жизни форума: Как, используя ADODC, передать в хранимую проце...

    • Доска объявлений

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

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

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

    Дата: 13.04.2003 05:45 | Раздел: Примеры кода | Автор: Millenium

    Игра в Кости - Простая игра в кости... .. Вы загадываете цифру и бросаете кости.

    Дата: 11.04.2003 10:51 | Раздел: ActiveX контролы | Автор: Вологин Артём

    WinControl 1.5 - Новая версия контрола, теперь собрано около 55 функций для работы с Windows. Имеется Help.

    Дата: 09.04.2003 11:31 | Раздел: ActiveX контролы | Автор: SCINER

    Advanced window hook - Контрол позволяет получать сообщения, посылаемые выбравнному окну.

    Дата: 07.04.2003 10:47 | Раздел: Примеры кода | Автор: Kir Alper

    WinExit III - Простенькая прога : Выход из Windows (XP) Видно ее работу только в SysTray. Иконка в SysTray "живая"(True Color). Добавлена быстрая перезагрузка, выключение, LogOff,Mailto,время работы Windows, получение своего IP-address и переменных среды. Добавлена возможность AutoStart. Добавлены украшательства.

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

    11:06 / 13 апр. Люди ! | Хитов: 0 | Ответов: 0
    08:49 / 13 апр. народ помогите нужен DTMF декодер | Хитов: 1 | Ответов: 0
    02:46 / 13 апр. Админам | Хитов: 14 | Ответов: 1
    02:15 / 13 апр. Админам, мое недоумение. | Хитов: 13 | Ответов: 2
    02:15 / 13 апр. Админам, мое недоумение. | Хитов: 7 | Ответов: 0
    00:56 / 13 апр. база данных на VB | Хитов: 19 | Ответов: 0
    21:27 / 12 апр. переменные | Хитов: 15 | Ответов: 0
    21:21 / 12 апр. Adminam!!! | Хитов: 29 | Ответов: 10
    20:44 / 12 апр. 12 апреля | Хитов: 44 | Ответов: 1
    19:15 / 12 апр. VBView v1.0 | Хитов: 50 | Ответов: 5
    18:15 / 12 апр. Какую защиту поставить | Хитов: 27 | Ответов: 0
    16:50 / 12 апр. Поддержка XP Themes в Common Controls 6.0 | Хитов: 8 | Ответов: 0
    14:25 / 12 апр. Помогите чайнику | Хитов: 26 | Ответов: 0
    13:27 / 12 апр. Реестр | Хитов: 22 | Ответов: 0
    12:58 / 12 апр. Как написать свой DirectSound? | Хитов: 10 | Ответов: 0
    23:19 / 11 апр. Запуск программы | Хитов: 64 | Ответов: 0
    20:04 / 11 апр. Жизненный вопрос | Хитов: 44 | Ответов: 0
    19:04 / 11 апр. Новое сообщение без темы | Хитов: 27 | Ответов: 0
    18:15 / 11 апр. Невидимые элементы формы!!! | Хитов: 28 | Ответов: 0
    16:41 / 11 апр. Хелп ми! Вопрос не по VB!!! | Хитов: 43 | Ответов: 0

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

    Снять задачу (32)
    Тень от формы (48)
    Преобразование цветного рисунка в черно... (45)
    Форма: определение модальности формы (43)
    Форма: создание модальной формы (60)
    Форма: перемещение элементов формы (44)
    ListBox / ComboBox - добавление массива... (66)

    Новости от VBNet-чиков!:

    наверх

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

    наверх

    Новости сайта Азбука VB

    наверх

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

    наверх

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

    • 10.04.2003 - Подведены итоги первого и второго мастер классов "Введение в C#"
      Поздравляем участников первых мастер классов!
    • 07.04.2003 - Открыт бесплатный пробный хостинг ASP.NET приложений на Windows Server 2003!
      С 4 апреля 2003 мы начинаем предоставлять бесплатный пробный хостинг приложений ASP.NET на новой платформе - Windows Server 2003.

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

    • 11.04 - Простая и безопасная реализация многопоточности в Windows Forms. Часть 2
    • 09.04 - Простая и безопасная реализация многопоточности в Windows Forms. Часть 1
    • 07.04 - Работа с данными в WEB

    наверх

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

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

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

    наверх

    Один момент из жизни форума: Как, используя ADODC, передать в хранимую проце...

    Вопрос:
    Автор вопроса: Evgeny D

    Ситуация такая.
    Есть в SQL Server БД, в ней - хранимая процедура с входным параметром (дата).
    Для adodc задаю параметры:

    adodc.ConnectionString = "myDSN"
    adodc.CommandType = adCmdStoredProc
    adodc.RecordSource = "myProc"

    А как ей передать параметр (дату)?

    Ответы:

    Автор: Andrei
    Если кратко:
    Делай запрос на объединение.
    А чтобы програмно создать связи посмотри:
    http://www.relib.com/forums/topic.asp?id=758740

    Автор: Satrapp
    Уточняя ответ по поводу запроса...
    table1 { INNER | LEFT | RIGHT } JOIN table2 ON table1.key1 = table2.key2

    Автор: BuilderSoft
    SQL хорошо это делает

    dim db as database
    dim rec as recordset
    dim strsql as string
    set db = currentdb
    strsql=".........." whith joint tables
    set rec=db.openrecordset(strsql)

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

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

    Вопросы:

    Автор вопроса: Вадим

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

    В Exel есть форма. 1-я строка(1) и столбец(А) с такими данными: день.месяц.год фамилия имя часы:минуты (это все в одной ячейке А1). Можно ли каким-то обраяом выделить только часы и минуты, скопировав часы в ячейку В1, минуты в С1? Данные каждый день вносятся в первый столбец до 200 строки(А200), накапливаются(1-й день в А1, 2-й в А2 и т.д). Можно решить этот вопрос средствами basic или макросами?

    Автор вопроса: Данила

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

    Есть ещё вопрос: как быстро вывести таблицу из базы на экран. Я использую MSFlexGrid. Проблема в том, что 36000 строк появляются примерно через 10 минут. Код такой:

    Set rs = db.OpenRecordset("звонки")
    rs.MoveFirst
    Do Until rs.EOF = True
    MSFlexGrid1.AddItem rs("ID_звонка")
    MSFlexGrid1.Row = MSFlexGrid1.Rows - 1
    MSFlexGrid1.Col = 1
    MSFlexGrid1.Clip = rs("тип_звонка")
    MSFlexGrid1.Col = 2
    MSFlexGrid1.Clip = rs("дата")
    MSFlexGrid1.Col = 3
    MSFlexGrid1.Clip = rs("время")
    MSFlexGrid1.Col = 4
    MSFlexGrid1.Clip = rs("код")
    MSFlexGrid1.Col = 5
    MSFlexGrid1.Clip = rs("номер")
    MSFlexGrid1.Col = 6
    MSFlexGrid1.Clip = rs("направление")
    MSFlexGrid1.Col = 7
    MSFlexGrid1.Clip = rs("длительность")
    MSFlexGrid1.Col = 8
    MSFlexGrid1.Clip = rs("стоимость")
    MSFlexGrid1.Col = 9
    MSFlexGrid1.Clip = rs("валюта")
    rs.MoveNext
    Loop
    MSFlexGrid1.Visible = True
    MSFlexGrid1.Enabled = True

    Есть варианты? Нужно учесть, что данные в базе меняются и выводимую таблицу нужно будет обновлять.

    Автор вопроса: MaxOn

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

    Вот такая тупая ситуация... На форме есть filelistbox, в нём отображаются файлы, находящиеся в какой либо папке. Так вот после удаления файла никак не могу сделать чтобы сабж обновил список. Делал после удаления вот так:

    fileListBox.path = SomeCatalog

    где SomeCatalog - папка, содержащая данные файлы. Раньше делал подобное, а сейчас подзабыл как...

    Автор вопроса: Сергей Авраменко

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

    Как сделать прозрачный контрол,чтобы отвечал на MouseMove, MouseEnter, MouseOut?

    Автор вопроса: Сергей

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

    Подскажите пожалуйста, как преобразовать фаил. То есть открыть *bmp и сохранить как *jpg ???

    Ответы:

    Вопрос:

    у меня 4 вопроса но особенно меня волнуют 1 и 4(в особенности) вопросы.

    1).как через winsock отправлять файлы
    2).как из *dll использовать ресурсы
    3).как с помощью vb запорлить папку
    4).как в ходе работы программы записовать текст прямо в *exe-шник программы и читать его от туда!

    Ответ:

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

    PrgPath = LCase(Trim(App.Path)) ‘получаем путь к нашей программе
    If Right(PrgPath, 1) <> "\" Then PrgPath = PrgPath & "\"
    FF = FreeFile

    Считываем сами себя (содержимое запущенного exe-файла) в переменную

    Open PrgPath & App.EXEName & ".exe" For Binary As #FF
    Size = LOF(FF)
    ** Tet = Input(Size, #FF)
    Close #FF

    Находим наше специальное слово, указывающее на начало исходного кода

    CodeStart = InStr(1, Tet, "YXINE", vbTextCompare)
    If CodeStart = 0 Then
    указатель не найден - значит мы в оригинальном файле
    (копия RIPLC.exe), который ещё не содержит исходный код ->
    записываем исходный код в конец exe-программы

    Теперь записываем преобразованный исходник в конец exe-файла после специального слова ‘YXINE’

    Open FNWE(cmd) For Binary Access Write As FF
    Put #FF, Size + 1, "YXINE"
    Put #FF, Size + 6, Code()
    Close #FF

    Данная вырезка сделана из статьи Ларина Александра с сайта VBNET.Ru.

    Вопрос:

    Где найти библиотеку VB со статистическими или аналитическими функциями, например вычисление корреляции между массивами?
    Всё-таки испольяование Excel тяжеловесно!

    Ответ:

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

    Используй MathCad 2000.

    Вопрос:

    Кто знает как получить содержимое ListBox с помощью API???

    Ответ:

    Автор ответа: Savchuk, Andrey

    Public Declare Function SendMessageLong Lib "user32" Alias "SendMessageA" _
    (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal
    lParam As Long) As Long
    Public Declare Function SendMessageStr Lib "user32" Alias "SendMessageA" _
    (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal
    lParam As String) As Long

    Public Const LB_GETCOUNT = &H18B
    Public Const LB_GETTEXT = &H189

    Dim sItemText As String * 255

    lngItemCount = SendMessageLong(hwndListBox, LB_GETCOUNT, 0&, 0&)
    If lngItemCount > 0 Then
    For iElement = 0 To lngItemCount - 1
    sItemText = ""
    Call SendMessageStr(hwndListBox,LB_GETTEXT, iElement, ByVal
    sItemText)
    Next
    End If

    Вопрос:

    Как использовать файл "programm.exe.manifest". У меня однажды получилось, интерфейс действительно стал в стиле ХР, но потом убрал ссылку на какую-то библиотеку и все пропало. Win XP начал выдавать ошибку в msvbm60.dll прияапуске приграммы. Удаляю .manifest - все работает, но интерфейс становится стандартным. Как это исправить?

    Ответ:

    Автор ответа: Андрей Никитин

    1. Надо добавить:
    Private Declare Function InitCommonControls Lib "Comctl32.dll" () As Long
    в (General)->(Declarations)

    2. В Form_Initialize добавить:
    InitCommonControls

    3. В каталог с программой положить файлик моя_программа.exe.manifest

    P.S. При запуске в среде VB не произведет никакого эффекта - надо скомпилировать проект и запустить прогу не из VB.

    Вопрос:

    Как можнл перехватить нажатие клавиши tab на каком нибудь контроле, keypress и keydown не работают. Может надо пользоваться какой-нибудь API-шной функцией, поскольку вроде Windows перехватывает упрвление на себя?

    Ответ:

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

    'Модуль
    Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    Public Const VK_TAB = &H9 ' Константа для TAB key.Для других кнопок посмотрите в API вьювере

    'Программа
    If GetAsyncKeyState(VK_TAB) And KEY_SHIFT = True Then
    msgboх "Кто то трогает ТАБ", vbinformation
    End If

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

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

    наверх

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


Выпуск 153.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

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

    Новый выпуск!
    Читайте!

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

    • Книги

    • Узнать описание типа файла
    • Написание слова прямо поверх всех окон
    • Увеличение быстродействия при заполнении какого-либо элемента данными
    • Отслеживание нажатий на клавишы клавиатуры
    • Скопировать рисунок из PictureBox в буфер обмена

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

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти здесь.

    наверх

    Узнать описание типа файла

    Данный пример позволяет узнать описание для данного типа файла, получаемого из реестра.

    Для данного типа файла *.bat вы получите - "Пакетный файл MS-DOS"

    Private Const MAX_PATH = 260

    Private Type SHFILEINFO
    hIcon As Long
    iIcon As Long
    dwAttributes As Long
    szDisplayName As String * MAX_PATH
    szTypeName As String * 80
    End Type

    Private Declare Function SHGetFileInfo Lib "Shell32" Alias "SHGetFileInfoA" (ByVal pszPath As Any, ByVal dwFileAttributes As Long, psfi As SHFILEINFO, ByVal cbFileInfo As Long, ByVal uFlags As Long) As Long

    Function GetFileDescription(ByVal sPath As String) As String
    Const SHGFI_TYPENAME = &H400
    Dim FInfo As SHFILEINFO
    SHGetFileInfo sPath, 0, FInfo, Len(FInfo), SHGFI_TYPENAME
    GetFileDescription = Left$(FInfo.szTypeName, InStr(FInfo.szTypeName & vbNullChar, vbNullChar) - 1)
    End Function

    Private Sub Command1_Click()
    MsgBox GetFileDescription("c:\AUTOEXEC.BAT")
    End Sub

    наверх

    Написание слова прямо поверх всех окон

    Данный пример покажет как получить handle Рабочего Стола с тем, чтобы вы могли рисовать прямо на Рабочем Столе. Данный пример всего лишь напишет слово "vbAccelerator" прямо поверх всех окон.

    Private Declare Function CreateDCAsNull Lib "gdi32" Alias "CreateDCA" (ByVal lpDriverName As String, lpDeviceName As Any, lpOutput As Any, lpInitData As Any) As Long
    Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long

    Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
    End Type
    Private Declare Function DrawText Lib "user32" Alias "DrawTextA" (ByVal hdc As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long
    Private Declare Function GetTextColor Lib "gdi32" (ByVal hdc As Long) As Long
    Private Declare Function SetTextColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As Long

    Public Sub TestDesktopDC()
    Dim hdc As Long
    Dim tR As RECT
    Dim lCol As Long
    hdc = CreateDCAsNull("DISPLAY", ByVal 0&, ByVal 0&, ByVal 0&)
    tR.Left = 60
    tR.Top = 0
    tR.Right = 640
    tR.Bottom = 32
    lCol = GetTextColor(hdc)
    SetTextColor hdc, &HFF&
    DrawText hdc, "vbAccelerator", Len("vbAccelerator"), tR, 0
    SetTextColor hdc, lCol
    DeleteDC hdc
    End Sub

    Private Sub Command1_Click()
    TestDesktopDC
    End Sub

    наверх

    Увеличение быстродействия при заполнении какого-либо элемента данными

    Этот пример покажет, как можно запретить какой-либо области формы (окна) перекрашиваться. Данный пример ускоряет заполнение элементов ListBox или ListView большим количеством элементов. Разместите на форме элемент CommandButton и элемент CheckBox.

    Скопируйте и вставьте в события формы следующий код, запустите проект на выполнение. Нажмите на кнопку, запомните результат, затем поставьте галочку в элемент CheckBox и снова нажмите на кнопку. Надеюсь, вы заметили разницу?

    Private Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) As Long
    Private Declare Function timeGetTime Lib "winmm.dll" () As Long

    Private Sub Command1_Click()
    Dim i As Long
    Dim lTIme As Long
    lTIme = timeGetTime()
    If (Check1.Value = Checked) Then
    LockWindowUpdate List1.hWnd
    End If
    List1.Clear
    For i = 1 To 10000
    List1.AddItem "Test " & i
    Next i
    If (Check1.Value = Checked) Then
    LockWindowUpdate 0
    List1.Refresh
    End If
    MsgBox "Time: " & timeGetTime - lTIme
    End Sub

    наверх

    Отслеживание нажатий на клавишы клавиатуры

    Чем мне понравился этот пример? Тем, что без использования таймеров ваша программа может реагировать на нажатия клавиш клавиатуры. Причем время реакции отклика на нажатия, как мне показалось, гораздо выше.

    Вам понадобится элемент CommandButton и элемент PictureBox.

    Private m_bPlay As Boolean
    Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

    Private Sub Command1_Click()
    Dim i As Long
    Dim iLast As Long
    If Command1.Caption = "&Stop" Then
    m_bPlay = False
    Command1.Caption = "&Play"
    Else
    Command1.Caption = "&Stop"
    m_bPlay = True
    i = 1
    Do
    ' Determine if the left or right keys are pressed:
    If (GetAsyncKeyState(vbKeyLeft)) Then
    ' Diminish the colour
    i = i - 1
    ElseIf (GetAsyncKeyState(vbKeyRight)) Then
    ' Increase the colour
    i = i + 1
    End If
    ' Colour within bounds:
    If (i < 1) Then i = 15
    If (i > 15) Then i = 1
    ' If colour has changed, change the display:
    If (iLast <> i) Then
    With Picture1
    .Cls
    .ForeColor = QBColor(i)
    ' Generate a RGB complement for the background:
    .BackColor = &HFFFFFF And (Not QBColor(i))
    .CurrentX = 64 * Screen.TwipsPerPixelX
    .CurrentY = 64 * Screen.TwipsPerPixelY
    Picture1.Print Hex$(QBColor(i))
    End With
    End If
    iLast = i
    ' This is here to stop the animation getting too fast to see:
    Sleep 25
    ' Ensure we can still click buttons etc
    DoEvents
    Loop While m_bPlay
    End If
    End Sub

    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    If (Command1.Caption = "&Stop") Then
    Command1_Click
    End If
    End Sub

    наверх

    Скопировать рисунок из PictureBox в буфер обмена

    Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
    End Type

    Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC 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 dwRop As Long) As Long
    Private Const SRCCOPY = &HCC0020 ' (DWORD) dest = source
    Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hDC As Long) As Long
    Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hDC As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
    Private Declare Function SelectObject Lib "gdi32" (ByVal hDC As Long, ByVal hObject As Long) As Long
    Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
    Private Declare Function OpenClipboard Lib "USER32" (ByVal hWnd As Long) As Long
    Private Declare Function CloseClipboard Lib "USER32" () As Long
    Private Declare Function SetClipboardData Lib "USER32" (ByVal wFormat As Long, ByVal hMem As Long) As Long
    Private Declare Function EmptyClipboard Lib "USER32" () As Long
    Private Const CF_BITMAP = 2

    Public Function CopyEntirePicture(ByRef objFrom As Object) As Boolean
    Dim lhDC As Long
    Dim lhBMP As Long
    Dim lhBMPOld As Long
    Dim lWidthPixels As Long
    Dim lHeightPixels As Long
    ' Create a DC compatible with the object we're copying from:
    lhDC = CreateCompatibleDC(objFrom.hDC)
    If (lhDC <> 0) Then
    ' Create a bitmap compatible with the object we're copying from:
    lWidthPixels = objFrom.ScaleX(objFrom.ScaleWidth, objFrom.ScaleMode, vbPixels)
    lHeightPixels = objFrom.ScaleY(objFrom.ScaleHeight, objFrom.ScaleMode, vbPixels)
    lhBMP = CreateCompatibleBitmap(objFrom.hDC, lWidthPixels, lHeightPixels)
    If (lhBMP <> 0) Then
    ' Select the bitmap into the DC we have created, and store the old bitmap that was there:
    lhBMPOld = SelectObject(lhDC, lhBMP)
    ' Copy the contents of objFrom to the bitmap:
    BitBlt lhDC, 0, 0, lWidthPixels, lHeightPixels, objFrom.hDC, 0, 0, SRCCOPY
    ' Remove the bitmap from the DC:
    SelectObject lhDC, lhBMPOld
    ' Now set the clipboard to the bitmap:
    OpenClipboard 0
    EmptyClipboard
    SetClipboardData CF_BITMAP, lhBMP
    CloseClipboard
    ' We don't delete the Bitmap here - it is now owned
    ' by the clipboard and Windows will delete it for us
    ' when the clipboard changes or the program exits.
    End If
    ' Clear up the device context we created:
    DeleteObject lhDC
    End If
    End Function

    Private Sub Command1_Click()
    CopyEntirePicture Picture1
    End Sub

    Private Sub Form_Load()
    Dim i As Long
    ' Draw something in the Picture box:
    With Picture1.Font
    .Name = "Arial"
    .Bold = True
    .Size = 24
    End With
    For i = 1 To 20
    Picture1.ForeColor = QBColor(i Mod 15)
    Picture1.Print "vbAccelerator"
    Next i
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

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

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

    Вопросы:

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

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

    Не подскажите,как из VB6 запустить программу(игру). Например у меня есть форма с кнопкой OK, я нажимаю и должна запуститься игрушка. Как прописать директорию, точнее как установить связь.

    Автор вопроса: Виталик

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

    Скажите, как можно из моей проги отослать письмо на мыло так, чтобы в обход всяких Outlook Express. Данные для письма брать из файла. И ещё эта прога не должна надоедать всякими глупыми запросами. Подскажите что делать. Можно кусочек кода (VB6).

    Автор вопроса: Кирко Владимир

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

    Подскажите как программно определить время проигрывания MIDI-файла?

    Автор вопроса: Виталик

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

    Скажите, как с помощью VB6 можно сделать программу, осуществляющую связь через TCP/IP с помощью интернета.
    Нужно чтобы моя прога слала текстовое сообщение на удаленный компьютер, а тот компьютер должен принять это сообщение и записать в переменную. Если нетрудно привидите кусочки кода клиента и сервера.

    Автор вопроса: Виталик

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

    Скажите, как сделать, чтобы моя прога определила мой IP когда я в сети. Это значение нужно присвоить какой либо переменной. Если нетрудно, приведите пример кода.

    Автор вопроса: Виталик

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

    Как с помощью VB_6 взять из реестра записи из нужного мне раздела. Можно кусок кода.

    Автор вопроса: Laguna Ukraine

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

    Как получить размер конкретной веб-страницы (по URL) не загружая эту страницу на компьютер? Буду благодарен, если приведете пример.

    Автор вопроса: KAS (c)

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

    Кто-нибудь знает как Windows XP отлавливает нажатие кнопки отключения компьютера?

    Автор вопроса: Tort

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

    Как можно ускорить открытие файла, если файл имеет произвольный доступ (Random)и содержит более ста тысяч записей?

    Автор вопроса: Игорь

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

    Процесс загруяки программы требует некоторого времени, в течение которого инициализируются базы данных выполняются некоторые базовые расчеты (SQL-яапросы) и т.д. Наличие заставки несколько улучшает ситуацию, но пользователь все равно может усомниться, не зависла ли программа. Как сделать "Индикатор" загрузки, привязав его к времени показа стартовой заставки?

    Автор вопроса: kuza

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

    Как сохранить рисунок из picture Box на диск в формате .jpg?
    Стандартный SavePicture не подходит!

    Автор вопроса: Данила

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

    Как в FlexGrid разукрашивать ячейки (одна красной, другая синей, строка снизу зелёной и т.д.). Если в нём нельзя, то где можно и как это пользовать?

    Автор вопроса: Alexey

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

    1.Кто знает как на Visual Basic Script в документе HTML запрограммить чтение данных из файла, лежащего рядом (любые варианты).

    2.Подскажите как передать хотябы переменную. Неплохо если поделитесь простыми примерами с Winsock'om на примере клиент-сервер... или дайте ссылки на общения, статьи, примеры...

    Автор вопроса: Евгений

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

    Как сохранить в таблице Access OLE-объект?

    Автор вопроса: Виталик

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

    Скажите как написать почтовую программу чтобы она умела только отсылать письма. Работа по протоколу POP3 и SMTP. Прошу, приведите код или подскажите где его достать.

    Автор вопроса: MAX

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

    Как считать значения ячеек в конкретном столбце DataGrid?

    Автор вопроса: XAM

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

    Кто-нить подскажет как работать с .dbf файлами?

    1.Создание
    2. Добавление записей
    3. Чтение записей из конкретных ячеек таблицы
    4. Обращение к таблице при помощи Recordset или ADO Data Control

    Автор вопроса: Сергей О.

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

    Подскажите как в файлах последовательного доступа или при работе с CommonDialog сохранять файл без появления диалогового окна (как в Word кнопка дискета)

    Автор вопроса: Виталик

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

    Подскажите как писать и использовать DLL на VB.

    Автор вопроса: VMJ

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

    Как средствами Vb можно добавить, изменить, удалить данные в таблице FoxPro

    Автор вопроса: Anatoliy Zhukov

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

    Нужна любая информация по MSMQ. Любый линки. Всё что можно найти в интернете: практически ничего. Милкасофтовский сайт содержит тоже не много, поэтому прошу не умничать и не посылать туда. :)

    Автор вопроса: serega435

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

    Как в VB.NET выявать апи-функцию SetMenuItemBitmaps? В vb6 выяыв работает, но в net не могу органияовать корректный выяов.

    Ответы:

    Вопрос:

    Существует ли хороший ActiveX для отображения такой штуки: что-то среднее между гридом и диаграммой,
    По вертикали идут позиции, а по горизонтали даты.
    Надо отображать горизонтальные линии соответствующие периодам дат. например:

    1.03 - 1.04 - 1.05 - 1.06
    AAA Х=============Х
    BBB Х================...
    CCC ..=====================Х

    Данные будут браться из БД.

    Ответ:

    Автор ответа: Andrew Stephanoff

    Есть, это VSFlexGrid Control. У меня есть архив (3,5 МБт), а где в инете - не знаю. Если надо -- пиши.

    Вопрос:

    Существует какой-либо контрол для отображение полей БД в виде таблицы, и как им пользовааться. А то использовать несколько ListBox-ов кажется перегибом.

    Ответ:

    Автор ответа: Андрей

    для этого есть конторол Microsoft Flex Grid. В нем гораздо удобней это делать. описание есть на vb.net а сам контрол в стандартной винде.

    Ответ:

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

    Есть такая штука DataGrid называется
    Почти как несколько listbox-ов

    Вопрос:

    В Exel есть форма. 1-я строка(1) и столбец(А) с такими данными: день.месяц.год фамилия имя часы:минуты (это все в одной ячейке А1). Можно ли каким-то обраяом выделить только часы и минуты, скопировав часы в ячейку В1, минуты в С1? Данные каждый день вносятся в первый столбец до 200 строки(А200), накапливаются(1-й день в А1, 2-й в А2 и т.д). Можно решить этот вопрос средствами basic или макросами?

    Ответ:

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

    В ячейке А1 находится занчение: 25.02.2003 Иванов Иван Иванович 09:30
    В ячейке В1 введи формулу: =WTime(A1,1)
    В ячейке C1 введи формулу: =WTime(A1,2)
    При этом напиши функцию на VB:

    Function WTime(s As String, k As Integer)
    If k = 1 Then ' часы
    WTime = Mid(s, Len(s) - 4, 2)
    Else
    WTime = Right(s, 2)
    End If
    End Function

    Вопрос:

    Есть ещё вопрос: как быстро вывести таблицу из базы на экран. Я использую MSFlexGrid. Проблема в том, что 36000 строк появляются примерно через 10 минут. Код такой:

    Set rs = db.OpenRecordset("звонки")
    rs.MoveFirst
    Do Until rs.EOF = True
    MSFlexGrid1.AddItem rs("ID_звонка")
    MSFlexGrid1.Row = MSFlexGrid1.Rows - 1
    MSFlexGrid1.Col = 1
    MSFlexGrid1.Clip = rs("тип_звонка")
    MSFlexGrid1.Col = 2
    MSFlexGrid1.Clip = rs("дата")
    MSFlexGrid1.Col = 3
    MSFlexGrid1.Clip = rs("время")
    MSFlexGrid1.Col = 4
    MSFlexGrid1.Clip = rs("код")
    MSFlexGrid1.Col = 5
    MSFlexGrid1.Clip = rs("номер")
    MSFlexGrid1.Col = 6
    MSFlexGrid1.Clip = rs("направление")
    MSFlexGrid1.Col = 7
    MSFlexGrid1.Clip = rs("длительность")
    MSFlexGrid1.Col = 8
    MSFlexGrid1.Clip = rs("стоимость")
    MSFlexGrid1.Col = 9
    MSFlexGrid1.Clip = rs("валюта")
    rs.MoveNext
    Loop
    MSFlexGrid1.Visible = True
    MSFlexGrid1.Enabled = True

    Есть варианты? Нужно учесть, что данные в базе меняются и выводимую таблицу нужно будет обновлять.

    Ответ:

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

    Это наверно не самый лучший способ, но ускоряет процесс не меньше чем в два раза: перед заполнением данных я скрываю решетку (MSFlexGrid1.visible=false) а после того, как она заполнена всем необходимым снова ее показываю

    Ответ:

    Автор ответа: Andrew Stephanoff

    Используй лучше Microsoft DataGrid Control и Microsoft DataGrid Control

    установка соединения

    Option Explicit

    Dim cnn As ADODB.Connection

    Private Sub Form_Load()
    cnn.Open = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & strPathToDatabase
    End Sub

    чтение данных из рекордсета (используется adodc, но можно использовать и переменную типа Recordset)

    Private Sub SetTable()
    Adodc1.ConnectionString = cnn.ConnectionString
    Adodc1.RecordSource = "SELECT field1, field2 FROM table1 WHERE field0='" &
    strParametr & "';"
    Adodc1.Refresh
    Set DataGrid1.DataSource = Adodc1
    DataGrid1.Refresh
    End Sub

    при изменении данных в таблице просто вызываешь снова эту процедуру, либо, если данные менялись у тебя в программе в объекте Recordset, заново указываешь источник строк и обновляешь:

    Set DataGrid1.DataSource = Adodc1
    DataGrid1.Refresh

    Это тоже не самый быстрый вариант: на Celeron-800 под Win200 соединение с таблицей, содержащей 32 тыс. строк устанавливается секунд где-то за 10, но зато потом работает довольно шустро.
    У меня есть другой контрол - VideoSoft VSFlexGrid Control. В нем реализовано очень много дополнительных функций, которых нет ни в MSFlexGrid, ни в MSDataGrid. Но насчет быстродействия на больших таблицах я его не проверял. Если хочешь попробовать (а он того стоит) могу намылить (архив весит 3,5МБт).

    Ответ:

    Автор ответа: Дмитрий Державец

    Попробуйте заполнить так:

    Sub fgRefresh()
    Dim row As Double
    fg.Clear
    With fg
    'Задаем колонки и шапку
    .Cols = 4
    .FixedCols = 2
    .Rows = 2
    .FixedRows = 1
    .TextMatrix(0, 2) = "Фотография"
    .ColWidth(0) = 0
    .ColWidth(1) = 300
    .ColWidth(2) = .Width - 400
    .ColAlignment(2) = 1
    .ColWidth(3) = 0

    qry = "select * from imgs where type = " & cmb.ItemData(cmb.ListIndex) & " and id > 0"
    If Not DM_OpenRecordSet(rst, qry) Then Exit Sub
    If rst.EOF Then Exit Sub
    .Rows = rst.RecordCount + 1
    r = 0
    'и вот пощло заполнение - должно быть намного быстрее
    While Not rst.EOF
    r = r + 1
    .TextMatrix(r, 0) = rst.Fields(0).Value
    .TextMatrix(r, 2) = rst.Fields(2).Value
    .TextMatrix(r, 3) = rst.Fields(3).Value
    If rst!Id = NewId Then
    row = r
    End If
    rst.MoveNext
    Wend
    End With
    End Sub

    Ответ:

    Автор ответа: Рафаиль

    Сразу никто не выводит такой массив. даже Jet 4.0 ;^)

    Действуй так -> сначала выводи столько записей сколько помещается на экране, то есть 24 первые строки (например) (супербыстро!)
    Потом отлавливай, при нажатиях клавиши вниз рассчитывай и выводи следующие 24 записи * счетчик количества нажатий также надо рассчитывать и переход вверх, можно отлавливать мышь. Идея в целом такова, отбирать не более Х строк, помещающихся на экране, все остальные все равно на экране не видны...

    Вопрос:

    Вот такая тупая ситуация... На форме есть filelistbox, в нём отображаются файлы, находящиеся в какой либо папке. Так вот после удаления файла никак не могу сделать чтобы сабж обновил список. Делал после удаления вот так:

    fileListBox.path = SomeCatalog

    где SomeCatalog - папка, содержащая данные файлы. Раньше делал подобное, а сейчас подзабыл как...

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Попробуй
    filelistbox.refresh

    Вопрос:

    Подскажите пожалуйста, как преобразовать фаил. То есть открыть *bmp и сохранить как *jpg ???

    Ответ:

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

    По этому поводу был контрол на www.vbrussian.com

    Ответ:

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

    Есть такая бесплатная библиотека GflSDK на сайте www.xnview.com. Там и примеры её применения.

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

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

    наверх

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


Выпуск 154.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

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

    Очередной выпуск рассылки. Ничего нового не происходит... Коды подходят к концу, так что присылайте ещё, буду рад!
    Читайте!

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

    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Один момент из жизни форума: Баг с Flat/3D buttons

    • Доска объявлений

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

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

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

    Дата: 20.04.2003 12:04 | Раздел: Примеры кода | Автор: Сергей Никифоров

    Шарик БУМ 2003 - Игра: растреливаем шарики.

    Дата: 19.04.2003 12:04 | Раздел: Примеры кода | Автор: Ловиков Миха

    Autorun On/Off - Пример работы с реестром (раздел policies\explorer) на сей раз включение\отключение автозагрузки CD-Rom'а.

    Дата: 16.04.2003 05:55 | Раздел: Примеры кода | Автор: EROS

    MOUSE OUT - Иммитация события MouseOut для контрола. Пример реализован при помощи функций API.

    Дата: 15.04.2003 05:53 | Раздел: Примеры кода | Автор: Дорохов Кирилл

    Port Listener - Port Listener - это великолепная программа для работы с сетью. Это программа может прослушивать порты,как сервер или присоеденяться к открытым портам,как клиент.

    Дата: 14.04.2003 05:48 | Раздел: Примеры кода | Автор: Millenium

    Anonym E-Mail Sender - Отправка анонимных электронных писем...

    Дата: 13.04.2003 05:45 | Раздел: Примеры кода | Автор: Millenium

    Игра в Кости - Простая игра в кости... .. Вы загадываете цифру и бросаете кости.

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

    13:54 / 20 апр. PDF >>> DOC, HTM... | Хитов: 0 | Ответов: 0
    11:23 / 20 апр. база данных | Хитов: 5 | Ответов: 0
    08:23 / 20 апр. VBNET CD | Хитов: 10 | Ответов: 1
    01:58 / 20 апр. Дизассемблер | Хитов: 28 | Ответов: 10
    01:01 / 20 апр. filezzz=>array;array=>print; | Хитов: 5 | Ответов: 1
    00:02 / 20 апр. Как найти значение в Excel | Хитов: 5 | Ответов: 0
    23:41 / 19 апр. Как на VB5/6 определить (через API) версию dll-ки? | Хитов: 3 | Ответов: 0
    21:33 / 19 апр. голосовое чтение записей | Хитов: 32 | Ответов: 5
    21:12 / 19 апр. Uninstall | Хитов: 17 | Ответов: 1
    15:48 / 19 апр. Визуальное сопровождение печати документа | Хитов: 27 | Ответов: 4
    15:45 / 19 апр. Печать | Хитов: 23 | Ответов: 2
    11:37 / 19 апр. Formula One 6.0 | Хитов: 16 | Ответов: 0
    11:12 / 19 апр. Подскажите где взять код проги считающей траф и... | Хитов: 31 | Ответов: 4
    00:18 / 19 апр. Excel | Хитов: 22 | Ответов: 0
    22:19 / 18 апр. Частота обновления | Хитов: 22 | Ответов: 0
    22:02 / 18 апр. Key Watch | Хитов: 25 | Ответов: 3
    20:16 / 18 апр. DataGrid help!! | Хитов: 16 | Ответов: 0
    20:05 / 18 апр. версии dll | Хитов: 24 | Ответов: 2
    18:56 / 18 апр. Beta ttesting! | Хитов: 84 | Ответов: 7
    17:33 / 18 апр. Русский ---> Russkii convertor and Password ... | Хитов: 44 | Ответов: 5

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

    Новости от VBNet-чиков!:

    наверх

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

    наверх

    Новости сайта Азбука VB

    наверх

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

    наверх

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

    • 16.04.2003 - Cтартовал новый проект - "Соmmunity Book"!
      Книга "Этюды на C#" создается силами нашего сообщества! Каждый может принять участие в написании глав, составлении примеров, обсуждении.
    • 14.04.2003 - Представление Windows Server 2003!
      C 20 по 22 мая в городах: Москва, Нижний Новгород, Екатеринбург, Ростов-на-Дону, Новосибирск, Алматы, Санкт-Петербург, Киев. Все посетители бесплатно получат ознакомительную версию Windows Server 2003!
    • 14.04.2003 - Семинар "Проектирование и внедрение решений на основе Microsoft .NET Framework для ОС Windows Server 2003"
      Компания Microsoft приглашает вас 25 апреля 2003 года посетить бесплатный семинар для системных архитекторов, создающих решения для автоматизации бизнес-процессов с использованием технологий Microsoft, который пройдет в Москве в конференц-зале гостиницы «Рэдиссон Славянская» по адресу Бережковская набережная, дом 2.

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

    • 16.04 - Настройка DataGrid в Windows Forms
    • 14.04 - Сложные графики и диаграммы в ASP.NET. Часть первая - OWC
    • 14.04 - Простая и безопасная реализация многопоточности в Windows Forms. Часть 3

    наверх

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

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

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

    наверх

    Один момент из жизни форума: Баг с Flat/3D buttons

    Вопрос:
    Автор вопроса: hudson

    В VB6 встретил такой баг:
    У стандартной кнопки по дефолту аттрибут "Appearance" установлен в 3D. Если изменить его на Flat, то кнопка остается такой же как и с аттрибутом 3D. У остальных компонентов изменение аттрибутов работает нормально... В чем тут может быть проблема???

    Ответы:

    Автор: Gravity
    Вряд ли это глюк .... ну такое Билл ГЕЙтс :) ну точно бы исправил ... мне кажется это для таких как ты чтобы побольше спрашивали :)))

    Автор: hudson
    2 Gravity : Ну и как же тогда получить "Flat" баттон в Васике???

    Автор: User Unknown
    Можно свой написать. Из пары лейблов:)))

    Автор: hudson
    2 User Unknown:
    Можно, но в данном случае нужна стандартная.....
    2 ALL:
    Это что вообще никак не лечится??? :(

    Автор: CyRax
    Ну подумай логически. Где ты видел в винде плоские кнопки ?
    Используй лучше тулбар.

    Автор: Access
    Ну в общем-то можно...

    Private Declare Function GetWindowLong& Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long)
    Private Declare Function SetWindowLong& Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long)
    Private Const BS_NULL& = 1
    Private Const BS_BOTTOM& = &H800&
    Private Const BS_BITMAP& = &H80&
    Private Const BS_AUTORADIOBUTTON& = &H9&
    Private Const BS_AUTOCHECKBOX& = &H3&
    Private Const BS_AUTO3STATE& = &H6&
    Private Const BS_3STATE& = &H5&
    Private Const BS_CENTER& = &H300&
    Private Const BS_CHECKBOX& = &H2&
    Private Const BS_DEFPUSHBUTTON& = &H1&
    Private Const BS_DIBPATTERN& = 5
    Private Const BS_DIBPATTERN8X8& = 8
    Private Const BS_DIBPATTERNPT& = 6
    Private Const BS_FLAT& = &H8000&
    Private Const BS_ICON& = &H40&
    Private Const BS_HOLLOW& = BS_NULL
    Private Const BS_HATCHED& = 2
    Private Const BS_GROUPBOX& = &H7&
    Private Const BS_INDEXED& = 4
    Private Const BS_LEFT& = &H100&
    Private Const BS_LEFTTEXT& = &H20&
    Private Const BS_MULTILINE& = &H2000&
    Private Const BS_NOTIFY& = &H4000&
    Private Const BS_OWNERDRAW& = &HB&
    Private Const BS_PATTERN& = 3
    Private Const BS_PATTERN8X8& = 7
    Private Const BS_PUSHBUTTON& = &H0&
    Private Const BS_PUSHLIKE& = &H1000&
    Private Const BS_RADIOBUTTON& = &H4&
    Private Const BS_RIGHT& = &H200&
    Private Const BS_RIGHTBUTTON& = &H20&
    Private Const BS_SOLID& = 0
    Private Const BS_TEXT& = 0&
    Private Const BS_TOP& = &H400&
    Private Const BS_USERBUTTON& = &H8&
    Private Const BS_VCENTER& = &HC00&
    Private Const GWL_EXSTYLE& = (-20)
    Private Const GWL_HINSTANCE& = (-6)
    Private Const GWL_HWNDPARENT& = (-8)
    Private Const GWL_ID& = (-12)
    Private Const GWL_STYLE& = (-16)
    Private Const GWL_USERDATA& = (-21)
    Private Const GWL_WNDPROC& = (-4)
    Private Sub Form_Load()
    Dim tmpValue&, mskNoStyle&
    tmpValue& = BS_PUSHBUTTON & BS_FLAT
    'Remove all the style bits from the button
    mskNoStyle& = GetWindowLong&(Command1.hwnd, GWL_STYLE) And Not (BS_AUTOCHECKBOX Or _
    BS_RADIOBUTTON Or BS_3STATE _
    Or BS_GROUPBOX Or BS_ICON Or BS_PUSHBUTTON)
    dl& = SetWindowLong&(Command1.hwnd, GWL_STYLE, mskNoStyle& Or tmpValue&)
    Command1.Refresh
    End Sub

    Автор: Миха
    Метод flat не виден визуально (но для кодинга он где-то учитывается ,это я помню).

    Автор: JONick
    Можешь взять с vbstreets или я могу выслать спец. флат и не только кнопки...

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

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

    Вопросы:

    Автор вопроса: 001

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

    Помогите мне, пожалуйста решить следующую проблему. Я создаю один DHTML проект, в котором мне требуется отослать почту со вложением файла. Как это сделать на HTML при помощи mailto:адрес@мыло.ру?subject="тема" а как нужно продолжить строку, чтобы вложть файл?

    Автор вопроса: weeeer

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

    Как сделать так чтобы меню в программе было как в Word-е то есть справа была полоса серого цвета либо другого цвета

    Автор вопроса: IzoMicke

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

    Пусть есть массив переменной длины

    Dim vArr()

    В циклическом процессе определяется число неких элементов (n) и делается

    Redim vArr(n-1)

    Вопрос: можно ли как-то программно возвратить vArr в исходное состояние, т.е. в то, в котором он был до первого ReDim'а?

    Автор вопроса: sla_237

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

    Подскажте пожалуйста как отловить нажатие на кнопку "свернуть" и "закрыть" , и не дать программе свернутся или закрытся , а выполнить какое то свое дествие. Если можно с примером , уже 3ю неделю мучаюсь , ниче не получается :(

    Автор вопроса: Илья

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

    Как издать на PC-Speaker писк при помощи VB 6.0 для Windows 98/XP?

    Ответы:

    Вопрос:

    Как сделать прозрачный контрол,чтобы отвечал на MouseMove, MouseEnter, MouseOut?

    Ответ:

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

    Создай картинку без рисунка-вот и контрол.

    Вопрос:

    Не подскажите,как из VB6 запустить программу(игру). Например у меня есть форма с кнопкой OK, я нажимаю и должна запуститься игрушка. Как прописать директорию, точнее как установить связь.

    Ответ:

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

    Проще всего через команду shell.

    Ответ:

    Автор ответа: ]CBK[CRaSH

    прога запускается при помоши

    shell "Путь\Файл.exe","способ открытия"

    если тебе надо изменять директорию то ножно сделать так на форму кидаеш textbox, в нем прописываеш путь

    shell text1.text

    Вопрос:

    Скажите, как можно из моей проги отослать письмо на мыло так, чтобы в обход всяких Outlook Express. Данные для письма брать из файла. И ещё эта прога не должна надоедать всякими глупыми запросами. Подскажите что делать. Можно кусочек кода (VB6).

    Ответ:

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

    Посмотри на сайте www.hiprog.ru там вместе с кодом есть програмка smtpserver она и занимаеться рассылкой писем без всяких почтовиков (через себя) описание работы там же.

    Ответ:

    Автор ответа: weff-повар

    Воспользуйся программой THE BAT.

    Вопрос:

    Скажите, как сделать, чтобы моя прога определила мой IP когда я в сети. Это значение нужно присвоить какой либо переменной. Если нетрудно, приведите пример кода.

    Ответ:

    Автор ответа: ]CBK[CRaSH

    IP определить довольно легко: на форму кидаеш winSock

    My_IP=Winsock1.LocalIP

    Вопрос:

    1.Кто знает как на Visual Basic Script в документе HTML запрограммить чтение данных из файла, лежащего рядом (любые варианты).

    2.Подскажите как передать хотябы переменную. Неплохо если поделитесь простыми примерами с Winsock'om на примере клиент-сервер... или дайте ссылки на общения, статьи, примеры...

    Ответ:

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

    Отвечу на первый вопрос.

    dim objFS, objFile, objTS, sText, sFilePath
    Set objFS=Server.CreateObject("Scripting.FileSystemObject")
    sFilePath=Server.MapPath("somefile.txt")
    Set objFile=objFS.GetFile(sFilePath)
    Set objTS=objFile.OpenAsTextStream(1)
    sText=objTS.ReadLine() //читаем строку из файла
    //sText=objTS.ReadAll //читаем весь файл
    objTS.Close
    Set objTS=Nothing
    Set objFile=Nothing
    Set objFS=Nothing

    Ответ:

    Автор ответа: Кирко Владимир

    1. Ну вот это, например,

    Dim arrFileLines()
    i = 0
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.OpenTextFile("C:\Ваш_Файл.txt", 1)
    Do Until objFile.AtEndOfStream
    Redim Preserve arrFileLines(i)
    arrFileLines(i) = objFile.ReadLine
    i = i + 1
    Loop
    objFile.Close
    For l = Ubound(arrFileLines) to LBound(arrFileLines) Step -1
    Wscript.Echo arrFileLines(l)
    Next

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

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

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

    наверх

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


Выпуск 155.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

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

    Коды кончаются! Сегодня уже в рассылку пошли те коды, которые вы присылали по моему запросу. Материала хватит ещё на 3 недели. Так что, присылайте всё достойное для рассылки по тематике Visual Basic, .NET, ASP! Ссылка на меня внизу расылки.
    Читайте!

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

    • Книги

    • Определение формата данных буфера обмена
    • Создание образа картинки
    • Замена одних цветов другими
    • Drag&Drop - контролы
    • Автоматическое упорядочивание элементов списка в MSHFlexGrid

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

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти здесь.

    наверх

    Определение формата данных буфера обмена

    Не забудьте на форме разместить элемент ListBox и Command.

    Private Declare Function CountClipboardFormats Lib "USER32" () As Long
    Private Declare Function EnumClipboardFormats Lib "USER32" (ByVal wFormat As Long) As Long
    Private Declare Function OpenClipboard Lib "USER32" (ByVal hWnd As Long) As Long
    Private Declare Function CloseClipboard Lib "USER32" () As Long
    Private Declare Function GetClipboardFormatName Lib "USER32" Alias "GetClipboardFormatNameA" (ByVal wFormat As Long, ByVal lpString As String, ByVal nMaxCount As Long) As Long
    Private Enum EPredefinedClipboardFormatConstants
    [_First] = 1
    CF_TEXT = 1
    CF_BITMAP = 2
    CF_METAFILEPICT = 3
    CF_SYLK = 4
    CF_DIF = 5
    CF_TIFF = 6
    CF_OEMTEXT = 7
    CF_DIB = 8
    CF_PALETTE = 9
    CF_PENDATA = 10
    CF_RIFF = 11
    CF_WAVE = 12
    CF_UNICODETEXT = 13
    CF_ENHMETAFILE = 14
    CF_HDROP = 15
    CF_LOCALE = 16
    CF_MAX = 17
    [_Last] = 17
    End Enum

    Private Property Get FormatName(ByVal lFormatId As Long) As String
    Dim lSize As Long
    Dim sBuf As String
    Dim lR As Long
    If (lFormatId >= EPredefinedClipboardFormatConstants.[_First] And lFormatId <= EPredefinedClipboardFormatConstants.[_Last]) Then
    ' For pre-defined formats, we have to make the text up ourselves:
    Select Case lFormatId
    Case CF_TEXT
    FormatName = "Text"
    Case CF_BITMAP
    FormatName = "Bitmap Picture"
    Case CF_METAFILEPICT
    FormatName = "Meta-File Picture"
    Case CF_SYLK
    FormatName = "Microsoft Symbolic Link (SYLK) data."
    Case CF_DIF
    FormatName = "Software Arts' Data Interchange information."
    Case CF_TIFF = 6
    FormatName = "Tagged Image File Format (TIFF) Picture"
    Case CF_OEMTEXT
    FormatName = "Text (OEM)"
    Case CF_DIB
    FormatName = "DIB Bitmap Picture"
    Case CF_PALETTE
    FormatName = "Colour Palette"
    Case CF_PENDATA
    FormatName = "Pen Data"
    Case CF_RIFF
    FormatName = "RIFF Audio data"
    Case CF_WAVE
    FormatName = "Wave File"
    Case CF_UNICODETEXT
    FormatName = "Text (Unicode)"
    Case CF_ENHMETAFILE
    FormatName = "Enhanced Meta-File Picture"
    Case CF_HDROP
    FormatName = "File List"
    Case CF_LOCALE
    FormatName = "Text Locale Identifier"
    End Select
    Else
    ' For custom formats, we can ask the Clipboard for the registered name:
    lSize = 255
    sBuf = String$(lSize, 0)
    lR = GetClipboardFormatName(lFormatId, sBuf, lSize)
    If (lR <> 0) Then
    FormatName = Left$(sBuf, lR)
    End If
    End If
    End Property

    Private Sub Command1_Click()
    Dim lR As Long
    Dim iCount As Long
    List1.Clear
    If (OpenClipboard(Me.hWnd)) Then
    lR = EnumClipboardFormats(0)
    If (lR <> 0) Then
    Do
    iCount = iCount + 1
    List1.AddItem FormatName(lR)
    List1.ItemData(List1.NewIndex) = lR
    lR = EnumClipboardFormats(lR)
    Loop While lR <> 0
    End If
    End If
    CloseClipboard
    End Sub

    наверх

    Создание образа картинки

    Данный пример покажет, как можно создать образ (mask image) картинки. Образы маски полезны для эмуляции прозрачности, и для замены цветов в изображениях.

    Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hDC As Long) As Long
    Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hDC As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
    Private Declare Function SelectObject Lib "gdi32" (ByVal hDC As Long, ByVal hObject As Long) As Long
    Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
    Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC 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 dwRop As Long) As Long
    Private Const SRCCOPY = &HCC0020
    Private Declare Function SetBkColor Lib "gdi32" (ByVal hDC As Long, ByVal crColor As Long) As Long

    Public Function CreateMaskImage(ByRef picFrom As PictureBox, ByRef picTo As PictureBox, Optional ByVal lTransparentColor As Long = -1) As Boolean
    Dim lhDC As Long
    Dim lhBmp As Long
    Dim lhBmpOld As Long
    ' Make picTo the same size as picFrom and clear it:
    With picTo
    .Width = picFrom.Width
    .Height = picFrom.Height
    .Cls
    End With
    ' Create a monochrome DC & Bitmap of the same size as the source picture:
    lhDC = CreateCompatibleDC(0)
    If (lhDC <> 0) Then
    lhBmp = CreateCompatibleBitmap(lhDC, picFrom.ScaleWidth \ Screen.TwipsPerPixelX, picFrom.ScaleHeight \ Screen.TwipsPerPixelY)
    If (lhBmp <> 0) Then
    lhBmpOld = SelectObject(lhDC, lhBmp)
    ' Set the back 'colour' of the monochrome DC to the colour we wish to be transparent:
    If (lTransparentColor = -1) Then lTransparentColor = picFrom.BackColor
    SetBkColor lhDC, lTransparentColor
    ' Copy from the from picture to the monochrome DC to create the mask:
    BitBlt lhDC, 0, 0, picFrom.ScaleWidth \ Screen.TwipsPerPixelX, picFrom.ScaleHeight \ Screen.TwipsPerPixelY, picFrom.hDC, 0, 0, SRCCOPY
    ' Now put the mask into picTo:
    BitBlt picTo.hDC, 0, 0, picFrom.ScaleWidth \ Screen.TwipsPerPixelX, picFrom.ScaleHeight \ Screen.TwipsPerPixelY, lhDC, 0, 0, SRCCOPY
    picTo.Refresh
    ' Clear up the bitmap we used to create the mask:
    SelectObject lhDC, lhBmpOld
    DeleteObject lhBmp
    End If
    ' Clear up the monochrome DC:
    DeleteObject lhDC
    End If
    End Function

    Private Sub Command1_Click()
    CreateMaskImage Picture1, Picture2
    End Sub

    Private Sub Form_Load()
    Dim i As Long
    Picture1.BackColor = &HFFFF00
    With Picture1.Font
    .Name = "Arial"
    .Bold = True
    .Italic = True
    .Size = 12
    End With
    For i = 1 To 20
    Picture1.ForeColor = QBColor(i Mod 15)
    Picture1.Print "vbAccelerator Mask Demo"
    Next i
    End Sub

    наверх

    Замена одних цветов другими

    Данный пример покажет, как можно заменить один цвет другим в картинке.

    Private Type RECT
    left As Long
    Top As Long
    Right As Long
    Bottom As Long
    End Type

    Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hDC As Long) As Long
    Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hDC As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
    Private Declare Function SelectObject Lib "gdi32" (ByVal hDC As Long, ByVal hObject As Long) As Long
    Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
    Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC 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 dwRop As Long) As Long
    Private Const SRCCOPY = &HCC0020
    Private Const SRCAND = &H8800C6
    Private Const SRCPAINT = &HEE0086
    Private Const SRCINVERT = &H660046
    Private Declare Function SetBkColor Lib "gdi32" (ByVal hDC As Long, ByVal crColor As Long) As Long
    Private Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long
    Private Declare Function FillRect Lib "user32" (ByVal hDC As Long, lpRect As RECT, ByVal hBrush As Long) As Long

    Public Sub ReplaceColor(ByRef picThis As PictureBox, ByVal lFromColour As Long, ByVal lToColor As Long)
    Dim lW As Long
    Dim lH As Long
    Dim lMaskDC As Long, lMaskBMP As Long, lMaskBMPOLd As Long
    Dim lCopyDC As Long, lCopyBMP As Long, lCopyBMPOLd As Long
    Dim tR As RECT
    Dim hBr As Long
    ' Cache the width & height of the picture:
    lW = picThis.ScaleWidth \ Screen.TwipsPerPixelX
    lH = picThis.ScaleHeight \ Screen.TwipsPerPixelY
    ' Create a Mono DC & Bitmap
    If (CreateDC(picThis, lW, lH, lMaskDC, lMaskBMP, lMaskBMPOLd, True)) Then
    ' Create a DC & Bitmap with the same colour depth as the picture:
    If (CreateDC(picThis, lW, lH, lCopyDC, lCopyBMP, lCopyBMPOLd)) Then
    ' Make a mask from the picture which is white in the replace colour area:
    SetBkColor picThis.hDC, lFromColour
    BitBlt lMaskDC, 0, 0, lW, lH, picThis.hDC, 0, 0, SRCCOPY
    ' Fill the colour DC with the colour we want to replace with
    tR.Right = lW: tR.Bottom = lH
    hBr = CreateSolidBrush(lToColor)
    FillRect lCopyDC, tR, hBr
    DeleteObject hBr
    ' Turn the colour DC black except where the mask is white:
    BitBlt lCopyDC, 0, 0, lW, lH, lMaskDC, 0, 0, SRCAND
    ' Create an inverted mask, so it is black where the colour is to be replaced but white otherwise:
    hBr = CreateSolidBrush(&HFFFFFF)
    FillRect lMaskDC, tR, hBr
    DeleteObject hBr
    BitBlt lMaskDC, 0, 0, lW, lH, picThis.hDC, 0, 0, SRCINVERT
    ' AND the inverted mask with the picture. The picture
    ' goes black where the colour is to be replaced, but is
    ' unaffected otherwise.
    SetBkColor picThis.hDC, &HFFFFFF
    BitBlt picThis.hDC, 0, 0, lW, lH, lMaskDC, 0, 0, SRCAND
    ' Finally, OR the coloured item with the picture. Where
    ' the picture is black and the coloured DC isn't,
    ' the colour will be transferred:
    BitBlt picThis.hDC, 0, 0, lW, lH, lCopyDC, 0, 0, SRCPAINT
    picThis.Refresh
    ' Clear up the colour DC:
    SelectObject lCopyDC, lCopyBMPOLd
    DeleteObject lCopyBMP
    DeleteObject lCopyDC
    End If
    ' Clear up the mask DC:
    SelectObject lMaskDC, lMaskBMPOLd
    DeleteObject lMaskBMP
    DeleteObject lMaskDC
    End If
    End Sub

    Public Function CreateDC(ByRef picThis As PictureBox, ByVal lW As Long, ByVal lH As Long, ByRef lhDC As Long, ByRef lhBmp As Long, ByRef lhBmpOld As Long, Optional ByVal bMono As Boolean = False) As Boolean
    If (bMono) Then
    lhDC = CreateCompatibleDC(0)
    Else
    lhDC = CreateCompatibleDC(picThis.hDC)
    End If
    If (lhDC <> 0) Then
    If (bMono) Then
    lhBmp = CreateCompatibleBitmap(lhDC, lW, lH)
    Else
    lhBmp = CreateCompatibleBitmap(picThis.hDC, lW, lH)
    End If
    If (lhBmp <> 0) Then
    lhBmpOld = SelectObject(lhDC, lhBmp)
    CreateDC = True
    Else
    DeleteObject lhDC
    lhDC = 0
    End If
    End If
    End Function

    Private Sub Command1_Click()
    Static i As Integer
    ReplaceColor Picture1, QBColor(i), &HFFFF&
    i = i + 1
    If (i > 15) Then
    MsgBox "All colours replaced."
    End If
    End Sub

    Private Sub Form_Load()
    Dim i As Long
    Dim x As Long, y As Long, w As Long, h As Long
    Picture1.BackColor = &HFFFF00
    For i = 1 To 200
    x = Rnd * Picture1.ScaleWidth: y = Rnd * Picture1.ScaleHeight
    w = Rnd * Picture1.ScaleWidth: h = Rnd * Picture1.ScaleHeight
    Picture1.Line (x, y)-(x + w, y + h), QBColor(Rnd * 15), BF
    Picture1.CurrentX = x: Picture1.CurrentY = y
    Picture1.Print "vbAccelerator Mask Demo"
    Next i
    End Sub

    наверх

    Drag&Drop - контролы

    Сначала создаем новый проект. На форме надо разместить 2 PictureBox. Один назовем ImgFolder, DragMode установим равным 0-manual, ну и в свойство Picture иконку папки впихнем. Второму PictureBox присвоим имя ImgTrash и в свойство назначим иконку корзины. У обоих PictureBox установите свойства AutoSize = True и BorderStyle = 0 - None.
    Ну а теперь самое главное - Код !!!

    'Инициализация
    Const EmptyTrash = "Waste.ico"
    Const FullTrash = "Recyfull.ico"
    Dim MouseX, MouseY As Single
    Dim IsTrash As Boolean
    Dim Path As String
    Option Explicit
    Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
    'Окончание перетаскивания (с учетом поправки)
    Source.Move (X - MouseX), (Y - MouseY)
    End Sub
    Private Sub Form_Load()
    IsTrash = False
    'Путь к иконкам можно задать по умолчанию:
    'Path = "C:\Program Files\Microsoft Visual Studio"
    'Path = Path & "\Common\Graphics\Icons\win95\"
    'Но это не удобно и не у каждого юзера Visual Studio установлен
    End Sub
    Private Sub imgFolder_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    'если нажата левая кнопка, то начинается перетаскивание
    If Button = vbLeftButton Then
    Call imgFolder.Drag(vbBeginDrag)
    MouseX = X 'Показываем координаты на указателе мыши
    MouseY = Y
    End If
    End Sub
    Private Sub imgTrash_DblClick()
    'Извлечение папки из корзины
    imgFolder.Visible = True
    IsTrash = True
    'Задаем изображение пустой корзины
    imgTrash.Picture = LoadPicture(Path & EmptyTrash)
    End Sub
    Private Sub imgTrash_DragDrop(Source As Control, X As Single, Y As Single)
    Source.Visible = False 'конец перетаскивания папки в корзину
    IsTrash = True
    imgTrash.Picture = LoadPicture(Path & FullTrash) 'задаем изображение полной корзины
    End Sub

    Ловиков Миха

    наверх

    Автоматическое упорядочивание элементов списка в MSHFlexGrid

    Достаточно часто в программах бывает необходимо вывести частичный список сотрудников - для премирования, поощрения или наказания. При этом желательно вывести их в соответствии с занимаемыми должностями (директор, 1зам, и т.д.). Проблема в том, что список может требовать правки, и, при добавлении главбуха, он может оказаться в списке после уборщицы. Если сотрудников немного, их состав не меняется, то проблем нет - сортировка по индивидуальному номеру в порядке возрастания. В большой фирме, где к тому же сами должности могут добавляться и удаляться такой подход не оправдан. Можно, конечно, зашифровать должность как код должности и ввести поле подстановки в соответствующую таблицу, но кто этим будет заниматься, тем более с готовой БД?
    Пример заполнения судовой роли для нашего яхт-клуба гарантирует, что матрос не будет в судовой роли стоять выше боцмана, или пассажир выше кока.

    Предположим, что имеется список сотрудников (в данном случае моряков), из которого переносятся данные в MSHFlexGrid1, после чего вызывается следующая процедура

    Private Sub RankCrwes()
    Dim intRows As Integer
    Dim intTemp As Integer, intY As Integer
    Dim stRank(7) As String, stTabl(40, 2) As String '40 строк в переменной я беру с запасом - параметр индивидуальный, а 3 столбца _
    это ID, ФИО и должность, взятые из списка
    With Me.MSHFlexGrid1
    'узнаем, сколько всего в списке вместе с добавленным, и, если больше одного, то продолжаем далее:
    intRows = .Rows
    If intRows = 1 Then Exit Sub
    'заполняем массив чинами, в соответствии с которым будет упорядочиваться список. Если должностей слишком _
    много, то легче перечислить их в отдельной таблице и заполнить открытием соответствующего Recordseta.
    stRank(0) = "капитан"
    stRank(1) = "старпом"
    stRank(2) = "вахтенный рулевой"
    stRank(3) = "радист"
    stRank(4) = "боцман"
    stRank(5) = "матрос"
    stRank(6) = "кок"
    stRank(7) = "пассажир"
    ' Начиная с последней строки MSHFlexGrid1все данные последовательно считываются в двухмерный массив stTabl в строгом _ соответствии порядку заполнения массива stRank. В данном примере до кока, чтобы пассажир был всегда последним. _
    Если последний не обязателен, тогда For intTemp= 0 To 7 и пропустить последний блок Do While ... Loop
    For intTemp = 0 To 6
    Do While intRows > 0
    'проверяется на совпадение каждый 3 столбец MSHFlexGrid1 - должность. При совпадении проводится запись в массив stTabl
    If .TextArray((intRows - 1) * 3 + 2) = stRank(intTemp) Then
    stTabl(intY, 2) = .TextArray((intRows - 1) * 3 + 2)
    stTabl(intY, 1) = .TextArray((intRows - 1) * 3 + 1)
    stTabl(intY, 0) = .TextArray((intRows - 1) * 3)
    'после записи переводится строка в переменной-массиве
    intY = intY + 1
    End If
    'в MSHFlexGrid1перевод на строку вверх
    intRows = intRows - 1
    Loop
    'восстанавливается первоначальное значение переменной для дальнейшего анализа MSHFlexGrid1
    intRows = .Rows
    Next
    'в этом блоке выбираются должности, не вошедшие в основной список, т.е. неважно в каком они порядке, _
    лишь бы были после основных
    Do While intRows > 0
    Select Case .TextArray((intRows - 1) * 3 + 2)
    Case stRank(0), stRank(1), stRank(2), stRank(3), stRank(4), stRank(5), stRank(6), stRank(7)
    Case Else
    stTabl(intY, 2) = .TextArray((intRows - 1) * 3 + 2)
    stTabl(intY, 1) = .TextArray((intRows - 1) * 3 + 1)
    stTabl(intY, 0) = .TextArray((intRows - 1) * 3)
    intY = intY + 1
    End Select
    intRows = intRows - 1
    Loop
    intRows = .Rows
    'если нужен последний (в данном случае - пассажир), то находим и его
    Do While intRows > 0
    If .TextArray((intRows - 1) * 3 + 2)=stRank(7) Then
    stTabl(intY, 2) = .TextArray((intRows - 1) * 3 + 2)
    stTabl(intY, 1) = .TextArray((intRows - 1) * 3 + 1)
    stTabl(intY, 0) = .TextArray((intRows - 1) * 3)
    intY = intY + 1
    End If
    intRows = intRows - 1
    Loop
    'очищаем уже полностью переписанный в stTabl MSHFlexGrid1
    .Clear
    .Rows = 0
    'заполняем его по новому уже упорядочено. intY - 1 потому, что ранее единица была добавлена, _
    но запись в переменную по исчерпании списка не сделана
    For intRows = 0 To intY - 1
    .AddItem stTabl(intRows, 0) & vbTab & stTabl(intRows, 1) & vbTab & stTabl(intRows, 2)
    Next
    End With
    End Sub

    Игорь

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

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

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

    Вопросы:

    Автор вопроса: Дмитрий

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

    Как с помощью VB узнать подключен ты к сети, например Интернету?

    Автор вопроса: Сергей

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

    Подскажите пожалуйста как правильно записать файл с картинкой типа *.bmp, *.jpg в БД SQL Server.

    Автор вопроса: Maxim

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

    Как в Вб.нет поменять стартовую процедуру?
    Т.е. чтобы первой грузилась, например, form2 или main sub, как в вб6.

    Автор вопроса: Петр

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

    Я использую в проекте VB видеокарту типа "Nuvision" и у меня возникли след. проблемы:
    1. Не могу сделать Stretch, используя API-функцию StretchBlt
    2. При вызове функций:
    CapDriverConnect,
    CapPreviewRate,
    CapPreview,
    CapOverlay
    идёт только частичное заполнение фрейма.
    Кто может посоветовать, видеокарту какого типа лучше использовать или есть какой-нибудь стандартный пакет для работы с видеокартой

    Автор вопроса: Sergey

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

    Кто-нибудь знает, где можно найти листинг проги, которая запароливает
    папки? Дайте ссылочку, плз.

    Автор вопроса: Theba

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

    Как отследить события подключения и отключения соединения с провайдером для программы счета трафика?

    Автор вопроса: IzoMicke

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

    Есть задумка программы, использующей Латиницу-1 и Латиницу-2; она должна выводить символы с диакритикой. Проблему можно коряво решить встраиванием Excel-таблицы в VB-форму. А есть ли в VB(6) контрол, который может такое сделать?

    Автор вопроса: Alex

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

    Трижды вложенный цикл For по переменным i,j,k позволяет перебрать все возможные комбинации (i,j,k). А можно ли сделать для n-ого количества переменных. Может быть можно сделать это с помощью циклических ссылок на функцию, где описан один цикл For. Помогите очень нужно...

    Автор вопроса: Alex

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

    Подскажите кто-нибудь программный код на VB для реализации задачи линейного программирования с помощью Симплекс-метода.

    Автор вопроса: Виталик

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

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

    Автор вопроса: Данила

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

    Требуется:
    1) подключиться к интернету через созданное удалённое соединение
    2) отправить серверу запрос вида
    "http://www.magazin.ru/main/main.php?page=s_winners" и получить
    сгенерированную страницу.
    3) сохранить сгенерированную страницу в виде файла на винте
    4) отключиться от интернета

    Если уж не код, то хотя бы подскажите, какие объекты с этими задачами справятся.

    Автор вопроса: UPS!!!

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

    Имеется на форме элемент WebBrowser, который чего-то там отображает.
    Как автоматически (без вопросовпредложений по событию таймера, например) сделать отображаемую страничку доступной автономно (аналогично меню сохранить как... в Эксплорере)?
    Вместе с картинками и без них?
    Лучше, чем код ответа быть не может...

    Автор вопроса: timshv@graffiti.net

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

    Установил MSDN 2003, а хэлп VB6 не может найти ссылку. Говорит переустановите MSDN Library. MSDN2000 работал без проблем.
    Где можно указать бейсику чтобы он обращался к новой MSDN?

    Автор вопроса: Николай

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

    Как в VB передать данные по модему с одного компа на другой? Подскажите хотябы направление!

    Автор вопроса: i-sof@mail.ru

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

    Я хочу с удаленного компа, не зная системную папку винды (типо: c:\windows), скачть (из этой папки) файл (пусть будет win.ini).
    Тако вот вопрос: Как определить системную папо4ку винды?

    Автор вопроса: weeeer

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

    У меня два вопроса.
    1. Как сделать так что бы кликать на файл из любого менеджера и что бы моя прога открыла его.
    2. Нужен компонент или код что бы сделать красивое меню что - то вроде как программе Word.

    Автор вопроса: Maxim

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

    Как проанализировать жесткий диск и записать все директории в файл?

    Автор вопроса: Максим

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

    В Textе стоит математическое выражение, ну например text1="2+3". Можно ли его посчитать в переменной? А может кто знает, как в Микрософтском калькуляторе обрабатываются операторы сложения, умножения и т.д.?

    Автор вопроса: Владимир

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

    Я использую Swiftsoft Multimedia Tools OCX v2.0. Файл у меня проигрывается через MMAudioPLayerX1. Подскажите чтобы проигрываемый файл выводился в какомто элементе управления и при нажатиина надпись он воспроизводиля снова. Так же в этом элементе управления может отображаться много названия файлов и пользователь кликом выбирает нужный ему файл для проослушивания.

    Ответы:

    Вопрос:

    Не подскажите,как из VB6 запустить программу(игру). Например у меня есть форма с кнопкой OK, я нажимаю и должна запуститься игрушка. Как прописать директорию, точнее как установить связь.

    Ответ:

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

    Вопрос:
    Не подскажите,как из VB6 запустить программу(игру). Например у меня есть форма с кнопкой OK, я нажимаю и должна запуститься игрушка. Как прописать директорию, точнее как установить связь.

    Ответ:
    Самый простой способ запуска приложений - это
    Shell filename, windowstyle
    ' где filename - полный путь к файлу; windowstyle - фокус и положение окна программы при включении, например, данный параметр может быть vbNormalFocus или др.

    Вопрос:

    Скажите, как с помощью VB6 можно сделать программу, осуществляющую связь через TCP/IP с помощью интернета.
    Нужно чтобы моя прога слала текстовое сообщение на удаленный компьютер, а тот компьютер должен принять это сообщение и записать в переменную. Если нетрудно привидите кусочки кода клиента и сервера.

    Ответ:

    Автор ответа: •Creator•

    Глянь-ка на www.vb.kiev.ua.

    Вопрос:

    Скажите, как сделать, чтобы моя прога определила мой IP когда я в сети. Это значение нужно присвоить какой либо переменной. Если нетрудно, приведите пример кода.

    Ответ:

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

    Расположите на форме компонент Winsock(Winsock1) через меню Project|Components - Microsoft Winsock Control 6.0

    Private Sub Form_Load()
    MsgBox Winsock1.LocalIP
    End Sub

    Ответ:

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

    Узнать IP своего компа из кода ты можешь взять пример на сайте www.vbrain.narod.ru и переписать его под свои нужды.
    В этом примере можно узнать IP своего компа зная его имя или наоборот.

    Вопрос:

    Как можно ускорить открытие файла, если файл имеет произвольный доступ (Random)и содержит более ста тысяч записей?

    Ответ:

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

    Во-первых, не читать сразу весь файл.
    Во-вторых, выполнять большую часть работы на серверной части (если работаем на сети). Особенно рекомендую использовать SQL-запросы или даже открытие таблицы с adTableDirect (зависит от ситуёвины).
    В-третьих, для достижения и того, и другого одновременно, рекомендуется использовать грамотного "провайдера" (в терминах методов доступа Майкрософт). Сейчас для этого фирма рекомедует использовать метод доступа ADO, построенного не на ODBC, а на OLE DB, где, в частности, есть параметр "количество читаемых записей при обращении".

    Вопрос:

    1.Кто знает как на Visual Basic Script в документе HTML запрограммить чтение данных из файла, лежащего рядом (любые варианты).

    2.Подскажите как передать хотябы переменную. Неплохо если поделитесь простыми примерами с Winsock'om на примере клиент-сервер... или дайте ссылки на общения, статьи, примеры...

    Ответ:

    Автор ответа: Артем Кривокрисенко

    1. В свое время мне тоже нужно было сделать такое. Но, к сожалению, это сделать невозможно. Конечно, если вбскрипт выполняется локально, т.е. на компе и открыть файл нужно с компа, то поможет FSO, а вот если нужно загрузить файл с сервера, то, как я уже говорил, так нельзя.

    Но я нашел выход из этой ситуации. Я подключал к html-странице скриптовый файл, к тором хранились нужные мне данные. Пиши на личку, проконсультую: Artyom_kr@zp.ukrtel.net

    Вопрос:

    Помогите мне, пожалуйста решить следующую проблему. Я создаю один DHTML проект, в котором мне требуется отослать почту со вложением файла. Как это сделать на HTML при помощи mailto:адрес@мыло.ру?subject="тема" а как нужно продолжить строку, чтобы вложть файл?

    Ответ:

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

    Я конечно могу ошибаться, но мне кажется что стандарт HTML поддерживает задавать только адресата, тему,копию и скрытую копию. Если раскопаешь что-то дополнительно,дай знать пожалуйста.

    Ответ:

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

    А никак ты это не сделаешь, это по соображениям security отсутствует :( Но можно написать свой ActiveX на том же VB, реализующий через MAPI/CDO посылку файлов и все что угодно :)

    Вопрос:

    Пусть есть массив переменной длины

    Dim vArr()

    В циклическом процессе определяется число неких элементов (n) и делается

    Redim vArr(n-1)

    Вопрос: можно ли как-то программно возвратить vArr в исходное состояние, т.е. в то, в котором он был до первого ReDim'а?

    Ответ:

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

    Можно!
    Пользуй: Erase vArr

    Вопрос:

    Подскажте пожалуйста как отловить нажатие на кнопку "свернуть" и "закрыть" , и не дать программе свернутся или закрытся , а выполнить какое то свое дествие. Если можно с примером , уже 3ю неделю мучаюсь , ниче не получается :(

    Ответ:

    Автор ответа: Андрюшин Евгений

    Можно попробовать сделать так:

    'Получим индентификатор системного меню окна
    hMenu = GetSystemMenu(frmHwnd, 0&)

    'Удалим первый элемент (Восстановить)
    Call DeleteMenu(hMenu, 0, MF_BYCOMMAND)

    'Удалим четвертый элемент (Развернуть)
    Call DeleteMenu(hMenu, 4, MF_BYCOMMAND)

    'Удалим третий элемент (Свернуть)
    Call DeleteMenu(hMenu, 3, MF_BYCOMMAND)

    и соответственно необходимо объявить API -функции и константы:

    Public Declare Function GetSystemMenu Lib "user32" Alias "GetSystemMenu" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
    Public Declare Function DeleteMenu Lib "user32" Alias "DeleteMenu" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long

    Public Const MF_BYCOMMAND = &H0&

    Ответ:

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

    Надо писать функцию-ловушку (hook), в которой отлавливать соответствующие сообщения (свернуть и закрыть).

    Ответ:

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

    'форма
    Dim LastState As Integer
    Private Sub Form_Resize()
    If Me.WindowState = 1 Then
    Me.WindowState = LastState
    MsgBox "min pressed"
    End If
    LastState = Me.WindowState
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    Cancel = True
    MsgBox "close pressed"
    End Sub

    Ответ:

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

    Вот пример блокировки кнопки "свернуть" и "закрыть"

    Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
    Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
    Const MF_BYPOSITION = &H400&

    Private Sub Form_Load()
    Option1(0).Caption = "Восстановить"
    Option1(1).Caption = "Переместить"
    Option1(2).Caption = "Размер"
    Option1(3).Caption = "Свернуть"
    Option1(4).Caption = "Развернуть"
    Option1(5).Caption = "?????????"
    Option1(6).Caption = "Закрыть"
    End Sub

    Private Sub Option1_Click(Index As Integer)
    Dim hSysMenu, lngResult As Long
    hSysMenu = GetSystemMenu(Me.hwnd, True)
    hSysMenu = GetSystemMenu(Me.hwnd, False)
    lngResult = DeleteMenu(hSysMenu, Index, MF_BYPOSITION)
    End Sub

    Ответ:

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

    Private Sub Form_QueryUnload(Cancel As _
    Integer, UnloadMode As Integer)
    If UnloadMode = vbFormControlMenu Then
    Cancel = True
    End If
    End Sub

    Ответ:

    Автор ответа: Murat Shonov

    По поводу кнопки закрыть это событие Unload или Query Unload, а вот отслеживать кнопочку свернуть можно только через АПИ функции.

    Вопрос:

    Как издать на PC-Speaker писк при помощи VB 6.0 для Windows 98/XP?

    Ответ:

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

    Для этого есть апи-функция:
    Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

    Ответ:

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

    встроенная команда beep, либо смотри функцию api: beep, там можно указать частоту и длительность
    Private Declare Function Beep Lib "kernel32" Alias "Beep" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

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

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

    наверх

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


Выпуск 156.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

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

    Присылайте коды по адресу pavel@vbnet.ru или subscribe@vbnet.ru. Мои запасы подходят к концу!
    Читайте!

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

    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Один момент из жизни форума: Приоритеты

    • Доска объявлений

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

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

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

    Дата: 27.04.2003 13:22 | Раздел: Статьи по VB | Автор: Немиро Алексей

    Разработка окна в стиле Windows XP - В данной статье я расскажу о том, как можно сделать обычное окно в стиле Windows XP, без использования дополнительных элементов управления, за пять минут.

    Дата: 25.04.2003 14:07 | Раздел: Полезные программы | Автор: CyRax

    Цвет ника в профиле - Эта программа предназначена для создания html-кода имени пользователя с разноцветными буквами в профиле форума сайта VBNet.Ru. С исходниками на VB6.

    Дата: 25.04.2003 12:47 | Раздел: Статьи по VB | Автор: Немиро Алексей

    Каждому юзеру по программе! - Надоело мне смотреть на сообщения об отсутствии библиотек и контролов, надоело любоваться искаженным интерфейсом и жучками (bugs), которые выползают при малейшем движении мыши, надоело постоянно, в порыве гнева, давить на Shift+Delete! Надоело! Вот такими вот словами я начинаю свою первую статью по программированию на Visual Basic. В этой статье я покажу наиболее часто встречающиеся ошибки при разработке приложений, а так же варианты их исправления.

    Дата: 25.04.2003 12:04 | Раздел: Примеры кода | Автор: Ловиков Миха

    Синхронизация часов - Сверяем и подводим часы Windows.

    Дата: 24.04.2003 10:59 | Раздел: ActiveX контролы | Автор: msv

    XP TextBox - TextBox в стиле Windows XP.

    Дата: 23.04.2003 12:04 | Раздел: Примеры кода | Автор: Ловиков Миха

    LASH Desktop icon - Глюкомейкерам посвящается! Прыгающие иконки на рабочем столе.

    Дата: 22.04.2003 12:09 | Раздел: Примеры кода | Автор: sKit

    Чат по COM-порту - Программка позволяет обчаться по COM-порту (с помощью нуль-модемного кабеля) , хотя я использовал такую приятность, как радиомодем Интеграл+ 160/2400

    Дата: 22.04.2003 10:59 | Раздел: Статьи по VB | Автор: Лэрри Руф

    Создание пользовательских элементов управления с помощью .NET Compact Framework - Лэрри Руф разработал пошаговое руководство по построению пользовательских элементов управления, называемых им мутированными элементами управления, в .NET Compact Framework. Элементы управления, рассмотренные в этой статье, включают в себя разновидности элемента управления TextBox, добавляющие свойство Locked и создающие свойство InputPanel.

    Дата: 22.04.2003 10:44 | Раздел: ActiveX контролы | Автор: Andrew Leshchuk

    Stringer - ActiveX библиотека Hedgehog String Processor предназначена для форматирования и обработки строк, числовых значений и дат.

    Дата: 21.04.2003 12:09 | Раздел: Примеры кода | Автор: xShadow

    Сумма прописью - Пожалуй, эту функцию написали уже ВСЕ. В этом примере примечателен размер кода.

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

    15:34 / 28 апр. Тормазит цикл .... | Хитов: 1 | Ответов: 0
    15:21 / 28 апр. Напоминатель 1.0 | Хитов: 10 | Ответов: 0
    14:28 / 28 апр. Minimize... | Хитов: 7 | Ответов: 1
    13:02 / 28 апр. Как создать .dll для Excel? | Хитов: 12 | Ответов: 0
    11:24 / 28 апр. как отсылать данные на мыло??? | Хитов: 16 | Ответов: 1
    10:11 / 28 апр. Нужны файлы HELP для работы в Инет | Хитов: 8 | Ответов: 0
    08:56 / 28 апр. Что скажите о моей проге | Хитов: 28 | Ответов: 1
    07:01 / 28 апр. http://www.vbnet.ru/article/showarticle.asp?id=105 | Хитов: 19 | Ответов: 1
    04:48 / 28 апр. Install | Хитов: 14 | Ответов: 1
    00:13 / 28 апр. Install... | Хитов: 22 | Ответов: 1
    21:12 / 27 апр. Как вставить форму в форму | Хитов: 25 | Ответов: 1
    20:48 / 27 апр. Массивы и файлы | Хитов: 15 | Ответов: 0
    19:14 / 27 апр. Отправка данных | Хитов: 22 | Ответов: 1
    18:20 / 27 апр. последний символ | Хитов: 19 | Ответов: 3
    16:52 / 27 апр. Microsoft Data Bound Grid Control 5.0. (SP3). | Хитов: 11 | Ответов: 0
    16:47 / 27 апр. Visual С++++++++++++++++++++++ | Хитов: 22 | Ответов: 1
    14:30 / 27 апр. Модем | Хитов: 20 | Ответов: 1
    13:47 / 27 апр. Номер кластера | Хитов: 10 | Ответов: 0
    13:21 / 27 апр. Заходите и голосуйте!! | Хитов: 42 | Ответов: 5
    13:02 / 27 апр. VS .NET 2003 Everett Final beta November | Хитов: 0 | Ответов: 0

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

    Новости от VBNet-чиков!:

    наверх

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

    наверх

    Новости сайта Азбука VB

    наверх

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

    наверх

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

    • 25.04.2003 - Представление Windows Server 2003!
      C 20 по 22 мая в городах: Москва, Нижний Новгород, Екатеринбург, Ростов-на-Дону, Новосибирск, Алматы, Санкт-Петербург, Киев. Все посетители бесплатно получат ознакомительную версию Windows Server 2003!
    • 23.04.2003 - Пресс-релиз Russian .NET User Group
      После недавней реорганизации Russian .NET User Group возобновляются регулярные встречи. Опираясь на поддержку вышеупомянутых организаций, Russian .NET UG проводит конкурсы и разыгрывает призы на своих встречах.
    • 21.04.2003 - Подведены итоги конкурса программ для Pocket PC 2002
      Авторитетное жюри назвало имена победителей и призеров конкурса на лучшую программу для платформы Pocket PC 2002.

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

    • 28.04 - Создание простого одностраничного портала
    • 25.04 - Сложные графики и диаграммы в ASP.NET. Часть вторая - OWC через class-wrapper
    • 23.04 - Защита .Net продуктов от подглядывания
    • 22.04 - Обзор решения TaskVision: архитектура и реализация
    • 21.04 - Немного о смартфонах

    наверх

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

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

    • Работа с графикой в .NET CF
      Статья, описывающая пример создания графического приложения для .NET CF
    • Главы из книжек по .NET для членов Russian .NET UG.
      К сожалению, сама публикация как и книжки на английском. Надеемся, что кому-нибудь эта информация покажется полезной.
    • Обфускация в .NET. Том I
      В данной публикации обсуждаются вопросы защиты .Net продуктов, в частности путем обфускации (запутывания)
    • Пресс-релиз Russian .NET UG
      Информация о старейшей .NET UG в России.
    • Немного о смартфонах.
      Данная публикация вкратце рассказывает о новых возможностях мобильных технологий для IT-менеджеров и разработчиков.

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

    наверх

    Один момент из жизни форума: Приоритеты

    Вопрос:
    Автор вопроса: Justas

    Как назначить приоритет, любой запущенной программе, зная путь к ней. (не у всякого exe_шника есть хендл).

    Ответы:

    Автор: Konstantin
    Вот какую фичу я нашел в API

    Public Declare Function SetPriorityClass Lib "kernel32" Alias "SetPriorityClass" (ByVal hProcess As Long, ByVal dwPriorityClass As Long) As Long

    И теперь константы к ним:

    Public Const IDLE_PRIORITY_CLASS = &H40
    Public Const NORMAL_PRIORITY_CLASS = &H20
    Public Const HIGH_PRIORITY_CLASS = &H80
    Public Const REALTIME_PRIORITY_CLASS = &H100

    Юзай наздоровье! ;)

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

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

    Вопросы:

    Автор вопроса: phis

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

    Подскажите как в ASP.NET обратиься к свойствам элемента управления, черея коллекцию Controls объекта Page. Код примерно следующий:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim i As Integer
    Dim t As New TextBox()
    For i = 0 To Page.Controls.Count - 1
    If TypeOf Page.Controls.Item(i) Is TextBox Then
    t = Page.Controls.Item(i)
    If NotChar(t.Text) Then
    label1.Text = "Текст сообщения"
    GoTo 1
    End If
    End If
    Next i
    1:
    End Sub

    Где NotChar-просто функция, которая находит определенный символ строки, работает исправно, дело не в ней. При нажатии ничего не происходит, даже если этот символ есть в строке.

    Автор вопроса: K.

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

    Существует (и если да, то где?) контрол как в VB6 организовано окно Propetis, т.е. в одной колонке названия св-в, а в другой их значение, причем как обычные текстовые поля, так и списки. Очень необходим.

    Автор вопроса: Ice

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

    Как лучше органияовать SAVE/LOAD компонентов в TreeView контроле? Я пытался решить проблему черея INI файл(т.к. др. методы недоступны -> я только учусь), но желаемого реяультата не добился.(хотя теоретически должно работать)

    И еще: там к каждому компоненту строковая переменная с описанием.

    Автор вопроса: Костик

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

    Срочно необходимо сделать, чтобы при нажатии определенной комбинации клавиш при неактивном приложении, выполнялась заданая процедура.

    Автор вопроса: Alex Velikiy

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

    Как открыть дверцу Cd-Rom програмно?

    Автор вопроса: K.

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

    Существуют ли библиотеки (или контролы) для генерирования случайных чисел с заданным законом распределения, как например в Си?

    Ответы:

    Вопрос:

    Как с помощью VB узнать подключен ты к сети, например Интернету?

    Ответ:

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

    Вот 3 способа проверки связи с интернет:

    '---1---
    Private Sub CheckConnection1()
    Dim ReturnCode As Long
    Dim hKey As Long
    Dim lpSubKey As String
    Dim phkResult As Long
    Dim lpValueName As String
    Dim lpReserved As Long
    Dim lpType As Long
    Dim lpData As Long
    Dim lpcbData As Long
    lpSubKey = "System\CurrentControlSet\Services\RemoteAccess" & Chr$(0)
    ReturnCode = RegOpenKey(HKEY_LOCAL_MACHINE, lpSubKey, phkResult)
    If ReturnCode = ERROR_SUCCESS Then
    hKey = phkResult
    lpValueName = "Remote Connection"
    lpReserved = APINULL
    lpType = APINULL
    lpData = APINULL
    lpcbData = APINULL
    ReturnCode = RegQueryValueEx(hKey, lpValueName, lpReserved, lpType, ByVal lpData, lpcbData)
    lpcbData = Len(lpData)
    ReturnCode = RegQueryValueEx(hKey, lpValueName, lpReserved, lpType, lpData, lpcbData)
    If ReturnCode = ERROR_SUCCESS Then
    If lpData = 0 Then
    MsgBox "Your computer is not connected to Internet via modem", vbInformation, "Checing connection"
    Else
    MsgBox "Your computer is connected to Internet via modem", vbInformation, "Checing connection"
    End If
    Else
    MsgBox "Your computer is not connected to Internet via modem, but it can be connected via LAN", vbInformation, "Checing connection"
    End If
    End If
    RegCloseKey (hKey)
    End Sub
    '---2---
    Private Sub CheckConnection2(Optional ByRef ConnectionInfo As Long, Optional ByRef sConnectionName As String)
    Dim dwFlags As Long
    Dim sNameBuf As String, msg As String
    Dim lPos As Long
    sNameBuf = String$(513, 0)
    If InternetGetConnectedStateEx(dwFlags, sNameBuf, 512, 0&) Then
    lPos = InStr(sNameBuf, vbNullChar)
    If lPos > 0 Then
    sConnectionName = Left$(sNameBuf, lPos - 1)
    Else
    sConnectionName = ""
    End If
    msg = "Your computer is connected to Internet" & vbCrLf & "Connection Name: " & sConnectionName
    If (dwFlags And INTERNET_CONNECTION_LAN) Then
    msg = msg & vbCrLf & "Connection use LAN"
    ElseIf lFlags And INTERNET_CONNECTION_MODEM Then
    msg = msg & vbCrLf & "Connection use modem"
    End If
    If lFlags And INTERNET_CONNECTION_PROXY Then msg = msg & vbCrLf & "Connection use Proxy"
    If lFlags And INTERNET_RAS_INSTALLED Then
    msg = msg & vbCrLf & "RAS INSTALLED"
    Else
    msg = msg & vbCrLf & "RAS NOT INSTALLED"
    End If
    If lFlags And INTERNET_CONNECTION_OFFLINE Then
    msg = msg & vbCrLf & "You are OFFLINE"
    Else
    msg = msg & vbCrLf & "You are ONLINE"
    End If
    If lFlags And INTERNET_CONNECTION_CONFIGURED Then
    msg = msg & vbCrLf & "Your connection is Configured"
    Else
    msg = msg & vbCrLf & "Your connection is not Configured"
    End If
    Else
    msg = "Your computer is NOT connected to Internet"
    End If
    MsgBox msg, vbInformation, "Checking connection"
    End Sub
    '---3---
    Private Sub CheckConnection3()
    Dim sTmp As String
    Dim hInet As Long
    Dim hUrl As Long
    Dim Flags As Long
    Dim url As Variant
    hInet = InternetOpen(App.Title, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0&)
    sTmp = Me.Caption
    Me.Caption = "Checking connection with www.yahoo.com..."
    If hInet Then
    Flags = INTERNET_FLAG_KEEP_CONNECTION Or INTERNET_FLAG_NO_CACHE_WRITE Or INTERNET_FLAG_RELOAD
    hUrl = InternetOpenUrl(hInet, "http://www.yahoo.com", vbNullString, 0, Flags, 0)
    If hUrl Then
    MsgBox "Your computer is connected to Internet", vbInformation, "Checing connection"
    Call InternetCloseHandle(hUrl)
    Else
    MsgBox "Your computer is not connected to Internet", vbInformation, "Checing connection"
    End If
    End If
    Call InternetCloseHandle(hInet)
    Me.Caption = sTmp
    End Sub

    Ответ:

    Автор ответа: Лесник

    Попробуй так:
    Размести Winsock , затем попробуй присоединиться к Яндексу по 80 порту (RemoteHost="yandex.ru", remotePort=80). Если получится (winsock.state=sckConnected), то ты в инете... Если нет - то оффлайн ...

    Вопрос:

    Подскажите пожалуйста как правильно записать файл с картинкой типа *.bmp, *.jpg в БД SQL Server.

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Вот код модуля.
    Предлагаются различные варианты. Некоторые работают корректно даже с MySQL.

    Option Explicit

    Private Const BlockSize = 32768

    Public Function PostBLOB(ByVal strFileName As String, ByRef objRecSet As
    adodb.Recordset, ByVal strFieldName As String) As Boolean
    On Error GoTo ERRHANDLER
    Dim objStream As Stream
    Dim varChunk As Variant

    PostBLOB = False
    Set objStream = New adodb.Stream
    objStream.Type = adTypeBinary
    objStream.Open
    objStream.LoadFromFile strFileName

    varChunk = objStream.Read

    objRecSet.Fields(strFieldName).Value = " 'TEST' "

    objStream.Close
    Set objStream = Nothing
    PostBLOB = True

    Exit Function

    ERRHANDLER:

    PostBLOB = False
    Set objStream = Nothing

    End Function

    Public Function GetBLOB(ByVal strFileName As String, ByRef objRecSet As
    adodb.Recordset, ByVal strFieldName As String)
    On Error GoTo ERRHANDLER

    Dim objStream As Stream

    GetBLOB = False
    Set objStream = New adodb.Stream
    objStream.Type = adTypeBinary
    objStream.Open

    objStream.Write objRecSet.Fields(strFieldName).Value
    objStream.SaveToFile strFileName
    objStream.Close
    Set objStream = Nothing
    GetBLOB = True

    Exit Function

    ERRHANDLER:

    GetBLOB = False
    Set objStream = Nothing

    End Function

    Public Function FileToBLOB(ByVal strFullPath As String, ByRef objField
    As adodb.Field, Optional ByVal bUseStream As Boolean = True, Optional
    ByVal lngChunkSize As Long = 8192) As Boolean
    On Error Resume Next
    Dim objStream As adodb.Stream
    Dim intFreeFile As Integer
    Dim lngBytesLeft As Long
    Dim lngReadBytes As Long
    Dim byBuffer() As Byte
    Dim varChunk As Variant

    If bUseStream Then
    Set objStream = New adodb.Stream

    With objStream
    .Type = adTypeBinary
    .Open
    .LoadFromFile strFullPath
    objField.Value = .Read(adReadAll)
    End With
    Else

    With objField
    '<<--If the field does not support
    ' Long Binary data'-->>
    '<<--then we cannot load the data
    ' into the field.-->>

    If (.Attributes And adFldLong) <> 0 Then
    intFreeFile = FreeFile
    Open strFullPath For Binary Access Read As #intFreeFile
    lngBytesLeft = LOF(intFreeFile)

    Do Until lngBytesLeft <= 0

    If lngBytesLeft > lngChunkSize Then
    lngReadBytes = lngChunkSize
    Else
    lngReadBytes = lngBytesLeft
    End If
    ReDim byBuffer(lngReadBytes)
    Get #intFreeFile, , byBuffer()
    objField.AppendChunk byBuffer()
    lngBytesLeft = lngBytesLeft - lngReadBytes

    DoEvents
    Loop
    Close #intFreeFile
    Else
    Err.Raise -10000, "FileToBLOB", "The Database Field
    does Not support Long Binary Data."
    End If
    End With
    End If

    If Err.Number <> 0 Or Err.LastDllError <> 0 Then
    FileToBLOB = False
    Else
    FileToBLOB = True
    End If
    End Function

    Function ReadBLOB(Source As String, T As Recordset, sField As String)
    Dim NumBlocks As Integer
    Dim SourceFile As Integer
    Dim i As Integer
    Dim FileLength As Long
    Dim LeftOver As Long
    Dim byteData() As Byte

    On Error GoTo Err_ReadBLOB

    SourceFile = FreeFile
    Open Source For Binary Access Read As SourceFile

    FileLength = LOF(SourceFile)
    If FileLength = 0 Then
    ReadBLOB = 0
    Exit Function
    End If

    NumBlocks = FileLength \ BlockSize
    LeftOver = FileLength Mod BlockSize

    If LeftOver > 0 Then

    ReDim byteData(0 To LeftOver - 1)
    Get SourceFile, , byteData
    'T.Edit
    T(sField).AppendChunk (byteData)
    'T.Update
    End If

    ReDim byteData(0 To BlockSize - 1)
    For i = 1 To NumBlocks
    Get SourceFile, , byteData
    T(sField).AppendChunk (byteData)
    Next i

    Close SourceFile
    ReadBLOB = FileLength
    Exit Function

    Err_ReadBLOB:

    ReadBLOB = -Err
    MsgBox Err.Description, , Err.Number
    Exit Function

    End Function

    Function WriteBLOB(T As adodb.Recordset, sField As String, Destination
    As String)
    Dim NumBlocks As Integer, DestFile As Integer, i As Integer
    Dim FileLength As Long, LeftOver As Long
    Dim byteData() As Byte

    On Error GoTo Err_WriteBLOB

    FileLength = T.Fields(sField).ActualSize
    If FileLength = 0 Then
    WriteBLOB = 0
    Exit Function
    End If

    NumBlocks = FileLength \ BlockSize
    LeftOver = FileLength Mod BlockSize

    DestFile = FreeFile
    Open Destination For Output As DestFile
    Close DestFile

    Open Destination For Binary As DestFile

    If LeftOver > 0 Then
    byteData() = T(sField).GetChunk(LeftOver)
    Put DestFile, , byteData
    End If

    For i = 1 To NumBlocks
    byteData() = T(sField).GetChunk((i - 1) * BlockSize + LeftOver,
    BlockSize)
    Put DestFile, , byteData
    Next i
    Close DestFile
    WriteBLOB = FileLength
    Exit Function

    Err_WriteBLOB:

    WriteBLOB = -Err
    MsgBox Err.Description, vbCritical, Err.Number
    Exit Function

    End Function

    Public Function GetTEXT(ByRef objRecSet As adodb.Recordset, ByVal
    strFieldName As String) As String
    On Error GoTo ERRHANDLER

    Dim objStream As Stream

    GetTEXT = ""
    Set objStream = New adodb.Stream
    objStream.Type = adTypeBinary
    objStream.Open

    objStream.Write objRecSet.Fields(strFieldName).Value
    objStream.Position = 0
    Do Until objStream.EOS
    GetTEXT = GetTEXT & objStream.Read(1)
    Loop
    'objStream.SaveToFile strFileName
    objStream.Close
    Set objStream = Nothing

    Exit Function

    ERRHANDLER:

    GetTEXT = ""
    MsgBox Err.Number & Err.Description
    Set objStream = Nothing

    End Function

    Function AddLongRaw(ByVal strFileName As String, ByRef objRecSet As
    ADODB.Recordset, ByVal strFieldName As String) As Boolean
    On Error GoTo ERRHANDLER
    AddLongRaw = False
    Dim objStream As Stream
    Set objStream = New ADODB.Stream
    objStream.Type = adTypeBinary
    objStream.Open
    objStream.LoadFromFile strFileName

    objRecSet.Fields(strFieldName).Value = objStream.Read
    objStream.Close
    Set objStream = Nothing
    AddLongRaw = True
    Exit Function
    ERRHANDLER:
    AddLongRaw = False
    Set objStream = Nothing
    End Function

    Вопрос:

    Кто-нибудь знает, где можно найти листинг проги, которая запароливает
    папки? Дайте ссылочку, плз.

    Ответ:

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

    Ссылочку не дам, могу только сказать, что что-либо стоящее может получиться только под NTFS/

    Вопрос:

    Как отследить события подключения и отключения соединения с провайдером для программы счета трафика?

    Ответ:

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

    'CHECK CONNECTION
    Public Declare Function RasEnumConnections Lib "rasapi32.dll" Alias "RasEnumConnectionsA" (lpRasCon As Any, lpcb As Long, lpcConnections As Long) As Long
    Public Declare Function RasGetConnectStatus Lib "rasapi32.dll" Alias "RasGetConnectStatusA" (ByVal hRasCon As Long, lpStatus As Any) As Long

    Public Const RAS95_MaxEntryName = 256
    Public Const RAS95_MaxDeviceType = 16
    Public Const RAS95_MaxDeviceName = 32

    Public 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
    Public Type RASCONNSTATUS95
    dwSize As Long
    RasConnState As Long
    dwError As Long
    szDeviceType(RAS95_MaxDeviceType) As Byte
    szDeviceName(RAS95_MaxDeviceName) As Byte
    End Type

    'CHECK CONNECTION
    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

    Вопрос:

    Есть задумка программы, использующей Латиницу-1 и Латиницу-2; она должна выводить символы с диакритикой. Проблему можно коряво решить встраиванием Excel-таблицы в VB-форму. А есть ли в VB(6) контрол, который может такое сделать?

    Ответ:

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

    Да, есть! Это RichTextBox :-)

    Вопрос:

    Трижды вложенный цикл For по переменным i,j,k позволяет перебрать все возможные комбинации (i,j,k). А можно ли сделать для n-ого количества переменных. Может быть можно сделать это с помощью циклических ссылок на функцию, где описан один цикл For. Помогите очень нужно...

    Ответ:

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

    Для этого делаеш рекурсивную процедуру. Тоесть процедура вызывает сама себя.
    Например:

    Private Sub Procedure_f(index As Integer, n As Integer)
    For i(index) = X1 To X2
    If index < n Then Call Procedure_f(index + 1,n)
    Next
    End Sub

    Приблезительно так. А лучше возьми учебник по паскалю там вроде должны рассматриватся рекурсивные процедуры

    Ответ:

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

    Это
    ReDim [Preserve] varname(subscripts) [As type] [, varname(subscripts) [As type]] . . .

    Вопрос:

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

    Ответ:

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

    Cходи на www.vbrussian.com там много инфы по хуку клавы/

    Вопрос:

    Я хочу с удаленного компа, не зная системную папку винды (типо: c:\windows), скачть (из этой папки) файл (пусть будет win.ini).
    Тако вот вопрос: Как определить системную папо4ку винды?

    Ответ:

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

    Вот так:

    Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" _
    (ByVal lpBuffer As String, ByVal nSize As Long) As Long
    '******************************

    Function CurSysDir() As String
    On Error GoTo CurSysDirErr

    Dim WinPath As String
    Const MAXWINPATH = 255
    WinPath = Space$(MAXWINPATH)
    Call GetSystemDirectory(WinPath, MAXWINPATH)

    CurSysDir = StrZ(WinPath) 'См функцию StrZ ниже

    CurSysDirExit:
    Exit Function
    CurSysDirErr:
    Resume CurSysDirExit
    End Function

    Function StrZ(par As String) As String
    'API функция возвращает строковое значение
    'заканчивающееся Chr(0) - за ним могут быть пробелы
    'или "мусор" - и функция сея как раз и отсекает
    'справа Chr(0) вместе с пробелами (мусором).
    Dim nSize As Long, i As Long

    nSize = Len(par)
    i = InStr(1, par, Chr(0)) - 1
    If i > nSize Then i = nSize
    If i < 0 Then i = nSize
    StrZ = Mid(par, 1, i)
    End Function

    Ответ:

    Автор ответа: Пащенко А.

    В Win2000 и XP
    \\compname\admin$

    Ответ:

    Автор ответа: UPS!!!

    функция Environ.
    Она возвращает имена и содержание всех переменных среды операционной системы.
    Так, например, чтобы получить директорию Windows,

    ABC = Environ ("windir")

    ABC = Environ ("TMP") 'директория временных файлов TEMP
    ABC = Environ ("BLASTER") 'координаты звуковой карты
    ABC = Environ ("PATH") 'пути, объявленные в autoexec.bat

    Чтобы получить имя и значение перменной, в скобках вместо строки надо поставить номер переменной (или индекс?).

    Вставьте следуюшую процедуру в код, запустите проект, кликните на форме увидите список всех переменных и их значений!

    Private Sub Form_Click()
    'берём перменную и присваеваем ей единицу
    m = 1
    'запускаем цикл, который увеличивает переменную m каждый
    'раз на единицу и подсовывает её функции Environ
    Do
    'присваеваем перменной EnvString возвращаемую перменную,
    'соответсвующую номеру m
    EnvString = Environ(m)
    'печатаем перменную, соответсвующую номеру m
    Print Environ(m)
    'перменную m увеличиваем на один
    m = m 1
    'если перменная EnvString всё ещё не пустая - крутим дальше...
    Loop Until EnvString = ""
    End Sub

    Не мое..
    А еще, говорят есть API-функция GetWindowsDirectory...?

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

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

    наверх

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


Выпуск 155.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

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

    Новый выпуск. Правзники прошли, с нетерпением жду следующих...
    Читайте!

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

    • Книги

    • Римские цифры
    • Глобальное изменение размеров формы/контролов
    • Получение анимированного курсора
    • ListBox: Проверка дубликатности элементов списка
    • CommonDialog: Просмотр списка директорий без использования контрола Common Dialog

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

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти здесь.

    наверх

    Римские цифры

    Автор кода: Игорь

    К сожалению, некоторые цифры общепринято видеть римскими, например, век не 21 а XXI.
    В Excel есть функция, выполняющая преобразование арабских цифр в римские, но ради 2 - 3 цифр подключать к проекту довольно большую библиотеку не стоит. Поборовши лень (частично) написал преобразование цифр до 50. На практике этого более чем достаточно, а кому мало, может сам дописать. С основными шрифтами получается неплохо.

    Function RimDigital(intN As Integer) As String
    Select Case intN
    Case 1: RimDigital = "I"
    Case 2: RimDigital = "II"
    Case 3: RimDigital = "III"
    Case 4: RimDigital = "IV"
    Case 5: RimDigital = "V"
    Case 6: RimDigital = "VI"
    Case 7: RimDigital = "VII"
    Case 8: RimDigital = "VIII"
    Case 9: RimDigital = "IX"
    Case 10: RimDigital = "X"
    Case 11: RimDigital = "XI"
    Case 12: RimDigital = "XII"
    Case 13: RimDigital = "XIII"
    Case 14: RimDigital = "XIV"
    Case 15: RimDigital = "XV"
    Case 16: RimDigital = "XVI"
    Case 17: RimDigital = "XVII"
    Case 18: RimDigital = "XVIII"
    Case 19: RimDigital = "XIX"
    Case 20: RimDigital = "XX"
    Case 21: RimDigital = "XXI"
    Case 22: RimDigital = "XXII"
    Case 23: RimDigital = "XXIII"
    Case 24: RimDigital = "XXIV"
    Case 25: RimDigital = "XXV"
    Case 26: RimDigital = "XXVI"
    Case 27: RimDigital = "XXVII"
    Case 28: RimDigital = "XXVIII"
    Case 29: RimDigital = "XXIX"
    Case 30: RimDigital = "XXX"
    Case 31: RimDigital = "XXXI"
    Case 32: RimDigital = "XXXII"
    Case 33: RimDigital = "XXXIII"
    Case 34: RimDigital = "XXXIV"
    Case 35: RimDigital = "XXXV"
    Case 36: RimDigital = "XXXVI"
    Case 37: RimDigital = "XXXVII"
    Case 38: RimDigital = "XXXVIII"
    Case 39: RimDigital = "XXXIX"
    Case 40: RimDigital = "XL"
    Case 41: RimDigital = "XLI"
    Case 42: RimDigital = "XLII"
    Case 43: RimDigital = "XLIII"
    Case 44: RimDigital = "XLIV"
    Case 45: RimDigital = "XLV"
    Case 46: RimDigital = "XLVI"
    Case 47: RimDigital = "XLVII"
    Case 48: RimDigital = "XLVIII"
    Case 49: RimDigital = "XLIX"
    Case 50: RimDigital = "L"
    Case Else: RimDigital = intN
    End Select
    End Function

    наверх

    Глобальное изменение размеров формы/контролов

    Отличный и бесподобный пример, автору которого надо выдавать приз за один из отличнейших примеров. К сожалению, я не знаю ни имени автора, ни сайта, разместившего в первоисточнике этот пример. Что делает пример? Ни много, ни мало, а код в зависимости от изменения размеров формы, меняет размеры всех контролов, расположенных на этой форме!!! Вам надо добавить на форму 2 элемента CommanButton и дополнительный модуль в программу. Запустите программу и попробуйте изменять размеры формы. Впечатляет? В любой момент нажмите на кнопку 1, измените размеры формы и нажмите на кнопку 2. Впечатляет?!?

    'КОД ФОРМЫ

    Private Sub Command1_Click()
    SaveFormPosition Me
    End Sub

    Private Sub Command2_Click()
    RestoreFormPosition Me
    End Sub

    Private Sub Form_Resize()
    ResizeForm Me
    End Sub

    'КОД МОДУЛЯ

    Option Explicit
    Type ctrObj
    Name As String
    Index As Long
    Parrent As String
    Top As Long
    Left As Long
    Height As Long
    Width As Long
    ScaleHeight As Long
    ScaleWidth As Long
    End Type
    Private FormRecord() As ctrObj
    Private ControlRecord() As ctrObj
    Private MaxForm As Long
    Private MaxControl As Long

    Private Function ActualPos(plLeft As Long) As Long
    If plLeft < 0 Then ActualPos = plLeft + 75000 Else ActualPos = plLeft
    End Function

    Private Function FindForm(pfrmIn As Form) As Long
    Dim i As Long
    FindForm = -1
    If MaxForm > 0 Then
    For i = 0 To (MaxForm - 1)
    If FormRecord(i).Name = pfrmIn.Name Then FindForm = i: Exit Function
    Next i
    End If
    End Function

    Private Function AddForm(pfrmIn As Form) As Long
    Dim FormControl As Control
    Dim i As Long
    ReDim Preserve FormRecord(MaxForm + 1)
    FormRecord(MaxForm).Name = pfrmIn.Name
    FormRecord(MaxForm).Top = pfrmIn.Top
    FormRecord(MaxForm).Left = pfrmIn.Left
    FormRecord(MaxForm).Height = pfrmIn.Height
    FormRecord(MaxForm).Width = pfrmIn.Width
    FormRecord(MaxForm).ScaleHeight = pfrmIn.ScaleHeight
    FormRecord(MaxForm).ScaleWidth = pfrmIn.ScaleWidth
    AddForm = MaxForm
    MaxForm = MaxForm + 1
    For Each FormControl In pfrmIn
    i = FindControl(FormControl, pfrmIn.Name)
    If i < 0 Then i = AddControl(FormControl, pfrmIn.Name)
    Next FormControl
    End Function

    Private Function FindControl(inControl As Control, inName As String) As Long
    Dim i As Long
    FindControl = -1
    For i = 0 To (MaxControl - 1)
    If ControlRecord(i).Parrent = inName Then
    If ControlRecord(i).Name = inControl.Name Then
    On Error Resume Next
    If ControlRecord(i).Index = inControl.Index Then
    FindControl = i
    Exit Function
    End If
    On Error GoTo 0
    End If
    End If
    Next i
    End Function

    Private Function AddControl(inControl As Control, inName As String) As Long
    ReDim Preserve ControlRecord(MaxControl + 1)
    On Error Resume Next
    ControlRecord(MaxControl).Name = inControl.Name
    ControlRecord(MaxControl).Index = inControl.Index
    ControlRecord(MaxControl).Parrent = inName
    If TypeOf inControl Is Line Then
    ControlRecord(MaxControl).Top = inControl.Y1
    ControlRecord(MaxControl).Left = ActualPos(inControl.X1)
    ControlRecord(MaxControl).Height = inControl.Y2
    ControlRecord(MaxControl).Width = ActualPos(inControl.X2)
    Else
    ControlRecord(MaxControl).Top = inControl.Top
    ControlRecord(MaxControl).Left = ActualPos(inControl.Left)
    ControlRecord(MaxControl).Height = inControl.Height
    ControlRecord(MaxControl).Width = inControl.Width
    End If
    On Error GoTo 0
    AddControl = MaxControl
    MaxControl = MaxControl + 1
    End Function

    Private Function PerWidth(pfrmIn As Form) As Long
    Dim i As Long
    i = FindForm(pfrmIn)
    If i < 0 Then i = AddForm(pfrmIn)
    PerWidth = (pfrmIn.ScaleWidth * 100) \ FormRecord(i).ScaleWidth
    End Function

    Private Function PerHeight(pfrmIn As Form) As Single
    Dim i As Long
    i = FindForm(pfrmIn)
    If i < 0 Then i = AddForm(pfrmIn)
    PerHeight = (pfrmIn.ScaleHeight * 100) \ FormRecord(i).ScaleHeight
    End Function

    Private Sub ResizeControl(inControl As Control, pfrmIn As Form)
    Dim i As Long
    Dim yRatio, xRatio, lTop, lLeft, lWidth, lHeight As Long
    yRatio = PerHeight(pfrmIn)
    xRatio = PerWidth(pfrmIn)
    i = FindControl(inControl, pfrmIn.Name)
    On Error GoTo Moveit
    If inControl.Left < 0 Then
    lLeft = CLng(((ControlRecord(i).Left * xRatio) \ 100) - 75000)
    Else
    lLeft = CLng((ControlRecord(i).Left * xRatio) \ 100)
    End If
    lTop = CLng((ControlRecord(i).Top * yRatio) \ 100)
    lWidth = CLng((ControlRecord(i).Width * xRatio) \ 100)
    lHeight = CLng((ControlRecord(i).Height * yRatio) \ 100)
    '
    Moveit:
    On Error GoTo MoveError1
    If TypeOf inControl Is Line Then
    If inControl.X1 < 0 Then
    inControl.X1 = CLng(((ControlRecord(i).Left * xRatio) \ 100) - 75000)
    Else
    inControl.X1 = CLng((ControlRecord(i).Left * xRatio) \ 100)
    End If
    inControl.Y1 = CLng((ControlRecord(i).Top * yRatio) \ 100)
    If inControl.X2 < 0 Then
    inControl.X2 = CLng(((ControlRecord(i).Width * xRatio) \ 100) - 75000)
    Else
    inControl.X2 = CLng((ControlRecord(i).Width * xRatio) \ 100)
    End If
    inControl.Y2 = CLng((ControlRecord(i).Height * yRatio) \ 100)
    Else
    If TypeOf inControl Is Timer Then GoTo subExit
    inControl.Move lLeft, lTop, lWidth, lHeight
    End If
    GoTo subExit
    '
    MoveError1:
    On Error GoTo MoveError2
    inControl.Move lLeft, lTop, lWidth
    GoTo subExit
    '
    MoveError2:
    On Error GoTo subExit
    inControl.Move lLeft, lTop
    '
    subExit:
    On Error GoTo 0
    End Sub

    Public Sub ResizeForm(pfrmIn As Form)
    Dim FormControl As Control
    Dim isVisible As Boolean
    If pfrmIn.Top < 30000 Then
    isVisible = pfrmIn.Visible
    pfrmIn.Visible = False
    For Each FormControl In pfrmIn
    ResizeControl FormControl, pfrmIn
    Next FormControl
    pfrmIn.Visible = isVisible
    End If
    End Sub

    Public Sub SaveFormPosition(pfrmIn As Form)
    Dim i As Long
    If MaxForm > 0 Then
    For i = 0 To (MaxForm - 1)
    If FormRecord(i).Name = pfrmIn.Name Then
    FormRecord(i).Top = pfrmIn.Top
    FormRecord(i).Left = pfrmIn.Left
    FormRecord(i).Height = pfrmIn.Height
    FormRecord(i).Width = pfrmIn.Width
    Exit Sub
    End If
    Next i
    AddForm (pfrmIn)
    End If
    End Sub

    Public Sub RestoreFormPosition(pfrmIn As Form)
    Dim i As Long
    If MaxForm > 0 Then
    For i = 0 To (MaxForm - 1)
    If FormRecord(i).Name = pfrmIn.Name Then
    If FormRecord(i).Top < 0 Then
    pfrmIn.WindowState = 2
    ElseIf FormRecord(i).Top < 30000 Then
    pfrmIn.WindowState = 0
    pfrmIn.Move FormRecord(i).Left, FormRecord(i).Top
    pfrmIn.Width = FormRecord(i).Width
    pfrmIn.Height = FormRecord(i).Height
    Else
    pfrmIn.WindowState = 1
    End If
    Exit Sub
    End If
    Next i
    End If
    End Sub

    наверх

    Получение анимированного курсора

    Private Declare Function LoadCursorFromFile Lib "user32" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As Long
    Private Declare Function SetClassLong Lib "user32" Alias "SetClassLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

    Const GCL_HCURSOR = (-12)
    Dim sCursorFile As String
    Dim hCursor As Long
    Dim hOldCursor As Long
    Dim lReturn As Long

    Private Sub Command1_Click()
    hCursor = LoadCursorFromFile(sCursorFile)
    hOldCursor = SetClassLong(Form1.hwnd, GCL_HCURSOR, hCursor)
    End Sub

    Private Sub Command2_Click()
    lReturn = SetClassLong(Form1.hwnd, GCL_HCURSOR, hOldCursor)
    End Sub

    Private Sub Form_Load()
    'не забудьте указать свой путь к анимированному курсору
    sCursorFile = "C:\WIN\CURSORS\GLOBE.ANI"
    End Sub

    наверх

    ListBox: Проверка дубликатности элементов списка

    Иногда перед добавлением нового элемента требуется проверить, нет ли уже такой строчки...

    Private Declare Function SendMessageByString Lib "User32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
    Private Sub Command1_Click()
    If SendMessageByString(List1.hWnd, &H1A2, -1, Text1.Text) = -1 Then
    List1.AddItem Text1.Text
    Else
    MsgBox Text1.Text & "- такой элемент уже есть в списке"
    End If
    'www.relib.com
    End Sub

    наверх

    CommonDialog: Просмотр списка директорий без использования контрола Common Dialog

    Private Const BIF_RETURNONLYFSDIRS = 1
    Private Const BIF_DONTGOBELOWDOMAIN = 2
    Private Const MAX_PATH = 260
    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 Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
    Private Type BrowseInfo
    hWndOwner As Long
    pIDLRoot As Long
    pszDisplayName As Long
    lpszTitle As Long
    ulFlags As Long
    lpfnCallback As Long
    lParam As Long
    iImage As Long
    End Type

    Function FolderDialogShow()
    Dim lpIDList As Long
    Dim sBuffer As String
    Dim szTitle As String
    Dim tBrowseInfo As BrowseInfo
    zTitle = "Select Folder"
    With tBrowseInfo
    .hWndOwner = Me.hwnd
    .lpszTitle = lstrcat(szTitle, "")
    .ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN
    End With
    lpIDList = SHBrowseForFolder(tBrowseInfo)
    If (lpIDList) Then
    sBuffer = Space(MAX_PATH)
    SHGetPathFromIDList lpIDList, sBuffer
    sBuffer = Left(sBuffer, InStr(sBuffer, vbNullChar) - 1)
    FolderDialogShow = sBuffer
    End If
    End Function

    Private Sub Command1_Click()
    Text1 = FolderDialogShow
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

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

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

    Вопросы:

    Автор вопроса: Alex

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

    Как в программе на VB проигрывать музыкальные файлы в фоновом режиме?

    Автор вопроса: afb

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

    1. Не могу установить ссылку на Microsoft Scripting Runtime(FileSystemObject). Хотя scrrun.dll лежит, пробовал вручную, тоже самое - пишет - "C:\WINDOWS\SYSTEM\SCRRUN.DLL не может загрузится", и в тоже время заносит его в "Сomponents| Управление".

    2. Как обращаться к Temporary Internet Files, а точнее как его удалить(чистить)? Т.к FileSystemObject не удалось использовать, делал так-

    On Error GoTo 2
    Shell "DelTree /Y " + wd + "\TEMPOR~1\CONTENT.IE5", vbHide
    GoTo 3
    2 MsgBox "Ошибка удаления или отказ в доступе"
    3

    в последствии некоторая часть файлов удаляется и в списке процессов остаётся "Winoldap", возможно нужен подходящий ключ для DelTree, перепробовал все.
    Буду рад любым советам.

    Автор вопроса: Арбит Семен Владимирович

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

    Нуждаюсь в вашей помощи, самостоятельно решить вопрос не получается

    Задача: Win9x, Win2K, WinXP; VBA, VB6.0 VB5.0

    1.Есть бинарный файл-функция с входящими параметрами (это может быть и исполняемый файл exe или com), написанный на Ассемблере.
    2.Этот файл загружается не с диска, а из массива программы на VB (VBA) в памать по выделенному адресу.
    3.Этот файл надо запустить на исполнение из программы на VB причем передав ему параметры (как при запуске с диска из командной строки)
    4.Определить ID процесса выполнения этого файла чтобы отследить момент завершения его работы и продолжить выполнение программы на VB

    ПРОБЛЕМА с осуществлением пункта 3 и определением ID запущенного процесса. На сайте Olovyannikov + VB что-то не высмотрел нмчего(может слаб глазами стал...). Эта ссылка была дана в эхе ФИДО Дмитрием Милосердовым от 16.04.2003

    Ответ прошу выслать на мой e-mail: arbit@barhan.poltava.ua

    Автор вопроса: sla_237

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

    Подскажите пожалуйста, как мне получить телефон текущего (уже установленого) dial up соединения с интернетом? Если можно, кусочек кода.

    Автор вопроса: Taras Prikhodko

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

    Как сделать, чтобы после первого запуска программа в дальнейшем запускалась автоматически?

    Автор вопроса: Uncle Tom

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

    Как открыть файл exe из своей проги?

    Автор вопроса: Виталик

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

    Как послать файл по E-mail (без Outlook). Среда VB 6.

    Автор вопроса: Владимир

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

    Есть некая прога, отправляющая почту в автоматическом режиме. Как на VB перехватывать содержание писем для ведения архива корреспонденции?

    Автор вопроса: Данила

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

    В Access есть возможность разграничения доступа к различным таблицам с помощью имени и пароля. Есть база с такой штукой. Как теперь в VB воспользоваться этими паролями? В книге написано, что пароль задается при инициализации рабочего места, но их пример не работает.

    Автор вопроса: Maxim

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

    Что такое: Item, Trim, Replace, Space??
    Для чего это, что они делают??

    Автор вопроса: goodroman

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

    Привет, у меня несколько вопросов, касающихся Internet Transfer Controla: Программа качает файл по адресу Text1.Text в директорию Text2.text
    Вот привожу код, вопросы после него:

    Private Sub Command1_Click()
    Inet1.Execute Text1.Text, "GET"
    End Sub

    Private Sub Inet1_StateChanged(ByVal State As Integer)
    Dim FUCK() As Byte
    Dim NOF As Long
    If State = 12 Then
    NOF = FreeFile
    Open Text2.Text For Binary Access Write As NOF
    FUCK = Inet1.GetChunk(1024, icByteArray)
    Do While LenB(CStr(FUCK)) > 0
    Put NOF, , FUCK
    FUCK = Inet1.GetChunk(1024, icByteArray)
    Loop
    Close NOF
    MsgBox "OK"
    End If
    End Sub

    1) почему, переменная FUCK объявляется как массив, хотя в коде программы массивом и не пахнет? Хотя если объявить просто объявить переменную (без () ), то программа не работает.
    2) Как связано с нулём вот это выражение LenB(CStr(FUCK)) , ну то есть я понимаю, что оно делает и понимаю зачем, но как все эти преобразования связаны с файлом?

    Ответы:

    Вопрос:

    Не подскажите,как из VB6 запустить программу(игру). Например у меня есть форма с кнопкой OK, я нажимаю и должна запуститься игрушка. Как прописать директорию, точнее как установить связь.

    Ответ:

    Автор ответа: Алексей Щербаков

    Попробуй написать так Shell "файл", флаг посмотришь вроде vbNormalFocus.

    Вопрос:

    Как с помощью VB узнать подключен ты к сети, например Интернету?

    Ответ:

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

    На сайте www.vbstreets.ru есть пример, который называется что - то вроде "inet timer", ну, вообщем, он ясно демонстрирует, как это узнать.

    Вопрос:

    Трижды вложенный цикл For по переменным i,j,k позволяет перебрать все возможные комбинации (i,j,k). А можно ли сделать для n-ого количества переменных. Может быть можно сделать это с помощью циклических ссылок на функцию, где описан один цикл For. Помогите очень нужно...

    Ответ:

    Автор ответа: P@Ssword

    Private Sub Form_Click()
    Dim Inds(0 To 2) As Long
    Dim Pos As Long

    Do
    List1.AddItem Inds(2) & ":" & Inds(1) & ":" & Inds(0)
    Pos = 0
    Do
    Inds(Pos) = Inds(Pos) + 1
    If Inds(Pos) = 10 Then
    Inds(Pos) = 0
    Pos = Pos + 1
    Else
    Exit Do
    End If

    If Pos = 3 Then MsgBox "That's All!", vbInformation: Exit Sub
    Loop
    Loop
    End Sub

    Вопрос:

    Как в VB передать данные по модему с одного компа на другой? Подскажите хотябы направление!

    Ответ:

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

    Используй MS Winsock Control.

    Вопрос:

    Я хочу с удаленного компа, не зная системную папку винды (типо: c:\windows), скачть (из этой папки) файл (пусть будет win.ini).
    Тако вот вопрос: Как определить системную папо4ку винды?

    Ответ:

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

    Очень просто. Вот пример:
    MsgBox Environ("WinDir")

    Вопрос:

    У меня два вопроса.
    1. Как сделать так что бы кликать на файл из любого менеджера и что бы моя прога открыла его.
    2. Нужен компонент или код что бы сделать красивое меню что - то вроде как программе Word.

    Ответ:

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

    1. Можно ассоциировать определённый тип файла с твоей прогой. Вот пример с txt файлами:

    Private Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, phkResult As Long, lpdwDisposition As Long) As Long
    Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
    Private Type SECURITY_ATTRIBUTES
    nLength As Long
    lpSecurityDescriptor As Long
    bInheritHandle As Boolean
    End Type
    Const HKEY_CLASSES_ROOT = &H80000000
    Const REG_SZ = 1
    Const KEY_ALL_ACCESS = &H3F
    Public Sub AsProgram(FileType As String)
    Dim retval As Long
    Dim Result As Long
    Dim SA As SECURITY_ATTRIBUTES
    Dim sPath As String
    retval = RegCreateKeyEx(HKEY_CLASSES_ROOT, App.Title, 0, vbNullString, 0, KEY_ALL_ACCESS, SA, Result, &H1)
    RegSetValueEx Result, "", 0, REG_SZ, ByVal App.Title, Len(App.Title)
    retval = RegCreateKeyEx(HKEY_CLASSES_ROOT, FileType, 0, vbNullString, 0, KEY_ALL_ACCESS, SA, Result, &H1)
    RegSetValueEx Result, "", 0, REG_SZ, ByVal App.Title, Len(App.Title)
    If Right(App.Path, 1) = "\" Then
    sPath = App.Path & App.EXEName & ".exe %1"
    Else
    sPath = App.Path & "\" & App.EXEName & ".exe %1"
    End If
    retval = RegCreateKeyEx(HKEY_CLASSES_ROOT, App.Title & "\shell\open\command", 0, vbNullString, 0, KEY_ALL_ACCESS, SA, Result, &H1)
    RegSetValueEx Result, "", 0, REG_SZ, ByVal sPath, Len(sPath)
    End Sub
    Private Sub Command1_Click()
    AsProgram ".txt"
    End Sub

    Только вот как узнать на какой именно файл кликнули?

    2. Можно использовать компонент CoolBar из комплекта Microsoft Windows Common Controls-3 6.0 (sp5) (файл COMCT322.ocx)

    Вопрос:

    В Textе стоит математическое выражение, ну например text1="2+3". Можно ли его посчитать в переменной? А может кто знает, как в Микрософтском калькуляторе обрабатываются операторы сложения, умножения и т.д.?

    Ответ:

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

    1. Можно. Используй Left, Mid, Right. С помощью них отсей числа из text1, а потом делай с ними всё, что хочешь. Ну например, один из вариантов (это для двух чисел, для трех и более, а также если будут скобки код придется изменить):

    Private strSign As String
    Private Number1, Number2, Result
    Private Sub Command1_Click()
    For a = 1 To Len(Text1)
    strSign = Mid(Text1.Text, a, 1)
    If strSign = "+" Or strSign = "-" Or strSign = "/" Or strSign = "*" Then
    Number1 = Val(Left(Text1, a - 1))
    Number2 = Val(Right(Text1, Len(Text1) - a))
    Select Case strSign
    Case "+"
    Result = Number1 + Number2
    Case "-"
    Result = Number1 - Number2
    Case "/"
    Result = Number1 / Number2
    Case "*"
    Result = Number1 * Number2
    End Select
    Exit Sub
    End If
    Next
    End Sub

    2.
    Что значит обрабаьываются? Алгоритм тебя интересует или что? Как конкретно в Майкрософтовском не знаю, с другой стороны написан он наверняка на языке высокого уровня, который уже отвергает написание таких процедур как сложить, умножить, в ЯВУ эти функции уже есть.
    А если тебя интересует стандартный алгоритм на низком уровне, то:

    123+456= 123
    +456
    ---
    579

    То есть все операции решаются путем сложения, умножения и т.д. чисел столбиком, как нас еще учили в начальных классах. Ессесно сначала машине сказали как посчитать, 1+1, 1+2 , 2-1, ... проверка на ноль при делении и т.д.
    С помощью АСМа это всё предельно просто inc число, dec число, но это
    уже другая песня

    Вопрос:

    Срочно необходимо сделать, чтобы при нажатии определенной комбинации клавиш при неактивном приложении, выполнялась заданая процедура.

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Используй АПИшку RegisterHotKey. Но при этом прийдется субклассить окно и ловить WM_HOTKEY.

    Вопрос:

    Как открыть дверцу Cd-Rom програмно?

    Ответ:

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

    Легко!

    Public Declare Function GetVersion Lib "kernel32" () As Long
    Public Declare Function CreateFile Lib "kernel32" Alias "CreateFileA"
    (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal
    dwShareMode As Long, lpSecurityAttributes As Any, ByVal
    dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal
    hTemplateFile As Long) As Long
    Public Declare Function DeviceIoControl Lib "kernel32" (ByVal hDevice As
    Long, ByVal dwIoControlCode As Long, lpInBuffer As Any, ByVal
    nInBufferSize As Long, lpOutBuffer As Any, ByVal nOutBufferSize As Long,
    lpBytesReturned As Long, lpOverlapped As Any) As Long
    Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As
    Long) As Long
    Public Const INVALID_HANDLE_VALUE = -1
    Public Const OPEN_EXISTING = 3
    Public Const FILE_FLAG_DELETE_ON_CLOSE = 67108864
    Public Const GENERIC_READ = &H80000000
    Public Const GENERIC_WRITE = &H40000000
    Public Const IOCTL_STORAGE_EJECT_MEDIA = 2967560
    Public Const VWIN32_DIOC_DOS_IOCTL = 1

    Public Type DIOC_REGISTERS
    reg_EBX As Long
    reg_EDX As Long
    reg_ECX As Long
    reg_EAX As Long
    reg_EDI As Long
    reg_ESI As Long
    reg_Flags As Long
    End Type
    **********************
    Sub CD()
    Dim hDrive As Long, DummyReturnedBytes As Long
    Dim EjectDrive As String, DriveLetterAndColon As String
    Dim RawStuff As DIOC_REGISTERS
    EjectDrive = ("E:")
    If Len(EjectDrive) Then
    DriveLetterAndColon = UCase(Left$(EjectDrive & ":", 2))
    If GetVersion >= 0 Then
    hDrive = CreateFile("\\.\" & DriveLetterAndColon,
    GENERIC_READ Or GENERIC_WRITE, 0, ByVal 0, OPEN_EXISTING, 0, 0)
    If hDrive <> INVALID_HANDLE_VALUE Then

    Call DeviceIoControl(hDrive, IOCTL_STORAGE_EJECT_MEDIA, 0, 0, 0,
    0, DummyReturnedBytes, ByVal 0)
    Call CloseHandle(hDrive)
    End If
    Else
    hDrive = CreateFile("\\.\VWIN32", 0, 0, ByVal 0, 0,
    FILE_FLAG_DELETE_ON_CLOSE, 0)
    If hDrive <> INVALID_HANDLE_VALUE Then
    RawStuff.reg_EAX = &H440D
    RawStuff.reg_EBX = Asc(DriveLetterAndColon) - Asc("A") + 1
    RawStuff.reg_ECX = &H49 Or &H800
    Call DeviceIoControl(hDrive, VWIN32_DIOC_DOS_IOCTL, RawStuff,
    LenB(RawStuff), RawStuff, LenB(RawStuff), DummyReturnedBytes, ByVal 0)
    Call CloseHandle(hDrive)
    End If
    End If
    End If
    End Sub

    Ответ:

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

    Ну сколько можно об одном и том же?
    Ты знаешь что на www.Subscribe.ru хранится весь архив рассылки начиная с первого номера?!
    берешь ReGet, тратишь пятнадцать минут на то чтоб создать список для закачки и после этого у тебя на компе будет весь курс начальной военой подготовки по ВБ в кратком изложении! ;-)

    Комментарий автора: на http://vbnet.ru/subscribe лежит архив этой расылки в формате chm и в формате html.

    Ответ:

    Автор ответа: KAS (c)

    Контролом MultiMediaControl:

    MMC.Command="Eject"

    Ответ:

    Автор ответа: UPS!!!

    Чтобы побаловаться с CD-ROM-ом используется функция mciSendString из библиотеки winmm.dll

    В модуле

    Public Declare Function mciSendString Lib "winmm.dll" _
    Alias "mciSendStringA" (ByVal lpstrCommand As String, _
    ByVal lpstrReturnString As String, ByVal uReturnLength As Long, _
    ByVal hwndCallback As Long) As Long

    На форме поставте две кнопки.

    Private Sub Command1_Click()
    Call mciSendString("Set CDAudio Door Open Wait", 0&, 0&, 0&)
    End Sub

    Private Sub Command2_Click()
    Call mciSendString("Set CDAudio Door Closed Wait", 0&, 0&, 0&)
    End Sub

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

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

    наверх

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


Выпуск 158.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

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

    Читайте!

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

    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Один момент из жизни форума: Создание ярлыка

    • Доска объявлений

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

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

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

    Дата: 01.05.2003 11:01 | Раздел: Примеры кода | Автор: Ларин Александр

    UniCum Enumeration Converter - Очень компактная функция для работы с преобразованием одной системы исчисления в другую. Вроде работает!

    Дата: 30.04.2003 10:57 | Раздел: Полезные программы | Автор: Per Carlsson

    3С - Пипетка для взятия цвета с экрана и его анализа (сам цвет, его RGB и шестнадцатеричный код (для Web)). RGB очень полезно для программистов и дизайнеров, а HEX - для Web-дизайнеров.

    Дата: 29.04.2003 16:54 | Раздел: Примеры кода | Автор: Daniyar Atadjanov

    AntiAutoStart - Эта прога проверяет все записи в пункт Главного меню Автозагрузка. Прога сообщит Вам о том, что какая-то другая прога записалась или выписалась из Автозагрузки!

    Дата: 27.04.2003 13:22 | Раздел: Статьи по VB | Автор: Немиро Алексей

    Разработка окна в стиле Windows XP - В данной статье я расскажу о том, как можно сделать обычное окно в стиле Windows XP, без использования дополнительных элементов управления, за пять минут.

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

    13:27 / 4 май. net.exe | Хитов: 0 | Ответов: 0
    13:15 / 4 май. Новое сообщение без темы | Хитов: 0 | Ответов: 0
    10:33 / 4 май. Повестка в армию пришла!!!!!!!?????!!!!! | Хитов: 18 | Ответов: 2
    07:24 / 4 май. Проблема с GetPixel | Хитов: 8 | Ответов: 2
    07:10 / 4 май. Иконки в меню | Хитов: 17 | Ответов: 3
    00:06 / 4 май. mscoree.dll | Хитов: 24 | Ответов: 5
    23:07 / 3 май. как запретить закрывать программу (+) | Хитов: 18 | Ответов: 3
    21:58 / 3 май. Помогите с 1с | Хитов: 16 | Ответов: 1
    19:40 / 3 май. Как перерисовать окно | Хитов: 17 | Ответов: 1
    18:45 / 3 май. InputBox - это круто! | Хитов: 35 | Ответов: 2
    17:58 / 3 май. listbox? | Хитов: 19 | Ответов: 2
    15:23 / 3 май. VB.NET | Хитов: 22 | Ответов: 2
    14:36 / 3 май. Вопрос по AVI | Хитов: 15 | Ответов: 0
    12:41 / 3 май. Winsock? Опять | Хитов: 14 | Ответов: 1
    12:24 / 3 май. listbox? | Хитов: 21 | Ответов: 1
    12:01 / 3 май. Winsock? | Хитов: 15 | Ответов: 2
    06:14 / 3 май. Как удалить exe файл? | Хитов: 29 | Ответов: 2
    01:00 / 3 май. Размеры форм VB .NET | Хитов: 7 | Ответов: 0
    22:35 / 2 май. И всё-равно open file | Хитов: 24 | Ответов: 5
    20:43 / 2 май. MAPI for LotusNotes | Хитов: 6 | Ответов: 0

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

    Новости от VBNet-чиков!:

    наверх

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

    наверх

    Новости сайта Азбука VB

    наверх

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

    наверх

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

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

    • 29.04 - Обфускация – есть такое слово

    наверх

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

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

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

    наверх

    Один момент из жизни форума: Создание ярлыка

    Вопрос:
    Автор вопроса: jimm

    Как программно создать ярлык к приложению?

    Ответы:

    Автор: V!RU$™
    Вrundll32 AppWiz.Cpl, NewLinkHere %1 - запуск мастера создания нового ярлыка, где %1 - путь к исходному файлу.

    Автор: <==Alex==>
    'Ещё один хороший способ создания ярлыка:

    Public Sub CreateShortcut(ByVal SCPath As String, ByVal SCName As String, ByVal FilePath As String, Optional HotKey As String, Optional SHIcon As String, Optional SHWorkingDirectory As String, Optional SHDescription As String, Optional WindowStyle As Integer = vbNormalFocus)
    Dim WshShell As Object
    Dim oShellLink As Object
    Dim sLinkPath As String
    Set WshShell = CreateObject("WScript.Shell")
    On Error GoTo 0
    Set oShellLink = WshShell.CreateShortcut(SCPath & SCName & ".lnk")
    oShellLink.WindowStyle = WindowStyle
    oShellLink.HotKey = HotKey
    oShellLink.TargetPath = SCPath
    oShellLink.IconLocation = SHIcon
    oShellLink.Description = SCDescription
    oShellLink.WorkingDirectory = SHWorkingDirectory
    oShellLink.Save
    Set oShellLink = Nothing
    Set WshShell = Nothing
    End Sub

    Private Sub Form_Load()
    Dim shFolder As String
    shFolder = "C:\" 'или "Desktop", "StartMenu", "StartUp", "Programs" и т.д.
    CreateShortcut shFolder, "Калькулятор", "calc.exe", "CTRL+SHIFT+C", "calc.exe,0", , "Калькулятор Windows"
    End Sub

    Автор: Страшный Сон
    Можно изучить структуру LNK-файла и создавать ярлыки без всяких апи.

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

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

    Вопросы:

    Автор вопроса: ]CBK[CRaSH

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

    У немя возник тут такой вопрос
    Как сделать так что-бы можно было обводить несколько контролов во время работы программы (типа как в VB во время разработки)

    Автор вопроса: mikl

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

    Как записать и считать информацию ия определённой ячейки используя объект List. Каждый элемент списка должен находиться в определённой записи и в разных полях этой записи.

    Автор вопроса: Меркуль Юрий

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

    Подскажите пожалуйста, какими средствами VB 6.0 можно организовать передачу файлов( по типу Hyper Terminal).
    Или какая команда(или, что-нибудь ещё) есть в VB для перехода в полноэкранный режим, т.е. в простом Бэйсике есть команда screen, А в ВБ?

    Автор вопроса: Dmitry

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

    Хочется повесить выгрузку формы на событие MouseMove. Но это событие происходит сразу в момент запуска приложения, поэтому форма не загружается вообще.

    Автор вопроса: Игорь

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

    Буду признателен за прогр на VBA в Access-сохранить текущую запись, т.е. что бы для опреденленных записей запретить в форме делать изменения,удаления. Форма предназначена для ввода и просмотра данных.

    Ответы:

    Вопрос:

    Как в программе на VB проигрывать музыкальные файлы в фоновом режиме?

    Ответ:

    Автор ответа: KAS (c)

    Используй MultiMedia Control:

    Private Sub Form_Load()
    MMC.FileName = "c:\mdi.mdi" 'Путь до файла
    MMC.Command = "Open"
    MMC.Command = "Play"
    End Sub

    Private Sub MMC_Done(NotifyCode As Integer) ' Повторное воспроизведение по окончании
    MMC.Command = "Prev"
    MMC.Command = "Play"
    End Sub

    Вопрос:

    1. Не могу установить ссылку на Microsoft Scripting Runtime(FileSystemObject). Хотя scrrun.dll лежит, пробовал вручную, тоже самое - пишет - "C:\WINDOWS\SYSTEM\SCRRUN.DLL не может загрузится", и в тоже время заносит его в "Сomponents| Управление".

    2. Как обращаться к Temporary Internet Files, а точнее как его удалить(чистить)? Т.к FileSystemObject не удалось использовать, делал так-

    On Error GoTo 2
    Shell "DelTree /Y " + wd + "\TEMPOR~1\CONTENT.IE5", vbHide
    GoTo 3
    2 MsgBox "Ошибка удаления или отказ в доступе"
    3

    в последствии некоторая часть файлов удаляется и в списке процессов остаётся "Winoldap", возможно нужен подходящий ключ для DelTree, перепробовал все.
    Буду рад любым советам.

    Ответ:

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

    1. Попробуй подключить её в качестве Referense. Должно работать. У меня работает вроде :-)

    Вопрос:

    Как сделать, чтобы после первого запуска программа в дальнейшем запускалась автоматически?

    Ответ:

    Автор ответа: Пащенко А.

    При запуске программы добавляй строковый параметр (App.EXEName), равный (App.Path & "\" & App.EXEName & ".exe") в одну из веток реестра:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run - будет запускаться под всеми пользователями.

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run - будет запускаться только под текущим пользователем.

    Ответ:

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

    Допиши в реестр, в раздел RunOnce, такой параметр "Имя своей проги" - "Путь по которому она располагается". Прога при каждом перезапуске будет запускаться автоматически

    Вопрос:

    Как открыть файл exe из своей проги?

    Ответ:

    Автор ответа: KAS (c)

    Shell "Путь до программы"

    Вопрос:

    Что такое: Item, Trim, Replace, Space??
    Для чего это, что они делают??

    Ответ:

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

    Trim - функция, удаляющая ведущие и конечные пробелы.
    Space - функция выводящая заданное число пробелов.

    Ответ:

    Автор ответа: KAS (c)

    Item(Index) - используется как функция задающая порядковый номер элемента
    Trim(" 123 ") - дает "123" - обрезает пробелы с обеих сторон переменной
    Replace("Текст","Что искать","На что заменить") - заменяет что-либо в тексте
    Space(10) даст " " - возвращает столько пробелов сколько укажете

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Trim - функция, которая обрезает пробелы по краям. Например,
    было " 123321 "
    стало"123321"

    Функции LTrim и RTrim позволяют обрезать пробелы только слева или справа соответственно.

    Replace - функция, которая заменяет один фрагмент текста другим.

    strTemp=Replace("HELLO","H","h")
    Получится "hELLO". Причем заменятся все такие фрагменты.

    Space - функция, которая заполняет строк. переменную пробелами, например:

    Space(10) вернет:
    " ".

    Вопрос:

    Привет, у меня несколько вопросов, касающихся Internet Transfer Controla: Программа качает файл по адресу Text1.Text в директорию Text2.text
    Вот привожу код, вопросы после него:

    Private Sub Command1_Click()
    Inet1.Execute Text1.Text, "GET"
    End Sub

    Private Sub Inet1_StateChanged(ByVal State As Integer)
    Dim FUCK() As Byte
    Dim NOF As Long
    If State = 12 Then
    NOF = FreeFile
    Open Text2.Text For Binary Access Write As NOF
    FUCK = Inet1.GetChunk(1024, icByteArray)
    Do While LenB(CStr(FUCK)) > 0
    Put NOF, , FUCK
    FUCK = Inet1.GetChunk(1024, icByteArray)
    Loop
    Close NOF
    MsgBox "OK"
    End If
    End Sub

    1) почему, переменная FUCK объявляется как массив, хотя в коде программы массивом и не пахнет? Хотя если объявить просто объявить переменную (без () ), то программа не работает.
    2) Как связано с нулём вот это выражение LenB(CStr(FUCK)) , ну то есть я понимаю, что оно делает и понимаю зачем, но как все эти преобразования связаны с файлом?

    Ответ:

    Автор ответа: Владимир Кирко

    1) Должно было бы работать и без массива, т.к. переменная по умолчанию - variant. А согласно MSDN:

    GetChunk Method (Internet Transfer Control) - Retrieves data from in the StateChanged event. Use this method after invoking the Execute method as a GET operation.
    Syntax: object.GetChunk( size [,datatype] )

    The Get property syntax has these parts:
    Part Description
    object Anobject expression that evaluates to an object in the Applies To list.
    size Required. A long numeric expression that determines the size of the chunk to be retrieved.
    datatype Optional. An integer that specifies the data type of the retrieved chunk, as shown in Settings below.
    Settings
    The settings for datatype are:
    Constant Value Description
    icString 0 Default. Retrieves data as string.
    icByteArray 1 Retrieves data as a byte array.
    Return Type - Variant
    Remarks - Use the GetChunk method in the StateChanged event. When the State property is icResponseCompleted (12), then use the GetChunk method to retrieve the buffer's contents.

    И выдают такой пример:
    Private Sub Inet1_StateChanged(ByVal State As Integer)
    ' Retrieve server response using the GetChunk
    ' method when State = 12. This example assumes the
    ' data is text.
    Select Case State
    ' ... Other cases not shown.
    Case icResponseReceived ' 12
    Dim vtData As Variant ' Data variable.
    Dim strData As String: strData = ""
    Dim bDone As Boolean: bDone = False
    ' Get first chunk.
    vtData = Inet1.GetChunk(1024, icString)
    DoEvents
    Do While Not bDone
    strData = strData & vtData
    DoEvents
    ' Get next chunk.
    vtData = Inet1.GetChunk(1024, icString)
    If Len(vtData) = 0 Then
    bDone = True
    End If
    Loop
    txtData.Text = strData
    End Select
    End Sub

    2)GetChunk - получить порцию. И согласно тому же источнику действует так (описание я взял немного из другого места, но принцип действия должен быть тот же):

    Each subsequent GetChunk call retrieves data starting from where the previous GetChunk call left off. However, if you are retrieving data from one field and then you set or read the value of another field in the current record, ADO assumes you have finished retrieving data from the first field. If you call the GetChunk method on the first field again, ADO interprets the call as a new GetChunk operation and starts reading from the beginning of the data. Accessing fields in other Recordset objects that are not clones of the first Recordset object will not disrupt GetChunk operations.

    Не вдаваясь в детали - каждый вызов GetChank выдаёт некую порцию информации, начиная с той, которая не попала в предыдущий её вызов. Если вызов GetChank ничего не возвратил, т.е. "длина" объекта нулевая, то, надо полагать, вы получили весь объект.

    Ответ:

    Автор ответа: KAS (c)

    В переменную FUCK закачивается указанный вами файл.
    А строка: LenB(CStr(FUCK)) > 0, проверяет длину закачиваемого файла, CStr преабразует выражение в строковую переменную, а LenB проверяет ее длину.

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

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

    наверх

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


Выпуск 155.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

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

    Кодов осталось только на один выпуск! Присылайте информацию на pavel@vbnet.ru!
    Читайте!

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

    • Книги

    • Получить содержимое Web-страницы, используя WinInet API
    • Получить полное название окна, зная кусок
    • Вызов диалога "Поиск файлов"
    • Компактное отображение длинного имени пути

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

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти здесь.

    наверх

    Получить содержимое Web-страницы, используя WinInet API

    Все просто: задаете URL любой страницы, и в текстовом окне получаете содержимое этой страницы

    Private Const INTERNET_OPEN_TYPE_PRECONFIG = 0
    Private Const INTERNET_OPEN_TYPE_DIRECT = 1
    Private Const INTERNET_OPEN_TYPE_PROXY = 3
    Private Const scUserAgent = "VB Project"
    Private Const INTERNET_FLAG_RELOAD = &H80000000
    Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
    Private Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" (ByVal hOpen As Long, ByVal sUrl As String, ByVal sHeaders As String, ByVal lLength As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
    Private Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
    Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer

    Private Function OpenURL(ByVal sUrl As String) As String
    Dim hOpen As Long
    Dim hOpenUrl As Long
    Dim bDoLoop As Boolean
    Dim bRet As Boolean
    Dim sReadBuffer As String * 2048
    Dim lNumberOfBytesRead As Long
    Dim sBuffer As String
    hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
    hOpenUrl = InternetOpenUrl(hOpen, sUrl, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)
    bDoLoop = True
    While bDoLoop
    sReadBuffer = vbNullString
    bRet = InternetReadFile(hOpenUrl, sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)
    sBuffer = sBuffer & Left$(sReadBuffer, lNumberOfBytesRead)
    If Not CBool(lNumberOfBytesRead) Then bDoLoop = False
    Wend
    If hOpenUrl <> 0 Then InternetCloseHandle (hOpenUrl)
    If hOpen <> 0 Then InternetCloseHandle (hOpen)
    OpenURL = sBuffer
    End Function

    Private Sub Command1_Click()
    Text1 = OpenURL("http://vbnet.ru/faq/showall.asp")
    End Sub

    наверх

    Получить полное название окна, зная кусок

    Option Explicit
    Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
    Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
    Private Declare Function GetNextWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wFlag As Long) As Long

    Public Function GetCaption(lhWnd As Long) As String
    Dim sA As String, lLen As Long
    lLen& = GetWindowTextLength(lhWnd&)
    sA$ = String(lLen&, 0&)
    Call GetWindowText(lhWnd&, sA$, lLen& + 1)
    GetCaption$ = sA$
    End Function

    Public Function DLHFindWin(frm As Form, WinTitle As String, CaseSensitive As Boolean) As Long
    Dim lhWnd As Long, sA As String
    lhWnd& = frm.hwnd
    Do
    DoEvents
    If lhWnd& = 0 Then Exit Do
    If CaseSensitive = False Then
    sA$ = LCase$(GetCaption(lhWnd&))
    WinTitle$ = LCase$(WinTitle$)
    Else
    sA$ = GetCaption(lhWnd&)
    End If
    If InStr(sA$, WinTitle$) Then
    DLHFindWin& = lhWnd&
    Exit Do
    Else
    DLHFindWin& = 0
    End If
    lhWnd& = GetNextWindow(lhWnd&, 2)
    Loop
    End Function

    Private Sub Command1_Click()
    'использование функции
    Call MsgBox(DLHFindWin&(Me, "доку", False))
    'или
    Call MsgBox(GetCaption$(DLHFindWin&(Me, "доку", False)))
    End Sub

    наверх

    Вызов диалога "Поиск файлов"

    ПРИМЕЧАНИЕ: Если в качестве параметра ShowFindDialog задать несуществующий каталог, то окно поиска не появится. По-умолчанию (если каталог не задан) диалог вызывается с текущим каталогом.

    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    Const SW_SHOW = 5

    Public Sub ShowFindDialog(Optional InitialDirectory As String)
    ShellExecute 0, "find", IIf(InitialDirectory = "", "", InitialDirectory), vbNullString, vbNullString, SW_SHOW
    End Sub

    Private Sub Command1_Click()
    Call ShowFindDialog("C:\Win")
    End Sub

    наверх

    Компактное отображение длинного имени пути

    Очень часто требуется отобразить не полный путь для какой-либо папки, а сокращенный, заменяя полный путь (..). Этот метод используют многие приложения Microsoft.

    Private Type RECT
    left As Long
    top As Long
    right As Long
    bottom As Long
    End Type
    Private Declare Function DrawText Lib "user32" Alias "DrawTextA" (ByVal hDC As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long
    Private Const DT_BOTTOM = &H8&
    Private Const DT_CENTER = &H1&
    Private Const DT_LEFT = &H0&
    Private Const DT_CALCRECT = &H400&
    Private Const DT_WORDBREAK = &H10&
    Private Const DT_VCENTER = &H4&
    Private Const DT_TOP = &H0&
    Private Const DT_TABSTOP = &H80&
    Private Const DT_SINGLELINE = &H20&
    Private Const DT_RIGHT = &H2&
    Private Const DT_NOCLIP = &H100&
    Private Const DT_INTERNAL = &H1000&
    Private Const DT_EXTERNALLEADING = &H200&
    Private Const DT_EXPANDTABS = &H40&
    Private Const DT_CHARSTREAM = 4&
    Private Const DT_NOPREFIX = &H800&
    Private Const DT_EDITCONTROL = &H2000&
    Private Const DT_PATH_ELLIPSIS = &H4000&
    Private Const DT_END_ELLIPSIS = &H8000&
    Private Const DT_MODIFYSTRING = &H10000
    Private Const DT_RTLREADING = &H20000
    Private Const DT_WORD_ELLIPSIS = &H40000
    Private Declare Function PathCompactPath Lib "shlwapi" Alias "PathCompactPathA" (ByVal hDC As Long, ByVal lpszPath As String, ByVal dx As Long) As Long

    Public Function CompactedPath(ByVal sPath As String, ByVal lMaxPixels As Long, ByVal hDC As Long) As String
    Dim tR As RECT
    tR.right = lMaxPixels
    DrawText hDC, sPath, -1, tR, DT_PATH_ELLIPSIS Or DT_SINGLELINE Or DT_MODIFYSTRING
    CompactedPath = sPath
    End Function

    Public Function CompactedPathSh(ByVal sPath As String, ByVal lMaxPixels As Long, ByVal hDC As Long) As String
    Dim lR As Long
    Dim iPos As Long
    lR = PathCompactPath(hDC, sPath, lMaxPixels)
    iPos = InStr(sPath, Chr$(0))
    If iPos <> 0 Then
    CompactedPathSh = left$(sPath, iPos - 1)
    Else
    CompactedPathSh = sPath
    End If
    End Function

    Private Sub Command1_Click()
    ' Use either the CompactedPath or CompactedPathSh functions - they
    ' work exactly the same.
    Label2.Caption = CompactedPathSh(Label1.Caption, Label2.Width \ Screen.TwipsPerPixelX, Me.hDC)
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

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

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

    Вопросы:

    Автор вопроса: weeeer

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

    У меня два вопроса.

    1. Как сделать так что бы кликать на файл из любого менеджера и чтоб моя прога загрузила этот файл не просто ассоциировала определённый тип файла с моей прогой а загрузила его, что типа скажем при кликание путь и имя файла заносилась в переменую а потом прога загружал его
    Кто нибудь помогите мне диплом сдавать скоро надо

    2. Кто нибудь умеет пользоватся компонентом Menu Ehhancer2 уменя валяется пример но как картинки вставлять я без понятия пробовал разные штуки все бесполезно Может из за ОС глючит у меня XP

    Автор вопроса: Игорь

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

    Как, используя Visual Basic 6.0, работая под Windows XP, получить возможность поддержки в раярабатываемой программе стилей XP (кнопки, поля, полосы прокрутки и т.д.), если это, конечно, возможно ...

    Автор вопроса: Лёшин Алексей

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

    Возможно ли программным путем во время работы приложения развернуть и свернуть ComboBox?

    Автор вопроса: Кударова Дина

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

    В реестр вносится код месяца по клику на кнопку <Принять>. В дальнейшем при переходе в следующий отчетный месяц по щелчку на эту же кнопку программа должна обновить код месяца в реестре:Однако чтобы код месяца поменялся надо вновь перезапустить программу. Подскажите как сделать, чтобы по клику программа автоматически вновь перезапустилась:.

    Private Sub apply_Click()

    rst2.FindFirst "name_month='" + Combo1.Text + "'"
    If rst2.NoMatch = False Then
    mes = rst2!nomer
    MsgBox "Установка отчетного месяца успешно завершилась!", vbOKOnly
    SaveSetting "Blankes", "months", "month", mes
    End sub

    В модуле

    Sub Main()
    kodmonth = GetSetting("Blankes", "Months", "month")

    Автор вопроса: Taras Prikhodko

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

    Как получить список компьютеров сети и после определить их IP?

    Автор вопроса: Rudik

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

    Вопрос про макроподстановки. Есть в foxpro(и не только) такая фича:

    a=1
    b=3
    s="a+b"
    f=&s ' в итоге f=4, & - признак макроподстановки (указателя)

    Есть ли в Басике что-либо подобное?

    Автор вопроса: weeeer

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

    Что такое App.hinstance
    А имено что оно обозначает и чего определяет вообщем опишите все что принадлежит этой камманде

    Автор вопроса: Сергей

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

    Извините за назойливость... Я уже попрошайничал...
    Как из *.BMP сделать *.JPG... если можно, примерчик...

    Автор вопроса: Андрей

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

    Как в DataGrid менять цвет строки в зависимости от каких-либо условий,например нажатия клавиши?

    Автор вопроса: Alex Velikiy

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

    Я создал локальную ловушку типа WH_GETMESSAGE для перехвата сообщений Windows. Нужно,чтобы функция обратного вызова при получении определенного
    сообщения выполняла определенные действи,но я не знаю,какое именно сообщение должно быть при том или ином событии. Как узнать, какое именно создается сообщение при том или ином событии? (Где найти списки сообщений Windows?).

    Автор вопроса: Vir

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

    Имеется файл BMP JPG и т.д. нужно сбросить его в массив или хотя бы прочитать пиксел с координатами x,y.(Способ: открыть в PictureBox и прочитать Point'ом неподходит)

    Ответы:

    Вопрос:

    Подскажите как в ASP.NET обратиься к свойствам элемента управления, черея коллекцию Controls объекта Page. Код примерно следующий:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim i As Integer
    Dim t As New TextBox()
    For i = 0 To Page.Controls.Count - 1
    If TypeOf Page.Controls.Item(i) Is TextBox Then
    t = Page.Controls.Item(i)
    If NotChar(t.Text) Then
    label1.Text = "Текст сообщения"
    GoTo 1
    End If
    End If
    Next i
    1:
    End Sub

    Где NotChar-просто функция, которая находит определенный символ строки, работает исправно, дело не в ней. При нажатии ничего не происходит, даже если этот символ есть в строке.

    Ответ:

    Автор ответа: P@Ssword

    Может, вместо

    t = Page.Controls.Item(i)

    надо написАть

    Set t = Page.Controls.Item(i)

    , но вот вместо Goto 1 однозначно пишется Exit For!

    Вопрос:

    Как лучше органияовать SAVE/LOAD компонентов в TreeView контроле? Я пытался решить проблему черея INI файл(т.к. др. методы недоступны -> я только учусь), но желаемого реяультата не добился.(хотя теоретически должно работать)

    И еще: там к каждому компоненту строковая переменная с описанием.

    Ответ:

    Автор ответа: P@Ssword

    Ни фига себе - только учусь! По-моему работа с INI-файлами - это уже WinAPI. А лично я деревья предпочитаю сохранять в Binary файл, рекурсивно проходя по дереву и записывая в таком порядке:

    1) Записать элемент.
    2) Если есть дочерний элемент - рекурсивно перейти к нему и п.1.
    3) Записать стоп-байт (напр., ноль).
    4) Выйти из рекурсии.

    А описание лучше хранить в тегах нодов (Node.Tag).

    При желании (моём тоже) могу кинуть пример.

    Вопрос:

    Как открыть дверцу Cd-Rom програмно?

    Ответ:

    Автор ответа: P@Ssword

    Немножко хайтековский пример, но об этом - позже.

    Private Declare Function mciSendString Lib "winmm" Alias "mciSendStringA"
    (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal
    uReturnLength As Long, ByVal hwndCallback As Long) As Long

    Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias
    "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As
    String) As Long
    Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA"
    (ByVal nDrive As String) As Long
    Private Declare Function GetDiskFreeSpace Lib "kernel32" Alias
    "GetDiskFreeSpaceA" (ByVal lpRootPathName As String, lpSectorsPerCluster As
    Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long,
    lpTtoalNumberOfClusters As Long) As Long

    Private Declare Function GetVersion Lib "kernel32" () As Long
    Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA"
    (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal
    dwShareMode As Long, lpSecurityAttributes As Any, ByVal
    dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal
    hTemplateFile As Long) As Long
    Private Declare Function DeviceIoControl Lib "kernel32" (ByVal hDevice As
    Long, ByVal dwIoControlCode As Long, lpInBuffer As Any, ByVal nInBufferSize
    As Long, lpOutBuffer As Any, ByVal nOutBufferSize As Long, lpBytesReturned
    As Long, lpOverlapped As Any) As Long
    Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long)
    As Long

    Private Const INVALID_HANDLE_VALUE = -1
    Private Const OPEN_EXISTING = 3
    Private Const FILE_FLAG_DELETE_ON_CLOSE = 67108864
    Private Const GENERIC_READ = &H80000000
    Private Const GENERIC_WRITE = &H40000000
    Private Const IOCTL_STORAGE_EJECT_MEDIA = &H2D4808
    Private Const IOCTL_STORAGE_LOAD_MEDIA = &H2D480C
    Private Const VWIN32_DIOC_DOS_IOCTL = 1

    Private Type DIOC_REGISTERS
    reg_EBX As Long
    reg_EDX As Long
    reg_ECX As Long
    reg_EAX As Long
    reg_EDI As Long
    reg_ESI As Long
    reg_Flags As Long
    End Type

    Private Sub CD_Eject(ByVal Drive As String)
    Dim hDrive As Long, DummyReturnedBytes As Long
    Dim EjectDrive As String
    Dim RawStuff As DIOC_REGISTERS

    Drive = UCase(Left$(Drive & ":", 2))
    If GetVersion >= 0 Then ' Запущена Windows NT/2000
    hDrive = CreateFile("\\.\" & Drive, GENERIC_READ Or GENERIC_WRITE,
    0, ByVal 0, OPEN_EXISTING, 0, 0)
    If hDrive <> INVALID_HANDLE_VALUE Then
    DeviceIoControl hDrive, IOCTL_STORAGE_EJECT_MEDIA, 0, 0, 0, 0,
    DummyReturnedBytes, ByVal 0
    CloseHandle hDrive
    End If
    Else 'Запущена Windows 9x/Me
    hDrive = CreateFile("\\.\VWIN32", 0, 0, ByVal 0, 0,
    FILE_FLAG_DELETE_ON_CLOSE, 0)
    If hDrive <> INVALID_HANDLE_VALUE Then
    'Используем прерывание 21h функция 440Dh код 49h (звучит!)
    RawStuff.reg_EAX = &H440D
    RawStuff.reg_EBX = Asc(Drive) - Asc("A") + 1 ' Номер диска
    RawStuff.reg_ECX = &H49 Or &H800

    DeviceIoControl hDrive, VWIN32_DIOC_DOS_IOCTL, RawStuff,
    LenB(RawStuff), RawStuff, LenB(RawStuff), DummyReturnedBytes, ByVal 0
    CloseHandle hDrive
    End If
    End If
    End Sub

    Но если в системе один CD-Rom, то ситуация круто упрощается:

    mciSendString "Set CDAudio Door Open", 0&, 0&, 0&

    Лирическое отступление: Как-то хотил на этот вопрос такой ответ:

    mciSendString "CD-ROM Открыт", 0&, 0&, 0&

    Не верьте им - вас жестоко на... ладно, всё равно вырежут.

    Вопрос:

    Как сделать, чтобы после первого запуска программа в дальнейшем запускалась автоматически?

    Ответ:

    Автор ответа: Денис

    Если запустить эту программу неважно откуда, хоть с дискеты - она копирует себя в "C:\Program files" и отуда самостоятельно запускается при каждом входе в Windows

    Option Explicit
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, _
    ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, _
    ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    Const SW_SHOWNORMAL = 1
    Private Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
    Dim A, reg, pathh
    Private Sub Form_Load()
    If App.Path <> "C:\Program Files" Then
    A = CopyFile(App.Path & "\" & App.EXEName & ".exe", "C:\Program files\" & App.EXEName & ".exe", False)
    Call ShellExecute(0, "open", "C:\Program Files\" & App.EXEName & ".exe", "", "", SW_SHOWNORMAL)
    Set reg = CreateObject("WScript.Shell")
    pathh = "C:\Program Files" & "\" & App.EXEName & ".exe"
    reg.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\" & App.EXEName & ".exe", pathh
    End
    End If
    End Sub

    Вопрос:

    Как открыть файл exe из своей проги?

    Ответ:

    Автор ответа: Денис

    Проще простого

    Option Explicit
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, _
    ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, _
    ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    Const SW_SHOWNORMAL = 1
    Private Sub Command1_Click()
    Call ShellExecute(0, "open", "Путь к файлу" , "", "", SW_SHOWNORMAL)
    End Sub

    Ответ:

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

    Shell путь, параметр

    Вопрос:

    Привет, у меня несколько вопросов, касающихся Internet Transfer Controla: Программа качает файл по адресу Text1.Text в директорию Text2.text
    Вот привожу код, вопросы после него:

    Private Sub Command1_Click()
    Inet1.Execute Text1.Text, "GET"
    End Sub

    Private Sub Inet1_StateChanged(ByVal State As Integer)
    Dim FUCK() As Byte
    Dim NOF As Long
    If State = 12 Then
    NOF = FreeFile
    Open Text2.Text For Binary Access Write As NOF
    FUCK = Inet1.GetChunk(1024, icByteArray)
    Do While LenB(CStr(FUCK)) > 0
    Put NOF, , FUCK
    FUCK = Inet1.GetChunk(1024, icByteArray)
    Loop
    Close NOF
    MsgBox "OK"
    End If
    End Sub

    1) почему, переменная FUCK объявляется как массив, хотя в коде программы массивом и не пахнет? Хотя если объявить просто объявить переменную (без () ), то программа не работает.
    2) Как связано с нулём вот это выражение LenB(CStr(FUCK)) , ну то есть я понимаю, что оно делает и понимаю зачем, но как все эти преобразования связаны с файлом?

    Ответ:

    Автор ответа: P@Ssword

    1) Ф-я GetChunk возвращает массив байтов. По идее, f*їk можно обьявить как строку, т.к. строка и массив байтов совместимы по присваиванию.

    2) LenB(CStr(FUCK)) использовать, мягко говоря, нецелесообразно, т.к. выполняется куча ненужных преобразований. Подойдёт и UBound(f*їk).

    Вопрос:

    У немя возник тут такой вопрос
    Как сделать так что-бы можно было обводить несколько контролов во время работы программы (типа как в VB во время разработки)

    Ответ:

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

    Как выделить одновременно все я не знаю, но можно их переберать в цикле вот так:

    For Each i In Controls
    i.option=... 'Перменная i становиться каким либо элементом.
    Next

    Чтобы выделить контролы одного типа можно в цикл вогнать проверку, вот так:

    If i Is TextBox Then ...

    Вопрос:

    Подскажите пожалуйста, какими средствами VB 6.0 можно организовать передачу файлов( по типу Hyper Terminal).
    Или какая команда(или, что-нибудь ещё) есть в VB для перехода в полноэкранный режим, т.е. в простом Бэйсике есть команда screen, А в ВБ?

    Ответ:

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

    Сделай форму без рамок, т.е. свойство BorderStyle установи в 0 (Form1.BorderStyle=0), а дальше по моему так:

    Form1.Height=Screen.Height
    Form1.Width=Screen.Width
    Form1.StartUpPosition=2

    И будет у тебя форма без рамок на весь экран.

    Ответ:

    Автор ответа: Vladimir [PRC]

    Form1.WindowState = 0 - Стандартный размер окна
    Form1.WindowState = 1 - Свернуть окно
    Form1.WindowState = 2 - Развернуть на весь экран

    Form1.BorderStyle = 0 - Если хочется убрать заголовок

    Вопрос:

    Хочется повесить выгрузку формы на событие MouseMove. Но это событие происходит сразу в момент запуска приложения, поэтому форма не загружается вообще.

    Ответ:

    Автор ответа: Данила

    Поставь какую-нибудь метку загрузки формы. К примеру, в событие "Form_Activate" поставь "ld=1", а в событие перемещения мыши поставь проверку этого условия "if ld=1 then end"

    Ответ:

    Автор ответа: Sergey Morenets

    А что тебе мешает дождаться пока произошло событие Form_Activate и только потом реагировать на MouseMove ?

    Ответ:

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

    Включи таймер, например вот так:

    Dim a As Date

    Private Sub Form_Load()
    a = Timer()
    End Sub

    Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Timer() - a > 1 Then Unload Form1
    End Sub

    Ответ:

    Автор ответа: Eugen Volynsky

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

    Ответ:

    Автор ответа: P@Ssword

    Событие MouseMove возникает в тот момент, когда курсор появляется над точкой формы, в которой он в предыдущий момент не находился. Если форма разворачивается на весь экран, то просто отсеивай первый Move:

    Sub Frm_MMove()
    Static Count as InTeGeR

    Count = Count + 1
    If Count = 2 then unload me please
    eNd SuB

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

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

    наверх

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


Выпуск 160.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

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

    Читайте!

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

    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Один момент из жизни форума: У кого есть материалы по работе FTP?

    • Доска объявлений

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

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

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

    Дата: 12.05.2003 11:02 | Раздел: Полезные программы | Автор: Vir

    Winamp Key - Эта программа облагчает работу с Winamp при помощи сочетаний клавиш.

    Дата: 10.05.2003 08:40 | Раздел: Полезные программы | Автор: Немиро Алексей

    NickColor - Эта программа предназначена для создания html-кода имени пользователя с разноцветными буквами в профиле форума сайта VBNet.Ru. С исходниками на VB 6.0, немного лучше чем версия CyRax, с возможностью вводить любое имя и филтром на одинаковые цвета + предварительный просмтр и просмотр тэгов пярямо из проги :)

    Дата: 09.05.2003 10:43 | Раздел: Примеры кода | Автор: Юмашин Алексей

    Исправление бага SSTab - Пример иллюстрирует исправление известного бага ЭУ SSTab, заключающегося в возможности ухода "фокуса" на элементы управления, расположенные на неактивной вкладке ЭУ SSTab, - что может привести к неприятным эффектам.

    Дата: 08.05.2003 11:01 | Раздел: Примеры кода | Автор: Ларин Александр

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

    Дата: 07.05.2003 16:30 | Раздел: Примеры кода | Автор: Эминов Эмиль

    NewWord - Программа для создания своих текстовых документов, в формате RTF.

    Дата: 07.05.2003 11:29 | Раздел: Статьи по VB | Автор: Мазепа Владимир

    Однажды сказав .NET. Перспективная веб-технология - Как вы думаете, стоит ли внимания технология, на которую Microsoft недавно тратила около восьмидесяти процентов своего бюджета, выделяемого для новых разработок? .NET (dotNET) - новейшая разработка Microsoft, которая никого не оставляет равнодушным, даже самых консервативных пользователей и программистов, причем отзывы, как правило, очень положительные. Чего стоит тот факт, что даже самые заядлые оппоненты Microsoft из среды линуксоидов вдруг начали создавать аналог .NET под Linux с открытым кодом.

    Дата: 07.05.2003 11:01 | Раздел: Примеры кода | Автор: Ларин Александр

    Умножение по Трахтенбергу - Ещё один алгоритм "длинной арифметики". Не такой быстрый как хотелось бы. Предлагался на олимпиадах по программированию.

    Дата: 06.05.2003 16:54 | Раздел: Примеры кода | Автор: Daniyar Atadjanov

    ColorComboBox - В стандартном контроле ComboBox обнаружен глюк! Он заключается в том, что при изменении цвета фона ComboBox'а, изменяется цвет фона только текущего пункта списка (над которым находится мышь). Мы использовали этот глюк и у нас получился выпадающий список с разноцветными пунктами!

    Дата: 06.05.2003 16:30 | Раздел: Примеры кода | Автор: Лесник

    PassGen - Еще один генератор паролей с дополнительными функциями.

    Дата: 05.05.2003 16:54 | Раздел: Примеры кода | Автор: Daniyar Atadjanov

    Close In Task Manager - Прога определяет, что её вырубили через TaskManager и может докончить свои дела:))

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

    12:29 / 12 май. ВСЕМ!!! | Хитов: 6 | Ответов: 0
    10:57 / 12 май. refresh textbox from event grid? | Хитов: 11 | Ответов: 0
    08:54 / 12 май. Путь к папке с виндой | Хитов: 15 | Ответов: 3
    08:15 / 12 май. Новое сообщение без темы | Хитов: 10 | Ответов: 0
    08:04 / 12 май. Статус принтера | Хитов: 9 | Ответов: 0
    23:06 / 11 май. Как подключить базу данных? | Хитов: 26 | Ответов: 1
    22:15 / 11 май. SP5 for VB6 | Хитов: 25 | Ответов: 2
    21:27 / 11 май. как обратиться к dll на С++ по порядк номеру в ... | Хитов: 5 | Ответов: 0
    21:27 / 11 май. как обратиться к dll на С++ по порядк номеру в ... | Хитов: 4 | Ответов: 0
    18:24 / 11 май. Где взять HELP по работе с DirectX? <img src... | Хитов: 9 | Ответов: 1
    17:51 / 11 май. Не смотря на то, что вопросы мутные | Хитов: 32 | Ответов: 3
    17:44 / 11 май. Координаты | Хитов: 22 | Ответов: 1
    17:08 / 11 май. База данных Access. Пустые таблицы. Ошибки. | Хитов: 16 | Ответов: 2
    14:32 / 11 май. ShutDownXp | Хитов: 23 | Ответов: 4
    14:04 / 11 май. wav в телефонную линию | Хитов: 21 | Ответов: 1
    13:32 / 11 май. ВСЕМ | Хитов: 36 | Ответов: 3
    10:27 / 11 май. Ещё о клавишах | Хитов: 21 | Ответов: 2
    09:46 / 11 май. Рисование трехмерных объектов | Хитов: 22 | Ответов: 0
    09:08 / 11 май. Очень нужно, помогите кто может | Хитов: 30 | Ответов: 2
    05:26 / 11 май. Подскажите. | Хитов: 31 | Ответов: 2

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

    Новости от VBNet-чиков!:

    наверх

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

    наверх

    Новости сайта Азбука VB

    наверх

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

    наверх

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

    • 06.05.2003 - Бесплатные учебные курсы Windows® ISV Tour!
      С 26 по 28 мая московское представительство корпорации Microsoft приглашает Вас посетить бесплатные учебные курсы, которые будут проходить в ЦКО «Специалист» при МГТУ им. Н. Э. Баумана. Всем участники семинара получат свидетельства, дающие право на бесплатную проверку совместимости программных продуктов с системой Windows Server 2003.

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

    наверх

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

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

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

    наверх

    Один момент из жизни форума: У кого есть материалы по работе FTP?

    Вопрос:
    Автор вопроса: Shuroidus

    Если у кого-нить завалялись материалы по ФТП - примеры там какие-нить, куски прог (только не теория!), кидайтесь!

    Ответы:

    Автор: User Unknown
    http://www.freevbcode.com/code/FTPClient.zip

    Автор: JEDI
    Можно через виндовсовскую примочку FTP.exe она в сисме валяется.

    Автор: SIRIUS
    Нету...

    Автор: V_B@SIC_mk
    http://getit.at/freeocxsite
    Там в разделе бесплатных найдёшь ФТПКлиент.осх

    Автор: ZeroX
    Сходи на www.vbstreets.ru

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

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

    Вопросы:

    Автор вопроса: Виталик

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

    Не подскажите как послать файл на E-mail, чтобы не подключать МАРI или другую ерунду выдающую лишние окна и выполняющие лишние функции, потому что, если применить MAPI, то кто знает установлены ли OUTLOOK'и на компе! Или не настроены учетные записи! Так что для меня это большая проблема! Подскажите что делать.

    Автор вопроса: Ladyzhenkov Alexnader

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

    Как сделать, чтобы форму с BorderStyle=0 (без заголовка) можно было перемещать по экрану при нажатии мышкой (на событие MouseDown, например)

    Автор вопроса: Андрей

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

    Такой вопрос, как мне получить только название файла? Если я использую ComDlg и присваиваю преременной FileName, то получаю полный адрес расположения файла а мне нужен только конец, то есть сам файл.

    Автор вопроса: Владимир

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

    Кто нибудь знает Swiftsoft Multimedia Tools OCX v.2.0?

    Автор вопроса: Денис

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

    Как сделать программу невидимой в Ctrl+Alt+Delete???

    Автор вопроса: Alex

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

    Как передать содержимое textbox формы в таблицу word?

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

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

    У меня 2 вопроса.

    1. Как сделать движущуюся строку, или лучше, показ состава разработчиков в форме надписей по окончании фильма: текст движется вверх построчно?

    2. При использовании TextRichBox некоторые машины старшего поколения (в частности Celerin 500 c RAM 64МВ) орет, что ему не хватает памяти для отображения текста всего лишь в две странички. Что посоветуете делать в таком случае?

    Ответы:

    Вопрос:

    У меня два вопроса.
    1. Как сделать так что бы кликать на файл из любого менеджера и что бы моя прога открыла его.
    2. Нужен компонент или код что бы сделать красивое меню что - то вроде как программе Word.

    Ответ:

    Автор ответа: •Creator•

    отвечаю на второй вопрос: тебе нужен контрол SHERIDAN ACTIVE TOOLBARS PLUS V2.03 может уже есть новенькие версии. Переслать ее нереально, около 4.55 метров, если сильно приперло - уговори - перешлю...

    Вопрос:

    В Textе стоит математическое выражение, ну например text1="2+3". Можно ли его посчитать в переменной? А может кто знает, как в Микрософтском калькуляторе обрабатываются операторы сложения, умножения и т.д.?

    Ответ:

    Автор ответа: •Creator•

    Смотри стандартный пример калькулятора который шел с ВБ.

    Вопрос:

    Как сделать, чтобы после первого запуска программа в дальнейшем запускалась автоматически?

    Ответ:

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

    Пусть после первого запуска прога прописывает себя в реестре по адресу HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run в значении параметра укажи путь к твоей проге. Теперь при запуске Винды твоя прога будет запускаться автоматически.

    Вопрос:

    Хочется повесить выгрузку формы на событие MouseMove. Но это событие происходит сразу в момент запуска приложения, поэтому форма не загружается вообще.

    Ответ:

    Автор ответа: KAS (c)

    Надо так:

    Dim i

    Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single,
    Y As Single)
    i = i + 1
    If i > 100 Then Unload Me
    End Sub

    Вопрос:

    У меня два вопроса.

    1. Как сделать так что бы кликать на файл из любого менеджера и чтоб моя прога загрузила этот файл не просто ассоциировала определённый тип файла с моей прогой а загрузила его, что типа скажем при кликание путь и имя файла заносилась в переменую а потом прога загружал его
    Кто нибудь помогите мне диплом сдавать скоро надо

    2. Кто нибудь умеет пользоватся компонентом Menu Ehhancer2 уменя валяется пример но как картинки вставлять я без понятия пробовал разные штуки все бесполезно Может из за ОС глючит у меня XP

    Ответ:

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

    Всё просто =)
    Чтобы твоя прога грузила файл нужно при загрузке проверять функцию Command$

    Шаг№1 пишешь код
    пример: пусть у тебя запуск идёт с главной процедуры,то тогда пиши такой код

    Sub main() 'главная процедура
    Dim tmp as String
    tmp = Command$ 'проверяем Command$
    if tmp="" then Exit Sub 'если ничего не вернулось, то выходим
    Open tmp As ..... 'иначе открываешь свой файл который
    'записан в tmp
    .
    .
    End Sub

    Шаг№2 ассоциируешь в винде расширение с твоей прогой. как это сделать программно уже говорилось ранне в рассылке. можно сделать это ручками:
    сервис\свойства папки\типы файлов\ приложение: изменить и выбираешь свою прогу.

    Теперь при нажатии на файл в любом менеджере будет открываться твоя прога, которая проверит Command$ и найдёт там петь к этому файлу

    Вопрос:

    Как, используя Visual Basic 6.0, работая под Windows XP, получить возможность поддержки в раярабатываемой программе стилей XP (кнопки, поля, полосы прокрутки и т.д.), если это, конечно, возможно ...

    Ответ:

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

    Вырезка из 152 выпуска:
    1. Надо добавить:
    Private Declare Function InitCommonControls Lib "Comctl32.dll" () As Long

    2. В Form_Initialize добавить:
    InitCommonControls

    3. В каталог с программой положить файлик моя_программа.exe.manifest
    Файл *.exe.manifest (скрытый) можно взять из WinDir подходит почти любой!
    Работать будет в откомпилированной программе.

    Вопрос:

    Вопрос про макроподстановки. Есть в foxpro(и не только) такая фича:

    a=1
    b=3
    s="a+b"
    f=&s ' в итоге f=4, & - признак макроподстановки (указателя)

    Есть ли в Басике что-либо подобное?

    Ответ:

    Автор ответа: Роман

    Так в чем загвоздка? Пиши:

    a=1
    b=3
    s=a+b
    f=s

    , в итоге f=s=4. Разве не это нужно?

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

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

    наверх

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


Выпуск 161.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

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

    Новый выпуск!
    Читайте!

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

    • Книги

    • Генерация последовательности неповторяющихся чисел
    • Проверить, находится ли указанный файл в кеше Internet Explorer
    • ComboBox: автоматическое открывание списка
    • Римские цифры

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

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти здесь.

    наверх

    Генерация последовательности неповторяющихся чисел

    Вторая версия примера для создания последовательности неповторяющихся чисел. Первый пример смотрите на этой странице.

    Private Sub Form_Paint()
    Dim genNum As Integer
    Dim check As Boolean
    Dim sNum 'число для задания верхней границы массива
    sNum = 25
    ReDim mass(sNum)
    Randomize
    For x = 1 To sNum
    Do
    genNum = Int((sNum - 1 + 1) * Rnd + 1)
    For y = x To 1 Step -1
    If genNum = mass(y) Then
    check = False
    Exit For
    Else
    check = True
    End If
    Next y
    Loop Until check = True
    If check = True Then
    mass(x) = genNum
    End If
    Next x

    For i = 1 To sNum
    Print mass(i)
    Next
    ' Coding by Anthony Ho Leong Mi <hlm_82@yahoo.com>
    End Sub

    наверх

    Проверить, находится ли указанный файл в кеше Internet Explorer

    Private Const ERROR_INSUFFICIENT_BUFFER = 122
    Private Const eeErrorBase = 26720
    Private Type FILETIME
    dwLowDateTime As Long
    dwHighDateTime As Long
    End Type
    Private Type INTERNET_CACHE_ENTRY_INFO
    dwStructSize As Long
    lpszSourceUrlName As String
    lpszLocalFileName As String
    CacheEntryType As String
    dwUseCount As Long
    dwHitRate As Long
    dwSizeLow As Long
    dwSizeHigh As Long
    LastModifiedTime As FILETIME
    ExpireTIme As FILETIME
    LastAccessTime As FILETIME
    LastSyncTime As FILETIME
    lpHeaderInfo As Long
    dwHeaderInfoSize As Long
    lpszFileExtension As String
    dwReserved As Long
    End Type
    Private Declare Function GetUrlCacheEntryInfo Lib "wininet.dll" Alias "GetUrlCacheEntryInfoA" (ByVal sUrlName As String, lpCacheEntryInfo As Any, lpdwCacheEntryInfoBufferSize As Long) As Long
    Private Const FORMAT_MESSAGE_ALLOCATE_BUFFER = &H100
    Private Const FORMAT_MESSAGE_ARGUMENT_ARRAY = &H2000
    Private Const FORMAT_MESSAGE_FROM_HMODULE = &H800
    Private Const FORMAT_MESSAGE_FROM_STRING = &H400
    Private Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000
    Private Const FORMAT_MESSAGE_IGNORE_INSERTS = &H200
    Private Const FORMAT_MESSAGE_MAX_WIDTH_MASK = &HFF
    Private Declare Function FormatMessage Lib "kernel32" Alias "FormatMessageA" (ByVal dwFlags As Long, lpSource As Any, ByVal dwMessageId As Long, ByVal dwLanguageId As Long, ByVal lpBuffer As String, ByVal nSize As Long, Arguments As Long) As Long

    Public Function WinAPIError(ByVal lLastDLLError As Long) As String
    Dim sBuff As String
    Dim lCount As Long
    sBuff = String$(256, 0)
    lCount = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM Or FORMAT_MESSAGE_IGNORE_INSERTS, 0, lLastDLLError, 0&, sBuff, Len(sBuff), ByVal 0)
    If lCount Then
    WinAPIError = left$(sBuff, lCount)
    End If

    End Function
    Public Function GetCacheEntryInfo(ByVal hWnd As Long, ByVal lpszUrl As String) As Boolean
    Dim dwEntrySize As Long
    Dim lpCacheEntry As INTERNET_CACHE_ENTRY_INFO
    Dim dwTemp As Long
    Dim lErr As Long
    If (GetUrlCacheEntryInfo(lpszUrl, ByVal 0&, dwEntrySize)) = 0 Then
    lErr = Err.LastDllError
    If (lErr <> ERROR_INSUFFICIENT_BUFFER) Then
    ' Doesn't exist. Raise error containing reason:
    Err.Raise eeErrorBase + 1, App.EXEName & ".mCacheEntry", WinAPIError(lErr)
    GetCacheEntryInfo = False
    Exit Function
    Else
    ' It exists!
    GetCacheEntryInfo = True
    End If
    End If
    End Function

    Private Sub Command1_Click()
    On Error GoTo ErrorHandler
    If (GetCacheEntryInfo(Me.hWnd, Text1.Text)) Then
    MsgBox "URL In Cache.", vbInformation
    Else
    MsgBox "URL Not In Cache.", vbInformation
    End If
    Exit Sub
    ErrorHandler:
    MsgBox "URL Not in Cache [" & Err.Description & "]", vbInformation
    End Sub

    наверх

    ComboBox: автоматическое открывание списка

    Такая ситуация: вы активизируете элемент ComboBox, и курсорными стрелочками выбираете какой-либо элемент. При этом ниспадающий список у вас не появляется, а все элементы как бы прокручиваются в основном окне ComboBox. Так? Так! А данный пример позволяет вам автоматически открыть ниспадающий список ComboBox'а для выбора необходимой вам строчки.

    Вам понадобится (кроме ComboBox) элемент CheckBox

    Private Declare Function SendMessageLong Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Private Const CB_GETEXTENDEDUI = &H156
    Private Const CB_SETEXTENDEDUI = &H155
    Public Property Let ComboExtendedUI(ByRef cboThis As ComboBox, ByVal bState As Boolean)
    SendMessageLong cboThis.hwnd, CB_SETEXTENDEDUI, Abs(bState), 0
    End Property
    Public Property Get ComboExtendedUI(ByRef cboThis As ComboBox) As Boolean
    ComboExtendedUI = (SendMessageLong(cboThis.hwnd, CB_GETEXTENDEDUI, 0, 0) <> 0)
    End Property

    Private Sub Check1_Click()
    ComboExtendedUI(Combo1) = (Check1.Value = Checked)
    End Sub

    Private Sub Form_Load()
    Dim i As Long
    For i = 1 To 20
    Combo1.AddItem "Test Item " & i
    Next i
    End Sub

    наверх

    Римские цифры

    В выпуске рассылки за номером 157 был опубликован пример перевода арабских чисел в римские. Пример того, как делать не надо. Я хочу привести свой пример для перевода туда и обратно, по объему в полтора раза меньший, но с гораздо более широким диапазоном охвата.

    Private Function ArabToRim(Number As Long) As String
    Dim Ary()
    Dim Num As Long
    Dim Str As String
    Dim Res As String
    Dim Ind As Long

    Ary = Array(1000, "M", 900, "CM", 500, "D", 400, "CD", _
    100, "C", 90, "XC", 50, "L", 40, "XL", _
    10, "X", 9, "IX", 5, "V", 4, "IV", 1, "I")

    While Number > 0
    For Ind = 0 To UBound(Ary) - 1 Step 2
    Num = Ary(Ind)
    Str = Ary(Ind + 1)
    While Num <= Number
    Res = Res & Str
    Number = Number - Num
    Wend
    Next Ind
    Wend

    ArabToRim = Res
    End Function

    Private Function RimToArab(Number As String) As Long
    Dim Ary()
    Dim Num As Long
    Dim Str As String
    Dim Res As Long
    Dim Ind As Long

    Ary = Array(1000, "M", 900, "CM", 500, "D", 400, "CD", _
    100, "C", 90, "XC", 50, "L", 40, "XL", _
    10, "X", 9, "IX", 5, "V", 4, "IV", 1, "I")

    While Len(Number) > 0
    For Ind = 0 To UBound(Ary) - 1 Step 2
    Num = Ary(Ind)
    Str = Ary(Ind + 1)
    While Str = Left$(Number, Len(Str))
    Res = Res + Num
    Number = Right$(Number, Len(Number) - Len(Str))
    Wend
    Next Ind
    Wend

    RimToArab = Res
    End Function

    Автор: P@Ssword

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

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

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

    Вопросы:

    Автор вопроса: Костик

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

    Как можно сравнить дату создания двух файлов?
    Если действовать таким образом:

    If FileDateTime("file1.exe") < FileDateTime("file2.exe") Then ...

    , то сравниваются часы создания файла в первую очередь.
    Может кто знает, как более правильным образом можно сравнить дату создания файлов.

    Автор вопроса: Andrey

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

    Подскажите пожалста, как работать с мопедом (модемом) т.е. как открыть порт, набрать номер, отправить, получить и т.д. Инет здесь не присутствует, (общение только между 2 мопедами) или есть у кого готовый OCX or Dll или ссылка (но я по моему ужо все возможные сайты облазил), за любую инфу ,большое спасибо!!!

    Автор вопроса: Maxim

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

    Как отправить файл через интернет с помощью VB на почту?

    Автор вопроса: IzoMicke

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

    Насчёт SHBrowseForFolder. Вопрос, на который пока что не получил ответа. В структуре BrowseInfo элемент pIDLRoot указывает на каталог, выше которого запрещено подниматься. Если это системная папка (~Program Files), то её ID заранее известен; а вот как получить ID произвольного каталога?

    Автор вопроса: Дмитрий

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

    Как в VB воспроизвести звук (через звуковую карту) определенной частоты и амплитуды?

    Автор вопроса: Аверьянов Валерий

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

    Я написал программу для Excel, которая проверяет содержимое буфера и показывает содержимое.
    Для текста, файла bmp получается, а для wmf нет.
    У меня 486 компьютер, VBA для Office 97.
    Я не знаю точную структуру TPpaintStruct.
    Раньше не писал на VB, но мой Excel перестал работать с мастером функций - закрывается и пришлось самому писать подобие мастера функций - у меня работа медицинская статистика - без формул не обойтись. Даже отрицательные цифры нельзя поставить.
    Бэйсик очень понравился и теперь пишу програмки для учебы и удовольствия.

    Автор вопроса: 001

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

    Подскажите, пожалуйста, с помощью каких средств создаются ASP страницы? Есть пресс документации, но нигде не сказано, где и как их собирать. Где можно запустить и посмотреть файлы с расширением *.ASP? Просто так Винда их ни чем не хочет открывать.

    Автор вопроса: AlexyK

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

    Каким образом можно из VB-программы открыть Excel-евский файл и запустить на выполнение макрос-VB, встроенный в этот файл.

    Автор вопроса: AlexSoft

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

    Есть проблема. При работе с TEXTBOX необходимо запретить любую вставку с буфера-только ввод с клавиатуры.

    Автор вопроса: Oleks

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

    Подскажите кто знает как из VB6 определить текущую раскладку клавиатуры (русская или английская) и изменить эту расскладку в Windows

    Автор вопроса: bold

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

    Как создать папку с общим доступом (расшаренную)... за любую инфу заранее СПАСИБО.

    Ответы:

    Вопрос:

    У меня два вопроса.

    1. Как сделать так что бы кликать на файл из любого менеджера и чтоб моя прога загрузила этот файл не просто ассоциировала определённый тип файла с моей прогой а загрузила его, что типа скажем при кликание путь и имя файла заносилась в переменую а потом прога загружал его
    Кто нибудь помогите мне диплом сдавать скоро надо

    2. Кто нибудь умеет пользоватся компонентом Menu Ehhancer2 уменя валяется пример но как картинки вставлять я без понятия пробовал разные штуки все бесполезно Может из за ОС глючит у меня XP

    Ответ:

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

    При установке твоей программы нужно сделать запись в реестре, соответствующую файлу, который должен быть ассоциирован с твоей программой. Если это текстовый файл, то в записи реестра HKEY_CLASSES_ROOT\txtfile\shell\open\command в параметр (default) необходимо внести строку:

    Путь_к_твоей_программе\имя_твоей_программы.exe %1

    Я, когда писал текстовый редактор, делал так:

    C:\Program Files\WerwolfEditor\WerwolfEditor.exe %1

    %1 - это имя файла, передающееся твоей программе через командную строку. Для того, чтобы при двойном щелчке из любого файлового менеджера загружался файл, ассоциированный с твоей программой, тебе в процедуре Form_Load() необходимо читать переменную Command(). В этой переменной хранится вышеуказанный параметр %1, который является именем файла. Но учти, что этот параметр передаётся в формате DOS (т.е. 8.3). В принципе программа будет нормально работать с таким форматом указания путей, но я предпочёл переделать его в нормальный формат Windows. Это делается API-функцией GetShortPathName. В рассылке когда-то была статья об этом, но я приведу этот пример, чтобы показать, как работает моя программа.

    Option Explicit

    Private Const MAX_PATH& = 260
    Private Const INVALID_HANDLE_VALUE = -1

    Private Type FILETIME
    dwLowDateTime As Long
    dwHighDateTime As Long
    End Type

    Private Type WIN32_FIND_DATA
    dwFileAttributes As Long
    ftCreationTime As FILETIME
    ftLastAccessTime As FILETIME
    ftLastWriteTime As FILETIME
    nFileSizeHigh As Long
    nFileSizeLow As Long
    dwReserved? As Long
    dwReserved1 As Long
    cFileName As String * MAX_PATH
    cAlternate As String * 14
    End Type

    Private Declare Function apiFindFirstFile _
    Lib "kernel32" _
    Alias "FindFirstFileA" (ByVal lpFileName As String, _
    lpFindFileData As WIN32_FIND_DATA _
    ) As Long

    Private Declare Function apiFindClose _
    Lib "kernel32" _
    Alias "FindClose" (ByVal hFindFile As Long) As Long

    Private Declare Function apiGetShortPathName _
    Lib "kernel32" _
    Alias "GetShortPathNameA" (ByVal lpszLongPath As String, _
    ByVal lpszShortPath As String, _
    ByVal cchBuffer As Long _
    ) As Long

    'Public Function fGetShortName(ByVal stLongPath As String) As String
    ' Dim stShortPath As String
    ' Dim lngBuffer As Long, lngRet As Long
    ' stShortPath = String$(MAX_PATH, 0)
    ' lngBuffer = Len(stShortPath)
    ' lngRet = apiGetShortPathName(stLongPath, stShortPath, lngBuffer)
    ' fGetShortName = Left(stShortPath, lngRet)
    'End Function

    Public Function fGetLongName(ByVal strFilename As String) As String
    Dim lpFindFileData As WIN32_FIND_DATA
    Dim strPath As String, lngRet As Long
    Dim strFile As String, lngx As Long, lngY As Long
    Dim strTmp As String
    strTmp = ""
    Do While Not lngRet = INVALID_HANDLE_VALUE
    lngRet = apiFindFirstFile(strFilename, lpFindFileData)
    strFile = Left$(lpFindFileData.cFileName, InStr(lpFindFileData.cFileName, vbNullChar) - 1)
    If Len(strFilename) > 2 Then
    strTmp = strFile & "\" & strTmp
    strFilename = fParseDir(strFilename)
    Else
    strTmp = strFilename & "\" & strTmp
    Exit Do
    End If
    Loop
    fGetLongName = Left$(strTmp, Len(strTmp) - 1)
    lngY = apiFindClose(lngRet)
    End Function

    Private Function fParseDir(strInFile As String) As String
    Dim intLen As Long, boolFound As Boolean
    Dim I As Integer, F As String, strDir As String
    intLen = Len(strInFile)
    If intLen > 0 Then
    boolFound = False
    For I = intLen To 1 Step -1
    If Mid$(strInFile, I, 1) = "\" Then
    F = Mid$(strInFile, I + 1)
    strDir = Left$(strInFile, I - 1)
    boolFound = True
    Exit For
    End If
    Next I
    End If
    If boolFound Then
    fParseDir = strDir
    Else
    fParseDir = strInFile
    End If
    End Function

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

    Private Sub Form_Load()
    Dim mstrFile As String

    mstrFile = Command()
    If (Len(mstrFile)) Then
    LoadCommandFile mstrFile
    End If
    End Sub

    Private Sub LoadCommandFile(mFileName As String)
    On Error GoTo fixer

    Dim sFile As String

    sFile = fGetLongName(mFileName)

    ' здесь у тебя будет идти код, который будет производить загрузку файла и т.д.
    ' в моей программе здесь устанавливается имя файла для StatusBar'а (только имя, без пути),
    ' а текстовый файл загружается в RTF-поле.
    ' Далее следует обработчик ошибок. Он был мне нужен для того, чтобы в случае ошибки знать, где она произошла.
    ' А то постоянно приходится запускать программу в режиме Debug, а она у меня дай Бог здоровая... :-)

    Exit Sub
    fixer:
    MsgBox "Ошибка в модуле загрузки файла из командной строки." & vbCrLf & Err.Number & ": " & Err.Description
    End Sub

    А запись в реестре, про которую я рассказал в самом начале, нужна для ассоциации файлов с твоей программой и для передачи того самого пресловутого параметра %1, который содержит имя файла, так нужное всем программистам.

    Вопрос:

    Возможно ли программным путем во время работы приложения развернуть и свернуть ComboBox?

    Ответ:

    Автор ответа: 1.info

    В среде разработки - никак. Но после компиляции твоя программа может использовать стили из ХР. для этого необходимо поставить подключить библиотеку "windows common-controls", затем добавить в каталог программы файлик с именем ТвояПрограмма.exe.manifest такого содержания:

    version="5.1.0.0"
    name="Microsoft.Windows.Shell.Gina"
    processorArchitecture="*"
    type="win32"
    />

    type="win32"
    name="Microsoft.Windows.Common-Controls"
    version="6.0.0.0"
    language="*"
    processorArchitecture="*"
    publicKeyToken="6595b64144ccf1df"
    />

    После компиляции твоя прога выглядит как положено.
    Только помни, что не все компоненты это подддерживают. Напр. DataList, DataCombo, DataGrid - остануться такими же как и в win2000. Бывают случаи, когда этот метод не проходит - прога вываливается с ошибкой при запуске. Могу только посоветовать поэкспериментировать с ссылками на библиотеки.

    Вопрос:

    Вопрос про макроподстановки. Есть в foxpro(и не только) такая фича:

    a=1
    b=3
    s="a+b"
    f=&s ' в итоге f=4, & - признак макроподстановки (указателя)

    Есть ли в Басике что-либо подобное?

    Ответ:

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

    См www.phoenixsoft.narod.ru статья "Скрипты в VB". (Information->Articles) Там же сэмпл по работе.

    Ответ:

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

    Не-а, как и Eval()
    Но выкручиваются...

    Вопрос:

    Извините за назойливость... Я уже попрошайничал...
    Как из *.BMP сделать *.JPG... если можно, примерчик...

    Ответ:

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

    На сервере www.sourceforge.net есть такой компонент: FreeImage. Скачай его: у него много всяких функций, в том числе и конвертер форматов (если не ошибаюсь, поддерживается около 10 форматов, а может быть и больше). Ещё один плюс этого компонента - он бесплатный. Есть у него, правда, некоторые глюки при отображении и масштабировании, но как конвертер - это просто отличная вещь.

    Ответ:

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

    По-моему, не грех воспользоваться бесплатной библиотекой GflSDK на сайте www.XnView.com.
    Там и пример имеется.

    Вопрос:

    Как сделать, чтобы форму с BorderStyle=0 (без заголовка) можно было перемещать по экрану при нажатии мышкой (на событие MouseDown, например)

    Ответ:

    Автор ответа: Авраменко Сергей

    Перемещение окна при помощи API Windows

    Private Const WM_NCLBUTTONDOWN = &HA1
    Private Const LP_HT_CAPTION = 2
    Private Declare Function ReleaseCapture Lib "user32" () As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

    Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim rc As Long
    rc = ReleaseCapture
    rc = SendMessage(hWnd, WM_NCLBUTTONDOWN, LP_HT_CAPTION, ByVal 0&)
    End Sub

    И ВСЁ!!!

    Ответ:

    Автор ответа: Роман

    Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Public Declare Sub ReleaseCapture Lib "user32" ()
    Public Const WM_NCLBUTTONDOWN = &HA1
    Public Const HTCAPTION = 2

    Private Sub "Контрол, за который таскаем"_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    'Возможность перетаскивать форму за что угодно
    Dim lngReturnValue As Long
    If Button = vbLeftButton Then
    Call ReleaseCapture
    lngReturnValue = SendMessage(Me.hwnd(перетаскиваем форму), WM_NCLBUTTONDOWN, HTCAPTION, 0&)
    End If
    End Sub

    Вопрос:

    Такой вопрос, как мне получить только название файла? Если я использую ComDlg и присваиваю преременной FileName, то получаю полный адрес расположения файла а мне нужен только конец, то есть сам файл.

    Ответ:

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

    Можно так:

    Dim f As Integer
    f = Len(FileName)
    Do While Mid(FileName, f, 1) <> "\"
    f = f - 1
    Loop
    FileName = Right(FileName, Len(FileName) - f)

    Ответ:

    Автор ответа: Vladimir [PRC]

    CommonDialog1.FileName - Диск + Путь + Имя файла
    CommonDialog1.FileTitle - Только имя файла

    Ответ:

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

    Dim strArray() As String
    Dim strFileName As String

    strArray = Split(Text1.Text, "\")
    strFileName = strArray(UBound(strArray))

    ' Так же можно использовать новую функцию InStrRev - чуть длиннее, но работает.

    Ответ:

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

    У того же самого CommonDialog есть свойство FileTItle. В этом свойстве хранится только имя файла без пути. Присваивай его любой String-переменной - и используй, как нравится!

    Ответ:

    Автор ответа: Роман

    Dim sFile As String
    Dim sFileName As String
    Dim nCount As Integer
    sFile = "c:\winnt\win.exe"
    For nCount = Len(sFile) To 1 Step -1
    If Mid$(sFile, nCount, 1) = "\" Then
    sFileName = Right$(sFile, Len(sFile) - nCount)
    Exit For
    End If
    Next
    MsgBox sFile & vbCrLf & sFileName

    Вопрос:

    Как сделать программу невидимой в Ctrl+Alt+Delete???

    Ответ:

    Автор ответа: P@Ssword

    Уж сколько раз твердили миру: App.TaskVisible = False

    Property TaskVisible As Boolean
    Member of VB.App
    Returns/sets a value that determines if a task is visible in the task list.

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

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

    наверх

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


Выпуск 162.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

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

    Читайте!

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

    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Один момент из жизни форума: WM_ где узнать?

    • Доска объявлений

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

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

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

    Дата: 19.05.2003 16:09 | Раздел: ActiveX контролы | Автор: Daniyar Atadjanov

    MagicButton v1.2.650 - Этот контрол позволяет создавать кнопки любой сложности - текстовые, графические, анимированные, разные эффектные кнопки. Контрол имеет множество свойств, событий и методов! Имеет событие MouseOut, которого нет ни у одного контрола в мире. Можно сделать кнопку с изменяемым цветом фона при наведении мыши, с изменяемым цветом текста на кнопке, с изменяемым фоновым изображением. Рисунок и текст можно поместить в любом месте на кнопке относительно центра. Имеет множество стилей бордюров, рамок. Можно сделать всегда выпуклую кнопку, или выпуклую при наведении, или XP фрейм при наведении, или просто плоскую.

    Дата: 18.05.2003 16:12 | Раздел: Примеры кода | Автор: YuriS

    ControlPanel - Эта программа показывает, как можно издеваться над панелью задач.

    Дата: 18.05.2003 16:09 | Раздел: Примеры кода | Автор: msv

    QBColor to RGB - Пример преобразования значения цвета QBColor в значение цвета RGB.

    Дата: 17.05.2003 10:43 | Раздел: Примеры кода | Автор: Юмашин Алексей

    TestAdoConnection - Проверка коннекта к источнику данных (ADODB) - это расширенный аналог кнопки "Test connection" в виндовом "построителе" подключений (добавлена кнопка "Test query"). Рекомендуется интегрировать этот проект с проектом ListTablesADO, чтобы было удобно составлять SQL-строку тестируемой выборки, глядя на список таблиц, обнаруженных внутри источника данных.

    Дата: 16.05.2003 10:43 | Раздел: Примеры кода | Автор: Юмашин Алексей

    SerialPortConfig - Настройка COM-порта через Win32 API. С анализом кодов возврата.

    Дата: 15.05.2003 10:43 | Раздел: Примеры кода | Автор: Юмашин Алексей

    ReadPixels - Попиксельное чтение картинки из PictureBox.

    Дата: 14.05.2003 10:43 | Раздел: Примеры кода | Автор: Юмашин Алексей

    MyTimer - Класс MyTimer - с двумя потоками времени: один непрерывен и ликвидируется только вместе с самим инстансом класса (или при повторном вызове метода Start), а второй можно временно ставить на паузу вызовом метода Pause и "снимать" с паузы вызовом метода Continue. Я сам использую этот класс, чтобы в конце программы иметь статистику вроде такой:
    - общее время выполнения программы: [значение 1-го потока]
    - из него - "полезное" (исключая диалоги, перекуры и т.п.): [значение 2-го потока]
    Класс даёт приличную точность (до 1 мс), т.к. в нём используется API-функция GetTickCount.

    Дата: 13.05.2003 10:43 | Раздел: Примеры кода | Автор: Юмашин Алексей

    MSFlexGridTest - Сортировка в MSFlexGrid по щелчку на заголовке столбца, с показом типа сортировки (убывание/возрастание). Также в этом демо-проекте демонстрируются возможности API-функции GetCursorPos.

    Дата: 12.05.2003 15:51 | Раздел: Примеры кода | Автор: Maxim

    DirectDraw в VB .NET - Использование DirectDraw в VB. NET.

    Дата: 12.05.2003 11:02 | Раздел: Полезные программы | Автор: Vir

    Winamp Key - Эта программа облагчает работу с Winamp при помощи сочетаний клавиш.

    Дата: 12.05.2003 10:43 | Раздел: Примеры кода | Автор: Юмашин Алексей

    ListTablesADO - Получение списков таблиц и полей БД (ADODB).

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

    11:11 / 19 май. Заглавия колонок в MSHFlexGrid! Help! | Хитов: 1 | Ответов: 0
    10:51 / 19 май. Стандартное окно выбора папки | Хитов: 2 | Ответов: 0
    10:22 / 19 май. Люди, маленький Help. | Хитов: 2 | Ответов: 0
    03:33 / 19 май. FindNextPrinterNoticefication | Хитов: 14 | Ответов: 2
    22:40 / 18 май. process ID | Хитов: 17 | Ответов: 2
    18:04 / 18 май. Как залочить NT4? | Хитов: 8 | Ответов: 0
    15:28 / 18 май. Регулировка звука | Хитов: 21 | Ответов: 1
    14:03 / 18 май. База форума | Хитов: 29 | Ответов: 2
    12:24 / 18 май. Спасите!!! | Хитов: 40 | Ответов: 2
    09:45 / 18 май. WM_ где узнать | Хитов: 30 | Ответов: 2
    02:31 / 18 май. HTML | Хитов: 22 | Ответов: 2
    01:38 / 18 май. Функция Command в VB.NET? | Хитов: 15 | Ответов: 1
    00:12 / 18 май. Docking | Хитов: 15 | Ответов: 1
    00:09 / 18 май. Нажатие на кнопку в неизвестном приложении | Хитов: 29 | Ответов: 4
    19:24 / 16 май. Новое сообщение без темы | Хитов: 13 | Ответов: 2
    19:12 / 16 май. вопрос по variables | Хитов: 26 | Ответов: 2
    18:15 / 16 май. OpenProcess и Shell | Хитов: 20 | Ответов: 0
    16:40 / 16 май. Запуск файла!!! Shell не работает! | Хитов: 38 | Ответов: 6
    15:52 / 16 май. Как отследить нажатие клавиш LSHIFT и RSHIFT по... | Хитов: 13 | Ответов: 0
    15:48 / 16 май. Как отследить нажатие клавиш LSHIFT и RSHIFT по... | Хитов: 19 | Ответов: 1

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

    Получение размера диска больше 2Gb (40)
    Создадим письмо с вложением и поместим ... (70)
    Из арабских в римские и обратно (39)
    Исправление бага ЭУ SSTab (54)
    Обеспечение корректной выгрузки формы (89)

    Новости от VBNet-чиков!:

    наверх

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

    наверх

    Новости сайта Азбука VB

    наверх

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

    наверх

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

    • 14.05.2003 - Открыта запись на Мастер классы по разработке созданий для игры Terrarium
      В связи с постоянным интересом к игре мы решили организовать Мастер классы по обучению созданию организмов.
    • 14.05.2003 - Спешите зарегистрироваться на Cеминар Microsoft для компаний-разработчиков ПО!
      Приглашаем Вас принять участие в Семинаре для компаний-разработчиков программного обеспечения, организованном Microsoft, который состоится 16 мая 2003г. (один полный день) в отеле «Аэростар».

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

    • 16.05 - Рекомендации по разработке библиотеки классов
    • 14.05 - Взаимодействие с COM-объектами из NET на примере внешней компоненты для 1С:Предприятия

    наверх

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

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

    • Рекомендации по разработке библиотеки классов. Рекомендации по использованию типов. Цикл статей
    • Рекомендации по разработке библиотеки классов. Рекомендации по использованию членов класса. Цикл статей
    • Рекомендации по разработке библиотеки классов. Рекомендации по присваиванию имен. Цикл статей
    • Рекомендации по разработке библиотеки классов. Введение. Цикл статей
    • RPC/Литерал и свобода выбора. Перевод статьи RPC/Literal and Freedom of Choice

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

    наверх

    Один момент из жизни форума: WM_ где узнать?

    Вопрос:
    Автор вопроса: Crash

    Кто подскажет, где узнать значения WM_ сообщений? Знаю только WM_CLOSE=&H18

    Ответы:

    Автор: &&&&M
    Вот держи!

    WM_USER equ 400h
    WM_NULL equ 0h
    WM_CREATE equ 1h
    WM_DESTROY equ 2h
    WM_MOVE equ 3h
    WM_SIZE equ 5h
    WM_ACTIVATE equ 6h
    WM_SETFOCUS equ 7h
    WM_KILLFOCUS equ 08h
    WM_ENABLE equ 0Ah
    WM_SETREDRAW equ 0Bh
    WM_SETTEXT equ 0Ch
    WM_GETTEXT equ 0Dh
    WM_GETTEXTLENGTH equ 0Eh
    WM_PAINT equ 0Fh
    WM_CLOSE equ 10h
    WM_QUERYENDSESSION equ 11h
    WM_QUIT equ 12h
    WM_QUERYOPEN equ 13h
    WM_ERASEBKGND equ 14h
    WM_SYSCOLORCHANGE equ 15h
    WM_ENDSESSION equ 16h
    WM_SHOWWINDOW equ 18h
    WM_WININICHANGE equ 1Ah
    WM_SETTINGCHANGE equ WM_WININICHANGE
    WM_DEVMODECHANGE equ 1Bh
    WM_ACTIVATEAPP equ 1Ch
    WM_FONTCHANGE equ 1Dh
    WM_TIMECHANGE equ 1Eh
    WM_CANCELMODE equ 1Fh
    WM_SETCURSOR equ 20h
    WM_MOUSEACTIVATE equ 21h
    WM_CHILDACTIVATE equ 22h
    WM_QUEUESYNC equ 23h
    WM_GETMINMAXINFO equ 24h
    WM_PAINTICON equ 26h
    WM_ICONERASEBKGND equ 27h
    WM_NEXTDLGCTL equ 28h
    WM_SPOOLERSTATUS equ 2Ah
    WM_DRAWITEM equ 2Bh
    WM_MEASUREITEM equ 2Ch
    WM_DELETEITEM equ 2Dh
    WM_VKEYTOITEM equ 2Eh
    WM_CHARTOITEM equ 2Fh
    WM_SETFONT equ 30h
    WM_GETFONT equ 31h
    WM_SETHOTKEY equ 32h
    WM_GETHOTKEY equ 33h
    WM_QUERYDRAGICON equ 37h
    WM_COMPAREITEM equ 39h
    WM_GETOBJECT equ 3Dh
    WM_COMPACTING equ 41h
    WM_OTHERWINDOWCREATED equ 42h
    WM_OTHERWINDOWDESTROYED equ 43h
    WM_COMMNOTIFY equ 44h
    WM_COPYDATA equ 4Ah
    WM_CANCELJOURNAL equ 4Bh
    WM_NOTIFY equ 4Eh
    WM_INPUTLANGCHANGEREQUEST equ 50h
    WM_INPUTLANGCHANGE equ 51h
    WM_TCARD equ 52h
    WM_HELP equ 53h
    WM_USERCHANGED equ 54h
    WM_NOTIFYFORMAT equ 55h
    WM_CONTEXTMENU equ 7Bh
    WM_STYLECHANGING equ 7Ch
    WM_STYLECHANGED equ 7Dh
    WM_DISPLAYCHANGE equ 7Eh
    WM_GETICON equ 7Fh
    WM_SETICON equ 80h
    WM_NCCREATE equ 81h
    WM_NCDESTROY equ 82h
    WM_NCCALCSIZE equ 83h
    WM_NCHITTEST equ 84h
    WM_NCPAINT equ 85h
    WM_NCACTIVATE equ 86h
    WM_GETDLGCODE equ 87h
    WM_SYNCPAINT equ 88h
    WM_NCMOUSEMOVE equ 0A0h
    WM_NCLBUTTONDOWN equ 0A1h
    WM_NCLBUTTONUP equ 0A2h
    WM_NCLBUTTONDBLCLK equ 0A3h
    WM_NCRBUTTONDOWN equ 0A4h
    WM_NCRBUTTONUP equ 0A5h
    WM_NCRBUTTONDBLCLK equ 0A6h
    WM_NCMBUTTONDOWN equ 0A7h
    WM_NCMBUTTONUP equ 0A8h
    WM_NCMBUTTONDBLCLK equ 0A9h
    WM_KEYFIRST equ 100h
    WM_KEYDOWN equ 100h
    WM_KEYUP equ 101h
    WM_CHAR equ 102h
    WM_DEADCHAR equ 103h
    WM_SYSKEYDOWN equ 104h
    WM_SYSKEYUP equ 105h
    WM_SYSCHAR equ 106h
    WM_SYSDEADCHAR equ 107h
    WM_KEYLAST equ 108h
    WM_INITDIALOG equ 110h
    WM_COMMAND equ 111h
    WM_SYSCOMMAND equ 112h
    WM_TIMER equ 113h
    WM_HSCROLL equ 114h
    WM_VSCROLL equ 115h
    WM_INITMENU equ 116h
    WM_INITMENUPOPUP equ 117h
    WM_MENUSELECT equ 11Fh
    WM_MENUCHAR equ 120h
    WM_ENTERIDLE equ 121h
    WM_CTLCOLORMSGBOX equ 132h
    WM_CTLCOLOREDIT equ 133h
    WM_CTLCOLORLISTBOX equ 134h
    WM_CTLCOLORBTN equ 135h
    WM_CTLCOLORDLG equ 136h
    WM_CTLCOLORSCROLLBAR equ 137h
    WM_CTLCOLORSTATIC equ 138h
    WM_MOUSEFIRST equ 200h
    WM_MOUSEMOVE equ 200h
    WM_LBUTTONDOWN equ 201h
    WM_LBUTTONUP equ 202h
    WM_LBUTTONDBLCLK equ 203h
    WM_RBUTTONDOWN equ 204h
    WM_RBUTTONUP equ 205h
    WM_RBUTTONDBLCLK equ 206h
    WM_MBUTTONDOWN equ 207h
    WM_MBUTTONUP equ 208h
    WM_MBUTTONDBLCLK equ 209h
    WM_MOUSELAST equ 209h
    WM_PARENTNOTIFY equ 210h
    WM_ENTERMENULOOP equ 211h
    WM_EXITMENULOOP equ 212h
    WM_MDICREATE equ 220h
    WM_MDIDESTROY equ 221h
    WM_MDIACTIVATE equ 222h
    WM_MDIRESTORE equ 223h
    WM_MDINEXT equ 224h
    WM_MDIMAXIMIZE equ 225h
    WM_MDITILE equ 226h
    WM_MDICASCADE equ 227h
    WM_MDIICONARRANGE equ 228h
    WM_MDIGETACTIVE equ 229h
    WM_MDISETMENU equ 230h
    WM_DROPFILES equ 233h
    WM_MDIREFRESHMENU equ 234h
    WM_CUT equ 300h
    WM_COPY equ 301h
    WM_PASTE equ 302h
    WM_CLEAR equ 303h
    WM_UNDO equ 304h
    WM_RENDERFORMAT equ 305h
    WM_RENDERALLFORMATS equ 306h
    WM_DESTROYCLIPBOARD equ 307h
    WM_DRAWCLIPBOARD equ 308h
    WM_PAINTCLIPBOARD equ 309h
    WM_VSCROLLCLIPBOARD equ 30Ah
    WM_SIZECLIPBOARD equ 30Bh
    WM_ASKCBFORMATNAME equ 30Ch
    WM_CHANGECBCHAIN equ 30Dh
    WM_HSCROLLCLIPBOARD equ 30Eh
    WM_QUERYNEWPALETTE equ 30Fh
    WM_PALETTEISCHANGING equ 310h
    WM_PALETTECHANGED equ 311h
    WM_HOTKEY equ 312h
    WM_PRINT equ 317h
    WM_PRINTCLIENT equ 318h
    WM_PENWINFIRST equ 380h
    WM_PENWINLAST equ 38Fh
    WM_WINDOWPOSCHANGING equ 46h
    WM_WINDOWPOSCHANGED equ 47h
    WM_POWER equ 48h
    Помоему тут все.
    Это из пакета MASM32 фаил Windows.inc

    Автор: USA
    Поставь MSDev. В заголовочных файлах от VC расписаны все структуры, константы, функции под Win, или на msdn.microsoft.com.

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

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

    Вопросы:

    Автор вопроса: Корик

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

    Под ХР подключаю "тракторный" принтер с полосой небольших по размеру
    наклеек.
    Проблема в том, что принтер не совсем новый и производитель своих дров не даёт, а предлагает пользоваться тем, что есть в ХР. Как я понял, в ХР нет такой фишки, как размер листа User Defined, но есть какая-то фигня с определением формы своего размера. После того, как я сделал новую форму того размера, который мне нужен, всё равно каждый раз после печати одной наклейки принтер прокручивает вне полный А4.
    Вопрос: Каким же раком отпечатывать наклейки по одной?

    Автор вопроса: Дмитрий

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

    Подскажите пожалуйста, как работать с компилятором ресурсов RC.EXE

    Автор вопроса: Igor

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

    Подскажите, как "научить" ComboBox корректно отбражать текст в Dos кодировке?

    Автор вопроса: Wasjia

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

    Не могу сделать скроллинг (мышь) в Datagrid форме.

    Автор вопроса: Владимир

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

    В Visual Data Manager нет русского шрифта.
    Ставил четыре разных VB6. В самом VB есть в Manager нет.
    Я новичок в этом деле. Где можно об этом узнать,или что нужно сделать.
    В интернете ничего не нашел.

    Автор вопроса: Sergey

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

    Такой вопрос: мне надо получить содержимое текстового поля другого приложения, есть ли для этого какая-нибудь апишная функция(GetWindowText с чужими приложениями не работает).

    Автор вопроса: Бессонова Ксения

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

    Необходимо решить задачу оптимизации (линейного программирования) любым методом. Суть - необходимо решить систему неравеств. Может у кого есть исходники или ссылки?

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

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

    Вопрос следующего плана.
    Локальная сеть, пересылка данных с помощью MSMQ-конвеера, необходимо послать MQ-ping с одной машины на другую и провести анализ результа (OK или нет).
    Возможно, кто знает как это описать на VB?
    Другой вариант: готовое приложение, которое выполняет эти функции но при этом, при наличии проблем извещает визуально или акустически. Адресок?

    Автор вопроса: BES

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

    Есть два вопроса:

    1. Реально ли из под VB в Word`е нарисовать таблицу и заполнить ее данными.

    2. Можно ли в поле ввода TextBox поместить неудаляемые символы (например :)

    Автор вопроса: Sergey_Perekhoda

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

    У меня небольшой вопрос: как на VBA в Excel'e сделать кнопку и, нажав на нее, записать содержимое ячеек в текстовый файл?

    Автор вопроса: Sergey

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

    Кто нибудь знает, где можно найти инфу о недокументированных API? (желательно русскоязычный сайт)

    Автор вопроса: ximik

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

    Как в Visual Basice иметировать нажатие клавиш в другом приложении например клавишу "Enter"?

    Ответы:

    Вопрос:

    Как можно сравнить дату создания двух файлов?
    Если действовать таким образом:

    If FileDateTime("file1.exe") < FileDateTime("file2.exe") Then ...

    , то сравниваются часы создания файла в первую очередь.
    Может кто знает, как более правильным образом можно сравнить дату создания файлов.

    Ответ:

    Автор ответа: Alexandrov Dmitry

    Используйте функцию DateDiff.

    Ответ:

    Автор ответа: Корик

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

    If Format(FileDateTime("file1.exe"),"dd/mm/yyyy") < Format(FileDateTime("file2.exe") ,"dd/mm/yyyy")

    Вопрос:

    Подскажите пожалста, как работать с мопедом (модемом) т.е. как открыть порт, набрать номер, отправить, получить и т.д. Инет здесь не присутствует, (общение только между 2 мопедами) или есть у кого готовый OCX or Dll или ссылка (но я по моему ужо все возможные сайты облазил), за любую инфу ,большое спасибо!!!

    Ответ:

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

    Используй Microsoft Communication Control (MSComm).

    Ответ:

    Автор ответа: Invisible Man

    Используй mscomm32.ocx

    MSComm1.CommPort = 2 'номер порта
    MSComm1.Settings = "9600,n,8,1" 'параметры порта
    MSComm1.PortOpen = True 'открываем указанный выше порт
    MSComm1.Output = "AT" 'пересылаем в порт команду AT

    receive$ = MSComm1.Input 'принимаем с порта (принимать лучше по таймеру)
    MSComm1.PortOpen = False 'закрываем порт

    Если нужны стандартные команды модема, пиши на invisibleman2@yandex.ru, скину...

    Вопрос:

    Подскажите, пожалуйста, с помощью каких средств создаются ASP страницы? Есть пресс документации, но нигде не сказано, где и как их собирать. Где можно запустить и посмотреть файлы с расширением *.ASP? Просто так Винда их ни чем не хочет открывать.

    Ответ:

    Автор ответа: Alexandrov Dmitry

    Для этого тебе нужен например IIS (Microsoft Internet Information Server)
    Устанавливаешь IIS, создаешь виртуальную директорию, кладешь в нее asp-страницы
    Смотришь страницу так: запускаешь IE и в адресе набираешь http://localhost/<имя виртуальной директории>/<имя файла>

    Ответ:

    Автор ответа: Константин Михайлов

    ASP-страницы создаются при помощи любого текстового редактора..
    Сами файлы можно посмотреть при помощи любого просмотрщика текстовых файлов.. А выполняются на стороне сервера при запросе страницы клиентом.

    Ответ:

    Автор ответа: KAS (c)

    Для того что бы проверить работу ASP нужен виртуальный сервер (например поставляемый вместе с лицензионным диском Windows'98).

    Ответ:

    Автор ответа: Корик

    Да хоть обычным Notepadом, хотя я пользуюсь InterDevом из Visual Studio.

    Ответ:

    Автор ответа: Владимир Кирко

    Для работы с ASP требуется сервер на основе Internet Information Server для Windows NT/2k/XP или Personal Web Server для Windows 95/98/ME. Эти продукты можно совершенно бесплатно скачать с сайта Microsoft. Весит оно около 30 мегабайт. В комплекте с сервером поставляется огромная справочная система и примеры. (http://prosto.pp.ru/Docum/DocumShow_DocumID_325.html) (К тому же они, как правило, есть в составе дистрибутивов соответствующих операционных систем.)
    В принципе, работать с ASP можно в любом текстовом редакторе, хоть в notepad'e. Однако существуют специальные редакторы для этой цели. Можно обойтись и без них, но они обеспечивают дополнительные возможности, начиная от простейшей раскраски кода и заканчивая встроенными возможностями отладки скрипта. Вот те, с которыми мне приходилось работать:
    MS InterDev, входящий в состав Microsoft Visual Studio (http://msdn.microsoft.com/vinterdev/-default.asp), Macromedia's Drumbeat 2000 (http://www.macromedia.com/software/drum-beat/), Home Site 4.5 Allaire Corp (http://-www.allaire.com), Primal Script from Spaien Technologies (http://www.sapien.com/), ASP Express (http://www.aspexpress.com/), ASP-edit. (http://prosto.pp.ru/Docum/DocumShow_DocumID_233.html).
    Для проверки ASP скриптов тебе придется их тестировать дома, но как? Для этого мы воспользуемся Microsoft's Personal Web Server(PWS). Для начала его надо поставить (я не думаю, что он тебе до этого был нужен). Это можно сделать либо с сидюка с win98, либо идти на сайт Микрософта (www.microsoft.com). После этого на твоем компе появится каталог Inetpub, где находится директория wwwroot. Вот в нее-то ты и заходи. Создай каталог myweb или что-нибудь подобное. После чего тебе потребуется написать ASP код. Сохрани его в эту директорию с именем script.asp. Готово. Теперь можешь заходить в свой любимый браузер и набирать в адресной строке: http://localhost/myweb/scnpt.asp. Если работать не будет, то, скорее всего, это либо криво написанный скрипт, либо не активизированный PWS (Personal Web Server).;) (http://prosto.pp.ru/Docum/DocumShow_DocumID_233.html).

    Вопрос:

    Есть проблема. При работе с TEXTBOX необходимо запретить любую вставку с буфера-только ввод с клавиатуры.

    Ответ:

    Автор ответа: Славик

    А что если переодически очищать буфер? Правда это не совсем удобно для других приложений.

    Вопрос:

    Подскажите кто знает как из VB6 определить текущую раскладку клавиатуры (русская или английская) и изменить эту расскладку в Windows

    Ответ:

    Автор ответа: Роман

    Для определения раскладки клавиатуры:

    Private Declare Function GetKeyboardLayoutName Lib _
    "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long

    Dim strName As String
    strName = String(8, 0)
    GetKeyboardLayoutName strName
    strName = Mid$(strName, 6, 3)

    Если strName = 419 - русский, 409 - английский

    А изменять лучше так:

    Declare Function ActivateKeyboardLayout Lib "user32" _
    (ByVal HKL As Long, ByVal flags As Long) As Long
    Public Const kb_lay_ru As Long = 68748313
    Public Const kb_lay_en As Long = 67699721

    ' Переключить на русский язык
    x = ActivateKeyboardLayout&(kb_lay_ru, 0)

    ' Переключить на английский язык
    x = ActivateKeyboardLayout&(kb_lay_en, 0)

    Ответ:

    Автор ответа: Корик

    Изменить можно через API-функцию LoadKeyboardLayout. Эта функция принимает 2 параметра, первый из которых код языка, на который нужно поменять, но он записывается как String. А второй, по-моему, просто еденица. Точно не помню, но ты можешь посмотреть в MSDN хелп на эту функцию

    Ответ:

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

    Задача выполнима, НО я всегда грубо ругался (про себя) на те программы, которые этим занимались! Как правило, сам по инерции переключаешь и получаешь наоборот :-( И другие мелкие неприятности. На самом деле это плохой путь. Ну, а если "уж-замуж-невтерпёж", то лучше что-то типа PuntoSwitcher.

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

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

    наверх

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


Выпуск 163.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

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

    Новый выпуск!
    Читайте!

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

    • Книги

    • ListBox / ComboBox - добавление массива данных
    • Форма: перемещение элементов формы
    • Форма: создание модальной формы
    • Форма: определение модальности формы

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

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти здесь.

    наверх

    ListBox / ComboBox - добавление массива данных

    Данная процедура предназначена для добавления массива данных в элементы ListBox / ComboBox, используя АПИ-функции. Данная процедура работает быстрее, чем процедура, основанная на методе AddItem.

    Для примера вам понадобится ComboBox и 2 элемента CommandButton. Вместо элемента ComboBox можно расположить ListBox, только не забудьте в событиях нажатия на CommandButton прописать тот контрол (ListBox / ComboBox), который вы расположите на форме.

    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) As Long
    Private Const LB_ADDSTRING = &H180
    Private Const LB_RESETCONTENT = &H184
    Private Const CB_ADDSTRING = &H143
    Private Const CB_RESETCONTENT = &H14B

    Sub ArrayToListBox(ctrl As Object, arr As Variant, Optional clearIt As Boolean, _
    Optional ByVal First As Variant, Optional ByVal Last As Variant)
    Dim msgReset As Long
    Dim msgAdd As Long
    Dim hWnd As Long
    Dim index As Long
    If TypeOf ctrl Is ListBox Then
    msgReset = LB_RESETCONTENT
    msgAdd = LB_ADDSTRING
    ElseIf TypeOf ctrl Is ComboBox Then
    msgReset = CB_RESETCONTENT
    msgAdd = CB_ADDSTRING
    Else
    Exit Sub
    End If
    If IsMissing(First) Then First = LBound(arr)
    If IsMissing(Last) Then Last = UBound(arr)
    ' отменить перерисовку
    hWnd = ctrl.hWnd
    LockWindowUpdate hWnd
    ' очистить контрол, если требуется
    If clearIt Then
    SendMessage hWnd, msgReset, 0, 0
    End If
    ' добавить элементы в контрол
    For index = First To Last
    SendMessage hWnd, msgAdd, 0, ByVal CStr(arr(index))
    Next
    LockWindowUpdate 0
    End Sub

    Private Sub Command1_Click()
    'метод, основанный на АПИ-функциях
    Dim d()
    s = 10000: s1 = Timer
    ReDim d(s)
    For i = 1 To s: d(i) = i: Next
    Call ArrayToListBox(Combo1, d(), True, 6, 4578)
    s2 = Timer
    MsgBox s2 - s1
    End Sub

    Private Sub Command2_Click()
    'метод, основанный на методе AddItem
    s = 10000: s1 = Timer
    For i = 1 To s: Combo1.AddItem i: Next
    s2 = Timer
    MsgBox s2 - s1
    End Sub

    наверх

    Форма: перемещение элементов формы

    Добавьте данную процедуру в вашу программу, и вы сможете перемещать любой элемент, расположенный на форме, в любое место вашей формы.

    Private Type POINTAPI
    X As Long
    Y As Long
    End Type

    Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
    End Type

    Private Declare Function ClipCursor Lib "user32" (lpRect As RECT) As Long
    Private Declare Function ClipCursorByNum Lib "user32" Alias "ClipCursor" (ByVal lpRect As Long) As Long
    Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
    Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    Private Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
    Private Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
    Private Declare Function InvalidateRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT, ByVal bErase As Long) As Long
    Private Declare Function InvalidateRectByNum Lib "user32" Alias "InvalidateRect" (ByVal hwnd As Long, ByVal lpRect As Long, ByVal bErase As Long) As Long

    ' Перемещение любого контрола с помощью клавиатуры и правой клавиши мыши
    '
    ' Для того, чтобы задействовать перемещение, вы должны в процедуру контрола MouseDown
    ' добавить несколько строчек кода. С помощью клавиши Ctrl и правой клавиши мыши
    ' вы можете перемещать любой контрол на форме
    ' Для примера:
    ' Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    ' If Button = vbRightButton And Shift = vbCtrlMask Then
    ' DragControl Command1
    ' End If
    ' End Sub

    Sub DragControl(ctrl As Control)
    Dim startButton As Integer
    Dim startPoint As POINTAPI
    Dim currPoint As POINTAPI
    Dim contRect As RECT
    Dim contScaleMode As Integer
    ' get mouse position and buttons pressed
    GetCursorPos startPoint
    If GetAsyncKeyState(vbLeftButton) Then startButton = vbLeftButton
    If GetAsyncKeyState(vbRightButton) Then startButton = startButton Or vbRightButton
    If GetAsyncKeyState(vbMiddleButton) Then startButton = startButton Or vbMiddleButton
    ' get container upper-left corner position
    ' in screen coordinates (currPoint is Zero)
    ClientToScreen ctrl.Container.hwnd, currPoint
    ' get container size
    GetClientRect ctrl.Container.hwnd, contRect
    ' convert to screen coordintes
    contRect.Left = currPoint.X
    contRect.Top = currPoint.Y
    contRect.Right = contRect.Right + currPoint.X
    contRect.Bottom = contRect.Bottom + currPoint.Y
    ' limit the cursor within the parent control
    ClipCursor contRect
    ' get the ScaleMode that is active for the control
    ' this is the ScaleMode of its container, or it
    ' is vbTwips if its container does not support
    ' the ScaleMode property
    On Error Resume Next
    contScaleMode = vbTwips
    ' ignore next assignement if the container
    ' dows not support ScaleMode property
    contScaleMode = ctrl.Container.ScaleMode
    Do
    ' exit if all mouse buttons are released
    If (startButton And vbLeftButton) = 0 Or GetAsyncKeyState(vbLeftButton) = 0 Then
    If (startButton And vbRightButton) = 0 Or GetAsyncKeyState(vbRightButton) = 0 Then
    If (startButton And vbMiddleButton) = 0 Or GetAsyncKeyState(vbMiddleButton) = 0 Then
    Exit Do
    End If
    End If
    End If
    ' get current mouse position
    GetCursorPos currPoint
    ' move the control if they are different
    If currPoint.X <> startPoint.X Or currPoint.Y <> startPoint.Y Then
    ' move the control
    With ctrl.Parent
    ctrl.Move ctrl.Left + .ScaleX(currPoint.X - startPoint.X, _
    vbPixels, contScaleMode), ctrl.Top + .ScaleY(currPoint.Y - _
    startPoint.Y, vbPixels, contScaleMode)
    ' refresh container
    InvalidateRectByNum .hwnd, 0, False
    .Refresh
    End With
    LSet startPoint = currPoint
    End If
    ' allow background processing
    DoEvents
    Loop
    ' restore full mouse movement
    ClipCursorByNum 0
    End Sub

    Private Sub Command1_Click()
    MsgBox "привет"
    End Sub

    Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = vbRightButton And Shift = vbCtrlMask Then
    DragControl Command1
    End If
    End Sub

    Private Sub List1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = vbRightButton And Shift = vbCtrlMask Then
    DragControl List1
    End If
    End Sub

    наверх

    Форма: создание модальной формы

    Если у вас в программе запущено несколько форм, и вам необходимо сделать одну форму более модальной :) по отношению к другим, используйте данную процедуру. Добавьте к вашему проекту еще 2 формы, а также расположите на форме 3 CommandButton.

    Sub MakeModalForm(frm As Form, ByVal State As Boolean)
    Static saveForms As Collection
    Dim f As Form
    If State Then
    ' disable all other forms in the project
    ' but remember which were enabled
    Set saveForms = New Collection
    For Each f In Forms
    If Not (f Is frm) And frm.Enabled Then
    saveForms.Add f
    f.Enabled = False
    End If
    Next
    ElseIf Not (saveForms Is Nothing) Then
    ' restore the Enabled property of other forms
    For Each f In saveForms
    f.Enabled = True
    Next
    Set saveForms = Nothing
    End If
    End Sub

    Private Sub Command1_Click()
    Form2.Show
    Form3.Show
    End Sub

    Private Sub Command2_Click()
    MakeModalForm Me, True
    End Sub

    Private Sub Command3_Click()
    MakeModalForm Me, False
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    MakeModalForm Me, False
    End Sub

    наверх

    Форма: определение модальности формы

    Все просто: проверка - модальная или не модальная форма

    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
    Const GWL_STYLE = (-16)
    Const WS_DISABLED = &H8000000

    Function IsFormModal(frm As Form) As Boolean
    ' Функция возвращает True если форма модальная
    ' Если программа имеет одну видимую форму, функция возвратит True
    Dim f As Form
    For Each f In Forms
    If Not (f Is frm) Then
    If (GetWindowLong(f.hWnd, GWL_STYLE) And WS_DISABLED) = 0 Then
    Exit Function
    End If
    End If
    Next
    IsFormModal = True
    End Function

    Private Sub Command4_Click()
    MsgBox IsFormModal(Form1)
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

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

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

    Вопросы:

    Автор вопроса: Голикова

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

    Кто нибудь делал свой FTP клиент, неполучается работать через прокси...
    Я руководствовался данной статьей: http://www.vbip.com/wininet/wininet-ftp-command-01.asp
    Подкажите ссылки

    Автор вопроса: Костя

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

    Как удалить файл qwe.mdb (к примеру) програмно из VB.

    Автор вопроса: Костик

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

    Как можно выключить компьютер или перезагрузить его программно?

    Автор вопроса: Саша

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

    Есть БД baza.mdb. Открываю ее с помощью msadodc.ocx(Adodc1)
    Как поставить на базу пароль и открыть ее с помощью Adodc1 ?

    Автор вопроса: Роман

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

    У меня небольшой вопрос: как в MSExel с помощью средств VB залить определенную ячейку или диапазон ячеек каким-либо цветом.

    Автор вопроса: Ворошилов Павел

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

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

    Автор вопроса: ximik

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

    Нужно чтобы моя программа дописывала себя в конец .exe-фаила и при запуске обе программы работали нормально. Если можно немного кода.

    Автор вопроса: Dima

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

    На форме есть TextBox control (имя: txtText) и CommandButton (имя: cmbCreate)
    При нажатии на кнопку надо создать еще 2 таких TextBoxа и поместить их рядом с существующим.
    Использую VB6.

    Автор вопроса: Саша

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

    Как узнать ip-адрес интернет-сервера?

    Автор вопроса: Антон

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

    Мне нужно каким-то образом обрабатывать дерево элементов. У каждого элемента есть несколько уникальных свойств. Я представляю это как массив (всю базу для свойств). Help me, please! Если есть исходники, примеры, рекомендации (особенно о работе с TreeView именно в этой ситуации), пишите mailto:kalmykov@uraltc.ru

    Автор вопроса: Антон

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

    Подскажите где можно взять примеры с браузером файлов (типа панели FAR или Windows Commander - имеется в виду одну панель) ???

    Автор вопроса: goodroman

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

    Подскажите плиз, какие мне нужны функции, чтобы написать сканер клавы. Если можно то с описанием, хотя не обязательно.

    Автор вопроса: alek

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

    В проекте почему то стала форма черного цвета хотя при выполнении показывает тот цвет,который выбран в BackColor. Невозможно работать ни со цветом, ни с картинками, а при выполнении все нормально. Может у кого такое было?

    Автор вопроса: HoodWin

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

    Подскажите, если кто знает, как разбить файл на часть, а потом собрать. Если это в VB вообще возможно.

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

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

    Создал ActiveX Control в котором поместил в массив Image 9 рисунков. При выполнении метода Next компонента отображение рисунков меняется.
    Помещаю свой компонент на форму. Выполняю периодически метод Next. И через случайное количество вызова метода происходит как бы мерцание компонента.

    Как бы избавится от сих бликов?

    Автор вопроса: Vir

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

    Как можно подключить API функцию из DLL, находяшимся в папке с программой, в частности:
    Public Declare Sub SaveToJpg1 Lib "savtojpg.dll" (ByVal hgd As Long, ByVal FileName As String, ByVal Height As Long, ByVal Width As Long)

    Автор вопроса: Владимир

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

    В Visual Data Manager нет русского шрифта.
    Ставил четыре разных VB6.В самом VB есть в Manager нет.
    Я новичок в этом деле. Где можно об этом узнать,или что нужно сделать.
    В интернете ничего не нашел.

    Ответы:

    Вопрос:

    Подскажите кто знает как из VB6 определить текущую раскладку клавиатуры (русская или английская) и изменить эту расскладку в Windows

    Ответ:

    Автор ответа: Vladimir [PRC]

    Объявляешь API функцию:

    Private Declare Function ActivateKeyboardLayout Lib "user32" (ByVal HKL As Long, ByVal flags As Long) As Long

    Затем вызываешь её для переключения раскладок клавиатуры:

    ActivateKeyboardLayout 67699721, 0 - Чтобы печатать по английски
    ActivateKeyboardLayout 68748313, 0 - Чтобы печатать по русски

    Для определения текущей раскладки:

    dim test as long
    test = ActivateKeyboardLayout(67699721, 0)
    ActivateKeyboardLayout test, 0

    Если test = 67699721, то раскладка английская
    Если test = 68748313, то раскладка русская

    Ответ:

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

    Для изменения раскладки можно использовать функцию

    ActivateKeyboardLayout Lib "user32" (ByVal HKL As Long, ByVal flags As Long) As Long

    Вызывать её нужно следующим образом:

    '// На русский
    ActivateKeyboardLayout 68748313, 0
    '// На английский
    ActivateKeyboardLayout 67699721, 0

    А для того чтобы узнать какая сейчас стоит раскладка нужно про помощи функции

    GetKeyboardLayout Lib "user32" (ByVal dwLayout As Long) As Long

    записать значение в переменную и если число в переменной равно 68748313, то язык русский, 67699721 - английский.
    Вот пример:

    GetAdr = GetKeyboardLayout(0)
    If GetAdr = 68748313 Then
    MsgBox "Русская"
    Else
    MsgBox "Английская"
    End if

    Вопрос:

    Подскажите, как "научить" ComboBox корректно отбражать текст в Dos кодировке?

    Ответ:

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

    Перекодируй ее в Winows и все дела...

    '----------------------------------------------------
    ' Модуль для перекодировки строковых переменных
    ' В. Язов начало 12.09.2001
    '----------------------------------------------------
    Option Explicit
    Public Declare Function OemToChar Lib "user32" Alias "OemToCharA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long
    Public Declare Function CharToOemBuff Lib "user32" Alias "CharToOemBuffA" (ByVal lpszSrc As String, ByVal lpszDst As String, ByVal cchDstLength As Long) As Long

    Public Const WC_COMPOSITECHECK = &H200
    Public Const WC_DEFAULTCHAR = &H40
    Public Const WC_DISCARDNS = &H10
    Public Const WC_SEPCHARS = &H20

    Public Const CP_ACP = 0
    Public Const CP_OEMCP = 1
    Public Const CP_MACCP = 2
    Public Const CP_THREAD_ACP = 3
    Public Const CP_SYMBOL = 42
    Public Const CP_UTF7 = 65000
    Public Const CP_UTF8 = 65001

    Public Const MB_PRECOMPOSED = &H1
    Public Const MB_COMPOSITE = &H2
    Public Const MB_USEGLYPHCHARS = &H4
    Public Const MB_ERR_INVALID_CHARS = &H8

    Public Declare Function WideCharToMultiByte Lib "kernel32" _
    (ByVal CodePage As Long, _
    ByVal dwFlags As Long, _
    ByVal lpWideCharStr As String, _
    ByVal cchWideChar As Long, _
    ByVal lpMultiByteStr As String, _
    ByVal cchMultiByte As Long, _
    ByVal lpDefaultChar As String, _
    ByVal lpUsedDefaultChar As Long) As Long
    Public Declare Function MultiByteToWideChar Lib "kernel32" _
    (ByVal CodePage As Long, _
    ByVal dwFlags As Long, _
    ByVal lpMultiByteStr As String, _
    ByVal cchMultiByte As Long, _
    ByVal lpWideCharStr As String, _
    ByVal cchWideChar As Long) As Long
    '=======================================================
    ' Publi Function
    '=======================================================
    '----------- Dos to Win ----------------------------
    Public Function DosWin(ByVal sourcestring As String) As String
    Dim code As Long
    DosWin = Space$(Len(sourcestring)) 'получаем перекодированную строку
    code = OemToChar(sourcestring, DosWin) 'Собственно перекодируем
    End Function
    '----------- Win to Dos ----------------------------
    Public Function WinDos(ByVal sourcestring As String) As String
    Dim code As Long
    WinDos = Space$(Len(sourcestring)) 'получаем перекодированную строку
    code = CharToOemBuff(sourcestring, WinDos, Len(WinDos)) 'Собственно перекодируем
    End Function
    '-------- Win в Кириллицу ----------------------
    Public Function WinCyr(ByVal strSrc As String, ByVal sTipIsxodn As String) As String
    'Моя вариация на тему Армена 24-9-2001
    Const nTipWin As Long = 1251 'Win(Cyr) Значение исходной кодовой страницы
    Dim nLen As Long 'Длина строчки
    Dim strDst As String 'Для превода в Unicode
    Dim strRet As String 'Для возврата из Unicode в Win
    Dim nRet As Long 'Для возвращаемого кода API
    Dim nTipIsxodn As Long 'Значение исходной кодовой страницы
    nLen = Len(strSrc)
    strDst = String(nLen * 2, Chr(0))
    strRet = String(nLen * 2, Chr(0))
    Select Case UCase$(sTipIsxodn)
    Case "DOS"
    nTipIsxodn = 866
    Case "ISO"
    nTipIsxodn = 28595
    Case "KOI8-R"
    nTipIsxodn = 20866
    Case "KOI8-RU" 'Украина
    nTipIsxodn = 21866
    Case Else
    MsgBox sTipIsxodn & vbCrLf & " Неизвестная кодировка!!!"
    End Select
    nRet = MultiByteToWideChar(nTipWin, MB_PRECOMPOSED, strSrc, nLen, strDst, nLen)
    nRet = WideCharToMultiByte(nTipIsxodn, 0, strDst, nRet, strRet, nLen * 2, ByVal 0, 0)
    WinCyr = Left(strRet, nRet)
    End Function
    '-------- Кириллица в Win ----------------------
    Public Function CyrWin(ByVal strSrc As String, ByVal sTipIsxodn As String) As String
    'Моя вариация на тему Армена
    Const nTipWin As Long = 1251 'Win(Cyr) Значение исходной кодовой страницы
    Dim nLen As Long 'Длина строчки
    Dim strDst As String 'Для превода в Unicode
    Dim strRet As String 'Для возврата из Unicode в Win
    Dim nRet As Long 'Для возвращаемого кода API
    Dim nTipIsxodn As Long 'Значение исходной кодовой страницы
    nLen = Len(strSrc)
    strDst = String(nLen * 2, Chr(0))
    strRet = String(nLen * 2, Chr(0))
    Select Case UCase$(sTipIsxodn)
    Case "DOS"
    nTipIsxodn = 866
    Case "ISO"
    nTipIsxodn = 28595
    Case "KOI8-R"
    nTipIsxodn = 20866
    Case "KOI8-RU" 'Украина
    nTipIsxodn = 21866
    Case Else
    MsgBox sTipIsxodn & vbCrLf & " Неизвестная кодировка!!!"
    End Select
    nRet = MultiByteToWideChar(nTipIsxodn, MB_PRECOMPOSED, strSrc, nLen, strDst, nLen)
    nRet = WideCharToMultiByte(nTipWin, 0, strDst, nRet, strRet, nLen * 2, ByVal 0, 0)
    CyrWin = Left(strRet, nRet)
    End Function
    '---- Функция получена от Армена Мнацаканяна -------------
    Public Function ConvertString(ByVal strSrc As String, ByVal nFromCP As Long, ByVal nToCP As Long) As String
    Dim nLen As Long
    Dim strDst As String
    Dim strRet As String
    Dim nRet As Long
    nLen = Len(strSrc)
    strDst = String(nLen * 2, Chr(0))
    strRet = String(nLen * 2, Chr(0))
    nRet = MultiByteToWideChar(nFromCP, MB_PRECOMPOSED, strSrc, nLen, strDst, nLen)
    nRet = WideCharToMultiByte(nToCP, 0, strDst, nRet, strRet, nLen * 2, ByVal 0, 0)
    ConvertString = Left(strRet, nRet)
    End Function

    Вопрос:

    У меня небольшой вопрос: как на VBA в Excel'e сделать кнопку и, нажав на нее, записать содержимое ячеек в текстовый файл?

    Ответ:

    Автор ответа: ]...C...B...K...[C...R...a...S...H

    Добавь панель Элементы управления
    Создай кнопку
    Кликни по ней 2 раза
    В процедуре напиши

    Dim i, j
    Open "c:\1.txt" For Output As #1
    For i = 1 To 40
    For j = 1 To 40
    Print #1, ActiveSheet.Cells(i, j)
    Next j
    Next i

    Вопрос:

    Как в Visual Basice иметировать нажатие клавиш в другом приложении например клавишу "Enter"?

    Ответ:

    Автор ответа: KAS (c)

    SendKeys "{Enter}",1

    Передает нажатие клавиш активному приложению, а что бы сделать приложение активным:

    AppActivate "Блокнот",1

    Делает приложение Блокнот активным.

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

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

    наверх

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


Выпуск 164.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

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

    Читайте!

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

    • Конкурс!

    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Один момент из жизни форума: Клавиатурный хук?

    • Доска объявлений

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

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Конкурс!

    Здравствуйте, любители Visual Basic! Подведены итоги третьего конкурса на лучшую статью по программированию на Visual Basic. В конкурсе участвовало 10 работ! Спасибо всем, кто принял участие в конкурсе, прислав свои работы, а также тем, кто помогал в выборе победителя, голосовав на сайте. О результатах. Места распределились следующим образом:

    Первое место: Ларин Александр "Защита Защиты"
    Второе место: Ройтер Роман "Как защитить свою программу от взломщиков".
    Третье место: Немиро Алексей "Разработка окна в стиле Windows XP" и "Каждому юзеру по программе!".

    Какие же призы мы приготовили авторам? Ларин Александр получает подписку на журнал "Hard'n'Soft". Ройтер Роман награждается комплектом компакт дисков от VBNet.Ru. И Немиро Алексей получит один из компакт дисков от нашего сайта по его выбору.

    Ну и хочу сообщить всем, что начинается новый конкурс! И не один! Во-первых, конкурс на статью. Главным призом будет, как и сейчас, подписка на журнал "Hard'n'Soft". Второй конкурс - конкурс на лучший пример и ActiveX. Присылайте свои статьи, примеры, ActiveX на сайт и становитесь победителями конкурса!

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

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

    Дата: 26.05.2003 16:30 | Раздел: Примеры кода | Автор: Эминов Эмиль

    ClipBoard - Пример создания буфера обмена. Возможность сохранения текстовых данных буфера.

    Дата: 25.05.2003 16:30 | Раздел: Примеры кода | Автор: Эминов Эмиль

    Form - Небольшая игра, всем известная "Угадай число". Пример симпатичного интерфейса.

    Дата: 24.05.2003 16:30 | Раздел: Примеры кода | Автор: Эминов Эмиль

    Switch - Программа для изменения раскладки клавиатуры, просто двойным щелчком.

    Дата: 23.05.2003 14:22 | Раздел: ActiveX контролы | Автор: Savenger

    TBReader - Этот элемент управления предназначен для обеспечения доступа из ваших программ к почтовым базам The Bat! напрямую, минуя промежуточные звенья. Сей OCX может функционировать даже при отсутствии самого The Bat!.

    Дата: 23.05.2003 11:32 | Раздел: Примеры кода | Автор: Половый Александр

    Игра "Быки и Коровы" - Игра "Быки и Коровы" (Bull&cow.exe) Логическая игра, цель которой состоит в том, чтобы отгадать число, загаданное соперником. Правила игры описаны в справке. Играть можно против компьютера или по сети против человека.

    Дата: 22.05.2003 16:30 | Раздел: Примеры кода | Автор: Эминов Эмиль

    Sysinf - Небольшая информация о вашей системе.

    Дата: 21.05.2003 16:09 | Раздел: Примеры кода | Автор: Millenium

    Language Pakage Creator - Простой пример, как можно создавать и редактировать языковые пакеты интерфейса программ.

    Дата: 19.05.2003 16:09 | Раздел: ActiveX контролы | Автор: Daniyar Atadjanov

    MagicButton v1.2.650 - Этот контрол позволяет создавать кнопки любой сложности - текстовые, графические, анимированные, разные эффектные кнопки. Контрол имеет множество свойств, событий и методов! Имеет событие MouseOut, которого нет ни у одного контрола в мире. Можно сделать кнопку с изменяемым цветом фона при наведении мыши, с изменяемым цветом текста на кнопке, с изменяемым фоновым изображением. Рисунок и текст можно поместить в любом месте на кнопке относительно центра. Имеет множество стилей бордюров, рамок. Можно сделать всегда выпуклую кнопку, или выпуклую при наведении, или XP фрейм при наведении, или просто плоскую.

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

    11:22 / 26 май. TreeView | Хитов: 2 | Ответов: 0
    09:47 / 26 май. Продаю книгу | Хитов: 7 | Ответов: 0
    21:54 / 25 май. TIF картинки | Хитов: 11 | Ответов: 0
    20:58 / 25 май. Кому не лень... | Хитов: 22 | Ответов: 0
    17:00 / 25 май. Потоки | Хитов: 14 | Ответов: 0
    14:05 / 25 май. Как очистить ListView ? | Хитов: 18 | Ответов: 1
    13:46 / 25 май. АДМИНЫ ЧТО ЗА ..... | Хитов: 39 | Ответов: 1
    13:40 / 25 май. Новое сообщение без темы | Хитов: 4 | Ответов: 0
    13:05 / 25 май. Новое сообщение без темы | Хитов: 4 | Ответов: 0
    12:59 / 25 май. Новое сообщение без темы | Хитов: 3 | Ответов: 0
    10:57 / 25 май. СРОЧНО!!!!!! ПОМОГИТЕ!!!!!!!!! | Хитов: 46 | Ответов: 4
    03:27 / 25 май. Добавить картинку для фона | Хитов: 23 | Ответов: 0
    21:12 / 24 май. Форма формы и API! | Хитов: 30 | Ответов: 1
    20:53 / 24 май. 2 Админы: приношу свои извинения... | Хитов: 48 | Ответов: 2
    20:18 / 24 май. Динамические формы | Хитов: 41 | Ответов: 2
    18:37 / 24 май. Чат | Хитов: 27 | Ответов: 1
    18:05 / 24 май. TV | Хитов: 25 | Ответов: 0
    16:36 / 24 май. Модальность окон в VB.NET | Хитов: 16 | Ответов: 2
    16:11 / 24 май. Оптимизация функции перекодировки текста (VB.NET) | Хитов: 5 | Ответов: 0
    13:34 / 24 май. клавиатурный хук | Хитов: 42 | Ответов: 7

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

    Новости от VBNet-чиков!:

    наверх

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

    наверх

    Новости сайта Азбука VB

    наверх

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

    наверх

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

    • 23.05.2003 - Terraium вернулся! Объявлен новый конкурс среди разработчиков созданий для игры Terrarium.
      Победителей ждут ценые призы - ViewSonic PocketPC. Ознакомьтесь с полными правилами и условиями участия.
    • 22.05.2003 - Microsoft Mobility Developer Conference 2003
      Компания Microsoft при поддержке компании «Кварта Технологии» впервые в России проводят бесплатную конференцию Microsoft Mobility Developer Conference 2003, которая состоится в Москве 28 мая 2003 года в отеле «Аэростар» по адресу Ленинградский пр-т, д. 37, корп. 9.

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

    • 23.05 - Microsoft Solutions Framework Дисциплина управления подготовкой MSF вер. 1.1
    • 23.05 - Microsoft Solutions Framework Дисциплина управления проектами MSF вер. 1.1
    • 22.05 - Microsoft Solutions Framework Дисциплина управления рисками MSF вер. 1.1
    • 22.05 - Microsoft Solutions Framework Модель проектной группы MSF вер. 3.1
    • 22.05 - Microsoft Solutions Framework Модель процессов MSF вер. 3.1

    наверх

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

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

    • Создание приложения для карманных компьтеров с использование БД.
    • Вопросы производительности .NET Framework. Цикл статей
    • Методы повышения производительности .NET приложений. Цикл статей
    • Рекомендации по асинхронному программированию. Цикл статей
    • Рекомендации по организации поточной обработки. Цикл статей

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

    наверх

    Один момент из жизни форума: WM_ где узнать?

    Вопрос:
    Автор вопроса: ivan_81

    необходимо перехватывать события клавы. Как ТОЛЬКО средствами VB организовать такое дело?

    Ответы:

    Автор: Страшный Сон
    Очень просто. Если надо перехватывать нажатия клавиш клавы и мышары, вот апиха есть:
    Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
    А если надо их блокировать, то можно поискать ещё что-нибудь

    Автор: ivan_81
    GetKeyState возвращает состояние одной клавиши, и то какую запросиш (а надо всех, если я правильно понял), тогда уж лутше GetKeyboardState (я так думаю что массив побыстрее обрабатыватся будет чем вызывать для каждой клавиши GetKeyState).
    Придётся вызывать GetKeyboardState по таймеру. Но как это скажется на производительности системы, если таймер на 0,1 сек (думаю хватит)

    Автор: Danger2002
    Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

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

    Вопросы:

    Автор вопроса: sla_237

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

    Подскажите пожалуйста как отлавливать траффик. по определенному соединеню? по заданому ip например? если можно с примером.

    Автор вопроса: HoodWin

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

    Подскажите, пожалуйста, как узнать все процессы в системе и отключить любой ия них.

    Автор вопроса: goodroman

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

    В МОДУЛЕ ПИШУ:

    Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
    Public AsciiZnak(255) As Integer

    Function KeyDruk() As String

    For i = 1 To 255 ' Prisvoenie
    If Not AsciiZnak(i) = GetKeyState(i) Then
    KeyDruk = Chr(i)
    End If
    AsciiZnak(i) = GetKeyState(i)
    Next i

    End Function

    В ПРОГРАММЕ ПИШУ:

    Private Sub Timer1_Timer()
    Dim a As String
    a = KeyDruk()
    Text1.Text = Text1.Text + a
    End Sub

    ВОПРОС:
    Почему при выполнении таймера он выдаёт один символ два раза? По идеи в модуле я написал всю проверку насчёт косяка.
    Менять интервал времени таймера не помогает, а если сделать уж очень большой интервал, то вообще функция не успевает следить за нажатием кнопок.
    Что делать?

    Автор вопроса: Jen

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

    Сделал страничку в DHTML. А работает только у меня т.к при компиляции проекта инфа о DLL заносится в реестр. Как сделать так чтобы она работала у всех.

    Автор вопроса: Елена

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

    Подскажите, как перевернуть содержимое ячейки в Excele на 180 градусов ("вверх ногами").
    Требуется для формы Госкомстата.
    Может быть воспользоваться перевернутым шрифтом, тогда подскажите, где его взять?

    Ответы:

    Вопрос:

    Как удалить файл qwe.mdb (к примеру) програмно из VB.

    Ответ:

    Автор ответа: LUNET Co.

    Если тебе нужно удалить какой-нибудь файл программно лучше использовать следующий код:

    Kill ("PATH_TO_FILE") 'где PATH_TO_FILE путь к удаляемому файлу

    Ответ:

    Автор ответа: Данила

    kill "c:\qwe.mdb"

    Вопрос:

    Как можно выключить компьютер или перезагрузить его программно?

    Ответ:

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

    Public Declare Function ExitWindows Lib "user32" Alias "ExitWindows" (ByVal dwReserved As Long, ByVal uReturnCode As Long) As Long

    Ответ:

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

    Для перезагрузки - Shell "rundll32 shell32,SHExitWindowsEx 2"
    Чтобы выключить компьютер - Shell "shell32,SHExitWindowsEx 1"

    Вопрос:

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

    Ответ:

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

    ShellExecute'ом по событию даблклика.

    Вопрос:

    Нужно чтобы моя программа дописывала себя в конец .exe-фаила и при запуске обе программы работали нормально. Если можно немного кода.

    Ответ:

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

    Если ты допишеш свою прогу в конец какойнибудь другой, то ни каких касяков в работе той проги не будет, так что можеш смело лепить. но если ты хочеш, чтобы запускалась и твоя и та проги одновременн или запускалась твоя а потом передавала управление той, то пора заняться асемблером. Увы на ВБ этого не зделать.

    Ответ:

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

    Это вирус. ИМХО ASM'ой тут надо....

    И не просто так, а с глубоким пониманием структуры PE-файла. Найди доки по вирмэйкерству и изучай себе на здоровье...

    Ответ:

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

    Не полуцыцца :-) Дозапись надо делать до запуска программы, да и права на это система - если это настоящая, а не "неигрушечная" - будет обязана блюсти!
    А так ваабчето вирусы писуцца по-другому и в другом месте ;-\

    Вопрос:

    На форме есть TextBox control (имя: txtText) и CommandButton (имя: cmbCreate)
    При нажатии на кнопку надо создать еще 2 таких TextBoxа и поместить их рядом с существующим.
    Использую VB6.

    Ответ:

    Автор ответа: LUNET Co.

    В данном случае лучше в режиме визуального проектирования расположить два TextBox'а в том месте формы, где это тебе необходимо и установить двум добавленным TextBox'ам свойство Visible=False, а при нажатии на кнопку Create у этих двух TextBox'ов будет меняться значение False (свойства Visible) на True. Так гораздо проще, тем более, если тебе заранее известно сколько элементов TextBox ты хочешь использовать (в данном случае их два).

    Ответ:

    Автор ответа: Vladimir [PRC]

    Для первого txtText установи Index=0 и вперед:

    Private Sub cmdCreate_Click()
    Load txtText(1)
    txtText(1).Left = txtText(0).Left + txtText(0).Height
    txtText(1).Visible = True
    Load txtText(2)
    txtText(2).Left = txtText(1).Left + txtText(1).Height
    txtText(2).Visible = True
    End Sub

    При этом содержимое и свойства всех новых окон будет соответствовать первому окну.
    Когда окна будут не нужны можно их выгрузить:

    Unload txtText(2)
    Unload txtText(1)

    Ответ:

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

    Зачем так сложно ?
    Ставишь на форму три TextBoxа, двум назначаешь Visible=False
    При нажатии на кнопку - Visible=True

    Ответ:

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

    Тебе всего навсего надо для того первого txtText задать индекс и тогда твои действия будут примерно следующими:

    load txtText(1)
    txtText(1).visible = true
    load txtText(2)
    txtText(2).visible = true

    Ответ:

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

    Можно заранее создать 3 TextBox'а, двум из которых нужно задать свойство Visible=False.
    В код кнопки нужно вписать:

    Private Sub CommandButton1_Click
    TextBox2.Visible = True
    TextBox3.Visible = True
    End Sub

    Ответ:

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

    У txtText делаеш Index =0

    код добавления

    Load PicArc(txtText .UBound + 1)
    txtText (txtText .UBound).Visible = True
    txtText (txtText .UBound).left = ...
    txtText (txtText .UBound).top = ...

    Ответ:

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

    Сделай массив текстбоксов и в нужном месте грузи новые. И задавай им нужные координаты.

    Юзай, к примеру, вот этот код. Э, только так вот сразу не юзай..
    Я в нем над обработчиком ошибок вообще не работал. Короче, ему надо нулевой элемент и индекс нового элемента для работы.

    Sub TLoad(TB As Object, Index As Integer)

    Load TB(Index)
    With TB(Index)
    .Top = TB(0).Top
    .Left = TB(0).Left + Index * (TB(0).Width + 20)
    .Visible = True
    End With

    End Sub

    Private Sub Form_Load()
    TLoad Text1, 1
    End Sub

    А если хочешь - используй инструкцию CreateObject. Подробно о ней можешь узнать где-то в дебрях vbstreets...

    Вопрос:

    Как узнать ip-адрес интернет-сервера?

    Ответ:

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

    Вот что говорят по этому поводу ребята из KPD Team:

    'In a form
    Private Sub Form_Load()
    'KPD-Team 2001
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    '67119558 is the long version of the IP address 198.41.0.4
    '198.41.0.4 is the primary root server
    MsgBox "Root server hostname: " + GetHostName(67119558)
    End Sub
    'In a module
    Public Const MIN_SOCKETS_REQD As Long = 1
    Public Const WS_VERSION_REQD As Long = &H101
    Public Const WS_VERSION_MAJOR As Long = WS_VERSION_REQD \ &H100 And &HFF&
    Public Const WS_VERSION_MINOR As Long = WS_VERSION_REQD And &HFF&
    Public Const SOCKET_ERROR As Long = -1
    Public Const WSADESCRIPTION_LEN = 257
    Public Const WSASYS_STATUS_LEN = 129
    Public Const MAX_WSADescription = 256
    Public Const MAX_WSASYSStatus = 128
    Public Type WSAData
    wVersion As Integer
    wHighVersion As Integer
    szDescription(0 To MAX_WSADescription) As Byte
    szSystemStatus(0 To MAX_WSASYSStatus) As Byte
    wMaxSockets As Integer
    wMaxUDPDG As Integer
    dwVendorInfo As Long
    End Type
    Declare Function WSACleanup Lib "WSOCK32" () As Long
    Declare Function WSAStartup Lib "WSOCK32" (ByVal wVersionRequired As Long, lpWSADATA As WSAData) As Long
    Declare Function gethostbyaddr Lib "wsock32.dll" (haddr As Long, ByVal hnlen As Long, ByVal addrtype As Long) As Long
    Declare Function lstrlenA Lib "kernel32" (ByVal Ptr As Any) As Long
    Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)
    Public Function GetHostName(ByVal Address As Long) As String
    Dim lLength As Long, lRet As Long
    If Not SocketsInitialize() Then Exit Function
    lRet = gethostbyaddr(Address, 4, AF_INET)
    If lRet <> 0 Then
    CopyMemory lRet, ByVal lRet, 4
    lLength = lstrlenA(lRet)
    If lLength > 0 Then
    GetHostName = Space$(lLength)
    CopyMemory ByVal GetHostName, ByVal lRet, lLength
    End If
    Else
    GetHostName = ""
    End If
    SocketsCleanup
    End Function
    Public Function HiByte(ByVal wParam As Integer)
    HiByte = wParam \ &H100 And &HFF&
    End Function
    Public Function LoByte(ByVal wParam As Integer)
    LoByte = wParam And &HFF&
    End Function
    Public Sub SocketsCleanup()
    If WSACleanup() <> ERROR_SUCCESS Then
    MsgBox "Socket error occurred in Cleanup."
    End If
    End Sub
    Public Function SocketsInitialize() As Boolean
    Dim WSAD As WSAData
    Dim sLoByte As String
    Dim sHiByte As String
    If WSAStartup(WS_VERSION_REQD, WSAD) <> ERROR_SUCCESS Then
    MsgBox "The 32-bit Windows Socket is not responding."
    SocketsInitialize = False
    Exit Function
    End If
    If WSAD.wMaxSockets < MIN_SOCKETS_REQD Then
    MsgBox "This application requires a minimum of " & CStr(MIN_SOCKETS_REQD) & " supported sockets."
    SocketsInitialize = False
    Exit Function
    End If
    If LoByte(WSAD.wVersion) < WS_VERSION_MAJOR Or (LoByte(WSAD.wVersion) = WS_VERSION_MAJOR And HiByte(WSAD.wVersion) < WS_VERSION_MINOR) Then
    sHiByte = CStr(HiByte(WSAD.wVersion))
    sLoByte = CStr(LoByte(WSAD.wVersion))
    MsgBox "Sockets version " & sLoByte & "." & sHiByte & " is not supported by 32-bit Windows Sockets."
    SocketsInitialize = False
    Exit Function
    End If
    'must be OK, so lets do it
    SocketsInitialize = True
    End Function

    Вопрос:

    Подскажите плиз, какие мне нужны функции, чтобы написать сканер клавы. Если можно то с описанием, хотя не обязательно.

    Ответ:

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

    'Модуль
    Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

    'Программа
    If GetAsyncKeyState(VKey) Then
    msgboх "Кто то трогает ТАБ", vbinformation
    End If

    Программу помести в таймер, в API можно подстовлять числа 0..255 каждая для своей кнопки:
    ' KeyName(1) = "Left mouse"
    ' KeyName(2) = "Right mouse"
    ' KeyName(4) = "Midle mouse"
    ' KeyName(8) = "Backspace"
    ' KeyName(9) = "Tab"
    ' KeyName(13) = "Enter"
    ' KeyName(16) = "Shift"
    ' KeyName(17) = "Ctrl"
    ' KeyName(18) = "Alt"
    ' KeyName(19) = "Pause"
    ' KeyName(20) = "Caps Lock"
    ' KeyName(27) = "Esc"
    ' KeyName(32) = "Space"
    ' KeyName(33) = "Page Up"
    ' KeyName(34) = "Page Down"
    ' KeyName(35) = "End"
    ' KeyName(36) = "Home"
    ' KeyName(37) = "Left"
    ' KeyName(38) = "Up"
    ' KeyName(39) = "Right"
    ' KeyName(40) = "Down"
    ' KeyName(44) = "Print Scrin"
    ' KeyName(45) = "Insert"
    ' KeyName(46) = "Delete"
    ' KeyName(48) = "0"
    ' KeyName(49) = "1"
    ' KeyName(50) = "2"
    ' KeyName(51) = "3"
    ' KeyName(52) = "4"
    ' KeyName(53) = "5"
    ' KeyName(54) = "6"
    ' KeyName(55) = "7"
    ' KeyName(56) = "8"
    ' KeyName(57) = "9"
    ' KeyName(65) = "A"
    ' KeyName(66) = "B"
    ' KeyName(67) = "C"
    ' KeyName(68) = "D"
    ' KeyName(69) = "E"
    ' KeyName(70) = "F"
    ' KeyName(71) = "G"
    ' KeyName(72) = "H"
    ' KeyName(73) = "I"
    ' KeyName(74) = "J"
    ' KeyName(75) = "K"
    ' KeyName(76) = "L"
    ' KeyName(77) = "M"
    ' KeyName(78) = "N"
    ' KeyName(79) = "O"
    ' KeyName(80) = "P"
    ' KeyName(81) = "Q"
    ' KeyName(82) = "R"
    ' KeyName(83) = "S"
    ' KeyName(84) = "T"
    ' KeyName(85) = "U"
    ' KeyName(86) = "V"
    ' KeyName(87) = "W"
    ' KeyName(88) = "X"
    ' KeyName(89) = "Y"
    ' KeyName(90) = "Z"
    ' KeyName(91) = "Windows" 'Left
    ' KeyName(92) = "Windows" 'Right
    ' KeyName(93) = "Menu"
    ' KeyName(95) = "Sleep"
    ' KeyName(96) = "Num 0"
    ' KeyName(97) = "Num 1"
    ' KeyName(98) = "Num 2"
    ' KeyName(99) = "Num 3"
    ' KeyName(100) = "Num 4"
    ' KeyName(101) = "Num 5"
    ' KeyName(102) = "Num 6"
    ' KeyName(103) = "Num 7"
    ' KeyName(104) = "Num 8"
    ' KeyName(105) = "Num 9"
    ' KeyName(106) = "Num *"
    ' KeyName(107) = "Num +"
    ' KeyName(109) = "Num -"
    ' KeyName(110) = "Num ."
    ' KeyName(111) = "Num /"
    ' KeyName(112) = "F1"
    ' KeyName(113) = "F2"
    ' KeyName(114) = "F3"
    ' KeyName(115) = "F4"
    ' KeyName(116) = "F5"
    ' KeyName(117) = "F6"
    ' KeyName(118) = "F7"
    ' KeyName(119) = "F8"
    ' KeyName(120) = "F9"
    ' KeyName(121) = "F10"
    ' KeyName(122) = "F11"
    ' KeyName(123) = "F12"
    ' KeyName(144) = "Num Lock"
    ' KeyName(145) = "Scroll Lock"
    ' KeyName(160) = "Null" 'Left Shift
    ' KeyName(161) = "Null" 'Right Shift
    ' KeyName(162) = "Null" 'Left Ctrl
    ' KeyName(163) = "Null" 'Right Ctrl
    ' KeyName(164) = "Null" 'Left Alt
    ' KeyName(165) = "Null" 'Right Alt
    ' KeyName(166) = "Page Previous"
    ' KeyName(167) = "Page Next"
    ' KeyName(169) = "Stop"
    ' KeyName(170) = "Find"
    ' KeyName(171) = "Favorite"
    ' KeyName(172) = "Brauser"
    ' KeyName(180) = "E-Mail"
    ' KeyName(186) = ";"
    ' KeyName(188) = ","
    ' KeyName(190) = "."
    ' KeyName(191) = "/"
    ' KeyName(192) = "`"
    ' KeyName(219) = "["
    ' KeyName(220) = "\"
    ' KeyName(221) = "]"
    ' KeyName(222) = "'"

    Ответ:

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

    GetAsyncKeyState. (Api Guide - скачай с AllApi.Net Хотя я эту фишку юзал еще до того, как им обзавелся)

    'In a module
    Public Const DT_CENTER = &H1
    Public Const DT_WORDBREAK = &H10
    Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
    End Type
    Declare Function DrawTextEx Lib "user32" Alias "DrawTextExA" (ByVal hDC As Long, ByVal lpsz As String, ByVal n As Long, lpRect As RECT, ByVal un As Long, ByVal lpDrawTextParams As Any) As Long
    Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
    Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
    Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    Declare Function SetRect Lib "user32" (lpRect As RECT, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
    Global Cnt As Long, sSave As String, sOld As String, Ret As String
    Dim Tel As Long
    Function GetPressedKey() As String
    For Cnt = 32 To 128
    'Get the keystate of a specified key
    If GetAsyncKeyState(Cnt) <> 0 Then
    GetPressedKey = Chr$(Cnt)
    Exit For
    End If
    Next Cnt
    End Function
    Sub TimerProc(ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)
    Ret = GetPressedKey
    If Ret <> sOld Then
    sOld = Ret
    sSave = sSave + sOld
    End If
    End Sub

    'In a form
    Private Sub Form_Load()
    'KPD-Team 1999
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    Me.Caption = "Key Spy"
    'Create an API-timer
    SetTimer Me.hwnd, 0, 1, AddressOf TimerProc
    End Sub
    Private Sub Form_Paint()
    Dim R As RECT
    Const mStr = "Start this project, go to another application, type something, switch back to this application and unload the form. If you unload the form, a messagebox with all the typed keys will be shown."
    'Clear the form
    Me.Cls
    'API uses pixels
    Me.ScaleMode = vbPixels
    'Set the rectangle's values
    SetRect R, 0, 0, Me.ScaleWidth, Me.ScaleHeight
    'Draw the text on the form
    DrawTextEx Me.hDC, mStr, Len(mStr), R, DT_WORDBREAK Or DT_CENTER, ByVal 0&
    End Sub
    Private Sub Form_Resize()
    Form_Paint
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    'Kill our API-timer
    KillTimer Me.hwnd, 0
    'Show all the typed keys
    MsgBox sSave
    End Sub

    Вопрос:

    Подскажите, если кто знает, как разбить файл на часть, а потом собрать. Если это в VB вообще возможно.

    Ответ:

    Автор ответа: LUNET Co.

    Конечно, это возможно. Пример можно скачать с VBPLANET. Качай с этого URL: http://www.vbplanet.km.ru/vbp/sources/deliameter.zip.

    Ответ:

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

    Of course, возможно....

    Бинарный доступ к файлам + хороший crc файл для сборки. И немного мозгов :)) Самую малость.

    Open КАКОЙТОФАЙЛ For Binary as #1
    и поехали мучать функции Input и Put.

    Первую - чтобы бинарно читать подопытный файл.
    Вторую - чтобы клепать куски этого файла.

    А в crc файл пишем инфу для сборки. Сколько кусков, исходное имя файла, даты и атрибуты файла и т.п.

    Обычный метод работы с файлами не подойдет. Хочешь узнать почему? Открой любой ЕХЕ Блокнотом и тут же сохрани. Все, можешь стирать этот несчастный ЕХЕ. Он больше никогда не заработает :))

    Вопрос:

    Создал ActiveX Control в котором поместил в массив Image 9 рисунков. При выполнении метода Next компонента отображение рисунков меняется.
    Помещаю свой компонент на форму. Выполняю периодически метод Next. И через случайное количество вызова метода происходит как бы мерцание компонента.

    Как бы избавится от сих бликов?

    Ответ:

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

    Вот как только люди не извращаются....
    Прикрепи к проекту файл ресурса с этими картинками.

    Используй ОДИН PictureBox. Именно его, потому что заставить не мигать ImageBox ты не сможешь. И грузи в него поочередно рисунки из ресурса.

    Вопрос:

    Как можно подключить API функцию из DLL, находяшимся в папке с программой, в частности:
    Public Declare Sub SaveToJpg1 Lib "savtojpg.dll" (ByVal hgd As Long, ByVal FileName As String, ByVal Height As Long, ByVal Width As Long)

    Ответ:

    Автор ответа: Vladimir [PRC]

    Если объявление происходит в модуле формы, то объявляй как Private и главное указывай путь к dll. Например:

    Private Declare Sub SaveToJpg1 Lib App.path & "\savtojpg.dll" (ByVal hgd As Long, ByVal FileName As String, ByVal Height As Long, ByVal Width As Long)

    Но при разработке файл проекта и dll будут находиться в разных местах и поэтому необходимо указывать конкретный путь к dll:

    Private Declare Sub SaveToJpg1 Lib "c:\test\savtojpg.dll" (ByVal hgd As Long, ByVal FileName As String, ByVal Height As Long, ByVal Width As Long)

    Ответ:

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

    Public Declare Sub SaveToJpg1 Lib "путь\savtojpg.dll" (ByVal hgd As Long, ByVal FileName As String, ByVal Height As Long, ByVal Width As Long)

    Ответ:

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

    А ты прямо при запуске проги копируй енту DLL'ину в System32.

    Хочешь верь, хочешь нет - VB пытается установить связь с DLL в момент ПЕРВОГО вызова экспортируемой функции. Этот забавный факт я сам установил с полгода назад. Дык вот. Спокойно объявляешь. С чистой совестью. И VB на это плевать. Потом копируешь. А потом вызываешь.

    PS: А вот если это не простой dll (и не золотой), а ActiveX, то просто перед этим его зарегистрируй. (с активом не проверял, врать не буду)

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

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

    наверх

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


Выпуск 165.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

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

    Новый выпуск!
    Читайте!

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

    • Книги

    • Преобразование цветного рисунка в черно-белый
    • Тень от формы
    • Снять задачу
    • Обеспечение корректной выгрузки формы

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

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти здесь.

    наверх

    Преобразование цветного рисунка в черно-белый

    Вам понадобятся 2 PictureBox и CommandButton. Загрузите в первый PictureBox любую цветную картинку, запустите проект на выполнение, нажмите на кнопку.

    Private Declare Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As Long
    Private Declare Function EmptyClipboard Lib "user32" () As Long
    Private Declare Function CloseClipboard Lib "user32" () As Long
    Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
    Private Const CF_BITMAP = 2

    Private Declare Function CopyImage Lib "user32" (ByVal handle As Long, ByVal imageType As Long, ByVal newWidth As Long, ByVal newHeight As Long, ByVal lFlags As Long) As Long
    Private Const IMAGE_BITMAP = 0
    Private Const LR_COPYRETURNORG = &H4
    Private Const LR_MONOCHROME = &H1

    Private Sub Command1_Click()
    Dim hNew As Long
    hNew = CopyImage(Picture1.Picture, IMAGE_BITMAP, 0, 0, LR_COPYRETURNORG & LR_MONOCHROME)
    OpenClipboard Me.hwnd
    EmptyClipboard
    SetClipboardData CF_BITMAP, hNew
    CloseClipboard
    Picture2.Picture = Clipboard.GetData(vbCFBitmap)
    End Sub

    наверх

    Тень от формы

    Автор: Винокуров К.

    Этот код показывает, как нарисовать тень от формы.

    'КОД ФОРМЫ
    Option Explicit
    Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
    Private Declare Function GetDesktopWindow Lib "user32" () As Long
    Private Sub Form_Load()
    SetParent picShadow.hwnd, GetDesktopWindow
    SetProc hwnd
    End Sub

    'КОД МОДУЛЯ
    Option Explicit
    Private Declare Function CallWindowProcA Lib "user32" (ByVal lpPrevWndFunc As Long, ByVal lngHandle As Long, ByVal lngMsg As Long, ByVal lngFirstParam As Long, ByVal lngLastParam As Long) As Long
    Private Declare Function SetWindowLongA Lib "user32" (ByVal lngHandle As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC 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 dwRop As Long) As Long
    Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
    Private lngOldProc As Long
    Public Sub SetProc(ByVal lngHandle As Long)
    lngOldProc = SetWindowLongA(lngHandle, -4, AddressOf WinProc)
    End Sub
    Private Function WinProc(ByVal lngHandle As Long, ByVal lngMsg As Long, ByVal lngFirstParam As Long, ByVal lngLastParam As Long) As Long
    If lngMsg = &H3 Then
    frmMain.picShadow.Move frmMain.Left, frmMain.Top
    DoEvents
    BitBlt frmMain.picShadow.hDC, 0, 0, frmMain.picShadow.Width, frmMain.picShadow.Height, GetDC(0), frmMain.picShadow.Left / Screen.TwipsPerPixelX + 30, frmMain.picShadow.Top / Screen.TwipsPerPixelY + 30, vbSrcCopy
    frmMain.picShadow.Line (0, 0)-(frmMain.picShadow.ScaleWidth, frmMain.picShadow.ScaleHeight), vbGrayText, BF
    frmMain.picShadow.Move frmMain.Left + (30 * Screen.TwipsPerPixelX), frmMain.Top + (30 * Screen.TwipsPerPixelY), frmMain.Width, frmMain.Height
    End If
    WinProc = CallWindowProcA(lngOldProc, lngHandle, lngMsg, lngFirstParam, lngLastParam)
    End Function

    наверх

    Снять задачу

    Автор: vmv

    При работе, а чаще всего, при отладке програм связанных с открытием-закрытием приложений (например с XL) бывают ситуации, когда после активации приложения происходит сбой программы. Приложение остается в памяти и последующий старт программы загружает еще одно такое же приложение ... При старте программы необходимо проверить загружено ли приложение в память, и если - да, то предварительно снять задачу. Закрыть приложение (на примере с Excel) и снять задачу( как и любое другое ), оставшееся в памяти можно таким образом.

    ' помещаем в модуль

    Public Const PROCESS_TERMINATE = &H1
    Public Const WM_QUERYENDSESSION = &H11
    Public Const WM_ENDSESSION = &H16
    Public Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
    Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
    Public Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode 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 EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
    Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Public Const WM_CLOSE = &H10
    Dim strCaptions() As String ' Здесь будут лежать заголовки всех найденных окон
    Dim lngHandle() As Long ' А здесь все хэндлы этих окон
    Public Function CloseProg(strCaption As String) As Boolean
    Dim iCount As Integer
    Dim i As Integer
    Dim Pos As Integer
    Dim lngEnum As Long
    ReDim strCaptions(0)

    ReDim lngHandle(0)' Обнуляем массив от возможных прошлых результатов
    lngEnum = EnumWindows(AddressOf Callback1_EnumWindows, 0)' то же чистим

    For i = 0 To UBound(strCaptions) ' перебираем эти массивы
    Pos = InStr(1, strCaptions(i), strCaption, vbTextCompare) ' ищем строку - название окна
    If Pos > 0 Then
    SendMessage lngHandle(i), WM_CLOSE, 0, 0
    SendMessage lngHandle(i), WM_ENDSESSION, 0, 0
    SendMessage lngHandle(i), WM_QUERYENDSESSION, 0, 0
    ' будут закрыты все окна с таким названием окна
    iCount = iCount + 1
    End If
    Next
    End Function

    Public Function Callback1_EnumWindows(ByVal hwnd As Long, ByVal lpData As Long) As Long
    Dim cnt As Long
    Dim rttitle As String * 256
    cnt = GetWindowText(hwnd, rttitle, 255) ' ищем следующее окно
    If cnt > 0 Then ' нашли, тогда добавляем элемент в массивы
    ReDim Preserve lngHandle(UBound(strCaptions) + 1)
    ReDim Preserve strCaptions(UBound(strCaptions) + 1)
    strCaptions(UBound(strCaptions)) = Left$(rttitle, cnt)
    lngHandle(UBound(lngHandle)) = hwnd
    End If
    Callback1_EnumWindows = 1 ' продолжаем перебирать
    End Function
    '-------

    ' в Private Sub Form_Load() помещаем
    CloseProg "Microsoft Excel - ****" ' где **** - имя приложения
    ' затем
    XL.Workbooks.Open App.Path & "\****.xls" ' открываем приложение

    Примечание: имя приложения - "Microsoft Excel - ****" можно уточнить (при XL.Visible = True) через Ctrl-Alt-Del

    наверх

    Обеспечение корректной выгрузки формы

    Форма позволяет поместить весь код для проверки выгрузки в одном месте – неважно, происходит ли это в результате выполнения метода Unload, щелчка по значку Х, выбора пункта Close из системного меню или даже нажатия Alt+F4. Событие, позволяющее перехватить любую попытку закрыть форму, называется QueryUnload.
    Событие QueryUnload вызывается при любой попытке выгрузить форму – из программы или как-нибудь иначе. Это событие передает обработчику информацию о том, по какой причине закрывается форма. Если вам интересно знать, каким образом была инициирована выгрузка формы, вы можете проверить значение параметра UnloadMode.

    Значение UnloadMode | Причина закрытия формы
vbFormControlMenu | Пользователь выбрал команду Close из системного меню окна формы
vbFormCode | В программе вызван метод Unload
vbAppWindows | Идет процесс завершения работы Windows
vbAppTaskManager | Менеджер задач закрывает приложение
vbFormMDIForm | Форма, вложенная в многодокументную (MDI) форму, закрывается, поскольку закрывается родительская форма

    Если вы хотите каждый раз узнавать, по какой причине закрывается форма, можно поместить в обработчик события QueryUnload код, проверяющий все возможные значения параметра UnloadMode. Взгляните на следующий пример.

    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) Select Case UnloadMode Case vbFormControlMenu MsgBox "Выгрузка формы из системного меню или кнопкой Х." Case vbFormCode MsgBox "Выгрузка из кода." Case vbAppWindows MsgBox "Windows заканчивает свою работу." Case vbAppTaskManager MsgBox "Выгрузка из менеджера задач." Case vbFormMDIForm MsgBox "Выгружается MDI форма." End Select End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

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

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

    Вопросы:

    Автор вопроса: Владимир

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

    1.В связи с тем, что в TextBox нет свойства BackStyle=Transparent, как можно сделать вертикальный скроллинг текста в Label?

    2. При частом обращении к базе данных посредством VB возникает предупреждение "Run-time error '7' Out of memory" и программа закрывается. Нужно снова её открыть и продолжить работу.Как избавиться от этого?

    Автор вопроса: Денис

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

    Подскажите если кто знает как отправить на принтер содержимое PictureBox?

    Автор вопроса: Maxim

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

    Где достать описание функций на русском яяыке!!!!!

    Автор вопроса: SaRatovV

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

    Подскажите пожалуйста, как пользоваться портами через вырьдовский WSOCK32.DLL.

    Автор вопроса: ]...C...B...K...[C...R...a...S...H

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

    SOS
    Как можно проверить создался обьект Excel или нет

    Dim ss As New Excel.Application
    Dim xx As Application
    Dim ZZ As Workbook
    Set xx = ss.Application
    Set ZZ = ss.Workbooks.Open(App.Path + "\Отчет.xls")

    Автор вопроса: Илья

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

    Известно, как картинку, которая находится в Picture1.Picture сохранить через диалоговое окно. А как сделать, чтобы в Листбоксе диалогового окна можно было бы выбирать несколько форматов сохранения (BMP,JPG,GIF)?

    Ответы:

    Вопрос:

    Подскажите, пожалуйста, как узнать все процессы в системе и отключить любой ия них.

    Ответ:

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

    Данный пример демонстрирует вырубание процесса и их перечисление, но только в среде Вин 9х.
    Если надо пример на ВБ - напиши - crazydima@mail.ru.

    '\\ ToolHelp
    Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long

    Private Declare Function Process32First Lib "kernel32" (ByVal hSnapShot As Long, lppe As PROCESSENTRY32) As Long
    Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapShot As Long, lppe As PROCESSENTRY32) As Long

    Private Declare Function Thread32First Lib "kernel32" (ByVal hSnapShot As Long, lppe As THREADENTRY32) As Long
    Private Declare Function Thread32Next Lib "kernel32" (ByVal hSnapShot As Long, lppe As THREADENTRY32) As Long

    Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
    '***************************************************
    Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
    Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
    Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long

    Private Declare Function GetPriorityClass Lib "kernel32" (ByVal hProcess As Long) As Long
    Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long

    Public Const INFINITE = &HFFFF ' Infinite timeout
    Public Const PROCESS_ALL_ACCESS As Long = &H1F0FFF

    Private Const MAX_PATH = 260
    Private Const MAX_MODULE_NAME32 = 255

    Private Const PROCESS_TERMINATE = &H1
    Private Const PROCESS_QUERY_INFORMATION = &H400

    'CONST FOR PROCESS_FUNCTION
    Private Const TH32CS_NAPHEAPLIST = &H1
    Private Const TH32CS_SHAPPROCESS = &H2
    Private Const TH32CS_SHAPTHREAD = &H4
    Private Const TH32CS_SHAPMODULE = &H2
    Private Const TH32CS_SHAPALL = (TH32CS_SHAPMODULE Or TH32CS_SHAPPROCESS Or TH32CS_SHAPTHREAD Or TH32CS_NAPHEAPLIST)
    Private Const TH32CS_INHERIT = &H80000000
    'CONST FOR THREAD_FUNCTION
    Private Const MAXLONG = &H7FFFFFFF

    Private Const IDLE_PRIORITY_CLASS = &H40
    Private Const NORMAL_PRIORITY_CLASS = &H20
    Private Const REALTIME_PRIORITY_CLASS = &H100
    Private Const HIGH_PRIORITY_CLASS = &H80

    Private Type PROCESSENTRY32
    dwSize As Long
    cntUsage As Long
    th32ProcessID As Long
    th32DefaultHeapID As Long
    th32ModuleID As Long
    cntThread As Long
    th32ParentProcessID As Long
    pcPriClassBase As Long
    dwFlags As Long
    szExeFile As String * MAX_PATH
    End Type

    Private Type THREADENTRY32
    dwSize As Long
    cntUsage As Long
    th32ThreadID As Long
    th32OwnerProcessID As Long
    tpBasePri As Long
    tpDeltaPri As Long
    dwFlags As Long
    End Type
    'объявление UDT-структуры, относящейся к процессам
    Public Type SnapShotInfoProcess
    hProcessID As Long
    hHandleProcess As Long
    sProcessName As String
    sPriority As Long
    End Type
    'объявление UDT-структуры, относящейся к потокам
    Public Type SnapShotInfoThread
    hThreadID As Long
    hOwnerProcess As Long
    End Type
    Sub GetProcesses(sFQEXENames() As SnapShotInfoProcess)
    '**************************************************
    '** Функция возвращает список процессов **
    '** Вход - пустой массив, пользовательского типа **
    '** Выход - массив процессов **
    '** Автор - Филюшин Дмитрий **
    '**************************************************

    Dim hSnapShot As Long
    Dim lret As Long
    Dim cProcesses As Long
    Dim fso As New FileSystemObject
    Dim sEXEName() As String
    Dim procEntry As PROCESSENTRY32

    Dim sfile As String
    sfile = String(255, 0)
    procEntry.dwSize = LenB(procEntry)
    'вспомогательная функция-утилита
    hSnapShot = CreateToolhelp32Snapshot(TH32CS_SHAPALL, 0&)
    'обязательное условие применение функции
    If hSnapShot = -1 Then
    MsgBox "Error number - " & Hex(Err.Number) & vbCrLf & _
    "Error Description - " & Err.Description
    Exit Sub
    End If
    'переопределить массив
    ReDim sFQEXENames(1 To 10)
    sModuleName = String(255, 0)
    cProcesses = 0
    'начать проход по процессам
    'получить первый процесс

    lret = Process32First(hSnapShot, procEntry)
    If lret > 0 Then
    cProcesses = cProcesses + 1
    sFQEXENames(cProcesses).hProcessID = procEntry.th32ProcessID
    sFQEXENames(cProcesses).hHandleProcess = GetHandle(procEntry.th32ProcessID)
    sFQEXENames(cProcesses).sProcessName = CN(Trim(procEntry.szExeFile))
    sFQEXENames(cProcesses).sPriority = GetPriorityClass(sFQEXENames(cProcesses).hHandleProcess)
    End If
    NextRun:
    'в цикле получить следующие процессы
    Do
    lret = Process32Next(hSnapShot, procEntry)
    If lret = 0 Then Exit Do
    cProcesses = cProcesses + 1
    If UBound(sFQEXENames) < cProcesses Then
    ReDim Preserve sFQEXENames(1 To cProcesses + 2)
    End If
    sFQEXENames(cProcesses).hProcessID = procEntry.th32ProcessID
    sFQEXENames(cProcesses).hHandleProcess = GetHandle(procEntry.th32ProcessID)
    sFQEXENames(cProcesses).sProcessName = CN(Trim(procEntry.szExeFile))
    sFQEXENames(cProcesses).sPriority = GetPriorityClass(sFQEXENames(cProcesses).hHandleProcess)

    NextDo:
    Loop

    CloseHandle hSnapShot

    End Sub

    Function GetHandle(procID As Long) As Long
    '**************************************************
    '** Функция возвращает Handle процесса **
    '** Вход - ID процесса **
    '** Выход - Handle процесса **
    '** Автор - Филюшин Дмитрий **
    '**************************************************
    GetHandle = OpenProcess(PROCESS_QUERY_INFORMATION, 0&, procID)
    Call CloseHandle(procID)
    End Function

    Sub GetThreads(sFQEXENames() As SnapShotInfoThread)
    '**************************************************
    '** Функция возвращает потоки **
    '** Вход - ID процесса **
    '** Выход - массив потоков **
    '** Автор - Филюшин Дмитрий **
    '**************************************************

    Dim hSnapShot As Long
    Dim lret As Long
    Dim cProcesses As Long
    Dim fso As New FileSystemObject
    Dim sModuleName As String
    Dim sEXEName() As String
    Dim uThreadEntry As THREADENTRY32
    Dim hProc As Long
    uThreadEntry.dwSize = LenB(uThreadEntry)
    'вспомогательная функция-утилита
    hSnapShot = CreateToolhelp32Snapshot(TH32CS_SHAPTHREAD, 0&)
    'обязательное условие применение функции
    If hSnapShot = -1 Then
    MsgBox "Error number - " & Hex(Err.Number) & vbCrLf & _
    "Error Description - " & Err.Description
    Exit Sub
    End If
    'переопределить массив
    ReDim sFQEXENames(1 To 10)
    sModuleName = String(255, 0)
    cProcesses = 0
    'начать проход по процессам
    'получить первый процесс

    lret = Thread32First(hSnapShot, uThreadEntry)
    If lret > 0 Then
    cProcesses = cProcesses + 1
    sFQEXENames(cProcesses).hThreadID = uThreadEntry.th32ThreadID
    sFQEXENames(cProcesses).hOwnerProcess = uThreadEntry.th32OwnerProcessID
    End If
    NextRun:
    'в цикле получить следующие процессы
    Do
    lret = Thread32Next(hSnapShot, uThreadEntry)
    If lret = 0 Then Exit Do
    cProcesses = cProcesses + 1
    If UBound(sFQEXENames) < cProcesses Then
    ReDim Preserve sFQEXENames(1 To cProcesses + 2)
    End If
    'If LCase(fso.GetExtensionName(procEntry.szExeFile)) <> "exe" Then cProcesses = cProcesses - 1: GoTo NextDo
    sFQEXENames(cProcesses).hThreadID = uThreadEntry.th32ThreadID
    sFQEXENames(cProcesses).hOwnerProcess = uThreadEntry.th32OwnerProcessID
    NextDo:
    Loop
    CloseHandle hSnapShot
    End Sub
    Function Priority(iPriorityConst As Long) As String
    '**************************************************
    '** Функция возвращает приоритет **
    '** Вход - константа приоритета **
    '** Выход - строковое выражение **
    '** Автор - Филюшин Дмитрий **
    '**************************************************

    Select Case iPriorityConst
    Case NORMAL_PRIORITY_CLASS
    Priority = "Normal priority process"
    Case IDLE_PRIORITY_CLASS
    Priority = "Idle Process"
    Case HIGH_PRIORITY_CLASS
    Priority = "High priority process"
    Case REALTIME_PRIORITY_CLASS
    Priority = "Realtime priority process"
    End Select
    End Function
    Function DestroyProcess(hProcess As Long) As Boolean
    '**************************************************
    '** Функция уничтожает процесс **
    '** Вход - handle процесса **
    '** Выход - в случае успешного завршения - True,**
    '** в противном случае - False **
    '** Автор - Филюшин Дмитрий **
    '** Дата - 20.11.2002 **
    '**************************************************
    Dim lngRetVal As Long
    Dim iRetVal As Long
    iRetVal = GetExitCodeProcess(hProcess, lngRetVal)
    iRetVal = TerminateProcess(hProcess, lngRetVal)
    If iRetVal = 0 Then
    MsgBox "Неизвестная ошибка,невозможно завершить процесс!", vbExclamation
    DestroyProcess = False
    Exit Function
    End If

    End Function
    'Запускает приложение и ждет его завершения
    Public Function ShellWait(ByRef sPathName, ByVal iWindowStyle As VbAppWinStyle) As Boolean
    Dim vProg As Variant, iProc As Long, iRet As Long
    On Error GoTo errLabel
    vProg = Shell(sPathName, iWindowStyle)
    iProc = OpenProcess(PROCESS_ALL_ACCESS, False, vProg)
    If iProc <> 0 Then
    iRet = WaitForSingleObject(iProc, INFINITE)
    CloseHandle iProc
    ShellWait = True
    Else
    ShellWait = False
    End If

    Exit Function
    errLabel:
    If Err.Number = 53 Then ' file not found
    MsgBox "Файл " & sPathName & " не найден! Операция прервана, проверьте правильность указанного путь и повторите операцию.", vbCritical + vbOKOnly + vbDefaultButton1
    ShellWait = False
    End If
    End Function

    Вопрос:

    В МОДУЛЕ ПИШУ:

    Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
    Public AsciiZnak(255) As Integer

    Function KeyDruk() As String

    For i = 1 To 255 ' Prisvoenie
    If Not AsciiZnak(i) = GetKeyState(i) Then
    KeyDruk = Chr(i)
    End If
    AsciiZnak(i) = GetKeyState(i)
    Next i

    End Function

    В ПРОГРАММЕ ПИШУ:

    Private Sub Timer1_Timer()
    Dim a As String
    a = KeyDruk()
    Text1.Text = Text1.Text + a
    End Sub

    ВОПРОС:
    Почему при выполнении таймера он выдаёт один символ два раза? По идеи в модуле я написал всю проверку насчёт косяка.
    Менять интервал времени таймера не помогает, а если сделать уж очень большой интервал, то вообще функция не успевает следить за нажатием кнопок.
    Что делать?

    Ответ:

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

    Так, че-то я не понял, зачем надо было такую структуру программы делать..? Кейлоггер, что ли? Юзай не GetKeyState, а GetAsynkKeyState. Если я чего-то не так понял или нужен исходник кейлоггера - пиши на e-mail. (а вообще-то я уже вроде кому-то давал исходник кейлоггера в предыдущем выпуске)

    Вопрос:

    Подскажите, как перевернуть содержимое ячейки в Excele на 180 градусов ("вверх ногами").
    Требуется для формы Госкомстата.
    Может быть воспользоваться перевернутым шрифтом, тогда подскажите, где его взять?

    Ответ:

    Автор ответа: Владимир Кирко

    Выделяешь нужную для разворота ячейку с текстом (или без оного), далее Сервис->Макрос->начать запись->(щелчок правой кнопкой мыша по ячейке)-> Формат ячеек->ориентация текста:90 градусов->OK и остановить запись макроса.
    Далее Alt-F11 и в редакторе VB в модулях имеем нечто вроде:

    With Selection
    .HorizontalAlignment = xlGeneral
    .VerticalAlignment = xlBottom
    .WrapText = False
    .Orientation = 90
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder = xlContext
    .MergeCells = False
    End With

    (сделать в десять раз быстрее, чем написать).
    Единственная содержательная строчка здесь для нас это Selection.Orientation = 90. Можно её использовать непосредственно для написания макроса (т.е. что-нибудь вставляем в выделенную ячейку и тут же Selection.Orientation = 90 её). А можно залезть в help и узнаать массу интересных вещей о том, что оказывается .Orientation может быть у Range-объекта, TextFrame-объекта, ... Там же есть ещё какие-то примеры.

    Ответ:

    Автор ответа: Иван

    текст "вверх ногами"?
    Думаю, что такое можно сделать только с помощью WordArd.
    Пример (для off2000):

    ActiveSheet.Shapes.AddTextEffect _
    (msoTextEffect1, "Перевёрнутая надпись", "Arial", _
    36#, msoFalse, msoFalse, 96#, 138.75).Select
    Selection.ShapeRange.Rotation = 180# '!!!!!!!!!!!!!!!!Вот оно
    Selection.ShapeRange.Height = 41.25 'это уже по вкусу и обстоятельствам
    Selection.ShapeRange.Width = 240.75 '

    Шрифт, размер, позицию - уже совсем нетрудно.

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

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

    наверх

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


Выпуск 166.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

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

    Читайте!

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

    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Один момент из жизни форума: Сохранение картинок

    • Доска объявлений

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

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

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

    Дата: 01.06.2003 13:33 | Раздел: Статьи по VB | Автор: Гриненко Виталий

    VSN умер, да здравствует VSN (и так каждые пол года) - За последний месяц произошли очень важные события связанные с VSN. О этих событиях должны знать все кто изучает сей предмет, а таких немало. В неведении конечно можно быть и счастливым, а вот программистом – никогда. И потому я решил таки черкнуть несколько строк. За ближайшие пару часов статья получится вряд ли. Поэтому давайте назовем мой новый опус скромнее: краткое информационное сообщение.

    Дата: 30.05.2003 11:02 | Раздел: Примеры кода | Автор: Кузнецов А. В.

    BruteForce - Пример, демонстрирующий перебор паролей средствами VB.

    Дата: 29.05.2003 11:00 | Раздел: Примеры кода | Автор: Роман

    Arab To Rim - Пример конвертирования арабских чисел в римские.

    Дата: 28.05.2003 11:00 | Раздел: Статьи по VB | Автор: Билялов Линар

    Написание деструктивного кода на VB - Для чего люди пишут вирусы: для баловства, другие очень сильно обижены на мир, а третьи для того чтобы доказать что они умеют кодить. Мы отнесём себя к третьей группе и приступим к работе.

    Дата: 27.05.2003 10:43 | Раздел: Примеры кода | Автор: Юмашин Алексей

    HTML To Excel - Конвертер из формата HTML в формат MS Excel средствами MS ADODB. Требует библиотеки MS ADO 2.1, MSHFlexGrid, Jet.OLEDB.4.0 (последнее - для поддержки IISAM-драйвера "HTML Import"). Особенности IISAM-драйвера "HTML Import": не всегда корректно обрабатывает вложенные таблицы (т.е. вложенные тэги ), довольно медленно работает (если сравнивать, например, с импортом из CSV-формата). Проект применим для несложных и немассивных HTML-файлов. Написан по просьбе приятеля, которому зарубежный партнёр упорно присылает накладные и прайс-листы в HTML-формате.

    Дата: 26.05.2003 16:30 | Раздел: Примеры кода | Автор: Эминов Эмиль

    ClipBoard - Пример создания буфера обмена. Возможность сохранения текстовых данных буфера.

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

    09:49 / 2 июн. Как отлаживать код с Command? | Хитов: 7 | Ответов: 0
    00:19 / 2 июн. Полиглотам. | Хитов: 20 | Ответов: 0
    23:22 / 1 июн. Вставка в TextBox | Хитов: 32 | Ответов: 5
    23:07 / 1 июн. массивы и контролы | Хитов: 16 | Ответов: 2
    16:29 / 1 июн. Винсоки поганые…. | Хитов: 24 | Ответов: 1
    16:10 / 1 июн. Как сделать невыгружаемую программу? | Хитов: 19 | Ответов: 1
    16:07 / 1 июн. Как нужно изменить этот код? | Хитов: 28 | Ответов: 1
    14:23 / 1 июн. Подчиненная форма в VB | Хитов: 34 | Ответов: 4
    13:45 / 1 июн. Help with WinSock!!! | Хитов: 13 | Ответов: 0
    13:12 / 1 июн. imagelist & ExtractIcon | Хитов: 7 | Ответов: 0
    12:22 / 1 июн. Проблема с окнами | Хитов: 20 | Ответов: 0
    11:59 / 1 июн. Как отослать почту не юзая smtp.___.ru? | Хитов: 16 | Ответов: 1
    11:40 / 1 июн. Зарезервированные слова? | Хитов: 56 | Ответов: 7
    10:09 / 1 июн. как программно "нажать кнопку"? | Хитов: 36 | Ответов: 4
    09:15 / 1 июн. Новое сообщение без темы | Хитов: 11 | Ответов: 0
    03:04 / 1 июн. Как "TAB" заблокировать? | Хитов: 17 | Ответов: 3
    23:32 / 31 май. Mailslots на VB | Хитов: 13 | Ответов: 1
    19:26 / 31 май. HELP!!! | Хитов: 31 | Ответов: 2
    18:17 / 31 май. Winsock - такого вопроса точно не было | Хитов: 52 | Ответов: 9
    17:43 / 31 май. MenuBar | Хитов: 26 | Ответов: 2

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

    Снять задачу (22)
    Тень от формы (38)
    Лэйбл с тенью (79)

    Новости от VBNet-чиков!:

    наверх

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

    наверх

    Новости сайта Азбука VB

    наверх

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

    наверх

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

    • 23.05.2003 - Приглашаем всех, кто хочет принять участие в конкурсе "Terrarium", но не успел записаться на первые два мастер-класса.

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

    • 27.05 - Динамическая компиляция и загрузка кода

    наверх

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

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

    • Понимание SOAP. Цикл переводов посвященных технологии WebService

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

    наверх

    Один момент из жизни форума: Сохранение картинок

    Вопрос:
    Автор вопроса: evil

    У меня есть на форме картинка. Я хочу на ней рисовать, а потом сохранять то, что я там нарисовал. Но вот незадача...
    Вот кусок кода:

    Private Sub open_pic_Click()
    Me.Picture2.Print "yo mandfghndfgdddffgdfgnndgdndgnndgh"
    'Me.Picture2.Refresh
    Me.Picture2.Line (0, 0)-(100, 100), RGB(0, 0, 0)
    SavePicture Me.Picture2.Picture, "c:\temppicture.bmp "
    End Sub

    Картинка создаётся, но вот замечательной надписи нет на сохранённой копии. Причём надпись появляется на картинке, но не хочет сохраниться. Как сохранить изменения???

    Ответы:

    Автор: <=Alex=>
    Переделай строку так:
    SavePicture Me.Picture2.Image, "c:\temppicture.bmp "

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

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

    Вопросы:

    Автор вопроса: oleks

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

    Как в VB6 нарисовать амплитудно-частотную характеристику звукового .WAV файла (как например у Windows Sound Recorder)?

    Автор вопроса: Васёк

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

    Как послать текстовой файл на печать?

    Автор вопроса: Taras Prikhoko

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

    Как получить список компьютеров локальной сети?

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

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

    Подскажите, пожалуйста, можно ли восстановить из EXEшника исходник?

    Автор вопроса: ATM

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

    Подскажите каким образом к форме прицепить тень типа MSOxp menu.
    Или где-нить лежит ActiveX для этих целей?

    Ответы:

    Вопрос:

    1.В связи с тем, что в TextBox нет свойства BackStyle=Transparent, как можно сделать вертикальный скроллинг текста в Label?

    2. При частом обращении к базе данных посредством VB возникает предупреждение "Run-time error '7' Out of memory" и программа закрывается. Нужно снова её открыть и продолжить работу.Как избавиться от этого?

    Ответ:

    Автор ответа: ]...C...B...K...[C...R...a...S...H

    После использования базы ты должен освободить память это делается так

    set my_baza = nothing

    НО если в твоей программе все это стоит при выгрузки формы, а в среде программирования ты нажимаеш на кнопку Stop то освобождения памяти не происходит

    Вопрос:

    SOS
    Как можно проверить создался обьект Excel или нет

    Dim ss As New Excel.Application
    Dim xx As Application
    Dim ZZ As Workbook
    Set xx = ss.Application
    Set ZZ = ss.Workbooks.Open(App.Path + "\Отчет.xls")

    Ответ:

    Автор ответа: Шкуренко Александр

    Dim xlApp As Excel.Application

    Set xlApp = New Excel.Application ' в этой строке создается объект
    ' если он не создался то возникнет ошибка

    ' а если ты используешь глобальную переменную и тебе нужно
    ' проверить содержит она какой-нибуть объект, то проверить это
    ' можно следующим образом

    If AnyObject Is Nothing Then
    ....
    End If

    Ответ:

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

    Просто добавь ко всему написанному свойство

    ss.Visible = True

    и сразу увидишь созданную книгу.

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

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

    наверх

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


Выпуск 167.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

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

    А коды кончились :-(((( Присылайте, если что есть...
    Читайте!

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

    • Книги

    • Исправление бага ЭУ SSTab
    • Создадим письмо с вложением и поместим его в TheBat!
    • Получение размера диска больше 2Gb
    • Шифрование по алгоритму RC4

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

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти здесь.

    наверх

    Исправление бага ЭУ SSTab

    Пример иллюстрирует исправление известного бага ЭУ SSTab (подтверждённого Microsoft - см. http://support.microsoft.com:80/support/kb/articles/q193/0/21.asp&NoWebContent=1), заключающегося в возможности ухода "фокуса" (в частности - по нажатию клавиши TAB) на элементы управления, расположенные на неактивной вкладке ЭУ SSTab, - что может привести к неприятным эффектам.
    Для исправления этого бага используем принцип работы ЭУ SSTab, заключающийся в том, что у тех элементов, которые относятся к неактивным вкладкам, он устанавливает свойство Left в здоровенную отрицательную величину, тем самым "убирая их за пределы экрана".
    Сначала "наступим на грабли" - смоделируем тот самый "неприятный эффект":

    Расположите на форме ЭУ SSTab1. Сделайте у него 2 вкладки. На первой расположите TextBox "Text1", CommandButton "Command1" и Frame "Frame1", внутри Frame1 - OptionButton "Option1". На второй вкладке - всё то же самое (только вместо 1 будет 2, разумеется). Ну и на самой форме (не на SSTab1) расположите пару кнопок, к примеру, - Command3 и Command4.
    Затем вставьте это в код формы:

    Private Sub Option1_GotFocus()
    Me.Caption = "Option1"
    End Sub

    Private Sub Option2_GotFocus()
    Me.Caption = "Option2"
    End Sub

    Теперь, запустив форму, "походите" по её контролам с помощью клавиши TAB: вы обнаружите, что при открытой вкладке ?1, когда видна только Option1, у вас заголовок формы в определённый момент установится в "Option2", хотя ЭУ Option2 находится на неактивной в этот момент вкладке ?2.
    Вот такой вот неприятный эффект. То же самое будет, если вместо фреймов использовать PictureBox - ещё один контрол, который умеет быть "контейнером". А вот если вы удалите из примера выше оба фрейма, и OptionButton-ы посадите прямо на соотв. вкладки SSTab, то всё будет тип-топ.
    Исправляем ситуацию, добавляя в код формы следующее:

    Private Sub Form_Load()
    SSTab1.Tab = 0
    Call SSTab1_Click(0)
    End Sub

    Private Sub Option1_GotFocus()
    Me.Caption = "Option1"
    End Sub

    Private Sub Option2_GotFocus()
    Me.Caption = "Option2"
    End Sub

    Private Sub PreventTab()
    Dim ctl As Control, ctl2 As Control

    On Error Resume Next
    For Each ctl In Me.Controls
    If TypeOf ctl.Container Is SSTab Then
    If (TypeOf ctl Is Frame) Or (TypeOf ctl Is PictureBox) Then
    ' нужно установить TabStop для всех контролов внутри ctl:
    For Each ctl2 In Me.Controls
    If ctl2.Container.Name = ctl.Name Then
    ctl2.TabStop = (ctl.Left > 0)
    ' If ctl.Left < 0 Then Debug.Print ctl2.Name
    End If
    Next ctl2
    Else
    ' Свойство TabStop есть не у всех контролов, поэтому
    следующий
    ' оператор может дать ошибку - для этого и нужен On Error.
    ctl.TabStop = (ctl.Left > 0)
    End If
    End If
    Next ctl
    On Error GoTo 0
    End Sub

    Private Sub SSTab1_Click(PreviousTab As Integer)
    Call PreventTab
    End Sub

    объяснение работы Sub PreventTab:

    При каждом щелчке на вкладке ЭУ SSTab1, процедура PreventTab устанавливает свойство TabStop в False у тех контролов, которые находятся в этот момент "за пределами экрана" - т.е. которые относятся к неактивным вкладкам.
    Оператор "If (TypeOf ctl Is Frame) Or (TypeOf ctl Is PictureBox)" нужен для того, чтобы обрабатывать ситуации, когда на ЭУ SSTab расположен контрол, который САМ является контейнером (это м.б. или Frame, или PictureBox). Т.к. свойство Left любого ЭУ исчисляется от левой границы его контейнера, то у всех ЭУ, находящихся внутри такого фрейма или картинки, Left будет > 0 даже если их вкладка НЕактивна, в то время как у самого фрейма (картинки) Left будет < 0; поэтому без данного оператора IF контролы, лежащие внутри фрейма (картинки), не попали бы в число тех, у которых свойство TabStop установливалось в False при деактивации вкладки, - а это было бы неверно!
    Код необходимо модифицировать, если нужно обрабатывать более сложную ситуацию - с бОльшим числом вложенности контейнеров: например, на SSTab лежит Frame, а внутри этого фрейма - есть ещё и PictureBox, и только внутри этого PictureBox-а расположены какие-то контролы. Для неограниченного уровня вложенностей нужно, наверное, использовать рекурсию.

    Полезные примечания:

    Баг наблюдается не обязательно при наличии на вкладках ЭУ SSTab каких-либо контейнеров. В Сети есть "жалобы" программистов, что баг проявляется и просто при размещении на вкладках SSTab какого-либо ActiveX-компонента, вроде обычного MS Rich Textbox, а также в случаях, когда на всех вкладках суммарно расположено МНОГО различных контролов (это, увы, я знаю по себе).
    Если вы используете предложенный код для ликвидации этого бага, то при большом числе контролов на всей форме (т.е. при большом размере коллекции Me.Controls) лучше сначала (например, в событии Form_Load) прочитать имена контролов и их контейнеров (хотя бы первого уровня) плюс типы контролов в многомерный строковый массив(-ы), а затем использовать в Sub PreventTab обращение не к коллекции, а к этому массиву: так будет однозначно быстрее.

    Автор: Юмашин Алексей

    наверх

    Создадим письмо с вложением и поместим его в TheBat!

    Ставим Dir1, Text5(0).Text, Text5(1).Text, Text3.Text

    Prog = "C:\Program Files\The Bat!\thebat.exe" '' в роде бы у ламера
    '' всегда TheBat лежит там
    If Dir$(Prog$, vbNormal) = "" Then '' если нет (не ламер)

    On Error Goto PRNT
    Dir1.Path = "C:\Program Files\" '' стандартная прогр. папа
    For e = 0 To Dir1.ListCount - 1 '' шерстим все папки в Pr.Files
    '' если файл найден
    If Dir(Dir1.List(e) & "\thebat.exe", vbNormal) <> "" Then
    '' фильтр на признак слеша (есть/нет) приготавливаем полный путь для
    '' запуска батона
    If Right$(Dir1.List(e), 1) = "\" Then Prog = Dir1.List(e) + "thebat.exe" Else Prog = Dir1.List(e) + "\thebat.exe"
    '' идем на вызов бата
    GoTo GoLetter
    Else
    '' смотрим и видим, что все папки прошерстили, файл бат не найден,
    '' ну и всё, на что способен этот код... гуляй вася...
    If e = Dir1.ListCount - 1 Then
    If MsgBox("Программа TheBat! не найдена. Если все-таки почта установлена создать ли пустой бланк письма?", vbCritical + vbYesNo) = vbYes Then ShellProgramm ("mailto:" & Text5(0).Text & "?Subject=" & Text5(1).Text)
    Exit Sub
    End If
    End If
    Next e

    Else
    GoLetter:
    '' ну теперь самое сладкое и непостижимое для многих!
    '' Chr$(34) - это ковычки, они необходимы при использовании пробелов в
    '' команде.
    '' Prog - команда бата "c:\Program Files\The Batonchik\Thebat.exe" например.
    '' ну и далее всякие ключи...
    '' Text5(0).Text - адрес получателя
    '' Text5(1).Text - тема письма
    '' Text3.Text - полный путь к файлу, который приклеиваем (можно с пробелами)
    maill = Chr$(34) & Prog & Chr$(34) & " /mailto=" & Chr$(34) & Text5(0).Text & Chr$(34) & ";Subject=" & Chr$(34) & Text5(1).Text & Chr$(34) & ";A=" & Chr$(34) & Text3.Text & Chr$(34)
    '' переменная готова, теперь вызываем!
    Call Shell(maill)
    '' готовое письмо можно найти в том ящике (если их больше одного),
    '' который имеет приемущество (создавался первым). Как засунуть в
    '' другой, не зная его имя пока не знаю, в след версиях, ха,ха.
    End If

    Exit Sub
    '' тут я думаю, понятно!
    PRNT:
    Msgbox "Error: " & Err.Description
    End Sub

    наверх

    Получение размера диска больше 2Gb

    Этот код получает емкость и свободное место на диске в байтах при размере диска > 2Гбайт. В качесте sRoot строка с именем диска ("C:\").

    Option Explicit
    Private Declare Function GetDiskFreeSpaceEx Lib "kernel32" Alias "GetDiskFreeSpaceExA" _
    (ByVal lpRootPathName As String, lpFreeBytesAvailableToCaller As LARGE_INTEGER, _
    lpTotalNumberOfBytes As LARGE_INTEGER, lpTotalNumberOfFreeBytes As LARGE_INTEGER) As Long
    Dim DiskTotalSize As Currency
    Dim DiskFreeSize As Currency
    Private Type LARGE_INTEGER
    bSize(1 To 8) As Byte
    End Type

    Private Sub Size(sRoot As String)
    Dim DiskSizeByte As LARGE_INTEGER
    Dim DiskFreeByte As LARGE_INTEGER
    Dim DiskCallByte As LARGE_INTEGER
    Dim j As Double, i As Integer
    If GetDiskFreeSpaceEx(sRoot, DiskCallByte, DiskSizeByte, DiskFreeByte) Then
    ' Общий размер диска
    j = 1: DiskTotalSize = 0
    For i = 1 To 8
    DiskTotalSize = DiskTotalSize + CCur(DiskSizeByte.bSize(i) * j)
    j = j * 256
    Next i
    ' Свободный размер
    j = 1: DiskFreeSize = 0
    For i = 1 To 8
    DiskFreeSize = DiskFreeSize + CCur(DiskFreeByte.bSize(i) * j)
    j = j * 256
    Next i
    Else
    ' Ошибка - Диск недоступен
    DiskFreeSize = 0
    DiskTotalSize = 0
    End If
    End Sub

    наверх

    Шифрование методом RC4

    Алгоритм синхронного шифрования RC4. Работает очень просто... Использование: функция EnDeCrypt. Ей передаётся текст и пароль. Dim s(0 To 255) As Integer
    Dim kep(0 To 255) As Integer

    Public Function EnDeCrypt(plaintxt As String, Password As String) As String
    Dim temp As Integer
    Dim a As Integer
    Dim b As Integer
    Dim cipherby As Byte
    Dim cipher As String

    'Инициализация
    'Создание ключа
    b = 0

    For a = 0 To 255
    b = b + 1
    If b > Len(Password) Then
    b = 1
    End If
    kep(a) = Asc(Mid$(Password, b, 1))
    Next a

    For a = 0 To 255
    s(a) = a
    Next a

    b = 0

    For a = 0 To 255
    b = (b + s(a) + kep(a)) Mod 256
    temp = s(a)
    s(a) = s(b)
    s(b) = temp
    Next a

    'Побайтное шифрование
    For a = 1 To Len(plaintxt)
    cipherby = EnDeCryptSingle(Asc(Mid$(plaintxt, a, 1)))
    cipher = cipher & Chr(cipherby)
    Next
    EnDeCrypt = cipher
    End Function

    Public Function EnDeCryptSingle(plainbyte As Byte) As Byte
    Dim i As Integer
    Dim j As Integer
    Dim temp As Integer
    Dim k As Integer
    Dim cipherby As Byte

    'Шифрование одного байта
    i = (i + 1) Mod 256
    j = (j + s(i)) Mod 256
    temp = s(i)
    s(i) = s(j)
    s(j) = temp
    k = s((s(i) + s(j)) Mod 256)
    cipherby = plainbyte Xor k
    EnDeCryptSingle = cipherby
    End Function

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

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

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

    Вопросы:

    Автор вопроса: Korik

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

    Вопросик есть небольшой по ASP. Как можно с компа пользователя загнать на сервак в нужную директорию файл, который выбрал пользователь через <INPUT TYPE="file">?

    Автор вопроса: SERG.IO

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

    В предыдущих номерах писали, как определеить текущую раскладку клавиатуры. А как отследить событие смены раскладки? Вариант с таймером - это не красиво. Можно конечно отлавливать нажатие клавиш Ctrl-Shift и Alt-Shift, но в этом случае остается вариант поменять раскладку на панели задач. Жду ответов

    Автор вопроса: Саша

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

    Как узнать URL IE ?
    дискриптор (хендл) знаю.

    Кто что знает шлите, буду очень рад

    Автор вопроса: Anatol

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

    Разработал базу данных (.mdb) с интерфейсом на VB6, ADO 2.5 SP1. Структура базы создана средствами MS Access 2000. На моей машине с VB6,MS Access и Win98SE программа работает прекрасно. Проблемы возникли после установки программы на ПК пользователей также с Win98SE. Установка проходит нормально. Предварительно установил на ПК пользователей mdac_type.exe версии 2.5 SP1. MS Access на ПК пользователей не было установлено. При выполнении установленного файла (.exe) стала появляться ошибка с сообщением:

    ADO error #-2147467259
    Operation must use an updateable query.
    Sourse: Microsoft JET Database Engine.

    Как выяснилось, ошибка появляется при попытке редактирования или добавления записи программными средствами объекта Recordset:

    rst.Fields("Name")="Nina"
    rst.Update

    Чтение из баэы данных проходит нормально.
    В чем же дело?

    Автор вопроса: Владимир

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

    Как на VB6 послать объявление на электронную доску объявлений.
    Я новичок в этом деле. Где можно об этом узнать,или что нужно сделать.
    В интернете ничего не нашел.

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

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

    Я использую ADO, для выполнения запросов к БД (СУБД Ms SQL-Server) из Excel. Возникла следующая проблема:

    При выполнении запроса к БД, Excel блокируется. А т.к. приходится делать сложные запросы и получать объемные выборки данных, то не очень приятно сидеть и ждать несколько минут, пока пройдет запрос, чтоб возобновить работу с Excel.

    Использование потоков (CreateThread и пр.) дало временное облегчение. Дело в том, что при их использовании Excel начинает "жрать" системные дескрипторы. В результате по прошествию некоторого периода времени он зависает.

    Каким образом можно решить данную проблему? Да, еще: как корректно(!) прервать выполнение запроса в ADO?

    В Интернете много различной информации на тему ADO, но ничего мне полезного я не нашел. Буду очень признателен за помощь.

    Автор вопроса: Виталик

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

    Подскажите как пользоваться API функциями OpenProcess, ReadProcessMemory, WriteProcessMemory?

    Автор вопроса: Вова

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

    Как сделать так, чтобы программа, прописалась в реестре винды (где нбудь в Run)?

    Автор вопроса: Игорь

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

    Может кто знает как передать по локальной сети голос с микрофона средствами WINSOCK. Подскажите как хотя бы это можно проделать или ссылку какую нить киньте.

    Ответы:

    Вопрос:

    Подскажите где можно взять примеры с браузером файлов (типа панели FAR или Windows Commander - имеется в виду одну панель) ???

    Ответ:

    Автор ответа: •Creator•

    Могу дать контрол'чик eJ_Explorer.ocx
    просите у •Creator•

    Вопрос:

    Подскажите, пожалуйста, как узнать все процессы в системе и отключить любой ия них.

    Ответ:

    Автор ответа: •Creator•

    Видел такое на vb.kiev.ua.

    Вопрос:

    Подскажите если кто знает как отправить на принтер содержимое PictureBox?

    Ответ:

    Автор ответа: Николай

    По-моему надо использовать Printer.PaintPicture.

    Вопрос:

    Как в VB6 нарисовать амплитудно-частотную характеристику звукового .WAV файла (как например у Windows Sound Recorder)?

    Ответ:

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

    Я применил бы пакет SwiftSoft (http://www.swiftsoft.de/).
    К сожалению он стОит ОООчень больших денег ($499)

    Вопрос:

    Подскажите, пожалуйста, можно ли восстановить из EXEшника исходник?

    Ответ:

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

    Ага, можно – тока дебагером – если шаришь в асме - дерзай

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

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

    наверх

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


Выпуск 168.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

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

    Читайте!

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

    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Один момент из жизни форума: Для .NET разработчиков

    • Доска объявлений

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

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

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

    Дата: 08.06.2003 12:09 | Раздел: Примеры кода | Автор: sKit

    Программа для решения уравнения и неравенств - Вот мой способ накладывания шкурок на программу Также есть редактор шкурок, правда исходники поломались %(

    Дата: 06.06.2003 10:32 | Раздел: Примеры кода | Автор: Щелканов Александр

    Блокнот от Астерикса - Пример создания блокнота.

    Дата: 05.06.2003 10:35 | Раздел: Примеры кода | Автор: Малашенко Сергей

    Крыса v1.0 - Программа для управления чужим компом в локалке или по инету. Что то на подобе трояна. Я делал его специально для издевательства над нашим информатиком! Просьба не использовать по прямому назначению, только для обучения...

    Дата: 04.06.2003 14:00 | Раздел: ActiveX контролы | Автор: Сытник Сергей

    Tray ActiveX Control 1.1 - Новая версия контрола предназначенного для работы треем. Контрол приобрел несколько новых свойств и методов.

    Дата: 04.06.2003 10:35 | Раздел: Примеры кода | Автор: Малашенко Сергей

    Крыса v1.0 - Программа для управления чужим компом в локалке или по инету. Что то на подобе трояна. Я делал его специально для издевательства над нашим информатиком! :-))

    Дата: 01.06.2003 13:33 | Раздел: Статьи по VB | Автор: Гриненко Виталий

    VSN умер, да здравствует VSN (и так каждые пол года) - За последний месяц произошли очень важные события связанные с VSN. О этих событиях должны знать все кто изучает сей предмет, а таких немало. В неведении конечно можно быть и счастливым, а вот программистом – никогда. И потому я решил таки черкнуть несколько строк. За ближайшие пару часов статья получится вряд ли. Поэтому давайте назовем мой новый опус скромнее: краткое информационное сообщение.

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

    07:57 / 8 июн. Что случилось с сайтом? | Хитов: 0 | Ответов: 0
    07:49 / 8 июн. MS Agent | Хитов: 0 | Ответов: 0
    00:49 / 8 июн. Помогите с отображением языка в программе | Хитов: 11 | Ответов: 1
    00:13 / 8 июн. CD-Rom и VB6 | Хитов: 5 | Ответов: 0
    23:12 / 7 июн. NOTIFYICONDATA 5.0 | Хитов: 7 | Ответов: 2
    17:15 / 7 июн. Visual Styles XP | Хитов: 13 | Ответов: 0
    14:12 / 7 июн. <font color=#00ff00>ОФФ ЛАИН </font> | Хитов: 9 | Ответов: 0
    13:42 / 7 июн. me.Windowstate | Хитов: 21 | Ответов: 1
    13:33 / 7 июн. Один EXE-файл вместо инстал.пакета | Хитов: 20 | Ответов: 1
    13:26 / 7 июн. Индикатор активности устройств. | Хитов: 13 | Ответов: 1
    11:25 / 7 июн. Новое сообщение без темы | Хитов: 3 | Ответов: 1
    09:32 / 7 июн. Нет connecting c SQL Server | Хитов: 4 | Ответов: 0
    06:55 / 7 июн. Цвет в HTML - редакторе | Хитов: 19 | Ответов: 1
    00:52 / 7 июн. Прокси | Хитов: 10 | Ответов: 0
    23:49 / 6 июн. VB и База данных Аксесса. | Хитов: 30 | Ответов: 5
    22:32 / 6 июн. ocx | Хитов: 45 | Ответов: 6
    21:40 / 6 июн. VB.net - как скачать файл с ftp-сервера (с указ... | Хитов: 13 | Ответов: 0
    20:43 / 6 июн. Вопрос про Master Boot Record | Хитов: 10 | Ответов: 0
    19:24 / 6 июн. Нужна ссылка на контрол... | Хитов: 33 | Ответов: 5
    19:19 / 6 июн. Список компов | Хитов: 9 | Ответов: 0

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

    Новости от VBNet-чиков!:

    наверх

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

    наверх

    Новости сайта Азбука VB

    наверх

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

    наверх

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

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

    наверх

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

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

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

    наверх

    Один момент из жизни форума: Для .NET разработчиков

    Вопрос:
    Автор вопроса: Danil

    Хочу поделиться со всеми кто пишет или начинает писать на платформе .NET. По данной ссылке http://www.crownwood.net находится дистрибутив с DLL'ой и примерами которая помогает создать интерфейс в стиле похожей на стиль Visual Studion.NET. Я считаю что при желании можно быстро въехать в программный код.

    Ответы:

    Автор: Артём Л.
    Да, интересная разработка.

    Автор: Павел Сурменок
    А главное - бесплатная.

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

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

    Вопросы:

    Автор вопроса: SHADE

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

    Как бы мне к серваку подключиться? Есть IP сервака, порт, логин и пароль. После этого на серваке выполнить некоторую команду и "прочитать" его ответ?

    Автор вопроса: oleks

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

    Как работать со звуковыми .WAV файлами, где найти информацию о их внутренней структуре и способах ее обработки. Ну ОООЧЕНЬ не хочется платить 500 баксов за библиотеку компонентов.

    Автор вопроса: CRAZYDIMA

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

    Народ, кто-нибудь создавал отчуждаемые приложения Ассеss или может что слышали по этой теме?

    Автор вопроса: Vao

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

    Как сделать, чтобы при клике по метке с "мыльным" адресом открывалась заготовка сообщения?

    Автор вопроса: Maria Kudriavtzev

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

    Как сделать help?

    Автор вопроса: Pun

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

    Расскажите, как осуществляется в VB передача параметров в программу и прием ей их.

    Автор вопроса: Pun

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

    Как можно произвести сохранение html-страницы методами VB, при условии, что броузер написан в VB, путем использования стандартных компонентов VB

    Автор вопроса: Волк Александр Николаеви

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

    При написании программы поиска и обработки файла dbf в архиве возникли вопросы

    1. как организовать поиск файла по маске
    2. разархивировать Zip без использования WINZip

    Ответы:

    Вопрос:

    SOS
    Как можно проверить создался обьект Excel или нет

    Dim ss As New Excel.Application
    Dim xx As Application
    Dim ZZ As Workbook
    Set xx = ss.Application
    Set ZZ = ss.Workbooks.Open(App.Path + "\Отчет.xls")

    Ответ:

    Автор ответа: Дмитрий

    Dim EXL As Excel.Application ' переменная для Excel

    Private Sub LoadExcel(FileName As String)
    On Error GoTo NotLoaded
    Set EXL = GetObject(, "Excel.Application")
    NotLoaded:
    If Err.Number = 429 Then
    Set EXL = CreateObject("Excel.Application")
    ElseIf Err.Number <> 0 Then
    Screen.MousePointer = vbDefault
    ' Пользователь нажал на кнопку Cancel
    EXL.Workbooks.Close
    Set EXL = Nothing
    Screen.MousePointer = vbDefault
    If Not Err.Number = 32755 Then
    MsgBox Err.Description & vbCrLf & "error "
    End If
    Err.Clear
    Exit Sub
    End If
    EXL.Workbooks.Open FileName:=FileName
    End Sub

    Вопрос:

    Как в VB6 нарисовать амплитудно-частотную характеристику звукового .WAV файла (как например у Windows Sound Recorder)?

    Ответ:

    Автор ответа: Роман

    SwiftSowt Multimedia Tools v2.0 и crack к нему смотрите на www.rouch.mailru.com

    Вопрос:

    Подскажите, пожалуйста, можно ли восстановить из EXEшника исходник?

    Ответ:

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

    Только дизассемблером, но если EXEшник windows - не советую.

    Вопрос:

    Вопросик есть небольшой по ASP. Как можно с компа пользователя загнать на сервак в нужную директорию файл, который выбрал пользователь через ?

    Ответ:

    Автор ответа: Андрей А. Серёгин

    Вот, выдрано из одного из моих проектов. Разбирайся :))

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <meta HTTP-EQUIV="Expires" CONTENT="0">
    <meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
    <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
    </head>
    <%
    domain="domain.ru"
    group="Domain Users"
    ip=request("REMOTE_USER")
    ip=replace(ip,"DOMAIN\","")
    set objGroup = GetObject("WinNT://" & domain & "/" & group)
    For Each objUser in objGroup.Members
    If objUser.Class = "User" and objUser.Name = ip Then
    sUserInfo = sUserInfo & objUser.FullName
    Exit For
    End If
    Next
    %>
    <SCRIPT LANGUAGE=vbscript RUNAT=Server>
    Class clsUpload
    Private m_objFiles
    Private m_objForm
    Public Property Get Form()
    Set Form = m_objForm
    End Property
    Public Property Get Files()
    Set Files = m_objFiles
    End Property
    Private Sub Class_Initialize()
    Set m_objFiles = New clsCollection
    Set m_objForm = New clsCollection
    ParseRequest
    End Sub
    Private Sub ParseRequest()
    Dim lngTotalBytes, lngPosBeg, lngPosEnd, lngPosBoundary, lngPosTmp, lngPosFileName
    Dim strBRequest, strBBoundary, strBContent
    Dim strName, strFileName, strContentType, strValue, strTemp
    Dim objFile
    lngTotalBytes = Request.TotalBytes
    strBRequest = Request.BinaryRead(lngTotalBytes)
    lngPosBeg = 1
    lngPosEnd = InStrB(lngPosBeg, strBRequest, UStr2Bstr(Chr(13)))
    If lngPosEnd > 0 Then
    strBBoundary = MidB(strBRequest, lngPosBeg, lngPosEnd - lngPosBeg)
    lngPosBoundary = InStrB(1, strBRequest, strBBoundary)
    End If
    If strBBoundary = "" Then
    lngPosBeg = 1
    lngPosEnd = InStrB(lngPosBeg, strBRequest, UStr2BStr("&"))
    Do While lngPosBeg < LenB(strBRequest)
    strTemp = BStr2UStr(MidB(strBRequest, lngPosBeg, lngPosEnd - lngPosBeg))
    lngPosTmp = InStr(1, strTemp, "=")
    strName = URLDecode(Left(strTemp, lngPosTmp - 1))
    strValue = URLDecode(Right(strTemp, Len(strTemp) - lngPosTmp))
    m_objForm.Add strName, strValue
    lngPosBeg = lngPosEnd + 1
    lngPosEnd = InStrB(lngPosBeg, strBRequest, UStr2BStr("&"))
    If lngPosEnd = 0 Then lngPosEnd = LenB(strBRequest) + 1
    Loop
    Else
    Do Until (lngPosBoundary = InStrB(strBRequest, strBBoundary & UStr2Bstr("--")))
    lngPosTmp = InStrB(lngPosBoundary, strBRequest, UStr2BStr("Content-Disposition"))
    lngPosTmp = InStrB(lngPosTmp, strBRequest, UStr2BStr("name="))
    lngPosBeg = lngPosTmp + 6
    lngPosEnd = InStrB(lngPosBeg, strBRequest, UStr2BStr(Chr(34)))
    strName = BStr2UStr(MidB(strBRequest, lngPosBeg, lngPosEnd - lngPosBeg))
    lngPosFileName = InStrB(lngPosBoundary, strBRequest, UStr2BStr("filename="))
    If lngPosFileName <> 0 And lngPosFileName < InStrB(lngPosEnd, strBRequest, strBBoundary) Then 'It is a file
    lngPosBeg = lngPosFileName + 10
    lngPosEnd = InStrB(lngPosBeg, strBRequest, UStr2BStr(chr(34)))
    strFileName = BStr2UStr(MidB(strBRequest, lngPosBeg, lngPosEnd - lngPosBeg))
    lngPosTmp = InStrB(lngPosEnd, strBRequest, UStr2BStr("Content-Type:"))
    lngPosBeg = lngPosTmp + 14
    lngPosEnd = InstrB(lngPosBeg, strBRequest, UStr2BStr(chr(13)))
    strContentType = BStr2UStr(MidB(strBRequest, lngPosBeg, lngPosEnd - lngPosBeg))
    lngPosBeg = lngPosEnd + 4
    lngPosEnd = InStrB(lngPosBeg, strBRequest, strBBoundary) - 2
    strBContent = MidB(strBRequest, lngPosBeg, lngPosEnd - lngPosBeg)
    If strFileName <> "" And strBContent <> "" Then
    Set objFile = New clsFile
    objFile.Name = strName
    objFile.FileName = Right(strFileName, Len(strFileName) - InStrRev(strFileName, "\"))
    objFile.ContentType = strContentType
    objFile.Blob = strBContent
    m_objFiles.Add strName, objFile
    End If
    Else
    lngPosTmp = InStrB(lngPosTmp, strBRequest, UStr2BStr(chr(13)))
    lngPosBeg = lngPosTmp + 4
    lngPosEnd = InStrB(lngPosBeg, strBRequest, strBBoundary) - 2
    strValue = BStr2UStr(MidB(strBRequest, lngPosBeg, lngPosEnd - lngPosBeg))
    m_objForm.Add strName, strValue
    End If
    lngPosBoundary = InStrB(lngPosBoundary + LenB(strBBoundary), strBRequest, strBBoundary)
    Loop
    End If
    End Sub
    Private Function BStr2UStr(BStr)
    Dim lngLoop
    BStr2UStr = ""
    For lngLoop = 1 to LenB(BStr)
    BStr2UStr = BStr2UStr & Chr(AscB(MidB(BStr,lngLoop,1)))
    Next
    End Function
    Private Function UStr2Bstr(UStr)
    Dim lngLoop
    Dim strChar
    UStr2Bstr = ""
    For lngLoop = 1 to Len(UStr)
    strChar = Mid(UStr, lngLoop, 1)
    UStr2Bstr = UStr2Bstr & ChrB(AscB(strChar))
    Next
    End Function
    Private Function URLDecode(Expression)
    Dim strSource, strTemp, strResult
    Dim lngPos
    strSource = Replace(Expression, "+", " ")
    For lngPos = 1 To Len(strSource)
    strTemp = Mid(strSource, lngPos, 1)
    If strTemp = "%" Then
    If lngPos + 2 < Len(strSource) Then
    strResult = strResult & Chr(CInt("&H" & Mid(strSource, lngPos + 1, 2)))
    lngPos = lngPos + 2
    End If
    Else
    strResult = strResult & strTemp
    End If
    Next
    URLDecode = strResult
    End Function
    End Class
    Class clsCollection
    Private m_objDicItems
    Private Sub Class_Initialize()
    Set m_objDicItems = Server.CreateObject("Scripting.Dictionary")
    m_objDicItems.CompareMode = vbTextCompare
    End Sub
    Public Property Get Count()
    Count = m_objDicItems.Count
    End Property
    Public Default Function Item(Index)
    Dim arrItems
    If IsNumeric(Index) Then
    arrItems = m_objDicItems.Items
    If IsObject(arrItems(Index)) Then
    Set Item = arrItems(Index)
    Else
    Item = arrItems(Index)
    End If
    Else
    If m_objDicItems.Exists(Index) Then
    If IsObject(m_objDicItems.Item(Index)) Then
    Set Item = m_objDicItems.Item(Index)
    Else
    Item = m_objDicItems.Item(Index)
    End If
    End If
    End If
    End Function
    Public Function Key(Index)
    Dim arrKeys
    If IsNumeric(Index) Then
    arrKeys = m_objDicItems.Keys
    Key = arrKeys(Index)
    End If
    End Function
    Public Sub Add(Name, Value)
    If m_objDicItems.Exists(Name) Then
    m_objDicItems.Item(Name) = Value
    Else
    m_objDicItems.Add Name, Value
    End If
    End Sub
    End Class
    Class clsFile
    Private m_strName
    Private m_strContentType
    Private m_strFileName
    Private m_Blob
    Public Property Get Name() : Name = m_strName : End Property
    Public Property Let Name(vIn) : m_strName = vIn : End Property
    Public Property Get ContentType() : ContentType = m_strContentType : End Property
    Public Property Let ContentType(vIn) : m_strContentType = vIn : End Property
    Public Property Get FileName() : FileName = m_strFileName : End Property
    Public Property Let FileName(vIn) : m_strFileName = vIn : End Property
    Public Property Get Blob() : Blob = m_Blob : End Property
    Public Property Let Blob(vIn) : m_Blob = vIn : End Property
    Public Sub Save(Path)
    Dim objFSO, objFSOFile
    Dim lngLoop
    oldfilename=m_strFileName
    extendet=right(m_strFileName,4)
    suserinfo=left(suserinfo,len(suserinfo)/2)
    m_strFileName=replace(m_strFileName,extendet," (ABTOP "&ucase(ip)&")"&extendet)
    Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
    Set objFSOFile = objFSO.CreateTextFile(objFSO.BuildPath("c:\inetpub\wwwroot\documents\upload from users", m_strFileName))
    For lngLoop = 1 to LenB(m_Blob)
    objFSOFile.Write Chr(AscB(MidB(m_Blob, lngLoop, 1)))
    Next
    objFSOFile.Close
    End Sub
    End Class
    </SCRIPT>
    </html>

    Вопрос:

    Разработал базу данных (.mdb) с интерфейсом на VB6, ADO 2.5 SP1. Структура базы создана средствами MS Access 2000. На моей машине с VB6,MS Access и Win98SE программа работает прекрасно. Проблемы возникли после установки программы на ПК пользователей также с Win98SE. Установка проходит нормально. Предварительно установил на ПК пользователей mdac_type.exe версии 2.5 SP1. MS Access на ПК пользователей не было установлено. При выполнении установленного файла (.exe) стала появляться ошибка с сообщением:

    ADO error #-2147467259
    Operation must use an updateable query.
    Sourse: Microsoft JET Database Engine.

    Как выяснилось, ошибка появляется при попытке редактирования или добавления записи программными средствами объекта Recordset:

    rst.Fields("Name")="Nina"
    rst.Update

    Чтение из баэы данных проходит нормально.
    В чем же дело?

    Ответ:

    Автор ответа: Рустем

    При выполнении sql-запроса select нужно использовать атрибуты adOpenDynamic, adLockOptimistic:

    rs.open "select * from ...", cn, adOpenDynamic, adLockOptimistic

    Вопрос:

    Может кто знает как передать по локальной сети голос с микрофона средствами WINSOCK. Подскажите как хотя бы это можно проделать или ссылку какую нить киньте.

    Ответ:

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

    В дистрибе басика это есть, называется VoiceChat или в этом роде.

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

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

    наверх

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


Выпуск 169.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

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

    звините, что опоздал... Вчера склепал несколько кодов. Только вот, мне ближе .NET, поэтому сегодня коды касаются программирования под .NET Framework (за исключением первого кода).
    Читайте!

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

    • Книги

    • Очистка всех листбоксов на форме
    • Получение текущей строки DataGrid
    • Получение объекта Graphics для PictureBox
    • Отправка письма средствами TheBat!

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

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти здесь.

    наверх

    Очистка всех листбоксов на форме

    Процедура, очищающая все листбоксы, распооженные на указанной в параметре frmTarget форме.

    Public Sub ClearListBoxes(frmTarget As Form)
    Dim i As Integer
    Dim j As Integer
    Dim ctrltarget As Object

    For i = 0 To (frmTarget.Controls.count - 1)
    Set ctrltarget = frmTarget.Controls(i)

    If TypeOf ctrltarget Is ListBox Then
    ctrltarget.clear
    End If
    Next i
    End Sub

    наверх

    Получение текущей строки DataGrid

    Очень часто требуется получить строку (DataRow), выделенную в DataGrid. Можно было бы просто получить строку из коллекции Rows объекта DataTable с индексом равным свойству CurrentRowIndex грида, но это будет работать, только если грид не отсортирован. Иначе индекс строки грида и индекс в коллекции Rows не совпадут.
    Предлагаю вам 2 функции. Вункция GetCurrentRow возвращает текущую строку DataGrid'а, указанного в параметре функции. А функция GetRow позволяет получить строку с произвольным номером.

    Public Function GetCurrentRow(ByVal Grid As DataGrid) As DataRow
    Dim cm As CurrencyManager = CType(Grid.BindingContext(Grid.DataSource, Grid.DataMember), CurrencyManager)
    Dim drv As DataRowView = CType(cm.Current, DataRowView)
    Return drv.Row

    End Function

    Public Function GetRow(ByVal Grid As DataGrid, ByVal ID As Integer) As DataRow
    Dim cm As CurrencyManager = CType(Grid.BindingContext(Grid.DataSource, Grid.DataMember), CurrencyManager)
    Dim dv As DataView = CType(cm.List, DataView)
    Dim drv As DataRowView = dv(ID)
    Return drv.Row

    End Function

    наверх

    Получение объекта Graphics для PictureBox

    Небольшая, но несомненно полезная функция. Заимствована мной из книги Евангелоса Петрусоса "Эффективная работа с Visual Basic .NET". Она создаёт объект Graphics для заданного объекта PictureBox.

    Public Function GetGraphicsObject(ByVal pic As PictureBox) As Graphics
    Dim bmp As Bitmap
    bmp = New Bitmap(pic.Width, pic.Height - 50)
    pic.Image = bmp
    Dim G As Graphics
    G = Graphics.FromImage(bmp)
    Return G
    End Function

    наверх

    Отправка письма средствами TheBat!

    Для своего проекта я когда-то сделал очень полезную процедуру. Она создаёт письмо и закидывает его в папку OutBox почтовика TheBat!. Заодно вы научитесь производить запись файлов и запускать процесс. Писал я этот код для себя, поэтому в некоторых местах требует доработки. Во-первых, следует изменить имя ящика, куда мы закидываем письмо (у меня он называется "Main"). Во-вторых, нужно предварительно проверить, где лежит TheBat.exe.
    Опс... Чуть не забыл: нужно ещё положить рядом с вашим exe файл с именем msg.tpl. Он приведён ниже. Это шаблон файла .msg, который будет импортирован в папку OutBox.

    Процедура отправки письма:

    Private Sub SendMess(ByVal Text As String, ByVal subject As String, ByVal Name As String, ByVal Email As String)
    Dim tpl As String
    Dim mess As String
    Dim fs As IO.FileStream
    Dim sr As IO.StreamReader
    Dim sw As IO.StreamWriter

    fs = New IO.FileStream(System.AppDomain.CurrentDomain.BaseDirectory & "msg.tpl", IO.FileMode.Open, IO.FileAccess.Read)
    sr = New IO.StreamReader(fs, System.Text.Encoding.GetEncoding(1251))
    tpl = sr.ReadToEnd()

    mess = Replace(tpl, "[text]", Text)
    mess = Replace(mess, "[subject]", subject)
    mess = Replace(mess, "[now]", Now.ToString("r"))
    mess = Replace(mess, "[to]", Name & " <" & Email & ">")

    fs = New IO.FileStream("C:\ temp.msg", IO.FileMode.Create, IO.FileAccess.Write)
    sw = New IO.StreamWriter(fs, System.Text.Encoding.GetEncoding(1251))
    sw.Write(mess)
    sw.Close()
    fs.Close()

    Process.Start("C:\Program files\The Bat!\thebat.exe", "/IMPORTF=""\\Main\Outbox"";FILE=C:\temp\temp.msg;READ") 'Здесь следует подправить путь к TheBat.exe и название почтового ящика

    End Sub

    Файл msg.tpl. Тут тоже следует кое-что подправить (поля From и Reply-To).

    Date: [now]
    From: Your name <vasya@pupkin.ru>
    X-Mailer: MyProgram
    Reply-To: Your name <vasya@pupkin.ru>
    X-Priority: 3 (Normal)
    To: [to]
    Subject: [subject]
    MIME-Version: 1.0
    Content-Type: text/plain; charset=Windows-1251
    Content-Transfer-Encoding: 8bit

    [text]

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

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

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

    Вопросы:

    Автор вопроса: Maxim

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

    Написал прогу, но не знаю - будет ли работать на других компах:
    Прога следующего содержания:
    Создал DTHML страницу. При загрузке, страница читает из реестра адрес(getsetting) и грузит по этому адресу ресурс и и-нета в Image.src.
    Страница, как и любой DHTML, работает (правильно работает) только при наличии DLL-шки, путь к которой он запоминает при компиле(куда компилировал - там и ищет). Я скомпилил в "С:\", что значительно расширяет список компов, которым прога становится доступна(лучше, чем не чего). Но осенило: а будет ли этот DHTML ВООБЩЕ работать на других машинах??
    Может кто-нибудь захочет по-узать "Просмотрщик графики в и-нет"??
    Или ответьте пожалуйста на вопрос. Может реестр/ДХТМЛ - это муть, и достаточно WebBrowser.navinate??
    Вообще подскажите, как лучше это дело устроить...
    Даже при помощи той мути, что я на мудрил, нет доступа ко всем ресурсам.
    Например, фоменковские приколы не грузит.
    А я встречал прогу, которая делала это легко, вот я тоже хочу такую сделать.

    Про плохое качество связи с мировой паутиной молчу...

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

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

    Подскажите пожалуйста или пришлите кусочек исходника как считать данные из памяти или записать при помощи VB

    Автор вопроса: Sergey

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

    Где можно найти инфу по всем свойствам и методам winsock!

    Автор вопроса: P@Ssword

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

    Как к кнопочкам "свернуть", "раявернуть", "яакрыть" в заголовке окна добавить свою?

    Автор вопроса: Vao

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

    Скажите, пожалуйста, как сделать контрол DirListBox в виде проводника?

    Автор вопроса: Валерий

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

    У меня нет функции AdressOf (VBA Office97) Как можно ее заменить и чем?

    Автор вопроса: Rex

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

    Как можно в проге сделать так, чтобы она была поверх всех окон (как у StatWin 5.5), и запретить или что-то в этом роде доступ к другим программам(меню и др.) кроме этой. И как скрыть её от Ctrl+Alt+Del?

    Если знаете, то киньте мне на мыло или опубликуйте здесь.

    Автор вопроса: Ladyzhenkov Alexander

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

    У меня пара вопросиков:

    1. Возможно ли сделать под VB форму нестандартной геометрии? К примеру, с отверстиями, скруглёнными краями и т.п. В Delphi такая фишка имеется. Если можно, примерчик пжалста...

    2. Как проверить, существует ли такая-то директория или файл в ней?

    Автор вопроса: Bilenko Anatoly

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

    Как работать с объектом MSWord Microsoft Equation ???

    Автор вопроса: Alex

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

    Как получить список компов локальной сети?

    Автор вопроса: Анатолий

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

    Как определить координаты курсора в TextBox или RichTextBox (т.е. номер текущей строки и номер текущего символа на этой строке) с последующей их передачей в StatusBar.
    Это нужно для контроля при вводе форматированных данных

    Автор вопроса: Роман

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

    Как пользоваться Microsoft Voice Commands?

    Автор вопроса: goodroman

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

    Как получить дескриптор (hwnd) активного окна, которое не принадлежит моему приложению? Т.е. GetActiveWindow не прокатывает.

    Автор вопроса: HoodWin

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

    Подскажите как работает API функция и как можно записать про помощи неё новое значение в определённую ячейку памяти. Вот как выглядит функция:

    WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long

    Объясните, что значат параметры IpBuffer, nSize и lnNumberOfBytesWritten и в какой из них нужно записывать новое значение. И ещё подскажите как работает ReadProcessMemory и объясните её параметры. Очень нужно.

    Автор вопроса: Dalius

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

    Nuzhen instaler, kotoryj zainstalirujet .exe, .NET Framework a tak zhe Sybase db, t.e. setup, kotoryj zapuskajet drugije setupy. Mozhet uzhe jest gotovyje produkty?

    Автор вопроса: Володя

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

    Некоторые программы, которые я создал,ну не как не хотят запускаться на "компе" моего друга. При запуске выдаётся ошибка о повреждённом файле динамической библиотеки. Кто знает, подскажите в чём дело?

    Автор вопроса: Vir

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

    Подскажите, кто может зает, как с фотокамеры считать фотографию программно, за любую инфу блогодарен, желательно без DLL/OCX.

    Автор вопроса: 001

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

    У меня такой вопрос: я делал проекты на ASP, но ни разу еще не запусал их в ИНЕТ. Подскажите, имеет ли бесплатный хостинг поддержку ASP скриптов?

    Ответы:

    Вопрос:

    Известно, как картинку, которая находится в Picture1.Picture сохранить через диалоговое окно. А как сделать, чтобы в Листбоксе диалогового окна можно было бы выбирать несколько форматов сохранения (BMP,JPG,GIF)?

    Ответ:

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

    CommonDialog1.Flags = cdlOFNFileMustExist + cdlOFNHideReadOnly
    CommonDialog1.Filter = "Точечный рисунок (*.bmp)|*.bmp|JPEG (*.jpg)|*JPG|GIF (*.gif)|*.gif|"
    CommonDialog1.ShowOpen

    Вопрос:

    Подскажите, пожалуйста, можно ли восстановить из EXEшника исходник?

    Ответ:

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

    Дисассемблером, например, WinDasm.

    Вопрос:

    Подскажите как пользоваться API функциями OpenProcess, ReadProcessMemory, WriteProcessMemory?

    Ответ:

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

    Api.com или api.net (не помню)

    Вопрос:

    Как сделать так, чтобы программа, прописалась в реестре винды (где нбудь в Run)?

    Ответ:

    Автор ответа: Денис

    Добавить в автозагрузку:

    Set reg = CreateObject("wscript.shell")
    reg.regwrite "HKLM\Software\Microsoft\CurrentVersion\Run\" & "Имя файла", "c:\Путь"

    Удалить из автозагрузки:

    Set reg = CreateObject("wscript.shell")
    Reg.Regdelete "HKLM\Software\Microsoft\CurrentVersion\Run\" & "Имя файла"

    Вопрос:

    Как бы мне к серваку подключиться? Есть IP сервака, порт, логин и пароль. После этого на серваке выполнить некоторую команду и "прочитать" его ответ?

    Ответ:

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

    Winsock'ом... Могу кинуть сэмпл для "общения" с e-mail сервером.

    Вопрос:

    Народ, кто-нибудь создавал отчуждаемые приложения Ассеss или может что слышали по этой теме?

    Ответ:

    Автор ответа: Артем Меняйленко

    В Office Developer Edition есть Setup Kit, создающий wizard, инсталлирующий базу и Run-time модуль для ее запуска без Access.

    Вопрос:

    Как сделать, чтобы при клике по метке с "мыльным" адресом открывалась заготовка сообщения?

    Ответ:

    Автор ответа: Vladimir [PRC]

    Запустить браузер или почтовик по умолчанию:

    Shell "start http://адрес сайта/" - открытие страницы в браузере
    Shell "start mailto:e-mail" - создание сообщения для адресата e-mail

    Ответ:

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

    ShellExecute'ом. В качестве параметра - строка вида "mailto:vassya_pupkin@mail.ru" Откроется стандарный мэйлер и сам создаст новое сообщение на указанный адрес. Можно туда же добавить "?Subject=тема".

    Ответ:

    Автор ответа: Славик

    'Объявление (данный пример для модуля)
    Public Declare Function ShellExecute& Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long)

    'Этот код вставляешь в событие Label_Click()
    Call ShellExecute(0&, "Open", "mailto:" + "адрес@mail.ru " + "?Subject=" + "Тема письма" + "&body=" + "Письмо", "", "", 1)

    Ответ:

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

    Private Declare Function ShellExecute& Lib "shell32.dll" Alias "ShellExecuteA" (ByVal _
    hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters _
    As String, ByVal lpDirectory As String, ByVal nShowCmd As Long)

    Private Sub Label1_Click()
    Label1.FontBold = True
    Call ShellExecute(0&, "Open", "mailto:" + "Miki@online.sinor.ru" + "?Subject=" + _
    "Как сделать, чтобы при клике по метке с "мыльным" адресом открывалась заготовка сообщения?" + "&body=" + "Привет, Максим!!!", "", "", 1)
    End Sub

    Вопрос:

    Как сделать help?

    Ответ:

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

    Micosoft Help Workshop. Клепает хелп из RTF файлов. Или html. Есть в комплекте VB.

    Ответ:

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

    У меня есть целая глава электронной(HTML) книги, где рассказывается о хелпе в стиле WinHelp.
    Могу намылить. В архиве весит около 100 кб. Если ты это имел в виду.

    Вопрос:

    Расскажите, как осуществляется в VB передача параметров в программу и прием ей их.

    Ответ:

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

    Параметры передаются так же, как и любой другой проге. А чтобы их узнать, надо воспользоваться ф-ей Command$. Потом ее можно разбить на массив параметров функцией Split. По разделителю "-". Я так делаю.

    Ответ:

    Автор ответа: Артем Меняйленко

    Для этого есть переменная Command$, содержащая ключи командной строки.

    Ответ:

    Автор ответа: Данила

    Приём и передачу можно сделать 3 способами: командной строкой, промежуточным файлом, записью в реестре (не рекомендуется).

    1) Передача: Shell "путь и командная строка".
    Приём: w = Command
    2) Передача: пишем файл (к примеру TXT с помощью команд Open и Output) и запускаем приложение.
    Приём: открываем файл (к примеру TXT с помощью команд Open и Input)
    3) не привожу по причине выше

    Ответ:

    Автор ответа: Nechaev Sergey

    Есть фунция command(), которая выдаст тебе все, что написал юзер после имени файла проги в командной строке. Как ты будешь обрабатывать полученныую строку - решать тебе.

    Вопрос:

    Как можно произвести сохранение html-страницы методами VB, при условии, что броузер написан в VB, путем использования стандартных компонентов VB

    Ответ:

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

    А просто стандартными инет контролами открываешь страницу как текстовый файл, заливаешь и сохраняешь с расширением htm.

    Вопрос:

    При написании программы поиска и обработки файла dbf в архиве возникли вопросы

    1. как организовать поиск файла по маске
    2. разархивировать Zip без использования WINZip

    Ответ:

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

    Юзай WinAPI!
    FindFirstFile, FindNextFile, FindClose!
    Там указывай путь поиска с маской и организовывай рекурсию по сканированию вложенных папок.
    Если будет напряг - пиши.

    Ответ:

    Автор ответа: Соловьёв Александр

    Цитата с форума RELIB.com:

    http://vbrussian.com/Files/AfileLib.zip - ActiveX DLL для работы с архивами RAR или ZIP. DLL представляет из себя простой интерфейс для работы с консольными версиями указанных архиваторов. Так -же содержит под 50 методов для работы с файлами. Такие как удаление непустого каталога со всем содержимым, копирование непустого каталога, и многое другое (пример включен в архив). Автор Андрей Федоров

    От себя - пробовал, все работает!!!
    Если будут проблемы с поиском консольных версий архиваторов, мыль мне ngale@mail.ru - пришлю!!!

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

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

    наверх

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


Выпуск 170.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

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

    Хорошая погода...
    Читайте!

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

    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Один момент из жизни форума: Как в программе сохранить настройки?

    • Доска объявлений

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

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

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

    Дата: 17.06.2003 14:27 | Раздел: Примеры кода | Автор: MUXzzzz

    MWS - MiniWebServer - HTTP сервер на ВБ! пример показывает как можно организовать у себя на компе хостинг для сайта, тобишь HTTP сервер. Пример может одновремменно держать до 65535 соеденений!, а такое количество одновременных скачек ОЧЕНЬ маловероятно, если только ваш сайт не Яндекс или подобное, есть настройки страниц, который сервер подсовывает при различных событиях(например если страница не найдена).

    Дата: 16.06.2003 14:27 | Раздел: ActiveX контролы | Автор: Кузнецов А. В.

    ExtraTextBox - TextBox с расширенными возможностями.

    Дата: 15.06.2003 10:43 | Раздел: Примеры кода | Автор: Юмашин Алексей

    SHBrowseForFolder - Пример работы с API-функцией SHBrowseForFolder. Добавлены 2 полезные вещи:
    1). Возможность задавать стартовую папку обзора (перевёл с Дельфи)
    2). Возможность контролировать, что пользователь выберет только папку, отвечающую заданным требованиям, - а именно, содержащую заданные типы файлов (написал сам).

    Дата: 14.06.2003 14:27 | Раздел: Примеры кода | Автор: Лисин Денис Викторович

    Resources - Пример работы с файлом ресурсов на Visual Basic .NET.

    Дата: 13.06.2003 12:53 | Раздел: Примеры кода | Автор: Турков Максим

    Read and Write - Чтение и запись текстовых файлов в .NET с помощью классов из пространства имён System.IO.

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

    13:57 / 17 июн. Как из VB достать дату из BIOS??? | Хитов: 0 | Ответов: 0
    13:55 / 17 июн. Новое сообщение без темы | Хитов: 2 | Ответов: 0
    13:55 / 17 июн. Новое сообщение без темы | Хитов: 1 | Ответов: 0
    11:48 / 17 июн. MSHFlexGrid - как по ячейкам удобней бегать? | Хитов: 4 | Ответов: 1
    11:47 / 17 июн. Access report update | Хитов: 4 | Ответов: 0
    10:11 / 17 июн. как нестандартные формы в vb.net | Хитов: 6 | Ответов: 1
    07:09 / 17 июн. Этим летом Граждане Форумяне возвращаются :-))) | Хитов: 31 | Ответов: 3
    06:21 / 17 июн. VB: подсчет выделенных в ListView | Хитов: 29 | Ответов: 7
    22:48 / 16 июн. Подскажите что делать!? | Хитов: 34 | Ответов: 6
    22:31 / 16 июн. VB+MS_EQUATION | Хитов: 11 | Ответов: 0
    19:48 / 16 июн. VB и HTML-формы | Хитов: 19 | Ответов: 0
    18:23 / 16 июн. БД | Хитов: 23 | Ответов: 2
    15:30 / 16 июн. .NET - считывание из *.txt | Хитов: 17 | Ответов: 1
    15:15 / 16 июн. ASCII в .NET | Хитов: 7 | Ответов: 0
    14:57 / 16 июн. Cоздать папку в активном окне Windows | Хитов: 17 | Ответов: 0
    13:48 / 16 июн. Размеры формы | Хитов: 40 | Ответов: 5
    13:42 / 16 июн. ASP _ UNICOD | Хитов: 14 | Ответов: 0
    12:21 / 16 июн. Сравнение цветов по RGB характеристикам | Хитов: 31 | Ответов: 4
    11:59 / 16 июн. MAPI. Как расширить действие компонентов. | Хитов: 25 | Ответов: 2
    10:55 / 16 июн. Файло через интернет | Хитов: 34 | Ответов: 5

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

    Отправка письма средствами TheBat! (50)
    Получение объекта Graphics для PictureBox (35)
    Получение текущей строки DataGrid (46)
    Очистка всех листбоксов на форме (23)
    Шифрование по алгоритму RC4. (72)

    Новости от VBNet-чиков!:

    наверх

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

    наверх

    Новости сайта Азбука VB

    наверх

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

    наверх

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

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

    наверх

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

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

    • InfoPath 2003. Новый продукт в семействе Microsoft Office System.
      Мне в руки попалась вторая бета InfoPath 2003 - нового приложения от компании Microsoft. Свои заметки о ней я и решил изложить в небольшой публикации, ориентированной прежде всего на разработчиков и сотрудников IT отделов.
    • Понимание SOAP
      Цикл переводов посвященных технологии WebService
    • Создание приложения для карманных компьтеров с использованием БД.
      Compact Framework and ADO.NET

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

    наверх

    Один момент из жизни форума: Как в программе сохранить настройки?

    Вопрос:
    Автор вопроса: Jen

    Есть программа, которая сохраняет свой настройки в самой же себе. Можно ли такое сделать на Basic?

    Ответы:

    Атор: JEDI
    Открываешь Для считки свой ехе и дописываешь в конец то что надо, а потом читешь!

    Автор: E-Man
    'ЗАПИХАТЬ:

    open app.path & "\" & app.exename for binary as #1
    a=vbcrlf & "###"
    put #1,lof(1)+1,a
    a= "12345"
    close 1

    'ВЫТАЩИТЬ:

    open app.path & "\" & app.exename for binary as #1
    do
    line input #1, a
    loop until a="###"
    line input #1,a
    msgbox a
    'вылезет окно 12345
    close 1
    Код писал не в IDE - если че подправь...

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

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

    Вопросы:

    Автор вопроса: Maxim

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

    Как сделать, чтобы скрытые папки отображались в DirListBox’e?

    Автор вопроса: Rex

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

    Как в реестре (в любое его место) записать, прочитать, удалить ключи и значения?

    Автор вопроса: Алексей Самарцев

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

    Как работая напрямую с объектами ADODB.Connection и ADODB.Recordset выполнить асинхронный запрос к БД?

    Автор вопроса: Вячеслав Л.

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

    Как для элемента DataGrid програмно задать формат столбца?

    Автор вопроса: Maxim

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

    Помогите написать код программы который при наведении курсора на папку в Explorer показывал бы ее размер на Form. Или хотя бы ссылку на инфу или исходники или API функции которыми можно воспользоваться.

    Ответы:

    Вопрос:

    У немя возник тут такой вопрос
    Как сделать так что-бы можно было обводить несколько контролов во время работы программы (типа как в VB во время разработки)

    Ответ:

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

    load command(command1.count)
    with command1(command1.count - 1)
    .visible = true
    .move rnd * 500,rnd * 500
    .caption = command1.count - 1
    end with

    Вопрос:

    Подскажите пожалуйста или пришлите кусочек исходника как считать данные из памяти или записать при помощи VB

    Ответ:

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

    Что конкретно необходимо записать в память и куда?
    Можешь использовать функцию CopyMemory, описание в МСДН.

    Вот пример программки, читающей весь файл и отображающей её на некоторую область памяти т.н. filemapping. А затем программа работает с выделенной областью памяти.

    Тело модуля:
    Option Explicit
    Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

    Public Declare Function FlushFileBuffers Lib "kernel32" (ByVal hFile As Long) As Long

    Public Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
    Public Const GENERIC_READ = &H80000000
    Public Const GENERIC_WRITE = &H40000000
    Public Const FILE_SHARE_READ = &H1
    Public Const FILE_SHARE_WRITE = &H2
    Public Const OPEN_EXISTING = 3

    Public Declare Function CreateFileMapping Lib "kernel32" Alias "CreateFileMappingA" (ByVal hFile As Long, ByVal lpSecurityAttributes As Long, ByVal flProtect As Long, ByVal dwMaximumSizeHigh As Long, ByVal dwMaximumSizeLow As Long, ByVal lpName As String) As Long
    Public Const PAGE_NOACCESS = &H1
    Public Const PAGE_READONLY = &H2
    Public Const PAGE_READWRITE = &H4
    Public Const PAGE_WRITECOPY = &H8
    Public Const PAGE_EXECUTE = &H10
    Public Const PAGE_EXECUTE_READ = &H20
    Public Const PAGE_EXECUTE_READWRITE = &H40
    Public Const PAGE_EXECUTE_WRITECOPY = &H80
    Public Const PAGE_GUARD = &H100
    Public Const PAGE_NOCACHE = &H200

    Public Declare Function MapViewOfFile Lib "kernel32" (ByVal hFileMappingObject As Long, ByVal dwDesiredAccess As Long, ByVal dwFileOffsetHigh As Long, ByVal dwFileOffsetLow As Long, ByVal dwNumberOfBytesToMap As Long) As Long
    Public Const SECTION_EXTEND_SIZE = &H10
    Public Const SECTION_MAP_EXECUTE = &H8
    Public Const SECTION_MAP_READ = &H4
    Public Const SECTION_MAP_WRITE = &H2
    Public Const SECTION_QUERY = &H1
    Public Const FILE_MAP_COPY = SECTION_QUERY
    Public Const FILE_MAP_READ = SECTION_MAP_READ
    Public Const FILE_MAP_WRITE = SECTION_MAP_WRITE

    Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
    Public Declare Function UnMapViewOfFile Lib "kernel32" Alias "UnmapViewOfFile" (ByVal lpBaseAddress As Long) As Long

    'получает параметром путь к файлу(любому)
    Sub FileRead(sFileName As String)
    Dim iFileSize As Long
    Dim iFileHandle As Long
    Dim iFileMappingHandle As Long
    Dim iFileBaseAddress As Long
    Dim iFileEndAddress As Long
    Dim bFile() As Byte
    Dim bChar As Byte
    Dim i As Long
    Dim sString As String
    Dim iReturnValue As Long

    'это размер файла
    iFileSize = FileLen(sFileName)

    ' открывает существующий файл
    iFileHandle = CreateFile(sFileName, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, OPEN_EXISTING, 0&, 0&)
    ' создает объект маппинга
    iFileMappingHandle = CreateFileMapping(iFileHandle, 0&, PAGE_READWRITE, 0&, iFileSize, 0&)
    'получает базовый адрес памяти
    iFileBaseAddress = MapViewOfFile(iFileMappingHandle, FILE_MAP_WRITE, 0&, 0&, 0&)
    'получает общий размер выделенной памяти
    iFileEndAddress = iFileBaseAddress + iFileSize
    ' в цикле ксорит весь файлик по 7 и соответственно записфывает обратно
    For i = iFileBaseAddress To iFileEndAddress
    'скопировать в переменную байт
    Call CopyMemory(bChar, ByVal i, 1)
    'отксорить его по 7
    bChar = bChar Xor 7
    ' записать обратно в файл
    Call CopyMemory(ByVal i, bChar, 1)
    Next i

    'закрыть все дескрипторы
    iReturnValue = UnMapViewOfFile(iFileBaseAddress)
    iReturnValue = CloseHandle(iFileMappingHandle)
    iReturnValue = CloseHandle(iFileHandle)
    End Sub

    Вопрос:

    Скажите, пожалуйста, как сделать контрол DirListBox в виде проводника?

    Ответ:

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

    Никак!!!
    DirListBox - это готовый контрол!
    Чтобы его исправить тебе нужен его исходник.
    Легче написать свой контрол, который будет представлять совокупность двух - TreeView и ListView.
    Синхронизируй их работу и дерзай!

    Вопрос:

    Как можно в проге сделать так, чтобы она была поверх всех окон (как у StatWin 5.5), и запретить или что-то в этом роде доступ к другим программам(меню и др.) кроме этой. И как скрыть её от Ctrl+Alt+Del?

    Если знаете, то киньте мне на мыло или опубликуйте здесь.

    Ответ:

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

    'Функция нерегистрации приложения
    Public Declare Function RegisterServiceProcess Lib "kernel32" (ByVal dwProcessId As Long, ByVal dwType As Integer) As Long
    'вызов
    Call RegisterServiceProcess(0, 1)
    '*****************************************************************
    НО БУДЬ ОСТОРОЖЕН! В ВинНТ она не сработает, вызвав ошибку вызова
    несуществующей функции из кернел32. Поэтому советую проверить перед
    вызовом ОС.
    '*****************************************************************

    Public Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long
    Public Type OSVERSIONINFO
    dwOSVersionInfoSize As Long
    dwMajorVersion As Long
    dwMinorVersion As Long
    dwBuildNumber As Long
    dwPlatformId As Long
    szCSDVersion As String * 128
    End Type
    Public Const VER_PLATFORM_WIN32_WINDOWS = 1

    'полный вызов с проверкой
    Dim udtOSVer As OSVERSIONINFO
    udtOSVer.dwOSVersionInfoSize = Len(udtOSVer)
    Call GetVersionEx(udtOSVer)

    If udtOSVer.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS Then
    Call RegisterServiceProcess(0, 1)
    End If

    Ответ:

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

    Public Const HWND_TOPMOST = -1
    Public Const HWND_NOTOPMOST = -2
    Public Const SWP_NOACTIVATE = &H10
    Public Const SWP_SHOWWINDOW = &H40
    Public Const SWP_NOMOVE = &H2
    Public Const SWP_NOSIZE = &H1
    Declare Sub 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)
    'Поверх всех окон
    SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
    'Не поверх всех окон
    SetWindowPos Me.hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE

    Вопрос:

    У меня пара вопросиков:

    1. Возможно ли сделать под VB форму нестандартной геометрии? К примеру, с отверстиями, скруглёнными краями и т.п. В Delphi такая фишка имеется. Если можно, примерчик пжалста...

    2. Как проверить, существует ли такая-то директория или файл в ней?

    Ответ:

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

    По твоему второму вопросу:

    Создай объект FileSystemObject.(Project->References->Microsoft Scripting RunTime), а дальше так:

    Dim fso As New FileSystemObject
    Dim bFolderExist As Boolean
    Dim bFileExist As Boolean

    bFolderExist = fso.FolderExists("c:\DISTR")
    bFileExist = fso.FileExists("c:\autoexec.bat")

    Иначе воспользуйся встроенной функцией ВБ - Dir. Возващает имя файла или пустую строку.

    Ответ:

    Автор ответа: Nechaev Sergey

    1. посмотри в сети - там много всего на эту тему. Я даже где-то видел класс, которому даешь картинку и форму, он вырезает на форме картинку, делая дырку на месте белого цвета.

    2. просто попытайся обратиться к этой директории и отлови ошибку Доступ закрыт или путь не существует (номер не помню, посмотри). Если ошибка произошла, значит директория не создана, если обращение прошло нормально, значит папка есть.

    Ответ:

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

    На Vbnet.ru есть статья про окна нестандартной формы.
    А чтобы проверить, существует ли файл/папка используй Dir(PathToYourFile).
    Если возвращает пустую строку, значит файла нет.

    Ответ:

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

    1. Да можно
    Напривет элиптическую - при помощи CreateEllipticRgn и Set WindowRgn API-функций

    private sub form_load()
    dim region as long
    region=CreateEllipticRgn(0,0,200,100)
    Set WindowRgn hWnd,region, true
    end sub

    2. Открываешь файл и проверяешь, если ошибки нет (Err.Number=0) - файл существует.

    Ответ:

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

    Привет! Для начала ответ на второй вопрос:
    Используй функцию CurDir
    Пример:

    Const testBD = "tm1.tmb"
    Const rezBD = "tm2.tmb"
    Private Sub Form_Load()
    'при загрузке определяем текущий каталог и проверяем наличие в нем файлов БД
    If Len(Dir(CurDir & "\" & testBD)) > 0 And Len(Dir(CurDir & "\" & rezBD)) > 0 _
    Then
    Test_Connect_Path = "Provider=Microsoft.Jet.oledb.4.0; Data Source=" & CurDir & "\" & testBD
    Rez_Connect_Path = "Provider=Microsoft.Jet.oledb.4.0; Data Source=" & CurDir & "\" & rezBD
    Else
    WrongTimer.Enabled = True
    End If
    End Sub

    А теперь ответ на второй вопрос (эта инфа по поводу нестандартных форм заимствована из статьи Сергея Миллера.)

    ---Начало цитаты---

    "Создание нестандартных окон - это просто!
    В Visual Basic очень легко создавать простые виндосовские окна! Но ведь они такие прямоугольные серые и некрасивые... К сожалению в VB нет интегрированных методов решения этой проблемы и нам приходится прибегать к помощи API-функций. В этой статье я покажу почти все возможности использования регионов: регионы любой формы, регионы с загруглёнными углами и комбинирование регионов! Итак, начнём!
    Окна любых форм
    1.Конечно же нужно создать стандартный EXE-проект. Теперь создайте единственный на форме объект Image. Назовём его stern.
    2.Так, начнём с создания регионов любой формы. Мне кажется красивее будет если на форме будет рисунок, вокруг которого мы и "отрежем" лишнее. Поэтому запустим Paint, аттрибуты рисунка установим 249 по высоте и 313 по ширине. Теперь нарисуем самый угловатый рисунок - звёздочку (как у октябрят :)), примерно такую:

    Кто очень талантливый может посерёдке нарисовать вoждя мирового пролетариата - на регионы это никак не повлияет :)))!
    3.Сохраните рисунок. Теперь объекту image по имени stern присвоим этот рисунок.
    4.Присвоили? Теперь сдвиньте его подальше вниз за пределы формы, чтобы он не мешался, а размеры формы установите равными: Width = 4710, Height = 3780. В свойстве BorderStyle установите флажок 0-None. Свойство AutoRedraw установите равным True. Готово! Теперь приступим к созданию!
    5.Сделайте двойной клик по форме и впишите в раздел General Declarations:
    Private Declare Function SetWindowRgn Lib "user32" (ByVal hwnd _
    As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
    Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint _
    As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
    Private Type POINTAPI
    X As Long
    Y As Long
    End Type
    Dim P(10) As POINTAPI
    Теперь объясню зачем это. Первая API-функция SetWindowRgn так сказать накладывает созданный регион на окно. Те части которые остались за пределами региона исчезают. Знаете с чем это можно сравнить? Есть такие специальные жестянные формочки для выпечки печения. Они все в форме всяких цветков, звёздочек, колокольчиков и т.д. Так вот я видел пару раз как ими работают: лежит, например, на столе кусок теста и человек просто ложит эти острые формочки на него и выдавлевает формы этих самых цветков, звёздочек, колокольчиков!!! По такому же принципу и взамодействует окно с регионом. Наша же задача - это именно создание "формочки" для формы ;) Передаваемые значения это:
    hwnd - идентификатор окна, на котором нужно "выдавить" форму
    hRgn - "формочка" для окна
    bRedraw - перерисовывать ли окно после "выдавления"?
    Для того, чтобы создать регион-"формочку" нам нужна вторая вторая API-функция CreatePolygonRgn. Состоит регион из n-ого количества точек, которое Вы и должны задать! Т.е., например, что бы описать звезду, нам нужны все её точки, как внутрение, так и наружние. Как их всех найти мы рассмотрим позже, а сейчас посмотрим на параметры:
    lpPoint - первая точка региона.
    nCount - количество точек
    nPolyFillMode - описание метода заливки полигона
    Каждая точка на форме, как известно, имеет свои координаты - по иксу и по игреку. Поэтому каждая точка должна содержаться в переменной-ящичке POINTAPI. Всего точек у звезды десять (5 внутренних и пять наружних), но регион это замкнутая форма, поэтому какaя-то точка будет подсчитана дважды, как первая и как последняя. Итак нам нужны одиннадцать точек и каждая имеет свои координаты. Для этого-то мы и объявили массив P по типу POINTAPI. В скобках стоит десять, но, т.к. счёт идёт у Бэйсика с нуля, то и значений в нём одиннадцать.
    6.А теперь в событие Form_Load впишем:
    Picture = stern
    Строка выглядит немного странновато, да. Зато короче уже не придумаешь. Это значит:
    Me.Picture = stern.Picture
    Умный VB определил, что свойству формы Picture ничего не нужно, как такого же вида свойство. Это можно делать со строковыми свойствами:
    Label1 = "ABCVB"
    Но это не относится к теме.
    Теперь при загрузки формы на ней будет появляться звезда.
    7.А вот теперь нам надо найти все точки, вокруг которых будет описан регион. Снова кликаем на форме и в окне Code в раздел General Declarations временно объявляем переменную-счётчик m, которая будет подсчитывать и подставлять точки региона:
    Dim m As Integer
    Теперь выбираем событие Form_MouseDown и вписываем:
    Private Sub Form_MouseDown(Button As Integer, Shift As Integer, _
    X As Single, Y As Single)
    Debug.Print "P(" & m & ").X=" & X / Screen.TwipsPerPixelX _
    & ":" & "P(" & m & ").Y=" & Y / Screen.TwipsPerPixelY
    m = m + 1
    End Sub
    Что делает эта процедура? Нет, сначала объясню, что должны сделать Вы. Вам нужно запустить проект и клинуть на каждой из одиннадцати кнопок звёздочки, а процедура Mouse_Down будет в свою очередь генерировать код присвоения каждой точкe её координат в пикселах. Код потом можно будет прямо вставить в программу. Появляться будут строки примерно следующего содержания:
    P(0).X = 132: P(0).Y = 6
    P(1).X = 173: P(1).Y = 64
    P(2).X = 303: P(2).Y = 71
    P(3).X = 213: P(3).Y = 123
    P(4).X = 291: P(4).Y = 241
    P(5).X = 157: P(5).Y = 154
    P(6).X = 5: P(6).Y = 239
    P(7).X = 78: P(7).Y = 103
    P(8).X = 10: P(8).Y = 58
    P(9).X = 100: P(9).Y = 60
    Так было у меня. Теперь вырежте этот код в событие Form_Load и уже вручную допишите код первой-последней точки с координатами точно, как у первой точки:
    P(10).X = 132: P(10).Y = 6
    8.Теперь строку Dim m As Integer и событие Form_MouseDown удалите вообще - они нам больше не нужны - координаты точек у нас есть. Тепeрь осталось всего-то создать регион и выдавить его на форме! В событие Form_Load допишем под присвоением координaт точек:
    Dim Rgn As Long
    Эта переменная будет содержать регион.
    Теперь чуть ниже впишем строку создания региона:
    Rgn = CreatePolygonRgn(P(0), 10, 0)
    и ещё чуть ниже выдавливем форму:
    Call SetWindowRgn(hwnd, Rgn, True)
    Готово! Теперь просто запускаем. Любуемся! По этому ёе принципу можно создавать окна немысленных форм!!! Конечно, чем больше задано точек, тем красивее и точнее будет форма. Так же можно создавать точки во время передвижения мыши по форме. Точек будет конечно же много, но Вам ведь нужно просто их переставить в другое окно и всё! Сделать это надо так:
    В разделе General Declarations объявляем переменную
    Dim IfMove As Boolean
    Dim m As Integer

    Теперь вставьте три следующих события чуть ниже:
    Private Sub Form_MouseUp(Button As Integer, Shift As _
    Integer, X As Single, Y As Single)
    IfMove = False
    End Sub
    Private Sub Form_MouseDown(Button As Integer, Shift _
    As Integer, X As Single, Y As Single)
    IfMove = True
    End Sub
    Private Sub Form_MouseMove(Button As Integer, Shift As _
    Integer, X As Single, Y As Single)
    If IfMove Then
    Debug.Print "P(" & m & ").X=" & X / Screen.TwipsPerPixelX _
    & ":" & "P(" & m & ").Y=" & Y / Screen.TwipsPerPixelY
    m = m + 1
    End If
    End Sub
    А теперь последняя проблемка - передвижение формы по экрану!
    Объявим переменную, проверяющую двигается ли мышь и две переменные для значений положения мышки во время нажатия и добавим три процедуры:
    Dim IfMove As Boolean
    Dim X1 As Integer
    Dim Y1 As Integer
    Private Sub Form_MouseDown(Button As Integer, Shift _
    As Integer, X As Single, Y As Single)
    IfMove = True
    X1 = X
    Y1 = Y
    End Sub
    Private Sub Form_MouseUp(Button As Integer, Shift As _
    Integer, X As Single, Y As Single)
    IfMove = False
    End Sub
    Private Sub Form_MouseMove(Button As Integer, Shift As _
    Integer, X As Single, Y As Single)
    If IfMove Then
    Move Left + X - X1, Top + Y - Y1
    End If
    End Sub
    А вот второй способ осуществим при помощи API функции SendMessage. В раздел General Declarations допишем следующие API-функции:
    Private Declare Function SendMessage Lib "user32" Alias _
    "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
    ByVal wParam As Long, lParam As Any) As Long
    'эта функция "захватывает" мышку для выполняемого задания
    'зачем - не знаю сам! Неужели нельзя договориться? :-)))
    Private Declare Sub ReleaseCapture Lib "user32" ()
    Добавим процедуру передвижения иышки:
    Private Sub Form_MouseMove(Button As Integer, Shift As _
    Integer, X As Single, Y As Single)
    'если была нажата левая кнопка вызываем процедуры
    If Button = 1 Then
    Call ReleaseCapture
    Call SendMessage(hwnd, &HA1, 2, 0&)
    End If
    End Sub
    Окна c закругленными углами
    А вот это ещё проще! А всё-таки тоже необычно - часто Вы встречаете окна с закругленными углами???
    1.В раздел General Declarations допишем следующую API-функцию:
    Private Declare Function CreateRoundRectRgn Lib "gdi32" _
    (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, _
    ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long
    Её параметры:
    X1,Y1 - координаты верхней левой точки прямоугольника, углы которого надо закруглить
    X2,Y2 - координаты нижней правой точки
    X3 - ширина овала, применяемого для закругления углов
    Y3 - его высота
    2.Теперь попробуем создать такой. В событии Form_Load закомментируйте строку Picture = stern, чтобы картинка больше не появлялась. А под строкой
    Dim Rgn As Long
    объявите ещё одну переменную для региона:
    Dim Rgn2 As Long
    Теперь создадим второй регион:
    Rgn2 = CreateRoundRectRgn(0, 0, Width / Screen.TwipsPerPixelX, _
    Height / Screen.TwipsPerPixelY, 50, 50)
    В качестве аргументов мы передаём координаты формы в пикселах а высоту и ширину овала задаём одинаковой, тем самым углы будут именно закруглены, а не "заовалены" :).
    Теперь чуть ниже вставьте эту строку, окраски формы в красный цвет:
    BackColor = QBColor(12)
    И строку
    Call SetWindowRgn(hwnd, Rgn, True)
    исправьте на
    Call SetWindowRgn(hwnd, Rgn2, True)
    Запускайте! Потрясающе, неправда ли !? Но вот если бы была ещё рамка, было бы просто неотразимо. Но ведь это тоже осуществимо! Правда совсем не такая, как у стандарного окна, но всё-таки!
    3.Для этого можно применить API-функцию FrameRgn. Итак, под все остальные API-функции допишем ещё одну:
    Private Declare Function FrameRgn Lib "gdi32" (ByVal hDC As Long, _
    ByVal hRgn As Long, ByVal hBrush As Long, ByVal nWidth As Long, _
    ByVal nHeight As Long) As Long
    Передаваемые параметры:
    hDC - handle Device Context (я не понимаю что это, но что-то на подобии hWnd - может идентификатор какой?...)
    hRgn - регион, который надо "обрамить"
    hBrush - что это за "щётка" не понимаю тоже, но её надо прежде тоже создать (!) скорее всего это вид рисования рамки.
    nWidth, nHeight - толшина рамки по высоте и ширине
    И, как я уже сказал, нам нужна ещё одна API-функция для создания "щётки" (дописываем под первую):
    Private Declare Function CreateSolidBrush Lib "gdi32" _
    (ByVal crColor As Long) As Long
    Внимание! Для FrameRgn тоже нужен регион! Ведь рамку можно нарисовать и на квадратном окне и выглядеть она будет в зависимости от региона.
    Теперь в событие Form_Load перед строкой
    Call SetWindowRgn ...
    вставьте строку
    Call FrameRgn(hDC, Rgn, CreateSolidBrush(QBColor(0)), 3, 3)
    Запускайте!
    Комбинирование регионов
    А ещё регионы можно комбинировать! Нужно это правда не так часто но, когда вам нужна форма с одной стороны полукруглая, а с другой выперающие углы, штыри и т.д., то без комбинирования регионов Вам уже не обойтись! Прежде чем начать введите в Genral Declarations:
    Private Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn _
    As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal _
    nCombineMode As Long) As Long
    Параметры:
    hDestRgn - регион, которому возвращается полученный результат из двух регионов
    hSrcRgn1 - первый регион
    hSrcRgn2 - второй регион
    nCombineMode - методы комбинирования

    Сами методы (есть ещё несколько, но эти самые основные):
    'отображаются только те точки, которые принадлежат
    'одному И второму региону
    Const RGN_AND = 1
    'отображаются только те точки, которые принадлежат
    'к хотябы одному региону
    Const RGN_OR = 2
    'отображаются только те точки, которые принадлежат
    'ТОЛЬКО одному из двух регионов
    Const RGN_XOR = 3
    'отображается разница регионов, "остатки" одного от другого
    Const RGN_DIFF = 4
    Так, теперь можно было бы скомбинировать регионы и для эффективности они должны быть разные по размерам, т.к. звезда полностью умещается в форме с закругленными углами. Поэтому исправьте строку:
    Rgn2 = CreateRoundRectRgn(0, 0, Width / Screen.TwipsPerPixelX, _
    Height / Screen.TwipsPerPixelY, 50, 50)
    на
    Rgn2 = CreateRoundRectRgn(0, 0, (Width / Screen.TwipsPerPixelX) - 100, _
    (Height / Screen.TwipsPerPixelY) - 100, 50, 50)
    Т.е. регион был уменьшен на сто никселов.
    Всё, осталось теперь только поместить следующую строку в тоже событие Form_Load, но перед строкой Call SetWindowRgn...:
    Call CombineRgn(Rgn2, Rgn, Rgn2, RGN_OR)
    В этом случае регион, в который будет помещён результат мы взяли формы с круглыми углами и метод комбинирования выбрали RGN_OR, т.е. будут отображены все точки, которые принадлежат к хотябы одному из регионов. А создание круглых и овальных регионов я уже рассматривал в примере изменения контуров формы и это ещё проще. Теперь пробуйте, эксперементируйте наслаждайтессссь... :)
    Ну, - как говорил Алексей Булдаков в "Осебенностях национальной охоты", - всё, что знал, рассказал!"

    ---Конец цитаты---

    Вопрос:

    Как определить координаты курсора в TextBox или RichTextBox (т.е. номер текущей строки и номер текущего символа на этой строке) с последующей их передачей в StatusBar.
    Это нужно для контроля при вводе форматированных данных

    Ответ:

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

    Используй свойство SelStart в TextBox.
    'a = Text1.SelStart

    Вопрос:

    Некоторые программы, которые я создал,ну не как не хотят запускаться на "компе" моего друга. При запуске выдаётся ошибка о повреждённом файле динамической библиотеки. Кто знает, подскажите в чём дело?

    Ответ:

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

    На "компе" твоего друга нет библиотек и/или контролов, необходимых для работы твоих программ. Чтобы всё было, используй Package & Deployment Wizard из пакета Microsoft Visual Basic 6.0 Tools

    Ответ:

    Автор ответа: .::neo::.

    А ты попробуй на компе твоего друга зарегистрировать библиотеку regsvr32 MSVBVM32.DLL.

    Ответ:

    Автор ответа: Nechaev Sergey

    Раз выдается соответствующее сообщение, значит файл или вообще отсутствует, или имеет неверную версию либо поврежден. Принеси от себя рабочий файл и положи на место глючного.

    Ответ:

    Автор ответа: Vladimir [PRC]

    Скорее всего разные версии библиотек, просто скопируй DLL или OCX на которую ругается прога со своего компьютера на второй или создай дистрибутив приложения и установи прогу установщиком он сам установит все файлы.

    Ответ:

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

    Видимо у твоего друга никогда не стоял...VB. Поэтому на его компе нет нужных библиотек.
    Есть замечательная утилита VB Power Wrap, которая позволяет запаковать в EXEшник все необходимые dll-ы и ocx-ы . Если надо вышлю.

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

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

    наверх

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


Выпуск 171.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

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

    Обратите внимание на раздел "VBNet CD '06 2003"!
    Читайте!

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

    • Книги

    • VBNet CD '06 2003

    • Установка и получение флага
    • Время выполнения кода
    • Использование WMI
    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти здесь.

    наверх

    VBNet CD '06 2003

    VBNet.Ru представляет новый компакт диск "VBNet CD '06 2003"!
    CD содержит только новые материалы, почти всё, содержавшееся на предыдущих CD было удалено! Что же нового на CD?
    Добавлено 19 программ в раздел "Софт". Главная программа на этом CD - DirectX 9 SDK. Это пакет для разработки мультимедийных приложений (графика, 3D, звук и т.д.). Имеются примеры, в том числе и на VB .NET.
    Другие программы:
    • .NET Framework 1.1 - новая версия .NET Framework
    • Internet Explorer Web Controls - пакет бесплатных контролов для ASP .NET с исходным кодом
    • Crystall Reports .NET 10 Service Pack 1 - Пакет обновления для Crystall Reports .NET 10.
    • WMI Core Components для Win 9x - ядро WMI (Windows Management Instrumentation) для Win 9x.
    • Terrarium Client - Игра Terrarium.
    • Test Recorder - Программа для автоматизации процесса тестирования .NET приложений.
    • TierDeveloper 2.0
    • MDAC 2.7 - Компоненты для работы с БД от Microsoft. Версия 2.7.
    • Crystall Reports 9 Evaluation Kit - Популярный компонент для генерирования отчётов.
    • MicroGerakL - Бесплатный редактор иконок.
    • EXEScope - редактор ресурсов
    • FileMon - бесплатная программа для мониторинга работы с файловой системой.
    • RegMon - бесплатная программа для мониторинга работы с реестром.
    • Nero Burning Rom 5.5.10.28 - новая версия программы для записи CD-R и CD-RW дисков.
    • Resource Hacker - бесплатный редактор ресурсов
    • SoundForge - Утилита для создания и редактирования звука.
    • WinRAR v 3.22 - архиватор
    Добавлено 19 новых ActiveX и .NET компонентов.
    Добавлено 11 интересных книг о Visual Basic и .NET на английском языке.
    В разделе "Примеры" несколько новых примеров на Visual Basic .NET по работе с Direct3D 9 и .NET Framework. 10 примеров по программированию под новую версию Office - Office 2003. А также движок форума на ASP .NET с исходниками!
    В разделе "Эксклюзив" моя новая статья о криптографии в .NET и несколько примеров на Visual Basic .NET о симметричном шифровании и использовании WMI.
    А также коллекция музыки в формате MIDI и болшая коллекция иконок!
    Ну и конечно свежая версия сайта VBNet.Ru. С момента выхода предыдущего выпуска "VBNet CD" на VBNet.Ru появилось 7 статей, 8 ActiveX-контролов, 44 примера и около 5000 сообщений в форуме!
    Полное содержание диска можно скачать здесь: http://vbnet.ru/vbshop/vbnetcd062003.zip.
    Цена диска, включая почтовые расходы: 100 рублей. Диск распространяется по почте наложенным платежом.
    Магазин компакт-дисков был немного улучшен. Теперь он больше похож на солидные интернет-магазины. Вы можете заказать сразу несколько дисков (сейчас в нашем магазине продаётся 4 диска). Действует система скидок постоянным покупателям.
    Наш магазин расположен по адресу http://vbnet.ru/vbshop/cdshop.asp
    Мы всегда рады Вас видеть!

    наверх

    Установка и получение флага

    .NET.
    Две функции для работы с флагами. Если вы не знаете, что это такое, поясню. Часто в одной переменной целого типа (обычно Integer или Long) хранится несколько логических значений. Каждое значение занимает один бит. Такое часто встречается в API-функциях.
    Функция SetFlag устанавливает флаг, а функция GetFlag получает значение флага.

    'Устанавливает флаг. Передаётся исходная переменная, устанавливаемый флаг и значение флага (True или False)
    'Возвращается переменная, в которой установлен нужный флаг.
    Public Function SetFlag(ByVal Flags As Integer, ByVal Flag As Flags, ByVal Value As Boolean) As Integer
    If Value = True Then
    Return (Flags Or Flag)
    Else
    Return (Flags And (Not Flag))
    End If
    End Function

    'Получает значение флага. Передаётся исходная переменная и флаг. Возвращается значение флага - True или False
    Public Function GetFlag(ByVal Flags As Integer, ByVal Flag As Flags) As Boolean
    Return Convert.ToBoolean(Flags And Flag)
    End Function

    наверх

    Время выполнения кода

    .NET.
    Часто необходимо измерить время выполнения куска кода. Как это сделать? В .NET это делатется с помощью классов DateTime и TimeSpan.

    Dim datebefore As Date 'Здесь хранится время запуска кода
    Dim dateafter As Date 'Здесь время окончания кода
    Dim tspan As New TimeSpan 'Это для вычисления разницы между dateafter и datebefore

    'Засекаем время
    datebefore = Now

    '---здесь располагается код---

    'Смотрим время
    dateafter = Now
    tspan = dateafter.Subtract(datebefore)
    MsgBox("Время выполнения: " & tspan.TotalMilliseconds.ToString)

    наверх

    Использование WMI

    .NET.
    WMI (Windows Management Instrumentation) - это Microsoft'ская реализация WBEM, система для управления Windows. С помощью WMI можно получить много очень поезной информации, например, серийный номер, дату выпуска и название BIOS, модель процессора, объём оперативной памяти, информацию о логических дисках и часовых поясах и т.д.
    Ниже приведён пример получения информации о BIOS. Положите на форму TextBox с именем txtOutput, Multiline=True. Хотя можно обойтись и без этого, просто вместо вывода информации в TextBox сделайте вывод в консоль.
    Да, чуть не забыл... Добавьте в Project|Add Reference ссылку на System.Management и импортируюте пространство имён System.Management, вставив вверху файла .vb такую строку:

    Imports System.Management

    'Очищаем TextBox
    txtOutput.Text = ""

    Try 'Обработчик ошибок
    Dim searcher As New ManagementObjectSearcher 'Создаём объект ManagementObjectSearcher
    searcher.Query = New SelectQuery("Select * From Win32_BIOS") 'Задаём запрос
    'Запрос пишется на языке структурированных запросов SQL
    Dim obj As ManagementObject 'Здесь будет храниться объект WMI
    Dim prop As PropertyData 'А здесь - свойство
    For Each obj In searcher.Get 'Получаем объекты и перебираем их в цикле For Each
    For Each prop In obj.Properties 'Получаем свойства объекта obj и перебираем их в цикле For Each
    'Здесь пришлось вставить проверку на Nothing, потому что при попытке конвертировать Nothing в строку методом ToString возникает ошибка
    If IsNothing(prop.Value) = True Then
    txtOutput.Text &= prop.Name & " = {Nothing}" & vbCrLf
    Else
    txtOutput.Text &= prop.Name & " = " & prop.Value.ToString & vbCrLf
    End If
    Next
    Next
    Catch exp As Exception
    MsgBox(exp.Message, MsgBoxStyle.Critical)
    End Try

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

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

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

    Вопросы:

    Автор вопроса: Rex

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

    Как можно прикрепить звук (wav,mp3) к программе, чтобы потом его воспроизвести (через Mci)?

    Автор вопроса: Rex

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

    Как узнать загруженность процессора?

    Автор вопроса: Rex

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

    Как поместить в панель задач иконку, клик по которой позволит открыть программу, контекстное меню.

    Автор вопроса: FAS_WL

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

    Есть такая проблема при посимвольной обработке строки...

    Dim TMP As String
    Dim TMP2 As String
    Dim X As Integer

    For X = 1 to Len(TMP) Step 0
    TMP2 = TMP2 & Mid(TMP, X, 1)
    X = X + 1
    Next X

    Проблема в том, что перебор строки состоящий всего из 10 тыс. символов занимает самое малое минуту, а если требуется перебрать 5 000 000 символов, например файл обработать... как можно повысить скорость работы? Повышал приоритет программы до RealTime, но это почти не заметно...
    Буду благодарен любому совету, или примеру намыленному на SoundMuzic@narod.ru;

    Автор вопроса: юра

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

    Как программировать LPT - порт?

    Автор вопроса: Vovan

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

    У меня возник такой вопрос>>> Имеется база данных Аксэс. Как можно сделать,чтобы например со странички Searhc.asp ввести в поле слово и в базе данных это все проверилось на наличее этого слова в тексте и если такое слово присутствует, вывести на страничку текст, в котором это слова есть. Другими словами мне нужем поиск по базе данных для ASP программирования! Прошу помочь в моей сложной работе.

    Автор вопроса: Анатолий

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

    Как отсортировать двумерный массив раямерностью 10Х3 по первому столбцу, но при этом сохранить первоначальную свяяь между строками массива, если можно пришлите кусок кода?

    Автор вопроса: Игорь

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

    Как свяяать CHM-файл справки, созданный с помощью HTML Help Workshop, с конкретными объектами VB-приложения для получения контекстно-зависимой
    помощи?

    Автор вопроса: Тарасова Надежда Сергеевна

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

    Как вызвать хранимую процедуру c SQL Server'a в коде программы на VB6 ?

    Автор вопроса: ]CBK[C...R...a...S...H

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

    Люди кто может сказать реально VB.NET отличается от VB?

    Автор вопроса: CRAZYDIMA

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

    Народ, кто-нибудь делал в ListBox в ВБ6.0 плоские полосы прокрутки? Сам листбокс может быть плоским, а полосы - что-то не получается. догадываюсь, что можно отправить мессагу, а какую - не представляю, пока...

    Автор вопроса: Maxim

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

    Помогите написать код программы который при наведении курсора на папку в Explorer покаяывал бы ее раямер на Form. Или хотя бы ссылку на инфу или исходники или API функции которыми можно воспользоваться.

    Автор вопроса: 001

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

    Имеется некоторая проблема: нашел очень неплохую литературку (Книга +CD) по VB.Net. Стоит довольно приличных денег при довольнол подробной информации. Если кто имел дело с VB.Net подскажите, стоит ли нанего переходить и есть ли у него какие-нибудь особые требования к системе?

    Автор вопроса: Владимир

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

    Как на VB6 заполнить форму на web-странице и сделать клик на submit.
    При таких вариантах пишет ошибка метод не поддерживается

    Private Sub Command1_Click()
    Dim Vladimir As String
    Explorer.Visible = True
    Explorer.Navigate "C:\WINDOWS\Рабочий стол\RoboForm1.htm"
    Delay 2 'задержа необходима для загрузки страницы
    'Explorer.Document.Forms(0).Ваше_имя.Value = Vladimir
    Explorer.Document.Forms(0).Ваше_имя.Write "Vladimir"
    'Explorer.Document.InputBox.Ваше_имя.Put "Vladimir"
    'Explorer.Document.Forms(0).Добавить_новое.Click
    End Sub

    Где можно об этом узнать,или что нужно сделать.
    В интернете ничего не нашел.

    Автор вопроса: goodroman

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

    Как получиь Hwnd активного в данный момент окна, но выяванного не моей программой (т.е. GetActiveWindow не прокатывает)?

    Автор вопроса: Дмитрий

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

    Подскажите, если знаете, как можно изменить вид кодировки отображения файлов, загружаемых в richtextbox?
    Еще вопрос: как и с помощью какого control'а можно (если можно) загрузить word'овский документ для корректного просмотра и/или редактирования?

    Ответы:

    Вопрос:

    Как сделать help?

    Ответ:

    Автор ответа: Yuri Samsonov

    На первом диске Visual Studio есть HTML Help Workshop. Там в хэлпе подробно описано, как чего делать. Общий принцип: создаешь на каждую статью помощи HTML-страничку, затем в этой проге создаешь содержание и подключаешь ранее созданные статьи. При необходимости можно задать ключевые слова по которым потом будет осуществляться поиск в хэлпе. Компилируешь, получаешь .chm-файл - файл помощи. Кидаешь в папку к своему проекту; в проекте указываешь имя хэлп-файла (Preferences...->Help file).

    Вопрос:

    Подскажите пожалуйста или пришлите кусочек исходника как считать данные из памяти или записать при помощи VB

    Ответ:

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

    To CRAZYDIMA:
    Зачем человеку файл в память катать? Он трейнер к игрушке сделать хочет
    Вот так это делается:

    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 'У вас все должно быть в одну строчку
    Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessld As Long) As Long
    Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAcess As Long, ByVal blnheritHandle As Long, ByVal dwProcessld As Long) As Long
    Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAdress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
    Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddess As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWriten As Long) As Long
    Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

    Private Sub Command1_Click()
    Dim hwnd As Long
    Dim pid As Long
    Dim pHandle As Long
    Dim MemVal As Long
    MemVal = Val(Text1.Text)
    hwnd = FindWindow(vbNullString, "GTA3")
    If (hwnd = 0) Then
    MsgBox "нет такого окна"
    Exit Sub
    End If
    GetWindowThreadProcessId hwnd, pid
    pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
    If (pHandle = 0) Then
    MsgBox "немогу хендл взять"
    Exit Sub
    End If
    WriteProcessMemory pHandle, &H94139C, MemVal, 4, 0&
    WriteProcessMemory pHandle, &H9413A0, MemVal, 4, 0&
    CloseHandle pHandle
    End Sub

    Private Sub Command2_Click()
    Dim hwnd As Long
    Dim pid As Long
    Dim pHandle As Long
    Dim MemVal As Long
    hwnd = FindWindow(vbNullString, "GTA3")
    If (hwnd = 0) Then Exit Sub
    GetWindowThreadProcessId hwnd, pid
    pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
    If (pHandle = 0) Then Exit Sub
    ReadProcessMemory pHandle, &H94139C, MemVal, 4, 0&
    Text2 = Trim(Str(MemVal))
    CloseHandle pHandle
    End Sub

    Вопрос:

    У меня пара вопросиков:

    1. Возможно ли сделать под VB форму нестандартной геометрии? К примеру, с отверстиями, скруглёнными краями и т.п. В Delphi такая фишка имеется. Если можно, примерчик пжалста...

    2. Как проверить, существует ли такая-то директория или файл в ней?

    Ответ:

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

    Лови:
    http://www.azbukavb.narod.ru/vbcod/vbcod11.html

    Ответ:

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

    Почитай архивы. Там были примеры про XЗ--стиль кнопок и т.д.
    Узнать есть ли папка или файл - через функцию Dir()
    Прочти Help по ней - там все понятно.

    Ответ:

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

    Есть встроенные функции:

    Private Sub Command1_Click()
    Dim strTmp
    strTmp = Dir("c:\window*", vbDirectory) ' не путать с DirListBox!!!!!!!!
    Print strTmp
    strTmp = Dir("c:\windows\*.txt") 'выведет первый найденный файл с расширением *.txt
    Print strTmp
    End Sub

    'также
    'vbNormal = 0 'Обычный файл.Используется дефолтом
    'vbReadOnly = 1 'только чтение
    'vbHidden = 2 'скрытый
    'vbSystem = 4 'системный
    'vbVolume = 8 'метка тома
    'vbDirectory = 16 папка
    'комбинации атрибутов
    'vbHidden+vbDirectory выводит скрытые папки

    Вопрос:

    Как получить список компов локальной сети?

    Ответ:

    Автор ответа: •Creator•

    пользуйся этим:

    Private Declare Function WNetOpenEnum Lib "mpr.dll" Alias "WNetOpenEnumA" (ByVal dwScope As Long, ByVal dwType As Long, ByVal dwUsage As Long, lpNetResource As Any, lphEnum As Long) As Long

    Private Declare Function WNetEnumResource Lib "mpr.dll" Alias "WNetEnumResourceA" (ByVal hEnum As Long, lpcCount As Long, ByVal lpBuffer As Long, lpBufferSize As Long) As Long

    Private Declare Function WNetCloseEnum Lib "mpr.dll" (ByVal hEnum As Long) As Long

    Могу прислать пример после обменом инфой!
    Он выдаст список всех машин во всех рабочих группах, делал сам, жалко отдавать.
    пишите •Creator•

    Вопрос:

    Nuzhen instaler, kotoryj zainstalirujet .exe, .NET Framework a tak zhe Sybase db, t.e. setup, kotoryj zapuskajet drugije setupy. Mozhet uzhe jest gotovyje produkty?

    Ответ:

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

    Попробуй, например, "Innosetup" http://www.innosetup.com
    Он бесплатный, и довольно удобный. Текст инсталяшки храниться в файле скриптами. Можно в любое время че-то подредактировать и скомпилить инсталяшку заново...

    Вопрос:

    Как сделать, чтобы скрытые папки отображались в DirListBox’e?

    Ответ:

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

    Там вроде есть параметр hidden поставь там true.

    Вопрос:

    Помогите написать код программы который при наведении курсора на папку в Explorer показывал бы ее размер на Form. Или хотя бы ссылку на инфу или исходники или API функции которыми можно воспользоваться.

    Ответ:

    Автор ответа: Шкуренко Александр

    Простейший пример.

    Dim cnn As ADODB.Connection
    Dim rst As ADODB.Recordset
    Const ServerName = "comp\testserver" ' имя SQL сервера
    Const DataBase = "TestTable" 'имя базы данных

    Sub AsyncExecute()
    On Error GoTo ErrHandler
    Set cnn = New ADODB.Connection ' создаем объект
    ' подключаемся к базе данных (в этом примере к базе, находящейся на SQL сервере)
    ' если к базе Access, в строке коннекта нужно изменить провайдера и имя пользователя
    ' (обычно вместо "sa" - "admin")
    cnn.Open "Provider=sqloledb;Data Source=" _
    & ServerName & ";Initial Catalog=" _
    & DataBase, "sa", "sql"
    Set rst = New ADODB.Recordset ' создаем объект
    rst.Open "SELECT * FROM Table1", cnn, adOpenStatic, adLockBatchOptimistic, adAsyncExecute
    ' можно было вместо adAsyncExecute использовать adAsyncFetch( строки после заполнения кэша
    ' будут получены асинхронно)
    Timer1.Enabled = True ' включаем таймер
    Me.MousePointer = vbArrowHourglass
    Exit Sub
    ErrHandler:
    MsgBox Err.Number & " " & Err.Description, vbCritical + vbOKOnly
    End Sub

    Private Sub Timer1_Timer()
    If rst.State = adStateExecuting Then
    Exit Sub
    End If
    ' ОК. Все строки запроса получены
    Timer1.Enabled = False
    Me.MousePointer = vbArrow
    End Sub

    З.Ы. А вообще тема интерфейса баз данных довольно интересная. Если есть желание развивать тему дальше пишите.

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

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

    наверх

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


Выпуск 172.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

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

    Обратите внимание на раздел "VBNet CD '06 2003"!
    Читайте!

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

    • Книги

    • VBNet CD '06 2003

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Один момент из жизни форума: Чтение/запись файла в VB .NET

    • Доска объявлений

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

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    VBNet CD '06 2003

    VBNet.Ru представляет новый компакт диск "VBNet CD '06 2003"!
    CD содержит только новые материалы, почти всё, содержавшееся на предыдущих CD было удалено! Что же нового на CD?
    Добавлено 19 программ в раздел "Софт". Главная программа на этом CD - DirectX 9 SDK. Это пакет для разработки мультимедийных приложений (графика, 3D, звук и т.д.). Имеются примеры, в том числе и на VB .NET.
    Другие программы:
    • .NET Framework 1.1 - новая версия .NET Framework
    • Internet Explorer Web Controls - пакет бесплатных контролов для ASP .NET с исходным кодом
    • Crystall Reports .NET 10 Service Pack 1 - Пакет обновления для Crystall Reports .NET 10.
    • WMI Core Components для Win 9x - ядро WMI (Windows Management Instrumentation) для Win 9x.
    • Terrarium Client - Игра Terrarium.
    • Test Recorder - Программа для автоматизации процесса тестирования .NET приложений.
    • TierDeveloper 2.0
    • MDAC 2.7 - Компоненты для работы с БД от Microsoft. Версия 2.7.
    • Crystall Reports 9 Evaluation Kit - Популярный компонент для генерирования отчётов.
    • MicroGerakL - Бесплатный редактор иконок.
    • EXEScope - редактор ресурсов
    • FileMon - бесплатная программа для мониторинга работы с файловой системой.
    • RegMon - бесплатная программа для мониторинга работы с реестром.
    • Nero Burning Rom 5.5.10.28 - новая версия программы для записи CD-R и CD-RW дисков.
    • Resource Hacker - бесплатный редактор ресурсов
    • SoundForge - Утилита для создания и редактирования звука.
    • WinRAR v 3.22 - архиватор
    Добавлено 19 новых ActiveX и .NET компонентов.
    Добавлено 11 интересных книг о Visual Basic и .NET на английском языке.
    В разделе "Примеры" несколько новых примеров на Visual Basic .NET по работе с Direct3D 9 и .NET Framework. 10 примеров по программированию под новую версию Office - Office 2003. А также движок форума на ASP .NET с исходниками!
    В разделе "Эксклюзив" моя новая статья о криптографии в .NET и несколько примеров на Visual Basic .NET о симметричном шифровании и использовании WMI.
    А также коллекция музыки в формате MIDI и болшая коллекция иконок!
    Ну и конечно свежая версия сайта VBNet.Ru. С момента выхода предыдущего выпуска "VBNet CD" на VBNet.Ru появилось 7 статей, 8 ActiveX-контролов, 44 примера и около 5000 сообщений в форуме!
    Полное содержание диска можно скачать здесь: http://vbnet.ru/vbshop/vbnetcd062003.zip.
    Цена диска, включая почтовые расходы: 100 рублей. Диск распространяется по почте наложенным платежом.
    Магазин компакт-дисков был немного улучшен. Теперь он больше похож на солидные интернет-магазины. Вы можете заказать сразу несколько дисков (сейчас в нашем магазине продаётся 4 диска). Действует система скидок постоянным покупателям.
    Наш магазин расположен по адресу http://vbnet.ru/vbshop/cdshop.asp
    Мы всегда рады Вас видеть!

    наверх

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

    Дата: 23.06.2003 10:00 | Раздел: Примеры кода | Автор: Вологин Артём

    ColorConverter - Простой пример демонстрирует, как перевести Dec цвета (цвета CommonDialog) в цвета HTML, VB, RGB без всяких наворотов.

    Дата: 22.06.2003 10:23 | Раздел: Примеры кода | Автор: mc-black

    Класс RgnMake - Класс RgnMake создает окно нестандартной формы с помощью графических файлов: фонового и маски (белый цвет невидим); обеспечивает перетаскивание окна за любую его часть; может включать/выключать режим окна "поверх всех окон”; устанавливает различную степень прозрачности (Win2k и выше).

    Дата: 20.06.2003 10:23 | Раздел: Примеры кода | Автор: CPUKiller

    Модифицированные XP контролы - Контролы в стиле WindowsXP, улучшенные и слегка модифицированные в сторону схожести с оригинальными! Устранены 2 значительных бага, касающихся интерфейса.

    Дата: 19.06.2003 14:28 | Раздел: Примеры кода | Автор: Аптуков Анатолий

    Шифрование файлов - Применяется для шифрования различных файлов Создает на дискете ключ размером в 256 байт.

    Дата: 18.06.2003 14:27 | Раздел: Примеры кода | Автор: Аптуков Анатолий

    Boulder Dash - Очень интересная игра!

    Дата: 17.06.2003 14:27 | Раздел: Примеры кода | Автор: MUXzzzz

    MWS - MiniWebServer - HTTP сервер на ВБ! пример показывает как можно организовать у себя на компе хостинг для сайта, тобишь HTTP сервер. Пример может одновремменно держать до 65535 соеденений!, а такое количество одновременных скачек ОЧЕНЬ маловероятно, если только ваш сайт не Яндекс или подобное, есть настройки страниц, который сервер подсовывает при различных событиях(например если страница не найдена).

    Дата: 16.06.2003 14:27 | Раздел: ActiveX контролы | Автор: Кузнецов А. В.

    ExtraTextBox - TextBox с расширенными возможностями.

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

    18:14 / 22 июн. Resource in EXE | Хитов: 15 | Ответов: 1
    16:46 / 21 июн. VBA + Excel | Хитов: 16 | Ответов: 0
    15:44 / 21 июн. OffTopic: Сетевикам(от сетевого чайника) | Хитов: 17 | Ответов: 0
    15:34 / 21 июн. Использование WINAPI в VB.NET | Хитов: 18 | Ответов: 0
    15:31 / 21 июн. Combo - как получить выбранный элемент? | Хитов: 28 | Ответов: 4
    14:18 / 21 июн. Internet Explorer | Хитов: 16 | Ответов: 0
    14:07 / 21 июн. DataGrid+Аdodc сортировка? | Хитов: 10 | Ответов: 0
    10:45 / 21 июн. Куда можно засунуть ТАКОЙ текст? | Хитов: 64 | Ответов: 8
    10:33 / 21 июн. Off: программеры и админы | Хитов: 48 | Ответов: 5
    22:29 / 20 июн. Новое сообщение без темы | Хитов: 6 | Ответов: 0
    19:18 / 20 июн. Нужна компонента | Хитов: 23 | Ответов: 0
    16:54 / 20 июн. Отсылка файлов на сервер методом POST? | Хитов: 21 | Ответов: 1
    14:28 / 20 июн. Как имитировать нажатие клавиш? | Хитов: 22 | Ответов: 1
    14:00 / 20 июн. Как посчитать время цикла? | Хитов: 46 | Ответов: 6
    14:00 / 20 июн. Как посчитать время во цикла? | Хитов: 9 | Ответов: 0
    11:09 / 20 июн. число не влазит в переменную! (я чайник) | Хитов: 75 | Ответов: 16
    10:54 / 20 июн. Работа с cookies! | Хитов: 17 | Ответов: 0
    09:39 / 20 июн. как программно... | Хитов: 39 | Ответов: 0
    08:09 / 20 июн. А можно без IP и имени компа? | Хитов: 42 | Ответов: 3
    07:42 / 20 июн. Как защетить по времени свою программу? | Хитов: 38 | Ответов: 2

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

    Новости от VBNet-чиков!:

    наверх

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

    наверх

    Новости сайта Азбука VB

    наверх

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

    наверх

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

    • 16.06.2003 - Новая версия WebMatrix доступна для скачивания
      Microsoft аносировал доступность нового релиза Web Matrix.
    • 02.06.2003 - Cпецпредложение от ОЗОНа!
      В Internet магазине Ozon Вы можете оформить по специальным ценам заказ на коробочный продукт с одним из языков, входящих в среду разработки Visual Studio .NET 2003 и получить в подарок книгу по программированию на .NET

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

    • 19.06 - Обзор 9Rays.Net Obfuscator
    • 18.06 - Объекты и наследование
    • 11.06 - Мониторинг в инфраструктуре распределенных приложений .NET
    • 10.06 - Аутентификация в ASP.NET: руководство по защите в .NET
    • 09.06 - Обзор средств разработки приложений для мобильных систем

    наверх

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

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

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

    наверх

    Один момент из жизни форума: Чтение/запись файла в VB .NET

    Вопрос:
    Автор вопроса: thelost

    Как прочитать и записать текст из файла в Visual Basic .NET?

    Ответы:

    Атор: Павел
    Для чтения/записи файлов юзай объекты из пространства имён System.IO: FileStream, StreamReader и StreamWriter.

    Автор: thelost
    Ну если я бы знал как их юзать... я б вопросы не задавал.
    Все познается на примерах, а даже их у меня нет...

    Автор: Павел
    Ну расскажу про чтение... Сначала создаём объект FileStream

    Dim fs As New IO.FileStream("c:\путь\имя файла", IO.FileMode.Open, IO.FileAccess.Read)

    Дальше создаём StreamReader

    Dim sr As New IO.StreamReader(fs, System.Text.Encoding.GetEncoding(1251))

    Обрати внимание, вторым параметром мы указываем, что читаем файл в кодировке Windows-1251, то есть родную виндовскую кирилицу.
    Дальше читаем файл в строковую переменную.

    Dim str As String
    str = sr.ReadToEnd()

    Закрываем объекты.

    sr.Close
    fs.Close

    Аналогично запись. Сначала создаёшь FileStream, потом StreamWriter. Затем пишешь в StreamWriter инфу.

    Автор: thelost
    Аналогично это, как?
    Допустим начну так (по аналогии):

    Dim fs As New IO.FileStream(SaveFileDialog1.FileName, IO.FileMode.Create, IO.FileAccess.Write)
    Dim sr As New IO.StreamWriter(fs, System.Text.Encoding.GetEncoding(1251))

    А как инфу записать в StreamWriter?
    зы: понимаю смешно, но после с++, VB .net мне понять еще сложнее, чем наоборот.

    Автор: Павел
    sr.Write (текст)
    Уж можно было заглянуть в Object Browser или в MSDN и глянуть методы StreamWriter'а!

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

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

    Вопросы:

    Автор вопроса: Сергей

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

    Подскажите, пожалуйста… Можно ли сделать так, чтобы FileListBox Отображал файлы отсортированные не по имени, а по чему либо другому..? Например по дате, или по расширению?

    Автор вопроса: SHADE

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

    Привет люди помогите решить проблему есть класс, а в нем процерура:

    Dim ws As Object
    Sub wsInit()
    Set ws = CreateObject("MSWinsock.Winsock")
    End Sub

    которая создает обьект Winsock. Как известно, у него есть событие DataArrival. Так вот мне необходимо его перехватить.

    Есть мой вариант того, как это зделать:

    Private Sub ws_DataArrival(ByVal bytesTotal As Long)
    Dim tmp as String
    ws.GetData tmp
    MsgBox tmp
    End Sub

    Но он не работает (по крайней мере у меня).

    Автор вопроса: ]CBK[C...R...a...S...H

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

    Люди в Visual Studio есть очень реальная утилита Depends она служит для получения API функций из библиотек, программ и т.д. Но в ней есть баг она не пишет какие данные необходимо передавать в ту или иную функцию, кто знает что с этим делать

    Автор вопроса: .::neo::.

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

    Есть ли какая-нибудь прога, которая показывает к какому классу относится окно? Например,манипулятор панели яадач- "Shell_TrayWnd"...

    Автор вопроса: Роман

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

    Для использования базы DBF (FoxPro 3.0), использую Data и DBGrid. При попытке изменить, удалить или добавить записи в базу, выдается сообщение, где сказано: Ощибка 3027 "Невозможно обновить. База данных или объект только для чтения"

    P.S. Data.ReadOnly=False

    Автор вопроса: Ladyzhenkov Alexander

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

    Такой вопрос: Я создаю панель инструментов типа MS Office.

    Пишу код:

    Private Sub Form_Load()
    'Раямеры и положение формы
    formMain.Height = Screen.Height
    formMain.Left = Screen.Width - formMain.Width
    End Sub

    т.е. форма раямещается в правом углу экрана.
    Как сделать, чтобы другие окна в развёрнутом виде располагались слева от этой формы и не закрывали её (как с панелью инструментов)?

    Автор вопроса: dima

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

    Как можно послать сообщение на email?

    Автор вопроса: Vao

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

    Раярабатывал я тут приложение - редактор тестов с выборочными ответами, работающее с БД Access.
    Краткое описание: прога соядает, ияменяет, удаляет таблицы в которых хранятся данные тестовых яаданий.
    Заметил, что раямер файлов БД постоянно увеличивается, даже если не добавляются новые таблицы. Почему это происходит?

    Автор вопроса: Дмитрий

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

    Подскажите plz, как можно в текстовый файл (*.txt) вставить стрку в произвольную позицию (имеется ввиду между некоторыми другими строками), не загужая, при этом, содержимое файла в TextBox?

    Автор вопроса: Максим

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

    В vb.net теперь нет контрола webbrowser. Чем можно заменить?

    Автор вопроса: Oleks

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

    Нужно в VB6 построить амплитудно-частотную хар-ку звукового .wav - файла.

    Ответы:

    Вопрос:

    Как можно прикрепить звук (wav,mp3) к программе, чтобы потом его воспроизвести (через Mci)?

    Ответ:

    Автор ответа: Максим

    Запихни в ресурсы, при запуске проги сохрани в temp – папку, и запускай.

    Вопрос:

    Как узнать загруженность процессора?

    Ответ:

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

    По поводу замера степени использования степени использования процессора привожу статью Михаила Кассирова.
    -----Начало цитаты-----
    Замер степени использования процессора
    Недавно в статье, посвящённой недокументированным возможностям Windows, я обнаружил интересный способ измерения степени использования процессора. Дело в том, что в Windows 9x существуют счётчики Performance Counters, которые можно включить из реестра, и в реестр же они будут посылать результаты замеров. Например загруженности процессора. Есть они и в NT, но доступ к ним сложнее.
    К моему собственному удивлению результат перевода С на человеческий VB отлично заработал! По-сему, если Вашей программе нужно знать загруженность проца, или если Вы заинтересуетесь доступом в реестр из WinApi32, то Вы можете познакомиться с простеньким примером. Разумеется в полном варианте нужно было бы вставить проверку типа Windows (например через GetWindowsVersion), сворачивание в SysTray и т.п., но в "укороченном" виде Вам будет проще приспособить данную фичу Windows к своим потребностям.
    Итак. Если у Вас не NT. Расположите на форме кнопочку. Назовём её cmdStart. Как водится, в раздел General Declarations вставляем:
    'Открыть нужный ключ:
    Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" ( _
    ByVal hkey As Long, _
    ByVal pSubKey As String, _
    ByVal ulOptions As Long, _
    ByVal samDesired As Long, _
    phkResult As Long) As Long
    'hkey, lpSubKey - пути к ключу,
    'ulOptions - зарезервировано: должно быть ноль,
    'samDesired - тип доступа: комбинация предопределённых констант,
    'phkResult - переменная, получающая хэндл нужного ключа. Не забудьте потом закрыть.

    'Получить тип и значение параметра из ранее открытого ключа:
    Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" ( _
    ByVal hkey As Long, _
    ByVal lpValueName As String, _
    ByVal lpReserved As Long, _
    lpType As Long, _
    lpData As Any, _
    lpcbData As Long) As Long
    'hkey - хэндл открытого ранее ключа,
    'lpValueName - имя параметра, который нужно прочитать,
    'lpReserved - зарезервировано: должно быть ноль,
    'lpType - переменная, в которую будет возвращаться тип параметра
    'можно передать ноль, если тип не требуется (нам, кстати, передаст 3 - REG_BINARY),
    'lpData - то, что нас интересует,
    'lpcbData - переменная, которая содержит длину буфера под lpData,
    'после выполнения будет содержать кол-во в действительности переданных байт
    'у нас - длина слова: 4. Если переменную заменить просто на 4 - тоже работает

    'Закрытие ранее открытого ключа:
    Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hkey As Long) As Long

    'Некоторые константы из API Viewer:
    Private Const HKEY_DYN_DATA = &H80000006

    Private Const STANDARD_RIGHTS_ALL = &H1F0000
    Private Const READ_CONTROL = &H20000
    Private Const STANDARD_RIGHTS_READ = (READ_CONTROL)
    Private Const KEY_QUERY_VALUE = &H1
    Private Const KEY_SET_VALUE = &H2
    Private Const KEY_CREATE_SUB_KEY = &H4
    Private Const KEY_ENUMERATE_SUB_KEYS = &H8
    Private Const KEY_NOTIFY = &H10
    Private Const KEY_CREATE_LINK = &H20
    Private Const SYNCHRONIZE = &H100000

    Private Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL OR _
    KEY_QUERY_VALUE OR KEY_SET_VALUE OR _
    KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or _
    KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE))
    Private Const KEY_READ = ((STANDARD_RIGHTS_READ Or _
    KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or _
    KEY_NOTIFY) And (Not SYNCHRONIZE))

    'Для служебных нужд:

    'Самый ресурсощедящий способ выждать паузу (в миллисекундах):
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

    'Всегда пригодится:
    Private 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

    'А это наше:
    Dim hkey As Long
    Dim dwCPUUsage As Long
    Dim lpcbData As Long'по-моему действительно лучше выкинуть,
    'подставив в нужных местах 4. Ау, теоретики!
    Dim bStart As Boolean
    Private Sub Form_Load()
    SetWindowPos Me.hwnd, -1, 0, 0, 0, 0, 3
    'видим всегда
    End Sub

    Private Sub cmdStart_Click()
    bStart = Not bStart
    'bStart - это Вкл-Выкл. См. далее
    If bStart Then
    'если - True - начинаем
    cmdStart.Caption = "&Stop"
    'меняем название кнопочки

    'Включаем счётчик, считывая значение соответствующего ключа:
    If RegOpenKeyEx(HKEY_DYN_DATA, "PerfStats\StartStat", 0, KEY_ALL_ACCESS, _
    hkey) <> 0 Then Exit Sub
    lpcbData = 4
    RegQueryValueEx hkey, "KERNEL\CPUUsage", 0, 0, dwCPUUsage, lpcbData
    RegCloseKey hkey
    'закрыть ключ
    'Считываем значение прямо из реестра:
    If RegOpenKeyEx(HKEY_DYN_DATA, "PerfStats\StatData", 0, KEY_READ, _
    hkey) <> 0 Then Exit Sub
    Do While bStart
    'пока ещё раз не нажмём на кнопочку <
    RegQueryValueEx hkey, "KERNEL\CPUUsage", 0, 0, dwCPUUsage, lpcbData
    Sleep 500
    'интервал опроса - полсекунды
    Caption = Str$(dwCPUUsage) & "%"
    'Любуемся!!!
    DoEvents
    'даём жить
    Loop
    RegCloseKey hkey
    'закрыть ключ
    'останавливаем счётчик. Если Вы прервали выполнение программы
    'до этого момента, остановить счётчик можно только перезагрузившись!!!
    'Проверено:((
    If RegOpenKeyEx(HKEY_DYN_DATA, "PerfStats\StopStat", 0, KEY_ALL_ACCESS, _
    hkey) <> 0 Then Exit Sub
    lpcbData = 4
    RegQueryValueEx hkey, "KERNEL\CPUUsage", 0, 0, dwCPUUsage, lpcbData
    RegCloseKey hkey
    'помним всегда!
    Else
    cmdStart.Caption = "&Start"
    'меняем название кнопочки и...
    Caption = "Stoped..."
    'не даем себе впасть в уныние глядя на зависшие 100%
    End If
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    If bStart Then
    cmdStart_Click
    End If
    'ленивые меня поймут;-)
    End Sub
    ----Конец цитаты----

    Вопрос:

    Как поместить в панель задач иконку, клик по которой позволит открыть программу, контекстное меню.

    Ответ:

    Автор ответа: Максим

    Как разместить иконку программы в TrayBar
    Вам необходимо добавить модуль

    'КОД МОДУЛЯ
    Declare Function Shell_NotifyIconA Lib "SHELL32" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Integer
    Public Const NIM_ADD = 0
    Public Const NIM_MODIFY = 1
    Public Const NIM_DELETE = 2
    Public Const NIF_MESSAGE = 1
    Public Const NIF_ICON = 2
    Public Const NIF_TIP = 4
    Type NOTIFYICONDATA
    cbSize As Long
    hWnd As Long
    uID As Long
    uFlags As Long
    uCallbackMessage As Long
    hIcon As Long
    szTip As String * 64
    End Type
    Public Function SetTrayIcon(Mode As Long, hWnd As Long, Icon As Long, tip As String) As Long
    Dim nidTemp As NOTIFYICONDATA
    nidTemp.cbSize = Len(nidTemp)
    nidTemp.hWnd = hWnd
    nidTemp.uID = 0&
    nidTemp.uFlags = NIF_ICON Or NIF_TIP
    nidTemp.uCallbackMessage = 0&
    nidTemp.hIcon = Icon
    nidTemp.szTip = tip & Chr$(0)
    SetTrayIcon = Shell_NotifyIconA(Mode, nidTemp)
    End Function
    'КОД ФОРМЫ
    'Затем уже в событиях формы вы можете пользоваться вышеприведеными API-функциями.
    'Запустите программу. Иконка появится в трее. Наведите на нее курсор, и вы увидите
    'надпись "Проверка", теперь кликните в любом месте формы и снова наведите на иконку...
    Private Sub Form_Click()
    SetTrayIcon NIM_MODIFY, Me.hWnd, Me.Icon, "Работает? Работает!"
    End Sub
    Private Sub Form_Load()
    SetTrayIcon NIM_ADD, Me.hWnd, Me.Icon, "Проверка"
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    SetTrayIcon NIM_DELETE, Me.hWnd, 0&, ""
    End Sub

    Вопрос:

    Есть такая проблема при посимвольной обработке строки...

    Dim TMP As String
    Dim TMP2 As String
    Dim X As Integer

    For X = 1 to Len(TMP) Step 0
    TMP2 = TMP2 & Mid(TMP, X, 1)
    X = X + 1
    Next X

    Проблема в том, что перебор строки состоящий всего из 10 тыс. символов занимает самое малое минуту, а если требуется перебрать 5 000 000 символов, например файл обработать... как можно повысить скорость работы? Повышал приоритет программы до RealTime, но это почти не заметно...
    Буду благодарен любому совету, или примеру намыленному на SoundMuzic@narod.ru;

    Ответ:

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

    Tmp2=Tmp

    Так, кажется, проще...

    А это просто СУПЕР!!!

    For X = 1 to Len(TMP) Step 0
    ...
    X = X + 1
    Next X

    Ответ:

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

    М.... да
    Тебе просто необходимо из файла прочитать не строку а массив байт

    dim Mass() as byte

    и потом работать с ними
    Скорость возрастет очень реально

    Ответ:

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

    А, вообще-то, если действительно нужен посимвольный перебор, то лучше сделать так:

    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

    Private Sub Form_Load()
    Dim aPtr&, bPtr&, a$, b$, i&
    'Создаем БАААльшую строку
    For i = 1 To 100000
    'Оччень медленная строка, а у тебя в примере используется именно такой
    'вариант
    a$ = a$ & Chr(Int(Rnd * 255 + 0.5))
    DoEvents
    Next i
    aPtr = VarPtr(a)
    bPtr = VarPtr(b)
    ' Самое интересное место :)
    For i = 0 To Len(a) - 1
    CopyMemory ByVal bPtr + i, ByVal aPtr + i, 1
    DoEvents
    Next i
    End Sub

    При такой длине строки у меня второй цикл отрабатывает раз в 50 быстрее первого, т.к. программе все время приходится переопределять место для хранение строки. Так, что если нужно работать с действительно большими объемами, то лучше сразу выделять необходимую память под строку, например так:

    a = Space(100000)
    For i = 1 To 100000
    Mid(a$, i, 1) = Chr(Int(Rnd * 255 + 0.5))
    DoEvents
    Next i

    Работает на порядок быстрее первого варианта.

    А самый-самый лучший вариант - преобразовать строки в массив, тогда и АПИ не будет нужен.

    Ответ:

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

    Во первых вместо:

    for x=1 to len(tmp) step 0

    x=x+1
    next x

    Можно написать:

    For x=1 to len(tmp)

    next

    Скорость это не увеличит; в данном случае можно написать tmp2=tmp, если идет только данный код, а в остальном нужно разбирать саму программу, некоторые участки кода можно заменить встроенными функциями, их масса, а если код никак не усовершенствовать то для ускорения поможет только C++

    Ответ:

    Автор ответа: P@Ssword

    Если потребуется 5 000 000 символов, то вообще работать не будет :), т.к. у X как у Integer максимальное значение - 32767.

    FAS_WL, что есьм конструкция сия делает, коли не секрет (если можно - на мыло pas_sword@tut.by):

    For X = 1 to Len(TMP) Step 0
    X = X + 1
    Next X ?

    Ну, ладно. Секрет, так секрет.

    А проблема заключается в том, что при добавлении к строке символа происходит изменение её длины, что не есть весьма быстрая операция. А если её повторить несколько тысяч, а то и миллионов раз, да если и строка становится всё длиннее, то дело может чуть затянуться.

    Предлагаю два решения:
    1)

    TMP2 = TMP ' или Space(Len(TMP)), или String(Len(TMP),0)
    For X = 1 to Len(TMP) Step 0
    Mid$(TMP2, X, 1) = Mid(TMP, X, 1)
    X = X + 1
    Next X

    т.е., сразу создаём строку нужной длины и потом её посимвольно изменяем (многие не знают, что Mid можно использовать не только справа от знака равенства, но и слева).

    2) А нужны ли строки? По-моему, для посимвольной обработки больше подходят массивы. Например, так:

    Dim Temp1() As Byte
    Dim Temp2() As Byte
    Dim Ind As Long

    Temp1 = StrConv(TMP, vbFromUnicode)
    Redim Temp2(Ubound(Temp1))
    For Ind = 0 To Ubound(Temp1)
    Temp2(Ind) = Temp1(Ind)
    Next Ind
    TMP2 = StrConv(Temp2, vbUnicode) ' Если надо, но по-моему, лучше всё заточить под массивы и обойтись без строк.

    Сильно не пугаться, строки и байтовые массивы совместимы по присваиванию в обе стороны %-)

    Вопрос:

    У меня возник такой вопрос>>> Имеется база данных Аксэс. Как можно сделать,чтобы например со странички Searhc.asp ввести в поле слово и в базе данных это все проверилось на наличее этого слова в тексте и если такое слово присутствует, вывести на страничку текст, в котором это слова есть. Другими словами мне нужем поиск по базе данных для ASP программирования! Прошу помочь в моей сложной работе.

    Ответ:

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

    Вот процедура написанная мной для поиска документов по заданным данным
    <%
    'Открытие базы
    set cnn1 = server.createobject("ADODB.connection")
    cString= "Inet_Baza"
    cnn1.open cString
    'Создание RecordSeta
    set rsMbrs=server.createobject("ADODB.recordset")
    Dim cStringZ(10)
    for i=0 to 6
    cStringZ(i)=Request.Form("box" & i+1)
    cStringZ(i)=Replace(cStringZ(i),"*","%")
    next
    i=0
    sql="SELECT Поиск.* FROM Поиск " & _
    "WHERE (((Поиск.Название) Like '" & cStringZ(0) & "') AND ((Поиск.Номер) Like '" & cStringZ(1) & "') AND " & _
    "((Поиск.Дата_принятия) Like '" & cStringZ(2) & "') AND ((Поиск.Дата_вступления) Like '" & cStringZ(3) & "') AND ((Поиск.Орган_приневший) Like '" & cStringZ(4) & "') AND ((Поиск.Ключивые_слова) Like '" & cStringZ(5) & "'))"
    rsMBrs.open sql ,cnn1, adOpenForwardOnly, adLockReadOnly, adCmdText
    %>
    'вывод данных из базы
    <P align=center>
    <TABLE cellSpacing=1 cellPadding=1 width="100%" border=3>
    <%do while not rsmbrs.EOF
    i=i+1
    %>
    <%Response.Write "<TR>" +vbCrLf & _
    "<TD>" & i & "</TD>" & _
    "<TD>" & rsmbrs.Fields(7) & "</TD></TR>"
    rsmbrs.MoveNext
    loop %>
    </TABLE></P>
    <%if i=0 then Response.Write "Найдено документов 0" %>
    <%
    cnn1.close
    set cnn1=nothing
    %>
    <P></P>

    Вопрос:

    Как отсортировать двумерный массив раямерностью 10Х3 по первому столбцу, но при этом сохранить первоначальную свяяь между строками массива, если можно пришлите кусок кода?

    Ответ:

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

    В сортировке сортируеш по 1 столбцу сравнивая например A(x,1) и A(y,1) если они меняются то меняются и все оставшиеся A(x,2..10), A(y,2..10)

    Вопрос:

    Люди кто может сказать реально VB.NET отличается от VB?

    Ответ:

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

    ]CBK[C...R...a...S...H что, точек в голове не хватает нажать ссылку VB.Net или статьи.
    хотя бывает, что если и читано, то не понято...

    Ответ:

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

    Отличается очень сильно - даже по духу (идеологии).

    Вопрос:

    Имеется некоторая проблема: нашел очень неплохую литературку (Книга +CD) по VB.Net. Стоит довольно приличных денег при довольнол подробной информации. Если кто имел дело с VB.Net подскажите, стоит ли нанего переходить и есть ли у него какие-нибудь особые требования к системе?

    Ответ:

    Автор ответа: Максим

    Нужна операционка «нового поколения» (XP, 2000). 95 не поддерживает, а для 98, 98 SE, МЕ нужен какой-то сервис – пак. Для железа тоже нужно обновится, нужно более – менее мощная машина.
    А переходить, скорей всего, рано или поздно придется.

    Ответ:

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

    Дело вкуса. Я в прошлом году попробовал - понравилось, но реально перейти никак не решусь. Главное что сдерживает - это несозможность установки программ на слабенькие компы. (очень тяжелый Framework.NET).

    Вопрос:

    Как получиь Hwnd активного в данный момент окна, но выяванного не моей программой (т.е. GetActiveWindow не прокатывает)?

    Ответ:

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

    Public Declare Function GetForegroundWindow Lib "user32" Alias "GetForegroundWindow" () As Long

    Ответ:

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

    Вобшем этот модуль фотографирует и переделывает в Bitmap скрин шот рабочего стола или активного окна кому надо берите, а в нем соответственно можно выковырять строчку активного окна.

    'Модуль
    Option Explicit
    Option Base 0
    Private Type PALETTEENTRY
    peRed As Byte
    peGreen As Byte
    peBlue As Byte
    peFlags As Byte
    End Type
    Private Type LOGPALETTE
    palVersion As Integer
    palNumEntries As Integer
    palPalEntry(255) As PALETTEENTRY ' Enough for 256 colors
    End Type
    Private Type GUID
    Data1 As Long
    Data2 As Integer
    Data3 As Integer
    Data4(7) As Byte
    End Type
    Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
    End Type
    Private Type PicBmp
    Size As Long
    Type As Long
    hBmp As Long
    hPal As Long
    Reserved As Long
    End Type
    Private Const RASTERCAPS As Long = 38
    Private Const RC_PALETTE As Long = &H100
    Private Const SIZEPALETTE As Long = 104
    Private Declare Function CreateCompatibleBitmap Lib "GDI32" ( _
    ByVal hDC As Long, ByVal nWidth As Long, _
    ByVal nHeight As Long) As Long
    Private Declare Function GetDeviceCaps Lib "GDI32" ( _
    ByVal hDC As Long, ByVal iCapabilitiy As Long) As Long
    Private Declare Function GetSystemPaletteEntries Lib "GDI32" ( _
    ByVal hDC As Long, ByVal wStartIndex As Long, _
    ByVal wNumEntries As Long, lpPaletteEntries As PALETTEENTRY) _
    As Long
    Private Declare Function CreateCompatibleDC Lib "GDI32" ( _
    ByVal hDC As Long) As Long
    Private Declare Function CreatePalette Lib "GDI32" ( _
    lpLogPalette As LOGPALETTE) As Long
    Private Declare Function SelectPalette Lib "GDI32" ( _
    ByVal hDC As Long, ByVal hPalette As Long, _
    ByVal bForceBackground As Long) As Long
    Private Declare Function RealizePalette Lib "GDI32" ( _
    ByVal hDC As Long) As Long
    Private Declare Function SelectObject Lib "GDI32" ( _
    ByVal hDC As Long, ByVal hObject As Long) As Long
    Private Declare Function BitBlt Lib "GDI32" ( _
    ByVal hDCDest As Long, ByVal XDest As Long, _
    ByVal YDest As Long, ByVal nWidth As Long, _
    ByVal nHeight As Long, ByVal hDCSrc As Long, _
    ByVal XSrc As Long, ByVal YSrc As Long, ByVal dwRop As Long) _
    As Long
    Private Declare Function GetWindowDC Lib "USER32" ( _
    ByVal hWnd As Long) As Long
    Private Declare Function GetDC Lib "USER32" ( _
    ByVal hWnd As Long) As Long
    Private Declare Function ReleaseDC Lib "USER32" ( _
    ByVal hWnd As Long, ByVal hDC As Long) As Long
    Private Declare Function DeleteDC Lib "GDI32" ( _
    ByVal hDC As Long) As Long
    Private Declare Function GetWindowRect Lib "USER32" ( _
    ByVal hWnd As Long, lpRect As RECT) As Long
    Private Declare Function GetDesktopWindow Lib "USER32" () As Long
    Private Declare Function GetForegroundWindow Lib "USER32" () As Long
    Private Declare Function OleCreatePictureIndirect _
    Lib "olepro32.dll" (PicDesc As PicBmp, RefIID As GUID, _
    ByVal fPictureOwnsHandle As Long, IPic As IPicture) As Long
    Public Function CreateBitmapPicture(ByVal hBmp As Long, _
    ByVal hPal As Long) As Picture
    Dim r As Long
    Dim Pic As PicBmp
    Dim IPic As IPicture
    Dim IID_IDispatch As GUID
    With IID_IDispatch
    .Data1 = &H20400
    .Data4(0) = &HC0
    .Data4(7) = &H46
    End With
    With Pic
    .Size = Len(Pic) ' Length of structure
    .Type = vbPicTypeBitmap ' Type of Picture (bitmap)
    .hBmp = hBmp ' Handle to bitmap
    .hPal = hPal ' Handle to palette (may be null)
    End With
    r = OleCreatePictureIndirect(Pic, IID_IDispatch, 1, IPic)
    Set CreateBitmapPicture = IPic
    End Function
    Public Function CaptureWindow(ByVal hWndSrc As Long, _
    ByVal bClient As Boolean, ByVal LeftSrc As Long, _
    ByVal TopSrc As Long, ByVal WidthSrc As Long, _
    ByVal HeightSrc As Long) As Picture

    Dim hDCMemory As Long
    Dim hBmp As Long
    Dim hBmpPrev As Long
    Dim r As Long
    Dim hDCSrc As Long
    Dim hPal As Long
    Dim hPalPrev As Long
    Dim RasterCapsScrn As Long
    Dim HasPaletteScrn As Long
    Dim PaletteSizeScrn As Long
    Dim LogPal As LOGPALETTE
    If bClient Then
    hDCSrc = GetDC(hWndSrc) 'Get DC for Client area.
    Else
    hDCSrc = GetWindowDC(hWndSrc) 'Get DC for entire window.
    End If
    hDCMemory = CreateCompatibleDC(hDCSrc)
    hBmp = CreateCompatibleBitmap(hDCSrc, WidthSrc, HeightSrc)
    hBmpPrev = SelectObject(hDCMemory, hBmp)
    RasterCapsScrn = GetDeviceCaps(hDCSrc, RASTERCAPS) 'Raster capabilities
    HasPaletteScrn = RasterCapsScrn And RC_PALETTE 'Palette support
    PaletteSizeScrn = GetDeviceCaps(hDCSrc, SIZEPALETTE) 'Palette size
    If HasPaletteScrn And (PaletteSizeScrn = 256) Then
    LogPal.palVersion = &H300
    LogPal.palNumEntries = 256
    r = GetSystemPaletteEntries(hDCSrc, 0, 256, LogPal.palPalEntry(0))
    hPal = CreatePalette(LogPal)
    hPalPrev = SelectPalette(hDCMemory, hPal, 0)
    r = RealizePalette(hDCMemory)
    End If
    r = BitBlt(hDCMemory, 0, 0, WidthSrc, HeightSrc, hDCSrc, _
    LeftSrc, TopSrc, vbSrcCopy)
    hBmp = SelectObject(hDCMemory, hBmpPrev)
    If HasPaletteScrn And (PaletteSizeScrn = 256) Then
    hPal = SelectPalette(hDCMemory, hPalPrev, 0)
    End If
    r = DeleteDC(hDCMemory)
    r = ReleaseDC(hWndSrc, hDCSrc)
    Set CaptureWindow = CreateBitmapPicture(hBmp, hPal)
    End Function

    Public Function CaptureScreen() As Picture
    Dim hWndScreen As Long
    hWndScreen = GetDesktopWindow()
    With Screen
    Set CaptureScreen = CaptureWindow(hWndScreen, False, 0, 0, _
    .Width \ .TwipsPerPixelX, .Height \ .TwipsPerPixelY)
    End With
    End Function

    Public Function CaptureForm(frm As Form) As Picture
    With frm
    Set CaptureForm = CaptureWindow(.hWnd, False, 0, 0, _
    .ScaleX(.Width, vbTwips, vbPixels), _
    .ScaleY(.Height, vbTwips, vbPixels))
    End With
    End Function

    Public Function CaptureClient(frm As Form) As Picture
    With frm
    Set CaptureClient = CaptureWindow(.hWnd, True, 0, 0, _
    .ScaleX(.ScaleWidth, .ScaleMode, vbPixels), _
    .ScaleY(.ScaleHeight, .ScaleMode, vbPixels))
    End With
    End Function

    Public Function CaptureActiveWindow() As Picture
    Dim hWndActive As Long
    Dim RectActive As RECT
    hWndActive = GetForegroundWindow()
    Call GetWindowRect(hWndActive, RectActive)
    With RectActive
    Set CaptureActiveWindow = CaptureWindow(hWndActive, False, 0, 0, _
    .Right - .Left, .Bottom - .Top)
    End With
    End Function

    Public Sub PrintPictureToFitPage(Prn As Printer, Pic As Picture)
    Dim PicRatio As Double
    Dim PrnWidth As Double
    Dim PrnHeight As Double
    Dim PrnRatio As Double
    Dim PrnPicWidth As Double
    Dim PrnPicHeight As Double
    Const vbHiMetric As Integer = 8
    If Pic.Height >= Pic.Width Then
    Prn.Orientation = vbPRORPortrait 'Taller than wide
    Else
    Prn.Orientation = vbPRORLandscape 'Wider than tall
    End If
    PicRatio = Pic.Width / Pic.Height
    With Prn
    PrnWidth = .ScaleX(.ScaleWidth, .ScaleMode, vbHiMetric)
    PrnHeight = .ScaleY(.ScaleHeight, .ScaleMode, vbHiMetric)
    End With
    PrnRatio = PrnWidth / PrnHeight
    If PicRatio >= PrnRatio Then
    PrnPicWidth = Prn.ScaleX(PrnWidth, vbHiMetric, Prn.ScaleMode)
    PrnPicHeight = Prn.ScaleY(PrnWidth / PicRatio, vbHiMetric, Prn.ScaleMode)
    Else
    PrnPicHeight = Prn.ScaleY(PrnHeight, vbHiMetric, Prn.ScaleMode)
    PrnPicWidth = Prn.ScaleX(PrnHeight * PicRatio, vbHiMetric, Prn.ScaleMode)
    End If
    Call Prn.PaintPicture(Pic, 0, 0, PrnPicWidth, PrnPicHeight)
    End Sub

    'Программа
    Picture1.Picture = CaptureScreen

    Ответ:

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

    Declare Function GetForegroundWindow Lib "user32" () As Long

    Ответ:

    Автор ответа: P@Ssword

    GetForegroundWindow

    Вопрос:

    Подскажите, если знаете, как можно изменить вид кодировки отображения файлов, загружаемых в richtextbox?
    Еще вопрос: как и с помощью какого control'а можно (если можно) загрузить word'овский документ для корректного просмотра и/или редактирования?

    Ответ:

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

    Если правильно понял вопрос - используй свойство .Font.Charset.

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

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

    наверх

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


Выпуск 173.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

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

    В начале недели на сайте были некоторые неполадки, которые во вторник были устранены. Сейчас сайт полностью работоспособен.
    Читайте!

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

    • Книги

    • VBNet CD '06 2003

    • Удаление HTML-тегов из строки
    • Получение путей к системным папкам в .NET
    • Симметричное шифрование в .NET

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

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти здесь.

    наверх

    VBNet CD '06 2003

    VBNet.Ru представляет новый компакт диск "VBNet CD '06 2003"!
    CD содержит только новые материалы, почти всё, содержавшееся на предыдущих CD было удалено! Что же нового на CD?
    Добавлено 19 программ в раздел "Софт". Главная программа на этом CD - DirectX 9 SDK. Это пакет для разработки мультимедийных приложений (графика, 3D, звук и т.д.). Имеются примеры, в том числе и на VB .NET.
    Другие программы:
    • .NET Framework 1.1 - новая версия .NET Framework
    • Internet Explorer Web Controls - пакет бесплатных контролов для ASP .NET с исходным кодом
    • Crystall Reports .NET 10 Service Pack 1 - Пакет обновления для Crystall Reports .NET 10.
    • WMI Core Components для Win 9x - ядро WMI (Windows Management Instrumentation) для Win 9x.
    • Terrarium Client - Игра Terrarium.
    • Test Recorder - Программа для автоматизации процесса тестирования .NET приложений.
    • TierDeveloper 2.0
    • MDAC 2.7 - Компоненты для работы с БД от Microsoft. Версия 2.7.
    • Crystall Reports 9 Evaluation Kit - Популярный компонент для генерирования отчётов.
    • MicroGerakL - Бесплатный редактор иконок.
    • EXEScope - редактор ресурсов
    • FileMon - бесплатная программа для мониторинга работы с файловой системой.
    • RegMon - бесплатная программа для мониторинга работы с реестром.
    • Nero Burning Rom 5.5.10.28 - новая версия программы для записи CD-R и CD-RW дисков.
    • Resource Hacker - бесплатный редактор ресурсов
    • SoundForge - Утилита для создания и редактирования звука.
    • WinRAR v 3.22 - архиватор
    Добавлено 19 новых ActiveX и .NET компонентов.
    Добавлено 11 интересных книг о Visual Basic и .NET на английском языке.
    В разделе "Примеры" несколько новых примеров на Visual Basic .NET по работе с Direct3D 9 и .NET Framework. 10 примеров по программированию под новую версию Office - Office 2003. А также движок форума на ASP .NET с исходниками!
    В разделе "Эксклюзив" моя новая статья о криптографии в .NET и несколько примеров на Visual Basic .NET о симметричном шифровании и использовании WMI.
    А также коллекция музыки в формате MIDI и болшая коллекция иконок!
    Ну и конечно свежая версия сайта VBNet.Ru. С момента выхода предыдущего выпуска "VBNet CD" на VBNet.Ru появилось 7 статей, 8 ActiveX-контролов, 44 примера и около 5000 сообщений в форуме!
    Полное содержание диска можно скачать здесь: http://vbnet.ru/vbshop/vbnetcd062003.zip.
    Цена диска, включая почтовые расходы: 100 рублей. Диск распространяется по почте наложенным платежом.
    Магазин компакт-дисков был немного улучшен. Теперь он больше похож на солидные интернет-магазины. Вы можете заказать сразу несколько дисков (сейчас в нашем магазине продаётся 4 диска). Действует система скидок постоянным покупателям.
    Наш магазин расположен по адресу http://vbnet.ru/vbshop/cdshop.asp
    Мы всегда рады Вас видеть!

    наверх

    Удаление HTML-тегов из строки

    Небольшая функция, предназначенная для вырезания HTML-тегов из строки. Я её писал для чата (http://vbnet.ru/chat). Предназначена для использования в ASP. Если Вы хотите использовать её в VB, то нужно добавить объявления переменных.

    Function DeleteTags(Source)
    pos1 = InStr(Source, "<")
    pos2 = 1
    Do While (pos1 > 0) And (pos2 > 0)
    If pos1 > 0 Then
    pos2 = InStr(pos1, Source, ">")
    End If
    If pos2 = 0 Then
    Source = Left(Source, pos1 - 1)
    Else
    Source = Left(Source, pos1 - 1) & Right(Source, Len(Source) - pos2)
    End If
    pos1 = InStr(Source, "<")
    Loop
    DeleteTags = Source
    End Function

    наверх

    Получение путей к системным папкам в .NET

    .NET
    С помощью класса Environment можно узнать путь к различным системным папкам.
    Найти список системных папок и их описания можно в Object Browser (смотрите перечисление System.Environment.SpecialFolder).

    Dim p As System.Environment.SpecialFolder
    Dim s As String

    'Получаем путь к папке SendTo.
    p=Environment.SpecialFolder.SendTo;
    s=Environment.GetFolderPath(p)
    Console.WriteLine("Папка SendTo: {0}.", s)

    'Получаем путь к папке Startup.
    p=Environment.SpecialFolder.Startup
    s=Environment.GetFolderPath(p)
    Console.WriteLine("Папка Startup: {0}.", s)

    наверх

    Симметричное шифрование в .NET

    .NET
    Пример симметричного шифрования данных в .NET.
    На форму установить TextBox (name="txtText"), две кнопки (btnEncrypt и btnDecrypt). И вот такой код:

    '---Симметричное шифрование---

    'Ключ и вектор инициализации для симметричного шифрования
    Dim Key As Byte() = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16} 'Ключ
    Dim IV As Byte() = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16} 'Вектор инициализации

    Private Sub btnEncrypt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEncrypt.Click
    'Создаём экземпляр класса RijndaelManaged
    Dim RMCrypto As New Security.Cryptography.RijndaelManaged
    'Создаём FileStream, туда будет записана зашифрованная информация
    Dim fs As New IO.FileStream("C:\crypted.dat", IO.FileMode.Create)
    'Создаём CryptoStream
    Dim CryptStream As New Security.Cryptography.CryptoStream(fs, RMCrypto.CreateEncryptor(Key, IV), Security.Cryptography.CryptoStreamMode.Write)
    'Создаём StreamWriter для записи данных в CryptoStream
    Dim SWriter As New IO.StreamWriter(CryptStream)
    'Пишем что-нибудь в CryptoStream
    SWriter.WriteLine(txtText.Text)
    'Закрываем все объекты
    SWriter.Close()
    fs.Close()
    CryptStream.Close()
    End Sub

    Private Sub btnDecrypt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDecrypt.Click
    'Создаём экземпляр класса RijndaelManaged
    Dim RMCrypto As New Security.Cryptography.RijndaelManaged
    'Создаём FileStream, оттуда будем читать зашифрованную информацию
    Dim fs As New IO.FileStream("C:\crypted.dat", IO.FileMode.Open)
    'Создаём CryptoStream
    Dim CryptStream As New Security.Cryptography.CryptoStream(fs, RMCrypto.CreateDecryptor(Key, IV), Security.Cryptography.CryptoStreamMode.Read)
    'Создаём StreamReader для чтения данных из CryptoStream
    Dim SReader As New IO.StreamReader(CryptStream)
    'Читаем расшифрованную информацию из CryptoStream и пишем её в консоль
    txtText.Text = SReader.ReadToEnd()
    'Закрываем все объекты
    SReader.Close()
    fs.Close()
    CryptStream.Close()
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

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

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

    Вопросы:

    Автор вопроса: Илья

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

    Как проверить запущена ли в системе данная программа? (Например Word) Я пользуюсь VB 6.0 и Windows 98.

    Автор вопроса: Bilenko

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

    Подскажите пожалуйста как работать с обьектом MS WORD - MS EQUATION???

    Автор вопроса: OldKrot

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

    Hi, if anybody has write on vb.net or know where can get source Visual Movement Detection com[nents?

    Автор вопроса: Дмитрий

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

    Есть японский шрифт. Есть текстовый файл на японском в unicod'e. Как его можно в свою прогу яагруяить и в ней редактировать, если ияменение .Font.Charset на японский для японского шрифта MS Mincho не помогает, также как и API-функция SetConsoleOutputCP.
    Может кто-нибудь янает как в веб-брауяерах типа explorer'а программно реализуется ияменение кодировки (меню вид-вид кодировки)

    Автор вопроса: Maxim

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

    Как в vb6 быстрее копировать и перемещать файлы: CopyFile и MoveFileEx, или с помощью FSO?
    И как переименовать файл? Можно переместить его в ту же папку с новым именем, но это не разумно...
    И то же самое для vb.net.

    Автор вопроса: ]CBK[C...R...a...S...H

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

    Я себе Visual Studio 7 .NET установил
    Ну вообще неРеал
    И возникли у меня такие вопросы
    1) Как мне старые проекты открыть(я понял что не как)
    2) Какие библиотеки нужны для переноса приложений на VB.net
    3) Как мне сделать SDI интерфейс(в VB6 в опциях это было, а в .NET я этого не нашол)

    Автор вопроса: Erik

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

    Подскажите , пожалуйста : Есть файл .dbf , который содержит текстовое поле , в котором кодировка досовская.Как сделать читабельно с помощью ВБ ?

    Автор вопроса: Vir

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

    Как узнать hDC в такой ситуации:

    Dim h as Picture
    Dim k as long
    h=LoadPicture("c:\1.jpg")

    BitBlt k,0,0,100,100, ... ,0,0,vbSrcCopy

    Место ... нужно вставить hDС загруженной картинки. h.Handle неподходит.

    Автор вопроса: frosya

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

    Кто знает, какой API вызов возвращает полный путь к файлу (директории), разумеется любой, не текущей

    Автор вопроса: Володя

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

    У меня два вопросика.
    1. Как программно можно переместить мышку?
    2. Как спрятать программу от Ctrl+Alt+Del?

    Автор вопроса: Славик

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

    Что-то натворил с
    VB, а что не знаю, причем случалось такое уже несколько раз за год. После установки и удаления всяких левых программ VB стал прозрачным. Есть меню, панель управления, окно свойств, в общем все что нужно для работы (и все прекрасно работает), только все эти окна висят прямо на рабочем столе как самостоятельные приложения. Что нужно сделать, чтобы вернуть все взад???
    Конечно можно работать и так, только как-то дико, как будто висишь на высоте пятиэтажки, где тут сосредоточишься. Переустановку системы чур не предлагать, это я и сам знаю.

    Автор вопроса: Vor

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

    Народ кто может помогите! Я написал прогу и в нее добавил компонент.
    Вопрос: Как мне засунуть компонент в корень проги, ведь не у всех есть этот компонент! Если можно то поподробней!

    Автор вопроса: Тим

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

    Хочу чтобы в строке состояния формы был прогрессбар, как в эксплорере, для отображения процесса загрузки "листвью".
    Возможно ли это сделать в обычном контроле "прогрессбар", или же надо рисовать самому?

    Ответы:

    Вопрос:

    Как можно прикрепить звук (wav,mp3) к программе, чтобы потом его воспроизвести (через Mci)?

    Ответ:

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

    Засовываеш нужный mp3,4,5 в ресурсы программы (RES), а в соде пишеш

    Dim bFile() as Byte
    Dim fHande as byte
    bFile()=loadresdata(101,10) '101-ID твоего ресурса
    fHande=freefile
    open app.path & "\music.mp3" for binary as fHande
    put fHende,1,bFile
    close fHande
    mci.play app.path & "\music.mp3"

    Вопрос:

    Как поместить в панель задач иконку, клик по которой позволит открыть программу, контекстное меню.

    Ответ:

    Автор ответа: Данила

    Разбирайся

    Private Type NOTIFYICONDATA
    cbSize As Long
    hWnd As Long
    uId As Long
    uFlags As Long
    ucallbackMessage As Long
    hIcon As Long
    szTip As String * 64
    End Type

    'разные константы
    Private Const NIM_ADD = &H0
    Private Const NIM_MODIFY = &H1
    Private Const NIM_DELETE = &H2
    Private Const NIF_MESSAGE = &H1
    Private Const NIF_ICON = &H2
    Private Const NIF_TIP = &H4

    Private Const WM_LBUTTONDBLCLK = &H203
    Private Const WM_LBUTTONDOWN = &H201
    Private Const WM_RBUTTONUP = &H205

    'декларируем функцию
    Private Declare Function Shell_NotifyIcon Lib "shell32" Alias
    "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As
    Boolean
    Dim TrayI As NOTIFYICONDATA
    Private Sub Form_Load()
    TrayI.cbSize = Len(TrayI) 'Set the window's handle (this will be used to
    hook the specified window)

    TrayI.hWnd = pichook.hWnd 'какой-то индентификатор (видимо, фича для
    работы с иконкой)

    TrayI.uId = 1& 'Set the flags
    TrayI.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
    'Set the callback message
    TrayI.ucallbackMessage = WM_LBUTTONDOWN

    TrayI.hIcon = imgIcon(2).Picture 'устанавливает картинку, которая будет
    показываться
    TrayI.szTip = "Recent" & Chr$(0) 'устанавливает текст
    Shell_NotifyIcon NIM_ADD, TrayI 'создает иконку

    Me.Hide
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    'remove the icon
    TrayI.cbSize = Len(TrayI)
    TrayI.hWnd = pichook.hWnd
    TrayI.uId = 1&
    Shell_NotifyIcon NIM_DELETE, TrayI
    End
    End Sub
    Private Sub mnuPop_Click(Index As Integer)
    Select Case Index
    Case 0
    MsgBox "KPD-Team 1998" + Chr$(13) + "URL:
    http://www.allapi.net/" + Chr$(13) + "E-Mail: KPDTeam@Allapi.net",
    vbInformation + vbOKOnly
    Case 2
    Unload Me
    End Select
    End Sub
    Private Sub form_MouseDown(Button As Integer, Shift As Integer, X As Single,
    Y As Single)
    Msg = X / Screen.TwipsPerPixelX
    If Msg = WM_LBUTTONDBLCLK Then
    'Left button double click
    mnuPop_Click 0
    ElseIf Msg = WM_RBUTTONUP Then
    'Right button click
    Me.PopupMenu mnuPopUp
    End If
    End Sub
    Private Sub Timer1_Timer()
    Static Tek As Integer
    'Animate the icon
    Me.Icon = imgIcon(Tek).Picture
    TrayI.hIcon = imgIcon(Tek).Picture
    Tek = Tek + 1
    If Tek = 3 Then Tek = 0
    Shell_NotifyIcon NIM_MODIFY, TrayI
    End Sub

    Private Sub выход_Click()
    Form_Unload 0
    End
    End Sub

    Вопрос:

    Есть такая проблема при посимвольной обработке строки...

    Dim TMP As String
    Dim TMP2 As String
    Dim X As Integer

    For X = 1 to Len(TMP) Step 0
    TMP2 = TMP2 & Mid(TMP, X, 1)
    X = X + 1
    Next X

    Проблема в том, что перебор строки состоящий всего из 10 тыс. символов занимает самое малое минуту, а если требуется перебрать 5 000 000 символов, например файл обработать... как можно повысить скорость работы? Повышал приоритет программы до RealTime, но это почти не заметно...
    Буду благодарен любому совету, или примеру намыленному на SoundMuzic@narod.ru;

    Ответ:

    Автор ответа: Никитин Андрей

    Используй для этого байтовый массив. Например так:

    Dim TMP as String
    Dim TMP2 as String
    Dim b() as Byte
    Dim i as Integer
    b() = TMP$
    For i = 0 to UBound(b) Step LenB("A")
    TMP2 = TMP2 & Chr$(b(i))
    Next

    Будет существенно быстрее за счет исключения из цикла "медленной" функции Mid.

    Примечание. LenB("A") нужна для определения корректного смещения в разных версиях VB.

    Ответ:

    Автор ответа: Шарутин Федор Валентинович

    Попрубуйте при чтении строки сопосотавить ей структуру-пользовательский тип данных, как набор единичных данных требуемого типа. Например

    Type recTI 'глобальный тип данных
    skeep As Integer
    value As Single
    End Type

    Dim struct(1000) As recTI 'В процедуре чтения
    ............................
    Open F_Name For Random Access Read As #F_Number Len = 6000
    Get #F_Number, 1, struct()
    ............................
    'далее работа с элементами структуры, а не фрагментом строки через функции
    извлечения
    For Nomer_TI = 1 To Число_адресов
    a1(Nomer_TI) = struct(Nomer_TI).value

    !!! Код VBA приведен отвлеченно от Ваших типов данных, следует под них
    подработять.
    Такой подход в моих задачах дает выигрыш по времени.

    Вопрос:

    Как отсортировать двумерный массив раямерностью 10Х3 по первому столбцу, но при этом сохранить первоначальную свяяь между строками массива, если можно пришлите кусок кода?

    Ответ:

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

    Кода я тебе не пришлю мне в лом думать над ним
    НО
    Это делается легко!!!
    Создается другой массив размерностью 10х3 и в цикле пересчета ты присваеваеш данные из перваго массива во второй Вот короче кусок кода(незнаю работает или нет)

    dim Mass1(10,3) as integer
    dim Mass2(10,3) as integer
    dim ii as integer,jj as integer
    Dim max as integer,m as integer
    Dim maxIndex as integer
    'сортировка по max
    'Найдем max элимент
    for ii=0 to 10
    max=mass1(0,0)
    for i=1 to 10
    if max max=mass1(i,0)
    maxIndex=i
    end if
    next i
    for jj=0 to 3
    mass2(m,jj)=mass1(maxIndex,jj)
    next jj
    mass1(maxIndex,0)=-10000 'Минимальное число, чтобы оно не было max
    m=m+1
    next ii

    Если чесно я этот код написал не в IDE так что за его работоспособность не отвечаю

    Вопрос:

    Как вызвать хранимую процедуру c SQL Server'a в коде программы на VB6 ?

    Ответ:

    Автор ответа: Yura Melnik

    Необходимо сформировать следующую строку:

    Public cn As New ADODB.Connection
    cn.Open "dsn=<имя_источника_данных>"
    Dim str as String
    Str = “Exec <имя хранимой процедуры> |<параметр1>|, |<параметр2>|,….|<параметрN>|” ' Даты заключаются в '2003-03-01'
    Form1.cn.Execute str 'Собственно сам вызов вызов процедуры

    Ответ:

    Автор ответа: Евген

    Примерно так:

    Dim rs As ADODB.Recordset
    Dim cn As ADODB.Connection

    cn.Open "FILE NAME=A.DSN"
    rs.Open "StoredProcedureName", cn, adOpenKeyset, adLockOptimistic, adCmdStoredProc

    Ответ:

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

    here example of code

    Public Function GetMovementInformation(ByVal btIsCurrMonth As Byte, _
    Optional ByVal dtDateFrom As Date = 0, _
    Optional ByVal dtDateTo As Date = 0, _
    Optional ByVal lintPayBy As Long = 0, _
    Optional ByVal lintDebitCreditArt As Long = 0, _
    Optional ByVal lintMovesID As Long = 0) As ADODB.Recordset
    On Error GoTo ErrHang
    Dim DBRS As ADODB.Recordset
    Dim dbCon As ADODB.Connection
    Dim strSQL As String
    Set dbCon = CreateObject("ADODB.Connection")
    dbCon.Open strCon
    dbCon.CursorLocation = adUseClient
    strSQL = "exec sp_Movement_Information " & btIsCurrMonth & ",'" & CDate(dtDateFrom) & "','" & _
    CDate(dtDateTo) & "'," & lintPayBy & "," & lintDebitCreditArt & "," & lintMovesID
    Set GetMovementInformation = dbCon.Execute(strSQL)
    GetMovementInformation.ActiveConnection = Nothing
    dbCon.Close
    Set dbCon = Nothing
    Exit Function
    ErrHang:
    Call Log(strErrorSource & " Function GetMovementInformation" & " " & Err.Number & " " & Err.Description)
    Set dbCon = Nothing
    Err.Raise Err.Number
    End Function

    Вопрос:

    Как на VB6 заполнить форму на web-странице и сделать клик на submit.
    При таких вариантах пишет ошибка метод не поддерживается

    Private Sub Command1_Click()
    Dim Vladimir As String
    Explorer.Visible = True
    Explorer.Navigate "C:\WINDOWS\Рабочий стол\RoboForm1.htm"
    Delay 2 'задержа необходима для загрузки страницы
    'Explorer.Document.Forms(0).Ваше_имя.Value = Vladimir
    Explorer.Document.Forms(0).Ваше_имя.Write "Vladimir"
    'Explorer.Document.InputBox.Ваше_имя.Put "Vladimir"
    'Explorer.Document.Forms(0).Добавить_новое.Click
    End Sub

    Где можно об этом узнать,или что нужно сделать.
    В интернете ничего не нашел.

    Ответ:

    Автор ответа: Евген

    Видимо, плохо искал. ;) Зайди на www.citforum.ru - там этой информации море с описаниями, примерами и ссылками.

    Вопрос:

    Привет люди помогите решить проблему есть класс, а в нем процерура:

    Dim ws As Object
    Sub wsInit()
    Set ws = CreateObject("MSWinsock.Winsock")
    End Sub

    которая создает обьект Winsock. Как известно, у него есть событие DataArrival. Так вот мне необходимо его перехватить.

    Есть мой вариант того, как это зделать:

    Private Sub ws_DataArrival(ByVal bytesTotal As Long)
    Dim tmp as String
    ws.GetData tmp
    MsgBox tmp
    End Sub

    Но он не работает (по крайней мере у меня).

    Ответ:

    Автор ответа: Шкуренко Александр

    Волшебное слово WithEvents!

    Private WithEvents ws As Winsock
    Private Sub Class1_Terminate()
    Set ws = Nothing
    End Sub

    ' Если OCX выбран в References
    Public Sub Init()
    Set ws = New MSWinsockLib.Winsock
    End Sub

    ' А если в Components тогда бросаешь его на форму и передааешь по ссылке
    Public Sub Init(ByRef ctl as Winsock)
    Set ws = ctl
    End Sub

    Private Sub ws_DataArrival(ByVal bytesTotal As Long)
    MsgBox "Yes! This is event 'DataArrival'"
    End Sub

    Ответ:

    Автор ответа: Old Krot

    you must define not as object

    private withevents ws as WinSock

    so you can handle all events

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Нелохо бы вверху (где Declaration) дописать

    Dim WithEvents ws As MSWinsock.Winsock

    А из процедуры удалить эту гадость:

    Dim ws As Object.

    Усе.

    Ответ:

    Автор ответа: P@Ssword

    Подключи к проекту WinSock и пиши:

    Dim WithEvents ws As winsock

    А потом сверху выбираешь объект и т.д., и т.п., и ДТП.

    Вопрос:

    Люди в Visual Studio есть очень реальная утилита Depends она служит для получения API функций из библиотек, программ и т.д. Но в ней есть баг она не пишет какие данные необходимо передавать в ту или иную функцию, кто знает что с этим делать

    Ответ:

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

    Эта утилита выдает лишь имена, ординалы и точки входа секций импорта/экспорта но ни как ни декларации функций.

    Ответ:

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

    Это не баг.
    Дизасемблер тебе поможет!

    Ответ:

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

    А ничего. Она смотрит заголовки импорта/экспорта и вываливает их на юзер в удобной для него форме. Вот и все ее назначение. И, соответственно, все возможности...

    Ответ:

    Автор ответа: P@Ssword

    Боюсь, что это не баг и так просто параметры не узнаешь...

    Вопрос:

    Есть ли какая-нибудь прога, которая показывает к какому классу относится окно? Например,манипулятор панели яадач- "Shell_TrayWnd"...

    Ответ:

    Автор ответа: .::neo::.

    Сам спрашиваю-сам отвечаю! В Visual C++ есть прога под названием spy++...

    Ответ:

    Автор ответа: Роман

    У меня есть программа ЕХЕ и исходники на VB. Определяет хэндл, класс,
    имя родителя и т.д. Весит - 125кб.
    Кому надо: svs@kes.veco.ru
    Мыльте - пришлю.

    Ответ:

    Автор ответа: Артем Кривокрисенко

    В поставку Студии входит программуля Spy++ (spyxx.exe). Она-то и покажет всю нужную тебе информацию (там, кстати, усть ну Очень удобный поиск:))

    Ответ:

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

    В VS5 и выше есть утилита Spy++, в VB.NET она кажется так же входит.

    Ответ:

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

    Навалом. Лично мне нравиться Sign 0f Misery. Можно, так же, воспользоваться Spy++ из VS

    Ответ:

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

    Spy++ Входит в состав MsVS.

    Вопрос:

    Такой вопрос: Я создаю панель инструментов типа MS Office.

    Пишу код:

    Private Sub Form_Load()
    'Раямеры и положение формы
    formMain.Height = Screen.Height
    formMain.Left = Screen.Width - formMain.Width
    End Sub

    т.е. форма раямещается в правом углу экрана.
    Как сделать, чтобы другие окна в развёрнутом виде располагались слева от этой формы и не закрывали её (как с панелью инструментов)?

    Ответ:

    Автор ответа: Роман

    newForm.Height=Screen.Height
    newForm.Width=Screen.Width-formMain.Width

    Вопрос:

    Как можно послать сообщение на email?

    Ответ:

    Автор ответа: .::neo::.

    Сколько было уже разговору по-этому поводу(методов даже несколько), мне нравится вот этот:
    Подключаешь контрол Microsoft MAPI Controls. Кладёшь на форму MAPISession и MAPIMessage и пишешь:

    MAPISession1.SignOn

    MAPIMessages1.SessionID = MAPISession1.SessionID

    MAPIMessages1.Compose
    MAPIMessages1.RecipAddress = younick@yandex.ru
    MAPIMessages1.MsgSubject = "Заголовок"
    MAPIMessages1.MsgNoteText = "Тело письма"

    MAPIMessages1.Send False

    MAPISession1.SignOff

    ...вот и все дела! Можно ещё написать через shell {shell "srart mailto:younick@yandex.ru"}, но мне так почему-то не нравится...

    Вопрос:

    Раярабатывал я тут приложение - редактор тестов с выборочными ответами, работающее с БД Access.
    Краткое описание: прога соядает, ияменяет, удаляет таблицы в которых хранятся данные тестовых яаданий.
    Заметил, что раямер файлов БД постоянно увеличивается, даже если не добавляются новые таблицы. Почему это происходит?

    Ответ:

    Автор ответа: Mind Engine

    Сжатие базы сделай, все вернется на круги своя! %)

    Ответ:

    Автор ответа: Роман

    Лучше пользоваться базами ISAM(базы данных индексно-последовательного метода доступа). Например: dBase, а лучше - FoxPro (*.dbf)

    Ответ:

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

    Дело в том, что Access, по мнению некоторых не удаляет записи как таковые, а помечает их только на удаление, при сжатии же он удаляет их.
    Сам я не нашёл более правдоподобного объяснения проблемы, но факт фактом-база увеличивается.
    Если тебя такой вариант не устраивает - используй функцию сжатия БД - метод
    DAO.CompactDatabase (ScrName as String ,DstName as String, DstLocale,Options,SrcLocale)

    Я использую только ScrName as String ,DstName as String - база которую необходимо сжать, база которая будет получена в результе. Потом удаляй стандартными средсвами старый файл?!
    Ясно?

    Вопрос:

    Подскажите plz, как можно в текстовый файл (*.txt) вставить стрку в произвольную позицию (имеется ввиду между некоторыми другими строками), не загужая, при этом, содержимое файла в TextBox?

    Ответ:

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

    В TextBox загружать текст совершенно и ненадо. Можно сделать это несколькими способами. Покрайней мере я других незнаю. 1) прочитать и запомнить в массиве строки файла, вставить нужную и сохранить.

    Dim A() As String
    Dim S As String
    Dim Q As String
    n = 0
    Open "c:\1.txt" For Input As #1
    While Not EOF(1)
    n = n + 1
    ReDim Preserve A(1 To n)
    Line Input #1, Q
    A(n) = Q
    Wend
    Close

    n = 2 ' Встовляет во вторую строку
    S = "abcdefdVIR" 'Текст

    Open "c:\2.txt" For Output As #1
    For i = 1 To UBound(A)
    If n = i Then Print #1, S
    Q = A(i)
    Print #1, Q
    Next
    Close

    2) Можно и подругому: Читать и записывать в бинарном виде и обрабатывать массив как массив символов

    Ответ:

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

    Точно сказать не могу но вроде это делается так

    open "my.txt" for binary as #1
    put #1, место_куда_вставлять, что_вставлять

    место_куда_вставлять - позицая напимер 14

    Ответ:

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

    А зачем здесь текстбокс? Грузи в переменную string. По другому никак. Хотя, конечно, если очень захотеть, можно извратиться и отобразить файл в память... И тогда его уже через память ковырять. Но это технически. А на практике обычных методов вроде всегджа хватало.

    Ответ:

    Автор ответа: P@Ssword

    Загрузи куда-нибудь ещё (aka в память %-)

    Вопрос:

    Нужно в VB6 построить амплитудно-частотную хар-ку звукового .wav - файла.

    Ответ:

    Автор ответа: P@Ssword

    Читай про быстрые преобразования Фурье.

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

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

    наверх

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


Выпуск 174.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

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

    Новый выпуск!
    Читайте!

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

    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Один момент из жизни форума: Исходники браузера есть у кого-нибудь?

    • Доска объявлений

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

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

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

    Дата: 25.06.2003 11:02 | Раздел: Примеры кода | Автор: Кузнецов А. В.

    MSAgent Vb Sample - Пример демонстрирует работу с помощниками Ms Office - Скрепышом, Мерлином, Муркой и т. д.

    Дата: 24.06.2003 10:23 | Раздел: Примеры кода | Автор: EROS

    StopChar - Практически в каждой программе есть необходимость ввода с клавиатуры, а его надо ЖЕСТКО КОНТРОЛЛИРОВАТЬ!!! Данная библиотека позволяет ограничить ввод символов с клавиатуры пользователем,а также переключать раскладку.Она писалась для проги,где около 100 TextBox-ов,и для каждого поля,был свой(разрешенный) набор символов.

    Дата: 23.06.2003 10:00 | Раздел: Примеры кода | Автор: Вологин Артём

    ColorConverter - Простой пример демонстрирует, как перевести Dec цвета (цвета CommonDialog) в цвета HTML, VB, RGB без всяких наворотов.

    Дата: 22.06.2003 10:23 | Раздел: Примеры кода | Автор: mc-black

    Класс RgnMake - Класс RgnMake создает окно нестандартной формы с помощью графических файлов: фонового и маски (белый цвет невидим); обеспечивает перетаскивание окна за любую его часть; может включать/выключать режим окна "поверх всех окон”; устанавливает различную степень прозрачности (Win2k и выше).

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

    11:27 / 29 июн. Учебник по MS SQL | Хитов: 8 | Ответов: 2
    10:32 / 29 июн. Новый каталог бесплатных и условно-бесплатных п... | Хитов: 10 | Ответов: 1
    01:50 / 29 июн. Использование текста в качестве кода программы | Хитов: 9 | Ответов: 0
    22:16 / 28 июн. CallBack функция | Хитов: 15 | Ответов: 0
    17:09 / 28 июн. Что происходит с форумом? | Хитов: 32 | Ответов: 4
    17:09 / 28 июн. Что происходит с форумом? | Хитов: 8 | Ответов: 0
    16:34 / 28 июн. Новое сообщение без темы | Хитов: 18 | Ответов: 1
    15:31 / 28 июн. 2 вопроса по VB6 | Хитов: 21 | Ответов: 3
    14:50 / 28 июн. Errorz!!! Help! | Хитов: 16 | Ответов: 0
    13:38 / 28 июн. Что такое контекст устройства??? | Хитов: 7 | Ответов: 0
    13:38 / 28 июн. Что такое контекст устройства??? | Хитов: 6 | Ответов: 0
    13:08 / 28 июн. XP контролы в VB.NET... | Хитов: 11 | Ответов: 2
    10:33 / 28 июн. Помогите Умераю !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!... | Хитов: 26 | Ответов: 1
    09:46 / 28 июн. grid | Хитов: 9 | Ответов: 0
    03:29 / 28 июн. копирование формы ? | Хитов: 11 | Ответов: 1
    00:59 / 28 июн. List1, List2 | Хитов: 10 | Ответов: 0
    00:56 / 28 июн. Resizzzze | Хитов: 9 | Ответов: 1
    00:03 / 28 июн. Ещё вопрос по работе с INI файлами | Хитов: 13 | Ответов: 2
    23:22 / 27 июн. Скачайте пару ГАДов | Хитов: 29 | Ответов: 2
    15:11 / 27 июн. ActiveX License MSINET.OCX Срочно | Хитов: 11 | Ответов: 1

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

    Новости от VBNet-чиков!:

    наверх

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

    наверх

    Новости сайта Азбука VB

    наверх

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

    наверх

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

    • 25.06.2003 - Pocket PC 2003 SDK доступен для скачивания на MSDN

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

    наверх

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

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

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

    наверх

    Один момент из жизни форума: Исходники браузера есть у кого-нибудь?

    Вопрос:
    Автор вопроса: dtit

    Тут надо браузер со своим интерфейсом написать, не могу найти нормальные исходники в нете.
    Киньте, люди добрые, ссылочку!

    Ответы:

    Атор: POST
    http://mozilla.org/
    И не в чем себе не отказывай:)))
    PS: www.freevbcode.com

    Автор: John-mc
    А статья пойдёт?
    http://www.hiprog.com/vb/article.asp?id=424

    Автор: Artificial Intelligence
    http://www.sources.ru/vb/vb_webbrouser.shtml

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

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

    Вопросы:

    Автор вопроса: Vadim

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

    У меня несколько вопросов:
    1. как узнать текущее состояние регистров ebx,ecx...
    2. какие WINAPI могут заменить winsock

    Автор вопроса: Vadim

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

    Как реализовать пинг с помощью winsock'a?

    Автор вопроса: SBJocker

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

    Как через VB сохранять Avi - файлы, с использованием различных кодеков?

    Автор вопроса: Oleg

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

    Кто может оценить, насколько надежна защита программы путем ее привязки к серийному номеру компакт диска?

    Автор вопроса: Rex

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

    Как можно воспроизвести звук (wav,mp3) в VB6? Желательно несколько способов.

    Ответы:

    Вопрос:

    Подскажите, пожалуйста… Можно ли сделать так, чтобы FileListBox Отображал файлы отсортированные не по имени, а по чему либо другому..? Например по дате, или по расширению?

    Ответ:

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

    Если ты работаешь с Базой Банных, то тебе просто нужно в SQL запросе написать Order By (Поле по которому сортировать). Если хочешь сортировать в обратную сторону, после поля пишишь Desc.

    Ну а если ты работаешьс каталогом, то есть с папкой, в которой находятся твои файлы, то я бы лучше написал несколько строк кода для твоих файлов, смотря по чему ты их хочешь сортировать. Например если по расширению, то проверяешь имя файла с конца до точки и потом передаешь его для проверки на нужность! Если нужно я могу написать код как это все делать.

    Вопрос:

    Подскажите пожалуйста как работать с обьектом MS WORD - MS EQUATION???

    Ответ:

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

    Кидаеш на форму OLE контейнер и там выбираеш Equation.

    Вопрос:

    Как в vb6 быстрее копировать и перемещать файлы: CopyFile и MoveFileEx, или с помощью FSO?
    И как переименовать файл? Можно переместить его в ту же папку с новым именем, но это не разумно...
    И то же самое для vb.net.

    Ответ:

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

    Инструкция FileCopy работает довольно быстро. Вряд ли как-то можно копировать на много быстрее.
    Переименовать файл можно так:

    name "oldname.txt" as "newname.txt"

    Всё сказанное относится к обычному vb; как в vb .net -- не знаю.

    Вопрос:

    Я себе Visual Studio 7 .NET установил
    Ну вообще неРеал
    И возникли у меня такие вопросы
    1) Как мне старые проекты открыть(я понял что не как)
    2) Какие библиотеки нужны для переноса приложений на VB.net
    3) Как мне сделать SDI интерфейс(в VB6 в опциях это было, а в .NET я этого не нашол)

    Ответ:

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

    1). Можно. Создаешь Пустое решение и в меню выбираешь Файл->Добавить->Существующий. Если установлен соответствывающий компонент то проект переделается но естественно не все функции перейдут из-за отсутствия таковых.

    Вопрос:

    Подскажите , пожалуйста : Есть файл .dbf , который содержит текстовое поле , в котором кодировка досовская.Как сделать читабельно с помощью ВБ ?

    Ответ:

    Автор ответа: Роман

    А у меня работает только DOS'овская кодировка. А вообще открой базу, например в FoxPro, и сохрани с нужной кодировкой.

    Ответ:

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

    Подключись к базе с помощью элемента Data. При этом тип файла определи ак Dbase... Далее цепляешь к нему текстовое окно и все - в неи должно показывать нормальный текст. Если не поможет - это скорее всего не просто Dbf, а FoxPro - переставь тип базы соответственно.

    Вопрос:

    Как узнать hDC в такой ситуации:

    Dim h as Picture
    Dim k as long
    h=LoadPicture("c:\1.jpg")

    BitBlt k,0,0,100,100, ... ,0,0,vbSrcCopy

    Место ... нужно вставить hDС загруженной картинки. h.Handle неподходит.

    Ответ:

    Автор ответа: Артем Кривокрисенко

    У пикчебокса есть hdc - это контекст устройства.
    У объекта Bitmap есть handle - это идентификатор этого битмапа.
    Контекста устройства у битмапа нет.

    Вопрос:

    Кто знает, какой API вызов возвращает полный путь к файлу (директории), разумеется любой, не текущей

    Ответ:

    Автор ответа: P@Ssword

    Генератор случайных чисел :-)

    frosya, к какому файлу (директории)?

    Вопрос:

    У меня два вопросика.
    1. Как программно можно переместить мышку?
    2. Как спрятать программу от Ctrl+Alt+Del?

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Для этого существует АПИшка SetCursorPos.

    Ответ:

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

    1. Public Declare Function SetCursorPos Lib "user32" Alias "SetCursorPos" (ByVal x As Long, ByVal y As Long) As Long

    Ответ:

    Автор ответа: P@Ssword

    1. API-функция SetCursorPos.
    2. App.TaskVisible = False.

    Вопрос:

    Что-то натворил с
    VB, а что не знаю, причем случалось такое уже несколько раз за год. После установки и удаления всяких левых программ VB стал прозрачным. Есть меню, панель управления, окно свойств, в общем все что нужно для работы (и все прекрасно работает), только все эти окна висят прямо на рабочем столе как самостоятельные приложения. Что нужно сделать, чтобы вернуть все взад???
    Конечно можно работать и так, только как-то дико, как будто висишь на высоте пятиэтажки, где тут сосредоточишься. Переустановку системы чур не предлагать, это я и сам знаю.

    Ответ:

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

    Попробуй в параметрах среды VB (Options) выбрать закладку Advanced и убрать галочку с пункта SDI Development Environment. вот. Все должно быть в порядке.

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Незная, как тебе, а мне это оч. удобно было!!! Можно развернуть окно кода на весь экран - это куда удобнее. чем всматриваться в 15-ти дюймовый монитор и пытаться рассмотреть, что в том среднем окошке написано.

    Короче, ты установил, чтоб он работал в режиме SDI. Выбирай Tools -+ Options -+ Последняя вкладка. И там установи, чтоб он работал как MDI. Или запусти vb6.exe с ключом /mdi.

    Ответ:

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

    Это самая реальная вещь в VB6 жалко ее убрали из .Net
    она убирается в Опциях в последней закладке там будет что-то вроде SDI...

    Ответ:

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

    Отключи Средство разработки SDI в опциях VB.

    Ответ:

    Автор ответа: P@Ssword

    Tools -> Options... -> Advanced -> SDI Development Environment, посмотри, чтобы флажок был снят.

    Вопрос:

    Народ кто может помогите! Я написал прогу и в нее добавил компонент.
    Вопрос: Как мне засунуть компонент в корень проги, ведь не у всех есть этот компонент! Если можно то поподробней!

    Ответ:

    Автор ответа: Славик

    Если объяснять на пальцах, то получается такая картина.
    Твоя прога сама обращается ко всем компонентам, находящимся на форме, будь их целая прорва.
    Чтобы у пользователя все эти компоненты установить, нужно их включить в инсталл-пакет.
    При инсталляции твои контролы устанавливаются в те же самые папки (на компе пользователя) из которых ты их брал (на своем компе). Хотя, возможно бывают упаковщики, не подчиняющиеся этому правилу.
    В любом случае переживать сильно не стоит, т.к. все контролы находятся либо в папке "System", либо в той же что и твоя прога (что бывает крайне редко).
    Перед распространением программы стоит проинсталлировать её на любой машине без VB и проверить наличие всех необходимых компонентов путем прогона программы (заставить программу выполнить все её функции, которые она должна выполнять).

    Ответ:

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

    Я конечно не спец в засовывании компонентов Но придумал реальный вроде способ(только что)
    Создаешь левую форму, создаешь ресурс в который запихиваешь нужный файл делаешь что бы эта форма грузилась первой. В ее коде пиши что-то вроде

    1) Проверка на наличие файла в каталоге
    2)
    bFile()=loadresdata(101,10) '101-ID твоего ресурса
    fHande=freefile
    open app.path & "\my.ocx" for binary as fHande
    put fHende,1,bFile
    close fHande

    Вот и все(если его надо зарегистрировать то я думаю что сделаешь сам)
    P.S. Я так еще никогда не делал но думаю что должно работать (Может работать со второй попытки, после извлечения файла)

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

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

    наверх

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


Выпуск 175.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

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

    Новый выпуск. Присылайте коды!
    Читайте!

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

    • Книги

    • Открытие ADO Recordset
    • DDE
    • Уничтожение файла

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

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти здесь.

    наверх

    Открытие ADO Recordset

    ADO требует, чтобы Recordset был закрыт перед открытием. Эта процедура предназначена для открытия рекордсета. Если он открыт, то он закрывается, а если он содержит те же данные, которые Вы запрашиваете, то вызывается метод Requery для перезапроса данных.

    Public Sub ADO_OpenRs(rs As Recordset, szSource As String, Optional bReadOnly = False)
    If rs.State = adStateClosed Or rs.Source <> szSource Then
    If rs.State <> adStateClosed Then rs.Close
    rs.Open szSource, gCn, adOpenStatic, IIf(bReadOnly, adLockReadOnly, adLockOptimistic)
    Else
    rs.Requery
    End If
    End Sub

    наверх

    DDE

    Небольшой пример использования DDE. DDE - это механизм для обмена данными между приложениями.
    Создайте 2 проекта (с именами "Project1" и "Project2"). В первом проекте у формы установить свойства LinkTopic="SYSTEM" и LinkMode=1. Добавьте на форму Label и установите свойство LinkItem="DDE".
    Во втором проекте добавьте TextBox и CommandButon (имена не изменяйте).
    Добавьте в проекты расположенный ниже код.
    Запустите первый проект (сервер DDE), затем второй (клиент DDE). Нажмите на кнопку - в TextBox на форме первого проекта появится строка, переданная из второго проекта.

    'Код первого проекта

    Private Sub Form_LinkExecute(CmdStr As String, Cancel As Integer)
    MsgBox "Received " & CmdStr, vbInformation
    Cancel = False
    End Sub

    'Код второго проекта

    Private Sub Command1_Click()
    Text1.LinkMode = vbLinkNone
    Text1.LinkTopic = "Project1|SYSTEM"
    Text1.LinkItem = "DDE"
    Text1.LinkMode = vbLinkManual
    Text1.LinkExecute "Hello World"
    End Sub

    наверх

    Уничтожение файла

    Уничтожение файла. Сначала файл заполняется информацией, а затем удаляется с помощью функции Kill.

    Sub DestroyFile(sFileName As String)
    Dim Block1 As String
    Dim Block2 As String
    Dim Blocks As Long
    Dim hFileHandle As Integer
    Dim i As Long
    Dim offset As Long

    Const BLOCKSIZE = 4096
    Block1 = String(BLOCKSIZE, "X")
    Block2 = String(BLOCKSIZE, " ")

    hFileHandle = FreeFile
    Open sFileName For Binary As hFileHandle

    Blocks = (LOF(hFileHandle) \ BLOCKSIZE) + 1

    For i = 1 To Blocks
    offset = Seek(hFileHandle)
    Put hFileHandle, , Block1
    Put hFileHandle, offset, Block2
    Next
    Close hFileHandle

    Kill sFileName
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

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

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

    Вопросы:

    Автор вопроса: SBJocker

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

    Кто-нибудь что-нибудь знает о том как сохранять Avi-файлы из VB. И как использовать различные кодеки?

    Автор вопроса: Максим

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

    Кто-нибудь посоветуйте, куда поступить на программера дистанционно?
    Желательно на «вышку».
    Может придется в ЦКО при МГТУ, но это не высшее образование, после школы охота получить высшее образование.
    Только обязательно ДИСТАНЦИОННО!

    Автор вопроса: Максим

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

    image не отображают битые файлы, точнее, вообще, прога виснит.
    Как сделать, чтобыљ они отражались, а вместо недостающих пикселей был серый цвет, как в экплорер?
    Или какой контрол так сделает, только чтобы имел свойство стреч?

    Автор вопроса: ]CBK[C...R...a...S...H

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

    У меня опять СУПЕР МЕГА НАИСЛОЖНЕЙШИЙ ВОПРОС
    Кто-нибудь занимался программой для создания расписания занятий (поделитесь разработками или исходниками)
    Если кто-нибудь хочет попробовать помочь, то пишите

    Автор вопроса: clayman

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

    Помогите разобраться вот с чем:
    Юзаю VB 6 & MS Access '97

    1. Есть код
    [Модуль]
    Option Explicit
    ' referenses MS DAO 3.6 Object Library
    Public db As Database, dbstring As String
    Public rs As Recordset
    [Форма]
    Private Sub btnSave_Click()
    On Error GoTo CuncelUpdate
    rs.Fields("ID") = Text1.Text
    rs.Fields("ragid") = Text2.Text
    rs.Fields("text") = Text3.Text
    rs.Update
    CuncelUpdate:
    MsgBox Err.Description
    End Sub
    Private Sub Form_Load()
    dbstring = App.Path & "/" & "db.mdb"
    Set db = OpenDatabase(dbstring)
    Set rs = db.OpenRecordset("test", dbOpenDynaset)
    rs.AddNew
    End Sub
    Так вот по нажатии btnSave выскакивает ПУСТАЯ мессага с кнопкой OK (тобишь без какого-либо сообщения об ошибках). Запись при этом сохраняется без каких-либо проблем. Как от этого избавиться? По идее если мессага выскакивает - значит какая-то ошибка? Но в БД состоящей из одной таблицы в три поля трудно допустить ошибку :))

    2. И может кто знает как в каком-нить Grid' е можно сделать ячейку с выпадающим списком (как в Access) с данными из другой таблицы. Поделитесь опытом, можно прямо на мыльницу.

    Автор вопроса: Vlad

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

    Хотелось бы узнать существуют уроки по Visual Studio.NET 7 или нет?
    Хотелось бы на них подписаться или скачать

    Автор вопроса: Vir

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

    Встретилась такая ситуация

    Dim h As Long
    Dim bb As Long
    Dim b As BITMAP

    h = CreateCompatibleDC(0)
    b.bmBits = 0
    b.bmBitsPixel = 32
    b.bmHeight = 100
    b.bmPlanes = 1
    b.bmType = 0
    b.bmWidth = 100
    b.bmWidthBytes = ((((b.bmWidth * b.bmBitsPixel) + 15) \ 16) * 2)

    bb = CreateBitmapIndirect(b)
    SelectObject h, bb

    Dim h1 As Long
    Dim bb1 As Long
    Dim b1 As BITMAP

    h1 = CreateCompatibleDC(0)

    b1.bmBits = 0
    b1.bmBitsPixel = 16
    b1.bmHeight = 100
    b1.bmPlanes = 1
    b1.bmType = 0
    b1.bmWidth = 100
    b1.bmWidthBytes = ((((b1.bmWidth * b1.bmBitsPixel) + 15) \ 16) * 2)

    bb1 = CreateBitmapIndirect(b1)
    SelectObject h1, bb1

    BitBlt h, 0, 0, 100, 100, Picture1.hdc, 0, 0, vbSrcCopy
    BitBlt h1, 0, 0, 100, 100, h, 0, 0, vbSrcCopy

    BitBlt Picture2.hdc, 0, 0, 100, 100, h1, 0, 0, vbSrcCopy

    Picture2.Refresh
    ----------------------------
    Мешает то что из 32 надо сделать 16 бит
    (b.bmBitsPixel = 32
    b1.bmBitsPixel = 16)

    данный код не работает только из за этого. Ситуация такая: прога обрабатывает 32 битную картинку (хранит, сохраняет на HDD и т.д.) но ее надо вывести на монитор, соответственно 16 битный, без изменения в памяти исходной.
    Помогите кто может решить такую задачу, соображения желательно прислать на E-Mail так как нужно очень срочно.

    Автор вопроса: Сергей

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

    1. Расскажите, пожалуйста, как создать TRAIL ограничение в программе.

    2. Как отлаживать компоненты написанные на VB для ASP? Постоянно выгружать перед каждой поледующей компиляцией?

    Автор вопроса: HoodWin

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

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

    Автор вопроса: goodroman

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

    Я недавно прочитал про спуфинг, ну и короче подумал: Если изменить свойство LocalIP у Winsock'а, это что и получиться тот самый спуфинг? То есть сервер будет слать ответ не мне, а на указанное IP? Если нет, то скажите что ещё нужно поменять:

    Автор вопроса: I-Sof

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

    Я пишу HTML редактор, хочу сделать отмену действия и наоборот (отмену отмены действия). Как это сделать?

    Ответы:

    Вопрос:

    В МОДУЛЕ ПИШУ:

    Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
    Public AsciiZnak(255) As Integer

    Function KeyDruk() As String

    For i = 1 To 255 ' Prisvoenie
    If Not AsciiZnak(i) = GetKeyState(i) Then
    KeyDruk = Chr(i)
    End If
    AsciiZnak(i) = GetKeyState(i)
    Next i

    End Function

    В ПРОГРАММЕ ПИШУ:

    Private Sub Timer1_Timer()
    Dim a As String
    a = KeyDruk()
    Text1.Text = Text1.Text + a
    End Sub

    ВОПРОС:
    Почему при выполнении таймера он выдаёт один символ два раза? По идеи в модуле я написал всю проверку насчёт косяка.
    Менять интервал времени таймера не помогает, а если сделать уж очень большой интервал, то вообще функция не успевает следить за нажатием кнопок.
    Что делать?

    Ответ:

    Автор ответа: Andrew Isakov

    IMHO, дело в scan-кодах клавиатуры – нажатие и отпускание…

    Вопрос:

    Кто может оценить, насколько надежна защита программы путем ее привязки к серийному номеру компакт диска?

    Ответ:

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

    Боюсь, что такая защита не является защитой вовсе: все популярные программы для копирования дисков копируют, в том числе, и серийный номер исходного диска. Лучше воспользоваться программой для защиты от копирования, но и она не даст скопировать диск только тому, кто знает лишь пункт "копировать cd" в nero.

    Вопрос:

    Как можно воспроизвести звук (wav,mp3) в VB6? Желательно несколько способов.

    Ответ:

    Автор ответа: Old Krot

    You can use or MCI ,or function api, or shell to exe file of your player

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

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

    наверх

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


Выпуск 176.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

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

    Новый выпуск!
    Читайте!

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

    • Книги

    • SHARESTAR

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Один момент из жизни форума: Колесо

    • Доска объявлений

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

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    SHARESTAR

    Уважаемые разработчики условно-бесплатных программ! Обратите Ваше внимание на открытие нового русско-язычного агентства SHARESTAR, которое поможет Вам продавать Ваши программы пользователям стран СНГ. Самую подробную информацию об агентстве SHARESTAR и о предлагаемой схеме продаж Ваших SHAREWARE программ Вы можете получить на сайте http://sharestar.laguna-ua.com/. Мы используем принципиально новый механизм продажи условно-бесплатных программ (на основе MULTI-LEVEL MARKETING), который позволяет зарабатывает реальные деньги и пользователям и разработчикам программ. SHARESTAR является официальным проектом компании "Лагуна софт Украина" (LAGUNA-UA). SHARESTAR - это Ваш первый шаг в мир условно-бесплатных программ! Присоединяйтесь сегодня и Вы не пожалеете об этом никогда!

    Мы всегда готовы ответить на все Ваши вопросы: sharestar@laguna-ua.com

    С уважением, Администрация агентства SHARESTAR AGENCY.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

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

    Дата: 06.07.2003 12:59 | Раздел: Примеры кода | Автор: KuD

    FTP file search server (+ client) - Предположим у Вас работает FTP сервер или сходный по назначению сервис. Папка, которую использует сервер, очень большая по размеру и имеет большое кол-во файлов и вложенных папок. Как помочь клиентам искать интересующий их файл? Программа FTP F. S. S. это выход из положения. Она будет искать файлы по запросу клиента на сервере и отсылать отчет о найденых файлах. Краткая хар-ка: - Многоканальность - Распределение потоков (запросы не будут путаться между клиентами) - Сидит в трее - Работает на UDP. Программа, конечно, сыровата, но на 100 % рабочая. В коде клиента измените Ip сервера на ВАШ.

    Дата: 05.07.2003 11:32 | Раздел: Примеры кода | Автор: Половый Александр

    Морской бой - Морской бой! Играть можно против компьютера или человека по сети. Звук и немного анимации. И еще несколько "программистких штучек".

    Дата: 04.07.2003 08:48 | Раздел: Примеры кода | Автор: birkoff

    Рисование на рабочем столе - Рисует bmp-картинку на рабочем столе с помощью SetPixel.

    Дата: 03.07.2003 08:12 | Раздел: ActiveX контролы | Автор: mc-black

    RegionMake - Контрол RegionMake предназначен для изменения вида и поведения окон вашей программы. Во-первых, окно становится нестандартной формы. Для этого указываются два файла-картинки. Во-вторых, окно может быть поверх всех окон или как обычно. В-третьих, для Win2k и выше указывается прозрачность. В четвертых, форму можно передвигать за любое место (все настраивается). Подробнее читайте ReadMe. Внимание! При добавлении контрола на форму в режиме IDE "design" форма меняет некоторые свойства, которые, быть может, вы очень долго выставляли.

    Дата: 02.07.2003 08:48 | Раздел: Примеры кода | Автор: birkoff

    3D-куб с текстурой - Вращающийся куб на форме с одной текстурированной стороной. Сделано при помощи SetPixel и двоичного доступа к bmp-файлу.

    Дата: 01.07.2003 10:59 | Раздел: Статьи по VB | Автор: Сурменок Павел

    Обзор ADO .NET - Есть в .NET новая система доступа к базам данных - ADO.NET, она же ADO+ (ActiveX Data Objects). В этой статье описана объектная модель ADO+ и показаны основные возможности этой библиотеки.

    Дата: 30.06.2003 10:27 | Раздел: Примеры кода | Автор: Xatab

    Expert System - Небольшая эекспертная система на Visual Basic.

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

    11:31 / 6 июл. Непонятен вопрос, хорошо, опишу по подробнее... | Хитов: 5 | Ответов: 0
    07:35 / 6 июл. Хочу спать :) | Хитов: 24 | Ответов: 5
    15:40 / 5 июл. Корзина | Хитов: 18 | Ответов: 1
    15:00 / 5 июл. Предложение администрации сайта по поводу форума | Хитов: 20 | Ответов: 0
    14:56 / 5 июл. Предложение админам... | Хитов: 23 | Ответов: 2
    12:51 / 5 июл. Работа с буфером обмена | Хитов: 22 | Ответов: 3
    12:47 / 5 июл. Объясните смысл слов... | Хитов: 41 | Ответов: 8
    12:35 / 5 июл. ProgressBar в ListBox | Хитов: 19 | Ответов: 2
    12:29 / 5 июл. DataReport | Хитов: 5 | Ответов: 0
    12:28 / 5 июл. Есть вопросы о "запросе" | Хитов: 20 | Ответов: 3
    08:51 / 5 июл. VB и Pascal как их ... | Хитов: 22 | Ответов: 3
    05:16 / 5 июл. Вопрос по ИнСтАлЯцИи | Хитов: 23 | Ответов: 2
    01:58 / 5 июл. SQLServer | Хитов: 8 | Ответов: 0
    01:58 / 5 июл. SQLServer | Хитов: 1 | Ответов: 0
    00:05 / 5 июл. SQLServer для XP | Хитов: 18 | Ответов: 1
    14:26 / 4 июл. Как в VB.NET открыть форму по кнопке на другой ... | Хитов: 23 | Ответов: 2
    12:19 / 4 июл. печать таблицы DataGrid | Хитов: 21 | Ответов: 1
    11:31 / 4 июл. Запись в Word | Хитов: 12 | Ответов: 0
    11:29 / 4 июл. Блокировка клавы, автозагрузка | Хитов: 19 | Ответов: 1
    11:25 / 4 июл. массивы контролов в Visual Basic .net | Хитов: 19 | Ответов: 3

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

    Новости от VBNet-чиков!:

    наверх

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

    наверх

    Новости сайта Азбука VB

    наверх

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

    наверх

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

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

    наверх

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

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

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

    наверх

    Один момент из жизни форума: Колесо

    Вопрос:
    Автор вопроса: admsasha

    Как обрабатывать колесико мыши?

    Ответы:

    Атор: hedgehog
    Аналогично решал недавно для флексгрида - через субклассинг:
    в модуле:

    Public Declare Function SetWindowLong _
    Lib "user32" Alias "SetWindowLongA" ( _
    ByVal hwnd As Long, _
    ByVal nIndex As Long, _
    ByVal dwNewLong As Long) As Long
    Public Declare Function CallWindowProc _
    Lib "user32" Alias "CallWindowProcA" ( _
    ByVal lpPrevWndFunc As Long, _
    ByVal hwnd As Long, _
    ByVal Msg As Long, _
    ByVal wParam As Long, _
    ByVal lParam As Long) As Long

    Private Const WM_MOUSEWHEEL = &H20A

    Function SwapProcAB(ByVal hwnd As Long, ByVal Msg As Long, ByVal _
    wParam As Long, ByVal lParam As Long) As Long
    Dim lReturn As Long
    lReturn = CallWindowProc(formname.OldABProc, hwnd, Msg, wParam, lParam)
    Select Case Msg
    Case WM_MOUSEWHEEL
    formname.ScrollFlex wParam
    End Select
    SwapProcAB = lReturn
    End Function

    в форме:

    Public OldABProc As Long
    Private Const GWL_WNDPROC = (-4)

    Private Sub Form_Load()
    ...
    OldABProc = SetWindowLong(Flex1.hwnd, GWL_WNDPROC, AddressOf SwapProcAB)
    End Sub

    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    ...
    SetWindowLong Flex1.hwnd, GWL_WNDPROC, OldABProc
    End Sub
    Переделай под себя аналогично - у меня работает отлично.

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

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

    Вопросы:

    Автор вопроса: Vor

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

    Я чего-то нахимичил с VB, в общем в коде программы вместо русского шрифта какой-то непонятный. Как сделать обратно?

    Автор вопроса: Марк

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

    Как средствами VB сделать файл справки со своим содержимым? Можно ли сделать этот файл справки как .chm - файл?

    Автор вопроса: Sergey

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

    А где можно увидеть рабочий пример Чата, типа клиент-клиент?

    Автор вопроса: clayman

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

    Есть вопрос по DBGrid:
    Источником записей для DBGrid явл. Data1
    Источником для Data1 явл. SQ -строка. Тобишь количество и название столбцов определяется непосредственно перед загрузкой самой формы на которой расположен сам DBGrid.
    Вопрос такой:
    Нужно чтобы при выводе на экран у каждого столбца элемента DBGrid была своя заданная в коде ширина. Было-бы здорово если каждый столбец мог бы учитывать размер самой длинной записи в строке...

    Автор вопроса: Vao

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

    Для моего редактора тестов неожиданно потребовалась распечатка результатов. В связи с этим возникла парочка вопросов:

    1. Как можно создать, наполнить и сохранить WORD'овский документ(*.doc), со всяческими прибамбасами касаемо текста (а, если короче, то произвести "печать в файл")?
    2. Как вывести данные с формы на принтер, при этом нужно определить поля страницы, расположение текста на странице, форматирование и т.п. Можно ли это сделать обойдя CommonDialog?

    Автор вопроса: Vao

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

    Расскажите, пожалуйста, поподробнее про сжатие БД программно.

    Автор вопроса: Rex

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

    Как "заблокировать" рабочий стол, т.е. если пользователь будет нажимать на любые места на экране, то ничего происходить не будет, но форма (программа) будет полностью рабочая?

    Автор вопроса: Rex

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

    Как "заблокировать" CD-ROM (чтобы не открывался и не работали кнопки на нём); выдвинуть, задвинуть?

    Автор вопроса: Rex

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

    Какой контрол, где есть прогресс бар, идёт вместе с Windows?

    Автор вопроса: I-Sof

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

    Как создать свой dll для своей проги?

    Автор вопроса: Rex

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

    Как можно узнать сведения о системе: марку и модель материнки, тип и модель процессора?

    Автор вопроса: Владимир

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

    Этот код заполняет форму по номеру на web-странице.

    Set Doc = Explorer.Document
    Dim Inputs As IHTMLElementCollection
    Set Inputs = Doc.All.tags("INPUT")
    Inputs.Item(0, 0).Value = "Vladimir"

    А как заполнить ее по имени на VB6.
    Кто нибудь сможет ответить на мой вопрос?
    Или, как и на предыдущие 2 вопроса, пошлете на три буквы URL, где посылают еще дальше.

    Автор вопроса: Indy

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

    1. Я испольяую базу данных Access, первоначальные таблицы я создал вручную, а можно ли программно создать таблицу в базе данных Access?
    2. Как можно сделать так чтобы системный шрифты отображались в элементе СomboList?

    Автор вопроса: Govorun

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

    Не могу вызвать Функцию АРI "ExitWindows". Подскажите, как это сделать.

    Ответы:

    Вопрос:

    Кто-нибудь посоветуйте, куда поступить на программера дистанционно?
    Желательно на «вышку».
    Может придется в ЦКО при МГТУ, но это не высшее образование, после школы охота получить высшее образование.
    Только обязательно ДИСТАНЦИОННО!

    Ответ:

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

    Сходи http://www.cometa.ru
    Правда это техникум.
    Сам там учусь.

    Ответ:

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

    Это можно сделать в Минском государственном радиотехническом университете, например. Адрес что-то типа http://ciosrv2.bsuir.unibel.by/index.jsp?PageID=76067&lang=ru&resID=100229&menuItemID=101491 (боюсь, устаревшая информация)
    Ректор заявил, что как минимум пару полноценных факультетов дают дистанционное обучение с выдачей государственных дипломов.

    Вопрос:

    У меня опять СУПЕР МЕГА НАИСЛОЖНЕЙШИЙ ВОПРОС
    Кто-нибудь занимался программой для создания расписания занятий (поделитесь разработками или исходниками)
    Если кто-нибудь хочет попробовать помочь, то пишите

    Ответ:

    Автор ответа: Andrew Stephanoff

    Я когда-то пробовал ее писать на Borland C++ Builder, но исходников ее не осталось.
    Если хочешь - могу помочь, а вообще у меня есть файл в Exell, его удобно заполнять и распечатывать.
    Если же надо что-то вроде органайзера + напоминателья + записной книжки, то поставь MS Outlook (не Outlook Express!!!).

    Вопрос:

    Помогите разобраться вот с чем:
    Юзаю VB 6 & MS Access '97

    1. Есть код
    [Модуль]
    Option Explicit
    ' referenses MS DAO 3.6 Object Library
    Public db As Database, dbstring As String
    Public rs As Recordset
    [Форма]
    Private Sub btnSave_Click()
    On Error GoTo CuncelUpdate
    rs.Fields("ID") = Text1.Text
    rs.Fields("ragid") = Text2.Text
    rs.Fields("text") = Text3.Text
    rs.Update
    CuncelUpdate:
    MsgBox Err.Description
    End Sub
    Private Sub Form_Load()
    dbstring = App.Path & "/" & "db.mdb"
    Set db = OpenDatabase(dbstring)
    Set rs = db.OpenRecordset("test", dbOpenDynaset)
    rs.AddNew
    End Sub
    Так вот по нажатии btnSave выскакивает ПУСТАЯ мессага с кнопкой OK (тобишь без какого-либо сообщения об ошибках). Запись при этом сохраняется без каких-либо проблем. Как от этого избавиться? По идее если мессага выскакивает - значит какая-то ошибка? Но в БД состоящей из одной таблицы в три поля трудно допустить ошибку :))

    2. И может кто знает как в каком-нить Grid' е можно сделать ячейку с выпадающим списком (как в Access) с данными из другой таблицы. Поделитесь опытом, можно прямо на мыльницу.

    Ответ:

    Автор ответа: Mind Engine

    А вот так сделать, религия не позволяет? =)

    rs.Update: еxit sub

    Ответ:

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

    У тебя в любом случае,есть ошибка или нет, есть переход на строку

    MsgBox Err.Description

    Тогда уже так:

    CuncelUpdate:
    If Err.Description <> "" Then
    MsgBox Err.Description
    End If
    End Sub

    Ответ:

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

    Ну ты даешь!!!
    Надо сделать так:

    Private Sub btnSave_Click()
    On Error GoTo CancelUpdate
    rs.Fields("ID") = Text1.Text
    rs.Fields("ragid") = Text2.Text
    rs.Fields("text") = Text3.Text
    rs.Update
    EXIT SUB
    CancelUpdate:
    MsgBox Err.Description
    End Sub

    Ответ:

    Автор ответа: Vladimir Selyanin

    Перед своим CuncelUpdate: поставь Exit Sub.

    rs.Update
    Exit Sub
    CuncelUpdate:

    P. S. И отмена по-английски - Cancel

    Ответ:

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

    Элементарно, Ватсон ;-)

    On Error GoTo CuncelUpdate
    rs.Fields("ID") = Text1.Text
    rs.Fields("ragid") = Text2.Text
    rs.Fields("text") = Text3.Text
    rs.Update
    '===============
    Exit Sub
    '===============
    CuncelUpdate:
    MsgBox Err.Description ' при отсутствии ошибки оно и вынуждено выводиться на
    экран
    End Sub

    Ответ:

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

    Код после метки CancelUpdate работает и при возникновении ошибки и достижения до него перед данной строчкой вставь Exit Sub.

    Ответ:

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

    У тебя происходит выполнение msgbox и при правильном исполнении предыдущих команд. Поставь if и проверяй err.number (без ошибки = 0), только не забудь его в самом начале процедуры очистить (err.clear).

    Вопрос:

    Хотелось бы узнать существуют уроки по Visual Studio.NET 7 или нет?
    Хотелось бы на них подписаться или скачать

    Ответ:

    Автор ответа: Артем Кривокрисенко

    http://progs.biz/

    Есть еще классная книжка по VB.NET Дана Эплмэна - "Переход на VB.NET. Стратегии, концепции, код" (в этой рассылке ссылка дается на нее).

    Вопрос:

    1. Расскажите, пожалуйста, как создать TRAIL ограничение в программе.

    2. Как отлаживать компоненты написанные на VB для ASP? Постоянно выгружать перед каждой поледующей компиляцией?

    Ответ:

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

    По первому вопросу:
    Сначала нужно записать куда-нибудь в папку Windows, в файл *.ini, или в реестр, дату первого запуска.
    Потом при каждом запуске нужно проверять разницу между текущей датой и датой первого запуска:
    If DateDiff("d", #11/8/99#, Date) > 30 Then ... 'если разница между датой 11 августой 1999 года и текущей
    'в днях больше 30, тогда ....

    Вопрос:

    Я пишу HTML редактор, хочу сделать отмену действия и наоборот (отмену отмены действия). Как это сделать?

    Ответ:

    Автор ответа: Кирилл

    Ну я бы сделал так, с глубиной удаления не более 20 должно работать шустро. Создаешь приватный класс, в нем свойства

    -позиция
    -тип операции(удаление/вставка)
    -стоковое содержание
    -координаты (номер строки + позиция)

    Может быть еще что-то

    Далее там где у тебя основной код, создаешь Dictionary, можно и простую коллекцию, но Dictionary удобнее в работе.
    При удалении/вставке пишеь в Dictionary новый объект своего класа, заполнив его данными. Ключ Dictionary=позиция. При добавлении нового элемента, он становится первым, а остальные сдвинуть.
    При нажатии на кноки отмена/отмена отмены лезешь в Dictionary ищешь первый элемент с соотв типом операции и делаешь обратную.
    Можно сделать на массиве, будет шустрее работать с большими объемами, но с массивом труднее работать.

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

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

    наверх

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


Выпуск 177.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

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

    Извините, раздел "Вопрос/Ответ" забить не успел... Через час поезд...
    Читайте!

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

    • Книги

    • Конвертировать число в двоичную систему счисления
    • Как скачать файл?
    • Работа с текстовой БД

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

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти здесь.

    наверх

    Конвертировать число в двоичную систему счисления

    .NET
    А знаете, как просто перевести число в двоичную систему счисления в .NET? Очень просто!

    Dim b As Byte
    b = 55

    Dim s As String
    s = System.Convert.ToString(b, 2)
    MsgBox (s)

    наверх

    Как скачать файл?

    .NET
    Как скачать файл? Запросто!

    Dim wc As New Net.WebClient 'Создаём WebClient
    'Создаём поток и BinaryWriter для записи данных в файл
    Dim fs As New IO.FileStream(Server.MapPath(filename), IO.FileMode.Create)
    Dim bw As New IO.BinaryWriter(fs)
    Dim b() As Byte
    'Копируем файл в байтовый массив
    b = wc.DownloadData(URL)
    'Пишем байтовый массив в FileStream
    bw.Write(b)
    'Закрываем объекты
    bw.Close()
    fs.Close()

    наверх

    Работа с текстовой БД

    Этот пример удачно демонстрирует организацию работы со своей текстовой базой данных.
    В один обычный бытовой текстовый файл можно записать однострочный или многострочный текст. Если придумать оригинальный признак окончания записи, то можно вообще будет записывать любую информацию, например файлы, содержащие все символы из стандартной таблицы.
    В нашем случае признаком конца записи является chr$(175), который в тексте не встречается и с клавиатуры не набирается.

    Итак, приступим... Запишем данные из двух текстбоксов в файл и считаем обратно...
    Расположим на форме две кнопки и два поля текста
    Command1 - "Чтение"
    Command2 - "Запись".
    Txt1 - одно поле
    Txt2 - второе поле
    У текстовых полей установите свойство MultiLine = true для многострочности

    Dim Massiv$(0 To 100), Stroka$

    '...

    ''''чтение данных
    Private Sub Command1_Click()
    Dim scet2%, dd%

    On Error Resume Next
    Open "text.txt" For Input As #1
    Stroka = Input$(LOF(1), 1)
    Close #1

    'инициализация
    dd = 1: e = 0: scet2 = 0
    Erase Massiv

    'заполнение массива Massiv()
    While InStr(e + 1, Stroka, Chr$(175)) > 0
    e = InStr(e + 1, Stroka, Chr$(175))
    Massiv(scet2) = Mid$(Stroka, dd, e - dd)
    scet2 = scet2 + 1
    dd = e + 3
    Wend

    'вывод текста по текстбоксам
    Txt1.Text = Massiv(0)
    Txt2.Text = Massiv(1)

    'обработка ошибок
    If Err Then MsgBox "Error #" & Err.Number & " = " & Err.Description, vbCritical
    End Sub

    ''''запись данныхъ
    Private Sub Command2_Click()
    'Обратите внимание что записываем в файл
    'не текстбоксы, а массив да еще в цикле,
    'во как!. Массив же изменяем в ходе
    'изменения текста.
    Open "text.txt" For Output As #2
    Print #2, Massiv(0) & Chr$(175)
    Print #2, Massiv(1) & Chr$(175)
    Close #2
    End Sub

    'а вот и изменение массива:
    Private Sub Txt1_Change()
    Massiv(0) = Txt1.Text
    End Sub

    Private Sub Txt2_Change()
    Massiv(1) = Txt2.Text
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

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

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

    Нет вопросов.

    Ответы:

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

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

    наверх

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


Выпуск 178.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

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

    Новый выпуск!
    Читайте!

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

    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Один момент из жизни форума: реестр в .NET

    • Доска объявлений

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

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

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

    Дата: 14.07.2003 10:43 | Раздел: Примеры кода | Автор: Юмашин Алексей

    ListControls - Вывод списка всех элементов управления формы в дерево TreeView, с показом иерархии вложенности контейнеров и поэлементной развёрткой массивов ЭУ. Проект требует библиотеку MSCOMCTL.OCX. Это просто пример; на его базе несложно сделать ActiveX контрол с методом PrintTree - довольно часто разработчику полезно видеть "дерево" своей формы перед глазами.

    Дата: 13.07.2003 11:02 | Раздел: Примеры кода | Автор: Кузнецов А. В.

    Speech - Программа конвертирует текст в голос при установленных движках.

    Дата: 12.07.2003 08:48 | Раздел: Примеры кода | Автор: birkoff

    3D-куб с текстурой - Вращающийся куб на форме с одной текстурированной стороной. Сделано при помощи SetPixel и двоичного доступа к bmp-файлу.

    Дата: 11.07.2003 10:59 | Раздел: Примеры кода | Автор: Сурменок Павел

    ColorsConvert - Пример написан на VB6. Он показывает, как конвертировать цвета из одной системы в другую (RGB, YUV, YIQ, CMY, CMYK). А также разложение цвета из шестнадцатеричного или десятичного представления на составляющие.

    Дата: 10.07.2003 10:59 | Раздел: Примеры кода | Автор: Сурменок Павел

    Mail - Пример отправки почты в VB .NET путём непосредственного общения с SMTP-сервером. Конечно, проще использовать встроенные средства отправки почты, но они требуют наличия в системе сервиса SMTP, которого у пользователя может не быть (например, если у него Win 9x/ME). К тому же этот пример поможет вам освоить работу в сети в VB .NET.

    Дата: 09.07.2003 10:59 | Раздел: Примеры кода | Автор: Сурменок Павел

    WinMail - Пример отправки почты из VB .NET (Windows-приложение). Используются классы из пространства имён System.Web.Mail.

    Дата: 08.07.2003 10:59 | Раздел: Примеры кода | Автор: Сурменок Павел

    AgentSample - Пример использования технологии MS Agent в VB .NET.

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

    10:25 / 15 июл. Правильное использование ADODC | Хитов: 4 | Ответов: 1
    09:54 / 15 июл. Обновление msado15.dll | Хитов: 5 | Ответов: 1
    09:31 / 15 июл. Как в ListBox добавить картинку ? | Хитов: 7 | Ответов: 0
    06:06 / 15 июл. Как преобразовать дату к другому часовому поясу? | Хитов: 10 | Ответов: 0
    06:05 / 15 июл. Буфер обмАна | Хитов: 14 | Ответов: 0
    05:56 / 15 июл. Админу. | Хитов: 16 | Ответов: 1
    01:47 / 15 июл. Учёт траффика | Хитов: 21 | Ответов: 5
    23:57 / 14 июл. CInt i CLng | Хитов: 19 | Ответов: 2
    22:53 / 14 июл. True DBGrid 8 | Хитов: 19 | Ответов: 1
    19:42 / 14 июл. CPL | Хитов: 17 | Ответов: 0
    19:03 / 14 июл. Отправка SMS через VB | Хитов: 22 | Ответов: 4
    19:00 / 14 июл. как убрать контекстное меню? | Хитов: 32 | Ответов: 5
    18:36 / 14 июл. Защита базы данных | Хитов: 23 | Ответов: 4
    17:56 / 14 июл. Принтер | Хитов: 17 | Ответов: 0
    17:18 / 14 июл. Что такое hwnd? | Хитов: 29 | Ответов: 2
    17:16 / 14 июл. Если у меня известен номер символа в Acii... | Хитов: 29 | Ответов: 2
    16:31 / 14 июл. Админу | Хитов: 27 | Ответов: 1
    15:30 / 14 июл. реестр | Хитов: 18 | Ответов: 1
    15:26 / 14 июл. GETOBJECT & CREATEOBJECT! | Хитов: 26 | Ответов: 7
    14:58 / 14 июл. ProgressBar | Хитов: 19 | Ответов: 0

    Последние поступления в Библиотеку кодов:

    Новости от VBNet-чиков!:

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Новости сайта MSDN

    • Конференция Professional Developers Conference 2003 — регистрация началась
    • Устранение уязвимости в системе безопасности для IBuySpy Portal и Portal Starter Kit (EN)
      Выпущено исправление для устранения уязвимости в системе безопасности для: любой версии примера VB.NET IBuySpy Portal, настроенного для использования аутентификации через html формы, любой версии примера VB.NET Portal Starter Kit, настроенного для использования аутентификации через html формы, версий примера C# IBuySpy Portal, выпущенных ранее ASP.NET 1, в особенности в составе бета-версий 1 и 2 ASP.NET, настроенного для использования аутентификации через html формы.
    • Представляем Power Toys для Visual Studio .NET 2003 (EN)
      Ознакомьтесь с новой коллекцией замечательных служебных программ и надстроек, разработанных корпорацией Microsoft. Они позволят вам улучшить свою работу в среде Visual Studio .NET 2003.
    • Загрузите новый пакет SDK для компьютеров Pocket PC на базе Windows Mobile 2003 (EN)
      Возможность создания приложений для компьютеров Pocket PC на базе Windows Mobile 2003 с использованием Microsoft Windows .NET Compact Framework, Windows CE .NET 4.2 и новых программных интерфейсов Pocket PC, доступных в пакете Pocket PC 2003 SDK.
    • Бета-тестирование Reporting Services (EN)
      Microsoft SQL Server 2000 Reporting Services — новая, полномасштабная серверная платформа для создания и доставки традиционных (бумажных) и интерактивных отчетов. Мы принимаем заявки на участие в тестировании бета-версии продукта, выпуск которой запланирован на осень 2003 года.

    наверх

    Новости сайта GotdotNet

    • 14.07.2003 - Quake II .NET
      В июле 2003, компания Vertigo Software, Inc. выпустила Quake II .NET, портировав свой движок с C на Visual C++ с .NET расширениями.
    • 04.07.2003 - Получи evaluation версии Microsoft Windows Server 2003 и Visual Studio .NET 2003!
      В Internet магазине Ozon Вы можете оформить доставку evaluation версий Microsoft Windows Server 2003 и Visual Studio .NET 2003
    • 02.07.2003 - Подведены итоги мастер-классов "Введение в C#"
      По окончании 4х мастер классов "Введение в C#" можно подвести краткие итоги и рассказать о планах на будущее. Прежде всего, хочется выразить признательность и благодарность как Мастерам из Высшей Школы Программирования так и участникам Мастерам классов.

    Новые статьи:

    • 11.07 - Проектирование компонентов уровня данных и передача данных между уровнями
    • 03.07 - XmlSerializer - и как с ним бороться
    • 02.07 - Использование шаблонов дизайна в ASP .NET

    наверх

    Новости сайта dotSite

    Новые статьи:

    Новые примеры:

    наверх

    Один момент из жизни форума: реестр в .NET

    Вопрос:
    Автор вопроса: avarch_nik

    В VB 6.0 я сохранял пользовательские установки в реестре командой SaveSetting и считывал их GetSetting. Как решается эта проблема в VB .NET ?

    Ответы:

    Атор: ШевТ
    Используй Microsoft.Windows.Registry для работы с реестром.

    Атор: Павел
    SetSetting и GetSetting в VB .NET тоже работают.

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: 001

    Ответ ожидается по этому адресу

    Имеется проблема следующая: я создал проект IIS Application, но как его разместить в Интернете? Во что он компилится? Где и как его проверить, кроме VB6?

    Автор вопроса: .::neo::.

    Ответ ожидается по этому адресу

    Вопрос по .NET, использую MSAgent.
    А как отловить, что анимация завешина? Знаю, что для этого надо использовать событие RequestComplete, но что-то не получается...

    Автор вопроса: Владимир

    Ответ ожидается по этому адресу

    Я работаю с ASP. Как сделать так, чтобы на странице выводились из базы данных не все поля, а например 5. Чтобы внизу страницы соотвественно появлялись вот такие штуки, например: [1][2][3][5][6][7][8][9].И если кликнуть на 3, то соответсвенно выводятся с 11 по 15 статью.

    Автор вопроса: 108vadim@mail.ru

    Ответ ожидается по этому адресу

    Есть три запроса , как из них собрать один запрос?

    запрос: qBal_Chet

    SELECT Clients.id_Clients, Clients.ClientName, Sum([Kol-vo]*[Cost]) AS ChetSum
    FROM (CheetToClient LEFT JOIN CheetToClient_tovars ON CheetToClient.id_chet = CheetToClient_tovars.id_chet) RIGHT JOIN Clients ON CheetToClient.id_Clients = Clients.id_Clients
    GROUP BY Clients.id_Clients, Clients.ClientName

    запрос:qBal_Plat

    SELECT Clients.id_Clients, Sum(PlatFromClient.PlatSum) AS [Sum-PlatSum]
    FROM Clients LEFT JOIN PlatFromClient ON Clients.id_Clients = PlatFromClient.id_Clients
    GROUP BY Clients.id_Clients

    Запрос: Собирающий два предыдущих

    SELECT Clients.ClientName, qBal_Chet.ChetSum, qBal_Plat.[Sum-PlatSum], [ChetSum]-[Sum-PlatSum] AS Zadoljennost
    FROM (qBal_Chet LEFT JOIN qBal_Plat ON qBal_Chet.id_Clients = qBal_Plat.id_Clients) RIGHT JOIN Clients ON qBal_Chet.id_Clients = Clients.id_Clients;

    Автор вопроса: efimov_oleg

    Ответ ожидается по этому адресу

    Как вызвать при печати какого-либо текста окно настроек принтера?

    Автор вопроса: Rex

    Ответ ожидается по этому адресу

    Как можно читать файлы побайтно, т.е так, как это делает Artmoney 5.43, не в виде текста, а в чиловом (1,2,3,4 байтном) виде?

    Автор вопроса: Игорь

    Ответ ожидается по этому адресу

    Кто делал для своей программы контекстно-зависимую HTML-помощь? Как привязать готовый CHM-файл к различным формам и элементам управления программы, используя свойство HelpContextID, чтобы получить действительно контекстно-зависимую помощь? А то в любом месте прграммы при нажатии F1 выскакивает окошко с первой страницей файла помощи ...

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Как узнать закрыт или открыт лоток. Нужен случий, когда два CD-ROM. Как закрыть один из них?

    Автор вопроса: Вячеслав

    Ответ ожидается по этому адресу

    Подскажите, как можно проанализировать имена файлов. Поясню, есть каталог в котором накапливаются файлы, типа VIP(номер).rtf, где номер - это порядковый трёхзначный номер файла. Программа должна анализировать номера файлов и убеждаться, что они идут последовательно (001, 002, 003 ...), т. е. пропусков нет. Отсчёт не обязательно начнётся с 001. Может, например с 653, 654, 656, ...

    Автор вопроса: Дмитрий

    Ответ ожидается по этому адресу

    Как прописать программу в автозагрузку?

    Автор вопроса: Генадий

    Ответ ожидается по этому адресу

    Только начал изучать VB6. Стоит ли вместо VB6 сразу перейти к VB .NET?

    Автор вопроса: KB

    Ответ ожидается по этому адресу

    Как сделать форму как в программах The Bat, FlashGet и др. А именно, чтобы было несколько окон, размеры которых зависят друг от друга и изменяются перемещением перегородок между ними.

    Автор вопроса: Taras Prikhodko

    Ответ ожидается по этому адресу

    Как, зупустив дос-команду из VB, получить результат обратно в VB, чтобы прога ожидала этого рузультата и только после продолжала выполнение?

    Автор вопроса: afb

    Ответ ожидается по этому адресу

    Необходимо загнать данные из файла

    46 49 50 51 _
    52 53 54 55 _
    56 57 48 _
    49 50 51 _
    52 53 54 _
    55 56 57 _
    48 81 87 _

    в listbox. Пишу так:

    Dim nl As Integer
    Dim ks As Integer

    Private Sub Command1_Click()
    Dim txt
    Dim FN As Integer
    FN = FreeFile
    Dim FName As String
    FName = "C:\file0.txt"
    Open FName For Input As #FN
    txt = Input(LOF(FN), #FN)
    Close #FN

    For n = 1 To Len(txt)
    ks = ks + 1
    If Mid$(txt, n, 1) = "_" Then
    nl = nl + 1:
    List1.AddItem (Mid$(txt, n - ks, ks)), nl: ks = 0
    End If
    Next n
    End Sub

    Private Sub Form_Load()
    nl = -1
    ks = 0
    End Sub

    Пишет "недопустимый вызов процедуры" в

    List1.AddItem (Mid$(txt, n - ks, ks)), nl: ks = 0

    Автор вопроса: Максим

    Ответ ожидается по этому адресу

    Вот что у меня есть:

    Private Sub Command1_Click()
    On Error GoTo метка
    MkDir ("c:\Графики")
    метка:
    SavePicture Picture1.Image, "c:\Графики\1.bmp"
    End Sub

    А как сделать, чтобы при нажатии на кнопку график сохранялся под новым именем? (2.bmp, 3.bmp и т.д.)

    Автор вопроса: Alai

    Ответ ожидается по этому адресу

    Необходимо вывести информацию из RecordSet-a, полученную после выполнения запроса, в файл, желательно в *.txt или в *.doc, причем данные необходимо вывести в табличном виде (как в Grid). Сам сделал вывод в Word, но работает очень долго. Посоветуйте, как решить проблему. Важно, чтобы вывод отрабатывал как можно быстрее.

    Ответы:

    Вопрос:

    Я чего-то нахимичил с VB, в общем в коде программы вместо русского шрифта какой-то непонятный. Как сделать обратно?

    Ответ:

    Автор ответа: .::neo::.

    У тебя сбились настройки:
    Tools-Options-вкладка Editor Format-и ставь Font "Courier New CYR"
    ...вот так вот!

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Просто он использует некириллический шрифт. Лезешь в
    Tools -> Options -> Editor Format -> Font.
    Туда поставь кириллический шрифт (можно Courier CYR).

    Ответ:

    Автор ответа: vmv

    Это не химия..., а не понимание владельцем компьютера, что в программе есть панель настроек в т.ч. и шрифта.
    -Инструменты - Параметры - Еditor format - Font(например:) Courier New Cyr

    Ответ:

    Автор ответа: Vladimir [PRC]

    Tools->Options...->Editor Format->Font:
    и выбираешь новый шрифт (лучше не пропорциональный, типа Courier New Cyr или MS Sans Serif)

    Ответ:

    Автор ответа: Mr. Holy Deer

    Зайди в
    Tools -> Options -> Editor Format
    Там выстави шрифт, поддерживающий русскую кодировку.

    Вопрос:

    Как средствами VB сделать файл справки со своим содержимым? Можно ли сделать этот файл справки как .chm - файл?

    Ответ:

    Автор ответа: .::neo::.

    Кажись, я это видел где-то на www.relib.ru, могу ошибаться!

    Ответ:

    Автор ответа: Артем Кривокрисенко

    .chm файл поможет сделать программа Html Help Workshop (производства Microsoft) - можно скачать с их сайта бесплатно.

    Ответ:

    Автор ответа: vmv

    Сделать-то не сложно. Но с первого раза не получиться...

    Chm4You! 1.2.1 < http://www.softodrom.ru/get.php?id=4136> Компилятор HTML и декомпилятор CHM файлов. Кроме этого, есть возможность индексации каталогов, содержащих web-страницы

    htm2chm 3.0.1 Программа позволяет преобразовывать как отдельные HTML страницы с рисунками, так и целые сайты, например, скачанные offline браузерами, в один CHM файл (открывается стандартными средствами Windows)

    Вопрос:

    А где можно увидеть рабочий пример Чата, типа клиент-клиент?

    Ответ:

    Автор ответа: Максим

    На VBNET.RU.

    Вопрос:

    Для моего редактора тестов неожиданно потребовалась распечатка результатов. В связи с этим возникла парочка вопросов:

    1. Как можно создать, наполнить и сохранить WORD'овский документ(*.doc), со всяческими прибамбасами касаемо текста (а, если короче, то произвести "печать в файл")?
    2. Как вывести данные с формы на принтер, при этом нужно определить поля страницы, расположение текста на странице, форматирование и т.п. Можно ли это сделать обойдя CommonDialog?

    Ответ:

    Автор ответа: Константин

    Твоя проблема по поводу DBGrid решается в свойствах этой сетки. Щелкаешь на форме по сетки правой кл. мышки и из контексного меню выбираешь свойства. В форме свойств DBGrid на одной из вкладок есть свойство, определяющее ширину столбца. К этому свойству можно обратиться и из програмного кода.

    Вопрос:

    Расскажите, пожалуйста, поподробнее про сжатие БД программно.

    Ответ:

    Автор ответа: Mind Engine

    Поставь ссылку на DAO библиотеку - у меня она здесь: C:\Program Files\Common Files\Microsoft Shared\DAO\dao360.dll:

    Dim bas As Object, fs As Object, namos as String, tempes as String,
    src as string

    namos = "c:\test.mdb"

    Set fs = CreateObject("Scripting.FileSystemObject")
    Set bas = OpenDatabase(namos): tempes = namos & ".1": src = bas.Name

    fs.CopyFile src, tempes, True
    bas.Close
    fs.DeleteFile src
    DAO.DBEngine.CompactDatabase tempes, src
    fs.DeleteFile tempes

    set bas = nothing: set fs = nothing

    Ответ:

    Автор ответа: Vir

    Привожу вырезку из сайта VBNet

    Программное сжатие базы данных

    При работе с Базой Данных вы записываете, удаляете, редактируете свои данные и объем вашей БД постепенно растет. Остается он неизменным, даже если вы удалите все данные, т.к. удаленные записи машина Jet превращает в пробелы (грубо говоря). Для удаления этих пробелов время от времени проводят ''сжатие'' БД и она принемает оптимальный объем. Код приводится на примере БД Biblio.mdb

    'Закрываем БД
    Data1.Database.Close
    'Вызываем метод CompactDatabase объекта DBEngine
    'для сжатия, и сжимаем БД переименовывая ее
    DBEngine.CompactDatabase "c:\biblio.mdb", "c:\new.mdb"
    'Уничтоваем старую БД
    Kill "c:\biblio.mdb"
    'Присваиваем полученной, 'сжатой' БД
    'ее прежнее имя
    Dim OldDB
    Dim NewDB
    OldDB = "c:\new.mdb"
    NewDB = "c:\biblio.mdb"
    Name OldDB As NewDB
    'Источник: http://www.relib.com/code.asp?id=402

    Вопрос:

    Как "заблокировать" рабочий стол, т.е. если пользователь будет нажимать на любые места на экране, то ничего происходить не будет, но форма (программа) будет полностью рабочая?

    Ответ:

    Автор ответа: Максим

    Архив форума vbnet.ru
    Дата: 18.03.2002 16:21:53

    Говорят есть такая API функция - BlockInput. Вроде бы у нее только один параметр -True или False. Но нигде в хелпах найти такую не удалось, в APITextViewer'e тоже. Сконструировали описание сами. Написали програму. Результат: блокирует действительно все намертво (кроме Alt-Tab и Ctrl+Alt+Del, но с этим можно бороться), клавиатура и мышь не работают. Но при некотором событии (вставили электронный ключ) хотелось бы все разблокировать. Событие корректно отлавливается, но строчка BLockInput(False) никакого ощутимого эффекта не дает. Може есть какие-нибудь тонкости?

    Вопрос:

    Какой контрол, где есть прогресс бар, идёт вместе с Windows?

    Ответ:

    Автор ответа: vmv

    Прогресс бар ... вот уж точно где набита оскомина.
    Гораздо интересней и живее смотрятся анимированные gif-рисунки (в сети их полно) умело подобранные по теме (например, бегущий будильник - "время-бежит") или совсем просто - в текстовое поле периодически выводим что-то вроде "... начинаем ... грузим ... процесс идет успешно ... процесс идет к завершению ... всё !!! ".
    Главное состоит в следующем - пользователь должен знать, что в какой момент времени делается и отвлечь внимание на что-нибудь. Тогда 10 секунд загрузки не кажутся 10 минутами ...

    Ответ:

    Автор ответа: Mind Engine

    mscomctl.ocx - стандартный бар...

    Вопрос:

    Как создать свой dll для своей проги?

    Ответ:

    Автор ответа: vmv

    Встречный вопрос - неужто можно будет понять, как сделать dll, даже прочтя здесь десяток кратких ответов?
    Только вооружившись хорошей библией, терпением и упорством. Хотя для экпериментов с dll нужно быть готовым к переустановке Windows...

    Ответ:

    Автор ответа: HoodWin

    Просто создаёшь ActiveX Dll проект. А потом подключеешь его к обычному проекту через References.

    Ответ:

    Автор ответа: Mind Engine

    Открывая VB6, выбери в качестве нового проекта - ActiveX dll и начинай заполнять ее чем тебе кочется!

    Вопрос:

    1. Я испольяую базу данных Access, первоначальные таблицы я создал вручную, а можно ли программно создать таблицу в базе данных Access?
    2. Как можно сделать так чтобы системный шрифты отображались в элементе СomboList?

    Ответ:

    Автор ответа: Vao

    1.
    Процедура создает в БД таблицу с именем GetTestName.
    Перед обращением к процедуре коннект с БД уже установлен! Я передаю его через переменную Cnct.
    Test_Catalog - глобальная переменная(объявлена в модуле)

    Public Sub CreateNewTestTable(ByVal GetTestName As String, ByVal Cnct As ADODB.Connection)
    Dim iLoc As Integer
    Set Test_Catalog = New ADOX.Catalog
    Dim Test_Table As Table
    Set Test_Table = New Table
    Set Test_Catalog.ActiveConnection = Cnct

    Test_Table.Name = GetTestName
    Test_Table.ParentCatalog = Test_Catalog
    Test_Table.Columns.Append "number", adVarWChar, 14
    Test_Table.Columns.Append "question", adVarWChar, 255 'создаем столбец вопросов теста
    For iLoc = 1 To 4
    Test_Table.Columns.Append "answer" & iLoc, adVarWChar, 150 'создаем 4 столбца ответов
    Next iLoc
    Test_Table.Columns.Append "righth_answer", adVarWChar, 20 'создаем столбец номеров правильных ответов
    Test_Catalog.Tables.Append Test_Table

    Set Test_Catalog.ActiveConnection = Nothing'очищаем память
    Set Test_Catalog = Nothing
    Set Test_Table = Nothing
    End Sub

    В результате работы процедуры имеем в БД новую пустую таблицу, содержащую 7 столбцов (их имена стоят в " "), имеющих строковый тип (adVarWChar) и различную ширину (14-150). Подробнее прочитай в MSDN.

    2. Второй вопрос сформулирован слегка ... не очень. Но по-моему ты имел ввиду это:

    Dim m As Integer
    For m = 0 To Screen.FontCount - 1 'минус один, т.к. счёт идёт от нуля
    List1.AddItem Screen.Fonts(m) 'в List1 добавляем элемент массива Screen.Fonts cоответсвующий числу m
    Next m

    Вопрос:

    Не могу вызвать Функцию АРI "ExitWindows". Подскажите, как это сделать.

    Ответ:

    Автор ответа: .::neo::.

    Объявление:
    ~~~~~~~~~
    VB 6.0
    Private Declare Function ExitWindows Lib "user32.dll" ( _
    ByVal dwReserved As Long, _
    ByVal uReturnCode As Long) As Long
    .NET
    Private Declare Function ExitWindows Lib "user32.dll" ( _
    ByVal dwReserved As Int32, _
    ByVal uReturnCode As Int32) As Int32
    Константы
    Private Const EWX_FORCE As Long = 4
    Private Const EWX_LOGOFF As Long = 0
    Private Const EWX_POWEROFF As Long = &H8
    Private Const EWX_REBOOT As Long = 2
    Private Const EWX_SHUTDOWN As Long = 1

    Использование:
    ~~~~~~~~~~~
    ExitWindows EWX_REBOOT, 0

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Твой вопрос очень похож на такой: "Не работает компьютер. Что делать. Спасибо."
    Нелохо было бы указать, что именно не получается.

    Вот объявление:

    Public Declare Function ExitWindows Lib "user32" Alias "ExitWindows" (ByVal dwReserved As Long, ByVal uReturnCode As Long) As Long

    Вызывать примерно так:

    ExitWindows 0, 0

    Функция завершит сеанс текущего пользователя. Но комп не выключится и не перезагрузится. Чтоб сделать это нужно вызывать ExitWindowsEx.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 179.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск! Присылайте коды!!!!!!
    Читайте!

    Содержание выпуска

    • Книги

    • Размытие картинки
    • Огонь
    • Текст за курсором

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти здесь.

    наверх

    Размытие картинки

    Данный код демонстрирует размытие картинки.
    На форму поместить Picture1 и в него какую нибудь картинку. Private Type TColorRGB
    Red As Long
    Green As Long
    Blue As Long
    End Type

    Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
    If Button <> 1 Then Exit Sub
    Dim a1 As TColorRGB
    Dim b1 As TColorRGB
    Rad = 10 ' ?????? ???????????

    For i = y - Rad To y + Rad
    For j = x - Rad To x + Rad
    n = 1 - (((j - x) / Rad) ^ 2 + ((i - y) / Rad) ^ 2)
    If n <= 0 Then GoTo lab1
    sr = 0
    sg = 0
    sb = 0
    For o = i - 1 To i + 1
    For k = j - 1 To j + 1
    a = Picture1.Point(k, o)
    a1 = LongToRGB(a)
    sr = a1.Red + sr
    sg = a1.Green + sg
    sb = a1.Blue + sb
    Next
    Next
    sr = sr / 9
    sg = sg / 9
    sb = sb / 9

    a = Picture1.Point(j, i)
    a1 = LongToRGB(a)
    r = (sr - a1.Red) * (n) + a1.Red
    g = (sg - a1.Green) * (n) + a1.Green
    b = (sb - a1.Blue) * (n) + a1.Blue
    If r < 0 Then r = 0
    If g < 0 Then g = 0
    If b < 0 Then b = 0

    Picture1.PSet (j, i), RGB(r, g, b)
    lab1:
    Next
    Next
    End Sub

    Private Function LongToRGB(ByVal Index As Long) As TColorRGB
    LongToRGB.Red = Index And 255
    LongToRGB.Green = (Index And 65280) \ 256
    LongToRGB.Blue = (Index And 16711680) \ 65535
    End Function

    наверх

    Огонь

    Создайте новый проект, вставьте этот код. Довольно красивый огонь! Option Explicit

    Private Const x As Long = 25
    Private Const y As Long = 60
    Dim disp1(x, y) As Long
    Dim disp2(x, y) As Long
    Dim fon(x, y) As Long
    Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long

    Dim l As Long
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

    Private Sub Form_Activate()
    Do
    Timer
    DoEvents
    Loop
    End Sub

    Private Sub Timer()
    PSet (0, 0), 0
    Dim i As Integer
    Dim o As Integer
    Dim R1 As Integer
    Dim G1 As Integer
    Dim B1 As Integer
    For i = 1 To 2
    disp1(Rnd * x / 2 + x / 4, 1) = Rnd * 20000
    Next
    For i = 1 To x - 1
    For o = 1 To y - 2
    l = (disp1(i - 1, o - 1) + disp1(i, o - 1) + disp1(i + 1, o - 1) + disp1(i - 1, o) _
    + disp1(i + 1, o) + disp1(i - 1, o + 1) + disp1(i, o + 1) + disp1(i + 1, o + 1) + disp1(i, o)) / 9.5
    LongToColor l, R1, G1, B1
    Call SetPixel(Form1.hdc, i + 123, y - o + 32, RGB(R1, G1, B1))
    disp2(i, o + 1) = l
    Next
    Next
    CopyMemory disp1(0, 0), disp2(0, 0), (x + 1) * (y + 1) * Len(disp2(0, 0))
    End Sub

    Private Sub LongToColor(Index As Long, R As Integer, G As Integer, B As Integer)
    R = -((Index > 255) * 255 + (Index >= 0 And Index <= 255) * (Index Mod 256))
    G = -((Index > 511) * 255 + (Index >= 256 And Index <= 511) * (Index Mod 256))
    B = -((Index > 767) * 255 + (Index >= 512 And Index <= 767) * (Index Mod 256))
    End Sub

    наверх

    Текст за курсором

    Надпись за курсором. Создайте новый проект, свойство формы ScaleMode установить в 3-Pixel. На форму установите таймер, интервал подберите опытным путём... Вставьте этот код. Private 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
    Const HWND_NOTOPMOST = -2
    Const HWND_TOPMOST = -1
    Const SWP_NOACTIVATE = &H10
    Const SWP_NOMOVE = &H2
    Const SWP_NOSIZE = &H1

    Dim message As String
    Dim xpos() As Integer
    Dim ypos() As Integer
    Private Declare Function BeginPath Lib "gdi32" (ByVal hdc As Long) As Long
    Private Declare Function EndPath Lib "gdi32" (ByVal hdc As Long) As Long
    Private Declare Function PathToRegion Lib "gdi32" (ByVal hdc As Long) As Long
    Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
    Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
    Private Type POINTAPI
    X As Long
    Y As Long
    End Type
    Dim vv As POINTAPI
    Dim hRgn As Long

    Private Sub Form_Load()
    Me.Move 0, 0, Screen.Width * Screen.TwipsPerPixelX, Screen.Height * Screen.TwipsPerPixelY
    message = " -<(VIR)>-"
    ReDim xpos(Len(message))
    ReDim ypos(Len(message))
    Timer1.Enabled = True
    Call SetFormPosition(Me.hWnd, True)
    End Sub

    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

    Private Sub Timer1_Timer()
    GetCursorPos vv
    xpos(1) = vv.X
    ypos(1) = vv.Y
    For i = Len(message) - 1 To 1 Step -1
    xpos(i + 1) = xpos(i) + 20
    ypos(i + 1) = ypos(i)
    Next
    Font.Name = "Times New Roman"
    Font.Bold = True
    Font.Size = 16
    BeginPath hdc
    For i = 1 To Len(message)
    CurrentX = xpos(i)
    CurrentY = ypos(i)
    Print Mid(message, i, 1)
    Next
    EndPath hdc
    hRgn = PathToRegion(hdc)
    SetWindowRgn hWnd, hRgn, True
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Тим

    Ответ ожидается по этому адресу

    Вопрос по работе с Treeview.
    Можно ли сделать так, что бы плюсик у нода отображался независимо от того, есть внутри дети или нет?
    Проблема в том, что если не грузить сразу всё дерево из базы, потому что огромное оно, а только по уровням. что бы можно было на событие "Экспанд" загрузить детей и так далее. Без плюсика нет "экспанда". Сейчас выхожу из положения так: просто гружу один чилд в ноде, чтобы плюсик появился, а потом удаляю его перед загрузкой реальных детей. Но это муторное дело, приходится сначала сразу сворачивать нод, что б не прыгало всё дерево вверх-вниз, а потом опять разворачивать. Куча проверок и так далее.

    Автор вопроса: Андрей

    Ответ ожидается по этому адресу

    Люди, ПРОГРАММИСТЫ, скиньте пожалуйста на E – mail (map@buzuluk.esoo.ru) какие-нибудь электронные книги (справки, коды) по VB6 для начинающих.

    Автор вопроса: AlexSoft

    Ответ ожидается по этому адресу

    Нужен контрол или код для такой операции (она сплошь и рядом в броузерах и крупных приложениях): есть два обьекта, разделенные вертикальной линией (например, TreeView и Listbox). Если взятся за эту линию, то можно, пропорционально изменить длину окна каждого элемента.

    Автор вопроса: Максим

    Ответ ожидается по этому адресу

    Написал я, скажем, программу, и хочу что-нибудь получить от того, кто ее использует.
    Как это устроить? Кто-нибудь может поделится знаниями электронной коммерции?

    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

    У меня вопрос к тем, кто разрабатывал видеоплейеры и т.д.

    Пытаюсь перевести свой проект из VB6 в NET, и столкнулся с такими проблемами:

    Имею примерно такой код:

    Public Function AVIFileInfo(ByVal pfile As Long, ByVal pfi As AVI_FILE_INFO, ByVal lSize As Byte) As Integer
    End Function

    Public Structure AVI_FILE_INFO
    Public dwMaxBytesPerSecond As Integer
    Public dwFlags As Integer
    Public dwCaps As Integer
    Public dwStreams As Integer
    Public dwSuggestedBufferSize As Integer
    Public dwWidth As Integer
    Public dwHeight As Integer
    Public dwScale As Integer
    Public dwRate As Integer
    Public dwLength As Integer
    Public dwEditCount As Integer
    Public szFileType As String ' (* 64 - VB6)
    End Structure
    ....
    Dim p As AVI_FILE_INFO
    dim pfile as Long
    hr = AVIFileOpen(pfile, "c:\myfile.avi", 0, 0)
    hr = AVIFileInfo(pfile, p, Len(p))
    .......

    Вопросы:
    1. Размер структуры AVI_FILE_INFO получается 48 байтов, тогда как в VB6 он был 108 байтов.
    2. Открыть-то файл могу, а вот получить информацию - нет. А точнее, выскакивает hr<>0 и p не заполняется.

    Автор вопроса: Anatoliy

    Ответ ожидается по этому адресу

    Как сделать так, чтобы форма при активации (по таймеру), "вставала" поверх всех окон?

    Автор вопроса: Taras Prikhodko

    Ответ ожидается по этому адресу

    Как работать со службой сообщений из VB в XP?

    Автор вопроса: LeCCy

    Ответ ожидается по этому адресу

    Как можно создать доступ к БД, которой пользуются 2 проги одновременно, при этом коннект к ним должен быть открытым у обоих?

    Автор вопроса: Иван

    Ответ ожидается по этому адресу

    Есть Access XP.
    В нем (в одной из форм) надо организовать автоматическую проверку правописания а-ля Word. Т.е. чтобы неправильные слова подчеркивались красной линией.

    Автор вопроса: Андрей

    Ответ ожидается по этому адресу

    Есть программа, в ней в качстве фона формы используются картинки в формате JPG, которые загружаються из указаной папки, при этом нужно эту папочку с картинками поставлять с программой, можно ли какм то образом эти картинки вшить в екзешник, чтобы избавиться от этого неудобства?

    Автор вопроса: FAS

    Ответ ожидается по этому адресу

    Почему когда пишу из массива в файл по For...Next все ок, но тормоза страшные (сами проверьте на файлике метра в три), а Put #1,,TMP -- моментально, но в конец файла дописывается лишний символ с кодом ноль. Функция Left работать отказалась на отрез...
    Что делать?

    P.S. То что можно просто скопировать файл test в test.in... Просто код упрощен для понимания, а так данные по идее будут преобразовываться. Заранее благодарен за ответ.

    Option Explicit
    Dim Str() As Byte
    Dim X As Long
    Dim Y As Long
    Dim TMP() As Byte
    Dim M

    Private Sub Form_Load()
    Me.Show
    Me.Refresh
    DoEvents

    Open "c:\test" For Binary As #1
    X = FileLen("c:\test")
    ReDim Str(X)
    ReDim TMP(X)
    Get #1, , Str
    Close

    For Y = 0 To X - 1 Step 0
    TMP(Y) = Str(Y)
    Y = Y + 1
    Next Y

    Open "c:\test.in" For Binary As #1
    'Так все ок, но тормозза...
    For Y = 0 To X - 1 Step 0
    Put #1, , TMP(Y)
    Y = Y + 1
    Next Y
    Close

    'Так быстро, но в конец файла дописывается лишний символ
    'с кодом 0
    Put #1, , TMP

    MsgBox "OK", , ""
    End
    End Sub

    Автор вопроса: clayman

    Ответ ожидается по этому адресу

    Как в Access 97 создать представление из VB6?

    Автор вопроса: Александр

    Ответ ожидается по этому адресу

    Как определить из кода VB, открыт ли файл (файл MS Excel) другим пользователем?

    Автор вопроса: Dima

    Ответ ожидается по этому адресу

    Используя DataReport в VB6 создаю отчет. Надо установить горизонтальную ориентацию страницы. Если изменять размеры в DataReport, то выдается ошибка, что ширина отчета больше ширины бумаги.
    Как изменить ориентацию бумаги в DataReport или как программно изменять ориентацию бумаги в установках принтера?

    Автор вопроса: CRAZYDIMA

    Ответ ожидается по этому адресу

    Опять кодировки!
    Почти все почтовые программы кодируют письма используя кодировку charset=Windows-1251, когда же мне необходимо самому дешифровать её - возникают проблемы!
    В предложенных примерах перевода из одной кодировки в другую не нашел кодировку 1251. Что это за такое? И как с ним бороться?

    Автор вопроса: Данила

    Ответ ожидается по этому адресу

    1. Как в DAO 3.51 в открытой таблице узнать, какие есть колонки, т.е. их названия?
    2. Как в DAO 3.51 определить, сколько записей в таблице?

    Ответы:

    Вопрос:

    Подскажите как работает API функция и как можно записать про помощи неё новое значение в определённую ячейку памяти. Вот как выглядит функция:

    WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long

    Объясните, что значат параметры IpBuffer, nSize и lnNumberOfBytesWritten и в какой из них нужно записывать новое значение. И ещё подскажите как работает ReadProcessMemory и объясните её параметры. Очень нужно.

    Ответ:

    Автор ответа: Jevgenij

    WriteProcessMemory:

    Функция записывает данные в адресном пространстве другого процесса.
    hProcess - манипулятор процесса, в памятъ которого записываются данные
    lpBaseAddress - адрес в адресном пространстве другого процесса
    lpBuffer - буфер с данными, копируемыми в память другого процесса
    nSize - количество копируемых байт
    lpNumberOfBytesWritten - заполняется количеством байт, скопированных функцией

    ReadProcessmemory:

    Функция читает содержимое памяти из адресного пространства другого процесса. Все параметры те-же, только “наоборот”.

    Вопрос:

    А где можно увидеть рабочий пример Чата, типа клиент-клиент?

    Ответ:

    Автор ответа: InvisibleMan

    У меня есть, но только клиент-сервер. А каков принцип работы клиент-клиент?

    Вопрос:

    Как создать свой dll для своей проги?

    Ответ:

    Автор ответа: InvisibleMan

    Создаёшь длл проект, в sub main() пишешь:

    If App.StartMode = vbSModeStandalone Then
    gfrmperiodselect.Show vbModal
    End If

    Пишешь свои процедуры и/или функции в модуле(ях) классов, если используешь API ф-и, то прописывать их желательно в отдельном модуле.

    Вопрос:

    1. Я испольяую базу данных Access, первоначальные таблицы я создал вручную, а можно ли программно создать таблицу в базе данных Access?
    2. Как можно сделать так чтобы системный шрифты отображались в элементе СomboList?

    Ответ:

    Автор ответа: Данила

    Dim таблица_журнал As TableDef
    Set база_место = DBEngine.Workspaces(0)
    ' создаем базу
    Set база = база_место.CreateDatabase("baza.mdb", dbLangCyrillic)
    ' создаем таблицу "men"
    Set таблица_журнал = база.CreateTableDef("men")
    ' объявляем колонки для табл "men"
    Dim fio As Field, ID_work As Field, subject As Field
    ' дальше идет описание колонок
    Set fio = таблица_журнал.CreateField("fio", dbText, 100)
    Set ID_work = таблица_журнал.CreateField("ID_work", dbText, 100)
    ID_work.AllowZeroLength = True
    Set subject = таблица_журнал.CreateField("subject", dbMemo)
    ' теперь добавляем колонки к таблице
    таблица_журнал.Fields.Append fio
    таблица_журнал.Fields.Append ID_work
    таблица_журнал.Fields.Append subject
    'добавляем таблицу к базе
    база.TableDefs.Append таблица_журнал

    Вопрос:

    Я работаю с ASP. Как сделать так, чтобы на странице выводились из базы данных не все поля, а например 5. Чтобы внизу страницы соотвественно появлялись вот такие штуки, например: [1][2][3][5][6][7][8][9].И если кликнуть на 3, то соответсвенно выводятся с 11 по 15 статью.

    Ответ:

    Автор ответа: Chernov Dmitry

    Все зависит от того, какую БД ты используешь

    Если это MS SQL то используй конструкцию

    Select ... Limit [n,] m

    которая выводит m записей БД, начиная с n-ной (с первой, если n не указано)

    MS Access данный параметр SQL запросов не поддерживает, тут придется обходится программными методами (т.е. пробегать первые x записей из запроса без вывода, а потом выводить m записей).

    Как это оформить программно - поищи в INet, наверняка что нибудь найдешь. Примеров реализации подобного на PHP в INet достаточно, про ASP - не знаю.

    Вопрос:

    Есть три запроса , как из них собрать один запрос?

    запрос: qBal_Chet

    SELECT Clients.id_Clients, Clients.ClientName, Sum([Kol-vo]*[Cost]) AS ChetSum
    FROM (CheetToClient LEFT JOIN CheetToClient_tovars ON CheetToClient.id_chet = CheetToClient_tovars.id_chet) RIGHT JOIN Clients ON CheetToClient.id_Clients = Clients.id_Clients
    GROUP BY Clients.id_Clients, Clients.ClientName

    запрос:qBal_Plat

    SELECT Clients.id_Clients, Sum(PlatFromClient.PlatSum) AS [Sum-PlatSum]
    FROM Clients LEFT JOIN PlatFromClient ON Clients.id_Clients = PlatFromClient.id_Clients
    GROUP BY Clients.id_Clients

    Запрос: Собирающий два предыдущих

    SELECT Clients.ClientName, qBal_Chet.ChetSum, qBal_Plat.[Sum-PlatSum], [ChetSum]-[Sum-PlatSum] AS Zadoljennost
    FROM (qBal_Chet LEFT JOIN qBal_Plat ON qBal_Chet.id_Clients = qBal_Plat.id_Clients) RIGHT JOIN Clients ON qBal_Chet.id_Clients = Clients.id_Clients;

    Ответ:

    Автор ответа: CRAZYDIMA

    Если ты используешь Ассеss, то проблем нет:
    1. Создай первый запрос.,сохрани его
    2. Второй, если он базируется на первом, то вместо добавления таблиц, добавь первый и делай необходимые выборки и условия.

    Вопрос:

    Как вызвать при печати какого-либо текста окно настроек принтера?

    Ответ:

    Автор ответа: malex

    Если я правильно понял, то тебе надо использовать ShowPrinter.

    Вопрос:

    Как прописать программу в автозагрузку?

    Ответ:

    Автор ответа: Iva

    Автозагрузка в Windows XP
    Какие способы автозагрузки существуют? Где найти список программ, загружаемых Windows автоматически? Этим темам и посвящена данная статья.Существует немало способов автозагрузки программ. Ниже приведены несколько вариантов для ознакомления, возможно это поможет вам, если возникнет необходимость найти и удалить какую-либо программу из автозагрузки.
    Способы автозагрузки:
    Реестр - в реестре автозагрузка представлена в нескольких местах:
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] - программы, которые запускаются при входе в систему. Данный раздел отвечает за запуск программ для всех пользователей системы.
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce] - программы, которые запускаются только один раз при входе пользователя в систему. После этого ключи программ автоматически удаляются из данного раздела реестра. Данный раздел отвечает за запуск программ для всех пользователей системы.
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx]
    - программы, которые запускаются только один раз, когда загружается система. Этот раздел используется при инсталляции программ, например для запуска настроечных модулей. После этого ключи программ автоматически удаляются из данного раздела реестра. Данный раздел отвечает за запуск программ для всех пользователей системы.
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run] - программы, которые запускаются при входе текущего пользователя в систему
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce] - программы, которые запускаются только один раз при входе текущего пользователя в систему. После этого ключи программ автоматически удаляются из данного раздела реестра.
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices]
    - программы, которые загружаются при старте системы до входа пользователя в Windows.
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce]
    - программы отсюда загружаются только один раз, когда загружается система.
    Например, чтобы автоматически запускать Блокнот при входе текущего пользователя, открываем Редактор реестра (regedit.exe), переходим в раздел
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
    и добавляем следующий ключ:
    "NOTEPAD.EXE"="C:\\WINDOWS\\System32\\notepad.exe"
    Назначенные задания - программы могут запускаться с помощью "Мастера планирования заданий". Посмотреть список установленных заданий, а также добавить новое можно так: "Пуск - Все программы - Стандартные - Служебные - Назначенные задания" - при этом откроется папка ..\WINDOWS\Tasks, в которой отображены назначенные задания. Чтобы добавить новое задание, нужно дважды щелкнуть левой кнопкой мыши по значку "Добавить задание". Запуск программ с помощью этого мастера возможен однократно, при входе в Windows, при включении компьютера, а также по расписанию.
    Папка "Автозагрузка" - это папка, в которой хранятся ярлыки для программ запускаемых после входа пользователя в систему. Ярлыки в эту папку могут добавляться программами при их установке или пользователем самостоятельно. Существует две папки - общая для всех пользователей и индивидуальная для текущего пользователя. По умолчанию эти папки находятся здесь:
    ..\Documents and Settings\All Users\Главное меню\Программы\Автозагрузка - это папка, программы из которой будут запускаться для всех пользователей компьютера.
    ..\Documents and Settings\Username\Главное меню\Программы\Автозагрузка - это папка, программы из которой будут запускаться для текущего пользователя (здесь он назван Username).
    Посмотреть, какие программы у вас запускаются таким способом можно, открыв меню "Пуск - Все программы - Автозагрузка". Если вы создадите в этой папке ярлык для какой-нибудь программы, она будет запускаться автоматически после входа пользователя в систему. Смена папки автозагрузки - Windows считывает данные о пути к папке "Автозагрузка" из реестра. Этот путь прописан в следующих разделах:
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User
    Shell Folders]
    "Common Startup"="%ALLUSERSPROFILE%\Главное меню\Программы\Автозагрузка" - для всех пользователей системы.
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User
    Shell Folders]
    "Startup"="%USERPROFILE%\Главное меню\Программы\Автозагрузка" - для текущего пользователя.
    Сменив путь к папке мы получим автозагрузку всех программ из указанной папки. Например:
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User
    Shell Folders]
    "Startup"="c:\mystartup" - система загрузит все программы, ярлыки которых находятся в папке c:\mystartup\, при этом папка "Автозагрузка" все так же будет отображаться в меню "Пуск", а если у пользователя в ней ничего не было, то он и не заметит подмены.
    Подмена ярлыка для программы из списка автозагрузки - допустим у вас установлен русскоязычный пакет Microsoft Office. Тогда в папке "Автозагрузка" у вас будет находиться ярлык "Быстрый запуск Microsoft Office" - этот ярлык устанавливается туда по умолчанию. Но вовсе необязательно этот ярлык ссылается именно на "Быстрый запуск Microsoft Office" - вместо него может быть запущена любая другая программа, тем более что на функциональности Office это не скажется. Добавление программы к программе запускаемой из списка автозагрузки - модификация предыдущего варианта - одновременно с загрузкой какой-либо программы из списка автозагрузки у вас будет стартовать другая программа - дело в том, что можно "склеить" два исполняемых файла в один и они будут запускаться одновременно. Существуют программы для такой "склейки". Или ярлык может ссылаться на командный файл, из которого и будут запускаться как оригинальная программа из списка, так и добавленные посторонние программы.
    Посмотреть список автоматически загружаемых программ можно открыв программу "Сведения о системе" (откройте "Пуск - Все программы - Стандартные - Служебные - Сведения о системе" или наберите msinfo32.exe в командной строке) и перейдя в пункт "Программная среда - Автоматически загружаемые программы". Программа "Свойства системы" отображает группы автозагрузки из реестра и папок "Автозагрузка".
    Другая программа, позволяющая посмотреть список программ автозагрузки - "Настройка системы" (для запуска наберите msconfig.exe из командной строки). Эта программа кроме просмотра списка автозагрузки предоставляет возможность отключения всех пунктов автозагрузки (вкладка "Общие") или выборочных программ (вкладка "Автозагрузка").
    Существует множество менеджеров автозагрузки от сторонних разработчиков. Один из таких менеджеров - Startup Extractor, вы можете скачать здесь. Он автоматически сканирует папки автозагрузки, системный реестр, и отображает все найденные программы и файлы в виде списка. Если какая-то программа будет добавлена в список автозагрузки, Startup Extractor сообщит вам об этом и предложит либо оставить эту программу в списке либо удалить ее. При удалении программы из списка Starup Extractor может восстановить ее. Также вы сможете добавлять программы, редактировать параметры программ, сохранять список автозагрузки и многое другое. Программа имеет русский интерфейс, бесплатна, не требует установки.
    Примечание: Приведенная информация приведена в справочных целях. Вся информация, приведенная выше, относится в первую очередь к опытным пользователям, способным восстановить систему после ошибочных изменений в реестре. Если вы не уверены, что в случае ошибочных действий сможете восстановить систему, не используйте приведенную информацию в практических целях, ошибочные действия при внесении изменений в реестр могут серьезно повредить систему и даже привести к переустановке системы. Начинающие пользователи для добавления программ в список автозагрузки должны использовать только папку "Автозагрузка" или "Мастер назначенных заданий".

    Вопрос:

    Только начал изучать VB6. Стоит ли вместо VB6 сразу перейти к VB .NET?

    Ответ:

    Автор ответа: .::neo::.

    Это моё личное мнение: если только начал изучать VB, то лучше перейди сразу на .NET!

    Ответ:

    Автор ответа: CRAZYDIMA

    Это абсолютно разные языки с разными подходами и разной реализациями. Синтаксис остался прежним и всего-то. Если ты мыслишь на VB6 как на родном русском, то не стоит, если еще не привык к нему, то смело изучай новый, то бишь VB .NET.

    Вопрос:

    Как, зупустив дос-команду из VB, получить результат обратно в VB, чтобы прога ожидала этого рузультата и только после продолжала выполнение?

    Ответ:

    Автор ответа: CRAZYDIMA

    Проблема, как я понял, в том, что тебе надо синхронно запустить программу, а Вб-эшная Шелл действует противоположэно - запустит программу и идут выполняться следующие за ней операторы?!
    Выход попробуй такой:

    Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
    Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
    Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

    Private Const INFINITE = &HFFFF
    Private Const PROCESS_ALL_ACCESS As Long = &H1F0FFF

    Public Function ShellWait(ByRef sPathName, ByVal iWindowStyle As VbAppWinStyle) As Boolean
    Dim vProg As Variant, iProc As Long, iRet As Long
    On Error GoTo errLabel
    vProg = Shell(sPathName, iWindowStyle)
    iProc = OpenProcess(PROCESS_ALL_ACCESS, False, vProg)
    If iProc <> 0 Then
    iRet = WaitForSingleObject(iProc, INFINITE)
    CloseHandle iProc
    ShellWait = True
    Else
    ShellWait = False
    End If

    Exit Function
    errLabel:
    If Err.Number = 53 Then ' file not found
    MsgBox "Error", vbCritical + vbOKOnly + vbDefaultButton1
    ShellWait = False
    End If
    End Function

    Это функция ожидания заверщения процесса. Запускается таким образом:

    call ShellWait("notepad.exe", vbNormalFocus)

    Вопрос:

    Необходимо загнать данные из файла

    46 49 50 51 _
    52 53 54 55 _
    56 57 48 _
    49 50 51 _
    52 53 54 _
    55 56 57 _
    48 81 87 _

    в listbox. Пишу так:

    Dim nl As Integer
    Dim ks As Integer

    Private Sub Command1_Click()
    Dim txt
    Dim FN As Integer
    FN = FreeFile
    Dim FName As String
    FName = "C:\file0.txt"
    Open FName For Input As #FN
    txt = Input(LOF(FN), #FN)
    Close #FN

    For n = 1 To Len(txt)
    ks = ks + 1
    If Mid$(txt, n, 1) = "_" Then
    nl = nl + 1:
    List1.AddItem (Mid$(txt, n - ks, ks)), nl: ks = 0
    End If
    Next n
    End Sub

    Private Sub Form_Load()
    nl = -1
    ks = 0
    End Sub

    Пишет "недопустимый вызов процедуры" в

    List1.AddItem (Mid$(txt, n - ks, ks)), nl: ks = 0

    Ответ:

    Автор ответа: Илларион

    List1.AddItem (Mid$(txt, n - ks, ks)), nl: ks = 0

    А что ты загоняешь то? Зачем вторые скобки?

    List1.AddItem Mid$(txt, n - ks, ks) & nl : ks = 0

    Если загоняешь вместе с переменной nl, тогда просто лепи их вместе.

    Вопрос:

    Вот что у меня есть:

    Private Sub Command1_Click()
    On Error GoTo метка
    MkDir ("c:\Графики")
    метка:
    SavePicture Picture1.Image, "c:\Графики\1.bmp"
    End Sub

    А как сделать, чтобы при нажатии на кнопку график сохранялся под новым именем? (2.bmp, 3.bmp и т.д.)

    Ответ:

    Автор ответа: Денис

    n=n+1
    SavePicture Picture1.Image, "c:\Графики\" & Cstr(n) & ".bmp"

    Ответ:

    Автор ответа: В. Язов

    Private Sub Command1_Click()
    static n as integer
    dim sFn as string
    On Error GoTo метка
    MkDir ("c:\Графики")
    метка:
    sFn="c:\Графики\"
    n=n+1'Крутим счетчик дальше
    sFn=sFn & trim$(str(n)) & ".bmp"
    SavePicture Picture1.Image, sFn
    End Sub

    Ответ:

    Автор ответа: Илларион

    Private Sub Command1_Click()
    Dim m As String
    n=n+1
    m ="C:\Графики\ & n & ".bmp"

    On Error GoTo метка
    MkDir ("c:\Графики")
    метка:
    SavePicture Picture1.Image, m
    End Sub

    Только в декларациях объяви переменную n как Integer - Public n As Integer ,иначе n будет постоянно равно 1.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 180.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск!
    Читайте!

    Содержание выпуска

    • Книги

    • Эксперт

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Один момент из жизни форума: Проблема установки Visual Basic.net

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Эксперт

    - Привет, Серый.
    - Угу, привет. Ты проходи, садись, я щас, с функцией тут разберусь...
    - Да я на момент. Вопросец имеется.
    - Вопросец, вопросец... Так, тут переменная не объявлена... Вопросец... С вопросами в систему, к экспертам... А тут точку не поставил! Вот она где, соб-бака!!
    - Ты че, какая система? Ты о чем?
    - О! Все, работает... Чего ты говоришь?
    - Ты про каких это экспертов тут заикаешься?
    - А-а. А ты что, первый раз слышишь, что ли? Ты на СообЧа бывал?
    - Где?!!
    - Да вот, гляди. Щас соединимся... Во! http://soobcha.ru, зришь?
    - М-да... Занятно. Так я с вопросом к тебе...
    - А я вот и говорю: туда иди, в систему "Эксперт", там ответят.
    - Это чайники, что ли, ответят?
    - Не сомневайся, ответят. Там у них такое наворочено... Короче, ты по почте вопрос свой задаешь - и все:)))))) Больше не изволь беспокоиться, там они сами будут искать ответ на твой вопрос. А через некоторое время вывалят тебе на ящик не один, а несколько ответов. Пользуйся и радуйся:)
    - А чего это они там такие добрые да услужливые? У них чего, своих проблем нет? Сколько я должен платить за такое трогательное беспокойство?
    - Ну, это немного. Меньше, чем ты думаешь:) Тебе достаточно только подтвердить правильный ответ. Давишь на соответствующую ссылку, дескать, вот этот ответ мне понравился, помог, и я доволен. Просто пустое письмо засылаешь к ним, и вся оплата. А если хочешь у них экспертом стать, то пожалуйста, регистрируйся и отвечай на вопросы.
    - Кем? Экспертом?
    - А что? Что-то ты ведь знаешь, не вчера за комп сел.
    - А на фига мне это надо? Разбираться с чужими проблемами... У меня своих - хоть отбавляй...
    - Ага. Вот ты только что спрашивал: а сколько? И если уж ты со своими проблемами обращаешься к людям, то ведь надеешься, что тебе помогут. А сам-то что, влом, что ли, помочь кому-то? Да ладно! Тебя, вобщем-то, никто и не тянет, не заставляет. А вот те, кому интересно, кому не жаль поделиться, те там и работают. Я, между прочим, давно уже с ними.
    - В смысле, экспертом, что ли, заделался? И сколько тебе платят?
    - А ты не прикалывай. Там никто никому не платит. А вот конкурсы, между прочим, проводят, и не хилые. Представляешь, за лучший ответ дают бесплатно три месяца платного хостинга, да еще домен регистрируют. За просто так. А вот тебе, если ты задашь самый лучший вопрос, тоже приз может выгореть.
    - Это как: лучший? На который никто ответить, что ли, не сможет? Так я щас таких вопро...
    - Причем тут это? Просто ты, если вопрос пишешь к ним, так сподобься хоть запятые в нужных местах поставить, там, грамотно, короче, обрисуй свой трабл.
    - Ну ладно, въехал. Ты мне вот лучше помоги с моим траблом. Мой Фотошоп не хочет по русски работать...
    - Ха, так этот трабл там уже сколько раз появлялся. У них на сайте и ответ есть... Вот, любуйся: Заходим в редактор реестра (regedit.exe). Находим ключ HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\Nls\Codepage В нем изменяем значение параметра 1252 с cp_1252.nls на cp_1251.nls. Перезагружаемся...
    - Понял... погоди, запишу...
    - Да чего записывать? Шагай домой, входи на сайт и копируй...
    - Да я ссылку запишу... Слушай, а как там в эту систему вопрос задать? Вообще, как она работает?
    - Так тут же, на сайте, все есть. А вообще, можешь по почте пустое письмо загнать на mailto:reply.infoexpert@soobcha.ru, и получишь всю необходимую инфу. А вообще, ты лучше в следующий раз с вопросами не ко мне, а туда. Может, я и отвечу там.
    - А не проше тебе здесь ответить?
    - Э-э-э... Там я баллы зарабатываю...
    - А это еще зачем?
    - Ладно, мотай. Дома почитаешь, все о них узнаешь. У меня тут халтурка... Давай, пока.
    - Пока. А как ты экспертом там зарегился?
    - Иди, иди! Инфу читай...

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 20.07.2003 11:04 | Раздел: Примеры кода | Автор: WeRT

    Диапазон Дат - Смысл в том, что USER выбирает начальную и конечную даты из DTPikera, а программа выдает помесячно весь диапазон.

    Дата: 19.07.2003 10:13 | Раздел: Статьи по VB | Автор: Колесов & Павлова

    Использование XML DOM в VB и MS Office/VBA - Одна из "горячих" ИТ-тем нынешнего года - проблема интеграции разнородных информационных ресурсов, решение которой требует создания простого и надежного механизма обмена данными между различными приложениями. И сегодня, кажется, уже все знают: XML -- вот золотой ключик, который должен навести порядок в информационном хаосе великого множества форматов данных.

    Дата: 18.07.2003 13:44 | Раздел: Статьи по VB | Автор: Хованский Ян

    ASP в безопасности - Технология интернет-программирования Active Server Pages, от компании Microsoft, появилась сравнительно недавно, но уже успела завоевать любовь тысяч программистов со всего мира. А в это время злобные хакеры потирают руки и разными способами надругаются над трудами бедных программистов...

    Дата: 17.07.2003 10:59 | Раздел: Статьи по VB | Автор: Сурменок Павел

    Массивы и коллекции в .NET - Эта статья о массивах и коллекциях в .NET Framework: виды коллекций, работа с ними, сравнение производительности...

    Дата: 16.07.2003 10:59 | Раздел: Статьи по VB | Автор: Сурменок Павел

    Обзор ASP .NET - Как вы, наверное, уже знаете, Microsoft продвигает в массы своё новое детище под названием .NET. Помимо таких технологий, как ADO+, DGI+, Microsoft .NET включает в себя ASP .NET (или ASP+).

    Дата: 14.07.2003 10:43 | Раздел: Примеры кода | Автор: Юмашин Алексей

    ListControls - Вывод списка всех элементов управления формы в дерево TreeView, с показом иерархии вложенности контейнеров и поэлементной развёрткой массивов ЭУ. Проект требует библиотеку MSCOMCTL.OCX. Это просто пример; на его базе несложно сделать ActiveX контрол с методом PrintTree - довольно часто разработчику полезно видеть "дерево" своей формы перед глазами.

    Последние 20 тем форума на VBNet.Ru:

    09:01 / 21 июл. HDD 120 Gb & MainBoard = не видит :((( ...(не VB) | Хитов: 2 | Ответов: 0
    06:08 / 21 июл. HELP! Опять Fontы! | Хитов: 7 | Ответов: 0
    05:11 / 21 июл. Tag or Key для ComboBox-а | Хитов: 6 | Ответов: 0
    02:19 / 21 июл. Не могу сгенерировать событие | Хитов: 14 | Ответов: 1
    23:29 / 20 июл. Вопросик...:) | Хитов: 27 | Ответов: 2
    20:07 / 20 июл. Database Reports for VB | Хитов: 12 | Ответов: 0
    18:28 / 20 июл. глюки в XP | Хитов: 17 | Ответов: 0
    15:59 / 20 июл. Работа с CD-Rom | Хитов: 11 | Ответов: 0
    13:50 / 20 июл. Из MSDN | Хитов: 23 | Ответов: 0
    13:13 / 20 июл. Идея с PictureBox'ом!!! | Хитов: 32 | Ответов: 2
    12:53 / 20 июл. Выбор принтера по умолчанию-ответ MSDN | Хитов: 10 | Ответов: 0
    09:31 / 20 июл. Пролема CommDialog.Fonts | Хитов: 15 | Ответов: 1
    02:01 / 20 июл. Binary mode | Хитов: 30 | Ответов: 1
    00:42 / 20 июл. kak sdelat' multfilm v vb6 | Хитов: 23 | Ответов: 1
    00:12 / 20 июл. kak sdelat' multfilm v vb6 | Хитов: 20 | Ответов: 1
    21:31 / 19 июл. Как получить данные из чата и отправить обратно? | Хитов: 20 | Ответов: 0
    16:14 / 19 июл. ВСЕМ!!! | Хитов: 64 | Ответов: 8
    16:05 / 19 июл. Маленькая ошибочка | Хитов: 29 | Ответов: 0
    15:13 / 19 июл. Что такое POINTAPI? | Хитов: 40 | Ответов: 5
    02:25 / 19 июл. Как заменить ICO в "exe" файле? | Хитов: 43 | Ответов: 4

    Последние поступления в Библиотеку кодов:

    Удаление HTML-тэгов (0)
    Использование WMI (0)
    Время выполнения кода (0)
    Работа с флагами (0)

    Новости от VBNet-чиков!:

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Новости сайта MSDN

    наверх

    Новости сайта GotdotNet

    Новые статьи:

    наверх

    Новости сайта dotSite

    Новые статьи:

    • Доступ к сайтам локальной сети с эмулятора карманного устройства.
      Доступ к сайтам локальной сети с эмулятора карманного устройства.
    • Понимание Infosets
      Цикл переводов посвященных технологии WebService

    Новые примеры:

    наверх

    Один момент из жизни форума: Проблема установки Visual Basic.net

    Вопрос:
    Автор вопроса: bushmen

    При установке VB.NET получаю ошибки: [07/14/03,09:18:59] setup.exe: [2] ISetupComponent::Pre/Post/Install() failed in ISetupManager::InstallManagerHelper()
    [07/14/03,09:19:00] setup.exe: [2] Component error string not specified in ISetupManager::AddToActionResultCollection()
    Скажите, пожалуйста, как с этим бороться?

    Ответы:

    Атор: Павел
    Попробуй при установке вырубить все антивирусы.

    Атор: Павел
    Только что на gotdotnet.ru проскочило:
    Я по этим гра[sensored]м неделю ходил.
    Рецепт для всех, кто слышит:
    1. Запускаем regedit
    2. Находим место
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
    Правой клавишей Modify.
    3. Если ваше предприятие написано с кавычками, убираем их.
    Далее VS.NET ставиться как по маслу.

    Атор: bushmen
    Спасибо за совет об изменениях в реестре - помогло.

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: .::neo::.

    Ответ ожидается по этому адресу

    Как пользоваться DataReport, где можно об этом почитать?

    Автор вопроса: weeeer

    Ответ ожидается по этому адресу

    В TextBox - е есть такая штука как
    Text2.SelText = "Текст" & vbCrLf
    здесь vbCrLf заменяет нажатую клавишу Enter - перходит на новую строку и скрол опускаеться вниз т.е. новая строка всегда на виду. А как сделать это в RichtextBox-е , там конечно переходит на новую строку, только скролл поднимаеться вверх т.е. остаеться на месте, хотя текст ушел далеко за пределы видимого.

    Автор вопроса: weeeer

    Ответ ожидается по этому адресу

    Как проше всего сделать, чтобы всатвлять картинки между текстами, буквами, строк в RichTextBox?

    Автор вопроса: Taras Prikhodko

    Ответ ожидается по этому адресу

    Как получить ответы от команд dos если они запущены из VB и как, чтобы программа ожидала этого и только потом продолжала свое выполнение?

    Автор вопроса: VIRUS 123

    Ответ ожидается по этому адресу

    У меня на одном компе стоит прога, которая должна отправить картинку из Image1 на другой комп в другую прогу тоже в Image1. Но когда две проги соединились через WinSock, то не передают картинку, потому что картинка - это не String. Как мне переделать формат картинки из Image1, чтобы вышло String? Или подскажите свои методы передачи, попроще..

    Автор вопроса: KB

    Ответ ожидается по этому адресу

    Подскажите чтиво по VB и Базам Данных.

    Автор вопроса: Denis

    Ответ ожидается по этому адресу

    Как можно сделать в приложениях MS Office, чтобы при вводе цифр в одном поле, во втором отображалось их значение прописью. Например, (67) - (шестьдесят семь).

    Автор вопроса: Danil

    Ответ ожидается по этому адресу

    Программа записывает данные в достаточно объемистый файл и по логике работы программы должна тут же этот файл и прочитать. Но новый файл еще не записан, поэтому либо выдается ошибка, либо открывается этот файл со старым сохранением. (особенно это касается, если писать на А:\). Как остановить выполнение программы, пока файл не яапишется (таймером не рационально). И еще общий вопрос по переносимости. Не хочется чтоб пользователи инсталировали мою программу. Просто чтобы запустили с CD и все. Я к моей программе в папку закинул MSVBVM60.dll, достаточно ли это чтоб прога работала на любом компе без проблем или еще что-то нужно (только бея инсталяции компонентов на чужой комп)?

    Автор вопроса: Максим

    Ответ ожидается по этому адресу

    А как сохранить содержимое графического контейнера в *.jpg?

    Ответы:

    Вопрос:

    Как сделать, чтобы после первого запуска программа в дальнейшем запускалась автоматически?

    Ответ:

    Автор ответа: Andruew

    Пусть после первого запуска прога прописывает себя в реестре по адресу
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
    в значении параметра укажи путь к твоей проге. Теперь при запуске Винды твоя прога будет запускаться автоматически.

    Вопрос:

    Как вызвать при печати какого-либо текста окно настроек принтера?

    Ответ:

    Автор ответа: P@Ssword

    Подключаешь Microsoft Common Dialog Control и делаешь

    CommonDialog1.ShowPrinter

    Вопрос:

    Как, зупустив дос-команду из VB, получить результат обратно в VB, чтобы прога ожидала этого рузультата и только после продолжала выполнение?

    Ответ:

    Автор ответа: P@Ssword

    Попробуй это, перенаправляет вывод из консоли куда угодно (напр., в текстовое поле).
    WARNING! Глючит под Виндоз 95, 98, МЕ (программы "замерзают")!

    Нужно два текстовых поля (у второго свойство Multiline = True) и кнопка.

    Option Explicit
    Private Declare Function CreatePipe Lib "kernel32" (phReadPipe As Long,
    phWritePipe As Long, lpPipeAttributes As SECURITY_ATTRIBUTES, ByVal
    nSize As Long) As Long
    Private Declare Sub GetStartupInfo Lib "kernel32" Alias
    "GetStartupInfoA" (lpStartupInfo As STARTUPINFO)
    Private Declare Function CreateProcess Lib "kernel32" Alias
    "CreateProcessA" (ByVal lpApplicationName As String, ByVal lpCommandLine
    As String, lpProcessAttributes As Any, lpThreadAttributes As Any, ByVal
    bInheritHandles As Long, ByVal dwCreationFlags As Long, lpEnvironment As
    Any, ByVal lpCurrentDriectory As String, lpStartupInfo As STARTUPINFO,
    lpProcessInformation As PROCESS_INFORMATION) As Long
    Private Declare Function SetWindowText Lib "user32" Alias
    "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long
    Private Declare Function ReadFile Lib "kernel32" (ByVal hFile As Long,
    lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead
    As Long, lpOverlapped As Any) As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA"
    (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As
    Any) As Long
    Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As
    Long) As Long

    Private Type SECURITY_ATTRIBUTES
    nLength As Long
    lpSecurityDescriptor As Long
    bInheritHandle As Long
    End Type

    Private Type PROCESS_INFORMATION
    hProcess As Long
    hThread As Long
    dwProcessId As Long
    dwThreadId As Long
    End Type

    Private Type STARTUPINFO
    cb As Long
    lpReserved As Long
    lpDesktop As Long
    lpTitle As Long
    dwX As Long
    dwY As Long
    dwXSize As Long
    dwYSize As Long
    dwXCountChars As Long
    dwYCountChars As Long
    dwFillAttribute As Long
    dwFlags As Long
    wShowWindow As Integer
    cbReserved2 As Integer
    lpReserved2 As Byte
    hStdInput As Long
    hStdOutput As Long
    hStdError As Long
    End Type

    Private Type OVERLAPPED
    ternal As Long
    ternalHigh As Long
    offset As Long
    OffsetHigh As Long
    hEvent As Long
    End Type

    Private Const STARTF_USESHOWWINDOW = &H1
    Private Const STARTF_USESTDHANDLES = &H100
    Private Const SW_HIDE = 0
    Private Const EM_SETSEL = &HB1
    Private Const EM_REPLACESEL = &HC2

    Private Sub Command1_Click()
    Command1.Enabled = False
    Redirect Text1.Text, Text2
    Command1.Enabled = True
    End Sub
    Private Sub Form_Load()
    Text1.Text = "ping"
    End Sub
    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    If Command1.Enabled = False Then Cancel = True
    End Sub

    Sub Redirect(cmdLine As String, objTarget As Object)
    Dim i%, t$
    Dim pa As SECURITY_ATTRIBUTES
    Dim pra As SECURITY_ATTRIBUTES
    Dim tra As SECURITY_ATTRIBUTES
    Dim pi As PROCESS_INFORMATION
    Dim sui As STARTUPINFO
    Dim hRead As Long
    Dim hWrite As Long
    Dim bRead As Long
    Dim lpBuffer(1024) As Byte
    pa.nLength = Len(pa)
    pa.lpSecurityDescriptor = 0
    pa.bInheritHandle = True

    pra.nLength = Len(pra)
    tra.nLength = Len(tra)

    If CreatePipe(hRead, hWrite, pa, 0) <> 0 Then
    sui.cb = Len(sui)
    GetStartupInfo sui
    sui.hStdOutput = hWrite
    sui.hStdError = hWrite
    sui.dwFlags = STARTF_USESHOWWINDOW Or STARTF_USESTDHANDLES
    sui.wShowWindow = SW_HIDE
    If CreateProcess(vbNullString, cmdLine, pra, tra, True, 0, Null,
    vbNullString, sui, pi) <> 0 Then
    SetWindowText objTarget.hwnd, ""
    Do
    Erase lpBuffer()
    If ReadFile(hRead, lpBuffer(0), 1023, bRead, ByVal 0&) Then
    SendMessage objTarget.hwnd, EM_SETSEL, -1, 0
    SendMessage objTarget.hwnd, EM_REPLACESEL, False, lpBuffer(0)
    DoEvents
    Else
    Exit Do
    End If
    CloseHandle hWrite
    Loop
    CloseHandle hRead
    End If
    End If
    End Sub

    Вопрос:

    Нужен контрол или код для такой операции (она сплошь и рядом в броузерах и крупных приложениях): есть два обьекта, разделенные вертикальной линией (например, TreeView и Listbox). Если взятся за эту линию, то можно, пропорционально изменить длину окна каждого элемента.

    Ответ:

    Автор ответа: Тим

    Я делал таким образом.Запускаешь VB. Выбираешь тип проекта "Application Wizard". Далее по мастеру идёшь: Выбираешь тип документа - Explorer Style дальше куча всяких свойтв ещё будет, но можешь просто жать кнопку "некст". Он тебе всё сформирует что надо. Увидишь готовую форму. Найди на ней элемент Image с именем imgSplitter между "листвью" и "тривью". Если увеличишь форму вширь увидишь ещё один элемент PictureBox - picSplitter. В коде формы есть процедуры

    imgSplitter_MouseDown
    imgSplitter_MouseMove
    imgSplitter_MouseUp
    Form_Resize()
    Sub SizeControls(X As Single)

    Там всё и делается. Всё просто и прозрачно. Посмотри, как работает форма.

    Вопрос:

    Написал я, скажем, программу, и хочу что-нибудь получить от того, кто ее использует.
    Как это устроить? Кто-нибудь может поделится знаниями электронной коммерции?

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Короче, ты хочешь создать шароварную (ShareWare) программу:)))

    Тебе сюда:

    http://www.softerra.ru/review/program/shareware

    Вопрос:

    Как сделать так, чтобы форма при активации (по таймеру), "вставала" поверх всех окон?

    Ответ:

    Автор ответа: Maxim Sovenko

    В модуль:

    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)

    Вопрос:

    Есть программа, в ней в качстве фона формы используются картинки в формате JPG, которые загружаються из указаной папки, при этом нужно эту папочку с картинками поставлять с программой, можно ли какм то образом эти картинки вшить в екзешник, чтобы избавиться от этого неудобства?

    Ответ:

    Автор ответа: .::neo::.

    Можно.

    1. Для этого надо использовать файл ресурсов
    Add-In~Add-In Manadger...~подключаешь Resourse Editor, а затем юзаешь

    LoadResData(id, type)

    2. Используешь ImageList

    Ответ:

    Автор ответа: Vao

    А по-моему, если ты используешь в качестве фона картинку, то после компила в EXEшник не нужно париться по этому поводу, т.к. эта картинка и так будет запакована в твою прогу. А вот если ты хочешь сделать меняюшийся фон формы тогда, кажись, надо юзать контрол ImageBox в который надо записать все твои картинки. и который должен занимать всю площадь формы. Ну и т.д.

    Вопрос:

    Почему когда пишу из массива в файл по For...Next все ок, но тормоза страшные (сами проверьте на файлике метра в три), а Put #1,,TMP -- моментально, но в конец файла дописывается лишний символ с кодом ноль. Функция Left работать отказалась на отрез...
    Что делать?

    P.S. То что можно просто скопировать файл test в test.in... Просто код упрощен для понимания, а так данные по идее будут преобразовываться. Заранее благодарен за ответ.

    Option Explicit
    Dim Str() As Byte
    Dim X As Long
    Dim Y As Long
    Dim TMP() As Byte
    Dim M

    Private Sub Form_Load()
    Me.Show
    Me.Refresh
    DoEvents

    Open "c:\test" For Binary As #1
    X = FileLen("c:\test")
    ReDim Str(X)
    ReDim TMP(X)
    Get #1, , Str
    Close

    For Y = 0 To X - 1 Step 0
    TMP(Y) = Str(Y)
    Y = Y + 1
    Next Y

    Open "c:\test.in" For Binary As #1
    'Так все ок, но тормозза...
    For Y = 0 To X - 1 Step 0
    Put #1, , TMP(Y)
    Y = Y + 1
    Next Y
    Close

    'Так быстро, но в конец файла дописывается лишний символ
    'с кодом 0
    Put #1, , TMP

    MsgBox "OK", , ""
    End
    End Sub

    Ответ:

    Автор ответа: RaZoom

    Опять ты со своим коронным:

    For Y = 0 To X - 1 Step 0

    Когда же все запомнят, что в километре 1024 метров, счет начинается с нуля, а ReDim TMP(10) равносильно ReDim TMP(0 to 10), т.е. состоит из 11(!) элементов. А в приведенном примере последнему элементу массива ничего не присваевается, т.е. он остается равным 0.

    Ответ:

    Автор ответа: Retupa

    Dim strFilePath As String
    Dim inBytes() As Byte
    Dim outBytes() As Byte

    strFilePath = "YOUR_FILE_NAME"
    ReDim inBytes(1 To FileLen(strFilePath)) As Byte

    Open strFilePath For Binary As #1
    Get #1, , inBytes
    Close #1

    ReDim outBytes(1 To UBound(inBytes)) As Byte
    outBytes = inBytes
    'Действия..........

    strFilePath = "YOUR_NEW_FILE"
    'Если выходной файл уже существует, то в него просто перепишутся первые UBound(outBytes) байт.
    If Len(Dir$(strFilePath, vbArchive + vbHidden + vbReadOnly + vbSystem)) Then
    SetAttr strFilePath, vbNormal
    Kill strFilePath
    End If

    Open strFilePath For Binary As #1
    Put #1, , outBytes
    Close #1

    Ответ:

    Автор ответа: Vir

    Во-первых, если ты измениш код с

    for i=0 to n step 0
    ...
    i=i+1
    next

    на

    for i=0 to n

    next

    то скорость использования цикла увеличится на 63,866436994832383728633894262621% (нехило :)

    Во-вторых,если данный файл использается только для твоей программы, то при задании массива чтения укажи размер на еденицу меньше

    Dim tmp(5) As Byte
    For i = 0 To 5
    tmp(i) = i
    Next
    Open "c:\1.dat" For Binary As 1
    Put #1, , tmp
    Close

    Dim j() As Byte
    Open "c:\1.dat" For Binary As 1
    ReDim j(LOF(1) - 1)
    Get #1, , j
    Close

    Вопрос:

    1. Как в DAO 3.51 в открытой таблице узнать, какие есть колонки, т.е. их названия?
    2. Как в DAO 3.51 определить, сколько записей в таблице?

    Ответ:

    Автор ответа: VMJ

    dim mdb as database
    dim rS as recordset
    dim i as integer
    set rs=mdb.openrecordset("ttt",dbopensnapshot)
    with rs
    for i =1 to .fields.count
    debug.print .fields(i).name'Название колонок, .type, .size и т.п.
    next i
    .mowelast
    debug.print .recordcount'Число записей в таблице
    end with

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 181.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск! Присылайте коды!!!!!!
    Читайте!

    Содержание выпуска

    • Книги

    • Эксперт

    • Сдвиг числа
    • Скрыть/показать курсор мыши
    • Вычисление процента соответствия двух строк

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти здесь.

    наверх

    Эксперт

    - Привет, Серый.
    - Угу, привет. Ты проходи, садись, я щас, с функцией тут разберусь...
    - Да я на момент. Вопросец имеется.
    - Вопросец, вопросец... Так, тут переменная не объявлена... Вопросец... С вопросами в систему, к экспертам... А тут точку не поставил! Вот она где, соб-бака!!
    - Ты че, какая система? Ты о чем?
    - О! Все, работает... Чего ты говоришь?
    - Ты про каких это экспертов тут заикаешься?
    - А-а. А ты что, первый раз слышишь, что ли? Ты на СообЧа бывал?
    - Где?!!
    - Да вот, гляди. Щас соединимся... Во! http://soobcha.ru, зришь?
    - М-да... Занятно. Так я с вопросом к тебе...
    - А я вот и говорю: туда иди, в систему "Эксперт", там ответят.
    - Это чайники, что ли, ответят?
    - Не сомневайся, ответят. Там у них такое наворочено... Короче, ты по почте вопрос свой задаешь - и все:)))))) Больше не изволь беспокоиться, там они сами будут искать ответ на твой вопрос. А через некоторое время вывалят тебе на ящик не один, а несколько ответов. Пользуйся и радуйся:)
    - А чего это они там такие добрые да услужливые? У них чего, своих проблем нет? Сколько я должен платить за такое трогательное беспокойство?
    - Ну, это немного. Меньше, чем ты думаешь:) Тебе достаточно только подтвердить правильный ответ. Давишь на соответствующую ссылку, дескать, вот этот ответ мне понравился, помог, и я доволен. Просто пустое письмо засылаешь к ним, и вся оплата. А если хочешь у них экспертом стать, то пожалуйста, регистрируйся и отвечай на вопросы.
    - Кем? Экспертом?
    - А что? Что-то ты ведь знаешь, не вчера за комп сел.
    - А на фига мне это надо? Разбираться с чужими проблемами... У меня своих - хоть отбавляй...
    - Ага. Вот ты только что спрашивал: а сколько? И если уж ты со своими проблемами обращаешься к людям, то ведь надеешься, что тебе помогут. А сам-то что, влом, что ли, помочь кому-то? Да ладно! Тебя, вобщем-то, никто и не тянет, не заставляет. А вот те, кому интересно, кому не жаль поделиться, те там и работают. Я, между прочим, давно уже с ними.
    - В смысле, экспертом, что ли, заделался? И сколько тебе платят?
    - А ты не прикалывай. Там никто никому не платит. А вот конкурсы, между прочим, проводят, и не хилые. Представляешь, за лучший ответ дают бесплатно три месяца платного хостинга, да еще домен регистрируют. За просто так. А вот тебе, если ты задашь самый лучший вопрос, тоже приз может выгореть.
    - Это как: лучший? На который никто ответить, что ли, не сможет? Так я щас таких вопро...
    - Причем тут это? Просто ты, если вопрос пишешь к ним, так сподобься хоть запятые в нужных местах поставить, там, грамотно, короче, обрисуй свой трабл.
    - Ну ладно, въехал. Ты мне вот лучше помоги с моим траблом. Мой Фотошоп не хочет по русски работать...
    - Ха, так этот трабл там уже сколько раз появлялся. У них на сайте и ответ есть... Вот, любуйся: Заходим в редактор реестра (regedit.exe). Находим ключ HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\Nls\Codepage В нем изменяем значение параметра 1252 с cp_1252.nls на cp_1251.nls. Перезагружаемся...
    - Понял... погоди, запишу...
    - Да чего записывать? Шагай домой, входи на сайт и копируй...
    - Да я ссылку запишу... Слушай, а как там в эту систему вопрос задать? Вообще, как она работает?
    - Так тут же, на сайте, все есть. А вообще, можешь по почте пустое письмо загнать на mailto:reply.infoexpert@soobcha.ru, и получишь всю необходимую инфу. А вообще, ты лучше в следующий раз с вопросами не ко мне, а туда. Может, я и отвечу там.
    - А не проше тебе здесь ответить?
    - Э-э-э... Там я баллы зарабатываю...
    - А это еще зачем?
    - Ладно, мотай. Дома почитаешь, все о них узнаешь. У меня тут халтурка... Давай, пока.
    - Пока. А как ты экспертом там зарегился?
    - Иди, иди! Инфу читай...

    наверх

    Сдвиг числа

    Небольшая функция. Осуществляет сдвиг на n-ное число бит. Параметры функции:
    lValue - Исходное значение
    lNumberOfBitsToShift - Количество бит, на которые нужно сдвинуть число
    lDirectionToShift - Направление сдвига (вправо или влево).

    Public Enum dcShiftDirection
    Left = -1
    Right = 0
    End Enum

    Public Function Shift(ByVal lValue As Long, ByVal lNumberOfBitsToShift As Long, ByVal lDirectionToShift As dcShiftDirection) As Long
    If lDirectionToShift Then
    Shift = lValue * (2 ^ lNumberOfBitsToShift)
    Else
    Shift = lValue \ (2 ^ lNumberOfBitsToShift)
    End If
    End Function

    наверх

    Скрыть/показать курсор мыши

    Этот пример покажет Вам, как скрыть или показать курсор мыши.

    'В General Declarations
    Private Declare Function ShowCursor& Lib "user32" (ByVal bShow As Long)

    'В код

    'Показать курсор
    ShowCursor (1)

    'Скрыть курсор
    ShowCursor (0)

    наверх

    Вычисление процента соответствия двух строк

    Функция Simil возвращает процент соответствия двух строк.

    Private b1() As Byte
    Private b2() As Byte

    Public Function Simil(String1 As String, String2 As String) As Double
    Dim l1 As Long
    Dim l2 As Long
    Dim l As Long
    Dim r As Double

    If UCase(String1) = UCase(String2) Then
    r = 1
    Else
    l1 = Len(String1)
    l2 = Len(String2)

    If l1 = 0 Or l2 = 0 Then
    r = 0
    Else
    ReDim b1(1 To l1): ReDim b2(1 To l2)

    For l = 1 To l1
    b1(l) = Asc(UCase(Mid(String1, l, 1)))
    Next

    For l = 1 To l2
    b2(l) = Asc(UCase(Mid(String2, l, 1)))
    Next
    r = SubSim(1, l1, 1, l2) / (l1 + l2) * 2
    End If
    End If
    Simil = r
    Erase b1
    Erase b2
    End Function

    Private Function SubSim(st1 As Long, end1 As Long, st2 As Long, end2 As Long) As Long
    Dim c1 As Long
    Dim c2 As Long
    Dim ns1 As Long
    Dim ns2 As Long
    Dim i As Long
    Dim max As Long
    If st1 > end1 Or st2 > end2 Or st1 <= 0 Or st2 <= 0 Then Exit Function

    For c1 = st1 To end1

    For c2 = st2 To end2
    i = 0

    Do Until b1(c1 + i) <> b2(c2 + i)
    i = i + 1

    If i > max Then
    ns1 = c1
    ns2 = c2
    max = i
    End If
    If c1 + i > end1 Or c2 + i > end2 Then Exit Do
    Loop
    Next
    Next
    max = max + SubSim(ns1 + max, end1, ns2 + max, end2)
    max = max + SubSim(st1, ns1 - 1, st2, ns2 - 1)

    SubSim = max
    End Function

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Слава

    Ответ ожидается по этому адресу

    Пишу прогу которая работает с базой данных .mdb, и вот столкнулся с одной проблемой: прога должна работать с файлами которые выбирает пользователь... в VB проблем нет, но эргономичней было бы сделать на VBA прямо в Access, а там ни как не могу найти аналоги DriveList, DirList и FileList. Может плохо ищу? Помогите!

    Автор вопроса: Максим

    Ответ ожидается по этому адресу

    Проблема с SQL-запросом. Формирую запрос
    SELECT SUM(сумма) FROM...
    , проверяю есть ли чего
    If ...Expr1000 NOT IS NULL then
    и время от времени при явном присутствии Expr1000, прога заявляет, что там NULL. Может кто-то встречался с таким глюком?

    Автор вопроса: jarilo

    Ответ ожидается по этому адресу

    Все видели как изменяется, например, размер рисунка в Word'е. А как сделать подобный контрол (или группу)? Мне удалось сделать только самое простое - увеличивать или уменьшать число кликами по стрелкам. Но еще хочется увеличивать это число с клавиатуры (клавишами управления курсором) и быстрое увеличение (уменьшение) числа - держишь кнопку, оно ияменяется, отпустил - остановилось...

    Автор вопроса: Вячеслав

    Ответ ожидается по этому адресу

    Как (в VB6) передать в массив каталог с файлами, т. е. что бы имена файлов стали индексированными переменными массива.

    Автор вопроса: I-Sof

    Ответ ожидается по этому адресу

    Как комжно с помощью VB6 написать прогу, чтобы был клиент и сервер, а именно через клиент с компа, на котором наш сервак, качать файлы (желательно, чтобы выбирать самому).

    Автор вопроса: Vladimir [PRC]

    Ответ ожидается по этому адресу

    При установке MSDN ия Visual Studio 6.0 в конце установки, после копирования файлов выдается сообщение об ошибке:
    "CloseCollection g_ccolCollection.Open(collectionname) dwError=7"
    Что делать?

    Автор вопроса: Валера

    Ответ ожидается по этому адресу

    Можно ли узнать hwnd и (hdc) у ComboBox, ListBox, и других кнопок, используя АПИшные функции?

    Автор вопроса: Максим

    Ответ ожидается по этому адресу

    В мой "Блокнот" встроен RichTextBox. Пишу в нём, например: "Маша мыла раму." Сохраняю и открываю. Вот что он мне покаяывает:

    {\rtf1\ansi\ansicpg1251\deff0\deftab720{\fonttbl{\f0\fnil MS Sans Serif;}{\f1\froman\fcharset2 Symbol;}{\f2\fswiss\fcharset204{\*\fname MS Sans Serif;}MS Shell Dlg;}}{\colortbl\red0\green0\blue0;}
    \deflang1049\pard\plain\f2\fs17 \'cc\'e0\'f8\'e0 \'ec\'fb\'eb\'e0 \'f0\'e0\'ec\'f3. \par }

    Подскажите, пожалуйста, как мне от этого избавиться и, если в нём такое возможно, поменять цвет шрифта? TextBox мне не подходит, т.к. мой отчёт в него не влазит.

    Автор вопроса: Taras Prikhodko

    Ответ ожидается по этому адресу

    Как програмно подключится к сетевому ресурсу в локальной сети, вводя програмно имя пользователя и пароль, и получить ответ о подключении или неподключении.

    Автор вопроса: Anatoliy

    Ответ ожидается по этому адресу

    Нужно на принтере вывести простой текст, но так, чтобы он был перевернут кверх ногами.

    Автор вопроса: Тим

    Ответ ожидается по этому адресу

    Как можно запретить гриду изменять подписи к полям?
    На форме контрол DataGrid связанный с ADODC и TreeView. Есть элемент TabStrip с кучей вкладок. Когда кликаешь на вкладке TabStrip, ADODC принимает новый рекордсет из другой таблицы DataGrid, перестраивается на другую таблицу. Фрагменты кода инициализации Грида.

    'здесь привязываю грид к новому источнику
    Adodc1.RecordSource = strsql
    Adodc1.Refresh
    Set DataGrid1.DataSource = Adodc1
    'а здесь выставляю подписи к столбцам из другой таблицы
    rst.Source = "select * from t_filds where table_name='" & curTable & "'"
    rst.Open
    Do Until rst.EOF
    DataGrid1.Columns(rst.Fields(1).Value).Caption = rst.Fields(2).Value
    rst.MoveNext
    Loop

    На гриде после этого все подписи по-человечески. Проблема в следующем: как только я обновляю источник данных (пользователь выбрал другой "нод" в TreeView и надо отразить данные из той же таблицы, но другой фильтр), у меня слетают "человеческие" подписи и берутся из имён столбцов в базе данных. Как можно запретить гриду изменять подписи к полям? Ведь если в режиме дизайна их установить, то при изменении источника они не меняются!

    Автор вопроса: Алексей Великий

    Ответ ожидается по этому адресу

    Как сделать свою собственную инсталяшку так , чтобы она запускала другой setup.exe? Использую InstallShield 8.0.

    Ответы:

    Вопрос:

    Вопрос по работе с Treeview.
    Можно ли сделать так, что бы плюсик у нода отображался независимо от того, есть внутри дети или нет?
    Проблема в том, что если не грузить сразу всё дерево из базы, потому что огромное оно, а только по уровням. что бы можно было на событие "Экспанд" загрузить детей и так далее. Без плюсика нет "экспанда". Сейчас выхожу из положения так: просто гружу один чилд в ноде, чтобы плюсик появился, а потом удаляю его перед загрузкой реальных детей. Но это муторное дело, приходится сначала сразу сворачивать нод, что б не прыгало всё дерево вверх-вниз, а потом опять разворачивать. Куча проверок и так далее.

    Ответ:

    Автор ответа: Andrey Gurinov

    Добавь ему нода-потомка, что-нибудь типа , потом по Expand проверяй на наличие такого потомка. Если он есть, то удаляй его и грузи из базы то, что тебе надо. Не забудь всему подгружаемому тоже приделать таких .

    Вопрос:

    Как можно создать доступ к БД, которой пользуются 2 проги одновременно, при этом коннект к ним должен быть открытым у обоих?

    Ответ:

    Автор ответа: Sergey

    А что за база(Access/MSSQL)?

    Вопрос:

    Как определить из кода VB, открыт ли файл (файл MS Excel) другим пользователем?

    Ответ:

    Автор ответа: Sergey

    Если ты говоришь только про Excel файлы, то у объекта Workbook есть св-во UserStatus(двумерный массив), который содержит имена/даты пользователей,которые получили доступ к файлу.

    Вопрос:

    В TextBox - е есть такая штука как
    Text2.SelText = "Текст" & vbCrLf
    здесь vbCrLf заменяет нажатую клавишу Enter - перходит на новую строку и скрол опускаеться вниз т.е. новая строка всегда на виду. А как сделать это в RichtextBox-е , там конечно переходит на новую строку, только скролл поднимаеться вверх т.е. остаеться на месте, хотя текст ушел далеко за пределы видимого.

    Ответ:

    Автор ответа: InvisibleMan

    Private Sub Text1_Change()
    Text1.SelStart = Len(Text1.Text)
    End Sub

    Вопрос:

    У меня на одном компе стоит прога, которая должна отправить картинку из Image1 на другой комп в другую прогу тоже в Image1. Но когда две проги соединились через WinSock, то не передают картинку, потому что картинка - это не String. Как мне переделать формат картинки из Image1, чтобы вышло String? Или подскажите свои методы передачи, попроще..

    Ответ:

    Автор ответа: valix

    Можно сначала сохранить картинку на хард (SavePicture Image1.picture,"c:\image.bmp") а потом открыть сохраненый файл в какую нибудь string.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 182.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск!
    Читайте!

    Содержание выпуска

    • Книги

    • Эксперт

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Один момент из жизни форума: Конвертировать C# в VB .NET

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Эксперт

    - Привет, Серый.
    - Угу, привет. Ты проходи, садись, я щас, с функцией тут разберусь...
    - Да я на момент. Вопросец имеется.
    - Вопросец, вопросец... Так, тут переменная не объявлена... Вопросец... С вопросами в систему, к экспертам... А тут точку не поставил! Вот она где, соб-бака!!
    - Ты че, какая система? Ты о чем?
    - О! Все, работает... Чего ты говоришь?
    - Ты про каких это экспертов тут заикаешься?
    - А-а. А ты что, первый раз слышишь, что ли? Ты на СообЧа бывал?
    - Где?!!
    - Да вот, гляди. Щас соединимся... Во! http://soobcha.ru, зришь?
    - М-да... Занятно. Так я с вопросом к тебе...
    - А я вот и говорю: туда иди, в систему "Эксперт", там ответят.
    - Это чайники, что ли, ответят?
    - Не сомневайся, ответят. Там у них такое наворочено... Короче, ты по почте вопрос свой задаешь - и все:)))))) Больше не изволь беспокоиться, там они сами будут искать ответ на твой вопрос. А через некоторое время вывалят тебе на ящик не один, а несколько ответов. Пользуйся и радуйся:)
    - А чего это они там такие добрые да услужливые? У них чего, своих проблем нет? Сколько я должен платить за такое трогательное беспокойство?
    - Ну, это немного. Меньше, чем ты думаешь:) Тебе достаточно только подтвердить правильный ответ. Давишь на соответствующую ссылку, дескать, вот этот ответ мне понравился, помог, и я доволен. Просто пустое письмо засылаешь к ним, и вся оплата. А если хочешь у них экспертом стать, то пожалуйста, регистрируйся и отвечай на вопросы.
    - Кем? Экспертом?
    - А что? Что-то ты ведь знаешь, не вчера за комп сел.
    - А на фига мне это надо? Разбираться с чужими проблемами... У меня своих - хоть отбавляй...
    - Ага. Вот ты только что спрашивал: а сколько? И если уж ты со своими проблемами обращаешься к людям, то ведь надеешься, что тебе помогут. А сам-то что, влом, что ли, помочь кому-то? Да ладно! Тебя, вобщем-то, никто и не тянет, не заставляет. А вот те, кому интересно, кому не жаль поделиться, те там и работают. Я, между прочим, давно уже с ними.
    - В смысле, экспертом, что ли, заделался? И сколько тебе платят?
    - А ты не прикалывай. Там никто никому не платит. А вот конкурсы, между прочим, проводят, и не хилые. Представляешь, за лучший ответ дают бесплатно три месяца платного хостинга, да еще домен регистрируют. За просто так. А вот тебе, если ты задашь самый лучший вопрос, тоже приз может выгореть.
    - Это как: лучший? На который никто ответить, что ли, не сможет? Так я щас таких вопро...
    - Причем тут это? Просто ты, если вопрос пишешь к ним, так сподобься хоть запятые в нужных местах поставить, там, грамотно, короче, обрисуй свой трабл.
    - Ну ладно, въехал. Ты мне вот лучше помоги с моим траблом. Мой Фотошоп не хочет по русски работать...
    - Ха, так этот трабл там уже сколько раз появлялся. У них на сайте и ответ есть... Вот, любуйся: Заходим в редактор реестра (regedit.exe). Находим ключ HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\Nls\Codepage В нем изменяем значение параметра 1252 с cp_1252.nls на cp_1251.nls. Перезагружаемся...
    - Понял... погоди, запишу...
    - Да чего записывать? Шагай домой, входи на сайт и копируй...
    - Да я ссылку запишу... Слушай, а как там в эту систему вопрос задать? Вообще, как она работает?
    - Так тут же, на сайте, все есть. А вообще, можешь по почте пустое письмо загнать на mailto:reply.infoexpert@soobcha.ru, и получишь всю необходимую инфу. А вообще, ты лучше в следующий раз с вопросами не ко мне, а туда. Может, я и отвечу там.
    - А не проше тебе здесь ответить?
    - Э-э-э... Там я баллы зарабатываю...
    - А это еще зачем?
    - Ладно, мотай. Дома почитаешь, все о них узнаешь. У меня тут халтурка... Давай, пока.
    - Пока. А как ты экспертом там зарегился?
    - Иди, иди! Инфу читай...

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 25.07.2003 10:41 | Раздел: Примеры кода | Автор: Vir

    3DХвост - Вращающийся трёхмерный хвост. Реализовано на собственном движке.

    Дата: 25.07.2003 10:41 | Раздел: Примеры кода | Автор: Vir

    ScreenSaver - Очень красивый ScreenSaver. Реализован на собственном 3D-движке.

    Дата: 24.07.2003 10:41 | Раздел: Примеры кода | Автор: Vir

    Кубик - Вращающийся 3D-куб.

    Дата: 24.07.2003 10:41 | Раздел: Примеры кода | Автор: Vir

    Cashe - Выводит в TreeView список файлов, хранящихся в кэше Internet Explorer. Очень удобная программа.

    Дата: 23.07.2003 11:32 | Раздел: Примеры кода | Автор: Половый Александр

    GetSysInfo - Пример сбора информации о системе. В примере использованы разнообразные API-фунции, предоставляющие информацию о параметрах Windows. Например: работает ли сеть или звук, версия Windows, cистемные папки, оперативная память, жесткий диск и прочее.

    Дата: 23.07.2003 10:41 | Раздел: Полезные программы | Автор: Vir

    WinampKey - Программа облегчает работу с Winamp при помощи сочетания клавиш

    Дата: 22.07.2003 12:10 | Раздел: Примеры кода | Автор: CyRax

    BP API ToolBar 1.0 - Тулбар на API. Это пример является частью более крупного проекта "BP API RichEdit", который выйдет в скором времени.

    Дата: 22.07.2003 06:51 | Раздел: Полезные программы | Автор: Ловиков Михаил и Немиро Алексей

    MicroGerakL - Обновленная версия редактора курсоров и иконок, Возможности сохранения в форматах *.ico, *.cur, *. ico. Извлечение иконок из *.exe,*.ocx,*.icl,*.dll,*.ani. Исправлен глюк c реестром в History и глюк заливки. Добавлен тулбар, новая объединенная палитра, добавлен просмотр анимационных курсоров, создание анимационных курсоров, изменение иконок у папок и дисков. В данный момент делается: Печать иконки, Ассоциация с иконками, Изменение иконок десктопа и других.

    Дата: 21.07.2003 09:28 | Раздел: ActiveX контролы | Автор: Антон Лозовский

    Tray Icon Control - Элемент управления значками в трэе: установка знака, удаление, работа с всплывающим меню, анимация. В комплекте - trayicon.ocx, перевод первоисточника из MSDN где описывается на уровне АПИ технология работы с трэем, ну и короткий пример на VB как работать с данным элементом управления.

    Дата: 20.07.2003 11:04 | Раздел: Примеры кода | Автор: WeRT

    Диапазон Дат - Смысл в том, что USER выбирает начальную и конечную даты из DTPikera, а программа выдает помесячно весь диапазон.

    Последние 20 тем форума на VBNet.Ru:

    01:45 / 27 июл. Про дистрибутив VB.net | Хитов: 1 | Ответов: 0
    20:48 / 26 июл. Подстановка данных в веб-форму | Хитов: 4 | Ответов: 0
    18:46 / 26 июл. Установится ли VB.NET на WINNT4Server? и какой ... | Хитов: 10 | Ответов: 0
    08:44 / 26 июл. Криптография | Хитов: 24 | Ответов: 4
    05:17 / 26 июл. html в браузере | Хитов: 20 | Ответов: 2
    20:53 / 25 июл. Отправка письма | Хитов: 25 | Ответов: 3
    15:37 / 25 июл. Учёт Инета | Хитов: 28 | Ответов: 1
    15:35 / 25 июл. Цикл недаёт покоя!! | Хитов: 28 | Ответов: 1
    15:31 / 25 июл. Авторы ShareWare, поделитесь опытом! | Хитов: 32 | Ответов: 2
    14:14 / 25 июл. dhtml | Хитов: 12 | Ответов: 0
    14:14 / 25 июл. dhtml | Хитов: 5 | Ответов: 0
    13:36 / 25 июл. Замена Package & Deployment Wizard | Хитов: 23 | Ответов: 2
    12:25 / 25 июл. MouseMove в GroupBox [.net] | Хитов: 7 | Ответов: 1
    10:24 / 25 июл. Код для локалки... | Хитов: 35 | Ответов: 2
    09:15 / 25 июл. Срочно, нид хелп | Хитов: 40 | Ответов: 3
    09:06 / 25 июл. Принудительная остановка проги | Хитов: 34 | Ответов: 3
    19:04 / 24 июл. Форма(Resize) | Хитов: 36 | Ответов: 2
    18:47 / 24 июл. Определение текущего файла | Хитов: 44 | Ответов: 6
    18:31 / 24 июл. ListView - возврат выделенной строки | Хитов: 29 | Ответов: 2
    17:41 / 24 июл. RichTextBox | Хитов: 50 | Ответов: 5

    Последние поступления в Библиотеку кодов:

    Уничтожение файла (2)
    DDE (10)
    Открытие рекордсета (11)
    Получение путей к системным папкам (8)
    Удаление HTML-тэгов (86)
    Использование WMI (66)

    Новости от VBNet-чиков!:

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Новости сайта MSDN

    наверх

    Новости сайта GotdotNet

    • 22.07.2003 - Загрузите Web Services Enhancements v2.0 Technology Preview
      Вышел пакет WSE 2.0 technology preview. Посмотрите на новые возможности Web Services Enhancements 2.0, которые включают инфрастуктуру поддержки полиси, расширенную модель безопасности, модель программирования, ориентированную на сообщения .
    • 18.07.2003 - Новая версия сервиса машинного перевода раздела .Net Framework SDK
      Новой версии сервиса подверглась существенным архитектурным переработкам, теперь на ряду с собственно машинным переводом сервис использует подсистему "PROMT Associated Memory".
    • 16.07.2003 - Открыта запись на участие в первом мастер-классе по ASP.NET!
      Мастер-класс представляет собой серию online-семинаров по разработке на ASP.NET. Семинары ориентированы, прежде всего, на разработчиков, делающих первые шаги по освоению новой технологии.

    Новые статьи:

    • 24.07 - Выявляем слабые места трехзвенных приложений ASP.NET
    • 23.07 - Полиморфная сериализация в XML
    • 16.07 - Visual Studio Tools for Office

    наверх

    Новости сайта dotSite

    Новые статьи:

    • Понимание DIME и WS-Attachments

    • Аргумент против SOAP кодирования

    Новые примеры:

    наверх

    Один момент из жизни форума: Конвертировать C# в VB .NET

    Вопрос:
    Автор вопроса: Lord

    Как? В общем мне надо конвертировать только два небольших C# классов в VB .NET... Может утилиты есть какие-то?

    Ответы:

    Атор: vvs
    А смысл? .NET - мультиязыковая среда.

    Атор: Lord
    И что дает мне эта среда? Я же все равно не могу в одной сборке писать на нескольких языках...

    Атор: bushmen
    Я вижу, тебе уже на gotdotnet ссылочку подкинули...
    www.aspalliance.com/aldotnet/examples/translate.aspx

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Нет вопросов.

    Ответы:

    Вопрос:

    Написал я, скажем, программу, и хочу что-нибудь получить от того, кто ее использует.
    Как это устроить? Кто-нибудь может поделится знаниями электронной коммерции?

    Ответ:

    Автор ответа: Данила

    Передаёшь ограниченную версию (максимально ограниченную), требуешь оплату, получаешь оплату, отдаёшь полную версию.
    На всякий случай (чтоб уберечь тебя от ошибок). Под ограничением понимается не удаление каких-то функций, а лишь снижение их работоспособности. Т.е. прога должна предоставлять доступ ко всем своим возможностям (иначе что клиент будет оценивать), но при их использовании очень быстро наступали границы. Т.е., если база, то на 10 записей (хотя клиенту надо 10000), если браузер, то на 10 ссылок (хотя надо бесконечно) и т.д. Вариант с временным ограничением (когда после определённого промежутка времени прога перестаёт загружаться), как правило, не прокатывает, т.к. более менее грамотный программист обойдёт эту защиту в считанные минуты (подтверждено практикой).

    Вопрос:

    Как можно создать доступ к БД, которой пользуются 2 проги одновременно, при этом коннект к ним должен быть открытым у обоих?

    Ответ:

    Автор ответа: Данила

    Что за БД? Если MA, то просто открываешь базу без всяких ограничений, она по умолчанию общедоступна.

    Вопрос:

    Есть программа, в ней в качстве фона формы используются картинки в формате JPG, которые загружаються из указаной папки, при этом нужно эту папочку с картинками поставлять с программой, можно ли какм то образом эти картинки вшить в екзешник, чтобы избавиться от этого неудобства?

    Ответ:

    Автор ответа: Данила

    Не рекомендую, т.к. ты получишь больший объём, чем при раздельной поставке. Да и картинки проще заменить в папке, чем в проге. И пользователю веселее, получит возможность сменить скин.

    Вопрос:

    Пишу прогу которая работает с базой данных .mdb, и вот столкнулся с одной проблемой: прога должна работать с файлами которые выбирает пользователь... в VB проблем нет, но эргономичней было бы сделать на VBA прямо в Access, а там ни как не могу найти аналоги DriveList, DirList и FileList. Может плохо ищу? Помогите!

    Ответ:

    Автор ответа: Смыслов Кирилл

    Microsoft Scripting Runtime

    Вопрос:

    Проблема с SQL-запросом. Формирую запрос
    SELECT SUM(сумма) FROM...
    , проверяю есть ли чего
    If ...Expr1000 NOT IS NULL then
    и время от времени при явном присутствии Expr1000, прога заявляет, что там NULL. Может кто-то встречался с таким глюком?

    Ответ:

    Автор ответа: Смыслов Кирилл

    Наверняка это не глюк, а ты неверно строишь запрос. Пришли структуру таблицы и что тебе надо получить. Посмотрю.

    Ответ:

    Автор ответа: Sergey

    А в чем собственно проблема ? Если SUM (Field1) равна NULL, то условие is NULL сработает. Хотя конечно было бы желательно взглянуть на весь код целиком.

    Ответ:

    Автор ответа: SysOp

    Это не глюк, а Ваша невнимательность.
    Во-первых, рекомендую во всех случаях всё делать/описывать явно, а не надеяться на действия/свойства/результаты по-умолчанию. Вот Ваш запрос

    SELECT SUM(сумма) FROM...
    If ...Expr1000 NOT IS NULL then

    Я бы написал так

    SELECT SUM(сумма) AS my_sum FROM...
    If ...my_sum NOT IS NULL then

    Во-вторых, результатом запроса SELECT SUM(сумма) FROM... всегда будет одна строка с одним полем Expr1000.
    В-третьих, вспомним, что поле может иметь специальное значение - Null. Специальным оно является в том смысле, что не означает "пустая строка" или 0 (ноль). Null сообщает, что в поле вообще нет данных. Никаких.

    Вывод: "время от времени при явном присутствии Expr1000" Вы отбираете записи, у которых в поле "сумма" - Null. У всех! И результат суммирования тоже будет Null.

    Вопрос:

    Все видели как изменяется, например, размер рисунка в Word'е. А как сделать подобный контрол (или группу)? Мне удалось сделать только самое простое - увеличивать или уменьшать число кликами по стрелкам. Но еще хочется увеличивать это число с клавиатуры (клавишами управления курсором) и быстрое увеличение (уменьшение) числа - держишь кнопку, оно ияменяется, отпустил - остановилось...

    Ответ:

    Автор ответа: SysOp

    Напомню, что в VB6 есть стандартный контрол UpDown (как две кнопочки со стрелками вверх и вниз). Чтобы его подключть нужно в меню "Project" ("Проект") нажать "Components" ("Компоненты") и отметить Microsoft Windows Common Controls-2.

    Создаем новый проект.
    Ставим значение формы (Form1) KeyPreview=True.
    Добавляем на форму конрол UpDown1.
    Ставим его значения Min=0, Max=100, Value=0 (например).
    Добавляем текстовое поле Text1. Ставим его значение Text="0".

    Пишем следующий код:

    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If Me.ActiveControl.Name = "Text1" Then
    With UpDown1
    If KeyCode = vbKeyDown Then
    .Value = IIf(.Value - 1 < .Min, .Min, .Value - 1)
    ElseIf KeyCode = vbKeyUp Then
    .Value = IIf(.Value + 1 > .Max, .Max, .Value + 1)
    End If
    End If
    End If
    End Sub

    Private Sub UpDown1_Change()
    Text1.Text = UpDown1.Value
    End Sub

    Если контрол Text1 - в массиве (т.е. Text1.Index - не Null, а , например, =0), то строку

    If Me.ActiveControl.Name = "Text1" Then

    нужно переписать:

    If Me.ActiveControl.Name = "Text1" AND Me.ActiveControl.Index = 0 Then

    Вопрос:

    Как (в VB6) передать в массив каталог с файлами, т. е. что бы имена файлов стали индексированными переменными массива.

    Ответ:

    Автор ответа: Смыслов Кирилл

    Использовать Microdoft Scripting Runtime. Пробежаться по списку файлов в папке и заполнить динамический массив.

    Вопрос:

    При установке MSDN ия Visual Studio 6.0 в конце установки, после копирования файлов выдается сообщение об ошибке:
    "CloseCollection g_ccolCollection.Open(collectionname) dwError=7"
    Что делать?

    Ответ:

    Автор ответа: SysOp

    У меня был похожий глюк. Точно не помню, такая ли ошибка выдавалась или нет, но MSDN не устанавливалась (точнее, все файлы копировались на винчестер, но установка завершалась с ошибкой и MSDN не вызывалась из VB). Экспериментално установил, что:

    - если на голый HDD установить систему (я пользуюсь Win98SE), а потом сразу установить Visual Studio 6 и MSDN, то все нормально.

    - если после установки системы установить офис (я пользуюсь Office2000 SR-1), А потом ставить Visual Studio 6 и MSDN, то Visual Studio - ставится, а MSDN - нет.

    В чем причина - выяснять не стал.

    Вопрос:

    Можно ли узнать hwnd и (hdc) у ComboBox, ListBox, и других кнопок, используя АПИшные функции?

    Ответ:

    Автор ответа: Смыслов Кирилл

    Зачем? Проходишь по коллекции контролов на форме и получаешь нужные данные.

    Ответ:

    Автор ответа: Sergey

    Так Microsoft позаботилась о том, чтобы у визуальных компонент ComboBox, ListBox и т.д. было свойство hWnd - дескриптор окна. А API-функция GetDC возвращает дескриптор графического контекста:

    Dim hDC as Long
    hDC = GetDC(ComboBox1.hWnd)

    Ответ:

    Автор ответа: Артем Кривокрисенко

    hdc - легко!

    lngHDC=GetDC(lstMain.hwnd)

    Ну а узнать HWND - это потруднее. Нужно использовать FindWindow или подобные ей. Только зачем оно тебе, если HWND есть у каждого контрола?

    Вопрос:

    В мой "Блокнот" встроен RichTextBox. Пишу в нём, например: "Маша мыла раму." Сохраняю и открываю. Вот что он мне покаяывает:

    {\rtf1\ansi\ansicpg1251\deff0\deftab720{\fonttbl{\f0\fnil MS Sans Serif;}{\f1\froman\fcharset2 Symbol;}{\f2\fswiss\fcharset204{\*\fname MS Sans Serif;}MS Shell Dlg;}}{\colortbl\red0\green0\blue0;}
    \deflang1049\pard\plain\f2\fs17 \'cc\'e0\'f8\'e0 \'ec\'fb\'eb\'e0 \'f0\'e0\'ec\'f3. \par }

    Подскажите, пожалуйста, как мне от этого избавиться и, если в нём такое возможно, поменять цвет шрифта? TextBox мне не подходит, т.к. мой отчёт в него не влазит.

    Ответ:

    Автор ответа: Vladimir [PRC]

    У тебя текст сохраняется в виде RTF с сохранением разметки, цветов и размеров шрифтов, а загружается в виде обычного текстового файла. Используй загрузку/сохранение в одном виде:

    RichTextBox1.SaveFile "имя файла",0 или 1
    RichTextBox1.LoadFile "имя файла",0 или 1
    0 - RTF
    1 - только текст без разметки

    Если необходимо сохранять разметку, то используй RTF.
    Изменить цвет:
    1. Выделяешь текст (можно программно)
    2. RichTextBox1.SelColor = цвет
    Также можно менять шрифт, размер, выделять курсивом и толщиной

    Ответ:

    Автор ответа: malex

    Тебе надо текст из RichTextBox'a сохранять вот так:

    Dim FN As Integer
    FN = FreeFile
    Dim FName As String
    FName = "C:\Text.txt"
    Open FName For Output As #FN
    Print #FN, RichTextBox1.Text
    Close #FN

    У меня работает...

    Ответ:

    Автор ответа: Sergey

    Тебе нужно указать явно тип создаваемого файла:

    RichTextBox1.SaveFile sMyPath,rtfText

    Правда, при этом пропадает все форматирование.

    Ответ:

    Автор ответа: Артем Кривокрисенко

    А как ты сохраняешь? Если стандартным методом РичТекстБокса, то сливай бензин и глуши мотор. Он сохраняет все в формате *.rtf. А чтоб сохранить Text, используй следующий код:

    Public Function LoadTextFile(Path As String) As String
    Dim strFile As String

    Open Path For Binary As #1
    strFile = Space$(LOF(1))
    Get 1, , strFile
    Close #1
    LoadTextFile = strFile
    End Function

    Public Function SaveTextFile(Path As String, Text As String)
    Open Path For Output As #1
    Print #1, Text
    Close #1
    End Function

    Сохраняешь так:

    SaveTextFile "C:\1.txt", rtbMain.Text

    И усе.

    Ну я поменять цвет шрифта - проще простого!

    With rtbMain
    .selstart=0
    .sellength= len(.text)
    .selcolor=vbblue
    end with

    И весь текст станет синим. Ну а выделяя не весь текст, а его часть, можно сделать текст разноцветным.
    Также можно поменять "жирность" текста (SelBold), курсивность, подчеркнутость, размер, шрифт текста (SelItalic, SelUnderline, SelSize, SelFont соответственно) (точно названия свойств не помню, так что мог ошибиться).

    Вопрос:

    Как програмно подключится к сетевому ресурсу в локальной сети, вводя програмно имя пользователя и пароль, и получить ответ о подключении или неподключении.

    Ответ:

    Автор ответа: Sergey Morenets

    Если не хочешь использовать кучу API ф-ций, то самое простое так:

    Shell "net use h: \\SERVER\SHARE password"

    Dim fs As Object
    Set fs = CreateObject("Scripting.FileSystemObject")
    if not fs is Nothing Then
    if fs.DriveExists("h") Then
    'OK
    Else
    'Ошибка
    End If
    End If
    set fs = Nothing

    Вопрос:

    Нужно на принтере вывести простой текст, но так, чтобы он был перевернут кверх ногами.

    Ответ:

    Автор ответа: Vir

    Первый способ: Перевернуть лист.
    Другой способ. Немножко муторный, но какой есть. На форме имеешь скрытый Picture1 со свойством AutoRedraw = True, ScaleMode=1,BorderStyle=0. Код приблизительно такой:

    str="Привет!!!"
    picture1.width=TextWidth(str)
    picture1.height=TextHeight(str)

    for i=0 to picture1.scaleHeight
    for j=0 to picture1.scalewidth
    col=picture1.point(j,i)
    printer.pset (j,TextHeight(str)-i),col
    next
    next
    printer.enddoc

    Или можно API, которая переворачивает текст на любой угол, зная hDC (printer.hDC), код вроде был в рассылке или посмотри на сайте VBNET.Ru.

    Вопрос:

    Как можно запретить гриду изменять подписи к полям?
    На форме контрол DataGrid связанный с ADODC и TreeView. Есть элемент TabStrip с кучей вкладок. Когда кликаешь на вкладке TabStrip, ADODC принимает новый рекордсет из другой таблицы DataGrid, перестраивается на другую таблицу. Фрагменты кода инициализации Грида.

    'здесь привязываю грид к новому источнику
    Adodc1.RecordSource = strsql
    Adodc1.Refresh
    Set DataGrid1.DataSource = Adodc1
    'а здесь выставляю подписи к столбцам из другой таблицы
    rst.Source = "select * from t_filds where table_name='" & curTable & "'"
    rst.Open
    Do Until rst.EOF
    DataGrid1.Columns(rst.Fields(1).Value).Caption = rst.Fields(2).Value
    rst.MoveNext
    Loop

    На гриде после этого все подписи по-человечески. Проблема в следующем: как только я обновляю источник данных (пользователь выбрал другой "нод" в TreeView и надо отразить данные из той же таблицы, но другой фильтр), у меня слетают "человеческие" подписи и берутся из имён столбцов в базе данных. Как можно запретить гриду изменять подписи к полям? Ведь если в режиме дизайна их установить, то при изменении источника они не меняются!

    Ответ:

    Автор ответа: Kuznetsoft

    Если в базе есть таблица "Table1" с полями "Field1" и "Field2", можно получить набор записей с заданными именами полей:

    "SELECT [Field1] AS Name, [Field2] AS Age FROM Table1"

    При выполнении такого запроса возвращается набор записей с названиями полей "Name" и "Age". Если указать гриду в качестве источника данных такой набор, он возмет названия для столбцов соответствующии: "Name" и "Age".

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 181.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск! Присылайте коды!!!!!!
    Читайте!

    Содержание выпуска

    • Книги

    • Эксперт

    • Диалог завершения работы
    • txt To exe
    • Получение CRC

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти здесь.

    наверх

    Эксперт

    - Привет, Серый.
    - Угу, привет. Ты проходи, садись, я щас, с функцией тут разберусь...
    - Да я на момент. Вопросец имеется.
    - Вопросец, вопросец... Так, тут переменная не объявлена... Вопросец... С вопросами в систему, к экспертам... А тут точку не поставил! Вот она где, соб-бака!!
    - Ты че, какая система? Ты о чем?
    - О! Все, работает... Чего ты говоришь?
    - Ты про каких это экспертов тут заикаешься?
    - А-а. А ты что, первый раз слышишь, что ли? Ты на СообЧа бывал?
    - Где?!!
    - Да вот, гляди. Щас соединимся... Во! http://soobcha.ru, зришь?
    - М-да... Занятно. Так я с вопросом к тебе...
    - А я вот и говорю: туда иди, в систему "Эксперт", там ответят.
    - Это чайники, что ли, ответят?
    - Не сомневайся, ответят. Там у них такое наворочено... Короче, ты по почте вопрос свой задаешь - и все:)))))) Больше не изволь беспокоиться, там они сами будут искать ответ на твой вопрос. А через некоторое время вывалят тебе на ящик не один, а несколько ответов. Пользуйся и радуйся:)
    - А чего это они там такие добрые да услужливые? У них чего, своих проблем нет? Сколько я должен платить за такое трогательное беспокойство?
    - Ну, это немного. Меньше, чем ты думаешь:) Тебе достаточно только подтвердить правильный ответ. Давишь на соответствующую ссылку, дескать, вот этот ответ мне понравился, помог, и я доволен. Просто пустое письмо засылаешь к ним, и вся оплата. А если хочешь у них экспертом стать, то пожалуйста, регистрируйся и отвечай на вопросы.
    - Кем? Экспертом?
    - А что? Что-то ты ведь знаешь, не вчера за комп сел.
    - А на фига мне это надо? Разбираться с чужими проблемами... У меня своих - хоть отбавляй...
    - Ага. Вот ты только что спрашивал: а сколько? И если уж ты со своими проблемами обращаешься к людям, то ведь надеешься, что тебе помогут. А сам-то что, влом, что ли, помочь кому-то? Да ладно! Тебя, вобщем-то, никто и не тянет, не заставляет. А вот те, кому интересно, кому не жаль поделиться, те там и работают. Я, между прочим, давно уже с ними.
    - В смысле, экспертом, что ли, заделался? И сколько тебе платят?
    - А ты не прикалывай. Там никто никому не платит. А вот конкурсы, между прочим, проводят, и не хилые. Представляешь, за лучший ответ дают бесплатно три месяца платного хостинга, да еще домен регистрируют. За просто так. А вот тебе, если ты задашь самый лучший вопрос, тоже приз может выгореть.
    - Это как: лучший? На который никто ответить, что ли, не сможет? Так я щас таких вопро...
    - Причем тут это? Просто ты, если вопрос пишешь к ним, так сподобься хоть запятые в нужных местах поставить, там, грамотно, короче, обрисуй свой трабл.
    - Ну ладно, въехал. Ты мне вот лучше помоги с моим траблом. Мой Фотошоп не хочет по русски работать...
    - Ха, так этот трабл там уже сколько раз появлялся. У них на сайте и ответ есть... Вот, любуйся: Заходим в редактор реестра (regedit.exe). Находим ключ HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\Nls\Codepage В нем изменяем значение параметра 1252 с cp_1252.nls на cp_1251.nls. Перезагружаемся...
    - Понял... погоди, запишу...
    - Да чего записывать? Шагай домой, входи на сайт и копируй...
    - Да я ссылку запишу... Слушай, а как там в эту систему вопрос задать? Вообще, как она работает?
    - Так тут же, на сайте, все есть. А вообще, можешь по почте пустое письмо загнать на mailto:reply.infoexpert@soobcha.ru, и получишь всю необходимую инфу. А вообще, ты лучше в следующий раз с вопросами не ко мне, а туда. Может, я и отвечу там.
    - А не проше тебе здесь ответить?
    - Э-э-э... Там я баллы зарабатываю...
    - А это еще зачем?
    - Ладно, мотай. Дома почитаешь, все о них узнаешь. У меня тут халтурка... Давай, пока.
    - Пока. А как ты экспертом там зарегился?
    - Иди, иди! Инфу читай...

    наверх

    Диалог завершения работы

    Этот пример показывает, как отобразить стандартный диалог завершения работы.

    Private Declare Function SHShutDownDialog Lib "shell32" Alias "#60" (ByVal YourGuess As Long) As Long

    Private Sub Form_Load()
    SHShutDownDialog 0
    End Sub

    наверх

    txt To exe

    Довольно интересная штуковина... Создаёт exe из текстового файла. Поулчается консольное приложение, в котором печатается заданный текст.

    Option Explicit

    Public Function HiByte(ByVal wParam As Integer)
    HiByte = wParam \ &H100 And &HFF&
    End Function

    Public Function LoByte(ByVal wParam As Integer)
    LoByte = wParam And &HFF&
    End Function

    Private Sub Command1_Click()
    Dim a(14) As Byte
    Dim i As Integer
    Dim s As String
    Dim tmp As String

    a(0) = 190
    a(1) = 15
    a(2) = 1
    a(3) = 185
    a(6) = 252
    a(7) = 172
    a(8) = 205
    a(9) = 41
    a(10) = 73
    a(11) = 117
    a(12) = 250
    a(13) = 205
    a(14) = 32

    Open "C:\1.txt" For Binary As #1
    a(4) = LoByte(LOF(1))
    a(5) = HiByte(LOF(1))
    s = Space$(LOF(1))
    Get #1, , s
    Close #1

    For i = 0 To 14
    tmp = tmp & Chr(a(i))
    Next
    s = tmp & s

    Open "C:\1.exe" For Binary As #1
    Put #1, , s
    Close #1
    End Sub

    наверх

    Получение CRC

    Функция для подсчёта CRC.

    Public Function GetCRCFromString(strInput As String) As Long
    Dim lngCRC As Long
    Dim abytInput() As Byte
    Dim lngCounter As Long
    Dim lngInputLength As Long
    Const cintUpdateBytes As Integer = 4096

    abytInput = strInput
    lngInputLength = UBound(abytInput)

    ' Construct the CRC table
    ConstructCRCTable

    lngCRC = &HFFFFFFFF

    For lngCounter = 0 To lngInputLength
    lngCRC = UpdateCRC32(lngCRC, abytInput(lngCounter))
    Next lngCounter

    GetCRCFromString = Not lngCRC
    End Function

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Максим

    Ответ ожидается по этому адресу

    Программа подставляет значения в формулу. Исходные данные и результаты расчёта должны быть выведены в виде таблицы: Васик открывает мой "Блокнотик" (в него больше влезает :-) - шлёт в него всё, что надо вывести в таблицу, попутно вставляя HTML тэги - сохраняет в *.html - открывает этот *.html (в перспективе, пока только в ручную) и показывает мне, что у него получилось. Но я не могу столько ждать. Таблица очень большая и грузится долго, а пересчитывать приходиться по нескольку раз. Неужели он сразу не может представить отчёт в HTML без напрасного сохранения?
    И научите его, пожалуйста, как можно открыть HTML файл в Internet Exploreрe. В моей макулатуре почему-то ПРО ЭТО ни слова не сказано. Даже в Интернете этой заветной строчки кода не нашёл.

    Автор вопроса: i-sof@mail.ru

    Ответ ожидается по этому адресу

    Как с помощью нашего любимого VB сделать скриншот и записать его в jpg?

    Автор вопроса: Bell

    Ответ ожидается по этому адресу

    А как в этой функции реализовать циклический сдвиг по кругу?
    Т.е. последний бит передвинуть на место первого ?

    Небольшая функция. Осуществляет сдвиг на n-ное число бит. Параметры функции:
    lValue - Исходное значение
    lNumberOfBitsToShift - Количество бит, на которые нужно сдвинуть число
    lDirectionToShift - Направление сдвига (вправо или влево).

    Public Enum dcShiftDirection
    Left = -1
    Right = 0
    End Enum

    Public Function Shift(ByVal lValue As Long, ByVal lNumberOfBitsToShift As Long, ByVal lDirectionToShift As dcShiftDirection) As Long
    If lDirectionToShift Then
    Shift = lValue * (2 ^ lNumberOfBitsToShift)
    Else
    Shift = lValue \ (2 ^ lNumberOfBitsToShift)
    End If
    End Function

    Автор вопроса: Валера

    Ответ ожидается по этому адресу

    У меня в VBA нет свойства hwnd.
    По GetCapture или GetFocus у контролов у всех одинаковый hwnd, а у ComboBox и др. он равен 0. По коллекции контролов дает только имя, а по нему как найти hwnd? Как же найти DC без hwnd?
    А без него SendMessage не работает.
    А как по классу найти, по "BUTTON" FindWindow дает 0.

    Автор вопроса: Виталий

    Ответ ожидается по этому адресу

    Как поместить на элемент управления (Button, PictureBox, Image) 32-битную иконку?

    Автор вопроса: clayman

    Ответ ожидается по этому адресу

    Никак не могу понять принцип работы с коллекциями классов, помогите разобраться!!!!
    Есть класс работающий с базой данных. Он имет свойства для получения значений: DBName - название БД(путь), Rset - источник записей (запрос), TName - название команды; свойства для чтения: Win - кол-во побед, ..., PTS - кол-во набранных очков; процедура TotalCount - обрабатывающая записи таблицы.
    В код класса добавлена переменная типа collеction и процедуры свойств (Add, Delete, Count, Item, Clear):

    Public Function Add(dValue As clsTeam) As Boolean
    On Error GoTo AddError
    ColTeams.Add dValue
    Add = True
    Exit Function
    AddError:
    Add = False
    End Function
    Public Function Item(index As Long) As clsTeam
    If index < 0 Or index > ColTeams.Count Then
    Err.Raise vbObjectError + 1, "clsTeam", "Индекс вышел за пределы массива"
    Else
    Item = ColTeams.Item(index)
    End If
    End Function

    Задача: Нужно занести в коллекцию(?) класс каждой команды с её свойствами TName, Win, ..., PTS; затем отсортировать по значению PTS (в коллекции?) и вывести результат в Grid.
    И как к обращаться к конкретному классу коллекции с помощью метода Class.Item - у меня ругается что переменная не определена (Item = ColTeams.Item(index))
    Опишите пжлста общий принцип как это сделать.

    Автор вопроса: Vao

    Ответ ожидается по этому адресу

    Видел я тут в Дельфях контрол StringGrid. Имеет ли VB нечто похожее. Если да, то какой компонент надо подключить, а если нет, то как можно яаписывать данные в DataGrid в нужный столбец и строку и при этом не свяяываться с БД?

    Автор вопроса: Максим

    Ответ ожидается по этому адресу

    А есть в VB 6.0 какой-нибудь контрол, чтобы при передачи в него данных из TextBox он их отображал в HTML?

    Автор вопроса: weeeer

    Ответ ожидается по этому адресу

    Как в текстовое окно вставить картинку, точнее как сделать как в чате смайлики
    между текстом?

    Автор вопроса: Макс

    Ответ ожидается по этому адресу

    Каким обраяом можно отлавливать обращения к сетевому принтеру и узнавать имя компа, который чего-то шлёт на печать? Есть ли пример подобной задачи?

    Автор вопроса: Сергей Перехода

    Ответ ожидается по этому адресу

    Как нажать "Alt" + "TAB" програмно при помощи VB 6.0.

    Автор вопроса: Андрей

    Ответ ожидается по этому адресу

    Как програмно соядать контрол PictureBox, и поставить его в нужном месте на форме, намыльте примерчик.

    Автор вопроса: Андрей

    Ответ ожидается по этому адресу

    Люди у кого есть талмут по VB-6, буду преянателе если кто нибудь поделиться такой книжонцией.

    Автор вопроса: Алексей

    Ответ ожидается по этому адресу

    Как можно иябавится от такого глюка: если на child-форме есть меню, даже невидимое, то при открытии этой формы в MDIForm происходит замена исходного меню на меню child-формы.

    Автор вопроса: ODG_Nadvirna

    Ответ ожидается по этому адресу

    В паскале есть тип данных Real который занимает 6 байт памяти, каким образом в VB6 (именно на VB , а не Delphi) можно сделать так, чтобы сохранять числовые данные в файл и они занимали по 6 байт (соответствували Real).

    Ответы:

    Вопрос:

    Люди, ПРОГРАММИСТЫ, скиньте пожалуйста на E – mail (map@buzuluk.esoo.ru) какие-нибудь электронные книги (справки, коды) по VB6 для начинающих.

    Ответ:

    Автор ответа: Капитан Вася

    ftp://ftp.avtograd.ru/users/books/vb6.rar

    Вопрос:

    Написал я, скажем, программу, и хочу что-нибудь получить от того, кто ее использует.
    Как это устроить? Кто-нибудь может поделится знаниями электронной коммерции?

    Ответ:

    Автор ответа: Капитан Вася

    Можно сделать php сайт, где регистрируются пользователи. В проге делаешь конект к Инету и грузишь определённую страцицу с числом (количество использований проги). При заходе на страницу число уменьшается.

    Вопрос:

    Все видели как изменяется, например, размер рисунка в Word'е. А как сделать подобный контрол (или группу)? Мне удалось сделать только самое простое - увеличивать или уменьшать число кликами по стрелкам. Но еще хочется увеличивать это число с клавиатуры (клавишами управления курсором) и быстрое увеличение (уменьшение) числа - держишь кнопку, оно ияменяется, отпустил - остановилось...

    Ответ:

    Автор ответа: boris_uk

    Кидаешь на форму контрол Label.
    Ставишь свойство формы KeyPreview (это свойство разрешает форме принимать сигналы от клавиатуры в первую очередь).

    Dim i As Integer 'Переменная, которая будет хранить размер числа
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 38 Then 'Стрелка ВВЕРХ
    i = i + 1
    Label1 = i
    ElseIf KeyCode = 40 Then 'Стрелка ВНИЗ
    i = i - 1
    Label1 = i
    End If
    End Sub

    Если что-то не понял пиши boris_uk@ltk.com.ua

    Вопрос:

    При установке MSDN ия Visual Studio 6.0 в конце установки, после копирования файлов выдается сообщение об ошибке:
    "CloseCollection g_ccolCollection.Open(collectionname) dwError=7"
    Что делать?

    Ответ:

    Автор ответа: Alexander

    Если немножко внимательно прочитывать прилагаемые документы, например, к Visual Studio "Readme"-файлы, то найдём ответ. Точное название файла не помню, найти его можно, если указать строку поиска, например, "g_ccolCollection.Open". Хотите - верьте, хотите - нет, но совет там следующий: удалить файл "hhcolreg.dat" в каталоге WINDOWS\HELP, затем повторить инсталляцию. Помогает!

    Вопрос:

    Как можно запретить гриду изменять подписи к полям?
    На форме контрол DataGrid связанный с ADODC и TreeView. Есть элемент TabStrip с кучей вкладок. Когда кликаешь на вкладке TabStrip, ADODC принимает новый рекордсет из другой таблицы DataGrid, перестраивается на другую таблицу. Фрагменты кода инициализации Грида.

    'здесь привязываю грид к новому источнику
    Adodc1.RecordSource = strsql
    Adodc1.Refresh
    Set DataGrid1.DataSource = Adodc1
    'а здесь выставляю подписи к столбцам из другой таблицы
    rst.Source = "select * from t_filds where table_name='" & curTable & "'"
    rst.Open
    Do Until rst.EOF
    DataGrid1.Columns(rst.Fields(1).Value).Caption = rst.Fields(2).Value
    rst.MoveNext
    Loop

    На гриде после этого все подписи по-человечески. Проблема в следующем: как только я обновляю источник данных (пользователь выбрал другой "нод" в TreeView и надо отразить данные из той же таблицы, но другой фильтр), у меня слетают "человеческие" подписи и берутся из имён столбцов в базе данных. Как можно запретить гриду изменять подписи к полям? Ведь если в режиме дизайна их установить, то при изменении источника они не меняются!

    Ответ:

    Автор ответа: Alexander

    Дописать где-то в Form_Load, например,

    DataGrid1.HoldFields

    Вопрос:

    У меня в VBA нет свойства hwnd.
    По GetCapture или GetFocus у контролов у всех одинаковый hwnd, а у ComboBox и др. он равен 0. По коллекции контролов дает только имя, а по нему как найти hwnd? Как же найти DC без hwnd?
    А без него SendMessage не работает.
    А как по классу найти, по "BUTTON" FindWindow дает 0.

    Ответ:

    Автор ответа: Alexander

    Дописать где-то в Form_Load, например,

    DataGrid1.HoldFields

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 184.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск!
    Читайте!

    Содержание выпуска

    • Книги

    • Эксперт

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Один момент из жизни форума: Указатели

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Эксперт

    - Привет, Серый.
    - Угу, привет. Ты проходи, садись, я щас, с функцией тут разберусь...
    - Да я на момент. Вопросец имеется.
    - Вопросец, вопросец... Так, тут переменная не объявлена... Вопросец... С вопросами в систему, к экспертам... А тут точку не поставил! Вот она где, соб-бака!!
    - Ты че, какая система? Ты о чем?
    - О! Все, работает... Чего ты говоришь?
    - Ты про каких это экспертов тут заикаешься?
    - А-а. А ты что, первый раз слышишь, что ли? Ты на СообЧа бывал?
    - Где?!!
    - Да вот, гляди. Щас соединимся... Во! http://soobcha.ru, зришь?
    - М-да... Занятно. Так я с вопросом к тебе...
    - А я вот и говорю: туда иди, в систему "Эксперт", там ответят.
    - Это чайники, что ли, ответят?
    - Не сомневайся, ответят. Там у них такое наворочено... Короче, ты по почте вопрос свой задаешь - и все:)))))) Больше не изволь беспокоиться, там они сами будут искать ответ на твой вопрос. А через некоторое время вывалят тебе на ящик не один, а несколько ответов. Пользуйся и радуйся:)
    - А чего это они там такие добрые да услужливые? У них чего, своих проблем нет? Сколько я должен платить за такое трогательное беспокойство?
    - Ну, это немного. Меньше, чем ты думаешь:) Тебе достаточно только подтвердить правильный ответ. Давишь на соответствующую ссылку, дескать, вот этот ответ мне понравился, помог, и я доволен. Просто пустое письмо засылаешь к ним, и вся оплата. А если хочешь у них экспертом стать, то пожалуйста, регистрируйся и отвечай на вопросы.
    - Кем? Экспертом?
    - А что? Что-то ты ведь знаешь, не вчера за комп сел.
    - А на фига мне это надо? Разбираться с чужими проблемами... У меня своих - хоть отбавляй...
    - Ага. Вот ты только что спрашивал: а сколько? И если уж ты со своими проблемами обращаешься к людям, то ведь надеешься, что тебе помогут. А сам-то что, влом, что ли, помочь кому-то? Да ладно! Тебя, вобщем-то, никто и не тянет, не заставляет. А вот те, кому интересно, кому не жаль поделиться, те там и работают. Я, между прочим, давно уже с ними.
    - В смысле, экспертом, что ли, заделался? И сколько тебе платят?
    - А ты не прикалывай. Там никто никому не платит. А вот конкурсы, между прочим, проводят, и не хилые. Представляешь, за лучший ответ дают бесплатно три месяца платного хостинга, да еще домен регистрируют. За просто так. А вот тебе, если ты задашь самый лучший вопрос, тоже приз может выгореть.
    - Это как: лучший? На который никто ответить, что ли, не сможет? Так я щас таких вопро...
    - Причем тут это? Просто ты, если вопрос пишешь к ним, так сподобься хоть запятые в нужных местах поставить, там, грамотно, короче, обрисуй свой трабл.
    - Ну ладно, въехал. Ты мне вот лучше помоги с моим траблом. Мой Фотошоп не хочет по русски работать...
    - Ха, так этот трабл там уже сколько раз появлялся. У них на сайте и ответ есть... Вот, любуйся: Заходим в редактор реестра (regedit.exe). Находим ключ HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\Nls\Codepage В нем изменяем значение параметра 1252 с cp_1252.nls на cp_1251.nls. Перезагружаемся...
    - Понял... погоди, запишу...
    - Да чего записывать? Шагай домой, входи на сайт и копируй...
    - Да я ссылку запишу... Слушай, а как там в эту систему вопрос задать? Вообще, как она работает?
    - Так тут же, на сайте, все есть. А вообще, можешь по почте пустое письмо загнать на mailto:reply.infoexpert@soobcha.ru, и получишь всю необходимую инфу. А вообще, ты лучше в следующий раз с вопросами не ко мне, а туда. Может, я и отвечу там.
    - А не проше тебе здесь ответить?
    - Э-э-э... Там я баллы зарабатываю...
    - А это еще зачем?
    - Ладно, мотай. Дома почитаешь, все о них узнаешь. У меня тут халтурка... Давай, пока.
    - Пока. А как ты экспертом там зарегился?
    - Иди, иди! Инфу читай...

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 02.08.2003 10:00 | Раздел: ActiveX контролы | Автор: Сытник Сергей

    Tray ActiveX Control 2.0 - Полностью переписанная версия уже ставшего популярным контрола. Контрол приобрел новые методы и свойства, и внушительный набор событий. Контрол умеет добавлять, удалять, менять и анимировать иконку в трее.

    Дата: 02.08.2003 08:06 | Раздел: Статьи по VB | Автор: Шатохина Н.А.

    Рекомендации по разработке библиотеки классов - Рекомендации призваны помочь разработчикам библиотеки классов решить проблему выбора между различными решениями. Возможны ситуации, в которых для создания хорошей библиотеки вам потребуется пренебречь этими рекомендациями разработки. Такие случаи должны быть редки, и важно, чтобы то или иное решение было строго обосновано. В этом разделе представлены рекомендации по присваиванию имен и использованию типов в .NET Framework, а также рекомендации по реализации общих схем разработки.

    Дата: 31.07.2003 10:47 | Раздел: Примеры кода | Автор: Kir Alper

    SpyWin - Шпион, следящий за включением/выключением компьютера

    Дата: 30.07.2003 11:32 | Раздел: Примеры кода | Автор: Половый Александр

    Test - Эта программка-шутка позволит Вам ответить на следующий вопрос: любите ли Вы программировать на VB?

    Дата: 30.07.2003 08:24 | Раздел: ActiveX контролы | Автор: sKit

    Лейбл с тенью - Лейбл с тенью

    Дата: 30.07.2003 08:24 | Раздел: Примеры кода | Автор: InFeRn0

    TextBoxLines - Пример работы со строками в TextBox'е: чтение определённой строки, подсчёт строк, удаление/замена определённой строки, добавление строки... Готовый модуль с функциями можно подогнать и под RichTextBox...

    Дата: 29.07.2003 12:10 | Раздел: Примеры кода | Автор: CyRax

    BP API ToolBar 1.0 - Создание тулбара с использованием Win 32 API.

    Дата: 29.07.2003 07:52 | Раздел: Примеры кода | Автор: Смотров Андрей

    Арканоид - На основе этой игры можно сделать очень хорошую 2D игру.

    Дата: 28.07.2003 11:06 | Раздел: Статьи по VB | Автор: Viktor Shatokhin

    Понимание Infosets - Рассматриваются наиболее важные типы информационных элементов и их свойства, преобразование между свойствами Infoset и формат сериализации, определенный спецификациями Расширяемого языка разметки (XML) 1.0 и Пространствами имен в XML, и взаимоотношения между Infoset и программными API XML.

    Дата: 28.07.2003 07:52 | Раздел: Примеры кода | Автор: Смотров Андрей

    Редактор 3D объектов - ПРостенький редактор трёхмерных объектов...

    Дата: 28.07.2003 07:52 | Раздел: Примеры кода | Автор: Смотров Андрей

    KeyEditor - Показывает, какие клавиши нажаты.

    Последние 20 тем форума на VBNet.Ru:

    11:49 / 4 авг. Реверс байт | Хитов: 5 | Ответов: 0
    11:00 / 4 авг. А как получить доступ данным активного экземпля... | Хитов: 6 | Ответов: 1
    10:24 / 4 авг. Как так? | Хитов: 7 | Ответов: 0
    06:16 / 4 авг. А классы наследуются? | Хитов: 18 | Ответов: 1
    05:43 / 4 авг. Рацпредложение | Хитов: 13 | Ответов: 0
    05:41 / 4 авг. Только самым серьезным специалистам! | Хитов: 24 | Ответов: 1
    04:40 / 4 авг. Помогите!!! (не VB) | Хитов: 27 | Ответов: 3
    04:30 / 4 авг. Всем: Небольшой опрос | Хитов: 28 | Ответов: 1
    01:42 / 4 авг. manifest >>> exe | Хитов: 22 | Ответов: 1
    00:56 / 4 авг. Где можно достать справочник по сообщения windows? | Хитов: 24 | Ответов: 3
    00:02 / 4 авг. Будущее .NET Framework | Хитов: 24 | Ответов: 2
    21:33 / 3 авг. Новое сообщение без темы | Хитов: 1 | Ответов: 0
    19:49 / 3 авг. Button Click | Хитов: 37 | Ответов: 1
    18:32 / 3 авг. winsock | Хитов: 31 | Ответов: 1
    17:51 / 3 авг. Не пинайте меня, я опять про hutdown WinXP | Хитов: 29 | Ответов: 2
    17:09 / 3 авг. Нефиг_Нафиг_Пофиг | Хитов: 7 | Ответов: 1
    09:56 / 3 авг. Помогите с принтером... | Хитов: 25 | Ответов: 1
    08:44 / 3 авг. Collection & Object required | Хитов: 20 | Ответов: 2
    18:19 / 2 авг. Помогите с сортировкой | Хитов: 31 | Ответов: 3
    14:43 / 2 авг. Кому охота делать сайт? | Хитов: 27 | Ответов: 2

    Последние поступления в Библиотеку кодов:

    Перевод числа в другую систему счисления (78)

    Новости от VBNet-чиков!:

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Новости сайта MSDN

    наверх

    Новости сайта GotdotNet

    Новые статьи:

    наверх

    Новости сайта dotSite

    Новые статьи:

    • Класс для работы с последовательным портом

    Новые примеры:

    наверх

    Один момент из жизни форума: Указатели

    Вопрос:
    Автор вопроса: CyRax

    Просто захотелось проверить кто знает три VB-шных функции: ObjPtr, StrPtr и VarPtr. Которые являются указателями(pointer) на адрес памяти:

    ObjPtr - Объекта
    StrPtr - Строчной
    VarPtr - Числовой переменных.

    Пример:
    В API-шных ф-ях бывает когда нужно передать параметром не саму переменную, а адрес на неё. Возьмём к примеру тип:

    typedef struct { // cc
    DWORD lStructSize;
    HWND hwndOwner;
    HWND hInstance;
    COLORREF rgbResult;
    COLORREF* lpCustColors;
    DWORD Flags;
    LPARAM lCustData;
    LPCCHOOKPROC lpfnHook;
    LPCTSTR lpTemplateName;
    } CHOOSECOLOR;

    А если по русски (на VB):

    Type CHOOSECOLOR
    lStructSize As Long
    hwndOwner As Long
    hInstance As Long
    rgbResult As Long
    lpCustColors As Long
    flags As Long
    lCustData As Long
    lpfnHook As Long
    lpTemplateName As String
    End Type

    Здесь "COLORREF* lpCustColors" - указатель на адрес.
    Подозреваю что знак "*" в Си++ этим и является.
    Но на Си++ это делается так:

    Dim HandleToMemory As Long, PointerToMemory As Long, CustomColors(15) as Long
    Dim cc As CHOOSECOLOR
    HandleToMemory = GlobalAlloc(GMEM_MOVEABLE Or GMEM_ZEROINIT, 64)
    PointerToMemory = GlobalLock(HandleToMemory)
    ' 16 элементов по 4 байта
    CopyMemory ByVal PointerToMemory, CustomColors(0), 64
    cc.lpCustColors = PointerToMemory

    На VB же это решается гораздо проще:

    cc.lpCustColors = VarPtr(CustomColors(0))

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Олег

    Ответ ожидается по этому адресу

    По мере изучения VB столкнулся с двумя проблемами: 1) Нужно из формы запустить посторонний exe-шник с ключами, например winrar.exe 2) Часто встречал, что в VB-шных прогах для вывода отчетов использовался Word. Заранее созданный шаблон имел *.doc формат. Причем для заполнения данными в нужные ячейки таблицы помещали так называемые маркеры. Например: Поставщик: %001 Покупатель: %002 и т.п. Вот и я бы хотел реализовать нечто подобное в своих прогах.

    Автор вопроса: Maxim

    Ответ ожидается по этому адресу

    Почему поле отправки почты по средствам VB в WinXP на почтовый ящик приходит всякая тарабарщина, в качестве исходника испольяовал MailSender.

    Автор вопроса: Anatol

    Ответ ожидается по этому адресу

    При работе в Internet по модему система стала виснуть,если яакрываю страницу крестиком в правом верхнем углу страницы. Кто-нибудь янает, в чем дело?

    Автор вопроса: Сергей Гаан

    Ответ ожидается по этому адресу

    У меня тут такая проблема - не работает SQL-запрос с предикатом LIKE. Вот код:

    Set db = New ADODB.Connection
    db.ConnectionString = "Driver=Microsoft Access Driver (*.mdb);DBQ=" & App.Path & "\MP3Base.mdb"
    db.Open
    Set DynSet = New ADODB.Recordset
    DynSet.ActiveConnection = db
    SQL = "SELECT * FROM Таблица1 WHERE Путь LIKE '*чего-то там*'"
    DynSet.Open SQL

    Все проходит без ошибок, но записи в рекордсет не возвращаются, хотя я точно знаю, что в базе они есть. Причем если указать не шаблон, а конкретное слово, то все нормально. Подскажите, пожалуйста, в чем проблема.

    Автор вопроса: clayman

    Ответ ожидается по этому адресу

    Подскажите пожалуйста такую вещь - есть процедура, которая выделяет цветом определённый диапазон ячеек в MSFlexGrid, но при щелчке по любой из ячеек выделение цветом теряется. Как зафиксировать цвет выделеных ячеек? Процедура ниже...

    Sub SelLineGrid()
    Dim ir As Integer, istr As Integer 'номер строки
    ir = 1
    Do Until ir = 6
    If flxDivizion.TextMatrix(ir, 1) = txtTeam Then istr = ir
    ir = ir + 1
    Loop
    flxDivizion.row = istr
    flxDivizion.Col = 0
    flxDivizion.RowSel = istr
    flxDivizion.ColSel = 7
    flxDivizion.BackColorSel = RGB(150, 150, 250)
    End Sub

    Ответы:

    Вопрос:

    Нужен контрол или код для такой операции (она сплошь и рядом в броузерах и крупных приложениях): есть два обьекта, разделенные вертикальной линией (например, TreeView и Listbox). Если взятся за эту линию, то можно, пропорционально изменить длину окна каждого элемента.

    Ответ:

    Автор ответа: Alexander

    Пример как-то довольно давно был на
    http://www.codeguru.com/vb/articles/1634_codedb.zip
    Выдержка сопроводиловки:
    ----------------
    С разрешения Chris Eastwood (mailto:chris@eastwood60.freeserve.co.uk),
    автора программы VBCodeLibrary, её свободно
    распространяемая версия вместе с исходным кодом размещена на нашем сайте.
    Приглашаю на новую страницу проекта CodeLibrary. Если Вы усовершенствуете
    эту
    программу - присылайте ваши варианты исходников, они будут опубликованы.
    Сама база пополнена новыми исходными кодами (количество записей 188).
    ---------------
    Сейчас это сайт http://vbrussian.com

    Вопрос:

    Как сделать так, чтобы форма при активации (по таймеру), "вставала" поверх всех окон?

    Ответ:

    Автор ответа: Alexander

    Напиши:
    Form1.ZOrder

    Вопрос:

    Есть программа, в ней в качстве фона формы используются картинки в формате JPG, которые загружаються из указаной папки, при этом нужно эту папочку с картинками поставлять с программой, можно ли какм то образом эти картинки вшить в екзешник, чтобы избавиться от этого неудобства?

    Ответ:

    Автор ответа: Alexander

    Для этого в проекте используется VB Resource Editor (Add-Ins). Меню - "Open a Custom Resource", например.

    Вопрос:

    Почему когда пишу из массива в файл по For...Next все ок, но тормоза страшные (сами проверьте на файлике метра в три), а Put #1,,TMP -- моментально, но в конец файла дописывается лишний символ с кодом ноль. Функция Left работать отказалась на отрез...
    Что делать?

    P.S. То что можно просто скопировать файл test в test.in... Просто код упрощен для понимания, а так данные по идее будут преобразовываться. Заранее благодарен за ответ.

    Option Explicit
    Dim Str() As Byte
    Dim X As Long
    Dim Y As Long
    Dim TMP() As Byte
    Dim M

    Private Sub Form_Load()
    Me.Show
    Me.Refresh
    DoEvents

    Open "c:\test" For Binary As #1
    X = FileLen("c:\test")
    ReDim Str(X)
    ReDim TMP(X)
    Get #1, , Str
    Close

    For Y = 0 To X - 1 Step 0
    TMP(Y) = Str(Y)
    Y = Y + 1
    Next Y

    Open "c:\test.in" For Binary As #1
    'Так все ок, но тормозза...
    For Y = 0 To X - 1 Step 0
    Put #1, , TMP(Y)
    Y = Y + 1
    Next Y
    Close

    'Так быстро, но в конец файла дописывается лишний символ
    'с кодом 0
    Put #1, , TMP

    MsgBox "OK", , ""
    End
    End Sub

    Ответ:

    Автор ответа: Alexander

    Всё правильно! Для быстрой записи нельзя ожидать скорости, когда читаешь или пишешь по 1 байту.
    Организуй буфер предварительного накопления, а потом - раз, и в дамки!

    Вопрос:

    Как в Access 97 создать представление из VB6?

    Ответ:

    Автор ответа: Alexander

    Нпример, так:

    > strShape = _
    > SHAPE APPEND New adVarWChar(8) As STAFF_CODE,
    > New adVarWChar(20) As STAFF_NAME,
    > ((SHAPE APPEND New adVarWChar(8) As SALESMAN_CODE,
    > New adVarWChar(10) As MEMBER_CODE,
    > New adVarWChar(40) As MEMBER_NAME,
    > New adVarWChar(11) As INVOICE_NO,
    > New adDate as TRANS_DATE,
    > ((SHAPE APPEND New adDate as TRANS_DATE,
    > New adCurrency As SALESMAN_COMM_VOL,
    > New adCurrency As SALESMAN_COMM_AMT,
    > New adCurrency As INVOICE_AMOUNT) AS Child2
    > RELATE TRANS_DATE to TRANS_DATE)) AS Child1
    > RELATE STAFF_CODE to SALESMAN_CODE)
    >
    или так:

    Эта команда предоставляет два метода создания связи главный/подчиненный: Append и Compute. Для создания иерархических recordset-ов метод Append использует синтаксис SHAPE и RELATE. Этот метод, используя определенное преобразование колонок, позволяет получить связь главный-подчиненный между recordset-ами, созданными двумя разными командами.
    В следующем примере демонстрируется использование иерархических recordset-ов для реализации зависимого списка. В этом случае информация о книгах, написанных определенным автором, представляется как recordset с зависимостью главный/подчиненный между авторами и названиями.
    Public Function Load(ByVal AuthorId As String) As ADODB.Recordset
    Dim c As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim lsSQL As String
    'создание команды shape
    lsSQL = ""
    lsSQL = lsSQL & "SHAPE "
    lsSQL = lsSQL & " {{ call authors_BrowseAll }} "
    lsSQL = lsSQL & " APPEND "
    lsSQL = lsSQL & " ({SELECT * FROM Titles t, TitleAuthor ta "
    lsSQL = lsSQL & " WHERE t.title_id = ta.title_id} "
    lsSQL = lsSQL & " AS titles "
    lsSQL = lsSQL & " RELATE au_id TO au_id)"

    Set c = New ADODB.Connection
    c.Provider =
    "MSDataShape"c.Open"DataProvider=MSDASQL;DSN=pubs;uid=sa;pwd=;database=pubs"

    Set rs = New ADODB.Recordset
    rs.CursorLocation = adUseClient
    rs.Open lsSQL, c

    Set Load = rs

    End Function

    'Windows DNA (Distributed interNet Applications) и т.д.
    'Источник: Создание middleware-компонентов доступа к данным ()
    Есть и другие средства внутри VB. Для начала можно пощупать DE (Data Environment) из разряда визуальных дизайнеров. Очень удобна, но только для экспериментирования.

    Вопрос:

    Программа подставляет значения в формулу. Исходные данные и результаты расчёта должны быть выведены в виде таблицы: Васик открывает мой "Блокнотик" (в него больше влезает :-) - шлёт в него всё, что надо вывести в таблицу, попутно вставляя HTML тэги - сохраняет в *.html - открывает этот *.html (в перспективе, пока только в ручную) и показывает мне, что у него получилось. Но я не могу столько ждать. Таблица очень большая и грузится долго, а пересчитывать приходиться по нескольку раз. Неужели он сразу не может представить отчёт в HTML без напрасного сохранения?
    И научите его, пожалуйста, как можно открыть HTML файл в Internet Exploreрe. В моей макулатуре почему-то ПРО ЭТО ни слова не сказано. Даже в Интернете этой заветной строчки кода не нашёл.

    Ответ:

    Автор ответа: Капитан Вася

    Без сохранения не знаю как(вроде нельзя).
    Открыть файл в инет экслорере(прямо на форме):
    1) Добавь контрол Microsoft Internet Controls(WebBrowser).
    2) поставь его на форму.
    Используй это так:
    имяWebBrowser.Navigate ссылка

    Вопрос:

    Как с помощью нашего любимого VB сделать скриншот и записать его в jpg?

    Ответ:

    Автор ответа: Alexander

    Кстати, очень часто png-формат оказывается гораздо более предпочтительным, чем jpg, особенно если мы делаем фото окна без картинок. А пример фото можно найти на многих сайтах. Кажется, попадался на vbrussian.com.

    Вопрос:

    Как поместить на элемент управления (Button, PictureBox, Image) 32-битную иконку?

    Ответ:

    Автор ответа: Магалясов Виталий

    Как поместить на элемент управления (Button, PictureBox, Image) 32-битную иконку?

    Вопрос:

    Видел я тут в Дельфях контрол StringGrid. Имеет ли VB нечто похожее. Если да, то какой компонент надо подключить, а если нет, то как можно яаписывать данные в DataGrid в нужный столбец и строку и при этом не свяяываться с БД?

    Ответ:

    Автор ответа: Alexander

    Во-первых, связываться с БД вовсе не обязательно! ADO обеспечивает доступ, фактически, к чему годно.
    Во вторых, если рассматривать MsFlexGrid, то там принцип "делай со мной что хочешь".

    Вопрос:

    А есть в VB 6.0 какой-нибудь контрол, чтобы при передачи в него данных из TextBox он их отображал в HTML?

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Microsoft WebBrowser Control

    Вопрос:

    Как в текстовое окно вставить картинку, точнее как сделать как в чате смайлики
    между текстом?

    Ответ:

    Автор ответа: Андрей

    Попробуй Bitblt рисовать прмя в текстбокс

    Ответ:

    Автор ответа: Капитан Вася

    Используй контрол RichTextBox.

    Ответ:

    Автор ответа: VMJ

    Очень просто - используй не TextBox, а RichTextBox - в него можно вставлять картинки...

    Вопрос:

    Как нажать "Alt" + "TAB" програмно при помощи VB 6.0.

    Ответ:

    Автор ответа: Alexander

    Используй
    SendKeys string[, wait]
    В твоём случае это SendMess ("%{TAB}")

    Вопрос:

    Как можно иябавится от такого глюка: если на child-форме есть меню, даже невидимое, то при открытии этой формы в MDIForm происходит замена исходного меню на меню child-формы.

    Ответ:

    Автор ответа: Alexander

    Это не глюк! Любое меню (в MDI, не MDI) в свою очередь может быть генератором событий. Т.е. вы, создавая меню в Child-форме там тоже создаёте возможность генерации событий. Если же вы хотите "сделать меня красиво", то профессионалами предлагается следующий способ:

    Совет 295. Используйте ключевое слово WithEvents для связи форм MDI и MDIChild
    Здесь приводится изящный способ передачи событий, таких как щелчки на панели инструментов или выделение команд меню, из родительской MDI-формы в активную дочернюю MDIChild-форму в многодокументном приложении. Предположим, что MDI-форма содержит элемент управления Toolbar с именем tbrMain, для которого введите следующий код:

    Event ButtonClick(strKey As String)
    Private Sub tbrMain_ButtonClick(ByVal _
    Button As MSComctlLib.Button)
    RaiseEvent ButtonClick(Button.Key)
    End Sub

    Затем напишите такой код для каждой MDIChild-формы, которая должна получить событие ButtonClick:

    Private WithEvents m_mdiParent As mdiParent
    Private Sub tbrMain_ButtonClick(ByVal _
    Button As MSComctlLib.Button)
    RaiseEvent ButtonClick(Button.Key)
    End Sub

    Private Sub Form_Acitivate()
    Set m_mdiParent = mdiParent
    End Sub
    Private Sub Form_Deactivate()
    Set m_mdiParent = Nothing
    End Sub

    Private Sub m_mdiParent_ButtonClick (strKey As String)
    ' Пример кода, в котором значения
    ' Button.Key соответствуют кнопкам
    ' New, Change, Delete и Save
    Select Case strKey
    Case "New"
    PerformNewAction
    Case "Change"
    PerformChangeAction
    Case "Delete"
    PerformDeleteAction
    Case "Save"
    PerformSaveAction
    End Select
    End Sub

    Использование этой подпрограммы аналогично объявлению элемента управления с именем m_mdiParent, у которого есть событие ButtonClick. Используйте события Activate и Deactivate, чтобы форма MDIChild являлась единственной, которая бы получала событие ButtonClick.

    Ответ:

    Автор ответа: VMJ

    Это не глюк, а нормальное поведение. Кстати это относится ик Toolbox-ам.
    В Вашем случае я обычно содаю меню только на MDI форме, а события в дочерних формах запускаю отсылкой к функциям или подпрограммам на этих формах, открытых для общего доступа.

    Вопрос:

    В паскале есть тип данных Real который занимает 6 байт памяти, каким образом в VB6 (именно на VB , а не Delphi) можно сделать так, чтобы сохранять числовые данные в файл и они занимали по 6 байт (соответствували Real).

    Ответ:

    Автор ответа: Alexander

    В отличие от Паскаля, в VB есть всё :-)
    Если Вы хотите иметь данные, например, длиной, 3,2 байта, то это у нас есть. Назывется оно Type-statement. И пишите его в файл. Хотя, явно это не лучший способ, имея такую мощнейшую систему, как VB с ADO :-)

    Ответ:

    Автор ответа: P@Ssword

    Насколько я знаю, в Пасцале Real обрабатывается процессором, а не мат. сопроцессором, и только потому, что Real сопроцессором не поддерживается из-за своей нестандартной длины. А в Басике практически все типы имеют стандартную длину (1,2,4,8 бит). Так что если надо прочитать из файла значения, записанные из Дэльфы, то надо узнать формат хранения Real, прочитать побайтно и считать. А если за пределы Басика не выходить, то можно разделять число, например, на Long и Integer, и записывать в два хода.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 185.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    За отсутствием кодов и неимением времени на создание новых кодов, пришлось этот раздел упразднить... Теперь будет публиковаться раздел "НеЧаВо" - Не Часто задаваемые Вопросы.
    Читайте!

    Содержание выпуска

    • Книги

    • Эксперт

    • НеЧаВо

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти здесь.

    наверх

    Эксперт

    - Привет, Серый.
    - Угу, привет. Ты проходи, садись, я щас, с функцией тут разберусь...
    - Да я на момент. Вопросец имеется.
    - Вопросец, вопросец... Так, тут переменная не объявлена... Вопросец... С вопросами в систему, к экспертам... А тут точку не поставил! Вот она где, соб-бака!!
    - Ты че, какая система? Ты о чем?
    - О! Все, работает... Чего ты говоришь?
    - Ты про каких это экспертов тут заикаешься?
    - А-а. А ты что, первый раз слышишь, что ли? Ты на СообЧа бывал?
    - Где?!!
    - Да вот, гляди. Щас соединимся... Во! http://soobcha.ru, зришь?
    - М-да... Занятно. Так я с вопросом к тебе...
    - А я вот и говорю: туда иди, в систему "Эксперт", там ответят.
    - Это чайники, что ли, ответят?
    - Не сомневайся, ответят. Там у них такое наворочено... Короче, ты по почте вопрос свой задаешь - и все:)))))) Больше не изволь беспокоиться, там они сами будут искать ответ на твой вопрос. А через некоторое время вывалят тебе на ящик не один, а несколько ответов. Пользуйся и радуйся:)
    - А чего это они там такие добрые да услужливые? У них чего, своих проблем нет? Сколько я должен платить за такое трогательное беспокойство?
    - Ну, это немного. Меньше, чем ты думаешь:) Тебе достаточно только подтвердить правильный ответ. Давишь на соответствующую ссылку, дескать, вот этот ответ мне понравился, помог, и я доволен. Просто пустое письмо засылаешь к ним, и вся оплата. А если хочешь у них экспертом стать, то пожалуйста, регистрируйся и отвечай на вопросы.
    - Кем? Экспертом?
    - А что? Что-то ты ведь знаешь, не вчера за комп сел.
    - А на фига мне это надо? Разбираться с чужими проблемами... У меня своих - хоть отбавляй...
    - Ага. Вот ты только что спрашивал: а сколько? И если уж ты со своими проблемами обращаешься к людям, то ведь надеешься, что тебе помогут. А сам-то что, влом, что ли, помочь кому-то? Да ладно! Тебя, вобщем-то, никто и не тянет, не заставляет. А вот те, кому интересно, кому не жаль поделиться, те там и работают. Я, между прочим, давно уже с ними.
    - В смысле, экспертом, что ли, заделался? И сколько тебе платят?
    - А ты не прикалывай. Там никто никому не платит. А вот конкурсы, между прочим, проводят, и не хилые. Представляешь, за лучший ответ дают бесплатно три месяца платного хостинга, да еще домен регистрируют. За просто так. А вот тебе, если ты задашь самый лучший вопрос, тоже приз может выгореть.
    - Это как: лучший? На который никто ответить, что ли, не сможет? Так я щас таких вопро...
    - Причем тут это? Просто ты, если вопрос пишешь к ним, так сподобься хоть запятые в нужных местах поставить, там, грамотно, короче, обрисуй свой трабл.
    - Ну ладно, въехал. Ты мне вот лучше помоги с моим траблом. Мой Фотошоп не хочет по русски работать...
    - Ха, так этот трабл там уже сколько раз появлялся. У них на сайте и ответ есть... Вот, любуйся: Заходим в редактор реестра (regedit.exe). Находим ключ HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\Nls\Codepage В нем изменяем значение параметра 1252 с cp_1252.nls на cp_1251.nls. Перезагружаемся...
    - Понял... погоди, запишу...
    - Да чего записывать? Шагай домой, входи на сайт и копируй...
    - Да я ссылку запишу... Слушай, а как там в эту систему вопрос задать? Вообще, как она работает?
    - Так тут же, на сайте, все есть. А вообще, можешь по почте пустое письмо загнать на mailto:reply.infoexpert@soobcha.ru, и получишь всю необходимую инфу. А вообще, ты лучше в следующий раз с вопросами не ко мне, а туда. Может, я и отвечу там.
    - А не проше тебе здесь ответить?
    - Э-э-э... Там я баллы зарабатываю...
    - А это еще зачем?
    - Ладно, мотай. Дома почитаешь, все о них узнаешь. У меня тут халтурка... Давай, пока.
    - Пока. А как ты экспертом там зарегился?
    - Иди, иди! Инфу читай...

    наверх

    НеЧаВо

    Вопрос:

    В Excel 2000 при копировании листа

    Sheets("Name").Copy After:="NameA"

    Где-то на 26-31-й копии возникает ошибка #1004 и лист не копируется. Что это за глюк? Как с ним бороться?

    Ответ:

    Используй следующий метод: не Sheets("Name").Copy, а ActiveSheet.Copy

    str1 = ActiveSheet.Name + "_svod"
    ActiveSheet.Name = "proverka"
    ActiveSheet.Copy before:=Workbooks(WBN).Worksheets("START")
    ActiveSheet.Copy before:=Worksheets(Worksheets.Count)

    zhebelev

    Вопрос:

    Как сделать, чтобы программа добавлялась в автозагрузку (не в меню "Автозагрузка", а в реестр)?

    Ответ:

    Для этого необходимо создать в разделе реестра HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run строковый параметр. В значении параметра установить путь программы.
    В модуле пишешь:

    Option Explicit
    Public Const REG_SZ As Long = 1
    Public Const REG_DWORD As Long = 4
    Public Const HKEY_LOCAL_MACHINE = &H80000002
    Public Const HKEY_CLASSES_ROOT = &H80000000
    Public Const HKEY_CURRENT_USER = &H80000001
    Public Const HKEY_USERS = &H80000003
    Public Const ERROR_NONE = 0
    Public Const ERROR_BADDB = 1
    Public Const ERROR_BADKEY = 2
    Public Const ERROR_CANTOPEN = 3
    Public Const ERROR_CANTREAD = 4
    Public Const ERROR_CANTWRITE = 5
    Public Const ERROR_OUTOFMEMORY = 6
    Public Const ERROR_INVALID_PARAMETER = 7
    Public Const ERROR_ACCESS_DENIED = 8
    Public Const ERROR_INVALID_PARAMETERS = 87
    Public Const ERROR_NO_MORE_ITEMS = 259
    Public Const KEY_ALL_ACCESS = &H3F
    Public Const REG_OPTION_NON_VOLATILE = 0
    Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
    Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByVal lpSecurityAttributes As Long, phkResult As Long, lpdwDisposition As Long) As Long
    Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
    Declare Function RegQueryValueExString Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, ByVal lpData As String, lpcbData As Long) As Long
    Declare Function RegQueryValueExLong Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Long, lpcbData As Long) As Long
    Declare Function RegQueryValueExNULL Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, ByVal lpData As Long, lpcbData As Long) As Long
    Declare Function RegSetValueExString Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpValue As String, ByVal cbData As Long) As Long
    Declare Function RegSetValueExLong Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpValue As Long, ByVal cbData As Long) As Long
    Declare Function RegDeleteKey& Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String)
    Declare Function RegDeleteValue& Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String)

    'Создание нового ключа (подключа)
    Public Function CreateNewKey(lPredefinedKey As Long, sNewKeyName As String)
    Dim hNewKey As Long
    Dim lRetVal As Long
    lRetVal = RegCreateKeyEx(lPredefinedKey, sNewKeyName, 0&, vbNullString, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0&, hNewKey,
    lRetVal)
    RegCloseKey (hNewKey)
    End Function

    'Запись данных в ключ
    Public Function SetKeyValue(lPredefinedKey As Long, sKeyName As String, sValueName As String, vValueSetting As Variant, lValueType As Long)
    Dim lRetVal As Long
    Dim hKey As Long
    lRetVal = RegOpenKeyEx(lPredefinedKey, sKeyName, 0, KEY_ALL_ACCESS, hKey)
    lRetVal = SetValueEx(hKey, sValueName, lValueType, vValueSetting)
    RegCloseKey (hKey)
    End Function
    Public Function SetValueEx(ByVal hKey As Long, sValueName As String, lType As Long, vValue As Variant) As Long
    Dim lValue As Long
    Dim sValue As String
    Select Case lType
    Case REG_SZ
    sValue = vValue
    SetValueEx = RegSetValueExString(hKey, sValueName, 0&, lType, sValue, Len(sValue))
    Case REG_DWORD
    lValue = vValue
    SetValueEx = RegSetValueExLong(hKey, sValueName, 0&, lType, lValue, 4)

    End Select
    End Function

    'Возвращает значения записанные в ключе
    Public Function QueryValue(lPredefinedKey As Long, sKeyName As String, sValueName As String)

    Dim lRetVal As Long
    Dim hKey As Long
    Dim vValue As Variant

    lRetVal = RegOpenKeyEx(lPredefinedKey, sKeyName, 0, KEY_ALL_ACCESS, hKey)
    lRetVal = QueryValueEx(hKey, sValueName, vValue)
    QueryValue = vValue
    RegCloseKey (hKey)
    End Function

    Function QueryValueEx(ByVal lhKey As Long, ByVal szValueName As String, vValue As Variant) As Long
    Dim a As Integer
    Dim cch As Long
    Dim lrc As Long
    Dim lType As Long
    Dim lValue As Long
    Dim sValue As String

    On Error GoTo QueryValueExError

    'Определение размера и типа считываемых данных
    lrc = RegQueryValueExNULL(lhKey, szValueName, 0&, lType, 0&, cch)
    If lrc <> ERROR_NONE Then a = 0

    Select Case lType
    'Для символьных
    Case REG_SZ:
    sValue = String(cch, 0)
    lrc = RegQueryValueExString(lhKey, szValueName, 0&, lType, sValue, cch)
    If lrc = ERROR_NONE Then
    vValue = Left$(sValue, cch)
    Else
    vValue = Empty
    End If

    'Для числовых
    Case REG_DWORD:
    lrc = RegQueryValueExLong(lhKey, szValueName, 0&, lType, lValue, cch)
    If lrc = ERROR_NONE Then vValue = lValue
    'Для остальных не поддержанных типов данных
    Case Else
    lrc = -1
    End Select

    QueryValueExExit:
    QueryValueEx = lrc
    Exit Function

    QueryValueExError:
    Resume QueryValueExExit
    End Function

    'Удаление значений ключа

    Public Function DeleteValue(lPredefinedKey As Long, sKeyName As String, sValueName As String)

    Dim lRetVal As Long
    Dim hKey As Long

    lRetVal = RegOpenKeyEx(lPredefinedKey, sKeyName, 0, KEY_ALL_ACCESS, hKey)
    lRetVal = RegDeleteValue(hKey, sValueName)
    RegCloseKey (hKey)
    End Function

    'Удаление ключа
    Public Function DeleteKey(lPredefinedKey As Long, sKeyName As String)
    Dim lRetVal As Long
    lRetVal = RegDeleteKey(lPredefinedKey, sKeyName)
    End Function

    В примере написан полный код работы с реестром, если необходимо только записать данные, то лишнее можно убрать.
    Применение:

    Private Sub Command1_Click()
    Dim path As String
    path = "Software\Microsoft\Windows\CurrentVersion\Run"
    CreateNewKey HKEY_LOCAL_MACHINE, path
    SetKeyValue HKEY_LOCAL_MACHINE, path, "Назавание программы", "здесь пишешь полный путь программы", REG_SZ
    End Sub

    Иван

    Вопрос:

    Что бы послать почту, пишу:

    Private Declare Function ShellExecute& Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long)
    Private Declare Function GetDesktopWindow Lib "user32" () As Long

    Private Sub Label1_Click()
    'Выяываем маил с адресом
    Call ShellExecute(0&, "Open", "mailto:" + "ЛОГИН@СЕРВЕР.ru" + "?Subject=" + "'Здесь описана тема...'" + "?body=" + "'Сдесь
    нужно написать сообщение'", "", "", SW_SHOWNORMAL)
    End Sub

    Но в почтовой программе текст 'Сдесь нужно написать сообщение' выводится там где вводится тема. Помогите сделать так чтобы в текстовом поле ияображалать текст

    Ответ:

    Все дело в том что у вас получается след вызываемая комманда:
    mailto:ЛОГИН@СЕРВЕР.ru?Subject=описана тема...?body=Сдесь нужно написать сообщение
    Между Subject и Body должен быть знак (& - амперсанд), а не ? иначе ничего работать небудет!

    Александр

    Вопрос:

    Если на VB написать программу и записать на CD-R, а затем написать соответствующий autorun.inf, чтобы программа запускалась при вставке диска в привод, то если на компьютере нет нужных библиотек (например, msvbvm60.dll), то программа не будет работать. Как быть?

    Ответ:

    Надо просто поместить все необходимые библиотеки в корневой каталог твоего CD. Будет работать.

    Sobic

    Вопрос:

    Как запустить файл .mp3?

    Ответ:

    В разделе формы General Declarations объявляем следующую API-функцию:

    Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long

    'чтобы воспроизвести файл
    Private Sub Command2_Click()
    Call mciExecute("play d:\Music01.mp3")
    End Sub

    'чтобы закрыть файл
    Private Sub Command1_Click()
    Call mciExecute("close d:\Music\01.mp3")
    End Sub

    Иван

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Alex

    Ответ ожидается по этому адресу

    Каким образом можно отловить сигналы с COM порта, например с инфры, подключенного к нему?

    Автор вопроса: Валера

    Ответ ожидается по этому адресу

    Если нет AddressOf инструкции в VBA, то как передать в программу адрес другой программы? Можно ли через VarPtr (имя программы)?

    Автор вопроса: XXX

    Ответ ожидается по этому адресу

    Как сделать, чтобы мою прогу нельзя было закрыть через Ctrl+Alt+Del?

    Автор вопроса: Роганов Владимир

    Ответ ожидается по этому адресу

    В модуле пишу:
    Public Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
    При выполнении выдаётся ошибка: "Constants, fixid-lenght strings, arrays, user defined types and Declare statements not allowed as Public members as object modules". Что делать?

    Автор вопроса: Роганов Владимир

    Ответ ожидается по этому адресу

    Какой контрол будет распологать папки так, как в моём компьюторе(крупные значки, отображать как веб страницу)?

    Автор вопроса: Taras Prikhodko

    Ответ ожидается по этому адресу

    Как получить список всех папок диска в виде полного пути для каждой папки?

    Автор вопроса: Мелёшин Андрей

    Ответ ожидается по этому адресу

    Как сделать Shape1 или Command1 поверх TextBox?

    Автор вопроса: Сергей Гаан

    Ответ ожидается по этому адресу

    У меня вопрос про WindowsXP Visual Style. Как написано в MSDN и Интернете, я создал в папке с программой файл .manifest. Однако программа работает только с включенной опцией совместимости, а если она выключена, то программа вообще не запускается. Я даже пробовал запихнуть этот manifest в exe-файл (с помощью проги PE Explorer). Результат тот же. Кто знает, подскажите что надо сделать, чтобы прога работала без совместимости.

    Автор вопроса: Роман

    Ответ ожидается по этому адресу

    Как можно из приложения написанного на VB6 отключить базу данных от SQL Server Enterprise Manager?

    Автор вопроса: OXYGEN

    Ответ ожидается по этому адресу

    В ресурсах приложения есть несколько файлов формата BMP. Как сделать, чтобы при загруяке формы в контроле picture1.picture проиявольно (!) устанавливалась любая из этих картинок.

    Автор вопроса: OXYGEN

    Ответ ожидается по этому адресу

    Изменяю раямеры формы. Как можно ограничить ресайзинг (форма сжимается до определённых раямеров) и как сделать, чтобы при изменении раямеров формы изменялись раямеры контролов на этой форме?

    Ответы:

    Вопрос:

    Как с помощью нашего любимого VB сделать скриншот и записать его в jpg?

    Ответ:

    Автор ответа: valix

    Ставишь на форму PictureBox:

    'API
    Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC 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 dwRop As Long) As Long
    Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function GetDesktopWindow Lib "user32" () As Long

    'код
    Dim sw As Long, sh As Long
    sw = Screen.Width: sh = Screen.Height
    Picture1.AutoRedraw = True
    Picture1.ScaleMode = vbPixels
    Picture1.Width = sw
    Picture1.Height = sh
    BitBlt Picture1.hDC, 0, 0, sw, sh, GetDC(GetDesktopWindow), 0, 0, vbSrcCopy
    SavePicture Picture1.Image, "c:\screenshot.bmp"

    В jpg стандартными функц. VB сохранить не получится, надо юзать спец. DLL.

    Вопрос:

    А есть в VB 6.0 какой-нибудь контрол, чтобы при передачи в него данных из TextBox он их отображал в HTML?

    Ответ:

    Автор ответа: valix

    Есть компонент такой Microsoft Internet Controls:

    Project > Components > Microsoft Internet Controls

    Кидаешь на форму WebBrowser и пишешь:

    open "c:\temp.htm" for output as #1
    print #1,text1.text;
    close #1;
    webbrowser1.navigate "c:\temp.htm"

    Вопрос:

    Как нажать "Alt" + "TAB" програмно при помощи VB 6.0.

    Ответ:

    Автор ответа: valix

    'API

    Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    Private Const KEYEVENTF_KEYUP = &H2
    Private Const VK_TAB = &H9
    'Код

    keybd_event 18, 0, 0, 0
    keybd_event VK_TAB, 0, 0, 0

    keybd_event VK_TAB, 0, KEYEVENTF_KEYUP, 0
    keybd_event 18, 0, KEYEVENTF_KEYUP, 0

    Вопрос:

    По мере изучения VB столкнулся с двумя проблемами: 1) Нужно из формы запустить посторонний exe-шник с ключами, например winrar.exe 2) Часто встречал, что в VB-шных прогах для вывода отчетов использовался Word. Заранее созданный шаблон имел *.doc формат. Причем для заполнения данными в нужные ячейки таблицы помещали так называемые маркеры. Например: Поставщик: %001 Покупатель: %002 и т.п. Вот и я бы хотел реализовать нечто подобное в своих прогах.

    Ответ:

    Автор ответа: KAS (c)

    Что бы запустить exe'шник:

    shell "winrar.exe -a"

    Ответ:

    Автор ответа: Alexander

    1. Надо использовать Shell:

    Dim ReturnValue, I
    ReturnValue = Shell("calc.exe", 1) ' запуск калькулятора
    AppActivate ReturnValue ' активация калькулятора
    For I = 1 To 100 ' установка счётчика
    SendKeys I & "{+}", True ' посылаем нажатия клавиш
    Next I ' с текущим I
    SendKeys "=", True ' Получаем "Всего"
    SendKeys "%{F4}", True ' Посылаем ALT+F4 для закрытия калькулятора

    2. Пример моего использования Word 97-2002 как "генератора отчётов". В References установим ссылку на Microsoft Word 9.0 Object Library

    Attribute VB_Name = "PrintForm"

    ' agorby@hotmail.com
    Declare Function FindWindow Lib "user32" Alias _
    "FindWindowA" (ByVal lpClassName As String, _
    ByVal lpWindowName As Long) As Long

    Declare Function SendMessage Lib "user32" Alias _
    "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, _
    ByVal wParam As Long, _
    ByVal lParam As Long) As Long

    Const TemplatePath As String = "C:\Program Files\Common Files\Счет.dot"
    Sub InitForm()

    Dim appWD As Word.Application
    Dim nNewIndDoc
    Dim nRow
    nRow = ActiveCell.row
    ' Проверка, выполняется ли Microsoft Word.
    On Error Resume Next ' Отложенный перехват ошибок.
    ' Функция GetObject, вызванная без указания первого аргумента,
    ' возвращает ссылку на экземпляр приложения. Если это приложение
    ' не запущено, возвращается ошибка. Обратите внимание на запятую,
    ' стоящую на месте отсутствующего первого аргумента.
    Set appWD = GetObject(, "Word.Application")
    If Err.Number <> 0 Then 'Word Was Not Running = 429
    Err.Clear ' Очищаем объект Err на случай ошибки.
    Set appWD = CreateObject("Word.Application")
    Else
    DetectWord
    End If
    On Error GoTo 0

    appWD.Visible = False
    appWD.Documents.Add Template:=TemplatePath, NewTemplate:=False

    appWD.Documents.Add Template:=TemplatePath
    appWD.Activate
    appWD.ScreenUpdating = False

    appWD.Selection.Goto What:=wdGoToBookmark, Name:="Плательщик"
    appWD.Selection.TypeText Text:="Мой текст"
    .....

    appWD.ActiveDocument.PrintOut
    appWD.ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges

    End Sub

    Sub DetectWord()
    ' Процедура находит выполняемый Word и регистрирует его.
    Const WM_USER = 1024
    Dim hWnd As Long

    ' Если Word выполняется, этот вызов API возвращает его дескриптор.
    hWnd = FindWindow("OpusApp", 0)
    If hWnd = 0 Then ' 0 означает, что Word не выполняется.
    Exit Sub
    Else
    ' Word выполняется. Используйте функцию API SendMessage, чтобы ввести его в таблицу выполняемых объектов (Running Object Table).
    SendMessage hWnd, WM_USER + 18, 0, 0
    End If
    End Sub

    Вопрос:

    У меня тут такая проблема - не работает SQL-запрос с предикатом LIKE. Вот код:

    Set db = New ADODB.Connection
    db.ConnectionString = "Driver=Microsoft Access Driver (*.mdb);DBQ=" & App.Path & "\MP3Base.mdb"
    db.Open
    Set DynSet = New ADODB.Recordset
    DynSet.ActiveConnection = db
    SQL = "SELECT * FROM Таблица1 WHERE Путь LIKE '*чего-то там*'"
    DynSet.Open SQL

    Все проходит без ошибок, но записи в рекордсет не возвращаются, хотя я точно знаю, что в базе они есть. Причем если указать не шаблон, а конкретное слово, то все нормально. Подскажите, пожалуйста, в чем проблема.

    Ответ:

    Автор ответа: Tatyana L. Hordynskaya

    Попробуй LIKE '%чего-то там%'

    Ответ:

    Автор ответа: Sergey

    А что если переписать запрос так:

    SQL = "SELECT * FROM Таблица1 WHERE Путь LIKE '%чего-то там%'"

    Ответ:

    Автор ответа: Alexey Pavlov

    В последних версиях ADO оператор LIKE работает с символом '%' в аксессовских базах, так же как и с MSSQL. Символ '*' не используется.

    Ответ:

    Автор ответа: Alexander

    На эти грабли я сам в своё время наступил! Причём, сначала увидел как надо, а после экспериментов с Access вылетело из головы! Спасибо, люди добрые надоумили вспомнить!
    Итак, "фокус" состоит в следующем: там, где мы считаем, чтот обобщаем через знак '*', в VB используется ... '%'. Об этом написано в документации!

    Т.е.
    SQL = "SELECT * FROM Таблица1 WHERE Путь LIKE '*чего-то там*'"

    надо записать как

    SQL = "SELECT * FROM Таблица1 WHERE Путь LIKE '%чего-то там%'"

    Работает как часики!

    Вопрос:

    Подскажите пожалуйста такую вещь - есть процедура, которая выделяет цветом определённый диапазон ячеек в MSFlexGrid, но при щелчке по любой из ячеек выделение цветом теряется. Как зафиксировать цвет выделеных ячеек? Процедура ниже...

    Sub SelLineGrid()
    Dim ir As Integer, istr As Integer 'номер строки
    ir = 1
    Do Until ir = 6
    If flxDivizion.TextMatrix(ir, 1) = txtTeam Then istr = ir
    ir = ir + 1
    Loop
    flxDivizion.row = istr
    flxDivizion.Col = 0
    flxDivizion.RowSel = istr
    flxDivizion.ColSel = 7
    flxDivizion.BackColorSel = RGB(150, 150, 250)
    End Sub

    Ответ:

    Автор ответа: Andrew Isakov

    Прога твоя работает ПРАВИЛЬНО ;-) Ты используешь свойство Selected. Вместо выделения ячеек, просто изменяй цвет фона КАЖДОЙ нужной тебе ячейки…

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 186.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск!
    Читайте!

    Содержание выпуска

    • Книги

    • Эксперт

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Один момент из жизни форума: XP контролы в VB .NET

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Эксперт

    - Привет, Серый.
    - Угу, привет. Ты проходи, садись, я щас, с функцией тут разберусь...
    - Да я на момент. Вопросец имеется.
    - Вопросец, вопросец... Так, тут переменная не объявлена... Вопросец... С вопросами в систему, к экспертам... А тут точку не поставил! Вот она где, соб-бака!!
    - Ты че, какая система? Ты о чем?
    - О! Все, работает... Чего ты говоришь?
    - Ты про каких это экспертов тут заикаешься?
    - А-а. А ты что, первый раз слышишь, что ли? Ты на СообЧа бывал?
    - Где?!!
    - Да вот, гляди. Щас соединимся... Во! http://soobcha.ru, зришь?
    - М-да... Занятно. Так я с вопросом к тебе...
    - А я вот и говорю: туда иди, в систему "Эксперт", там ответят.
    - Это чайники, что ли, ответят?
    - Не сомневайся, ответят. Там у них такое наворочено... Короче, ты по почте вопрос свой задаешь - и все:)))))) Больше не изволь беспокоиться, там они сами будут искать ответ на твой вопрос. А через некоторое время вывалят тебе на ящик не один, а несколько ответов. Пользуйся и радуйся:)
    - А чего это они там такие добрые да услужливые? У них чего, своих проблем нет? Сколько я должен платить за такое трогательное беспокойство?
    - Ну, это немного. Меньше, чем ты думаешь:) Тебе достаточно только подтвердить правильный ответ. Давишь на соответствующую ссылку, дескать, вот этот ответ мне понравился, помог, и я доволен. Просто пустое письмо засылаешь к ним, и вся оплата. А если хочешь у них экспертом стать, то пожалуйста, регистрируйся и отвечай на вопросы.
    - Кем? Экспертом?
    - А что? Что-то ты ведь знаешь, не вчера за комп сел.
    - А на фига мне это надо? Разбираться с чужими проблемами... У меня своих - хоть отбавляй...
    - Ага. Вот ты только что спрашивал: а сколько? И если уж ты со своими проблемами обращаешься к людям, то ведь надеешься, что тебе помогут. А сам-то что, влом, что ли, помочь кому-то? Да ладно! Тебя, вобщем-то, никто и не тянет, не заставляет. А вот те, кому интересно, кому не жаль поделиться, те там и работают. Я, между прочим, давно уже с ними.
    - В смысле, экспертом, что ли, заделался? И сколько тебе платят?
    - А ты не прикалывай. Там никто никому не платит. А вот конкурсы, между прочим, проводят, и не хилые. Представляешь, за лучший ответ дают бесплатно три месяца платного хостинга, да еще домен регистрируют. За просто так. А вот тебе, если ты задашь самый лучший вопрос, тоже приз может выгореть.
    - Это как: лучший? На который никто ответить, что ли, не сможет? Так я щас таких вопро...
    - Причем тут это? Просто ты, если вопрос пишешь к ним, так сподобься хоть запятые в нужных местах поставить, там, грамотно, короче, обрисуй свой трабл.
    - Ну ладно, въехал. Ты мне вот лучше помоги с моим траблом. Мой Фотошоп не хочет по русски работать...
    - Ха, так этот трабл там уже сколько раз появлялся. У них на сайте и ответ есть... Вот, любуйся: Заходим в редактор реестра (regedit.exe). Находим ключ HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\Nls\Codepage В нем изменяем значение параметра 1252 с cp_1252.nls на cp_1251.nls. Перезагружаемся...
    - Понял... погоди, запишу...
    - Да чего записывать? Шагай домой, входи на сайт и копируй...
    - Да я ссылку запишу... Слушай, а как там в эту систему вопрос задать? Вообще, как она работает?
    - Так тут же, на сайте, все есть. А вообще, можешь по почте пустое письмо загнать на mailto:reply.infoexpert@soobcha.ru, и получишь всю необходимую инфу. А вообще, ты лучше в следующий раз с вопросами не ко мне, а туда. Может, я и отвечу там.
    - А не проше тебе здесь ответить?
    - Э-э-э... Там я баллы зарабатываю...
    - А это еще зачем?
    - Ладно, мотай. Дома почитаешь, все о них узнаешь. У меня тут халтурка... Давай, пока.
    - Пока. А как ты экспертом там зарегился?
    - Иди, иди! Инфу читай...

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 08.08.2003 14:17 | Раздел: Примеры кода | Автор: CyRax

    BP API ToolBar 3.0 - Продолжение известной во всем мире BP API ToolBar 2.0. Теперь Сам ToolBar встравивается в CoolBar, что выглядит намного лучше.

    Дата: 07.08.2003 22:01 | Раздел: Примеры кода | Автор: Mystery Warhawner

    BitmapMenu - Пример создания меню с иконками. Есть небольшое описание и два варианта. Интересное решение для VB 6.0. Единственный недостаток- отсутствие фокуса в самом меню.

    Дата: 07.08.2003 21:38 | Раздел: Примеры кода | Автор: Половый Александр

    Angle 1.1 - Программа расчета значения угла в различных системах счисления: радиан; градус; градус/мин/сек; град. Всем начинающим и продолжающим математикам будет очень полезна!!

    Дата: 06.08.2003 12:54 | Раздел: Примеры кода | Автор: Mystery Warhawner

    MCBrowser - MCBrowser позволяет повыдергивать электронные адреса с просматриваемой страницы. Сырой. Но для обучающих целей интересен.

    Дата: 05.08.2003 14:12 | Раздел: Примеры кода | Автор: sKit

    Console - Простой пример создания обычной консоли. Безо всяких излишеств. Полезный материал для начинающих консолестроителей.

    Дата: 05.08.2003 11:03 | Раздел: Примеры кода | Автор: Millenium

    TakeIcon - Позволяет с помощью API функции ExtractAssociatedIcon "вытащить" главную иконку из любого файла!!

    Дата: 05.08.2003 10:52 | Раздел: Примеры кода | Автор: Millenium

    Show Layout - Пример использования API функции GetKeyboardLayoutName. Отображет текущее состояние раскладки клавиатуры.

    Дата: 05.08.2003 10:33 | Раздел: Примеры кода | Автор: CyRax

    BP API ToolBar 2.0 - Динамически создаваемая посредством API панель инструментов. Очень интересный пример и подход. Уже вторая версия. Код в нескольких местах можно сократить и оптимизировать, но это не говорит о том, что данный пример тормозит. Наоборот! Качайте и удивляйтесь тому, что можно делать на старом добром VB 6.0 в связке с API!

    Последние 20 тем форума на VBNet.Ru:

    14:53 / 11 авг. Сервис в WinXP | Хитов: 0 | Ответов: 0
    14:46 / 11 авг. Скрытые папки | Хитов: 0 | Ответов: 0
    13:47 / 11 авг. Создание FlexGrid | Хитов: 4 | Ответов: 0
    13:23 / 11 авг. Что было с форумом, не пахал на выходных? | Хитов: 3 | Ответов: 0
    18:49 / 9 авг. ??? | Хитов: 21 | Ответов: 0
    17:35 / 9 авг. NT Service | Хитов: 17 | Ответов: 2
    14:13 / 9 авг. Немного не по VB: Оцените лого (интро) | Хитов: 40 | Ответов: 3
    14:05 / 9 авг. Паучок в интернете | Хитов: 21 | Ответов: 1
    23:52 / 8 авг. выполнение html кода в программе | Хитов: 25 | Ответов: 1
    23:40 / 8 авг. Новое сообщение без темы | Хитов: 2 | Ответов: 0
    22:47 / 8 авг. хееелп | Хитов: 32 | Ответов: 3
    20:17 / 8 авг. Danger в работе с API... | Хитов: 18 | Ответов: 0
    16:53 / 8 авг. ARP-нюк? | Хитов: 16 | Ответов: 1
    16:18 / 8 авг. Есть исходники для подсчета CRC IP заголовка на... | Хитов: 11 | Ответов: 0
    16:15 / 8 авг. Где найти описание API WinPCap для VB ? | Хитов: 12 | Ответов: 0
    16:06 / 8 авг. Есть безопасный способ MultiThread'а в VB ? | Хитов: 15 | Ответов: 2
    13:45 / 8 авг. ПОМОГИТЕ ЛЮДИ ДОБРЫЕ СПРАВИТЬСЯ с EXEL, !!!!!!!!! | Хитов: 21 | Ответов: 2
    13:42 / 8 авг. Русский Help по VB | Хитов: 37 | Ответов: 1
    12:34 / 8 авг. VBA => VB Translation | Хитов: 4 | Ответов: 0
    11:40 / 8 авг. framework 1.1 | Хитов: 11 | Ответов: 0

    Последние поступления в Библиотеку кодов:

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Новости сайта MSDN

    наверх

    Новости сайта GotdotNet

    Новые статьи:

    наверх

    Новости сайта dotSite

    Новые статьи:

    Новые примеры:

    наверх

    Один момент из жизни форума: XP контролы в VB .NET

    Вопрос:
    Автор вопроса: cpukiller

    Ну я вам скажу и опупенная же вещь этот VB.Net… Столько возможностей открывается перед разработчиком (это только первый мой взгляд), а сколько ещё слышал - рассказывали… Ну дак вот: купил я себе студио дот нет… Привык сразу! Да товарищи… Это любовь с перового взгляда… В одной программе (оболочке, среде, интерфейсе) сразу три языка (и всего за 65руб… :-))… Всё круто и хорошо, только вот незадача – кнопки аля XP можно делать только в VC++7… :-( Чо делать? Подскажите… Можно конечно импортировать икспишные контролы с VB6 на VB7, но мароки будет, и тем более, не совершенны они очень, всё равно ведь не родные икспишные… :-\. Дак вот, кто знает как работать с икспишными контролами в VB.Net???? (Active X не предлагать)…

    Ответы:

    Атор: Alex
    На эту тему много уже рассуждалось... посмотри... тем же манифестом...

    Атор: Danil
    А если ты хочешь что бы твои елементы управления отображались в XP виде во время разработки, т.е. проектирования формы, создай манифест который ты делаешь для своего EXE-файла для файла Visual Studio.NET

    Атор: cpukiller
    А как его можно встроить в exe?

    Атор: ШевТ
    Открывай ехешку в ВС.НЕТ и добавляй новый ресурс. Добавляй манифест. Обзови его RT_MANIFEST и присвой ему ИД в 1. И все!
    А вот тебе создатель манифестов (я его слегка переписал =) ):
    http://shevt.fatal.ru/xpts.zip
    или
    http://shevt.narod.ru/xpts.zip
    А на счет ВС.НЕТ - ты прав на 100%!!!

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Андрей

    Ответ ожидается по этому адресу

    Как мне запустить файл *.exe, помещенный в контейнер OLE? И вот еще, где найти в VB файл ресурса, что-то не могу с этим разобраться.

    Автор вопроса: Mihail

    Ответ ожидается по этому адресу

    Как в VB .NET проверить, есть ли новая почта?

    Ответы:

    Нет ответов.
    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 187.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск. Присылайте коды!!!
    Читайте!

    Содержание выпуска

    • Книги

    • Эксперт

    • Как программно отключить заставку Windows?
    • Как на VB определить путь к системной папке?
    • Как поместить картинки в DLL?
    • Возможна ли одновременная работа в одной программе двух Winsock?
    • Как поменять картинку загрузки Windows?

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти здесь.

    наверх

    Эксперт

    - Привет, Серый.
    - Угу, привет. Ты проходи, садись, я щас, с функцией тут разберусь...
    - Да я на момент. Вопросец имеется.
    - Вопросец, вопросец... Так, тут переменная не объявлена... Вопросец... С вопросами в систему, к экспертам... А тут точку не поставил! Вот она где, соб-бака!!
    - Ты че, какая система? Ты о чем?
    - О! Все, работает... Чего ты говоришь?
    - Ты про каких это экспертов тут заикаешься?
    - А-а. А ты что, первый раз слышишь, что ли? Ты на СообЧа бывал?
    - Где?!!
    - Да вот, гляди. Щас соединимся... Во! http://soobcha.ru, зришь?
    - М-да... Занятно. Так я с вопросом к тебе...
    - А я вот и говорю: туда иди, в систему "Эксперт", там ответят.
    - Это чайники, что ли, ответят?
    - Не сомневайся, ответят. Там у них такое наворочено... Короче, ты по почте вопрос свой задаешь - и все:)))))) Больше не изволь беспокоиться, там они сами будут искать ответ на твой вопрос. А через некоторое время вывалят тебе на ящик не один, а несколько ответов. Пользуйся и радуйся:)
    - А чего это они там такие добрые да услужливые? У них чего, своих проблем нет? Сколько я должен платить за такое трогательное беспокойство?
    - Ну, это немного. Меньше, чем ты думаешь:) Тебе достаточно только подтвердить правильный ответ. Давишь на соответствующую ссылку, дескать, вот этот ответ мне понравился, помог, и я доволен. Просто пустое письмо засылаешь к ним, и вся оплата. А если хочешь у них экспертом стать, то пожалуйста, регистрируйся и отвечай на вопросы.
    - Кем? Экспертом?
    - А что? Что-то ты ведь знаешь, не вчера за комп сел.
    - А на фига мне это надо? Разбираться с чужими проблемами... У меня своих - хоть отбавляй...
    - Ага. Вот ты только что спрашивал: а сколько? И если уж ты со своими проблемами обращаешься к людям, то ведь надеешься, что тебе помогут. А сам-то что, влом, что ли, помочь кому-то? Да ладно! Тебя, вобщем-то, никто и не тянет, не заставляет. А вот те, кому интересно, кому не жаль поделиться, те там и работают. Я, между прочим, давно уже с ними.
    - В смысле, экспертом, что ли, заделался? И сколько тебе платят?
    - А ты не прикалывай. Там никто никому не платит. А вот конкурсы, между прочим, проводят, и не хилые. Представляешь, за лучший ответ дают бесплатно три месяца платного хостинга, да еще домен регистрируют. За просто так. А вот тебе, если ты задашь самый лучший вопрос, тоже приз может выгореть.
    - Это как: лучший? На который никто ответить, что ли, не сможет? Так я щас таких вопро...
    - Причем тут это? Просто ты, если вопрос пишешь к ним, так сподобься хоть запятые в нужных местах поставить, там, грамотно, короче, обрисуй свой трабл.
    - Ну ладно, въехал. Ты мне вот лучше помоги с моим траблом. Мой Фотошоп не хочет по русски работать...
    - Ха, так этот трабл там уже сколько раз появлялся. У них на сайте и ответ есть... Вот, любуйся: Заходим в редактор реестра (regedit.exe). Находим ключ HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\Nls\Codepage В нем изменяем значение параметра 1252 с cp_1252.nls на cp_1251.nls. Перезагружаемся...
    - Понял... погоди, запишу...
    - Да чего записывать? Шагай домой, входи на сайт и копируй...
    - Да я ссылку запишу... Слушай, а как там в эту систему вопрос задать? Вообще, как она работает?
    - Так тут же, на сайте, все есть. А вообще, можешь по почте пустое письмо загнать на mailto:reply.infoexpert@soobcha.ru, и получишь всю необходимую инфу. А вообще, ты лучше в следующий раз с вопросами не ко мне, а туда. Может, я и отвечу там.
    - А не проше тебе здесь ответить?
    - Э-э-э... Там я баллы зарабатываю...
    - А это еще зачем?
    - Ладно, мотай. Дома почитаешь, все о них узнаешь. У меня тут халтурка... Давай, пока.
    - Пока. А как ты экспертом там зарегился?
    - Иди, иди! Инфу читай...

    наверх

    Как программно отключить заставку Windows?

    Вопрос:

    Как программно отключить заставку Windows?

    Ответ:

    Можно, в файле System.ini, который храниться в каталоге WINDOWS есть ссылка на имя текущей заставки и если её удалить, то и заставки не будет.
    Сделать это можно так:

    Private Sub SwitchOffScreenSaver()
    Dim FileNoRd As Integer
    Dim FileNoWr As Integer
    Dim WinDir As String
    Dim szData As String
    Dim szExample As String

    szExample = "SCRNSAVE.EXE"
    WinDir = GetWinDir 'Используем нашу новую функцию для получения каталога Windows (см. выше)
    FileNoWr = FreeFile 'Получаем свободный номер для записи
    'открываем временный файл для построчного сохранения данных.
    Open "C:\mytemp.tmp" For Output As #FileNoWr
    FileNoRd = FreeFile 'Получаем свободный номер для чтения
    'открываем рабочий файл для анализа и изменения
    Open WinDir & "System.ini" For Input As #FileNoRd
    Do Until EOF(FileNoRd)
    Line Input #FileNoRd, szData
    'Если мы находим в файле наш пример и его длина совпадает,
    If Mid(szData, 1, Len(szExample)) = szExample Then
    'то очищаем значения найденной строки для _
    отключения заставки.
    szData = szExample & "="
    End If
    Print #FileNoWr, szData
    Loop
    Close 'Закрываем все открытые файлы
    'Копируем новые данные из временного файла в System.ini
    FileCopy "C:\mytemp.tmp", WinDir & "System.ini"
    Kill "C:\mytemp.tmp" 'Удаляем временный файл
    End Sub

    SC

    наверх

    Как на VB определить путь к системной папке?

    Вопрос:

    Как на VB определить путь к системной папке?

    Ответ:

    Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
    'Получение директории C:\WINDOWS\SYSTEM

    Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
    'Директория "C:\WINDOWS"
    Private Function GetSysDir() As String
    Dim szBuffer As String * 50
    Dim lngRet As Long

    lngRet = GetSystemDirectory(szBuffer, 50)
    GetSysDir = Left$(szBuffer, lngRet)
    If Right(GetSysDir, 1) <> "\" Then GetSysDir = GetSysDir & "\"
    End Function

    Private Function GetWinDir() As String
    Dim szBuffer As String * 50
    Dim lngRet As Long

    lngRet = GetWindowsDirectory(szBuffer, 50)
    GetWinDir = Left$(szBuffer, lngRet)
    If Right(GetWinDir, 1) <> "\" Then GetWinDir = GetWinDir & "\"
    End Function

    'Использование
    Private Sub Form_Load()
    MsgBox GetWinDir
    MsgBox GetSysDir
    End Sub

    или объединяем наши 2 функции:

    Private Function GetDirectory(szDirName As String) As String
    Dim szBuffer As String * 50
    Dim lngRet As Long

    If LCase(szDirName) = "sys" then
    lngRet = GetSystemDirectory(szBuffer, 50)
    ElseIf LCase(szDirName) = "win" then
    lngRet = GetWindowsDirectory(szBuffer, 50)
    End If
    GetDirectory = Left$(szBuffer, lngRet)
    If Right(GetDirectory, 1) <> "\" Then GetDirectory = GetDirectory & "\"
    End Function

    'Использование
    Private Sub Form_Load()
    MsgBox GetDirectory("win")
    MsgBox GetDirectory("sys")
    End Sub

    SC

    наверх

    Как поместить картинки в DLL?

    Вопрос:

    Как поместить картинки в DLL и как с ними потом работать (т.е. читать картинки из этой же DLL)?

    Ответ:

    В начале заходим в меню Add-Ins, затем Add-In Meneger... .Там находим строчку Visual Basic 6 Resource Editor и справа от описания есть флажки, устанавливаем Loaded/Unloaded и Load on StartUp. На стандартной панели инструментов должнен появиться VB Resource Editor. Запускаем и добовляем всё что душе угодно. Всё наши картинки там. Код чтения картинки:

    Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long
    Private Declare Function ExtractIconEx Lib "shell32.dll" Alias "ExtractIconExA" (ByVal lpszFile As String, ByVal nIconIndex As Long, phiconLarge As Long, phiconSmall As Long, ByVal nIcons As Long) As Long

    Private Sub Command1_Click()
    Dim hIcon As Long

    ExtractIconEx "C:\my.dll", 0, hIcon, 0, 1
    DrawIcon Form1.hdc, 0, 0, hIcon
    End Sub

    У формы свойство ScaleMode должно быть 3 - Pixel

    SC

    наверх

    Возможна ли одновременная работа в одной программе двух Winsock?

    Вопрос:

    Возможна ли одновременная работа в одной программе двух Winsock, один работает на приём сообщений (так сказать в режиме ожидания сообщений), а второй - на отправку сообщений ?

    Ответ:

    А что тебе мешает?

    Вот выдержка из MSDN (благополучно работают два сокета):

    To create a TCP server
    Create a new Standard EXE project.
    Change the name of the default form to frmServer.
    Change the caption of the form to "TCP Server."
    Draw a Winsock control on the form and change its name to tcpServer.
    Add two TextBox controls to the form. Name the first txtSendData, and the second txtOutput.

    Add the code below to the form.
    Private Sub Form_Load()
    ' Set the LocalPort property to an integer.
    ' Then invoke the Listen method.
    tcpServer.LocalPort = 1001
    tcpServer.Listen
    frmClient.Show ' Show the client form.
    End Sub

    Private Sub tcpServer_ConnectionRequest _
    (ByVal requestID As Long)
    ' Check if the control's State is closed. If not,
    ' close the connection before accepting the new
    ' connection.
    If tcpServer.State <> sckClosed Then _
    tcpServer.Close
    ' Accept the request with the requestID
    ' parameter.
    tcpServer.Accept requestID
    End Sub

    Private Sub txtSendData_Change()
    ' The TextBox control named txtSendData
    ' contains the data to be sent. Whenever the user
    ' types into the textbox, the string is sent
    ' using the SendData method.
    tcpServer.SendData txtSendData.Text
    End Sub

    Private Sub tcpServer_DataArrival _
    (ByVal bytesTotal As Long)
    ' Declare a variable for the incoming data.
    ' Invoke the GetData method and set the Text
    ' property of a TextBox named txtOutput to
    ' the data.
    Dim strData As String
    tcpServer.GetData strData
    txtOutput.Text = strData
    End Sub

    The procedures above create a simple server application. However, to complete the scenario, you must also create a client application.

    To create a TCP client Add a new form to the project, and name it frmClient. Change the caption of the form to TCP Client. Add a Winsock control to the form and name it tcpClient. Add two TextBox controls to frmClient. Name the first txtSend, and the second txtOutput. Draw a CommandButton control on the form and name it cmdConnect. Change the caption of the CommandButton control to Connect. Add the code below to the form. Important Be sure to change the value of the RemoteHost property to the friendly name of your computer.

    Private Sub Form_Load()
    ' The name of the Winsock control is tcpClient.
    ' Note: to specify a remote host, you can use
    ' either the IP address (ex: "121.111.1.1") or
    ' the computer's "friendly" name, as shown here.
    tcpClient.RemoteHost = "RemoteComputerName"
    tcpClient.RemotePort = 1001
    End Sub

    Private Sub cmdConnect_Click()
    ' Invoke the Connect method to initiate a
    ' connection.
    tcpClient.Connect
    End Sub

    Private Sub txtSendData_Change()
    tcpClient.SendData txtSend.Text
    End Sub

    Private Sub tcpClient_DataArrival _
    (ByVal bytesTotal As Long)
    Dim strData As String
    tcpClient.GetData strData
    txtOutput.Text = strData
    End Sub

    The code above creates a simple client-server application. To try the two together, run the project, and click Connect. Then type text into the txtSendData TextBox on either form, and the same text will appear in the txtOutput TextBox on the other form.

    Sergey Y. Tkachev

    наверх

    Как поменять картинку загрузки Windows?

    Вопрос:

    Как поменять картинку загрузки Windows?

    Ответ:

    Не ручаюсь ха точность информации. Цитирую:

    Анимированная картинка, которая выводится при загрузке Windows (на фоне голубых облачков написано Windows 95(98)), в Windows 95 находится в файле logo.sys в корневом каталоге, а в Windows 98 эта картинка, если не ошибаюсь, "вшита" в файл command.com Меняя этот файл (logo.sys) на любой файл формата BMP (соответствующих размеров и 256 цветов), можно поменять скучную картинку при загрузке. А в Windows 98 можно просто поместить файл logo.sys в корневой каталог - эффект тот же самый. Аналогично, в каталоге WINDOWS есть ещё 2 файла - logos.sys и logow.sys. Они "отвечают" за сообщения "Теперь питание..." и "Подождите, идет подготовка...". Формат тот же.
    Владимир Ротин

    Сергей Гуров

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Максим

    Ответ ожидается по этому адресу

    Если в запущенной программе в ручную переместить какой-нибудь контрол, например Image, можно ли её в таком состоянии сохранить?

    Автор вопроса: Роот Яков

    Ответ ожидается по этому адресу

    Как в Excel сделать что бы макрос запускался при изменении определенной ячейки?

    Автор вопроса: Данила

    Ответ ожидается по этому адресу

    Как сделать функцию на подобии Inputbox? Т.е. вызываем функцию, она открывает окошко, ждёт, пока там чего-нибудь натворят, потом возобновляет работу и передаёт на выход результат работы.

    Автор вопроса: Данила

    Ответ ожидается по этому адресу

    Как оформить функцию в отдельный процесс (как в Windows Commander)? Т.е. у меня есть функция, которая работает очень долго и съедает все системные ресурсы (даже собственное окно показать не может). А вот если б её засунуть в фон, то тогда можно былоб и бегунок показать и прочую сопутствующую инфу.

    Автор вопроса: ]CBK[C...R...a...S...H

    Ответ ожидается по этому адресу

    Как в .NET производить сериализацию?

    Автор вопроса: I-Sof

    Ответ ожидается по этому адресу

    Как программно создавать/удалять меню, подменю и т.д.?

    Ответы:

    Вопрос:

    По мере изучения VB столкнулся с двумя проблемами: 1) Нужно из формы запустить посторонний exe-шник с ключами, например winrar.exe 2) Часто встречал, что в VB-шных прогах для вывода отчетов использовался Word. Заранее созданный шаблон имел *.doc формат. Причем для заполнения данными в нужные ячейки таблицы помещали так называемые маркеры. Например: Поставщик: %001 Покупатель: %002 и т.п. Вот и я бы хотел реализовать нечто подобное в своих прогах.

    Ответ:

    Автор ответа: Dima

    Используй Shell "format.com a: /q", vbNormalFocus.

    Вопрос:

    Как мне запустить файл *.exe, помещенный в контейнер OLE? И вот еще, где найти в VB файл ресурса, что-то не могу с этим разобраться.

    Ответ:

    Автор ответа: Alexander

    Файл ресурсов создаётся, если в меню "Add-Ins" - "Add-in Manager" мы установим птичку Startup/Loaded напротив пункта "VB6 Resource Editor". После чего в контестном меню, которое включается при занесении мыши в окно Project Explorer (Ctrl-R) и нажатии правой кнопки мыши, пункт "Add" - "Resource File". Если такого не появится, что-то не выполнено в инсталяции VB6...

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 188.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск!
    Читайте!

    Содержание выпуска

    • Книги

    • Эксперт

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Один момент из жизни форума: Как сменить частоту обновления экрана?

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Эксперт

    - Привет, Серый.
    - Угу, привет. Ты проходи, садись, я щас, с функцией тут разберусь...
    - Да я на момент. Вопросец имеется.
    - Вопросец, вопросец... Так, тут переменная не объявлена... Вопросец... С вопросами в систему, к экспертам... А тут точку не поставил! Вот она где, соб-бака!!
    - Ты че, какая система? Ты о чем?
    - О! Все, работает... Чего ты говоришь?
    - Ты про каких это экспертов тут заикаешься?
    - А-а. А ты что, первый раз слышишь, что ли? Ты на СообЧа бывал?
    - Где?!!
    - Да вот, гляди. Щас соединимся... Во! http://soobcha.ru, зришь?
    - М-да... Занятно. Так я с вопросом к тебе...
    - А я вот и говорю: туда иди, в систему "Эксперт", там ответят.
    - Это чайники, что ли, ответят?
    - Не сомневайся, ответят. Там у них такое наворочено... Короче, ты по почте вопрос свой задаешь - и все:)))))) Больше не изволь беспокоиться, там они сами будут искать ответ на твой вопрос. А через некоторое время вывалят тебе на ящик не один, а несколько ответов. Пользуйся и радуйся:)
    - А чего это они там такие добрые да услужливые? У них чего, своих проблем нет? Сколько я должен платить за такое трогательное беспокойство?
    - Ну, это немного. Меньше, чем ты думаешь:) Тебе достаточно только подтвердить правильный ответ. Давишь на соответствующую ссылку, дескать, вот этот ответ мне понравился, помог, и я доволен. Просто пустое письмо засылаешь к ним, и вся оплата. А если хочешь у них экспертом стать, то пожалуйста, регистрируйся и отвечай на вопросы.
    - Кем? Экспертом?
    - А что? Что-то ты ведь знаешь, не вчера за комп сел.
    - А на фига мне это надо? Разбираться с чужими проблемами... У меня своих - хоть отбавляй...
    - Ага. Вот ты только что спрашивал: а сколько? И если уж ты со своими проблемами обращаешься к людям, то ведь надеешься, что тебе помогут. А сам-то что, влом, что ли, помочь кому-то? Да ладно! Тебя, вобщем-то, никто и не тянет, не заставляет. А вот те, кому интересно, кому не жаль поделиться, те там и работают. Я, между прочим, давно уже с ними.
    - В смысле, экспертом, что ли, заделался? И сколько тебе платят?
    - А ты не прикалывай. Там никто никому не платит. А вот конкурсы, между прочим, проводят, и не хилые. Представляешь, за лучший ответ дают бесплатно три месяца платного хостинга, да еще домен регистрируют. За просто так. А вот тебе, если ты задашь самый лучший вопрос, тоже приз может выгореть.
    - Это как: лучший? На который никто ответить, что ли, не сможет? Так я щас таких вопро...
    - Причем тут это? Просто ты, если вопрос пишешь к ним, так сподобься хоть запятые в нужных местах поставить, там, грамотно, короче, обрисуй свой трабл.
    - Ну ладно, въехал. Ты мне вот лучше помоги с моим траблом. Мой Фотошоп не хочет по русски работать...
    - Ха, так этот трабл там уже сколько раз появлялся. У них на сайте и ответ есть... Вот, любуйся: Заходим в редактор реестра (regedit.exe). Находим ключ HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\Nls\Codepage В нем изменяем значение параметра 1252 с cp_1252.nls на cp_1251.nls. Перезагружаемся...
    - Понял... погоди, запишу...
    - Да чего записывать? Шагай домой, входи на сайт и копируй...
    - Да я ссылку запишу... Слушай, а как там в эту систему вопрос задать? Вообще, как она работает?
    - Так тут же, на сайте, все есть. А вообще, можешь по почте пустое письмо загнать на mailto:reply.infoexpert@soobcha.ru, и получишь всю необходимую инфу. А вообще, ты лучше в следующий раз с вопросами не ко мне, а туда. Может, я и отвечу там.
    - А не проше тебе здесь ответить?
    - Э-э-э... Там я баллы зарабатываю...
    - А это еще зачем?
    - Ладно, мотай. Дома почитаешь, все о них узнаешь. У меня тут халтурка... Давай, пока.
    - Пока. А как ты экспертом там зарегился?
    - Иди, иди! Инфу читай...

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 15.08.2003 13:21 | Раздел: Примеры кода | Автор: Creator

    Opacity - Пример для тех, кто не может разобраться с прозрачностью в NT. От автора: Много возникает вопросов по поводу прозрачности, данный пример иллюстрирует данную возможность, причём без использования API. Однако, работоспособен только на платформах NT ... Я думаю не стоит труда использовать его, и как всегда всё тривиально :-)

    Дата: 15.08.2003 13:21 | Раздел: Примеры кода | Автор: Creator

    Animated GIF - Пример работы с анимированными GIF. От автора: Много проблем, по крайней мере у меня, было с анимированием Gif файлов в пректах :-(.... Решил исследовать этот вопрос в .NET ... Что получилось, на вскидку судите сами. Буду рад пожеланиям предложениям по оптимизации кода, пишите ...

    Последние 20 тем форума на VBNet.Ru:

    05:47 / 19 авг. Привязка к железу | Хитов: 4 | Ответов: 1
    05:47 / 19 авг. Привязка к железу | Хитов: 1 | Ответов: 0
    04:14 / 19 авг. Вопросик!!!!!!!!!!!!!!!!!!!!!!!! | Хитов: 6 | Ответов: 0
    23:59 / 18 авг. Админу | Хитов: 9 | Ответов: 0
    20:56 / 18 авг. Как в RichTextBoxe.... | Хитов: 7 | Ответов: 0
    20:53 / 18 авг. RichTextBox ?????? | Хитов: 11 | Ответов: 1
    20:17 / 18 авг. Создание мультиязычного интерфейса | Хитов: 18 | Ответов: 2
    17:53 / 18 авг. Енто только админу!!!!! | Хитов: 16 | Ответов: 2
    17:49 / 18 авг. Ошибка доступа к файлу!!!!!!! | Хитов: 13 | Ответов: 1
    15:54 / 18 авг. TextBox | Хитов: 12 | Ответов: 1
    14:58 / 18 авг. CodeWright | Хитов: 16 | Ответов: 1
    12:44 / 18 авг. свернись, расширься | Хитов: 17 | Ответов: 1
    11:29 / 18 авг. Dictionary | Хитов: 24 | Ответов: 1
    11:04 / 18 авг. перенос строк кодом | Хитов: 24 | Ответов: 4
    10:24 / 18 авг. Как реализовать или найти Splitter для VB? | Хитов: 21 | Ответов: 2
    10:17 / 18 авг. Проблемы с DataReport | Хитов: 14 | Ответов: 1
    06:59 / 18 авг. Вопрос не по VB: Установка PHP | Хитов: 6 | Ответов: 0
    06:29 / 18 авг. Добавление записи в через OLE DB | Хитов: 9 | Ответов: 0
    23:16 / 17 авг. картинка | Хитов: 36 | Ответов: 1
    17:45 / 17 авг. Формы | Хитов: 34 | Ответов: 3

    Последние поступления в Библиотеку кодов:

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Новости сайта MSDN

      Пользователям Microsoft Windows: ознакомьтесь с бюллетенем по безопасности корпорации Microsoft MS03-026 и немедленно установите исправление по безопасности

    наверх

    Новости сайта GotdotNet

    Новые статьи:

    наверх

    Новости сайта dotSite

    Новые статьи:

    Новые примеры:

    наверх

    Один момент из жизни форума: Как сменить частоту обновления экрана?

    Вопрос:
    Автор вопроса: Страшный Сон

    Я меняю разрешение экрана, а частота обновления становится 60 Hz, хотя могла быть и 140. Как её сменить из VB?

    Ответы:

    Атор: Padre
    Может быть через ChangeDisplaySettingsEx

    Атор: Страшный Сон
    Ещё и Ex есть? Что-то я в своём файле с функциями не нашел такого... Как эта функция объявляется?

    Атор: Артём Л.
    Declare Function ChangeDisplaySettingsEx Lib "user32" Alias "ChangeDisplaySettingsExA" (lpszDeviceName As Any, lpDevMode As Any, ByVal hWnd As Long, ByVal dwFlags As Long, lParam As Any) As Long

    · lpszDeviceName
    [in] Pointer to a null-terminated string that specifies the display device whose graphics mode the function will obtain information about. Only display device names as returned by EnumDisplayDevices are valid. See EnumDisplayDevices for further information on the names associated with these display devices.

    The lpszDeviceName parameter can be NULL. A NULL value specifies the default display device. The default device can be determined by calling EnumDisplayDevices and checking for the DISPLAY_DEVICE_PRIMARY_DEVICE flag.

    · lpDevMode
    [in] Pointer to a DEVMODE structure that describes the new graphics mode. If lpDevMode is NULL, all the values currently in the registry will be used for the display setting. Passing NULL for the lpDevMode parameter and 0 for the dwFlags parameter is the easiest way to return to the default mode after a dynamic mode change.

    The dmSize member must be initialized to the size, in bytes, of the DEVMODE structure. The dmDriverExtra member must be initialized to indicate the number of bytes of private driver data following the DEVMODE structure. In addition, you can use any of the following members of the DEVMODE structure.

    dmBitsPerPel
    Bits per pixel

    dmPelsWidth
    Pixel width

    dmPelsHeight
    Pixel height

    dmDisplayFlags
    Mode flags

    dmDisplayFrequency
    Mode frequency

    dmPosition
    Windows 98, Windows 2000: Position of the device in a multi-monitor configuration.

    In addition to using one or more of the preceding DEVMODE members, you must also set one or more of the following values in the dmFields member to change the display settings.

    DM_BITSPERPEL
    Use the dmBitsPerPel value.

    DM_PELSWIDTH
    Use the dmPelsWidth value.

    DM_PELSHEIGHT
    Use the dmPelsHeight value.

    DM_DISPLAYFLAGS
    Use the dmDisplayFlags value.

    DM_DISPLAYFREQUENCY
    Use the dmDisplayFrequency value.

    DM_POSITION
    Windows 98, Windows 2000: Use the dmPosition value.

    · hwnd
    Reserved; must be NULL.

    · dwflags
    [in] Indicates how the graphics mode should be changed. This parameter can be one of the following values.

    0
    The graphics mode for the current screen will be changed dynamically.

    CDS_FULLSCREEN
    The mode is temporary in nature.
    Windows NT/2000: If you change to and from another desktop, this mode will not be reset.

    CDS_GLOBAL
    The settings will be saved in the global settings area so that they will affect all users on the machine. Otherwise, only the settings for the user are modified. This flag is only valid when specified with the CDS_UPDATEREGISTRY flag.

    CDS_NORESET
    The settings will be saved in the registry, but will not take effect. This flag is only valid when specified with the CDS_UPDATEREGISTRY flag.

    CDS_RESET
    The settings should be changed, even if the requested settings are the same as the current settings.

    CDS_SET_PRIMARY
    This device will become the primary device.

    CDS_TEST
    The system tests if the requested graphics mode could be set.

    CDS_UPDATEREGISTRY
    The graphics mode for the current screen will be changed dynamically and the graphics mode will be updated in the registry. The mode information is stored in the USER profile.

    CDS_VIDEOPARAMETERS
    Windows NT/2000: When set, the lParam parameter is a pointer to a VIDEOPARAMETERS structure.

    Specifying CDS_TEST allows an application to determine which graphics modes are actually valid, without causing the system to change to them.

    If CDS_UPDATEREGISTRY is specified and it is possible to change the graphics mode dynamically, the information is stored in the registry and DISP_CHANGE_SUCCESSFUL is returned. If it is not possible to change the graphics mode dynamically, the information is stored in the registry and DISP_CHANGE_RESTART is returned.
    Windows NT/2000: If CDS_UPDATEREGISTRY is specified and the information could not be stored in the registry, the graphics mode is not changed and DISP_CHANGE_NOTUPDATED is returned.

    · lParam
    Windows NT/2000: [in] If dwFlags is CDS_VIDEOPARAMETERS, lParam is a pointer to a VIDEOPARAMETERS structure. Otherwise lParam must be NULL.

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Тим

    Ответ ожидается по этому адресу

    Как при помощи Microsoft Internet Transfer Control узнать такое свойство файла как дата и время последнего изменения?
    Если невозможно этим контролом, то подскажите пожалуйста как иначе?

    Автор вопроса: Максим

    Ответ ожидается по этому адресу

    Вопрос насчет VB .NET.
    Кто-нибудь может поделиться файлами dx8_vb.hxi и dx8_vb.hxs?
    Если они весят не очень много…

    Автор вопроса: goodroman

    Ответ ожидается по этому адресу

    Можно ли средствами VB сделать программу бея окна (формы)? Только не чтоб окно было невидимым, а чтоб его ваще не было.

    Автор вопроса: Michael Fezulaev

    Ответ ожидается по этому адресу

    Есть объект DBGrid и есть у этого объект свойство Button. Я прочитал в MSDN что это для создание встроеного ComboBox. Но как это сделать не знаю. Если сможете дать исходник или линк какой нибуть.

    Автор вопроса: Vao

    Ответ ожидается по этому адресу

    Какая функция на VB переводит строку из OEM/DOS в Win кодировку? Есть ли функции, типа Chr и Asc, воявращающие значения в "досовской" кодировке?

    Автор вопроса: Денис

    Ответ ожидается по этому адресу

    Подскажите как програмно получить строковый параметр реестра в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mailto\shell\open\command. Там значение по умолчанию. Если кто знает, то напишите, как записывать и читать из реестра.

    Автор вопроса: Игорь

    Ответ ожидается по этому адресу

    Как добавить новую форму для принтеров в WIN 2000. В 98 можно делать польяовательские раямеры а в NT такой возможности нет.

    Ответы:

    Вопрос:

    Если в запущенной программе в ручную переместить какой-нибудь контрол, например Image, можно ли её в таком состоянии сохранить?

    Ответ:

    Автор ответа: Дмитрий

    1) Можно сохранить положение контрола в INI-файле с помощью функций
    WinAPI:

    Private Declare Function GetPrivateProfileString Lib "kernel32" Alias _
    "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
    Private Declare Function WritePrivateProfileString Lib "kernel32" Alias _
    "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpstring As Any, ByVal lpFileName As String) As Long

    Public Function Чтение(Раздел As String, Ключ As String, _
    ИмяФайла as String) As String
    Dim sTemp As String * 256
    Dim nLength As Integer

    sTemp = Space$(256)
    nLength = GetPrivateProfileString(Раздел, Ключ, "?", sTemp, 255, _
    ИмяФайла)

    Чтение = Left$(sTemp, nLength)

    End Function

    Public Sub Запись(Раздел As String, Ключ As String, Значение As String, _
    ИмяФайла as String)
    Dim n As Integer
    Dim sTemp As String

    sTemp = Значение

    'Заменим символы CR/LF на пробелы
    For n = 1 To Len(Значение)
    If Mid$(Значение, n, 1) = vbCr Or Mid$(Значение, n, 1) = vbLf Then
    Mid$(Значение, n) = " "
    End If
    Next n
    n = WritePrivateProfileString(Раздел, Ключ, sTemp, ИмяФайла)

    End Sub

    Структура INI-файла
    [MyControl]
    Top=y
    Left=x
    Width=w
    Height=h

    MyControl - имя раздела
    Top,Left, Width, Height - ключи
    x, y, w, h - значения ключа

    Например, для получения предыдущего состояния контрола:
    Dim sTop as String
    Dim sLeft as String

    sTop=Чтение("MyControl", "Top", "MyINI.ini")
    sLeft=Чтение("MyControl", "Left", "MyINI.ini")

    With [MyControl]
    Left=sLeft
    Top=sTop
    End With

    При желании можно переделать функции Чтение, Запись для работы с
    числовыми данными

    2) Можно сохранить настойки также в реестре в ветви
    HKEY_CURRENT_USER\SOFTWARE\VB and VBA Program Settings\ с помощью функции SaveSetting(AppName As String, Section As String, Key As String, Setting As String)
    а прочитать - GetSetting(AppName As String, Section As String, Key As String, [Default]) As String

    Но если данных мало, лучше пользоваться INI-файлами, а если много, то
    сохранять их уже не в HKEY_CURRENT_USER\SOFTWARE\VB and VBA Program
    Settings\, а в
    HKEY_CURRENT_USER\SOFTWARE\YourCompanyName\YourProgramName\ с помощью функций работы с реестром из библиотеки advapi32.dll

    Вопрос:

    Как в Excel сделать что бы макрос запускался при изменении определенной ячейки?

    Ответ:

    Автор ответа: Дмитрий

    Заходишь в Visual Basic Editor (Alt+F11) в дереве выбираешь Лист1 (Sheet1). Откроется окно редактора. В нем в правом раскрывающимся списке выберешь Worksheet, в левом - Change. Появится заготовка:

    Private Sub Worksheet_Change(ByVal Target As Range)

    End Sub

    Для определения адреса измененной ячейки используй строку

    a=Target.Address

    Ответ:

    Автор ответа: Константин

    Процедура помещается в Книгу.

    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range)

    If Source.Address = "$B$2" Then
    MsgBox "Новое значение: " & Source.Value
    'вызываешь свой макрос
    End If

    End Sub

    Вообще много ответов можно найти в самом хелпе VBA.

    Ответ:

    Автор ответа: Sergey

    Попробуй переопределить обработчик Worksheet_Changed для нужного листа:

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row = 2 And Target.Column = 2 Then
    NewMacro --нужный макрос
    End If
    End Sub

    Вопрос:

    Как сделать функцию на подобии Inputbox? Т.е. вызываем функцию, она открывает окошко, ждёт, пока там чего-нибудь натворят, потом возобновляет работу и передаёт на выход результат работы.

    Ответ:

    Автор ответа: Дмитрий

    Вызывай форму модально Me.Show vbModal. Пока вызванная форма не будет закрыта, выполнение в вызвавшей форме будет остановлено. А для передачи параметров туда-обратно используй Public переменные.

    Вопрос:

    Как оформить функцию в отдельный процесс (как в Windows Commander)? Т.е. у меня есть функция, которая работает очень долго и съедает все системные ресурсы (даже собственное окно показать не может). А вот если б её засунуть в фон, то тогда можно былоб и бегунок показать и прочую сопутствующую инфу.

    Ответ:

    Автор ответа: Vladimir [PRC]

    Есть два способа разделить программу и функцию.

    СПОСОБ №1
    Если функция должна работать паралельно с основной программой и периодически возвращать в программу информацию о ходе своего выполнения, то можно например поступить так (основа для примера взята из "Visual Basic 6.0" MicrosoftPress):
    Создаем форму кидаем на нее метку и 2 кнопки: cmdStart и cmdStop.
    Добавляем класс с именем Test, в нем-то и будет находится долгоиграющая функция
    Код для формы:

    Option Explicit
    'Объявление события класса в форме
    Private WithEvents mTestFunc As Test
    'Переменная прерывания функции и завершения работы программы
    Private bCancel As Boolean

    Private Sub cmdStart_Click()
    'Прерывание функции запрещено
    bCancel = False
    'Вызов функции
    mTestFunc.TestFunc (10) '10 - параметр передаваемый в функцию
    'Если bCancel=True, то функция прервана
    If bCancel Then Label1.Caption = "Break"
    'Разрешить завершение программы
    bCancel = True
    End Sub

    Private Sub cmdStop_Click()
    ' Прервать функцию, функция будет прервана при очередном вызове события
    bCancel = True
    End Sub

    Private Sub Form_Load()
    'Создать объект класса Test
    'И связать WithEvents с ним
    Set mTestFunc = New Test
    'Разрешить завершение программы
    bCancel = True
    End Sub

    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    'Нельзя завершать программу, пока не завершиться выполнение функции
    Cancel = Not bCancel
    If Cancel Then MsgBox "Завершите работу фукции", vbOKOnly
    End Sub

    ' Событие вызываемое в форме функцией
    Private Sub mTestFunc_TestEvent(ByVal lTest As Long, Cancel As Boolean)
    'Вывод хода выполнения функции
    Label1.Caption = lTest
    If bCancel Then Cancel = True
    End Sub
    Код для класса:

    Option Explicit
    'Задаем событие, которое будет вызываться в основной программе
    'Первое значение - статус выполнения, процент выполнения и т.д.
    'Второе значение - запрос на прерывание операции, ОБЯЗАТЕЛЬНО ПО ССЫЛКЕ !!!
    Public Event TestEvent(ByVal lTest As Long, ByRef Cancel As Boolean)

    ' lParam1 - Передаваемое в функцию значение
    Public Sub TestFunc(ByVal lParam1 As Long)
    Dim sStart As Single 'Время старта
    Dim sInterval As Single 'Интервал вызова события
    Dim bCancel As Boolean
    sStart = Timer
    sInterval = Timer
    ' Для примера время выполнения задается по таймеру
    ' В конкретной задаче вызывать можно в цикле или чему-нибудь подобному
    Do While Timer < (sStart + 100)
    ' Код реальной функции
    '....
    '....
    ' Вызов события 1 раз в секунду
    If Timer > (sInterval) Then
    sInterval = Timer + 1
    'Первое значение - статус выполнения, процент выполнения и т.д.
    'Второе значение - запрос на прерывание операции
    RaiseEvent TestEvent(Timer - sStart, bCancel)
    'При отмене выход из фунции
    If bCancel Then Exit Sub
    End If
    'Передать квант времени системе
    'Необходимо для отрисовки экрана и отработки
    'системных событий программой и системой
    DoEvents
    Loop
    End Sub

    СПОСОБ №2
    Если же функция работает независимо от основной программы, то оформи её в отдельной форме с запуском в немодальной форме:
    Form1.Visible = True 'Показать форму
    Form1.Test1 (10) 'Вызвать функцию
    И САМОЕ ГЛАВНОЕ В СВОЕЙ ФУНКЦИИ РЕГУЛЯРНО ВЫЗЫВАЙ:
    DoEvents

    Ответ:

    Автор ответа: Mike

    1) Помести свою функцию в отдельное немодальное окно, создай невидимый экземпляр окна, запусти свою ф-цию. Периодически можешь проверять состояние этого окна (атрибуты какие-нибудь, например) на предмет прогресса твоей функции.

    2) Используй DoEvents в теле функции. Это позволит приложению выполнить обработку графических событий и выполнить, например, прорисовку
    прогресс-бара

    Вопрос:

    Как программно создавать/удалять меню, подменю и т.д.?

    Ответ:

    Автор ответа: Дмитрий

    Используй массивы элементов управления.
    При создании меню необходимо задать индекс (поле Index). А в коде написать:

    Dim i As Integer
    i = mnuFile.UBound
    Load mnuFile(i+1)
    mnuFile(i+1).Visible = True
    mnuFile(i+1).Caption = "Caption"

    При этом если необоходимо сохранить новую структуру меню используй реестр или INI-файлы

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 189.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск. Присылайте коды!!!
    Читайте!

    Содержание выпуска

    • Книги

    • Эксперт

    • Какой аналог функций "Trunc" и "shl" (из Delphi) в VB?
    • Как вывести список файлов в указанной папке с помощью FSO?
    • К какому интервалу приналежат коды цифр?
    • Как соединить точки линиями?
    • Как обработать обращение к пустому дисководу?

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти здесь.

    наверх

    Эксперт

    - Привет, Серый.
    - Угу, привет. Ты проходи, садись, я щас, с функцией тут разберусь...
    - Да я на момент. Вопросец имеется.
    - Вопросец, вопросец... Так, тут переменная не объявлена... Вопросец... С вопросами в систему, к экспертам... А тут точку не поставил! Вот она где, соб-бака!!
    - Ты че, какая система? Ты о чем?
    - О! Все, работает... Чего ты говоришь?
    - Ты про каких это экспертов тут заикаешься?
    - А-а. А ты что, первый раз слышишь, что ли? Ты на СообЧа бывал?
    - Где?!!
    - Да вот, гляди. Щас соединимся... Во! http://soobcha.ru, зришь?
    - М-да... Занятно. Так я с вопросом к тебе...
    - А я вот и говорю: туда иди, в систему "Эксперт", там ответят.
    - Это чайники, что ли, ответят?
    - Не сомневайся, ответят. Там у них такое наворочено... Короче, ты по почте вопрос свой задаешь - и все:)))))) Больше не изволь беспокоиться, там они сами будут искать ответ на твой вопрос. А через некоторое время вывалят тебе на ящик не один, а несколько ответов. Пользуйся и радуйся:)
    - А чего это они там такие добрые да услужливые? У них чего, своих проблем нет? Сколько я должен платить за такое трогательное беспокойство?
    - Ну, это немного. Меньше, чем ты думаешь:) Тебе достаточно только подтвердить правильный ответ. Давишь на соответствующую ссылку, дескать, вот этот ответ мне понравился, помог, и я доволен. Просто пустое письмо засылаешь к ним, и вся оплата. А если хочешь у них экспертом стать, то пожалуйста, регистрируйся и отвечай на вопросы.
    - Кем? Экспертом?
    - А что? Что-то ты ведь знаешь, не вчера за комп сел.
    - А на фига мне это надо? Разбираться с чужими проблемами... У меня своих - хоть отбавляй...
    - Ага. Вот ты только что спрашивал: а сколько? И если уж ты со своими проблемами обращаешься к людям, то ведь надеешься, что тебе помогут. А сам-то что, влом, что ли, помочь кому-то? Да ладно! Тебя, вобщем-то, никто и не тянет, не заставляет. А вот те, кому интересно, кому не жаль поделиться, те там и работают. Я, между прочим, давно уже с ними.
    - В смысле, экспертом, что ли, заделался? И сколько тебе платят?
    - А ты не прикалывай. Там никто никому не платит. А вот конкурсы, между прочим, проводят, и не хилые. Представляешь, за лучший ответ дают бесплатно три месяца платного хостинга, да еще домен регистрируют. За просто так. А вот тебе, если ты задашь самый лучший вопрос, тоже приз может выгореть.
    - Это как: лучший? На который никто ответить, что ли, не сможет? Так я щас таких вопро...
    - Причем тут это? Просто ты, если вопрос пишешь к ним, так сподобься хоть запятые в нужных местах поставить, там, грамотно, короче, обрисуй свой трабл.
    - Ну ладно, въехал. Ты мне вот лучше помоги с моим траблом. Мой Фотошоп не хочет по русски работать...
    - Ха, так этот трабл там уже сколько раз появлялся. У них на сайте и ответ есть... Вот, любуйся: Заходим в редактор реестра (regedit.exe). Находим ключ HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\Nls\Codepage В нем изменяем значение параметра 1252 с cp_1252.nls на cp_1251.nls. Перезагружаемся...
    - Понял... погоди, запишу...
    - Да чего записывать? Шагай домой, входи на сайт и копируй...
    - Да я ссылку запишу... Слушай, а как там в эту систему вопрос задать? Вообще, как она работает?
    - Так тут же, на сайте, все есть. А вообще, можешь по почте пустое письмо загнать на mailto:reply.infoexpert@soobcha.ru, и получишь всю необходимую инфу. А вообще, ты лучше в следующий раз с вопросами не ко мне, а туда. Может, я и отвечу там.
    - А не проше тебе здесь ответить?
    - Э-э-э... Там я баллы зарабатываю...
    - А это еще зачем?
    - Ладно, мотай. Дома почитаешь, все о них узнаешь. У меня тут халтурка... Давай, пока.
    - Пока. А как ты экспертом там зарегился?
    - Иди, иди! Инфу читай...

    наверх

    Какой аналог функций "Trunc" и "shl" (из Delphi) в VB?

    Вопрос:

    Перевожу небольшой алгоритм из делфи в VB. Меня интересует что такое "Trunc" и "shl" и есть ли аналоги этих операторов в VB.

    Ответ:

    shl - это битовая функция - означает сдвиг влево - в VB прямого аналога нет, но можно заменить на

    and 2^номер бита

    Функция выглядит примерно так:

    Function shl(ByVal Value As Byte, ByVal Shift As Byte) As Byte
         Dim i As Byte, Mask As Byte
         For i = 1 To Shift
             Mask = Mask + 2 ^ (8 - i)
             'со знаковым типом здесь возникает переполнение
         Next
         shl = ((Value And (Not Mask)) * 2 ^ Shift) And &HFF
    End Function

    Function shr(ByVal Value As Byte, ByVal Shift As Byte) As Byte
         Dim i As Byte, Mask As Byte
         For i = 0 To Shift
             Mask = Mask + 2 ^ (7 - i)
         Next
         Mask = (Value And Mask) / (2 ^ Shift)
         If Mask Mod 2 = 0 And Mask <> 0 Then Mask =Mask - 1
         shr = Mask
    End Function

    Алексей Вишневский

    наверх

    Как вывести список файлов в указанной папке с помощью FSO?

    Вопрос:

    Как вывести список файлов в указанной папке с помощью FSO?

    Ответ:

    Dim fs, fold, item
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set fold = fs.getfolder("c:\winnt\")
    For Each item In fold.Files
         msgbox item.Name
    Next

     Paponov Igor

    наверх

    К какому интервалу приналежат коды цифр?

    Вопрос:

    Как сделать проверку на предмет нахождения цифр в строке, там как то в кодах. Напомните эти интервалы.

    Ответ:

    С &h30 по &h39
    или по десятиричной системе - с 48 по 57
    Алексей Вишневский

    Если еще раз возникнет такой вопрос, напиши в окне Immediate такое:
    ? asc("1")
     И там напишется код символа "1". Это - очень удобно.

    Артем Кривокрисенко

    наверх

    Как соединить точки линиями?

    Вопрос:

    На форме с помощью цикла появляются точки. Так-вот, как мне соединить эти точки линиями?

    Ответ:

    Разверни PictureBox по форме и в ней Line (x1,y1) - (x2,y2) где первая это новая координаты первой точки, а вторая пара - предыдущей точки.

    Kvark

    наверх

    Как обработать обращение к пустому дисководу?

    Вопрос:

    Как сделать так, чтобы при обращении к пустому флопику (А:\), выдовалось, стандартное сообщение, что диска нет..., или, если можно, то чтобы вообще ничего не выдовалось?

    Ответ:

    On Error Resume Next

    Поставишь перед обращением к флопику и никаких ошибок!

    Забаев Сергей

    On error goto ErrH
    ToDisk:
    Тут обратиться к диску
    on error goto o

    Exit sub

    NoDisk:
    Тут сделать все, что надо сделать, если нет диска.
    exit sub

    errh:
    if msgbox ("НЕТ ДИСКЕТЫ!!! ВСТАВЬТЕ ДИСКЕТУ!!!",vbCritical _
               +vbRetryCancel) = vbRetry then
               goto ToDisk
    else
         goto NoDisk
    end if
    end sub

    Артем Кривокрисенко

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Laguna Ukraine

    Ответ ожидается по этому адресу

    Если у формы нет границ (то есть форма у меня представлена графически, в том числе и заголовок формы), как сделать так, чтобы отображалась иконка на панели задач (все знают, что если окно без границ у такого приложения не будет отображаться иконка, которая задана свойству Icon). Подскажите, если не трудно, решение проблемы (но только чтобы работало под всеми версиями ОС Windows).

    Автор вопроса: Laguna Ukraine

    Ответ ожидается по этому адресу

    Некоторые сайты проверяют тип браузера пользователя. А если доступ к сайту происходит не из браузера как можно "обмануть" такой сайт (другими словами, как ему послать сведения, что используется браузер, например IE)? Слышал что есть такая вещь как "User Agent", которая по запросу сайта отправляет ему строку с данными о якобы используемом бразузере. Но как и при помощи чего использовать этот "User Agent" из своей программы? Поподробнее, если можно и небольшой примерчик.

    Автор вопроса: oriental

    Ответ ожидается по этому адресу

    Как на VB6 сделать отправку письма без SMTP (т.е. пакетами)?

    Автор вопроса: Дмитрий

    Ответ ожидается по этому адресу

    Мне необходимо программо перейти на другую вкладку контрола MultiPage. Я смотрел справку, но ничего не нашел.

    Автор вопроса: OXYGEN

    Ответ ожидается по этому адресу

    Есть несколько картинок (BMP) в ресурсах приложения. Как сделать, чтобы при загрузке формы в PictureBox произвольно (!) отображалась одна из этих картинок?

    Автор вопроса: Борис

    Ответ ожидается по этому адресу

    Где можно найти описание DirectX для чайников и применение в Visual Basic.

    Автор вопроса: Андрей

    Ответ ожидается по этому адресу

    Кто подскажет, что за файлы баз данных файлы .tps? И самое главное, как с ними работать под VB 6?

    Автор вопроса: Дмитрий

    Ответ ожидается по этому адресу

    Скажите как мне в программе без формы получить код нажатой клавиши.

    Автор вопроса: Sergey

    Ответ ожидается по этому адресу

    А как можно программно задать в MExcel двухстороннюю печать? (типа распечатать с одной стороны страницы, а потом с обратной).

    Автор вопроса: Renat

    Ответ ожидается по этому адресу

    Как перейти в полноэкранный режим в DirectX 8?

    Автор вопроса: Renat

    Ответ ожидается по этому адресу

    Где можно достать инфу о DirectX 8 для VB (особенно о Direct3D)?

    Автор вопроса: badDRAGON bad

    Ответ ожидается по этому адресу

    Как с моей программы можно "нажимать кнопки" на другой программе?

    Автор вопроса: Алексей

    Ответ ожидается по этому адресу

    У кого-нибудь есть готовый пример, который меняет не только разрешение экрана, но и частоту обновления? Любые варианты решения приемлемы.

    Автор вопроса: SMM

    Ответ ожидается по этому адресу

    Создаю контрол (что-то типа анимированного GIFa). Постоянно мерцает белая полоса. Как от неё избавиться?

    Автор вопроса: Lexus

    Ответ ожидается по этому адресу

    Делаю проект с возможностью сворачивания в SystemTray (с помощью API или через контрол). В среде разработки все работает прекрасно. После компиляции - тоже. Но до момента добавления файла program.exe.manifest. Откомпилированная программа не запускается, выдавая при этом только звуковой сигнал об ошибке и никаких вияуальных сообщений. Система-WinXP бея сервис-паков. Хотя на Win2003 server все работает очень замечательно.

    Автор вопроса: Костик

    Ответ ожидается по этому адресу

    Как можно средствами "Drag & Drop" осуществить перенос файлов из внешних программ (таких, как файловые менеджеры) в собственный проект на VB. (Как это делает WinAmp)?

    Ответы:

    Вопрос:

    Можно ли средствами VB сделать программу бея окна (формы)? Только не чтоб окно было невидимым, а чтоб его ваще не было.

    Ответ:

    Автор ответа: •Creator•

    Есть много вариантов создания. Первый это создать Standart EXE, в нем удалить форму(ы), создать модуль (.bas файл), в котором создаешь входную точку, то бишь функция Sub Main() и в ней начинаешь кодить. Потом установить в Project -> Properties -> Startup Object "Sub Main", что в принципе уже будет установлено.
    Ну а другие варианты - это создание не *EXE проекта, ха...

    Ответ:

    Автор ответа: Виталик

    Конечно можно сделать, чтобы окна совсем не было. В менеджере проекта правый клик по имени формы и выбрать "Удалить". В модуле написать

    public Sub Main()
    end sub

    Затем в том же меню проекта кликнуть правой по имени проекта и выбрать "Параметры". Там указать Стартовый объект Sub Main(). И всё. Пишешь свои процедуры, функции в модуле.

    Вопрос:

    Какая функция на VB переводит строку из OEM/DOS в Win кодировку? Есть ли функции, типа Chr и Asc, воявращающие значения в "досовской" кодировке?

    Ответ:

    Автор ответа: Memphis

    Есть две API-функции, предназначенные для преобразования кодировок. Когда-то в рассылке был следующий код, который я использовал в нескольких своих программах. В принципе, работает...

    Option Explicit

    Private Declare Function CharToOemBuff _
    Lib "user32" _
    Alias "CharToOemBuffA" (ByVal lpszSrc As String, _
    ByVal lpszDst As String, _
    ByVal cchDstLength As Long _
    ) As Long

    Private Declare Function OemToCharBuff _
    Lib "user32" _
    Alias "OemToCharBuffA" (ByVal lpszSrc As String, _
    ByVal lpszDst As String, _
    ByVal cchDstLength As Long _
    ) As Long

    ' from DOS into WIN
    Public Function ToAnsi(s As String) As String
    Dim Buffer As String
    Buffer = Space(Len(s) + 1)
    OemToCharBuff s, Buffer, Len(s)
    ToAnsi = Left(Buffer, Len(s))
    End Function

    ' from WIN into DOS
    Public Function ToOEM(s As String) As String
    Dim Buffer As String
    Buffer = Space(Len(s) + 1)
    CharToOemBuff s, Buffer, Len(s)
    ToOEM = Left(Buffer, Len(s))
    End Function

    Вопрос:

    Подскажите как програмно получить строковый параметр реестра в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mailto\shell\open\command. Там значение по умолчанию. Если кто знает, то напишите, как записывать и читать из реестра.

    Ответ:

    Автор ответа: oriental

    По моему это самый простой способ записи в реестр

    Чтение с реестра

    Set Reg = CreateObject("WScript.Shell")
    df = Reg.RegRead("(твой ключ)")

    Запись в реестр

    Set Reg = CreateObject("WScript.Shell")
    Reg.Regwrite "(твой ключ)","(записываемое значение)"

    Удаление

    Set Reg = CreateObject("WScript.Shell")
    Reg.RegDelete "твой ключ"

    Ответ:

    Автор ответа: Виталик

    Самый простой способ записи и чтение реестра такой:

    Set reg = CreateObject("WScript.Shell")
    'запись

    reg.RegWrite
    "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mailto\shell\open\command\(По
    умолчанию)", Text2 Dim
    'чтение
    Val as String
    Val = reg.RegRead
    "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mailto\shell\open\command\(По
    умолчанию)"
    Msgbox Val , ,"Значение реестра"
    'удаление
    reg.RegDelete
    "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mailto\shell\open\command\(По
    умолчанию)"
    В каждо событии клик или лоад нужно писать Set reg =
    CreateObject("WScript.Shell")

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 190.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск!
    Читайте!

    Содержание выпуска

    • Книги

    • Эксперт

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Один момент из жизни форума: VB 6.0 и Access 2002

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Эксперт

    - Привет, Серый.
    - Угу, привет. Ты проходи, садись, я щас, с функцией тут разберусь...
    - Да я на момент. Вопросец имеется.
    - Вопросец, вопросец... Так, тут переменная не объявлена... Вопросец... С вопросами в систему, к экспертам... А тут точку не поставил! Вот она где, соб-бака!!
    - Ты че, какая система? Ты о чем?
    - О! Все, работает... Чего ты говоришь?
    - Ты про каких это экспертов тут заикаешься?
    - А-а. А ты что, первый раз слышишь, что ли? Ты на СообЧа бывал?
    - Где?!!
    - Да вот, гляди. Щас соединимся... Во! http://soobcha.ru, зришь?
    - М-да... Занятно. Так я с вопросом к тебе...
    - А я вот и говорю: туда иди, в систему "Эксперт", там ответят.
    - Это чайники, что ли, ответят?
    - Не сомневайся, ответят. Там у них такое наворочено... Короче, ты по почте вопрос свой задаешь - и все:)))))) Больше не изволь беспокоиться, там они сами будут искать ответ на твой вопрос. А через некоторое время вывалят тебе на ящик не один, а несколько ответов. Пользуйся и радуйся:)
    - А чего это они там такие добрые да услужливые? У них чего, своих проблем нет? Сколько я должен платить за такое трогательное беспокойство?
    - Ну, это немного. Меньше, чем ты думаешь:) Тебе достаточно только подтвердить правильный ответ. Давишь на соответствующую ссылку, дескать, вот этот ответ мне понравился, помог, и я доволен. Просто пустое письмо засылаешь к ним, и вся оплата. А если хочешь у них экспертом стать, то пожалуйста, регистрируйся и отвечай на вопросы.
    - Кем? Экспертом?
    - А что? Что-то ты ведь знаешь, не вчера за комп сел.
    - А на фига мне это надо? Разбираться с чужими проблемами... У меня своих - хоть отбавляй...
    - Ага. Вот ты только что спрашивал: а сколько? И если уж ты со своими проблемами обращаешься к людям, то ведь надеешься, что тебе помогут. А сам-то что, влом, что ли, помочь кому-то? Да ладно! Тебя, вобщем-то, никто и не тянет, не заставляет. А вот те, кому интересно, кому не жаль поделиться, те там и работают. Я, между прочим, давно уже с ними.
    - В смысле, экспертом, что ли, заделался? И сколько тебе платят?
    - А ты не прикалывай. Там никто никому не платит. А вот конкурсы, между прочим, проводят, и не хилые. Представляешь, за лучший ответ дают бесплатно три месяца платного хостинга, да еще домен регистрируют. За просто так. А вот тебе, если ты задашь самый лучший вопрос, тоже приз может выгореть.
    - Это как: лучший? На который никто ответить, что ли, не сможет? Так я щас таких вопро...
    - Причем тут это? Просто ты, если вопрос пишешь к ним, так сподобься хоть запятые в нужных местах поставить, там, грамотно, короче, обрисуй свой трабл.
    - Ну ладно, въехал. Ты мне вот лучше помоги с моим траблом. Мой Фотошоп не хочет по русски работать...
    - Ха, так этот трабл там уже сколько раз появлялся. У них на сайте и ответ есть... Вот, любуйся: Заходим в редактор реестра (regedit.exe). Находим ключ HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\Nls\Codepage В нем изменяем значение параметра 1252 с cp_1252.nls на cp_1251.nls. Перезагружаемся...
    - Понял... погоди, запишу...
    - Да чего записывать? Шагай домой, входи на сайт и копируй...
    - Да я ссылку запишу... Слушай, а как там в эту систему вопрос задать? Вообще, как она работает?
    - Так тут же, на сайте, все есть. А вообще, можешь по почте пустое письмо загнать на mailto:reply.infoexpert@soobcha.ru, и получишь всю необходимую инфу. А вообще, ты лучше в следующий раз с вопросами не ко мне, а туда. Может, я и отвечу там.
    - А не проше тебе здесь ответить?
    - Э-э-э... Там я баллы зарабатываю...
    - А это еще зачем?
    - Ладно, мотай. Дома почитаешь, все о них узнаешь. У меня тут халтурка... Давай, пока.
    - Пока. А как ты экспертом там зарегился?
    - Иди, иди! Инфу читай...

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 25.08.2003 01:46 | Раздел: Примеры кода | Автор: VBNet

    Автозаполнение в ComboBox'е - Добавте на форму один ComboBox

    Дата: 21.08.2003 20:32 | Раздел: Примеры кода | Автор: Alex

    AnoMail - Анонимный почтовик. На самом деле требует тщательной настройки, переработки... благо - код с кучей комментариев прилагается:) От автора: Пока не тянет аттачи.... не умеет юзать прокси...да вообще много чего не умеет.:) Так что скажем он условно анонимный =)

    Дата: 21.08.2003 20:29 | Раздел: Примеры кода | Автор: Дорохов Кирилл

    АНТИ - Artmoney - От автора: Пример показывает, как защитить вашу программу от программ-взломщиков, типа Artmoney и других.

    Дата: 19.08.2003 11:00 | Раздел: ActiveX контролы | Автор: Юмашин Алексей

    FormToINI - Полезная штука - позволяет привязать любой контрол формы к ключу реестра или INI-файла.

    Последние 20 тем форума на VBNet.Ru:

    10:39 / 25 авг. Библиотеки JET, проблемы | Хитов: 0 | Ответов: 0
    22:00 / 24 авг. Ассемблер в VB | Хитов: 42 | Ответов: 3
    21:51 / 24 авг. Новые разделы | Хитов: 18 | Ответов: 0
    17:55 / 24 авг. ASP и всё!!!!!!!!! | Хитов: 18 | Ответов: 1
    13:08 / 24 авг. ICMP | Хитов: 15 | Ответов: 1
    11:21 / 24 авг. Облом, блин! | Хитов: 33 | Ответов: 2
    03:42 / 24 авг. Run-time error '525: Data Access Error | Хитов: 20 | Ответов: 1
    15:48 / 23 авг. SQL - INSERT INTO | Хитов: 20 | Ответов: 1
    13:51 / 23 авг. Помогите с Exampl'ом по намыливанию | Хитов: 23 | Ответов: 0
    08:45 / 23 авг. regedit и его свойства | Хитов: 29 | Ответов: 1
    20:26 / 22 авг. Ввод данных по МАСКЕ ??? | Хитов: 67 | Ответов: 1
    16:51 / 22 авг. Работа с модемом | Хитов: 34 | Ответов: 2
    11:22 / 22 авг. Help!!! | Хитов: 59 | Ответов: 4
    10:57 / 22 авг. Преобразование чисел из одной системы исчислен... | Хитов: 36 | Ответов: 2
    10:24 / 22 авг. ListBox | Хитов: 44 | Ответов: 2
    08:41 / 22 авг. Как мне данные из VB перекинуть в Excell или Wo... | Хитов: 67 | Ответов: 11
    05:37 / 22 авг. Процессы, их уничтожение, Hook'и, WM_CLOSE | Хитов: 34 | Ответов: 3
    19:51 / 21 авг. Ищу програмистов- движок поисковика | Хитов: 29 | Ответов: 0
    18:49 / 21 авг. Ностальгировать сюда | Хитов: 55 | Ответов: 3
    12:57 / 21 авг. Формат вывода чисел | Хитов: 32 | Ответов: 2

    Последние поступления в Библиотеку кодов:

    наверх

    Новости сайта MSDN

    наверх

    Новости сайта GotdotNet

    Новые статьи:

    наверх

    Новости сайта dotSite

    Новые статьи:

    Новые примеры:

    наверх

    Один момент из жизни форума: VB 6.0 и Access 2002

    Вопрос:
    Автор вопроса: Koe

    У меня во время разработки приложения, при присоединее базы Access 2002 (XP) VB ругается на неизвестный формат базы...Подскажите, что делать?

    Ответы:

    Атор: Черный ворон
    Для Access 2002 нужен поставщик данных Microsoft.Jet.OLEDB.4.0. Если работаешь на WINDOWS XP то все должно получиться он там есть.

    Атор: Koe
    Да, работаю под XP, просто не сказал главного...VB я ставил отдельно (версия 6.0), с пиратского диска.Может там нужно какие-нить библиотеки подключить?

    Атор: Koe
    Просто пишу

    Data1.DatabaseName = App.Path & "\biblio.mdb"
    Data1.Refresh

    И если база 97-ая, то все открывается, а если она - 2002 то говорит "Нераспознаваемый формат базы данных".

    Атор: Kulibin
    По-моему, твой дата не имеет поддержки последнего Access.

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Максим

    Ответ ожидается по этому адресу

    Как содержимое графического контейнера, сояданное посредством VB сохранить в *.jpeg? Но нормальный jpeg, а то он у меня получается того же раямера, что и bmp.

    Автор вопроса: Максим

    Ответ ожидается по этому адресу

    Как в VB .Net сделать, чтобы тулбар дочернего окна отображался в родительском (MDI) окне?

    Автор вопроса: Данила

    Ответ ожидается по этому адресу

    Как в реестре осуществить поиск (как в редакторе реестра)?

    Ответы:

    Вопрос:

    Если у формы нет границ (то есть форма у меня представлена графически, в том числе и заголовок формы), как сделать так, чтобы отображалась иконка на панели задач (все знают, что если окно без границ у такого приложения не будет отображаться иконка, которая задана свойству Icon). Подскажите, если не трудно, решение проблемы (но только чтобы работало под всеми версиями ОС Windows).

    Ответ:

    Автор ответа: Memphis

    Насколько я помню, у каждой формы в свойствах есть свойство ShowTaskbar (по-моему, так). Его нужно выставить в True, в свойство Icon формы записывать иконку, затем в Project Properties выбрать иконку приложения. Тогда при запуске программы её иконка будет отображаться на панели задач как полноправный процесс.

    Вопрос:

    Есть несколько картинок (BMP) в ресурсах приложения. Как сделать, чтобы при загрузке формы в PictureBox произвольно (!) отображалась одна из этих картинок?

    Ответ:

    Автор ответа: Memphis

    Нужно включить генератор случайных чисел, задать диапазон (например, если у Вас 6 картинок, диапазон генератора будет составлять 6 единиц), и при загрузке формы считывать это случайное значение и загружать по нему соответствующую картинку в PictureBox.

    Ответ:

    Автор ответа: Максим

    С помощью RND напиши функцию для этого.

    Вопрос:

    Где можно найти описание DirectX для чайников и применение в Visual Basic.

    Ответ:

    Автор ответа: Артем Кривокрисенко

    DirectX - это в принципе не для VB, а для Си. Описание можно достать в Microsoft DirectX SDK. Но в принципе быстрого и красивого не получишь.

    Ответ:

    Автор ответа: Максим

    Если я не ошибаюсь, то адрес такой:
    www.fridas.ru/anti/wrote

    Вопрос:

    Скажите как мне в программе без формы получить код нажатой клавиши.

    Ответ:

    Автор ответа: Максим

    Может с помощью API getkeystate…

    Вопрос:

    Как с моей программы можно "нажимать кнопки" на другой программе?

    Ответ:

    Автор ответа: KAS (c)

    Есть команды AppActivate и SendKeys:

    AppActivate "ЗаголовокОкна", 1
    Делает окно активным

    SendKeys "Строка команд"

    Пример:

    SendKeys "{F10}{Down}{Up}{Enter}"

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 191.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск. Присылайте коды!!!
    Читайте!

    Содержание выпуска

    • Книги

    • Эксперт

    • Как в таблице DBGrid изменить названия колонок???
    • Как загрузить в строковую переменную файл с диска?
    • Как выделить определенный элемент в listbox?
    • Как узнать размер массива?
    • Где можно взять пример отправки почты на VB с помощью Winsock?

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти здесь.

    наверх

    Эксперт

    - Привет, Серый.
    - Угу, привет. Ты проходи, садись, я щас, с функцией тут разберусь...
    - Да я на момент. Вопросец имеется.
    - Вопросец, вопросец... Так, тут переменная не объявлена... Вопросец... С вопросами в систему, к экспертам... А тут точку не поставил! Вот она где, соб-бака!!
    - Ты че, какая система? Ты о чем?
    - О! Все, работает... Чего ты говоришь?
    - Ты про каких это экспертов тут заикаешься?
    - А-а. А ты что, первый раз слышишь, что ли? Ты на СообЧа бывал?
    - Где?!!
    - Да вот, гляди. Щас соединимся... Во! http://soobcha.ru, зришь?
    - М-да... Занятно. Так я с вопросом к тебе...
    - А я вот и говорю: туда иди, в систему "Эксперт", там ответят.
    - Это чайники, что ли, ответят?
    - Не сомневайся, ответят. Там у них такое наворочено... Короче, ты по почте вопрос свой задаешь - и все:)))))) Больше не изволь беспокоиться, там они сами будут искать ответ на твой вопрос. А через некоторое время вывалят тебе на ящик не один, а несколько ответов. Пользуйся и радуйся:)
    - А чего это они там такие добрые да услужливые? У них чего, своих проблем нет? Сколько я должен платить за такое трогательное беспокойство?
    - Ну, это немного. Меньше, чем ты думаешь:) Тебе достаточно только подтвердить правильный ответ. Давишь на соответствующую ссылку, дескать, вот этот ответ мне понравился, помог, и я доволен. Просто пустое письмо засылаешь к ним, и вся оплата. А если хочешь у них экспертом стать, то пожалуйста, регистрируйся и отвечай на вопросы.
    - Кем? Экспертом?
    - А что? Что-то ты ведь знаешь, не вчера за комп сел.
    - А на фига мне это надо? Разбираться с чужими проблемами... У меня своих - хоть отбавляй...
    - Ага. Вот ты только что спрашивал: а сколько? И если уж ты со своими проблемами обращаешься к людям, то ведь надеешься, что тебе помогут. А сам-то что, влом, что ли, помочь кому-то? Да ладно! Тебя, вобщем-то, никто и не тянет, не заставляет. А вот те, кому интересно, кому не жаль поделиться, те там и работают. Я, между прочим, давно уже с ними.
    - В смысле, экспертом, что ли, заделался? И сколько тебе платят?
    - А ты не прикалывай. Там никто никому не платит. А вот конкурсы, между прочим, проводят, и не хилые. Представляешь, за лучший ответ дают бесплатно три месяца платного хостинга, да еще домен регистрируют. За просто так. А вот тебе, если ты задашь самый лучший вопрос, тоже приз может выгореть.
    - Это как: лучший? На который никто ответить, что ли, не сможет? Так я щас таких вопро...
    - Причем тут это? Просто ты, если вопрос пишешь к ним, так сподобься хоть запятые в нужных местах поставить, там, грамотно, короче, обрисуй свой трабл.
    - Ну ладно, въехал. Ты мне вот лучше помоги с моим траблом. Мой Фотошоп не хочет по русски работать...
    - Ха, так этот трабл там уже сколько раз появлялся. У них на сайте и ответ есть... Вот, любуйся: Заходим в редактор реестра (regedit.exe). Находим ключ HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\Nls\Codepage В нем изменяем значение параметра 1252 с cp_1252.nls на cp_1251.nls. Перезагружаемся...
    - Понял... погоди, запишу...
    - Да чего записывать? Шагай домой, входи на сайт и копируй...
    - Да я ссылку запишу... Слушай, а как там в эту систему вопрос задать? Вообще, как она работает?
    - Так тут же, на сайте, все есть. А вообще, можешь по почте пустое письмо загнать на mailto:reply.infoexpert@soobcha.ru, и получишь всю необходимую инфу. А вообще, ты лучше в следующий раз с вопросами не ко мне, а туда. Может, я и отвечу там.
    - А не проше тебе здесь ответить?
    - Э-э-э... Там я баллы зарабатываю...
    - А это еще зачем?
    - Ладно, мотай. Дома почитаешь, все о них узнаешь. У меня тут халтурка... Давай, пока.
    - Пока. А как ты экспертом там зарегился?
    - Иди, иди! Инфу читай...

    наверх

    Как в таблице DBGrid изменить названия колонок???

    Вопрос:

    Как в таблице DBGrid изменить названия колонок???

    Ответ:

    DataGrid1.Columns(0).Caption = "Новый заголовок"

    Дмитрий Данелия

    наверх

    Как загрузить в строковую переменную файл с диска?

    Вопрос:

    Как загрузить в строковую переменную файл с диска?

    Ответ:

    Public Function LoadTextFile(Path As String) As String
       Dim strFile As String

       Open Path For Binary As #1
       strFile = Space$(LOF(1))
       Get 1, , strFile
       Close #1
       LoadTextFile = strFile
    End Function

    Public Function SaveTextFile(Path As String, Text As String)
         Open Path For Binary As #1
         Put #1, , Text
         Close #1
    End Function

    Артем Кривокрисенко

    наверх

    Как выделить определенный элемент в listbox?

    Вопрос:

    Есть текстовое поле. Как при нажатии на кнопку выделить элемент в листе, соответствующий тексту в текстовом поле?

    Ответ:

    Dim i As Integer

    l = Text1.Text
    For i = 0 To List1.ListCount - 1
    Select Case List1.List(i)
    Case Is = l
    List1.ListIndex = i
    List1.SetFocus
    End Select
    Next i

    Yuliya Shelmuk

    dim strFind as string
    strFind="абракадабра" & chr(0)
    lngtemp=sendmessage(List1.hwnd,LB_SELECTSTRING,1,strText)

    В переменную lngTemp вернется позиция выделенного элемента.

    Артем Кривокрисенко

    наверх

    Как узнать размер массива?

    Вопрос:

    Имеется масив созданый из строк
    AllStrings = Split(tmp, vbCrLf)
     Как узнать его размер?

    Ответ:

    Ubound(AllStrings) вернет конкретно что нужно.

    Артем Кривокрисенко

    наверх

    Где можно взять пример отправки почты на VB с помощью Winsock?

    Вопрос:

    Где можно взять пример отправки почты на VB с помощью Winsock? Желательно чтобы была возможность добавлять в сообщение аттачи.

    Ответ:

    Вот здесь лежат несколько примеров:
    http://azbukavb.narod.ru/vbcod/vbcod13.html

    Yuliya Shelmuk

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Богдан

    Ответ ожидается по этому адресу

    Из VBA Excel вызываю с помощью Shell архиватор ZIP, чтобы заархивировать файл по указанному пути. К сожалению не работает. Как правильно это сделать?

    Автор вопроса: mrlexus

    Ответ ожидается по этому адресу

    Помогите разобраться с функциями библиотеки UxTheme.dll (библиотека, отвечающая за темы XP). В MSDN есть описание функций только для C++.

    Автор вопроса: Calhoon

    Ответ ожидается по этому адресу

    Как отключить менюшку выбора кодировок в CommonDialog.Font? Или как узнать, какая кодировка была выбрана?

    Автор вопроса: Максим

    Ответ ожидается по этому адресу

    Вопросы примитивные, но я так и не разобрался: Интересует, как отрабатывать нажатие кнопок на тулбаре? Единственное, что мне удалось сделать, это конструкция типа:

    Select Case e.Button.Text
    Case tbButton.Text

    А также сходства по другим признакам... но неужели нет ни какого, например, индекса кнопки?
    Еще хочу знать, как пользоваться domainUpDown? Думаю, эти два вопроса взаимно связанны...

    Автор вопроса: Максим

    Ответ ожидается по этому адресу

    У combobox'а не стандартной консоли, как в vb6, и вообще, при появлении фокуса на него, весь текст выделяется и все, ни каких операций с нельзя делать. Создал свою консоль. Работает. Но, работать можно только со всем текстом, и нельзя, скажем, копировать часть текста, только весь!.. Но с клавы все нормально. Можно выделять текст, и делать все, что душе угодно! Может есть у комба какая-нибудь опция мышиной поддержки...

    Автор вопроса: Данила

    Ответ ожидается по этому адресу

    Проблема следующая: нужна нестандартная кнопка (т.е. круглая). Всё, что я скачивал, имеет много всяких фич, но они всё равно прямоугольные. Пробовал сам, сделал прозрачный gif с круглой кнопкой, рисую на форме Image, вставляю туда этот гиф, всё прекрасно. Но когда я пытаюсь оформить это в отдельное управление (т.к. постоянно таскать 4 имаджа не катит), появляется серый (и что ещё страшнее, прямоугольный) ореол. Что делать?

    Автор вопроса: Борис

    Ответ ожидается по этому адресу

    При использовании DirectX7 я соядал поверхность. А с помощью какой функции присвоить ей картинку? Если возможно, дайте полное описание функции.

    Автор вопроса: Nautis

    Ответ ожидается по этому адресу

    Я зничит пишу такую стороку:

    Set out = WScript.CreateObject("Outlook.Application")

    А он мне говорит что не может создать объект, Outlook 6 у меня установлен и прекрасно функционирует!

    Ответы:

    Вопрос:

    Есть несколько картинок (BMP) в ресурсах приложения. Как сделать, чтобы при загрузке формы в PictureBox произвольно (!) отображалась одна из этих картинок?

    Ответ:

    Автор ответа: Calhoon

    LoadResStrings Me
    n = int(число_картинок*rnd - 1)
    PictureBox.Picture = LoadPicture(GetSetting(bitmap, n))

    Вопрос:

    Как можно средствами "Drag & Drop" осуществить перенос файлов из внешних программ (таких, как файловые менеджеры) в собственный проект на VB. (Как это делает WinAmp)?

    Ответ:

    Автор ответа: Calhoon

    Я спрашивал на vbnet, мне дали ответ:

    Private Sub Form_Load()
    Me.OLEDropMode = 1
    End Sub

    Private Sub Form_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
    Debug.Print Data.Files(1)
    End Sub

    В Data.Files(1) получаешь имя файла который перетаскивают и с ним уже длаешь то что пожелаешь.

    Вопрос:

    Как содержимое графического контейнера, сояданное посредством VB сохранить в *.jpeg? Но нормальный jpeg, а то он у меня получается того же раямера, что и bmp.

    Ответ:

    Автор ответа: Максим

    Тёска! Это же битый вопрос! В этой рассылке уже 1000 раз объясняли, что лучший вариант: взять готовый контрол! Если не можешь успокоится, то тебе нужно искать алгоритм сжатия Joint Photographic Experts Group.

    Ответ:

    Автор ответа: Padasevana

    Скачал недавно библиотеку, но пока не рассматривал - поддержка большого числа графических форматов. http://www.xnview.com/download/GflAx-win.zip.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 192.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск!
    Читайте!

    Содержание выпуска

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Как передать в хранимую процедуру параметр?

    • Доска объявлений

    • Вопрос/Ответ

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 28.08.2003 21:54 | Раздел: Примеры кода | Автор: Барабошкин

    XP ProgressBar 1.0 - ActiveX Прогрессбар в стиле XP.

    Дата: 28.08.2003 21:52 | Раздел: Примеры кода | Автор: Last_Santa

    BalloonMessage - От автора: Пример показывает как в 2к/ХР добавить в трей Balloon ака системное уведомление, Код не мой, правда подправил чуть-чуть.

    Дата: 28.08.2003 21:23 | Раздел: Примеры кода | Автор: Александр (SanKo)

    AverTV - Лично я использовать и опробовать этот код на все сто процентов не смог, в виду технического отсутсивия некоторых состовляющих:). От автора: Пример управления проигрывателем WinAmp с помощью пульта дистанционного управления фирмы AverMedia

    Дата: 28.08.2003 21:23 | Раздел: Примеры кода | Автор: Александр (SanKo)

    Matrix Scr - Попытка создать свой скринсевер по-моему удалась на пять баллов! Очень простой код, с комментариями и поразительным результатом! Всем качать не задумываясь!

    Последние 20 тем форума на VBNet.Ru:

    12:32 / 3 сен. 435435 | Хитов: 0 | Ответов: 0
    12:29 / 3 сен. тест | Хитов: 0 | Ответов: 0
    11:01 / 3 сен. Профиль | Хитов: 119 | Ответов: 0
    04:21 / 3 сен. как получить список файлов на (не своем) веб-сайте | Хитов: 7 | Ответов: 0
    02:34 / 3 сен. ListView цвета, объекты или другой компонент ..... | Хитов: 8 | Ответов: 0
    23:42 / 2 сен. directory | Хитов: 25 | Ответов: 5
    20:52 / 2 сен. Вопрос по dll | Хитов: 25 | Ответов: 3
    18:54 / 2 сен. Как сделать окно прозрачным для сообщений? | Хитов: 15 | Ответов: 0
    16:48 / 2 сен. CrystalReportViewer | Хитов: 9 | Ответов: 0
    16:20 / 2 сен. Новое сообщение без темы | Хитов: 23 | Ответов: 2
    13:14 / 2 сен. Mac And Vb | Хитов: 13 | Ответов: 0
    12:37 / 2 сен. Проблемка с кнопкой из MS Form 2.0 | Хитов: 20 | Ответов: 0
    11:10 / 2 сен. Процессы | Хитов: 22 | Ответов: 1
    11:03 / 2 сен. Фокус | Хитов: 31 | Ответов: 2
    06:37 / 2 сен. 123 | Хитов: 1 | Ответов: 1
    22:32 / 1 сен. ----- | Хитов: 29 | Ответов: 2
    19:36 / 1 сен. вопрос по ORDER BY | Хитов: 32 | Ответов: 2
    15:25 / 1 сен. Игры в VB | Хитов: 84 | Ответов: 6
    15:18 / 1 сен. екуну | Хитов: 0 | Ответов: 0
    15:04 / 1 сен. Оцените сайт | Хитов: 75 | Ответов: 4

    Последние поступления в Библиотеку кодов:

    наверх

    Новости сайта MSDN

    наверх

    Новости сайта GotdotNet

    Новые статьи:

    наверх

    Новости сайта dotSite

    Новые статьи:

    • ASP.NET WebHandlers, или что такое .ashx файлы
      Мало кто знает, что web handlers можно использовать без прописывания их в web.config для определенных типов файлов, а путем прямого вызова его обработчика напрямую в строке запроса URL.

    Новые примеры:

    наверх

    Один момент из жизни форума: Как, используя ADODC, передать в хранимую процедуру параметр?

    Вопрос:
    Автор вопроса: Evgeny D

    Ситуация такая. Есть в SQL Server БД, в ней - хранимая процедура с входным параметром (дата). Для adodc задаю параметры:

    adodc.ConnectionString = "myDSN"
    adodc.CommandType = adCmdStoredProc
    adodc.RecordSource = "myProc"

    А как ей передать параметр (дату)?

    Ответы:

    Автор: MAGNUS
    Используй АДО для этого добавь ссылку на Microsoft AciveX Data Objects. А далее так

    dim rs as new Adodb.recordset
    rs.open "myProc(11/12/2002)" ,conenect
    grid.datasource=rs

    Где conenect - строка коннекта как и для адодц, если дсн то дсн.

    Автор: Noyra
    А если параметров несколько и они в переменных?

    Автор: MAGNUS
    Точно так же через запятую передавай остальные параметры.

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Вадим

    Ответ ожидается по этому адресу

    Как в DataGrid заставить работать Scroll mouse? (без таймера)
    (Visual Basic 6 sp5)

    Автор вопроса: ALEX

    Ответ ожидается по этому адресу

    Можно ли как-то менять программно курсоры мышки, звуки винды и фон десктопа? Ну как при настройке тем рабочего стола.

    Автор вопроса: Vlasenko Fedor

    Ответ ожидается по этому адресу

    Как создать панель инструментов похожую на Task Pane в Excel?
    Если у кого пример перемещения позици класса Scrolbar в окне (сдвиг самой панели вверх, вниз, вправо, влево) в Excel?

    Автор вопроса: -=CRAZYDIMA=-

    Ответ ожидается по этому адресу

    Есть файл - ехе, необходимо выполнить код его. Делаю маппингом, потом получаю адрес соответственно - ноль! Потом делал маппинг, получал из структуры IMAGE_LOADED (или что-то вроде этого) базовый адрес загрузки - ноль!
    К примеру необходимо выполнить код с третье команды.

    Автор вопроса: Максим

    Ответ ожидается по этому адресу

    Поместил свой "Блокнотик" в папку SendTo, но при отправки в него чего-нибудь он радует меня своим чистеньким белым личиком. Не подскажете код для обработки такого действия?

    Автор вопроса: Igor

    Ответ ожидается по этому адресу

    У меня такой код программы.

    RtxQ.Font.Name = CommonDialog1.FontName
    RtxQ.Font.Size = CommonDialog1.FontSize

    После исполнения в объекте RichTextBox шрифт и размер шрифта меняется для всего текста, что имеется в нем. А можно ли сделать так чтобы шрифт и размер шрифта менялись так как и в Worde (на выделеный текст, или же измения параметра перед печатанием текста). Если можно, то пришлите код программы. Просто я только начинаю изучать VB.

    Автор вопроса: Денис

    Ответ ожидается по этому адресу

    Кто нибудь знает как обрабатывать события джоймтика?

    Автор вопроса: Vlasenko Fedor

    Ответ ожидается по этому адресу

    Как правильно изменить рамеры класса "msoCommandBar" в Excel. Нужно для вставки формы 100х100. Используя SetWindowPos, размеры не изменяются.

    Автор вопроса: Nicekaifer

    Ответ ожидается по этому адресу

    Извените может кто нибудь подскажет как из VB6 редактировать mp3 tags. (Желательно любых весий). Может какую библиотеку подскажите. А лучше функции API, т.к. из XP при нажатии на свойства файла всё можно редактировать.

    Автор вопроса: Василий Козлов

    Ответ ожидается по этому адресу

    Как обработать скролинг на мыши?

    Автор вопроса: Василий Козлов

    Ответ ожидается по этому адресу

    Как програмно выделить строку в Объекте DataGrid?

    Автор вопроса: Laguna Ukraine

    Ответ ожидается по этому адресу

    Может кто-нибудь из опытных программеров подскажет как проверить существует (и доступен ли) указанный E-MAIL. Буду благодарен и за ссылку на исходник или статью.

    Автор вопроса: Данила

    Ответ ожидается по этому адресу

    Как осуществить поиск в реестре или узнать подключи определённого ключа?

    Автор вопроса: Sergey Lagovskiy

    Ответ ожидается по этому адресу

    Хочу разобраться, что же это за зверь такой - ASP.NET? Поставил .NET Framework, он вроде как все настроил, поставил обновление для ADO ... в общем все, что нужно установить до установки Visual Studio .NET, но саму студию не ставил (ее ставить не надо!), по идее все (в смысле ASP.NET) должно работать и без самой студии. Но вот как бы не так ... На простой код с выводом "HELLO WORLD!" браузер мне сообщает:
    Server Application Unavailable
    The web application you are attempting to access on this web server is currently unavailable. Please hit the "Refresh" button in your web browser to retry your request.
    Administrator Note: An error message detailing the cause of this specific request failure can be found in the system event log of the web server. Please review this log entry to discover what caused this error to occur.

    в логах обнаруживаю записи:
    1) aspnet_wp.exe could not be started. HRESULT for the failure: 800700CB
    2) aspnet_wp.exe could not be launched because the username and/or password supplied in the processModel section of the config file are invalid.

    Система: WINDOWS 2000 Server + SP3, настроен как контроллер домена
    Стоит Active Directory

    В чем проблема?
    Где можно почитать про ASP.NET (C#)? - Накидайте ссылок.

    Автор вопроса: damir@vpost.ru

    Ответ ожидается по этому адресу

    Как сделать, чтобы в DataGrid заголовок одной из колонок отображался полужирным начертанием?

    Ответы:

    Вопрос:

    Из VBA Excel вызываю с помощью Shell архиватор ZIP, чтобы заархивировать файл по указанному пути. К сожалению не работает. Как правильно это сделать?

    Ответ:

    Автор ответа: -=CRAZYDIMA=-

    Разбираться надо, я делал так:
    В папку, где лежал ЗИП клал необходимый для архивирования файл, делал сменить каталог(необходимый каталог делал Куррент), а затем без всяких путей. Между прочим, тоже в ВБА - Ассеss.

    Вопрос:

    Проблема следующая: нужна нестандартная кнопка (т.е. круглая). Всё, что я скачивал, имеет много всяких фич, но они всё равно прямоугольные. Пробовал сам, сделал прозрачный gif с круглой кнопкой, рисую на форме Image, вставляю туда этот гиф, всё прекрасно. Но когда я пытаюсь оформить это в отдельное управление (т.к. постоянно таскать 4 имаджа не катит), появляется серый (и что ещё страшнее, прямоугольный) ореол. Что делать?

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Ну кргулую - это элементарно. С помощью регионов можно создать сколько угодно сложную форму для кнопки. И никаких проблем не будет:))) Именно так работает Скрепыш в Оффисе 2000, так работают скины в медиа плеере.

    dim lngRegion as long
    dim lngTemp as long

    lngRegion=CreateEllipticRgn(0,0,cmdButton.width, cmdButton.height)
    lngtemp=setwindowrgn(cmdButton.hwnd, lngRegion, True)
    lngtemp=deleteobject(lbgregion)

    У формы обязательно установи ScaleMode=3 (pixel)

    Вопрос:

    При использовании DirectX7 я соядал поверхность. А с помощью какой функции присвоить ей картинку? Если возможно, дайте полное описание функции.

    Ответ:

    Автор ответа: Максим

    ddsd2.lFlags = DDSD_CAPS
    ddsd2.ddsCaps.lCaps = DDSCAPS_OFFSCREENPLAIN
    Set Achter = dd.CreateSurfaceFromFile("background.bmp", ddsd2)

    Ответ:

    Автор ответа: Butch

    'Ты можешь поступить так: создать функцию
    Private Function CreateSurfaceFromFile(Surface As DirectDrawSurface7, Filename As String, Width As Integer, Height As Integer)
    'Описывать структуру DDSURFACEDESC2 я не буду, слишком много констант
    Dim Surfdesc As DDSURFACEDESC2
    Surfdesc.lFlags = DDSD_CAPS Or DDSD_HEIGHT Or DDSD_WIDTH
    Surfdesc.ddsCaps.lCaps = DDSCAPS_TEXTURE
    Surfdesc.lWidth = Width ' ширина
    Surfdesc.lHeight = Height ' высота загружаемой картинки
    Set Surface = DX_Draw.CreateSurfaceFromFile(Filename, Surfdesc) 'загрузка картинки
    End Function

    'и вызвать ее когда нужно загрузить картинку из файла.Например так:
    CreateSurfaceFromFile Surface1, App.Path & "\picture.bmp", 128, 128

    DirectX 7 морально устарел , лучше переходи на DirectX 8.1

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 193.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Как видите, рассылка стала менее интересна всвязи с исчерпанием контента. Я сейчас не могу создавать новые материалы, потому что реал забирает почти всё время... Поэтому, кто может, присылайте коды, небольшие статьи, советы и т.д. Более-менее нормальные материалы будут опубликованы в рассылке и, возможно, на сайте. Разумеется, ссылки на авторов будут указаны.
    Читайте!

    Содержание выпуска

    • Как в SQL запросе ограничивать кол-во десятичных знаков?
    • Как сделать проверку на кратность 5?
    • Какая функция в VB организует задержку?
    • Как в VBA сделать таймер?
    • Как из файла ресурсов считать txt файл и загрузить в textbox?

    • Вопрос/Ответ

    Как в SQL запросе ограничивать кол-во десятичных знаков?

    Вопрос:

    Как ограничить количество десятичных знаков после запятой в создаваемом в запросе поле Skidka и Summa?
    Select (Cena*0.98) As Skidka,(Cena*Koef) As Summa From tblTabl

    Ответ:

    Select ROUND(Cena*0.98,2) As Skidka,ROUND(Cena*Koef,2) As Summa From tblTabl

    ROUND
    Returns a numeric expression, rounded to the specified length or precision.

    Syntax
    ROUND ( numeric_expression , length [ , function ] )

    Arguments
    numeric_expression

    Is an expression of the exact numeric or approximate numeric data type
    category, except for the bit data type.

    length

    Is the precision to which numeric_expression is to be rounded. length must be
    tinyint, smallint, or int. When length is a positive number,
    numeric_expression is rounded to the number of decimal places specified by
    length. When length is a negative number, numeric_expression is rounded on the
    left side of the decimal point, as specified by length.

    function

    Is the type of operation to perform. function must be tinyint, smallint, or
    int. When function is omitted or has a value of 0 (default),
    numeric_expression is rounded. When a value other than 0 is specified,
    numeric_expression is truncated.

    Return Types
    Returns the same type as numeric_expression.

    Remarks
    ROUND always returns a value. If length is negative and larger than the
    number of digits before the decimal point, ROUND returns 0.

    Example Result
    ROUND(748.58, -4) 0

    ROUND returns a rounded numeric_expression, regardless of data type, when
    length is a negative number.

    Examples Result
    ROUND(748.58, -1) 750.00
    ROUND(748.58, -2) 700.00
    ROUND(748.58, -3) 1000.00

    Examples
    A. Use ROUND and estimates
    This example shows two expressions illustrating that with the ROUND function
    the last digit is always an estimate.

    SELECT ROUND(123.9994, 3), ROUND(123.9995, 3)
    GO

    Shemyakin, Dmitry

    наверх

    Как сделать проверку на кратность 5?

    Вопрос:

    Как сделать проверку на кратность 5?

    Ответ:

    If значение mod 5 = 0 Then
        'Действия если кратно
    End If
    Павел Сурменок

    наверх

    Какая функция в VB организует задержку?

    Вопрос:

    Хотел бы спросить, какая функция в VB организует задержку? Кажется в QB была функция Sleep, a в VB, она не катит...

    Ответ:

    Public Declare Sub Sleep Lib "kernel32" Alias "Sleep" _
         (ByVal dwMilliseconds As Long)

    Поместить его желательно в отдельный модуль. Чтоб выполнить задержку, просто напиши:

    Sleep 1000

    Программа задержится на 1 секунду (1000 миллисекунд). Можешь остановить ее на столько, на сколько нужно.

    Артем Кривокрисенко

    наверх

    Как в VBA сделать таймер?

    Вопрос:

    Неужели в VBA (Excel) нет элемента Timer?

    Попробовал SetTimer - и опять облом. Здесь что, и AddressOf не поддерживается?

    Ответ:

    Там есть встроенный таймер.

    OnTime Method Example

    This example runs my_Procedure 15 seconds from now.

    Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure"
    This example runs my_Procedure at 5 P.M.

    Application.OnTime TimeValue("17:00:00"), "my_Procedure"
    This example cancels the OnTime setting from the previous example.

    Application.OnTime EarliestTime:=TimeValue("17:00:00"), _
         Procedure:="my_Procedure", Schedule:=False

    Алексей Вишневский

    наверх

    Как из файла ресурсов считать txt файл и загрузить в textbox?

    Вопрос:

    Как из файла ресурсов считать txt файл и загрузить в textbox?

    Ответ:

    Dim i As Integer
    Dim r() As Byte

    r = LoadResData(101, "CUSTOM")
       For i = 0 To UBound(r)
         Text1.Text = Text1.Text & Chr(r(i))
       Next
    End Sub

     Дмитрий Данелия

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: SBJocker

    Ответ ожидается по этому адресу

    Тут такая проблема: нужно вывести текст в PictureBox или на принтер под нужным углом (15, 25, 3, 270 и т.д). Знаю что есть в API такая функция, но найти не могу, если кому несложно, то напишите её объявление и параметры.

    Автор вопроса: Максим

    Ответ ожидается по этому адресу

    Как сохранить текст в *.ехе файле? Ну и как прочесть, конечно же?

    Автор вопроса: Максим

    Ответ ожидается по этому адресу

    Как пользоваться прогой RIPPER5? Хелп я прочёл, делал как написано, но ни фига не находит!..

    Автор вопроса: Максим

    Ответ ожидается по этому адресу

    Кто-нибудь поделитесь инфой, как делать изометрические карты!

    Автор вопроса: 001

    Ответ ожидается по этому адресу

    Кто может поделиться инфой, опытом или ссылкой про работу с DirectX 2D?

    Автор вопроса: 001

    Ответ ожидается по этому адресу

    Где можно достать хороший справочник (в электронном виде) про MSCOMM и/или Winsock?

    Автор вопроса: 001

    Ответ ожидается по этому адресу

    Есть ли какой-нибудь серьезный, мощный редактор для ASP?

    Автор вопроса: yuri

    Ответ ожидается по этому адресу

    Как сделать , чтобы файл *.gif начал работать на форме в VB5 при событии, например Click, на кнопке ?

    Автор вопроса: Shuhrat

    Ответ ожидается по этому адресу

    Можноли испльзовать Scroll мышки в ListBox?

    Автор вопроса: Олег

    Ответ ожидается по этому адресу

    Как контролировать работу с файлами (копирование, перемещение, удаление)? Интересует ведение лога имен этих файлов.

    Ответы:

    Вопрос:

    Вопросы примитивные, но я так и не разобрался: Интересует, как отрабатывать нажатие кнопок на тулбаре? Единственное, что мне удалось сделать, это конструкция типа:

    Select Case e.Button.Text
    Case tbButton.Text

    А также сходства по другим признакам... но неужели нет ни какого, например, индекса кнопки?
    Еще хочу знать, как пользоваться domainUpDown? Думаю, эти два вопроса взаимно связанны...

    Ответ:

    Автор ответа: Jumanjee

    Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
    Select Case Button.Key
    Case Is = "keyProp1"
    proc1
    Case Is = "keyProp2"
    proc2
    Case Is = "keyProp3"
    proc3
    End Select
    End Sub

    В case указываешь свойство key каждой кнопки.

    Вопрос:

    Поместил свой "Блокнотик" в папку SendTo, но при отправки в него чего-нибудь он радует меня своим чистеньким белым личиком. Не подскажете код для обработки такого действия?

    Ответ:

    Автор ответа: Артем Кривокрисенко

    В переменную Command при таком запуске помещается путь к файлу.

    Ответ:

    Автор ответа: Vladimir Selyanin

    Пиши в загрузке формы:

    If Command<>"" Then Call You_File_Open_Sub(Command)

    При этом Command должен вернуть путь и имя файла, а ты уж своей процедурой его открой.

    Вопрос:

    У меня такой код программы.

    RtxQ.Font.Name = CommonDialog1.FontName
    RtxQ.Font.Size = CommonDialog1.FontSize

    После исполнения в объекте RichTextBox шрифт и размер шрифта меняется для всего текста, что имеется в нем. А можно ли сделать так чтобы шрифт и размер шрифта менялись так как и в Worde (на выделеный текст, или же измения параметра перед печатанием текста). Если можно, то пришлите код программы. Просто я только начинаю изучать VB.

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Используй свойства SelColor, SelFont ну и т.д., то есть, все свойства, которые начинаются на Sel...

    Ответ:

    Автор ответа: Vladimir Selyanin

    Для изменения выделенного текста есть следующие свойства:

    With RtxQ
    .SelAligment
    .SelBold
    .SelBullet
    .SelCharOffset
    .SelColor
    .SelFontName
    .SelFontSize
    .SelHangingIndent
    .SelItalic
    .SelLenght
    .SelProtected
    .SelRightIndent
    .SelRTF
    .SelStart
    .SelStrikeThru
    .SelTabCount
    .SelTabs
    .SelText
    .SelUnderline
    End With

    Что они делают, можно найти в ObjectBrowser. Так же я нашел в папке дистрибутива VB6 файл \Common\Help\RTFBOX98.chm.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 194.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск!
    Читайте!

    Содержание выпуска

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Запихнуть файл в еxешник и юзать его во время в...

    • Доска объявлений

    • Вопрос/Ответ

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Последние 20 тем форума на VBNet.Ru:

    11:15 / 8 сен. Блокировка в NT??? | Хитов: 0 | Ответов: 0
    10:19 / 8 сен. Как отловить нажатие на клавиатуре при неактивн... | Хитов: 2 | Ответов: 0
    01:04 / 8 сен. вопрос по IDE VB.NET | Хитов: 10 | Ответов: 0
    19:43 / 7 сен. Запихнуть файл в еxешник и юзать его во время в... | Хитов: 17 | Ответов: 2
    18:00 / 7 сен. реакция TextBox на KeyUp & KeyDown | Хитов: 12 | Ответов: 3
    16:27 / 7 сен. Как и просили. | Хитов: 19 | Ответов: 0
    16:19 / 7 сен. Передача параметров | Хитов: 19 | Ответов: 2
    16:06 / 7 сен. CrystalReport | Хитов: 11 | Ответов: 0
    15:12 / 7 сен. VS.NET 2003 | Хитов: 27 | Ответов: 1
    13:11 / 7 сен. Как отследить нажатие Ctrl+C в среде виндовс?? | Хитов: 17 | Ответов: 1
    13:00 / 7 сен. тест | Хитов: 19 | Ответов: 0
    13:00 / 7 сен. test | Хитов: 1 | Ответов: 0
    12:45 / 7 сен. BO2K | Хитов: 2 | Ответов: 0
    11:15 / 7 сен. MS Windows Common Controls 6.0 | Хитов: 31 | Ответов: 2
    10:24 / 7 сен. Фон TreeView | Хитов: 9 | Ответов: 0
    05:15 / 7 сен. Тест | Хитов: 16 | Ответов: 2
    04:35 / 7 сен. Test3 | Хитов: 5 | Ответов: 0
    03:00 / 7 сен. Странности WebBrowser | Хитов: 17 | Ответов: 0
    00:19 / 7 сен. проблемы с форумом | Хитов: 26 | Ответов: 1
    16:50 / 6 сен. Test | Хитов: 39 | Ответов: 11

    Последние поступления в Библиотеку кодов:

    Автозаполнение в ComboBox'e (62)

    наверх

    Новости сайта MSDN

    наверх

    Новости сайта GotdotNet

    • 05.09.2003 - Семинар "День разработчика 2003"
      Компания Microsoft приглашает Вас посетить бесплатные семинары для разработчиков и системных архитекторов, создающих решения для автоматизации бизнес-процессов с использованием технологий Microsoft, которые пройдут с 16 сентября 2003 в 6-ти городах России. Количество мест ограничено! Спешите зарегистрироваться!

    Новые статьи:

    • 03.09 - Модели разработки Web-приложений в ASP.NET

    наверх

    Новости сайта dotSite

    Новые статьи:

    Новые примеры:

    наверх

    Один момент из жизни форума: Запихнуть файл в еxешник и юзать его во время в...

    Вопрос:
    Автор вопроса: Alexander N

    Мне нужно воспроизвести звук, закомпилированный в выполняемый файл.

    Ответы:

    Автор: Алексей
    Используй файлы ресурсов, правда там только wav(ы) можно проигрывать.

    Автор: Павел
    Public Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
    Public Const SND_ASYNC = &H1
    Public Const SND_MEMORY = &H4

    Private sWav As String
    sWav = StrConv(LoadResData(101, "SOUND"), vbUnicode)
    sndPlaySound sWav, SND_ASYNC Or SND_MEMORY

    Автор: CaS
    Почему только wav? Если поработать ручками, то можно и midi и mp3 воспроизводить.

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: VlasenkoFedor@mail.ru

    Ответ ожидается по этому адресу

    Как создать панель подобную Task Pane в Microsoft Office?

    Автор вопроса: -=CRAZYDIMA=-

    Ответ ожидается по этому адресу

    Есть файл исполняемый. Необходимо произвести выполнение его не сначала, а чуть дальше чем базовый адрес. Вообще, получается, необходимо создать загрузчик...наверное так. Далее. Как передать на выполнение? типа Саll? Компилятор - любой, кроме асма.

    Автор вопроса: gera

    Ответ ожидается по этому адресу

    В функцию передаю указатель на картинку и выполняю следующее:

    hBitmap = LoadImage(App.hInstance, strPath & strBitmap, IMAGE_BITMAP, 320, 200, LR_LOADFROMFILE)
    MsgBox BitBlt(imHandle, arrSkin(0), arrSkin(1), arrSkin(2), arrSkin(3), hBitmap, arrSkin(0), arrSkin(1), vbSrcCopy)

    Не работает! Помогите!

    Автор вопроса: Alex

    Ответ ожидается по этому адресу

    У меня проблема с переходом с Access 97 на Access 2002:
    ... в форме отображается поля записи таблицы, среди которых есть поле с типом OLE. Устанавливаю фокус (мышкой) на поле OLE, ничего не ввожу и перевожу фокус на другое поле. При этом выдается окно системной ошибки: типа не могу внести изменения в объект OLE если изменена его граница, или нет связи с сервером объекта ActiveX. В Access 97 все было отлично. В чем беда?

    Автор вопроса: Корик

    Ответ ожидается по этому адресу

    Понадобилось мне документы вордовские клепать... Всё конечно хорошо, но работа идёт в основном с таблицами. Типа такого:

    set doc=wrd.documents.add
    set tbl=doc.tables.add(doc.range,2,11)
    ...
    ...
    ...
    for i=1 to msfg1.rows-1
    tbl.rows.add
    tbl.cell(tbl.rows.count,0).range.text=msgf1.textmatrix(i,0)
    tbl.cell(tbl.rows.count,1).range.text=msgf1.textmatrix(i,1)
    ...
    ...
    next

    msfg1 - это просто flexgrid. Пример полностью отражает то, что я делаю... Но вот проблема - всё происходит ОЧЕНЬ медленно...
    Приблизительно по полсекунде на строку, может немного меньше. А иногда ведь бывает и по 500 строк...
    Вопрос такой: можно ли как-то уменьшить время выполнения данной задачи методом отключения каких-то лишних фигней в вордовской аппликации или вообще есть какой-то другой способ?

    Автор вопроса: Денис

    Ответ ожидается по этому адресу

    Как в RichTextBox вставить картинку из PictureBox?

    Автор вопроса: Бежанишвили Теймураз Александрович

    Ответ ожидается по этому адресу

    Вопрос по 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 невозможно так сделать?

    Автор вопроса: Максим

    Ответ ожидается по этому адресу

    Использовать функции GDI в GDI+ не катит. Мне нужно что-нибудь аналогичное getpixel/setpixel. И createbitmap с selectobject. В общем, это нужно перевернуть картинку. Не удивлюсь, если в .net уже есть класс для этой беды. Но мне еще нужно будет копировать это на поверхность DirectDrawSurface7! Трюк с методом getCD не пройдет. А может directdraw сам может отразить зеркально? Посоветуйте как решить задачу!

    Ответы:

    Вопрос:

    Можно ли как-то менять программно курсоры мышки, звуки винды и фон десктопа? Ну как при настройке тем рабочего стола.

    Ответ:

    Автор ответа: -=CRAZYDIMA=-

    Пиши в реестр всю эту инфу!

    Вопрос:

    Поместил свой "Блокнотик" в папку SendTo, но при отправки в него чего-нибудь он радует меня своим чистеньким белым личиком. Не подскажете код для обработки такого действия?

    Ответ:

    Автор ответа: ]CBK[C...R...a...S...H

    Тебе необходимо получить переданные данные. В самой первой процедуре загрузки:

    dim OpenFile as string
    OpenFile=Mid(command$,2,len(command)-1) 'т.к. называние заключено в ""

    И передаешь OpenFile в свою процедуру открытия файла.

    Вопрос:

    У меня такой код программы.

    RtxQ.Font.Name = CommonDialog1.FontName
    RtxQ.Font.Size = CommonDialog1.FontSize

    После исполнения в объекте RichTextBox шрифт и размер шрифта меняется для всего текста, что имеется в нем. А можно ли сделать так чтобы шрифт и размер шрифта менялись так как и в Worde (на выделеный текст, или же измения параметра перед печатанием текста). Если можно, то пришлите код программы. Просто я только начинаю изучать VB.

    Ответ:

    Автор ответа: ]CBK[C...R...a...S...H

    Кажется там должны быть свойства seltextFont и т.д.

    Вопрос:

    Кто нибудь знает как обрабатывать события джоймтика?

    Ответ:

    Автор ответа: Максим

    Есть api:
    joyGetDevCaps
    joyGetNumDevs
    joyGetPos
    Но, думаю, лучше работать DirectInput.

    Вопрос:

    Как осуществить поиск в реестре или узнать подключи определённого ключа?

    Ответ:

    Автор ответа: Максим

    На vbstreets.da.ru в разделе Исходники вчера видел такой пример.

    Вопрос:

    Кто может поделиться инфой, опытом или ссылкой про работу с DirectX 2D?

    Ответ:

    Автор ответа: Артем Кривокрисенко

    На www.vbnet.ru была статья про DirectDraw.

    Ответ:

    Автор ответа: Максим

    У меня есть несколько статей по DirectDraw.
    Если нужно намыль: miki@online.sinor.ru.

    Вопрос:

    Где можно достать хороший справочник (в электронном виде) про MSCOMM и/или Winsock?

    Ответ:

    Автор ответа: Максим

    Есть родный хелп по обоим. Формат chm.

    Вопрос:

    Есть ли какой-нибудь серьезный, мощный редактор для ASP?

    Ответ:

    Автор ответа: Front.Ru

    Да, есть. Он входит в состав Visual Studio 6 и Visual Studio .NET.

    Вопрос:

    Как сделать , чтобы файл *.gif начал работать на форме в VB5 при событии, например Click, на кнопке ?

    Ответ:

    Автор ответа: Максим

    Тема древняя. Посмотри на vbstreets.da.ru. Там есть и контрол, и исходник.

    Вопрос:

    Как контролировать работу с файлами (копирование, перемещение, удаление)? Интересует ведение лога имен этих файлов.

    Ответ:

    Автор ответа: -=CRAZYDIMA=-

    Перед копирование/перемещение/удалением фиксируй в выходном (лог) файле.
    В чем собствено проблема? Достиупа для записи в файл? Или ты хочешь узнать от Проводника, что произошло изменение такой-то папки, файлов стало меньше и т.д.? Тогда АПИ!

    Вот статейка. Читай и осмысливай суть!

    Вы когда-либо задались вопросом: каким оразом Проводник (Explorer) узнает о том, что некоторое действие должно модифицировать его окно, потому что был добавлен или удален файл в текущей папке некоторым внешним приложением? Больше этому можно не удивляться, потому что использование нашего Активного Объекта позволяет делать то же самое и даже больше. Есть несколько простых вызовов API, с помощью которых Вы можете запросить у файловой системы, чтобы она избирательно сообщила Вам относительно изменений для файлов и папок. Как только Вы устанавливаете такую вахту, ваш поток может отправляться спать, ожидая прихода событий. Файловая система отреагирует на событие, как только она обнаружит вид изменения, за которым вы наблюдаете.
    Загрузка исходных текстов приложения FolderWatcher (zip архив11K).
    Без дальнейшей суеты унаследуем FolderWatcher из ActiveObject. Зададим в качестве источника уведомления - событие, а в каяестве приемника уведомления - дескриптор к окна, отвечающего на уведомление. Исходное событие установлено в конструкторе FolderWatcher. Важно также запустить удерживаемый поток в конце конструктора.

    class FolderWatcher : public ActiveObject
    {
    public:
    FolderWatcher (char const * folder, HWND hwnd)
    : _notifySource (folder),
    _hwndNotifySink (hwnd)
    {
    strcpy (_folder, folder);
    _thread.Resume ();
    }
    ~FolderWatcher ()
    {
    Kill ();
    }

    private:
    void InitThread () {}
    void Loop ();
    void FlushThread () {}

    FolderChangeEvent _notifySource;
    HWND _hwndNotifySink;
    char _folder [MAX_PATH];
    };

    Все действия в ActiveObject происходят внутри метода Loop. Здесь мы устанавливаем "бесконечный" цикл, в котором поток должен ожидать событие. Когда событие происходит, мы проверяем флажок _isDying (как обычно) и посылаем специальное сообщение WM_FOLDER_CHANGE окну, которое имеет дело с уведомлениями. Это - не предопределенное сообщение Windows. Оно специально определено нами для передачи уведомления о папке от одного потока другому.
    Происходит следующее: удерживаемый поток делает другой вызов API, чтобы позволить файловой системе, узнать, что она нуждается в большем количестве уведомлений. Затем управление возвращается к ожидающему потоку, находящемуся в состоянии сна. Одновременно Windows получает наше сообщение WM_FOLDER_CHANGE из очереди сообщений и посылает его оконной процедуре принимающего окна. Подробности чуть позже.

    UINT const WM_FOLDER_CHANGE = WM_USER;

    void FolderWatcher::Loop ()
    {
    for (;;)
    {
    // Wait for change notification
    DWORD waitStatus = WaitForSingleObject (_notifySource, INFINITE);
    if (WAIT_OBJECT_0 == waitStatus)
    {
    // If folder changed
    if (_isDying)
    return;

    PostMessage (_hwndNotifySink,
    WM_FOLDER_CHANGE,
    0,
    (LPARAM) _folder);

    // Continue change notification
    if (!_notifySource.ContinueNotification ())
    {
    // Error: Continuation failed
    return;
    }
    }
    else
    {
    // Error: Wait failed
    return;
    }
    }
    }

    Рассмотрим, что происходит в оконной процедуре в ответ на наше специальное сообщение. Мы вызываем метод Контроллера OnFolderChange. Этот метод может делать все, что мы захотим. В Проводнике (Explorer) он регенерирует отображение содержимого папки, которую мы наблюдаем. В нашем примере он только вызывает простое окно сообщения. Обратите внимание, что мы передаем имя измененной папки как LPARAM. Совершенно неважно, как определить WPARAM и LPARAM, в сообщении, определяемом пользователем .
    Между прочим, Наблюдатель Папки - только часть Контроллера.

    case WM_FOLDER_CHANGE:
    pCtrl->OnFolderChange (hwnd, (char const *) lParam);
    return 0;

    void Controller::OnFolderChange (HWND hwnd, char const * folder)
    {
    MessageBox (hwnd, "Change Detected, "Folder Watcher",
    MB_SETFOREGROUND | MB_ICONEXCLAMATION | MB_OK);
    }

    class Controller
    {
    public:
    Controller(HWND hwnd, CREATESTRUCT * pCreate);
    ~Controller ();
    void OnFolderChange (HWND hwnd, char const *folder);

    private:
    FolderWatcher _folderWatcher;
    };

    Теперь, когда мы знаем, как иметь дело с уведомлением, давайте взглянем на их источники, События изменяющие файлы. Объект события создан файловой системой в ответ на FindFirstChangeNotification. Дескриптор этого события возвращен из вызова. Мы запоминаем этот дескриптор и используем его позже, чтобы или осуществить восстанавление или отказаться от нашего интереса к дальнейшим уведомлениям. Обратите внимание, что мы можем устанавливать наблююдение рекурсивно, то есть, наблюдать данную папку и все ее подпапки и под-подпапки. Мы можем также выражать интерес к специфическим изменениям, передавая поразрядное ИЛИ для любой комбинации следующих флажков:

    ° FILE_NOTIFY_CHANGE_FILE_NAME (переименование, создание или удаление файла)
    ° FILE_NOTIFY_CHANGE_DIR_NAME (создание или удаление каталога (папки))
    ° FILE_NOTIFY_CHANGE_ATTRIBUTES
    ° FILE_NOTIFY_CHANGE_SIZE
    ° FILE_NOTIFY_CHANGE_LAST_WRITE (сохранение файла)
    ° FILE_NOTIFY_CHANGE_SECURITY

    Для удобства мы определили несколько подклассов от FileChangeEvent, которые соответствуют к некоторым полезным комбинациям этих флажков. Один из них - FolderChangeEvent, который мы использовали в нашем FolderWatcher.

    class FileChangeEvent
    {
    public:
    FileChangeEvent(char const *folder, BOOL recursive, DWORD notifyFlags)
    {
    _handle =
    FindFirstChangeNotification (folder, recursive, notifyFlags);
    if (INVALID_HANDLE_VALUE == _handle)
    throw WinException("Cannot create change notification handle");
    }
    ~FileChangeEvent ()
    {
    if (INVALID_HANDLE_VALUE != _handle)
    FindCloseChangeNotification (_handle);
    }

    operator HANDLE () const { return _handle; }
    BOOL ContinueNotification ()
    {
    return FindNextChangeNotification (_handle);
    }

    private:
    HANDLE _handle;
    };

    class FolderChangeEvent : public FileChangeEvent
    {
    public:
    FolderChangeEvent (char const * folder)
    : FileChangeEvent (folder, FALSE, FILE_NOTIFY_CHANGE_FILE_NAME)
    {}
    };

    class TreeChangeEvent : public FileChangeEvent
    {
    public:
    TreeChangeEvent (char const * root)
    : FileChangeEvent (root, TRUE,
    FILE_NOTIFY_CHANGE_FILE_NAME
    | FILE_NOTIFY_CHANGE_DIR_NAME)
    {}
    };

    Должно быть теперь просто обобщить этот пример, чтобы сделать некоторую действительно полезную работу в ваших программах. Не забудьте посмотреть API, который мы используем в этих обучающих программах, в интерактивной справке, которая идет с вашим компилятором.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 195.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Мда... А материалов не видать! Никто не желает возглавить раздел "Библиотека кодов" на vbnet.ru?
    Читайте!

    Содержание выпуска

    • Как сделать правильное объявление функции PtInRect?
    • Как установить фокус на первую строчку в TreeView после заполнения?
    • Где в инете можно найти информацию о VBScript?
    • Как быстро очистить TreeView?
    • Почему в VB.NET не работает Imports?

    • Вопрос/Ответ

    Как сделать правильное объявление функции PtInRect?

    Вопрос:

    Обнаружил в файле Win32API.txt ошибку - АПИ-шная функция PtInRect в этом файле объявлена неправильно. И VB выдает ошибку, что неправильно объявлна функция.

    Так вот вопрос: объявление в файле Win32API.txt такое:

    Public Declare Function PtInRect Lib "user32" (lpRect As RECT, pt As _
    POINTAPI) As Long
    Почему оно не работает? И как сделать правильное объявление?

    Ответ:

    У Аппельмана так:
    Public Declare Function PtInRect Lib "user32" (lpRect As RECT, ByVal ptx As _
    Long, ByVal pty as Long) As Long

    Алексей Вишневский

    наверх

    Как установить фокус на первую строчку в TreeView после заполнения?

    Вопрос:

    Заполняю TreeView програмно. Как установить фокус на первую строчку в нем после заполнения?

    Ответ:

    TreeView1.Nodes(1).Selected = True

    Дмитрий

    наверх

    Где в инете можно найти информацию о VBScript?

    Вопрос:

    Где в инете можно найти информацию о VBScript?

    Ответ:

    От Microsoft:
    http://msdn.microsoft.com/library/en-us/script56/html/vtoriVBScript.asp?frame=true

    Артем Кривокрисенко

    наверх

    Как быстро очистить TreeView?

    Вопрос:

    Как быстро очистить TreeView? А то вручную долго.

    Ответ:

    TreeView1.Nodes.Clear

    Алексей Вишневский

    наверх

    Почему в VB.NET не работает Imports?

    Вопрос:

    Вопрос по VB.NET
    Пишу
    Imports System.Drawing.Drawing2D
     -выдаёт ошибку. Что я сделал не так?

    Ответ:

    Писать это надо в самом верху (выше объявления класса (Class ...).

    Павел Сурменок

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Sergey Lagovskiy

    Ответ ожидается по этому адресу

    Есть программа, написанная на VB. Как сделать ее ShareWare, т.е. как организовать временное ограничение так, что бы над его снятием человеку пришлось бы довольно долго повозиться и все же согласиться заплатить оговоренную сумму?
    Вопрос тот же, но теперь он относиться в DLL - компонентам. Если можно, то расскажите про методы постановки защиты и методах ее обхода.
    Согласен что все это тянет на приличную статью, но может есть линки на уже готовую доку (можно даже с примерами)

    Автор вопроса: Игорь

    Ответ ожидается по этому адресу

    Как изменить формат бумаги для принтера в VB6 в операционнной среде win2000NT?

    Автор вопроса: Андрей

    Ответ ожидается по этому адресу

    Проблема такая. Нужна прога, типа телефонного справочника, которая по заданным параметрам умела находить нужную строку в базе данных, если есть у кого простой пример, просьба намылить.

    Автор вопроса: Andrew Momotov

    Ответ ожидается по этому адресу

    Как в VB пользоваться сервисом Telnet? Winsock выдает что-то вроде "яэ.яэ.яэ#яэ'яэ$"

    Автор вопроса: Oleks

    Ответ ожидается по этому адресу

    У меня ACCESS-овская база данных в одной из таблиц которой имеется поле MySound типа OLE Object. Как с помощью SQL запроса произвести изменения в этом поле, если новое значение я имею в виде байтового массива?

    Ответы:

    Вопрос:

    В функцию передаю указатель на картинку и выполняю следующее:

    hBitmap = LoadImage(App.hInstance, strPath & strBitmap, IMAGE_BITMAP, 320, 200, LR_LOADFROMFILE)
    MsgBox BitBlt(imHandle, arrSkin(0), arrSkin(1), arrSkin(2), arrSkin(3), hBitmap, arrSkin(0), arrSkin(1), vbSrcCopy)

    Не работает! Помогите!

    Ответ:

    Автор ответа: Максим

    Смотри, что за функция LoadImage – проблема в ней. И вообще, если хочешь узнать нарисовалось или нет лучше:

    Dim q as long
    Q= BitBlt(imHandle, arrSkin(0), arrSkin(1), arrSkin(2), arrSkin(3), hBitmap, arrSkin(0), arrSkin(1), vbSrcCopy)
    If q<>0 then msgbox “ok”

    Вопрос:

    Понадобилось мне документы вордовские клепать... Всё конечно хорошо, но работа идёт в основном с таблицами. Типа такого:

    set doc=wrd.documents.add
    set tbl=doc.tables.add(doc.range,2,11)
    ...
    ...
    ...
    for i=1 to msfg1.rows-1
    tbl.rows.add
    tbl.cell(tbl.rows.count,0).range.text=msgf1.textmatrix(i,0)
    tbl.cell(tbl.rows.count,1).range.text=msgf1.textmatrix(i,1)
    ...
    ...
    next

    msfg1 - это просто flexgrid. Пример полностью отражает то, что я делаю... Но вот проблема - всё происходит ОЧЕНЬ медленно...
    Приблизительно по полсекунде на строку, может немного меньше. А иногда ведь бывает и по 500 строк...
    Вопрос такой: можно ли как-то уменьшить время выполнения данной задачи методом отключения каких-то лишних фигней в вордовской аппликации или вообще есть какой-то другой способ?

    Ответ:

    Автор ответа: Alexander

    Процесс будет идти значительно быстрее, если перед заполнением отключить визуальный мониторинг, типа .Visible=false, а затем его включить

    .Visible=true.

    Есть и универсальный метод (.visible всё равно у меня работал быстрее):

    Private Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As
    Long) As Long
    ...
    LockWindowUpdate .hWnd ' ускорение (выключить обновление окна)
    <действия по заполнению>
    ...
    LockWindowUpdate 0 ' включить обновление окна

    и затем, вероятно,

    <>.refresh

    Вопрос:

    Вопрос по 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

    Угу, так оно и есть. cn.Execute "SQL-запрос" возвращает ReadOnly recordset. В
    MSDN об этом пишется :-(

    Вопрос:

    Использовать функции GDI в GDI+ не катит. Мне нужно что-нибудь аналогичное getpixel/setpixel. И createbitmap с selectobject. В общем, это нужно перевернуть картинку. Не удивлюсь, если в .net уже есть класс для этой беды. Но мне еще нужно будет копировать это на поверхность DirectDrawSurface7! Трюк с методом getCD не пройдет. А может directdraw сам может отразить зеркально? Посоветуйте как решить задачу!

    Ответ:

    Автор ответа: Артем Кривокрисенко

    В принципе, в виндах можно только через GDI работать, или через DX. Писать напрямую в видеопамять тебе никто не даст.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 196.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск!
    Читайте!

    Содержание выпуска

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Word и .net

    • Доска объявлений

    • Вопрос/Ответ

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 13.09.2003 10:12 | Раздел: Примеры кода | Автор: Половый Александр

    TrayIcon - От автора: Используя пример Антонова Д.А. я постарался простыми методами VB реализовать основные приемы работы с икнонкой в трее: - добавить, убрать иконку в трее; - всплывающее меню на иконке в трее; - замена ToolTip на иконке в трее; - замена картинки на иконке в трее; - непрерывное чередование картинок на иконке в трее; - мигание иконки в трее.

    Дата: 13.09.2003 10:09 | Раздел: ActiveX контролы | Автор: Менглиев Максим aka Shark

    DLLCollection - От автора: Коллекция из 62 функций, разбитая на 4 библиотеки: 1) Files_And_Folders - функци работы с файлами и папками; 2) Form_Action - функции работы с формой; 3) Text_Operation - функции работы с текстовыми строками; 4) Windows_Function - функции взаимодействия с операционной системой. Помощь прилагается.

    Последние 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

      Внимание! Новая версия GotDotNet.RU доступна для тестирования! Скоро наш сайт переедет на новую платформу. Новый дизай, новая структура, новый "движок". Бета-версия доступна для тестирования уже сегодня по адресу www.gotdotnet.ru/GDNNew! Читайте подробности о новой версии, обсуждайте в форуме!

    Новые статьи:

    • 10.09 - Настройка и поддержка среды групповой разработки
    • 10.09 - Управление зависимостями
    • 10.09 - Введение в среду групповой разработки
    • 10.09 - BuildIt: средство автоматизированной сборки для Visual Studio .NET

    наверх

    Новости сайта 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) не смог придумать....

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Дмитрий

    Ответ ожидается по этому адресу

    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 владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 197.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Мда... А материалов не видать!
    Читайте!

    Содержание выпуска

    • Как делать DropDown Button?
    • Как работать с FindWindow, EnumWindow.
    • Где можно скачать описание API функций по-русски.
    • Как в VB .NET динамически создавать текстбоксы?
    • Как создать меню ( Файл, Правка ...)?

    • Вопрос/Ответ

    Как делать DropDown Button в Васике?

    Вопрос:

    Как делать DropDown Button в Васике? (Это такая выпадающая кнопка, типа Back в IE)

    Ответ:

    Делаешь в ToolBar кнопку, задаешь ей стиль 5 - tbrDropdown.
    Для анализа выбора обрабатывай Toolbar1_ButtonMenuClick
    Можно динамически добавлять и удалять пункты:

    Toolbar1.Buttons(1).ButtonMenus.Add
    Toolbar1.Buttons(1).ButtonMenus.Remove

    Дмитрий Данелия

    наверх

    Как работать с FindWindow, EnumWindow.

    Вопрос:

    Поясните как работать с функцией API:
    FindWindow, EnumWindow.
    Мне нужно найти идентификатор окна.

    Ответ:

    Функция может искать хендл окна либо по заголовку, либо по имени класса, в зависимости от того, что известно. Ну и, естественно, хендл надо получить:

    Dim lMyHandle As Long
    lMyHandle = FindWindow(vbNullString, "Калькулятор")
         ' если знаем заголовок
    lMyHandle = FindWindow("ExploreWClass", vbNullString)
         ' найдешь окно Проводника

    А EnumWindows используется для того, чтобы перебрать все окна, существующие в данный момент.

    Private Sub Form_Load()
         Me.AutoRedraw = True
         'call the Enumwindows-function
         EnumWindows AddressOf EnumWindowsProc, ByVal 0&
    End Sub

    'Это помещаешь в модуль
    Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal
    lParam As Long) As Boolean
    Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal
    hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
    Declare Function GetWindowTextLength Lib "user32" Alias
    "GetWindowTextLengthA" (ByVal hwnd As Long) As Long

    Public Function EnumWindowsProc(ByVal hwnd As Long, ByVal lParam As Long) As
    Boolean
         Dim sSave As String, Ret As Long
         Ret = GetWindowTextLength(hwnd)
         sSave = Space(Ret)
         GetWindowText hwnd, sSave, Ret + 1
         Form1.Print Str$(hwnd) + " " + sSave
         EnumWindowsProc = True ' продолжение перебора
    End Function

    Дмитрий Данелия

    наверх

    Где можно скачать описание API функций по-русски?

    Вопрос:

    Где можно скачать описание API функций по-русски?

    Ответ:

    http://subscribe.ru/catalog/comp.soft.prog.winapi19743

    •Creator•

    http://www.bcbdev.ru/winapi.htm

    Павел Сурменок

    наверх

    Как в VB .NET динамически создавать текстбоксы?

    Вопрос:

    VB .Net,

    Есть панель Panel1, на ней два текстбокса. Как сделать так, чтобы при появлении текста во втором текстбоксе, снизу создавался третий. Не делался visible, а появлялся, создавался.

    Ответ:

    'Вверху там где объявления переменных уровня класса

    Friend WithEvents txtNumber As System.Windows.Forms.TextBox

    'В процедуре, в которой создаёшь текстбокс
    txtNumber=New System.Windows.Forms.TextBox
    txtNumber.Visible=true
    'Устанавливаем положение и размеры
    txtNumber.Left=...
    txtNumber.top=...
    txtnumber.width=...
    txtnumber.height=...

    Павел Сурменок

    Можно унаследовать предыдущий и делать все это с массивом.

    redim pres...
    txtNumber(index)=New txtNumber(index-1)
    txtNumber(index).top=txtNumber(index-1).top + сколько надо
     а чтоб появился надо добавить его в соответствующую коллекцию
    Controls
     и еще не забыть обработчик навесить, чтоб под ним тоже могло появляться.

    Алексей Вишневский

    наверх

    Как создать меню ( Файл, Правка ...)?

    Вопрос:

    Как создать меню ( Файл, Правка ...)?

    Ответ:

    Щелкни правой кнопкой мышки по форме: выбери пункт Menu Editor
    В Caption вводишь названия пунктов своего меню, в Name - имя-идентификатор для каждого пункта, например:
    Caption = Файл
    Name = mnuOpen
    Для создания каждого последующего пункта щелкай на Next
    Если в пункте меню должны быть еще раскрывающиеся подпункты щелкай на стрелочку вправо (появится ....)
    Для создания разделителя в Caption вводи - (знак минус)
    Вот и все твое меню готово. Жми ОК!
    Если меню должно быть всплывающим в твоей программе (скажем,появляться по нажатию правой кнопки мыши на форме) тогда первым пунктом добавь что-то типа Name = mnuPopUp, и сними флажок Visible, а все остальные пункты сделай подчиненными данному пункту (вложенными) и вызывай следующим образом

    Sub Form_MouseDown(Button As Integer,Shift As Integer, _
         X As Single,Y As Single)
         if button =2 then
            popupmenu mnuPopup
         end if
    End Sub

    Все события при щелчке на пунктах меню обрабатываются в MenuName_Click

    Сергей Л.

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Vao

    Ответ ожидается по этому адресу

    Как сделать импорт ия БД Access в текстовый файл?

    Ответы:

    Вопрос:

    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)

    С помощью этих трех функций можно отобразить окно выбора папки. Что нужно сделать чтобы в этом окне появилась кновпка Создать? По умолчанию ее там нет.

    Ответ:

    Автор ответа: maniaktester

    Здесь лежит пример контрола с созданием такого окошка с кнопкой "Новая папка": http://apexsun.narod.ru/vb/userctrls/comdlg.zip.

    Вопрос:

    Как в окно сообщения MessageBox добавить элемент управления CheckBox? Желательно чтобы не пришлось писать собственный контрол на эту тему.

    Ответ:

    Автор ответа: Максим

    Просто сделай свою форму, размести на ней все, что нужно, и вызови ее с параметром vbModal:

    yourForm.show vbmodal

    А результат получай через переменные public.

    Ответ:

    Автор ответа: Роман

    Никак! MsgBox - это API.

    Вопрос:

    Есть два вопроса.
    1 Как с помощью проги создать ярлыки с параметрами?
    2 Как выключить компьютер, перепробывал пару примеров, в том числе и на Vb .net, ничего не работает, функция проходит и на этом все.

    Ответ:

    Автор ответа: Сан Саныч

    Напиши мне. Кину пример по созданию ярлыков. Пример использует только стандартные системные функции и написан на VB6.

    Вопрос:

    Подкиньте, пожалуйста, пример для определения CRC32. А то на сайте ссылка не работает.

    Ответ:

    Автор ответа: P@Ssword

    Писал сам, всё работает, по умолчанию полином от WinRAR, у WinZIP другой
    :-(

    Dim CRCTable(0 To 255) As Long

    Sub InitCRC(Optional ByVal Polynomial = &HEDB88320)
    Dim Ind As Long, Pos As Long
    Dim CRC As Long, Bit As Long

    For Ind = 0 To 255
    CRC = Ind
    For Pos = 0 To 7
    Bit = CRC And &H1
    CRC = ((CRC And &HFFFFFFFE) \ &H2&) And &H7FFFFFFF
    If Bit = &H1 Then CRC = CRC Xor Polynomial
    Next Pos
    CRCTable(Ind) = CRC
    Next Ind
    End Sub

    Function UpdateCRC(ByVal CRC As Long, ByVal bByte As Byte) As Long
    UpdateCRC = (((CRC And &HFFFFFF00) \ &H100&) And &HFFFFFF) Xor
    CRCTable((CRC And &HFF&) Xor bByte)
    End Function

    Function InvertCRC(ByVal CRC As Long) As Long
    CRC = CRC Xor &HFFFFFFFF
    InvertCRC = CRC
    End Function

    Работать так:
    InitCRC
    CRC = 0&
    CRC = InvertCRC(CRC)
    ...
    CRC = UpdateCRC(CRC,Bytes(Index))
    ...
    CRC = InvertCRC(CRC)

    Если интересует, есть басиковская реализация MD5 :-)

    Вопрос:

    У меня в переменной сохранен текст веб-страницы.
    Я вношу изменения в этот текст и вот вопрос: как теперь эту страницу исполнить в webbrowser?
    Я, конечно, могу сохранить на диск и загрузить с диска, но это мне не подходит.

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Примерно так:

    wbrmain.document.navigate "about:blank"
    wbrmain.document.write ""
    wbrmain.document.body.innertext=strNewHTML

    В принципе, должно сработать. Способ не оптимальный, но...

    PS Если у тебя изначально документ загружен в wbrMain, то ты сможешь изменять его через wbrMain.

    Вопрос:

    Необходимо, чтобы в процедуру подставлялась формула, введённая пользователем. Т.е. например, в 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. Если кто-нибудь сталкивался с такой задачей, то поделитесь успехами с народом. Он Вас не забудет.

    Ответ:

    Автор ответа: Александр Чернов

    Можешь воспользоваться методом Eval объекта Microsoft Script Control 1.0

    Private Sub Command1_Click()
    Dim sngCurX As Single, sngCurY As Single
    Dim sBuf As String, iPosX As Integer
    Dim MSScript As MSScriptControl.ScriptControl
    Set MSScript = New MSScriptControl.ScriptControl
    If Len(Me.Text1) = 0 Then MsgBox "Введи формулу!": End
    If Len(Me.Text2) = 0 Then MsgBox "Введи начальное значение Х": End
    If Len(Me.Text3) = 0 Then MsgBox "Введи конечное значение Х": End
    If Len(Me.Text4) = 0 Then MsgBox "Введи приращение по Х": End
    iPosX = InStr(1, UCase$(Me.Text1), "X")
    If iPosX = 0 Then MsgBox "В формуле отсутствует переменная Х!": End

    Me.List1.Clear
    MSScript.Language = "VBScript"
    For sngCurX = Me.Text2 To Me.Text3 Step Me.Text4
    sBuf = Left$(Me.Text1, iPosX - 1) & Str(sngCurX) & Mid$(Me.Text1, iPosX + 1)
    sngCurY = MSScript.Eval(sBuf)
    Me.List1.AddItem Format$(sngCurX, "#0.000") & " : " & Format$(sngCurY, "#0.000")
    Next
    Set MSScript = Nothing
    End Sub

    Вопрос:

    Как народ умудряется писать такие маленькие контролы? У меня меньше 100Кб не получается (хотя подобный занимает 25)

    Ответ:

    Автор ответа: Максим

    Сожми ее. Например, UPX или ASPack.

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Может, народ использует другую среду разработки?

    Вопрос:

    А что значит Option Compare Text?

    Ответ:

    Автор ответа: Сан Саныч

    Это значит забить на регистр сравниваемых строк во всем модуле. Т.е. если ты в заголовке формы пропишешь Option Compare Text и в какой-нить процедуре будешь сравнивать например А=а то это выражение будет истинным.

    Ответ:

    Автор ответа: Vao

    По-моему это значит, что при сравнении строк регистр не будет иметь значение, т.е. "VB"="vb".

    Ответ:

    Автор ответа: Артем Кривокрисенко

    Тут ты указываешь, как VB будет строки сравнивать, например, бинарно, или как текст, те не учитывая регистр.

    Ответ:

    Автор ответа: P@Ssword

    Это значит, что ("TEXT" = "TeXt") = True

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 198.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    У Вас есть возможность работать с форумами сайта vbnet.ru по e-mail! Для этого нужно зарегистрироваться на сайте, а затем подписаться на интересующие Вас форумы на странице http://vbnet.ru/profile/subacribe.asp. Этот сервис сделан для Вас! Пользуйтесь!
    Читайте!

    Содержание выпуска

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Один момент из жизни форума: Разница между Obj=Nothing и Obj.Dispose

    • Доска объявлений

    • Вопрос/Ответ

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 20.09.2003 17:28 | Раздел: Примеры кода | Автор: SCINER

    Консоль - Использование консоли из VB

    Дата: 19.09.2003 19:08 | Раздел: Примеры кода | Автор: Половый Александр

    AnimateWindow - От автора: Изучаем api-функцию AnimateWindow 1.Развертывание: - слева направо; - справа налево; - сверху вниз; - снизу вверх; - из центра; 2.Скольжение; 3.Затемнение.

    Дата: 19.09.2003 18:37 | Раздел: Примеры кода | Автор: Millenium

    Spectrum Analyzer - От автора: Данный исходный код демонстрирует как можно получать байты с звукого устройства Как определить звуковой спектор Как построит простой, половинчетый, линейный и точечный анализатор звукого сигнала Как работать с библиотекой "winmm.dll" Исходный код распростроняется свободно При добавлени изменений и модификации кода, любезно прошу выслать мне копию В исходнике тчательно описаны все функции и команды Пример очень красиво получиося. Работоспасиобность 100%. Работает на всех ОС.
    P.S: При добавлени изменений и модификации кода, любезно прошу выслать мне копию

    От User Unknown: попробуйте включить WinAmp и потыкать эту программку:)

    Дата: 19.09.2003 18:28 | Раздел: Примеры кода | Автор: schAlexey

    Player ala Winamp - От автора: Пример плэйера с поддержкой скинов (Winamp V.2) С эквалайзером, но пока без плэй листа. К томуже хороший пример по использовании функции BitBlt. От User Unknown: почти полноценный WinAmp! Я вшоке...

    Дата: 19.09.2003 18:09 | Раздел: Примеры кода | Автор: Теляков Али Шамильевич

    Jeti - От автора: Игра про снежного человека с исходникама DirectX 7 Ремикс старой игры. От User Unknown: Старый добрый LodeRunner ;)

    Дата: 19.09.2003 18:00 | Раздел: Примеры кода | Автор: Теляков Али Шамильевич

    Сапер - От автора: Стандартный сапер с исходниками. Отт User Unknown: А это клон Windows'овского сапера (минера?!). Содержит ошибки, но не критические.

    Дата: 19.09.2003 17:48 | Раздел: Примеры кода | Автор: Теляков Али Шамильевич

    FileManager - От автора: Простой файл менеджер. От User Unknown: Ну это автор явно поскромничал:). Очень неплохие задатки и начало для файлового менеджера. Немного страдает интерфейс в высоком разрешении, но все же удобен. Не дописана справка и есть некоторые небольшие глюки. Но если автор будети продолжать работу над этим менеджером, то возможно в будущем мы может быть увидим новый клон Windows Commander (ныне Total Commander) aka Salamander ;). Интересен стиль написания. Почти все переменные и функции имеют русские названия. Качайте, изучайте...

    Дата: 19.09.2003 17:40 | Раздел: ActiveX контролы | Автор: Onishchuk Evgen

    Hitman74_Library - От автора: Библиотека - для работы с реестром, ini-файлами, файлами, директориями, электропитанием ,Сd-rom, монитором, мышью, клавиатурой, звуком, дисками, рабочим столом, трэем, динамиком, иконками, обоями, математическими функции, временем, текстом, программами, информацией о системе, сетью, msdos, настройками msdos, приоритетами, ресурсами системы, администрирование системы, скрытые возможности системы и многое другое...

    Последние 20 тем форума на VBNet.Ru:

    09:55 / 22 сен. Для тех у кого книга: "Переход на VB.NET" | Хитов: 5 | Ответов: 0
    23:25 / 21 сен. Подскажите как ... | Хитов: 13 | Ответов: 0
    22:08 / 21 сен. Как удалить папку и форматировать диск. (Заране... | Хитов: 9 | Ответов: 0
    19:11 / 21 сен. API функции для печати под VB | Хитов: 9 | Ответов: 1
    17:50 / 21 сен. Как запустить html или htm файл. | Хитов: 24 | Ответов: 5
    15:08 / 21 сен. Тыкните меня в АПИ | Хитов: 21 | Ответов: 1
    14:56 / 21 сен. Шифрование текстового файла | Хитов: 20 | Ответов: 1
    07:01 / 21 сен. Форматирование дискеты в XP | Хитов: 11 | Ответов: 0
    04:33 / 21 сен. Рациональное предложение | Хитов: 27 | Ответов: 1
    21:54 / 20 сен. Объем проекта | Хитов: 23 | Ответов: 0
    18:38 / 20 сен. На чем писать программы? | Хитов: 53 | Ответов: 5
    18:37 / 20 сен. .NET | Хитов: 8 | Ответов: 0
    18:36 / 20 сен. Нормальный прогер? | Хитов: 35 | Ответов: 3
    17:45 / 20 сен. Как послать пробел в вункции SendKeys? | Хитов: 20 | Ответов: 2
    15:23 / 20 сен. API? | Хитов: 40 | Ответов: 3
    12:52 / 20 сен. CD-ROM | Хитов: 28 | Ответов: 0
    12:38 / 20 сен. DataGrid | Хитов: 19 | Ответов: 1
    09:30 / 20 сен. Буфер обмена WinAPI | Хитов: 28 | Ответов: 2
    03:35 / 20 сен. ico и bmp | Хитов: 29 | Ответов: 5
    03:31 / 20 сен. Загрузка защещеного html | Хитов: 13 | Ответов: 0

    Последние поступления в Библиотеку кодов:

    Конвертирование bmp файла в другие форматы (8)
    Удаление HTML тегов в .NET (43)

    наверх

    Новости сайта MSDN

    наверх

    Новости сайта GotdotNet

    • 16.09.2003 - Опубликованы локализованные (русскоязычные версии) ASP.NET Starter Kits v 1.0!
      Обновлены следующие Starter Kits: Сommunity, Commerce, Portal, Timetracker, Reports.

    Новые статьи:

    • 18.09 - Групповая разработка с применением Visual Studio .NET и Visual SourceSafe

    наверх

    Новости сайта dotSite

    Новые статьи:

    Новые примеры:

    наверх

    Один момент из жизни форума: Разница между Obj=Nothing и Obj.Dispose

    Вопрос:
    Автор вопроса: Tovdi

    Подскажите, в чем разница конструкций:

    Obj=Nothing и Obj.Dispose

    и в какой из них освобождается память, выделенная под обект?

    Ответы:

    Автор: Last_Santa
    Если я правильно понял то obj = nothing уничтожает обьект, а obj.dispose деинициализирует. Значит разница примерно такая же, как и при выборе способа удаления программы установленной на компьютере (можно удалить папку с програмой, а лучше воспользоватся деинсталятором).

    Автор: Creator
    Риторический вопрос
    Почитай про сборку мусора, сейчас у мелкософта новая концепция по этому поводу, много статей на эту тему ....

    Автор: grayk
    Dispose освобождает используемые ресурсы. По идее, если класс имеет метод Dispose (т.е. поддерживает интерфейс IDisposable), его обязательно надо использовать перед уничтожением объекта. Я так понял, что если его не использовать, сборщик мусора не сможет выполнить свой долг до конца. А память не освобождается ни в том, ни в другом случае. Тут как раз см. выше. Про новую концепцию мелкософта.

    Автор: grayk
    "..., в CLR детерминированное завершение не поддерживается. Нельзя точно предсказать, когда будет вызван завершитель, а в некоторых случаях вызов завершителя вообще не гарантирован."

    Дан Эплман, "Переход на VB.Net". с.112

    Автор: Павел
    >Я так понял, что если его не использовать, сборщик мусора не сможет выполнить свой долг до конца.

    А почему? Ведь GC должен удалять все объекты, на которые нет ссылок. Раз мы убили ссылку (присваиванием Nothing), то значит объект будет удалён при следующем запуске GC. Или я не прав?

    Автор: grayk
    Прав. Но вот Д.Э. не советует на это особо надеяться. Вообще, тема "глуховатая", проверить все это трудно. Например, как узнать, съел GC ссылку на конкретный объект, или нет, если да, то когда?

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Антон

    Ответ ожидается по этому адресу

    Кто может в меня кинуть ASPack или UPX?

    Автор вопроса: KeeL

    Ответ ожидается по этому адресу

    Как сделать чтобы в systemtray были видны числа, которые задаются моей переменной?

    Автор вопроса: Vao

    Ответ ожидается по этому адресу

    Как сделать инсталлятор для своей проги, (Package Wizard какой-то глючный и не русский к тому же), а может уже есть готовые?

    Автор вопроса: Шаукат Салахутдинов

    Ответ ожидается по этому адресу

    У меня 4 вопроса по MSHFlexGrid:

    1. В таблице БД есть поле типа boolean. При привязке грида к запросу из таблицы в соответствующем столбце отображается True/False. Есть ли свойство колонок у грида, изменив которое можно было представлять значения поля как CheckBox (так делает Access)? Если свойства у грида нет, тогда как привязать к каждой ячейке грида CheckBox, да так, чтобы можно было бы изменять его значение?

    2. В запросе из таблицы производится форматирование полей. Например для поля даты - format(DateOp,'dd.mm.yyyy'), или для поля суммы - format(Summ,'#,0.00'). При этом перестает правильно работать свойство грид.Sort. Если преобразование типов в запросе не делать, то все нормально. КАК ПОБЕДИТЬ? Сейчас делаю так, определяю колонку, по которой сортируют, если по ней грид отсортирует верно (т.е. поле не форматировано), то сортирую гридом, иначе переписываю запрос и обновляю грид заново. Выполняется естественно медленнее.

    3. Как сделать так, чтобы видимая часть пустого грида была заполнена строками, но полоса вертикальной прокрутки бы не появялось, даже если меняется размер грида? Так делает ListView в табличном представлении.

    4. Есть ли возможность фильтрации строк грида свойствами самого грида (без фильтрации запроса, к которому привязан грид)?

    Если есть грид позволяющий все это делать, дайте точную ссылку на
    него.

    Автор вопроса: ал

    Ответ ожидается по этому адресу

    Нужно сделать программу,которая имела бы полный доступ к другой программе, но не из стандартного пакета Windows (типа Калькулятор), а собственной или сделанной кем-то другим. SendKeys для нажатия клавиш тут не подходит. Можно пример на C++ или Visual Basic.

    Автор вопроса: ALEXBOR

    Ответ ожидается по этому адресу

    У меня есть прога на VB, типа библиотеки кодов. Для хранения кодов я использую небольшой HTML редактор, т.е. слева в "дереве" разделы, справа - содержание в виде HTML документа. База на Access. Вопрос такой: можно ли в самом тексте HTML вместо тэга IMG для показа изображений использовать не указание на дисковый ресурс, а что-то, что могло бы считывать картинки из базы? А то приходится таскать все изображения за собой, а я хочу положить их в БД. Варианты есть, но они мне кажутся не очень эффективными. Буду признателен за дельный совет.

    Автор вопроса: Евгений

    Ответ ожидается по этому адресу

    Кто раъяснит мне раяличие между ключевыми словами Public и Global?

    Автор вопроса: Laguna Ukraine

    Ответ ожидается по этому адресу

    Подскажите, какие символы НЕ могут присутствовать в электронном адресе (я имею ввиду из клавиатурного набора)? Ну и аналогичный вопрос по поводу доменов: какие символы НЕ могут присутствовать в доменном имени (насколько я понимаю, те же, что и в электронном). Я прав?

    Автор вопроса: Oleg

    Ответ ожидается по этому адресу

    У меня одноранговая сеть. Что нухно сделать, чтобы часть кода htm станички выполнялось на машине, на которой она непосредственно находится?

    Автор вопроса: Владимир

    Ответ ожидается по этому адресу

    Этот код выполняет анализ web-страницы в WebBrowser.
    У меня броузер MyIE по умолчанию. Как заставить работать этот код в MyIE?

    Private Sub Command1_Click()
    WebBrowser1.Navigate Text1.Text
    End Sub

    Private Sub WebBrowser1_DocumentComplete _
    (ByVal pDisp As Object, URL As Variant)
    Dim Doc As IHTMLDocument2
    Set Doc = WebBrowser1.Document
    If URL = _
    "http://moneycentral.msn.com/home.asp" Then
    Dim Inputs As IHTMLElementCollection
    Set Inputs = Doc.All.tags("INPUT")
    Dim Element As IHTMLElement
    Set Element = Inputs.Item(1, 1)
    Dim InputElement As IHTMLInputElement
    Set InputElement = Element
    InputElement.Value = Text1.Text
    Doc.Forms.Item(0, 0).submit
    End If
    End Sub

    Автор вопроса: Alexandr Stepanov

    Ответ ожидается по этому адресу

    Как можно "связать" ProgressBar с копированием файлов?

    Автор вопроса: Турков Максим

    Ответ ожидается по этому адресу

    Как удалить файл в корзину? В vb6 и vb .net.

    Автор вопроса: Турков Максим

    Ответ ожидается по этому адресу

    .Net
    Когда я сохраняю текст, и перехожу на новую строку (vbcrlf / ControlChars.CrLf), в тексте отображается какой-то символ-квадратик. Как перейти на новую строку без этого?

    Ответы:

    Нет ответов.
    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 199.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Извините, в прошлом выпуске была очепятка в ссылке (для подписки на форумы vbnet.ru). Правильная ссылка: http://vbnet.ru/profile/subscribe.asp
    Читайте!

    Содержание выпуска

    • Как при запуске программы на некоторое время показать логотип?
    • Как узнать на каком элементе TreeView был сделан Right click ?
    • Как текст отправлять по SMTP?
    • Как проверить дату создания файла?
    • Как из одной формы открыть другую?

    • Вопрос/Ответ

    Как при запуске программы на некоторое время показать логотип?

    Вопрос:

    Как сделать, чтобы перед запуском программы, некоторое время был виден только логотип?

    Ответ:

    Создай обычную формочку (Splash)
    Добавь в проект модуль кода (Add Module)
    В этом модуле создай процедуру Sub Main() из которой показывай свою формочку

    Sub Main()
         Form.show
    end sub

    В Меню VB Project --> Project Properties в StartUp Object установи Sub Main
    А далее из этой формы по истечение определенного времени (можно по таймеру) запускай основную форму программы, а эту выгружай.

    Сергей Л.

    наверх

    Как узнать на каком элементе TreeView был сделан Right click?

    Вопрос:

    Как узнать на каком элементе TreeView был сделан Right click?

    Ответ:

    В событии NodeClick дерева нет параметра Button. Поэтому чтобы отслеживать нажимаемые кнопки в этом событии можно использовать следующий код:

    Option Explicit
    Dim vButton As Integer

    Private Sub TreeView1_MouseDown(Button As Integer, Shift As Integer, x As
    Single, y As Single)
         vButton=Button
    End sub

    Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
         'В переменной vButton хранится номер нажатой клавиши мыши.
         'Можете добавить код для его обработки.
    End sub

    Работает все так: событие MouseDown происходит раньше NodeClick. Перед событием NodeClick положение клавиши запоминается в событии MouseDown, все просто.

    Дмитрий

    наверх

    Как текст отправлять по SMTP?

    Вопрос:

    Как текст отправлять по SMTP? Мне надо чтобы VB .Net забирал текст из текстбокса и, по SMTP, отправлял его на e-mail.

    Ответ:

    Можно и без знания протокола SMTP. Взгляни на пространство имён System.Web.Mail. Класс SMTPMail - собственно, для отправки письма. Там указывается smtp-сервер. Класс MailMessage (могу ошибиться в названии) - это само письмо. Задаются поля Тема, От, Куда, Копия, Скрытая копия, приоритет и т.д.

    Павел Сурменок

    наверх

    Как проверить дату создания файла?

    Вопрос:

    Как проверять дату создания файла?

    Ответ:

    Function FileDateTime(PathName As String)
         Member of VBA.FileSystem
         Returns the date and time stamp of a file

    .::Savenger::.

    наверх

    Как из одной формы открыть другую?

    Вопрос:

    Как из одной формы открыть другую?

    Ответ:

    1. Form1.show [ vbModal]
    2. Dim form as new Form1
            form.show

    Viaceslavas Kaleda

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Сан Саныч

    Ответ ожидается по этому адресу

    Есть такой Active-X компонент: MS Internet Controls (SHDOCVW.OCX). Добавил я его на форму и попытался узнать значение его хендла (hwnd). И тут возникает ошибка: "Method 'HWND' of object IwebBrowser2 failed.". Спрашивается - какого ему надо? И как узнать ентот хендл?

    Автор вопроса: Дмитрий

    Ответ ожидается по этому адресу

    Есть числа 5,10,15,20 и т.д. (100 и более). Программа выполняет действие и выдает число, допустим, 7. Как узнать ближайшее меньшее число и большее?

    Автор вопроса: Евгений

    Ответ ожидается по этому адресу

    Как сохранить OLE-объект в бд ACCESS и затем его вычитывать?

    Автор вопроса: Дамир

    Ответ ожидается по этому адресу

    Есть ли какой-нибудь грид, в поле которого можно вставлять картинку?

    Автор вопроса: Дамир

    Ответ ожидается по этому адресу

    Что нужно сделать, чтобы на гриде работал скролл мыши?

    Автор вопроса: Николай

    Ответ ожидается по этому адресу

    На одной форме вызываю контекстное меню командой "popupmenu МОЕ_МЕНЮ". Из одного пункта этого меню вызываю форму, на которой тоже есть свое контекстное меню. Так вот, на этой форме не удается вызвать это меню. Проверял, если с первой формы вызывать вторую не через меню, а, например, через Button, то второе меню работает. В MSDN напимано, что одновременно 2 меню не могут быть активизированы. Может кто сталкивался с данной проблемой и смог ее решить?

    Автор вопроса: HoodWin

    Ответ ожидается по этому адресу

    Как при помощи SendKeys послать Enter на чужую прогу?

    Ответы:

    Вопрос:

    Как сделать импорт ия БД Access в текстовый файл?

    Ответ:

    Автор ответа: Alexander

    Наверно обратно экспорту из текстового файла :-( Вопрос на каком-то непонятном диалекте...

    Вопрос:

    Кто может в меня кинуть ASPack или UPX?

    Ответ:

    Автор ответа: Турков Максим

    На vbnet.ru в разделе полезных программ.

    Вопрос:

    Как сделать чтобы в systemtray были видны числа, которые задаются моей переменной?

    Ответ:

    Автор ответа: @HT0X@

    В смысле чтобы в трэе были числа? Первый способ - вставлять в трэй иконки с нарисованными числами. Второй способ - вставить в трэй иконку, а числа менять в ее ToolTipText (при наведении на нее мышью появится подсказка с числом). Это все делает мой Tray Icon Control, который можно скачать с сайта vbnet.ru в разделе "ActiveX контролы".

    Ответ:

    Автор ответа: Кирилл "Walnuts" Винокуров

    Где-то на сайте VBNet был исходник, описывающий работу ProgressBar'а в трэе. Скачай, может пригодится.

    Если хочешь, могу выслать.

    Вопрос:

    Как сделать инсталлятор для своей проги, (Package Wizard какой-то глючный и не русский к тому же), а может уже есть готовые?

    Ответ:

    Автор ответа: @HT0X@

    Лично я пользуюсь Wise Install Wizard, который делает msi файлы, к тому же там уже есть готовые сценарии инсталляции, правда их надо русифицировать.

    Ответ:

    Автор ответа: Дима

    Очень рекомендую InstallMaster 8.1 - Может почти все и все под твоим контролем. Умненький инсталлятор. Я сам под ним клепаю дистрибутивы.

    Ответ:

    Автор ответа: Кирилл "Walnuts" Винокуров

    Да, есть. Посмотри на сайте VBNet (в разделе исходных кодов) или на www.sources.ru.

    Вопрос:

    У меня 4 вопроса по MSHFlexGrid:

    1. В таблице БД есть поле типа boolean. При привязке грида к запросу из таблицы в соответствующем столбце отображается True/False. Есть ли свойство колонок у грида, изменив которое можно было представлять значения поля как CheckBox (так делает Access)? Если свойства у грида нет, тогда как привязать к каждой ячейке грида CheckBox, да так, чтобы можно было бы изменять его значение?

    2. В запросе из таблицы производится форматирование полей. Например для поля даты - format(DateOp,'dd.mm.yyyy'), или для поля суммы - format(Summ,'#,0.00'). При этом перестает правильно работать свойство грид.Sort. Если преобразование типов в запросе не делать, то все нормально. КАК ПОБЕДИТЬ? Сейчас делаю так, определяю колонку, по которой сортируют, если по ней грид отсортирует верно (т.е. поле не форматировано), то сортирую гридом, иначе переписываю запрос и обновляю грид заново. Выполняется естественно медленнее.

    3. Как сделать так, чтобы видимая часть пустого грида была заполнена строками, но полоса вертикальной прокрутки бы не появялось, даже если меняется размер грида? Так делает ListView в табличном представлении.

    4. Есть ли возможность фильтрации строк грида свойствами самого грида (без фильтрации запроса, к которому привязан грид)?

    Если есть грид позволяющий все это делать, дайте точную ссылку на
    него.

    Ответ:

    Автор ответа: Корик

    Про чекбоксы не скажу, по-моему, их можно вставить только программно, то есть самому подбирать координаты расположения и т.д...

    По поводу сортировки - у меня возникала проблема только с датами. Так как я по идее заранее знаю, какой тип данных находится в определённом столбе, то со строками и числами проблем не было:

    select case msfg1.col
    case 1,2,4: msfg1.sort=5 '(строки)
    case 3,5 to 8: msfg1.sort=3 '(числа)
    case 9: msfg1.sort=9 '(что-то своё)
    end select

    При использовании sort=9 есть евент сравнивания строк, там всё и пишешь, там я даты и сравнивал.

    Вопрос:

    Нужно сделать программу,которая имела бы полный доступ к другой программе, но не из стандартного пакета Windows (типа Калькулятор), а собственной или сделанной кем-то другим. SendKeys для нажатия клавиш тут не подходит. Можно пример на C++ или Visual Basic.

    Ответ:

    Автор ответа: @HT0X@

    Не знаю как другие, но я не понял формулировки вопроса. Но если нужно управлять другой программой, и не просто передавать в буфер клавиатуры скан-коды нажатых клавиш, а именно управлять ею, то, наверное, подойдет термин "работать с ее объектной моделью", т.е. создавать и управлять объектами данной программы. То есть, тут поможет OLE Automation. Загрузи VB и посмотри в project/references есть ли возможность подключить в проект ее объектную модель (посмотри в окошке есть ли она в списке доступных). Если нет - попытайся в том же окне подключить библиотеки данной программы, если они есть. Ну и прочти в хелпе по данной программе поддерживает ли она OLE Automation (есть ли там что связанное с VBA).

    Ответ:

    Автор ответа: Кирилл "Walnuts" Винокуров

    Небольшой пример использования DDE. DDE - это механизм для обмена данными между приложениями.
    Создайте 2 проекта (с именами "Project1" и "Project2"). В первом проекте у формы установить свойства LinkTopic="SYSTEM" и LinkMode=1. Добавьте на форму Label и установите свойство LinkItem="DDE".
    Во втором проекте добавьте TextBox и CommandButon (имена не изменяйте).
    Добавьте в проекты расположенный ниже код.
    Запустите первый проект (сервер DDE), затем второй (клиент DDE). Нажмите на кнопку - в TextBox на форме первого проекта появится строка, переданная из второго проекта.

    'Код первого проекта

    Private Sub Form_LinkExecute(CmdStr As String, Cancel As Integer)
    MsgBox "Received " & CmdStr, vbInformation
    Cancel = False
    End Sub

    'Код второго проекта

    Private Sub Command1_Click()
    Text1.LinkMode = vbLinkNone
    Text1.LinkTopic = "Project1|SYSTEM"
    Text1.LinkItem = "DDE"
    Text1.LinkMode = vbLinkManual
    Text1.LinkExecute "Hello World"
    End Sub

    Вопрос:

    У меня есть прога на VB, типа библиотеки кодов. Для хранения кодов я использую небольшой HTML редактор, т.е. слева в "дереве" разделы, справа - содержание в виде HTML документа. База на Access. Вопрос такой: можно ли в самом тексте HTML вместо тэга IMG для показа изображений использовать не указание на дисковый ресурс, а что-то, что могло бы считывать картинки из базы? А то приходится таскать все изображения за собой, а я хочу положить их в БД. Варианты есть, но они мне кажутся не очень эффективными. Буду признателен за дельный совет.

    Ответ:

    Автор ответа: Александр Качанюк

    А ты используй не страницы HTML, а архивы HTT. Попробуй в експлорере сохранить так страницу и все поймешь.

    Ответ:

    Автор ответа: Chernov Dmitry

    Нужно использовать тег IMG, однако вместо ссылки на картинку можно указать ссылку на скрипт на сервере с параметрами, типа:

    При этом серверный скрипт должен правильно вернуть браузеру заголовки, которые описывают изображение, вынуть изображение из БД и послать его броузеру. При этом язык скрипта может быть любой, лиш бы он принципиально поддерживал подобные процедуры. Примеров в INet'е наити можно достаточно. Если же требуется хранить подобные вещи на локалином компьютере, который не является сервером, то тут подобные вещи не пройдут.

    Ответ:

    Автор ответа: ViTal

    А что мешает таскать картинки в базе? Очень удобно! Я занимаюсь подобным проектом и пока никаких траблов не встречал...

    Вопрос:

    Кто раъяснит мне раяличие между ключевыми словами Public и Global?

    Ответ:

    Автор ответа: ViTal

    Ключевое слово Global нужно лишь для совместимости со старыми версиями ВБ, т.е. чтоб в ВБ 6 можно было открыть проект, написанный в ВБ 2,3,4...
    Используй Public!

    Ответ:

    Автор ответа: SBJocker

    Global - устаревшее ключевое слово для определения глобальной переменной.
    Public - пришедшее ему на замену ключевое слово с идентичным значением.

    Вопрос:

    Подскажите, какие символы НЕ могут присутствовать в электронном адресе (я имею ввиду из клавиатурного набора)? Ну и аналогичный вопрос по поводу доменов: какие символы НЕ могут присутствовать в доменном имени (насколько я понимаю, те же, что и в электронном). Я прав?

    Ответ:

    Автор ответа: Alexander V. Babich

    Насколько я помню в доменном имени допустимы 26 английских букв, десять цифр и дефис.

    Ответ:

    Автор ответа: @HT0X@

    Могут присутствовать только большие и маленькие латинские буквы. И все.

    Вопрос:

    У меня одноранговая сеть. Что нухно сделать, чтобы часть кода htm станички выполнялось на машине, на которой она непосредственно находится?

    Ответ:

    Автор ответа: Chernov Dmitry

    Необходимо установить WEB (HTTP) сервер, типа Apache или MS PWS, ну а к нему что нибудь типа Perl или PHP. В MS PWS встроена технология ASP.

    Вопрос:

    Как можно "связать" ProgressBar с копированием файлов?

    Ответ:

    Автор ответа: Корик

    А чё... Вычисляешь общий размер всех файлов, загоняешь это число (можно поделить на 1000 если слишком большое) в pb1.Max (pb1 - progress bar), а в цикле, в котором перегоняешь файлы, прибавляешь к pb1.Value размер перегнанного файла.

    Ответ:

    Автор ответа: @HT0X@

    Используя FileSystemObject, можно связать все файлы и количество скопированных файлов.

    Вопрос:

    .Net
    Когда я сохраняю текст, и перехожу на новую строку (vbcrlf / ControlChars.CrLf), в тексте отображается какой-то символ-квадратик. Как перейти на новую строку без этого?

    Ответ:

    Автор ответа: Корик

    Попробуй воспользоваться vbNewLine.

    Ответ:

    Автор ответа: @HT0X@

    Может быть нужно проверить свойство .MultiLine=True.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 200.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • MDesign
  • IgorykSoft
  • DanSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Типа юбилей! Только вот праздничного настроения совсем нет... Школа совсем заколебала :-(( Так что ждём 300-ого выпуска :-)

    Сорри, я опять ссылку для подписки на форумы спутал :-((. Эта ссылка точно правильная. Я проверял. http://www.vbnet.ru/online/subscribe.asp

    Читайте!

    Содержание выпуска

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта MSDN
    • Новости сайта GotdotNet
    • Новости сайта dotSite

    • Один момент из жизни форума: ReDim

    • Доска объявлений

    • Вопрос/Ответ

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Последние 20 тем форума на VBNet.Ru:

    11:51 / 29 сен. Разделитель на форме, как перемещать мышкой | Хитов: 32 | Ответов: 3
    10:30 / 29 сен. Проблемы с отображением DataGrid и Microsoft Ca... | Хитов: 11 | Ответов: 0
    04:04 / 29 сен. Пароль | Хитов: 30 | Ответов: 1
    22:29 / 28 сен. Это как и .... | Хитов: 26 | Ответов: 1
    19:48 / 28 сен. DialUP в XP и деКодирование файла для отправки | Хитов: 8 | Ответов: 1
    16:43 / 28 сен. FBE | Хитов: 17 | Ответов: 1
    16:39 / 28 сен. Программа на работает под XP :( | Хитов: 24 | Ответов: 2
    15:58 / 28 сен. Новое сообщение без темы | Хитов: 13 | Ответов: 0
    14:38 / 28 сен. Инсталлятор для Visual Basic | Хитов: 52 | Ответов: 7
    13:24 / 28 сен. тест | Хитов: 2 | Ответов: 1
    11:21 / 28 сен. Динамическое создание элемента. | Хитов: 21 | Ответов: 1
    10:41 / 28 сен. Глобальное перерождение моего сайта. | Хитов: 24 | Ответов: 2
    22:26 / 27 сен. Сканер портов | Хитов: 36 | Ответов: 2
    22:24 / 27 сен. Текущая директория | Хитов: 25 | Ответов: 3
    22:23 / 27 сен. Нюк | Хитов: 45 | Ответов: 5
    20:28 / 27 сен. App.path | Хитов: 33 | Ответов: 4
    16:45 / 27 сен. Scrool BAR | Хитов: 18 | Ответов: 2
    12:59 / 27 сен. Класы..События... | Хитов: 28 | Ответов: 5
    11:54 / 27 сен. Блокировка клавиш Ctrl+Alt+Del в XP | Хитов: 35 | Ответов: 6
    08:04 / 27 сен. Adodc с паролем | Хитов: 16 | Ответов: 1

    Последние поступления в Библиотеку кодов:

    Как скачать файл? (23)
    Конвертирование bmp файла в другие форматы (185)

    наверх

    Новости сайта MSDN

    наверх

    Новости сайта GotdotNet

    Новые статьи:

    • 22.09 - Потоки ввода-вывода
    • 22.09 - Валидаторы на заказ - пример валидации данных

    наверх

    Новости сайта dotSite

    Новые статьи:

    Новые примеры:

    наверх

    Один момент из жизни форума: ReDim

    Вопрос:
    Автор вопроса: lnu

    Народ, тут такой вопрос. Вот кусок кода:

    Dim MyArray() As Long
    i = 1
    j = 1
    ReDim Preserve MyArray(i, j)
    j = j + 1
    ReDim Preserve MyArray(i, j)
    j = j + 1
    ReDim Preserve MyArray(i, j)
    i = i + 1
    ReDim Preserve MyArray(i, j) ' и тут у меня проблемка: Subscript out of range.

    Как мне всё же увеличить і ?
    Без Preserve работает, но мне бы оставить содержимое массива.
    Можно, конечно, создать временный массив, но два раза гонять данные... (MyArray -> TempArray, TempArray -> MyArray).
    Есть ли еще какой то выход?

    Ответы:

    Автор: boevik
    Вот что пишет Microsoft в MSDN:
    When you use Preserve, you can resize only the last dimension of the array, and for every other dimension you must specify the same size it already has in the existing array.

    Автор: Павел
    В принципе невозможно. Если не полениться и почитать MSDN, то можно узнать, что изменять можно только последнюю размерность массива.
    Единственный выход: создать новый массив с нужными размерами и в цикле перегнать туда данные. Я так делал.

    Автор: USA
    Используй массив типа Variant. Тогда в каждый элемент массива можно будет запихать еще массив. Обращение немного корявое будет, что-то вроде Arr(i)(j). Где-то здесь на форуме я подобный пример уже писал.

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса: Overlord of AI

    Ответ ожидается по этому адресу

    Я тут накопал, что в VBA (Visual Basic for Applications) для Акцесса для импорта из XML в БД есть процедура ImportXML. Еще я ияобрел, что там же есть какое-то волшебное слово DoCmd, позволяющее, цитирую: "выполнять макрокоманды в процедурах Visual Basic. Для выполнения макрокоманды в программе следует включить метод объекта DoCmd в процедуру. Большинству макрокоманд соответствуют методы DoCmd, имена которых совпадают с английскими именами макрокоманд." Вопрос в следующем: Как все это перевести на нормальный VB?

    Автор вопроса: oleks

    Ответ ожидается по этому адресу

    Какой Charset нужно установить для контролов в VB6, чтобы работать c Unicode? Точнее у меня информация в БД в Unicode, a c помошью VB форм она должна обрабатываться. Благодарен за любую информацию о Unicode-ах.

    Автор вопроса: Турков Максим

    Ответ ожидается по этому адресу

    Как сохранить страницу из webbrowser в определенную папку, без окна "Сохранить Как"?

    Автор вопроса: Swift

    Ответ ожидается по этому адресу

    Как переключить раскладку клавиатуры на украинский язык?

    Автор вопроса: Stas

    Ответ ожидается по этому адресу

    Как в VB .Net написать аналог команды ping?

    Ответы:

    Вопрос:

    Есть числа 5,10,15,20 и т.д. (100 и более). Программа выполняет действие и выдает число, допустим, 7. Как узнать ближайшее меньшее число и большее?

    Ответ:

    Автор ответа: RaZoom

    'x\y = Int(x/y)
    'Меньшее число:
    (7\5)*5
    'Большее число:
    (7\5+1)*5

    Ответ:

    Автор ответа: Korik

    Ну если все числа кратные пяти, то тебе поможет обычная математика:

    function MyRound(x as integer) as integer
    MyRound=Round(x/5)*5
    end function

    Ответ:

    Автор ответа: Денис

    Dim x1, x2, x3, s1, s2 As Integer
    Private Sub Form_Load()
    x1 = 5
    x2 = 7
    x3 = 15
    s1 = x1 - x2
    s2 = x3 - x2
    If s1 < 0 Then s1 = 0 - s1
    If s2 < 0 Then s2 = 0 - s2
    If s1 < s2 Then MsgBox x2 & " Ближе к " & x1
    If s1 > s2 Then MsgBox x2 & " Ближе к " & x3
    If s1 = s2 Then MsgBox "Одинаково"
    End Sub

    Ответ:

    Автор ответа: Vir

    Если список отсортирован, то оответственно левый и правый элемент. Если нет, можно:

    1) отсортировать
    2) пройти в цикле массив с условием

    a=array(1,2,3,4,5,6,7,8,9)
    n=7'данное число
    sLeft=a(i)'искомое число с лева
    sRight=a(i)'искомое число c права
    for i=2 to ubound(a)
    if a(i)>sLeft and a(i) if a(i)n then sRight=a(i)
    next

    Код не проверялся.

    Вопрос:

    На одной форме вызываю контекстное меню командой "popupmenu МОЕ_МЕНЮ". Из одного пункта этого меню вызываю форму, на которой тоже есть свое контекстное меню. Так вот, на этой форме не удается вызвать это меню. Проверял, если с первой формы вызывать вторую не через меню, а, например, через Button, то второе меню работает. В MSDN напимано, что одновременно 2 меню не могут быть активизированы. Может кто сталкивался с данной проблемой и смог ее решить?

    Ответ:

    Автор ответа: Артем Кривокрисенко

    В MSDN в Базе знаний было решение этой проблемы. Дело в том, что если из контекстного меню вызвать модальное окно, то на нем ну будут работать меню. Решение они предлагают такое - повесить на форму таймер с интервалом, например, 100. При щелчке на контекстном меню запустить таймер, в таймере отобразить окно и остановить таймер. И волки сыты, и овцы целы.

    Ответ:

    Автор ответа: Kuznetsoft

    "Если Вы используете всплывающие меню (popup menus) в Ваших прогах, то опасайтесь бага, имеющегося в VB4 16/32 и VB5. Если у Вас есть две формы и одна из них вызывает вторую модальную через всплывающее меню, то из этой второй модальной Вы не сможете вызвать ни одного всплывающего меню, сколько бы их на ней ни было. Чтобы пофиксить это дело, используйте таймер на первой форме. Вместо показа фторой формы из всплывающего меню по событию Click, активизируйте таймер так, чтобы он показал эту вторую форму через несколько миллисекунд.
    Для более полной инфы, см. Статью Q167839 in the Microsoft Knowledge Base."
    Ресурс: http://www.bibl.ru/87_hitrostey_i.htm#21

    Вопрос:

    Как при помощи SendKeys послать Enter на чужую прогу?

    Ответ:

    Автор ответа: Sergey

    AppActivate ("Имя приложения") 'Например, "Документ1 - Microsoft Word"
    SendKeys "~", True

    Минус в том, что приложение активизируется. Как сделать то же самое без передачи фокуса, непонятно..

    А как узнать список всех приложений на десктопе - отдельная тема.. :-)

    Ответ:

    Автор ответа: Vir

    Делаеш фокус на чужой программе (мышкой или программно) и посылаешь:
    SendKeys Chr(13) или SendKeys "{Enter}"

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили: