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


VBNet VBMania
Голосование:



Рассылки 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!!!

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

       Очередной выпуск рассылки.
    Читайте!


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




    Книги

    Переход на 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

    Дата: 16.03.2003 07:26 | Раздел: Статьи по VB | Автор: Ларин Александр

    Защита Защиты - Статью на тему защиты хотелось написать уже давно. Стремление это подкреплялось ещё и тем, что эта тема начинает набирать популярность (уже две статьи, затрагивающие данную тематику, представлены для конкурса). Действительно, в современном мире термин “безопасность” приобретает всё более весомую значимость. Но он идёт вкупе с такими вещами как криптография, значение которой столь же немаловажно...

    Дата: 16.03.2003 04:32 | Раздел: Примеры кода | Автор: EROS

    Picture in Access - Пример показывает, как поместить изображение в БД Access.

    Дата: 16.03.2003 04:27 | Раздел: Примеры кода | Автор: Половый Александр

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

    Дата: 11.03.2003 10:56 | Раздел: ActiveX контролы | Автор: Paul

    ScrollText - Контрол ScrollText - это просто текст с автоматической прокруткой. Разрабатывался без всяких целей, просто для изучения графики в VB6. Есть исходный код. Краткое описание - Readme.txt

    Дата: 09.03.2003 12:10 | Раздел: Примеры кода | Автор: CyRax

    System Colors - Как узнать системные цвета Windows.



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

    08:01 / 16 мар.  Открытие новй страницы в IE | Хитов: 1 |  Ответов: 0
    23:29 / 15 мар.  Вопрос не по VB | Хитов: 13 |  Ответов: 2
    19:57 / 15 мар.  Импорт/экспорт в Listbox | Хитов: 13 |  Ответов: 2
    19:49 / 15 мар.  Нужны исходники, какой-нибудь сетевой игры. | Хитов: 6 |  Ответов: 0
    19:22 / 15 мар.  Работа с ODBC - как декларировать? | Хитов: 2 |  Ответов: 0
    12:29 / 15 мар.  Срочно нужна инфошка (на русском) о XOR | Хитов: 24 |  Ответов: 7
    09:23 / 15 мар.  Работа с модемом | Хитов: 14 |  Ответов: 1
    02:01 / 15 мар.  Сложный вопрос (для посетителей форума, но не д... | Хитов: 39 |  Ответов: 2
    23:50 / 14 мар.  Chat | Хитов: 21 |  Ответов: 0
    23:01 / 14 мар.  Как отличить виртуалку от cd-rom. | Хитов: 39 |  Ответов: 5
    21:22 / 14 мар.  job | Хитов: 24 |  Ответов: 0
    19:31 / 14 мар.  вопрос о цвете label | Хитов: 42 |  Ответов: 9
    19:31 / 14 мар.  Учусь по книге... | Хитов: 19 |  Ответов: 0
    19:31 / 14 мар.  Учусь по книге... | Хитов: 3 |  Ответов: 0
    17:24 / 14 мар.  Распространение игрулек/прог??? | Хитов: 33 |  Ответов: 5
    15:54 / 14 мар.  Crack PowerBasic | Хитов: 46 |  Ответов: 5
    13:59 / 14 мар.  Skin технология | Хитов: 40 |  Ответов: 5
    13:39 / 14 мар.  Вопрос по вин сокет! | Хитов: 20 |  Ответов: 2
    11:27 / 14 мар.  открыть в новом окне заданного размера... | Хитов: 14 |  Ответов: 0
    10:13 / 14 мар.  Дельная программа - для умных | Хитов: 55 |  Ответов: 2


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

    CommonDialog: Просмотр списка директори... (36)
    ListBox: Проверка дубликатности элемент... (19)
    Получение анимированного курсора (24)
    Глобальное изменение размеров формы/кон... (26)


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

    22:31 / 3 мар. Иван сообщает: Новый конкурс статей на сайте VBNet.RU, участвуйте! Главный приз - подписка на журнал Hard'n'Soft! Статьи принимаются до 1 апреля.



    наверх


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



    наверх


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



    наверх


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



    наверх


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



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



    наверх


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

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



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



    наверх


    Какой использовать Grid?

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

       ГЯ новичок в VB. Понадобилось использовать Grid. Просто прямоугольную табличку с числами в ячейках. Какой для этого контрол использовать, но такой, что бы он был на любом компе с виндами и не надо было тащить за собой ActiveX. Помогите, пожалуйста.


    Ответы:

    Автор: Piterskoy
       Используй стандартный DataGrid если нужно вводить кокуюто инфорацыю, а если не нужно можно использовать FlexGrid

    Автор: EROS
       В VB встроенного GRIDа нет! В любом случае тебе придется тащить ActiveX за собой. Вопрос лишь в том какой? DBGrid или MSFlexGrid- это уже дело вкуса...

    Автор: Raptor
       Мне нужен простой грид в ячейки которого я мог бы поместить строчки или числа и потом считать их оттуда. Причем возможность ручного редактирования не обязательна. Я пробовал FlexGrid, но не нашел как там записывать информацию в ячейки.

    Автор: EROS
       Тогда старый добрый DBGrid самый простой вариант ! Хотя постой, он удобен для работы с базой данных... Если же тебе надо просто загонять информацию (не из DB) то лучше будет FlexGrid...

    Автор: EROS
       А работать с FlexGrid очень просто... Как один из вариантов...
       FlexGrid1.TextMatrix(2,4)="Hello World" где-
       2-rowindex(номер строки), а 4-colindex(номер столбца)

    Автор: Raptor
       Большой Thanx!
       Это именно то, что мне надо было
       Но еще вопрос. Как изменить высоту строк и ширину солбцов в FlexGrid?

    Автор: CyRax
       Я тоже не очень большой любитель всяких OCX-ов.
       Если всё таки решишь рисовать таблицу сам, то посмотри как это релизовано в моём примере AutoRun Viewer



    наверх


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

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

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

    наверх


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

    BalloonMessage for MS Agent

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

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

    наверх

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

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

    Вопросы:


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

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

       Программа работает с dbf-файлами, а при выполнении строки

    Data1.Recordset.Delete

    запись из таблицы помечается на удаление, а физически не удаляется. Есть ли какой-нибудь аналог команды PACK из Foxpro?!


    Автор вопроса: MC Green

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

       Кто может подсказать, как извлекать иконки из exe'шников и dll'ок (как, например, в IconToy)?


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

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

       А где можно почитать про DHTML Project????


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

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

       Можно ли написять программу на VisuaL Basicе каторая бы черея определёное время самоуничтожилась?


    Автор вопроса: Костя

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

       Мне надо построить диаграмму в Excel из VB данные находяться в массиве! Если подскажешь где можно скачать инфу я буду благодарен.


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

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

       Как узнать IP нужного сайта.


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

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

       Я хотел задать вопрос- Window Me может перезагружаться через командную строку? если да, то подскажите полуйста код в Бэйсике.


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

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

       Скажитес чем лучше работатьв БД:
    ADOX? ADO? и т. д.


    Автор вопроса: Вячеслав

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

       Много раз читал про DSMAniGifControl. Где его можно взять?




    Ответы:


    Вопрос:

       1) Как сделать так, чтоб при попытке удаления определённой папки в программу поступал сигал.
    2) Пишу программу запрашивающую пароль при попытке открыть папку. Как при получении правильного пароля открыть обычную Windows-кую папку

    Ответ:

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

    B nt лучше использовать ReadDirectoryChanges - отслеживает все события в заданной папке (а также в "подпапках" да еще сразу определяет путь) Подробности в MSDN


    Вопрос:

       Может кто знает как изменить значок папки? Простое создание\копирование файла Desktop.ini не помогает.

    Ответ:

    Автор ответа: P@Ssword

    Я и сам долго мучался. Вся фишка в том, что у папки должен стоять атрибут "Системная"


    Вопрос:

       Имеется: форма, распахнутая на весь экран, на форме - PictureBox (или Image - сейчас это не суть важно), в PictureBox загружается картинка. Суть проблемы: необходимо, чтобы картинка масштабировалась под размеры экрана (а так как форма распахнута на весь экран - следовательно, под размеры формы).
    Пример масштабирования картинки из выпуска 141 рассылки не помог.

    Ответ:

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

    К большому сожалению не помню откуда у меня этот пример растяжки рисунка на форме

    Option Explicit
    Private Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
    Private Declare Function CreatePatternBrush Lib "gdi32" (ByVal hBitmap As Long) As Long
    Private Declare Function FillRect Lib "user32" (ByVal hdc As Long, lpRect As RECT, ByVal hBrush As Long) As Long
    Private Type RECT
         Left As Long
         Top As Long
         Right As Long
         Bottom As Long
    End Type
    Dim lngBrush As Long, rctMain As RECT

    Private Sub Form_Load()
         lngBrush = CreatePatternBrush(LoadPicture(App.Path & "\bgstars.jpg"))' bgstars.jpg - имя вашего рисунка
         Me.AutoRedraw = True
    End Sub

    Private Sub Form_Resize()
         GetClientRect hwnd, rctMain
         FillRect hdc, rctMain, lngBrush
    End Sub



    Ответ:

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

    Можно реализовать следующими способами:
      
    1. Кладёшь на форму компонент Image. Свойство Stretch выставляешь в True. Грузишь в Image нужную картинку. В процедуре Form_Resize пишешь:

    Image1.Move 0, 0, Me.ScaleWidth, Me.ScaleHeight
      
    2. Кладёшь на форму компонент PictureBox со свойством Visible = False. Грузишь картинку. В процедуре Form_Resize пишешь:

    Me.PaintPicture Picture1.Picture, 0, 0, ScaleWidth, ScaleHeight, 0, 0, Picture1.Width, Picture1.Height

    или (объявив АПИ-функцию StretchBlt)

    Call StretchBlt(Me.hdc, 0, 0, ScaleWidth, ScaleHeight, Picture1.hdc, 0, 0, Picture1.Width, Picture1.Height, vbSrcCopy)



    Ответ:

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

    Если я тебя правильно понял, то у ImageBox'а есть свойство Stretch. Установи его в True и картинка будет сама подгоняться под размеры ImageBox'а.


    Вопрос:

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

    Ответ:

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

    Помести переменные в модуль - они станут "видимы" для всего твоего проекта.

    P.S. полезно начинать "творение" с освоения какой нибудь библии по VB



    Ответ:

    Автор ответа: Habibullin@vkab.ru

    Возможно Твоя проблема в следующем: переменные, используемые различными модулями программы, объявляются внутри Private, а их нужно объявить доступными всем событиям OnClick, происходящими при нажатии на кнопку (если все они находятся в одном модуле, то используется Dim, если же в различных, то Public), например:

    Dim i as integer
    Dim mystr as string
    ...
    ...
    ...
    ---------------------------------------------
    Private Sub Command1_Click
    ....
    ....
    End Sub

    Private Sub Command2_Click
    ....
    ....
    End Sub



    Ответ:

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

    А ты не закрываю, ту форму, которую закрываешь, а просто прячь. Вот так:

    Form.Hide

    Тогда и все переменные сохраняться, а после завершения работы форму надо выгрузить, вот так:

    UnLoad Formname

    Чтобы обратиться к переменным другой формы, делай так:

    formname.ValueName=...

    , где ValueName имя переменной.


    Вопрос:

       Как синхронияировать бд ACCESS 97/2000 ?
    Делал с помощью DAO:

    Sub InternetSynchronizeX()

         Dim dbsTemp As Database

         Set dbsTemp = OpenDatabase("C:\veda_dog\dbProf.mdb")

         ' Synchronize the local database with the replica on
         ' the Internet server.
         dbsTemp.Synchronize _
             "http://vad.chat.ru/dbProf.mdb", _
             dbRepImpExpChanges + dbRepSyncInternet

         dbsTemp.Close

    End Sub

    выдает ошибку :"Неправельный HTTP адрес"

    Ответ:

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

    Может попробовать или


    Вопрос:

       1. Есть ли в ВБ константа содержащая число ПИ?
    2. Как узнать какая папка на компе обозначена под "My Documents", какая под "Desktop"?
    3. Как вообще можно обратиться к системным переменным типа %Temp%?

    Ответ:

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

    1. В вб нету. Самому трудно объявить?
    3. Environ("Temp")?



    Ответ:

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

    1. Нет.
    Const PI = 3.1415927

    2.
    Private Enum SpecialFolderIDs
    sfidDESKTOP = &H0 'рабочий стол
    sfidCOMMON_DESKTOPDIRECTORY = &H19
    sfidPERSONAL = &H5 'мои доки
    End Enum

    Private Declare Function SHGetSpecialFolderLocation Lib "shell32" (ByVal hwndOwner As Long, ByVal nFolder As SpecialFolderIDs, ByRef pIdl As Long) As Long
    Private Declare Function SHGetPathFromIDListA Lib "shell32" (ByVal pIdl As Long, ByVal pszPath As String) As Long
    Const NOERROR = 0
    Dim sPath As String
    Dim IDL As Long
    Dim strPath As String
    Dim lngPos As Long

    Private Function GetSpecFolder(speFolder As SpecialFolderIDs)
    If SHGetSpecialFolderLocation(0, speFolder, IDL) = NOERROR Then
    sPath = String$(255, 0)
    SHGetPathFromIDListA IDL, sPath
    lngPos = InStr(sPath, Chr(0))
    If lngPos > 0 Then
    GetSpecFolder = Left$(sPath, lngPos - 1)
    End If
    End If
    End Function

    Private Sub Command1_Click()
    Print GetSpecFolder(sfidDESKTOP)
    Print GetSpecFolder(sfidCOMMON_DESKTOPDIRECTORY)
    Print GetSpecFolder(sfidPERSONAL)
    End Sub

    3. Очень просто через функцию Environ.
    windir = Environ ("windir") 'директория windows
    tempdir = Environ ("TMP") 'директория временных файлов TEMP


    Вопрос:

       Хочу узнать как извлеч корень n-ой степени из числа???

    Ответ:

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

    корень N-ной степени - это степень 1/N числа !!!

    Для бестолковых:

    12^3 = 1728 - 12 в степени 3
    1728^(1/3) = 12 - корень куб. числа 1728



    Ответ:

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

    (1) Вобщем есть такая замечательная вещь как ряд Тейлора можно найти любую функцыю с любой точностью используя лиш имножение и сложение (после соответствующей подготовки).

    (2) Ну это так на буддущее а тебе надо лиш надо возвести в степень 1/n но этот способ занимает больше машинного времени так как вычисляется машиной через логорифм который всё равно сводится к ряду Тейлора на вычисление которог требуется времени больше чем в первом случае.
    Вывод: Первый случай работает быстрее но кода больше и умственных затрат тоже.
    Второй работает дольше но кода меньше и мозгов нужно меньше.

    p/s Если нужна помощь с первым методом пиши ссс@mail.nnov.ru



    Ответ:

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

    Result = X ^ (1 / N)



    Ответ:

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

    Корень n-степени можно найти так же как и число в степени с вещественным показателем (не целой):

    Ans = Exp(X * Log(A))

    где A - число, возводимое в степень, а X - степень
    так корень третьей степени из 8 будет

    Ans = Exp((1/3) * Log(8))



    Ответ:

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

    Возводи в степень, но только в степень 1/n. Ты в школе вообще учился?


    Вопрос:

       Вопрос мой уже был яадан(про подпрограммы "на лету"), но ия-яа нехватки времени я не смог нормально объяснить, что от вас хочу, да и выраяился коряво, что первое в голову пришло. Я имел ввиду следующее: моя проблема в том, что в моей проге при каком-то условии она должна выполнять несколько операторов, я пробовал это реалияовать так:

    if условие1 then
        делать1
        делать2
    if условие2 then
        делать 3
        делать 4

    НО при выполнении условия1, если оно истинно, то выполняется делать1, в противном случае делать1 не выполняется, а делать 2 выполняется в любом случае то же самое и с условием2: делать3 яависит от условия2, а делать4 выполняется всегда. Можно, конечно было так:

    (General)|(Declarations)
    -------------------------------
    Private Sub подпрограмма1()
    делать1
    делать2
    End Sub
    -------------------------------
    Private sub подпрограмма2()
    делать3
    делать4
    End Sub

    (Button1)|(Click)
    --------------------------------
    Private Sub Button1_Click()
    if условие1 then подпрограмма1
    if условие2 then подпрограмма2
    End Sub

    Но мне не надо описывать подпрограммы в модулях или еще где,
    можно ли какими-нибудь операторами в VB объединить делать1
    и делать2, а также делать3 и делать4 в группы, не описывая их
    в (General)|(Declarations) или в модулях?

    Сравните примеры на Паскале:

    var a,b:integer;
    begin
        randomize;
        a:=random(10);
        b:=4
        if a=3 then
        begin {1}
           a:=a+b;
           b:=3; {2}
        end;
    end.
    ---------------------------------
    var a,b:integer;
    procedure sub1
    a:=a+b;
    b:=3;
    end;
    begin
        randomize;
        a:=random(10);
        b:=4;
        if a=3 then sub1;
    end.

    В первом примере операторы {1} и {2} - аналоги тех
    операторов, которые мне нужны для объединения
    их в подпрограмму. Но это на Паскале, а как это
    сделать на Visual Basic?

    Искренне благодарен яа любую информацию.

    Ответ:

    Автор ответа: Дмитриев Николай

    В принципе не понимаю в чем тут сложность, чтобы запрятать в IF выполнение какой-либо процедуры, так это делается просто, используется:

    If <условие> then

    ' тут прописывается процедура по истине

    ':

    else

    ' тут прописывается процедура по лжи

    ':

    end If

    между If и End If можно написать что угодно в каких угодно размерах



    Ответ:

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

    Структура

    if условие1 then
         делать1
         делать2
    if условие2 then
         делать 3
         делать 4

    И вправду будет исполнять делать1 и делать3 по условию, а делать2 и делать4 всегда. Вообще в Бейсиках начиная с QuickBasic для того чтобы заставить исполнять несколько команд внутри оператора условия используется структура:

    If условие then
        делать1
        делать2
        ...
        делатьN
    Else
         делатьиначе1
         ...
         делатьиначеN
    End If

    Честно говоря неплохо бы автору вопроса почитать какую-нибудь книгу по VB или же MSDN.



    Ответ:

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

    if условие1 then
          оператор11
          оператор12
       end if
       if условие2 then
          оператор21
          оператор22
       end if



    Ответ:

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

    If условие1 then
         действие 1
         действие 2
    end if
    (действие 1 и действие 2 выполняются при истинном условие)

    If условие1 then действие 1
    действие 2
    (действие 1 выполняются при истинном условие потом действие 2)

    так же и остальные

    While условие1
         действие 1
    wend
    select case (требуемое от условия)
         case условие1
             действие1
         case условие2
             действие2
         case else
             действие3
    end select




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

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

    наверх


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

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