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


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

Голосования сайта 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!
    Читайте!


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




    Книги

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

    наверх


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

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