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

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


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

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


VBNet VBMania
Ссылки:

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

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

       Извините за задержку в выходе рассылки: возникли проблемы с доступом к сети :(
    Я так подумал: лучше забыть про отставание от графика выхода рассылки, все равно догнать его как-то не получается, видно не судьба :) Так что теперь рассылка выходит не задним числом, а как есть, без всяких опозданий.
    И еще мне не помешало бы поставить программу-органайзер... На старом компе она очень нудно и довольно эффективно напоминала о необходимости выпуска рассылки, а но новый ноут я летом как-то ее поставить забыл, вот так и мучаюсь :)))
    Читайте!


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




    Какую АПИ-функцию нужно использовать для диалогового окна выбора шрифта?

    Вопрос:

    Хочу написать модуль для выбора шрифтов, такой как находится в Common Dialog, но немогу найти API функцию. Кто чем может помочь.

    Ответ:

    ChooseFont

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

    наверх


    Как в VBA выровнить текст, т.е. по центру?

    Вопрос:

    Как в VBA выровнить текст, т.е. по центру?

    Ответ:

    Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter

        Rustam F.Yusupov

    наверх


    Как в VBA добавить несколько Enter'ов?

    Вопрос:

    Как в VBA добавить несколько Enter'ов?

    Ответ:

    Private Function EnterTab(ByVal n As Long)
         Dim i As Long = 0
         For i = 0 To n
             objDoc.ActiveWindow.Selection.InsertParagraphAfter()
         Next i
    End Function

        Евгений

    наверх


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

    Вопрос:

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

    Ответ:

    ListBox.additem "New Item"
    ListBox.listindex =listbox.newindex

        Сергей Л.

    наверх


    Как изменять размер динамического массива, сохраняя данные?

    Вопрос:

    Необходимо размерность двумерного динамического массива увеличивать, при этом данные сохранять (типа Preserve)
    вот так пишу:

    Dim bd() As Variant

         ReDim bd(0, 0) As Variant
         ReDim Preserve bd(0, UBound(bd) + 1)
         bd(0, 0) = "Abcde"
         bd(0, 1) = 2

         ReDim Preserve bd(UBound(bd) + 1, 1)
         ' вот здесь ошибку выдает, а если
         'Preserve убрать работает, но данные то нужны!
         bd(1, 0) = "sdfsdfs"
         bd(1, 1) = 5

    Так что делать?

    Ответ:

    Если ты используешь ключевое слово Preserve, то ты можешь изменить только последнюю размерность массива .

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

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

    Это можно делать только со строками таблицы.

    Есть массив, правильно сделанный. X(5,5) так вот 5,10 сделать можно, а 10,5 нельзя. Точнее можно, но гораздо более сложно.

        DmitryK1



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

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

    Вопросы:


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

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

       Может кто подскажет, как в VB6 читать и записывать метаданные файлов формата jpeg?


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

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

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


    Автор вопроса: Ваня

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

       Подскажите, как распечатать полностью текст на странице А4 формата в VB6. Я пытаюсь использовать Printer.print но выдается только одна строка.


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

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

       Подскажите, как добавить текстовый файл, с разделителем пайп (|) в эксель. Имеется в виду текст макроса в экселе.




    Ответы:


    Вопрос:

       Хотел написать программу, которая перехватывала бы нажатия клавиш, и посылала левые символы, но вот вычислять нажатую кнопку получается, только если активно окно VB-программы.
    Подскажите пожалуйста, можно ли это исправить.

    Ответ:

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

    Можно, но не на ВБ. Для того, что бы ловить все нажания клавишь нужно установить systemwide hook.

    HHook=SetWindowsHookEx(WH_KEYBOARD, _ 'Ловим клавиатуру
           HOOKPROC, _ 'Адрес процедуры-обработчика
           HINSTANCE, _ 'Хендл приложения содержащего процедуру-обработчик
           0) 'Ловим события всех потоков

    Проблема в том, что HOOKPROC должен быть в DLL, но не ActiveX DLL, а написать ее на ВБ невозможно.


    Вопрос:

       Подскажите, в чем проблема.... Excel продолжает висеть в памяти и не выгружается..

    Dim n%
    n = 0

    Set myExcel = New Excel.Application
    Set myWb = myExcel.Workbooks.Open("F:\1.xls")

    Range("B7").Activate

    Do Until ActiveCell.Value = ""
    ActiveCell.Cells(2).Activate
    n = n + 1
    Loop
    n = n + 1
    ActiveCell.Value = n

    myWb.Save
    myExcel.Quit

    Set myExcel = Nothing
    Set myWb = Nothing

    Ответ:

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

    Воспользуйся этим кодом:

    Dim n%
    n = 0
    Dim ss As New Excel.Application
    Dim xx As Application
    Dim zz As Workbook
    Set xx = ss.Application
    Set zz = ss.Workbooks.Open("c:\1.xls")
    xx.Range("B7").Activate
    Do Until xx.ActiveCell.Value = ""
    xx.ActiveCell.Cells(2).Activate
    n = n + 1
    Loop
    n = n + 1
    xx.ActiveCell.Value = n

    xx.Save
    zz.Close
    xx.Quit
    Set ss = Nothing
    Set xx = Nothing
    Set zz = Nothing



    Вопрос:

       VB6. В программе вызывается функция из DLL, которая работает длительное время. Как "разморояить" форму на время ее работы? DoEvents не работает.

    Ответ:

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

    Могу предложить несколько вариантов:
      
    1. Попробуй использовать Апи функцию, Sleep. Но есть недостаток – нужно или знать точно, сколько выполняется процедура, или брать с запасом, что не разумно.

    2. Если функция в Dll выдаёт строку или объект, то перед запуском выходную переменную обнуляешь и в цикле (с DoEvents, разумеется) проверяешь, не изменилась ли она.

    3. Не уверен в правильности данного варианта, но всё же – если это твоя DLL, то допиши дополнительную процедуру, а точнее свойство класса, которое выдавало бы – обрабатывается ли информация, или уже всё готово. А в форме просто проверяешь значение этого свойства.



    Ответ:

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

    Вызывать эту функцию в отдельном потоке!
    На vbnet.ru есть статья по этому поводу.



    Ответ:

    Автор ответа: Попов Дмитрий Вячеславович

    Я думаю, надо просто организовать работу с DLL в одном процессе, а отображение - в другом. Конечно, придётся организовать связь между процессами (есть много разных способов).




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

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

    наверх


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

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

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

    В избранное