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


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

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



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

Ссылки:

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

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

       Новый выпуск. Немного задержался по техническим причинам и недостатку времени...
    Читайте!


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




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

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


    Как заполнить DBList данными из БД и отсортировать их по алфавиту?

    Вопрос:

    Как заполнить DBList данными из БД и отсортировать их по алфавиту?

    Ответ:

    Для этого нужно исползовать следующий SQL-запрос:
     SELECT {ListOfFields} FROM {TableName} ORDER BY FieldName
    , где ListOfFields - поля через запятую, TableName - имя таблицы, FieldName - имя сортируемого поля.

    Sergey Y. Tkachev, Павел Сурменок

    наверх


    Как менять картинку при наведении курсора мыши на объект?

    Вопрос:

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

    Ответ:

    Можно делать это двумя способами.

    1. При "наезжании" мыши на контрол, запускаешь таймер, который смотрит, не съехала ли мышь с контрола (GetCursorPos, ScreenToClient). А если съехала, ставишь вторую картинку и останавливаешь таймер.

    2. Субклассингом. ловить WM_MOUSELEAVE.

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

    Можно попробовать через SetCapture, RelaceCapture

        Savenger

    наверх


    Как узнать размер директории (поддиректорий нет)?

    Вопрос:

    Как узнать размер директории (поддиректорий нет)?

    Ответ:

    Dim sngSize as Single
    Dim strFile as String
    const Path="C:\Windows\"

    strFile= Dir (Path & "*")  'Получим первый файл

    Do while strFile <>"" 'Продолжаем, пока в дирректории есть файлы
       sngSize=sngSize + FileLen(Path & strFile)  'Прибавим его размер.
       strFile= Dir ()  'Получим следующий файл
    Loop 'Завершение цикла.

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

    Public Sub ShowFolderInfo(Folder As String)
    Dim fso, fld, s
      Set fso = CreateObject("Scripting.FileSystemObject")
      Set fld = fso.GetFolder(Folder)
      s = fld.Name & " занимает " & fld.Size & " байт"
        MsgBox s
    End Sub


        DedMorozzz

    Option Explicit

    Private Const MAX_PATH = 260

    Private Type FILETIME
        dwLowDateTime As Long
        dwHighDateTime As Long
    End Type

    Private Type WIN32_FIND_DATA
        dwFileAttributes As Long
        ftCreationTime As FILETIME
        ftLastAccessTime As FILETIME
        ftLastWriteTime As FILETIME
        nFileSizeHigh As Long
        nFileSizeLow As Long
        dwReserved0 As Long
        dwReserved1 As Long
        cFileName As String * MAX_PATH
        cAlternate As String * 14
    End Type

    Private Declare Function FindFirstFile& Lib "kernel32" Alias
    "FindFirstFileA" (ByVal lpFileName$, lpFindFileData As WIN32_FIND_DATA)
    Private Declare Function FindNextFile& Lib "kernel32" Alias
    "FindNextFileA" (ByVal hFindFile&, lpFindFileData As WIN32_FIND_DATA)
    Private Declare Function FindClose& Lib "kernel32" (ByVal hFindFile&)

    Private Paths$(), kolPath&, gFsize#

    Private Sub CreateFileList(Pat$)
    Dim hFind&, dwFindData As WIN32_FIND_DATA
    Dim nI As Integer, Ndir As Integer, sDirList$()

    Ndir = -1
    ReDim Preserve sDirList$(0)


    dwFindData.cFileName = Pat + "*.*"
    hFind = FindFirstFile((Pat + "*.*"), dwFindData)
    Do

    If (dwFindData.dwFileAttributes And vbDirectory) = vbDirectory Then
     Ndir = (Ndir + 1)
     ReDim Preserve sDirList$(Ndir)
     sDirList(Ndir) = Mid(dwFindData.cFileName, 1,
    (InStr(dwFindData.cFileName, Chr(0)) - 1))
    Else
     gFsize = (gFsize + dwFindData.nFileSizeLow)
     kolPath = (kolPath + 1)
     ReDim Preserve Paths$(kolPath)
     Paths(kolPath) = Pat + Mid(dwFindData.cFileName, 1,
    (InStr(dwFindData.cFileName, Chr(0)) - 1))
    End If

    Loop While FindNextFile(hFind, dwFindData) > 0
    FindClose (hFind)


    For nI = 2 To Ndir
    kolPath = (kolPath + 1)
    ReDim Preserve Paths$(kolPath)
    Paths(kolPath) = Pat + sDirList(nI)
    CreateFileList (Paths(kolPath) + "\")
    Next nI

    End Sub

    Public Sub GetFilesList(Pat$, kolItems&, dwList$(), FilesSize#)
    Dim tm&, dwPath$

    dwPath = Pat
    If Right(dwPath, 1) <> "\" Then dwPath = dwPath + "\"

    kolPath = 0
    gFsize = kolPath
    ReDim Preserve Paths$(kolPath)
    Paths(kolPath) = Pat

    CreateFileList dwPath

    kolItems = kolPath
    FilesSize = gFsize
    ReDim dwList(kolPath)

    For tm = 0 To kolPath
    dwList(tm) = Paths(tm)
    Next tm

    End Sub

        Ivan Rozhuk

    наверх


    Как цветную картинку в PictureBox сделать черно-белой?

    Вопрос:

    Как цветную картинку в PictureBox сделать черно-белой? Может нужно API использовать?

    Ответ:

    Private Sub cmdMask_Click()
        Dim hdcMono, hbmpMono, hbmpOld ' As SysInt

        ' Create memory device context
        hdcMono = CreateCompatibleDC(0)

        ' Create monochrome bitmap and select it into DC
    'Вот, создаёшь монохромный DC
        hbmpMono = CreateCompatibleBitmap(hdcMono, dxBlt, dyBlt)
        hbmpOld = SelectObject(hdcMono, hbmpMono)

        ' Copy color bitmap to DC to create mono mask
    'и копируешь в него.
        BitBlt hdcMono, 0, 0, dxBlt, dyBlt, pbSrc.hDC, 0, 0, SRCCOPY

        ' Copy mono memory mask to visible picture box
    'тут отображаешь
        BitBlt pbDst.hDC, 0, 0, dxBlt, dyBlt, hdcMono, 0, 0, SRCCOPY
        pbDst.Refresh
        ' Clean up
        Call SelectObject(hdcMono, hbmpOld)
        Call DeleteDC(hdcMono)
        Call DeleteObject(hbmpMono)
    End Sub


        Ivan Rozhuk

    Вот простенький примерчик. (файл Color-Mono.rar)
    Переводит из одного PictureBox цветную картинку в другой уже как черно-белую

        Дмитрий Данелия

    наверх


    Почему не устанавливается фоновая картинка?

    Вопрос:

    Вот хочу программно поменять обои, но ничего не получается, может быть найдёте ошибку:

    Sub Wall(file As String)
        Dim i As Long
        i = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0&, file, _
    SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)


    Ответ:

    Третий параметр тоже должен быть ByVal
    SystemParametersInfo 20, 0, ByVal sFile, True

        Дмитрий Данелия

    наверх


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

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

    Вопросы:


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

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

       Подскажите, пожалуйста, как узнать список всех подразделов и параметров реестра определенной ветви.


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

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

       Подскажите, пожалуйста, как в этой строке прикреплять аттачи?

    ShellExecute 0&, "Open", "mailto:" + Ps1_Email + "?Subject=" + Ps2_Subject + "&body=" + Ps3_Body, "", "", SW_SHOWNORMAL


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

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

       Я задавал этот вопрос, но видать не досказал. Скажите пожалуйста, как загрузить рисунок (из Picture Box-a) в память (не Винчестер), и наоборот из памяти загрузить рисунок в Picture Box. В память для того что бы проводить манимуляции над рисунком не на экране а в памяти (например перевернуть горизонтально).


    Автор вопроса: Роганов Владимир

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

       Подскажите кто знает, как можно увеличивать рисунок(фотку) без потерь качества изображения (или почти без потерь).


    Автор вопроса: Роганов Владимир

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

       Как получить список всех запущенных программ. если можно, с примерчиком.


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

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

       Как в отдельном окне, не связанном с написанной на VB6 программой, открыть программы с расширениями .exe, .doc, .txt, .jpg, .bmp, и др.


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

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

       Есть FILE.DBF (FoxPro 2.6) с полями KOD,DATE,ZNACH (файл не отсортирован и не имеет индексного файла).

    1. Как заполнить FlexGrid записями с KOD="123" и отсортировать их по полю DATE?
    2. Как узнать сумму значений поля ZNACH для: KOD="321" и {01.07.2003} 3. Как осуществить перебор всех записей с KOD="111". Если использую Data1.Recordset.Seek в цикле, находит только первую запись, eсли использую Data1.Recordset.FindFirst, выдает ошибку: "Operation is not supported for this type of object".


    Автор вопроса: Денис

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

       Как сделать форму активной, и единственно видемой во время работы другой программы. Если она в памяти, но не активна.


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

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

       Помогите решить такую задачу:
    Посмотрев через терминал, я узнал что на ком порт приходят такие данные:

    1) 9ЕС0С0С0
    2) ЕЕС0С0С0
      
    и так далее и того всего 8 различных кодов.

    Вопрос: как в VB организовать сравнение этих кодов и в случае совпадения выполнить определенное действие?


    Автор вопроса: Максим Анатольевич

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

       Есть файл *.raw вынутый из одной проги.
    В данном файле музыка в бинарном виде. Из файла в котором был данный ресурс представлен как тип XMOD.
    Подключить файл *.raw я могу, а вот как заставить его воспроиводить музыку?
    Т.е. как запустить на выполнение тип XMMOD?


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

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

       Что означает ошибка номер 91 "Object variable or With block variable not set"? Как можно её исправить?


    Автор вопроса: Alexander V. Babich

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

       Как из Аксесса на VBA заполнить документ WORD (заполнить уже существующий шаблон ), то есть записать информацию строго в определенные места документа?


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

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

       Есть отчет, сделанный в DataReport. VB6. Отчет на многих страницах. Как сделать, чтобы на каждой странице внизу или вверху печаталось : page 1 of 20 (порядковый номер страницы).


    Автор вопроса: Михаил Антонов

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

       Есть VB6 с обычным ListBox'ом. В нём есть свойство Column. Справшивается, если установить его >1, то как можно добавить новый элемент (AddItem и List добавляют только в 1-й столбец)? И вообще, зачем это свойство нужно - для отображения табличных данных только?


    Автор вопроса: Учебный центр

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

       Создал программку на VB 60. Но когда закрываю форму - процесс остается. Как сделать чтобы закрывалось полностью?


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

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

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


    Автор вопроса: Валерий Алексеевич

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

       После упаковки готового проекта с помощью Package and Diployment Wizard VB6.0 получаю следующие файлы и папки:
      
    C:\Мои документы\My VB6\Установка\*.*
    SETUP.LST
    setup.exe
    Проект1.CAB
    Проект1.TXT
    SETUP.LST

        Плюс Папка "Support" с копиями файлов упаковки проекта и самого проекта.
      
    При инсталяции упакованного проекта, после окна: Setup is checking for necessary disk space... (Установка проверяет необходимое дисковое пространство ...) выдается ошибка:

    C:\WINDOWS\SETUP.LST
    Invalid line in setup information file!
    Section: Setup1 Files
    @Project1.exe,$(AppPath),,$(Shared),12.12.03 10:53:58AM,16384,1.0.0.0
      
        Содержимое файла SETUP.LST:

    [Bootstrap]
    SetupTitle=Install
    SetupText=Copying Files, please stand by.
    CabFile=Project1.CAB
    Spawn=Setup1.exe
    Uninstal=st6unst.exe
    TmpDir=msftqws.pdw
    Cabs=1
      
    [Bootstrap Files]
    File1=@VB6STKIT.DLL,$(WinSysPathSysFile),,,6.18.98 12:00:00 AM,102912,6.0.81.69
    File2=@COMCAT.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,5.31.98 12:00:00 AM,22288,4.71.1460.1
    File3=@STDOLE2.TLB,$(WinSysPathSysFile),$(TLBRegister),,5.5.99 10:22:00 PM,17920,2.40.4275.1
    File4=@ASYCFILT.DLL,$(WinSysPathSysFile),,,5.5.99 10:22:00 PM,147728,2.40.4275.1
    File5=@Olepro32.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,6.8.00 5:00:00 PM,164112,5.0.4515.0
    File6=@OLEAUT32.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,9.19.01 2:47:08 PM,614672,2.40.4515.0
    File7=@MSVBVM60.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,12.9.98 4:28:18 PM,1409024,6.0.82.68
      
    [IconGroups]
    Group0=Установка программы VB_6
    PrivateGroup0=True
    Parent0=$(Programs)
    Group1=Установка программы VB6
    PrivateGroup1=False
    Parent1=$(Start Menu)
      
    [Установка программы VB_6]
    Icon1="Проект1.exe"
    Title1=Установка программы VB_6
    StartIn1=$(AppPath)
      
    [Setup]
    Title=Установка программы VB_6
    DefaultDir=$(ProgramFiles)\Проект1
    AppExe=Проект1.exe
    AppToUninstall=Проект1.exe
      
    [Setup1 Files]
    File1=@Проект1.exe,$(AppPath),,$(Shared),12.12.03 9:43:30 AM,20480,1.0.0.0

        Прошу подсказать, где мною допускается ошибка.


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

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

       А как в уже имеющийся документ Excel внести данные из VB60 в определенные ячейки (Например D4, E5)?


    Автор вопроса: Палыч

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

       Мне нужно чтобы моя программа воспроияводила явуки раяной частоты и длительности (аябука моряе) на системный динамик (явуковая карта) и одновременно шел сигнал на СОМ-порт. Как можно это реалияовать? В windows98 функция BEEP не работает.


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

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

       Подскажите пожалуйста как сделать так, что бы в text-bar ввести (например) 5+2+(5-3)/2, и при нажатие кнопки он вычислил.


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

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

       Народ подскажите, как сохранить программу в буфер по байтикам, а из буфера так же сохранить в указанную директорию.


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

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

       Скажите пожалуйста как прочитать из реестра(!) информацию о текущем видеоадаптере, его название и обезательно(!) в какой ветке реестра он прописан. Например у меня он прописан в:

    "HKEY_LOCAL_MACHINE\Enum\PCI\VEN_5333&DEV_8A01&SUBSYS_8A015333&REV_01\BUS_00&DEV_0B&FUNC_00"

    (У меня PCI видео). Это означает что в каждой конкретной системе он прописан в разных местах и просто считать его не получится. Как можно реализовать универсальный метод определение этого самого места в реестре ?


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

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

       Как загрузить список файлов из папки в листбокс?




    Ответы:


    Вопрос:

       Как загружать из файлы .тхт в VB?
    Например:
       
           Number = FreeFile
           Open "C:\All\My document\My proect\xakep\History.txt" For Output As 1
           Print #1, "Money=", Form2.Label32.Caption
           Print #1, "Life=", Form2.lblhp.Caption
           Close #1

       
    Вот что получаеться в текстовом файле:
       
    Money= 20
    Life= 100

    Вот и как загрузить эти цифры обратно в Visual Basic?

    Ответ:

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

    Загрузка инфы:

    Dim str As String
    Dim strCMD As String
    Dim strValue As String
    Open "C:\Games\Quake3\botlib.log " For Input As #1
    Do Until EOF(1)
    Line Input #1, str
    strCMD = Left(str, InStr(1, str, "="))
    strValue = Trim(Right(str, Len(str) - InStr(1, str, "=")))
    Select Case strCMD
    Case "Money":
    Case "Life":
    End Select
    Loop



    Ответ:

    Автор ответа: Павел

    Загрузить файл в textbox можно следующим образом:

    Dim strFileName As String
    Dim FileNumber As Integer
    Dim StrText As String
      
    Private Sub Command1_Click()
        strFileName = "c:\config.sys"
        FileNumber = FreeFile
        Open strFileName For Input As #FileNumber
        StrText = Input$(LOF(FileNumber), FileNumber)
        Close #FileNumber
        Text1.Text = StrText
        Text1.MultiLine = True
        Text1.ScrollBars = 2 'vertical
    End Sub

    'Вместо "c:\config.sys" подставь "C:\All\My document\My proect\xakep\History.txt" или что-нибудь подобное



    Ответ:

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

    Во-первых, вместо запятой ставь "&", тогда у тебя не будет пробелов.

           Print #1, "Money=" & Form2.Label32.Caption

    Чтоб считать

    Open "C:\All\My document\My proect\xakep\History.txt" For Input As #1
    Line Input #1, строка1
    Reset

    А потом отбрасываешь начало
    строка1=mid(строка1, 7, len(строка1))

    Останется только число.


    Вопрос:

       Смотрите:
       
    MMControl1.DeviceType = "waveaudio"
    MMControl1.FileName = Form1.Label3.Caption + "\sound\notify.wav"
    MMControl1.Command = "open"
    MMControl1.Command = "play"
       
    И Вот этот звук звучит тока 1 раз и все :( , что надо сделать чтобы он звучал стока раз скока будет происходить то или иное событие…

    Ответ:

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

    Лучше выполнять через API sndPlaySound и его сделай циклом с условием.



    Ответ:

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

    Private Sub Form_Load()
    MMC.FileName = "c:\mdi.mdi" 'Путь до файла
    MMC.Command = "Open"
    MMC.Command = "Play"
    End Sub

    Private Sub MMC_Done(NotifyCode As Integer) ' Повторное воспроизведение по
    окончании
    MMC.Command = "Prev"
    MMC.Command = "Play"
    End Sub


    Вопрос:

       Visual Basic 6. Пожалуйста, подскажите как создать двумерный массив (M x N) и заполнить его нулями и единицами в шахматном порядке.

    Ответ:

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

    Заполнение массива в шахмотном порядке
      
    Dim Mass() As Byte
    Dim m As Integer, n As Integer
    Dim i As Integer, j As Integer
    n = 10
    m = 5
    ReDim Mass(n, m) As Byte
      
    For i = 0 To n
         For j = 0 To m
             If (i Mod 2) = 0 Then
                 If (j Mod 2) = 0 Then
                     Mass(i, j) = 0
                 Else
                     Mass(i, j) = 1
                 End If
             Else
                 If (j Mod 2) = 0 Then
                     Mass(i, j) = 1
                 Else
                     Mass(i, j) = 0
                 End If
             End If
         Next j
    Next i
    Dim str As String
    For i = 0 To n
    For j = 0 To m
    str = str & Mass(i, j)
    Next
    str = str + vbCrLf
    Next
    MsgBox str



    Ответ:

    Автор ответа: Роман

        Dim Arr(8, 8) As Byte
        Dim x As Integer
        Dim y As Integer

        For y = 1 To 8
           For x = 1 To 8
              If x Mod 2 = 0 And y Mod 2 <> 0 Or _
                 x Mod 2 <> 0 And y Mod 2 = 0 Then
                 Arr(x, y) = 1
              Else
                 Arr(x, y) = 0
              End If
              Form1.CurrentX = x * 200 'Для наглядности
              Form1.CurrentY = y * 200 'выводит результат
              Form1.Print Arr(x, y) 'на форме
           Next
        Next



    Ответ:

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

    Динамический массив.

    Dim A() As Long

    Private Sub Form_Load()

    ReDim A(M, N)

    For i = 0 To M
      For j = 0 To N
       x = 1 - x
       A(i, j) = x
      Next j
    Next i

    End Sub



    Ответ:

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

    dim a(m,n)
    k=0 'здесь хранится предыдущее значение
    s=0 'здесь хранится значение начала строки
    for i=0 to m-1
         if k=s then 'это проверяет, чтоб данные начала строк не совпадали
             k=1-s
             s=k
         end if
         for j=0 to n-1
             a(m,n)=k
             k=1-k
         next
    next


    Вопрос:

       Где можно скачать и установить Помощь MSDN для VB6?

    Ответ:

    Автор ответа: Phoenix Group

    И чего, будешь все 3 компакта скачивать? Она отдельно в принципе продается.


    Вопрос:

       Просьба сообщить, как правильно открыть созданный и сохраненный проект Visual Basic 6.0 для дальнейшего редактирования? При открытии файла Проект.vbg не появляются ни форма проекта, ни модуль. Однако кнопкой Run проект запускается. Почему в проекте отсутствует файл с расширением *.bas?

    Ответ:

    Автор ответа: Роман

    Для сохранения File->Save Project или Save Project As...
    Тогда сохранятся все формы, модули и т.д.
    Файл BAS - файл програмного модуля. Если вы его не добавляли, его и не будет. Добавить модуль - Project->Add Module



    Ответ:

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

    Проект состоит из следующих файлов:

    .vbp - хранит ссылки на составляющие проекта, подключённые контролы,
    библиотеки и информацию о проекте (этим нужно запускать, если нет .vbg)
    .vbg - группа проектов, создаётся, когда работа идёт одновременно с
    несколькими проектами
    .vbw - сохраняет инфу о расположении окон проекта в среде разработки
    .frm - хранит код формы и расположение элементов на ней
    .frx - хранит бинарную информацию формы (создаётся, когда на форму
    помещается картинка)
    .bas - модуль, появляется, когда вами создаётся этот самый модуль
    .ctl - появляется, когда вы создаёте свой контрол


    Вопрос:

       Дана задача: Зарплата инженера 5000р., бухгалтера 5400р., техника 3200р. Найти сумму выплачиваемой зарплаты, если на предприятии работает 2 инженера, 3 бухгалтера и 13 техников.
    Задачу я решил следующим способом. Программа работает. Прошу сообщить правильно ли я ее решил?
    Приводу текст модуля программы:

    'Устанавливаем начальные значения при открытии программы:
    Private Sub Form_Load()
          Me.Текст1.Text = 0 'Задаем нулевые значения исходным данным
          Me.Текст2.Text = 0 'Задаем нулевые значения исходным данным
          Me.Текст3.Text = 0 'Задаем нулевые значения исходным данным
          Me.Текст4.Text = 0 'Задаем нулевые значения исходным данным
          Me.Текст5.Text = 0 'Задаем нулевые значения исходным данным
          Me.Текст6.Text = 0 'Задаем нулевые значения исходным данным
          Me.Текст7.Text = 0 'Задаем нулевые значения исходным данным
          Me.Рамка2.Visible = False 'Скрываем группу Ответа
    End Sub
       
    'Кнопка Решить задачу:
    Private Sub Комманда1_Click()
    Me.Рамка2.Visible = True 'Показываем группу Ответа
    'Производим вычисления по расчету суммы зарплаты:
    Me.Текст7.Text = Me.Текст1.Text * Me.Текст4.Text + Me.Текст2.Text * Me.Текст5.Text + Me.Текст3.Text * Me.Текст6.Text
    End Sub
       
    'Кнопка Закончить:
    Private Sub Комманда2_Click()
          Unload Me 'Закрываем программу
    End Sub
       
    'Кнопка Заполнить:
    Private Sub Комманда3_Click()
          Me.Текст1.Text = 5000 'Устанавливаем значения согласно условию задачи
          Me.Текст2.Text = 5400 'Устанавливаем значения согласно условию задачи
          Me.Текст3.Text = 3200 'Устанавливаем значения согласно условию задачи
          Me.Текст4.Text = 2 'Устанавливаем значения согласно условию задачи
          Me.Текст5.Text = 3 'Устанавливаем значения согласно условию задачи
          Me.Текст6.Text = 13 'Устанавливаем значения согласно условию задачи
          Me.Текст7.Text = 0 'Устанавливаем значения согласно условию задачи
          Me.Рамка2.Visible = False 'Скрываем группу Ответа
    End Sub
       
    'Кнопка Очистить:
    Private Sub Комманда4_Click()
          Me.Рамка2.Visible = False 'Скрываем группу Ответа
          Me.Текст1.Text = 0 'Очищаем значения исходных данных
          Me.Текст2.Text = 0 'Очищаем значения исходных данных
          Me.Текст3.Text = 0 'Очищаем значения исходных данных
          Me.Текст4.Text = 0 'Очищаем значения исходных данных
          Me.Текст5.Text = 0 'Очищаем значения исходных данных
          Me.Текст6.Text = 0 'Очищаем значения исходных данных
          Me.Текст7.Text = 0 'Очищаем значения исходных данных
    End Sub

    Ответ:

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

    Вроде бы да.



    Ответ:

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

    В общем, задача решена верно, хотя и можно немного её оптимизировать.
    Смущает следующие:

    1) Зачем вы постоянно скрываете и открываете поля (хотя, если это одно из требований, тогда вопрос отпадает)
    2) При вычислении я бы рекомендовал поставить следующее

    Me.Текст7.Text = cdec(Me.Текст1.Text) * cdec(Me.Текст4.Text) +
    cdec(Me.Текст2.Text) * cdec(Me.Текст5.Text) + cdec(Me.Текст3.Text) *
    cdec(Me.Текст6.Text)

    Это переведёт текстовые данные в числовые (странно, что он у вас не заругался на несоответствие типа данных)


    Вопрос:

       Как написать прогу ( типа смотрелки фоток), чтобы при открытии каждой новой фотки размер формы ( ну в общем всей проги), становился равен размеру фотки. Я пробовал всякие autosize и windowState но что-то не получается.

    Ответ:

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

    Бросаеш на форму Image, на форме ставиш ScaleMode = 1-Twip и borderstyle =0 none

    image1.picture=LoadPicture("xxx.jpg")
    Image1.Move 0, 0
    Me.Height = Image1.Height
    Me.Width = Image1.Width



    Ответ:

    Автор ответа: Роман

    Если на форме PictureBox, то ставишь его свойство AutoSize = True, а в процедуре, когда ты меняешь картинку, пишешь

    Me.ScaleWidth=PictureBox.ScaleWidth
    Me.ScaleHeight=PictureBox.ScaleHeight



    Ответ:

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

    Для начала узнаешь размер этой самой фотки. А потом ставишь

    форма.Height = высота
    форма.Width = ширина


    Вопрос:

       Как определить температуру BIOS (процессора, м.платы, винта). И вообще возможно ли это на vb6. Если можно кусок кода.

    Ответ:

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

    Есть контрол для этой цели. Я его видел в интернете, но тогда он меня не интересовал. Поищи через поисковики.




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

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

    наверх


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

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