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


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



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

Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • 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, и получишь всю необходимую инфу. А вообще, ты лучше в следующий раз с вопросами не ко мне, а туда. Может, я и отвечу там.
    - А не проше тебе здесь ответить?
    - Э-э-э... Там я баллы зарабатываю...
    - А это еще зачем?
    - Ладно, мотай. Дома почитаешь, все о них узнаешь. У меня тут халтурка... Давай, пока.
    - Пока. А как ты экспертом там зарегился?
    - Иди, иди! Инфу читай...

    наверх


    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 для ответа

    наверх


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

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