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

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


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

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


VBNet VBMania
Ссылки:

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

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

       Гм... Каникулы, блин, кончились, опять эта школа :((
    Читайте!


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




    Aslof рекомендует

       Ищешь фильм?
    http://subscribe.ru/catalog/rest.cinema.filmforyou
    Сайт рассылки - http://aslof.balzer.ru/


    Citycat by Email

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

    наверх


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

       Открыт новый раздел НеЧаВо. Ознакомиться с ним можно по адресу http://vbnet.ru/unfaq.



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

    14:02 / 21 янв.  Макро язык в твоей программе. | Хитов: 0 |  Ответов: 0
    13:39 / 21 янв.  Как узнать размер заголовка формы | Хитов: 2 |  Ответов: 0
    13:08 / 21 янв.  Question | Хитов: 1 |  Ответов: 0
    12:52 / 21 янв.  Контрол ПАЛИТРА | Хитов: 2 |  Ответов: 0
    12:14 / 21 янв.  RTF from db to WORD | Хитов: 3 |  Ответов: 0
    12:13 / 21 янв.  Вопрос по конкретней | Хитов: 5 |  Ответов: 0
    12:09 / 21 янв.  Форум по почте | Хитов: 0 |  Ответов: 0
    11:50 / 21 янв.  Закрытие формы | Хитов: 7 |  Ответов: 1
    11:50 / 21 янв.  Закрытие формы | Хитов: 1 |  Ответов: 0
    11:49 / 21 янв.  Закритие формы | Хитов: 3 |  Ответов: 0
    11:09 / 21 янв.  Прблемы с установкой .NET | Хитов: 12 |  Ответов: 4
    10:25 / 21 янв.  ListView | Хитов: 10 |  Ответов: 2
    10:24 / 21 янв.  ShellExecute | Хитов: 9 |  Ответов: 2
    10:23 / 21 янв.  Access | Хитов: 2 |  Ответов: 0
    10:21 / 21 янв.  Вопрос по CGI | Хитов: 10 |  Ответов: 2
    09:58 / 21 янв.  Идея абстрактной картинки | Хитов: 12 |  Ответов: 2
    08:41 / 21 янв.  возврвщает удаленые файлы | Хитов: 10 |  Ответов: 1
    05:17 / 21 янв.  Взгляд дилетанта. | Хитов: 21 |  Ответов: 1
    21:34 / 20 янв.  DataGrid | Хитов: 23 |  Ответов: 4
    19:49 / 20 янв.  Учет товара по нескольким складам ??? | Хитов: 32 |  Ответов: 3


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



    наверх


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



    наверх


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



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



    наверх


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

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



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



    наверх


    Один момент из жизни форума: Как узнать размер заголовка формы

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

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

       Как узнать размер заголовка формы?


    Ответы:

    Автор: sne
       Можно с помощью VB, но вместе с заголовком ты узнаешь и размер бордера формы (Height - ScaleHeight), а можно через АПИ GetSystemMetrics с константой SM_CYCAPTION.



    наверх


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

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

    Вопросы:


    Автор вопроса: Олег

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

       Как сохранить текст в формате Word?


    Автор вопроса: Олег

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

       Как узнать температуру процессора?


    Автор вопроса: Олег

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

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


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

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

       Подскажите пожалуйста, как реализовать полупрозрачность (как в ХР) в программах VB под Win 98. Любые варианты приветствуются.


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

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

       Подскажите, пожалуйста, какой лучше всего использовать Grid для работы с DBF файлами - чтобы обеспечивал максимальное быстродействие.


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

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

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


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

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

       Кто-нибудь знает ActiveX для работы с "Шейп-файлами"? Пытаюсь написать свою ГИС на VB6.


    Автор вопроса: Mochalov Alexandr

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

       Где можно раздобыть исходники или документацию для создания программы-шифратора с открытым ключом на Visual Basic 6.


    Автор вопроса: Богдан

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

          Вопрос по Access.
       Есть база, которая состоит из:

       tbl1 - таблица,у которой есть поле Date Time 01.01.2004 00:00:00
              (изменить формат невозможно)
       qry1 - запрос на tbl1
       frm1 - форма имеет поля ДатаНачальная - ДатаКонечная фрмат Date
               01.01.2004
       vfrm2 - встроенная форма на запросе qry1 - табличная.

       Надо сделать: вывод значений у vfrm2 из запроса qry1 только тех, которые отвечают условию диапазона дат ДатаНачальная - ДатаКонечная.


    Автор вопроса: it's Me

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

       У кого-нибудь была такая проблема: при испольяовании API-функции ShellExecute для запуска программы с параметрами (ключами и путём к другому файлу, который она должна открыть), происходит следующее: программа запускается, выдаёт сообщение, что путь ненайден, и пишет его весь, но в искаженном виде - все русские буквы превращены в какие-то псевдосимволы... Наверное, таким его (путь) программе посылает эта функция. Что делать?


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

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

       Начал изучать VB.NET и возникли вопросы:
    1. Что использовать вместо свойства Defaut, чтобы при нажатии Enter активировалась определенная кнопка?
    2. При запуске старого проекта выдается сообщение, что не установлен мастер миграции. В разделе установки add/remove такового не нашел. Куда его MS запрятали?


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

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

       Ситуация такая: я выполняю хранимую процедуру на сервере (MS SQL Server 2000) через ADO Command командой Eexecute. Процедура достаточно "тяжелая", т.к. делает много проверок и действий. В итоге, во время выполнения она отбирает много ресурсов и что-либо сделать в момент ее исполнения не удается (мне бы, например, хотелось отображать время выполнения или, по команде сбрасывать ее в трей, да мало ли что может понадобиться). Вопрс такой: каким способом можно в данной ситуации выполнять какие-либо команды или инициировать в приложении параллельный процесс во время исполнеия Command.Execute (DoEvents пробовал. Не катит)?


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

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

       Я пишу грабер с экрана. Пишу потому, что все граберы, которые мне встречались были платными... Вот я подумал, что смогу написать не хуже (ну немного похуже профессиональных, типа ХиперСнап), но бесплатный. Основной функцией должна быть сёмка окна, на которое наведена крыса. И вокруг окна должна появлятся рамка, чтобы юзверю было ясно что он фоткает. Ну рамку я замутил: беру DC рабочего стола и мучаю его. Но вот беда: когда я навожу крысу на следующее окно, рамка вокруг предыдущего не исчезает. Даже когда прогу вырублю не исчезает :( Чтобы экран отчистился надо развернуть какое нибудь окно на весь экран, или просто поводить им по экрану стирая всё что напакастил :) После долгих поисков я придумал как можно обновить экран:

    SetSysColors 1, 0, GetSysColor(0)

    Эта строчка устанавливает один из системных цветов таким же какой он есть сейчас. Т.е. по сути ничего не меняется, но экран перерисовывается. Но как-то не приятно, когда переводишь мышку на следующее окно наблюдать как весь экран перемигивается, обновляется :( Тогда я подумал: может рисовать по самому этому окну, получив его DC с помощью GetWindowDC? Но тогда как обновить его? Как обновить клиентскую часть я знаю, но вот как обновить его всего? Т.е. с рамкой, заголовком, полосами прокрутки??? В интернете смотрел, нашёл два примера рисования по экрану, но не один из них экран после себя не обновлял :(


    Автор вопроса: Olga Gorelik

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

       Problema:
    Kak poimat' hajatie TAB i ALT+TAB, drugimi slovami v postanovke zadachi: user ne mojet perekluchit'sya na drugoe prilojenie.


    Автор вопроса: Олег

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

       Кто-нибудь может сделать программы, которая выключает/перезагружает/завершает сеанс и которая работает во всех версиях Windows.


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

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

       У меня есть вордовский документ с рамкой (автофигуры) и мне нужно ее вставить в другой документ. С открытием первого файла вордом я написал, а вот как сделать без его открытия не знаю?


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

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

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


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

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

       У формы есть меню:
    1. Как изменить шрифт (размер) всех (под)пунктов?
    2. При загрузке формы открыть меню


    Автор вопроса: Олег

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

       Как определить весию, производителя и.т.д в Exe-файлах.




    Ответы:


    Вопрос:

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

    Ответ:

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

    Процедура form_close имеет параметр close

    if msgbox("Уверен?",vbokcancel)=vbcancel then close=false



    Ответ:

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

    В событие формы Unload вставляешь код:

    Private Sub Form_Unload(Cancel As Integer)
         If MsgBox("Exit?", vbYesNo + vbExclamation) = vbNo Then Cancel = True
    End Sub


    Вопрос:

       Подскажите пожалуйста, как в DBGrid1 или DataGrid1, вырезать строку, и вставить её в другой DBGrid2 или DataGrid2.

    Ответ:

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

    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    Dim X As Variant
         X = MsgBox("Вы уверены ... ?", vbYesNo + vbQuestion, "Выход")
         If X = vbNo Then Cancel = True
    End Sub


    Вопрос:

       Как использовать динамические массивы?

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Ну, во-первых, понятие динамического массива под ВБ достаточно растяжимое :-))

    Если говорить о коде, то приблизительно так:

    dim mArr() as String ' собственно, объявление динамического массива
    (строкового)

    redim mArr(10) ' задаем размер
    mArr(8) = "hello!" ' задаем значение элемента с индексом 8
    debug.print mArr(8) 'получаем элемент массива с индексом 8 (получим строку
    "hello!")

    redim preserve mArr(25) ' перезадаем размер (старые значения сохраняются)
    mArr(17) = "привет!" ' задаем значение элемента с индексом 17
    debug.print mArr(8) 'получаем элемент массива с индексом 8 (получим строку
    "hello!")
    debug.print mArr(17) 'получаем элемент массива с индексом 17 (получим строку
    "привет!")

    redim mArr(33) ' перезадаем размер (старые значения НЕ сохраняются)
    mArr(30) = "до свидания!" ' задаем значение элемента с индексом 30
    debug.print mArr(8) 'получаем элемент массива с индексом 8 (получим строку
    "")
    debug.print mArr(17) 'получаем элемент массива с индексом 17 (получим строку
    "")
    debug.print mArr(30) 'получаем элемент массива с индексом 30 (получим строку
    "до свидания!")



    Ответ:

    Автор ответа: Данила

    Dim aArray () As Variant
    Private Sub Commandl_Cli k()
    ReDim aArray (50, 10)
    end sub


    Dim aArray () As Variant
    Private Sub Cornmandl_Cli k()
    ReDim aArray (10, 10)
    ReDim Preserve aArray (10, 15) 'меняет размер, сохраняя данные
    ReDim Preserve aArray (15, 15)
    End Sub



    Dim aArray () As Variant
    Private Sub Commandl_Cli k()
    ReDim aArray (10 To 20)
    ReDim Preserve aArray (10 To 25)
    ReDim Preserve aArray (15 To 25)
    end sub



    Ответ:

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

    Динамический массив это массив размерность которого изменяется во время выполнения программы:

    Dim aa() as long
    ...
    redim a(100) as long
      
    for i=0 to ubound(a)
    next i


    Вопрос:

       Нужно вытащить адреса из адресной книги Аутлук Экспресс. Я нашёл в МСДН АПИ функции по этому поводу, но там такая мутатень: Кто пытался переводить, тот меня поймёт. Поэтому если у кого есть исходники на эту тему, то поделитесь пожайлуста. Или на кройняк укажите какие именно функции мне нужно использовать. Или может как-нить вытащить адреса напрямую из базы данных. Я смотрел на этот файл (вроде *.wab), но там всё зашифровано, может у кого есть код расшифровывающий этот файл. Короче поделитесь, плиз, всем чем можете.

    Ответ:

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

       Нужно вытащить адреса из адресной книги Аутлук Экспресс. Я нашёл в МСДН АПИ функции по этому поводу, но там такая мутатень: Кто пытался переводить, тот меня поймёт. Поэтому если у кого есть исходники на эту тему, то поделитесь пожайлуста. Или на кройняк укажите какие именно функции мне нужно использовать. Или может как-нить вытащить адреса напрямую из базы данных. Я смотрел на этот файл (вроде *.wab), но там всё зашифровано, может у кого есть код расшифровывающий этот файл. Короче поделитесь, плиз, всем чем можете.

       А какая функция АПИ?

       Вручную из ОЕ можно экспортировать в текстовый формат.



    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Можно и вытащить.
    Если операция одноразовая, то проще будет экспортировать адресную книгу в
    какой-нибудь "удобочитаемый" формат, например, CSV, а потом прочитать этот
    файл, либо импортировать его в свою базу данных.
    Если есть необходимость постоянно работать с существующей адресной книгой,
    как это делают многие программки, то можно воспользоваться Microsoft MAPI
    Controls, которые идут в комплекте с ВБ:

    Положи на форму следующие контролы
    MAPISession
    MAPIMessages
    Label
    Command

    Добавь код:

    Private Sub Form_Load()
         With MAPISession1
             .DownLoadMail = False
             .LogonUI = True
             .SignOn
             .NewSession = True
             MAPIMessages1.SessionID = .SessionID
         End With
    End Sub

    Private Sub Command1_Click()
    Dim i As Long
    With MAPIMessages1
             .AddressCaption = "Selecting..."
             .Show False
             .ResolveName
             .AddressResolveUI = True
             Dim i As Integer
             For i = 0 To .RecipCount - 1
                 .RecipIndex = i
                 Label1.Caption = Label1.Caption & vbCrLf & .RecipType & " - " &
    .RecipDisplayName & " <" & .RecipAddress & ">"
             Next i
    End With
    End Sub


    Вопрос:

       А реально ли сделать, чтобы к пунктам подменю добавить еще и иконки?

    Ответ:

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

    Попробуй АПИшку SetMenuItemBitmaps, но уж больно некрасиво получается - лучше делать Owner Draw Menu, хотя это и геморойно - с субклассингом возиться... На VB .NET проще.



    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Можно. При помощи АПИ.
    В сети есть очень много примеров.
    Если хочешь создать красивые менюшки в стиле XP, то можешь сходить сюда
    http://www.vbsmart.com


    Вопрос:

       Я уже спрашивал, но мне так толком и не объяснили: как все таки из VB60, а не из VBA работать с Excel документом. Чтобы иожно было и читать этот документ поячеечно и записывать в него так же.

    Ответ:

    Автор ответа: Игорь Кириллов

    Путь 1: Сделай макрос стартовым в Excel-евском файле, и просто запускай этот файл. Не очень удачно? ;)
    Путь 2: Подключи к вроекту в VB6 Reference Microsoft Excel [ver.] Object Library, и можешь из своего VB6-проекта делать все то же самое (т.е. все что угодно :)), что и в любом проекте Excel - см. справку по VBA Excel.



    Ответ:

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

            Пример того, как из Visual Basic'a через OLE запустить Excel, и создать рабочую книгу...

    Option Explicit

    '
    ' CreateXlBook
    ' Вызывает MS Excel, создает рабочую книгу с именем sWbName с одним
    ' единственным рабочим листом. Рабочая книга будет сохранена в каталоге
    ' sDirName. В случае успеха возвращает True, в противном случае - False.
    '
    Public Function CreateXlBook(sWbName As String, sDirName) As Boolean

       ' MS Excel hidden instance
       Dim objXLApp As Object
       Dim objWbNewBook As Object

       CreateXlBook = False

       Set objXLApp = CreateObject("Excel.Application")
       If objXLApp Is Nothing Then Exit Function

       ' В новой рабочей книге создавать только один рабочий лист
       objXLApp.SheetsInNewWorkbook = 1

       Set objWbNewBook = objXLApp.Workbooks.Add
       If objWbNewBook Is Nothing Then Exit Function

       ' Сохраняем книгу
       If vbNullString = Dir(sDirName, vbDirectory) Then Exit Function

       objWbNewBook.SaveAs (sDirName + "\" + sWbName + ".xls")
       CreateXlBook = True

       ' Освобождение памяти
       Set objWbNewBook = Nothing
       objXLApp.Quit
       Set objXLApp = Nothing
       CreateXlBook = True

    End Function


    Вопрос:

       Использую в ресурсах String Table. Там две колонки Id и Русский, в Id номера от 1 до 10, а в Русский текст. Добавляю еще колонку, но выбрать ее как Русский нельзя и как обратиться к ней не знаю, т.к. LoadResString использует только Id. Как работать со второй колонкой?

    Ответ:

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

    Если я правильно понял, то, к какой колонке он обращается, зависит от региональных настроек, но это только предположение...




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

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

    наверх


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

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


    http://subscribe.ru/
    E-mail: ask@subscribe.ru
    Отписаться
    Убрать рекламу

    В избранное