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


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

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.



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

Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill

Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
  • Господа!!! читайте 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 можно найти
    здесь.

    наверх


    Операции "копировать", "вырезать", "вставить".

    Для работы с Clipboard используется объект - Clipboard и свойство Form.
    Вставьте в проект меню с тремя пунктами mnuEditCopy, mnuEditCut и mnuEditPaste.
    Данные примеры применимы для TextBox'а. Для RichTextBox'а вместо SelText используйте SelRtf

    '"копировать"
    Private Sub mnuEditCopy_Click()
    On Error Resume Next
    Clipboard.Clear
    Clipboard.SetText frmMain.Text1.SelText
    End Sub

    '"вырезать"
    Private Sub mnuEditCut_Click()
    On Error Resume Next
    Clipboard.Clear
    Clipboard.SetText frmMain.Text1.SelText
    frmMain.Text1.SelText = vbNullString
    End Sub

    '"вставить"
    Private Sub mnuEditPaste_Click()
    On Error Resume Next
    frmMain.Text1.SelText = Clipboard.GetText
    End Sub



    наверх


    Поиск и замена

    Три примера поиска и замены одного строкового выражения другим
    Первый пример показан на основе функций Split и Join. SourceString - текст для поиска, ReplaceThis - какое искать выражение в тексте, WithThis - на что менять найденное выражение

    Пример 1

    Function ReplaceAll(SourceString As String, ReplaceThis As String, WithThis As String)
    Dim Temp As Variant
    Temp = Split(SourceString, ReplaceThis)
    ReplaceAll = Join(Temp, WithThis)
    End Function

    Private Sub Form_Load()
    'этот пример меняет все найденные выражения "go" на "bad", в тексте "good boy go home"
    MsgBox ReplaceAll("good boy go home", "go", "bad")
    End Sub


    Пример 2

    Public Function ReplaceAll(searchstring As String, findstring As String, replacestring As String) As String
    Dim curpos As Long
    curpos = 1
    Do
    curpos = InStr(curpos, searchstring, findstring)
    searchstring = Left$(searchstring, curpos - 1) & replacestring & Right$(searchstring, Len(searchstring) - curpos - Len(findstring) + 1)
    Loop Until InStr(searchstring, findstring) = 0
    ReplaceAll = searchstring
    End Function

    Private Sub Form_Load()
    MsgBox ReplaceAll("good boy go home", "go", "bad")
    End Sub


    Пример 3

    Private Function ReplaceSubString(str As String, ByVal substr As String, ByVal newsubstr As String)
    Dim pos As Double
    Dim startPos As Double
    Dim new_str As String
    startPos = 1
    pos = InStr(str, substr)
    Do While pos > 0
    new_str = new_str & Mid$(str, startPos, pos - startPos) & newsubstr
    startPos = pos + Len(substr)
    pos = InStr(startPos, str, substr)
    Loop
    new_str = new_str & Mid$(str, startPos)
    ReplaceSubString = new_str
    End Function

    Private Sub Command1_Click()
    Text1.Text = ReplaceSubString(Text1.Text, " <", "<>")
    'Примеры использования
    'Text1.Text = ReplaceSubString(Text1.Text, ">" & vbCrLf, ">")
    'Text1.Text = ReplaceSubString(Text1.Text, "><", ">" & vbCrLf & "<")
    'Text1.Text = ReplaceSubString(Text1.Text, vbCrLf, "")
    'Text1.Text = ReplaceSubString(Text1.Text, "><", ">" & vbCrLf & "<")
    End Sub

    наверх


    Определить кодировку текста (Dos или Win)

    Предположим, вы загружаете тестовой документ в TextBox. При изменении содержимого тестового блока вы можете узнать тип кодировки текста (Dos или Win)

    Private Sub Text1_Change()
    'пpовеpяем тип кодиpовки ANSI или ASCII
    'беpем пеpвые 1000 байт еcли это возможно. Hевозможно - меньше.
    l& = Len(Text1.Text)
    If l& > 1000 Then l& = 1000
    'копиpyем yчаcток текcта в пеpеменнyю, иначе тоpмоз обеcпечен
    s$ = Left$(Text1.Text, l&)
    'обнyляем флажки
    fdo% = 0
    fwo% = 0
    'пpоcматpиваем кycок текcта
    For n% = 1 To l&
    'вытаcкиваем очеpедной cимвол
    c$ = Mid$(s$, n%, 1)
    'еcли это pyccкая "о" в DOS кодиpовке то инкpементиpyем cчетчик
    If c$ = Chr$(174) Then fdo% = fdo% + 1
    'еcли это pyccкая "о" в Win кодиpовке то инкpементиpyем cчетчик
    If c$ = Chr$(238) Then fwo% = fwo% + 1
    Next
    'ycтанавливаем в конфиге тип пpоcмотpа по дефолтy
    If fdo% > fwo% Then 'это явно ДОC-текcт
    MsgBox "DOS"
    Else 'это явно Win-текcт
    MsgBox "WIN"
    End If
    End Sub

    наверх


    Убрать двойные пробелы во всем тексте

    Данная функция в качестве входного параметра принимает любую текстовую строку (содержимое TextBox или RichTextBox), убирает все двойные пробелы и возвращает обновленный текст. Для пояснения действия данной функции добавьте на форму элемент TextBox, элемент CommandButton. Скопируйте следующий текст, запустите проект. В текстовом поле наберите любой текст, оставляя двойные пробелы между буквами или словами. Затем нажмите на кнопку.

    Public Function SquishSpaces(ByVal strText As String) As String
    Const TWO_SPACES As String = " "
    Dim intPos As Integer
    Dim strTemp As String
    intPos = InStr(1, strText, TWO_SPACES, vbBinaryCompare)
    Do While intPos > 0
    strTemp = LTrim$(Mid$(strText, intPos + 1))
    strText = Left$(strText, intPos) & strTemp
    intPos = InStr(1, strText, TWO_SPACES, vbBinaryCompare)
    Loop
    SquishSpaces = strText
    End Function
    Private Sub Command1_Click()
    Text1.Text = SquishSpaces(Text1.Text)
    'RichTextBox1.Text = SquishSpaces(RichTextBox1.Text)
    End Sub

    наверх


    Подсчитать количество определенных символов в тексте

    Данный пример покажет, сколько раз встречается буква Н в данном выражении. Вместо Н вы можете использовать любое строковое выражение

    Private Sub Form_Load()
    myString = "в данном примере несколько букв н, а точнее - "
    tempString = Split(myString, "н")
    MsgBox "в данном примере несколько букв н, а точнее - " & UBound(tempString)
    tempString = Split(myString, "нн")
    MsgBox "в данном примере " & UBound(tempString) & " раз встречается выражение нн"
    End Sub

    наверх


    Примеры работы с датами

    Небольшое примечание: если в качестве входного параметра указано (Optional dteDate As Date), то вызов функции можно осуществлять как НазваниеФункции() - то есть можно оставлять пустые скобки. Например MsgBox FirstOfQuarter()

    Список функций
    Определение первого/последнего дня текущего квартала
    Определение первого/последнего дня месяца
    Определение первого/последнего дня следующего месяца
    Определение первого/последнего дня предыдущего месяца
    Определение первого/последнего дня текущей недели
    Опредение номера дня в году (2 января = 2, 3 февраля = 34)
    Данная функция определяет рабочий день или нет
    Возвращение последнего рабочего дня в текущем месяце
    Функция определения полных лет со дня рождения
    Вычисление разницы в годах между двумя датами
    Определение високосности года

    Определение первого дня текущего квартала

    Function FirstOfQuarter(Optional dteDate As Date) As Date
    If CLng(dteDate) = 0 Then
    dteDate = Date
    End If
    FirstOfQuarter = DateSerial(Year(dteDate), Int((Month(dteDate) - 1) / 3) * 3 + 1, 1)
    End Function

    Определение последнего дня текущего квартала

    Function LastOfQuarter(Optional dteDate As Date) As Date
    If CLng(dteDate) = 0 Then
    dteDate = Date
    End If
    LastOfQuarter = DateSerial(Year(Date), Int((Month(Date) - 1) / 3) * 3 + 4, 0)
    End Function

    Определение первого дня месяца

    Function FirstOfMonth(Optional dteDate As Date) As Date
    'если параметр dteDate = 0 то для вычисления берется текущая дата
    If CLng(dteDate) = 0 Then
    dteDate = Date
    End If
    FirstOfMonth = DateSerial(Year(dteDate), Month(dteDate), 1)
    End Function

    Определение последнего дня месяца

    Function LastOfMonth(Optional dteDate As Date) As Date
    'если параметр dteDate = 0 то для вычисления берется текущая дата
    If CLng(dteDate) = 0 Then
    dteDate = Date
    End If
    'Ищется первый день следующего месяца, и вычитается один день
    LastOfMonth = DateSerial(Year(dteDate), Month(dteDate) + 1, 1) - 1
    End Function

    Определение первого дня следующего месяца

    Function FirstOfNextMonth(Optional dteDate As Date) As Date
    If CLng(dteDate) = 0 Then
    dteDate = Date
    End If
    FirstOfNextMonth = DateSerial(Year(dteDate), Month(dteDate) + 1, 1)
    End Function

    Определение последнего дня следующего месяца

    Function LastOfNextMonth(Optional dteDate As Date) As Date
    If CLng(dteDate) = 0 Then
    dteDate = Date
    End If
    LastOfNextMonth = DateSerial(Year(dteDate), Month(dteDate) + 2, 0)
    End Function

    Определение первого дня предыдущего месяца

    Function FirstOfPreviousMonth(Optional dteDate As Date) As Date
    If CLng(dteDate) = 0 Then
    dteDate = Date
    End If
    FirstOfPreviousMonth = DateSerial(Year(dteDate), Month(dteDate) - 1, 1)
    End Function

    Определение последнего дня предыдущего месяца

    Function LastOfPreviousMonth(Optional dteDate As Date) As Date
    If CLng(dteDate) = 0 Then
    dteDate = Date
    End If
    LastOfPreviousMonth = DateSerial(Year(dteDate), Month(dteDate), 0)
    End Function

    Определение первого дня текущей недели

    Function StartOfWeek(D As Variant, Optional FirstWeekday As Integer) As Variant '
    'Пример: MsgBox StartOfWeek(Date)
    If IsMissing(FirstWeekday) Then 'Sunday is the assumed first day of week.
    StartOfWeek = D - Weekday(D) + 1
    Else
    StartOfWeek = D - Weekday(D, FirstWeekday) + 1
    End If
    End Function

    Определение последнего дня текущей недели

    Function EndOfWeek(D As Variant, Optional FirstWeekday As Integer) As Variant
    'Пример: MsgBox EndOfWeek(Date)
    If IsMissing(FirstWeekday) Then 'Sunday is the assumed first day of week.
    EndOfWeek = D - Weekday(D) + 7
    Else
    EndOfWeek = D - Weekday(D, FirstWeekday) + 7
    End If
    End Function

    Опредение номера дня в году (2 января = 2, 3 февраля = 34)

    Function DayOfYear(Optional dteDate As Date) As Long
    If CLng(dteDate) = 0 Then
    dteDate = Date
    End If
    DayOfYear = Abs(DateDiff("d", dteDate, DateSerial(Year(dteDate) - 1, 12, 31)))
    End Function

    Данная функция определяет: рабочий день или нет

    Примечание: Дни с понедельника по пятницу считаются рабочими

    Function IsWorkday(Optional dteDate As Date) As Boolean
    If CLng(dteDate) = 0 Then
    dteDate = Date
    End If
    Select Case Weekday(dteDate)
    Case vbMonday To vbFriday
    IsWorkday = True
    Case Else
    IsWorkday = False
    End Select
    End Function

    Функция возвращает последний рабочий день в текущем месяце (Понедельник-Пятница)

    Function LastBusDay(D As Variant) As Variant
    'Пример: MsgBox LastBusDay(Date)
    Dim D2 As Variant
    If VarType(D) <> 7 Then
    LastBusDay = Null
    Else
    D2 = DateSerial(Year(D), Month(D) + 1, 0)
    Do While Weekday(D2) = 1 Or Weekday(D2) = 7
    D2 = D2 - 1
    Loop
    LastBusDay = D2
    End If
    End Function

    Функция определения полных лет со дня рождения

    Function CalcAge(dteBirthdate As Date) As Long
    'В качестве параметра dteBirthdate необходимо задать дату рождения
    'Пример: MsgBox CalcAge("09/03/75")
    Dim lngAge As Long
    If Not IsDate(dteBirthdate) Then
    dteBirthdate = Date
    End If
    'Проверить, чтобы в качестве входного параметра не была задана дата в будущем
    If dteBirthdate > Date Then
    dteBirthdate = Date
    End If
    'Подсчет разницы в годях между текущей датой и датой рождения
    lngAge = DateDiff("yyyy", dteBirthdate, Date)
    'Вычитается один год, если в этом году дня рождения еще не было
    If DateSerial(Year(Date), Month(dteBirthdate), Day(dteBirthdate)) > Date Then
    lngAge = lngAge - 1
    End If
    CalcAge = lngAge
    End Function

    Вычисление разницы в годах между двумя датами

    Естественно, что значение Bdate должно быть меньше параметра DateToday

    Function Age(Bdate, DateToday) As Integer
    If Month(DateToday) < Month(Bdate) Or (Month(DateToday) = Month(Bdate) And Day(DateToday) < Day(Bdate)) Then
    Age = Year(DateToday) - Year(Bdate) - 1
    Else
    Age = Year(DateToday) - Year(Bdate)
    End If
    End Function

    Определение високосности года

    Function LeapYear(YYYY As Integer) As Integer
    'Функция возвращает -1, если указанный входной параметр (год) является високосным
    'Пример: MsgBox LeapYear(1996)
    LeapYear = YYYY Mod 4 = 0 And (YYYY Mod 100 <> 0 Or YYYY Mod 400 = 0)
    End Function

    Function LeapYear2(YYYY As Integer) As Integer
    'Функция возвращает -1, если указанный входной параметр (год) является високосным
    'Пример: MsgBox LeapYear(1996)
    LeapYear2 = Month(DateSerial(YYYY, 2, 29)) = 2
    End Function

    Function IsLeapYear(DateIn As Date) As Boolean
    'Функция возвращает True, если год в указанной дате является високосным
    'Проверка: MsgBox IsLeapYear("01/01/00")
    If IsDate("29/02/" & Format(DateIn, "yyyy")) = True Then
    IsLeapYear = True
    End If
    End Function



    наверх


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

    BalloonMessage for MS Agent

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

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

    наверх


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

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

    Вопросы:


    Автор вопроса:
    Роман

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

       Подскажите пожалуйсто как сделать так что при наведении курсора на кнопку, она убегала в абсолютное безразличное место?


    Автор вопроса: Роман

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

       У кого есть файлик Xvoice.dll или что уж очень похожее (по названию) по возможности прислать по e-mail'у!!!


    Автор вопроса: Серёга

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

       Подскажите пожалуйста как сделать так: когда нажимаешь на .exe файл он сам определял полный адрес папки, в которой он находится.


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

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

       Как программно уянать имя польяователя в сети яа укаяанным компьютером?


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

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

       Как сделать Winsock стандартными средствами (с применением WinApi)


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

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

       Как сделать автозапуск с 3.5 диска (дискеты)?


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

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

       как с помощью OLE прописать правильно таблицу в документ WinWord.


    Автор вопроса: Максим

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

       Пишу прогу для ведения складского уч?та в кафе. Нужно свяяать меню с калькуляционными картами(компоненты блюда) и со складом. Какие есть идеи или где можно посмотреть аналоги таких БД?


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

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

       В своей книге (переход на ВБ.нет) г-н Эпплман мягко намекает что теоретически если CLR будет реализована в другой (не Win32) операционной системе то в принципе исходный код можно перекомпилировать для использования в этой среде.
    Понимаю что вопрос мягко говоря не серьезный но все таки сущ. ли практическая реализация сего


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

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

       Нодскажите, где можно скачать толковыю книгу по VBA ?


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

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

       Работаю в VBA, как полученные данные сунуть в ячейки Excel 2002, а потом вынуть. Пришлите пример на мылои плия. Желательно в коде VBA.


    Автор вопроса: Nechaev Sergey

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

       Прочитал, как можно заставить модем перезванивать при низкой скорости.
    У меня же все полностью противоположно. Мне надо, чтобы модем коннектился только на 31200. Если больше, то связь очень плохая (такая, что за 10мин можно не получить не байта), а меньше смысла нет.


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

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

       Как сделать всплывающую подсказку (ToolTipText)в 2 и более строк?




    Ответы:


    Вопрос:

       Прочитал, как можно заставить модем перезванивать при низкой скорости.
    У меня же все полностью противоположно. Мне надо, чтобы модем коннектился только на 31200. Если больше, то связь очень плохая (такая, что за 10мин можно не получить не байта), а меньше смысла нет.

    Ответ:

    Автор ответа: Nechaev Sergey

    Прочитал, как можно заставить модем перезванивать при низкой скорости.
    У меня же все полностью противоположно. Мне надо, чтобы модем коннектился только на 31200. Если больше, то связь очень плохая (такая, что за 10мин можно не получить не байта), а меньше смысла нет.


    Вопрос:

       Как скопировать из папки все файлы одного расширения?

    Ответ:

    Автор ответа: Mind Engine

    Вот примерчик, сначала закидываются в массив все имена файлов, затем идет копир. Спросите, зачем используется Scripting, отвечу: в отличии от VB`шной FileCopy, здесь можно копирить открытые файлы, a FileCopy на таких вещах глюканет...

    Option Explicit

    Private Sub Command1_Click()

    Dim inis As String, dest As String, filnam As String, store(), i As Long, v As Long, acs

    inis = "C:\Winnt\" 'источник
    dest = "C:\Temp\" 'приемник

    filnam = Dir(inis & "*.dll") 'какие файлы копирить

    Do While filnam <> ""
           ReDim Preserve store(v)
           store(v) = filnam
            v = v + 1
           filnam = Dir
    Loop

    Set acs = CreateObject("Scripting.FileSystemObject")

    For i = LBound(store) To UBound(store)
    acs.CopyFile inis & store(i), dest, True
    Next

    End Sub


    Вопрос:

       Как скопировать из папки все файлы одного расширения?

    Ответ:

    Автор ответа: Bogdanov Alex

    Главная проблема у тебя, на сколько я понял - это получить список файлов с определенным расширением из какой-нибудь папки. Для этого надо воспользоваться функцией Dir, которая первый раз вызывается с параметром, а остальные разы без и возвращает имя файла в папке с данным расширением. Например код типа:

    FileName = Dir (FromPath & "*.exe")
    Do While FileName
         'Копируем FileName куда надо....
         CopyFile FromPath & FileName, ToPath
         FileName = Dir
    Loop

    Скопирует все EXE файлы из папки Windows в папку Folder. Надеюсь понятно.


    Вопрос:

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

    Ответ:

    Автор ответа: Bogdanov Alex

    Один из способов - это поворачивать изображение попиксельно ( впринципе все компоненты поступают именно этим способом), для этого лучше всего воспользоваться WinApi функциями GetPixel и SetPixel.
      
    Declare Function GetPixel Lib "gdi32" Alias "GetPixel" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
    Declare Function SetPixel Lib "gdi32" Alias "SetPixel" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long

    Тут в качестве hdc указываешь hdc своего Picture. Работает довольно быстро, но для больших изображений негодится.
      
    P.S. Если сам рисуешь на Picture (не картинку грузишь), то не забудь установить свойство AutoRedraw = True


    Вопрос:

       Как на VB 6.0 под Windows 98/XP сделать так, чтобы программа добавляла сама себя в реестр или в автозагрузку?

    Ответ:

    Автор ответа: Bogdanov Alex

    В чем именно проблема? Ты не знаешь функций по работе с реестром или конкретно название секции для автозагрузки?
    1. Если первое, то читай исходники VB Wizard'а. Там даны WinApi функции, которые это делают. Сам-то VB стандартными средствами не может писать данные в реестре абы куда, а только в свой раздел реестра.
    2. Если же второе, то тебе нужна секция:
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run


    Вопрос:

       Пишу одну программу, что то вроде "удаленного администратора" так вот необходимо чтоб прога на компе пользователя, по команде по сети, замораживала комп. а потом опять размораживала. Причем нужно чтоб работало и в играх. (Просто нужно в игровом салоне. заплатил например за час, час работает потом бац все зависло.) Это можно сделать?

    Ответ:

    Автор ответа: Bogdanov Alex

    Интересная задачка!
    Очень даже может быть.
    Но для этого тебе придется написать две проги одну клиент, другую сервер. Все это достаточно легко реализовать, если ты когда-нибудь что-нибудь писал для сети. Если не писал, то скажу, что надо воспользоваться WinSock Control'ом. Описаний по нему в сети я видел немало, но если что пиши - кину. Вопрос в другом. Как именно должен "виснуть" комп. Если просто вырубаться, то это очень просто - есть:

    Function ExitWindowsEx Lib "user32" Alias "ExitWindowsEx" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long

    Завершает работу с Windows.

    Параметры
    :
    uFlags - Может принимать следующие значения:
    Константа
    Значение Действие
    EWX_LOGOFF 0 Войти в систему под другим именем
    EWX_SHUTDOWN 1 Завершить работу Windows и подготовить систему к выключению питания.
    EWX_REBOOT 2 Перезагрузить компьютер.
    EWX_FORCE 4 Аварийно завершить все процессы при завершении работы Windows.

    Если сильно притормозить комп - то можно назначить своему процессу наивысший приоритет Windows и выполнить что-нибудь типа

    Do
    Loop

    Короче об этом надо бы поподробнее...


    Вопрос:

       Программа пишет некие файлы на дискету. Если дискета не очеть хорошая - выдается синий экран типа "Невозможно произвести запись на диск А: Данные могу бить утеряны. Нажмите какую-то кнопку". Как в VB перехватить эту ошибку или избежать ее.

    Ответ:

    Автор ответа: Bogdanov Alex

    Напиши код типа:

    Sub Copy2Flopy (FileName)
    On Local Error Goto ErrFlp
    ...
    'Тут код копирования
    ...
    Exit Sub
    ErrFlp:
    'В случае ошибки управление перейдет именно на эту метку!
    MsgBox "При копировании файла возникла ошибка " & Err
    Resume Next
    End Sub


    Вопрос:

       Как растянуть текст в графическом окне PictureBox, если текст периодически меняется и следовательно получается разного размера. Или хотя бы подогнать размеры окна под текст.

    Ответ:

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

    попробуй использовать функции
      
    THeight= PictureBox.TextHeight (YourText as String)
    TWidth = PictureBox.TextWidth (YourText as String)
      
    и на основе полученных значений ты сможешь подогнать окно PictureBox'а


    Вопрос:

       Как добавить программно форму одинаковую даной

    Ответ:

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

    В проекте есть форма Form1

         Dim x As Form1
         Set x = New Form1
         x.Show


    Вопрос:

       Как добавить программно форму одинаковую даной

    Ответ:

    Автор ответа: Nechaev Sergey

    dim MyNewForm as Form1
    set MyNewForm=new Form1
    mynewform.show
      
    создает новую копию формы Form1 и отображает ее на экране.


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

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

    наверх


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

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