VBNet
VBMania
Голосование: Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом. Доска почёта: Sergey Y. Tkachev Кононенко Роман Kirill Ссылки: |
Господа!!! читайте MSDN!!! Несколько слов от автора:
Держитесь! Загляните в раздел Вопрос/Ответ :-)))
Читайте! Содержание выпуска
Книги
Остальные книги о VB можно найти здесь. наверх Размещение окна у основания Панели задач По умолчанию, Windows отображает панель задач в нижней части экрана. Вы можете переместить её к любому краю экрана, изменяя тем самым размеры доступной области экрана. С панелью задач, всегда видимой на экране, информация иногда заслоняется - особенно, если пользователь развертывает окно приложения. Вы можете использовать функцию SystemParametersInfo в приложении, чтобы определить доступную область экрана. Чтобы увидеть, как это работает, создайте новый проект. На форму добавьте контрол Command Button Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinini As Long) As Long Const SPI_GETWORKAREA = 48 Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Private Sub Command1_Click() Dim RC As RECT Dim X As Long X = SystemParametersInfo(SPI_GETWORKAREA, vbNull, RC, 0) Me.Move RC.Left * Screen.TwipsPerPixelX, RC.Top * Screen.TwipsPerPixelY, RC.Right * Screen.TwipsPerPixelX, RC.Bottom * Screen.TwipsPerPixelY End Sub наверх Как загрузить файл из интернета Если Вам необходимо загрузить файл из интернета, то воспользуйтесь следующим кодом. Private Declare Function DoFileDownload Lib "shdocvw.dll" (ByVal lpszFile As String) As Long Private Sub Command1_Click() DownLoadFile "http://demin.narod.ru/2001/wall/", "wall3.jpg" End Sub Public Sub DownLoadFile(sUrl As String, sFile As String) Dim DL As Long On Error GoTo errHandler If sUrl$ = "" Then sUrl$ = strUrl$ If strUrl$ = "" Then strUrl$ = sUrl$ If Left(strUrl$, 4) <> "http" Then strUrl$ = "http://" & strUrl$ If Right$(strUrl$, 1) <> "/" Then strUrl$ = strUrl$ & "/" If Left$(sFile$, 1) = "/" Then sFile = Mid$(sFile$, 2) DL& = DoFileDownload(StrConv(strUrl$ & sFile$, vbUnicode)) Exit Sub errHandler: Debug.Print "Error Source:", Err.Source Debug.Print "Error Description:", Err.Description Debug.Print "Error Number:", Err.Number MsgBox "An error has occured attempting to start download to " & sUrl & sFile$ & ".", vbApplicationModal + vbCritical + vbDefaultButton1, "Error" End Sub наверх Создание формы произвольных размеров Создайте новый проект, разместите на форме элемент Label (чтобы выйти из программы). Обязательно установите в свойствах формы Caption = "" и ControlBox = False. Private Declare Function ReleaseCapture Lib "user32" () 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 CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long Private Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long Private Declare Function DeleteObject Lib "gdi32.dll" (ByVal hObject As Long) As Long Const WM_NCLBUTTONDOWN = &HA1 Const HTCAPTION = 2 Private Type POINTAPI X As Long Y As Long End Type Sub CutForm() Dim P(428) As POINTAPI Dim px Dim py Dim i As Integer Dim Rgn As Long px = Array(340, 339, 334, 333, 329, 328, 325, 324, 321, 320, 318, 317, 316, 315, 313, _ 312, 311, 310, 309, 308, 307, 306, 305, 304, 303, 301, 300, 298, 297, 294, 293, 281, 281, 278, 278, 277, 277, 275, 275, 274, 274, 273, 273, 272, 272, _ 271, 271, 270, 270, 269, 268, 267, 265, 264, 263, 262, 260, 259, 258, 257, 256, 255, 254, 252, 251, 249, 248, 245, 195, 194, 188, 187, 187, 186, 186, _ 185, 184, 182, 181, 180, 179, 178, 176, 175, 173, 172, 169, 168, 165, 164, 159, 158, 153, 152, 146, 145, 136, 135, 121, 120, 80, 79, 65, 64, 55, _ 54, 48, 47, 42, 41, 36, 35, 32, 31, 28, 27, 25, 24, 22, 21, 20, 19, 18, 16, 15, 14, 14, 13, 13, 14, 14, 15, 16, 17, 18, _ 19, 20, 21, 22, 24, 25, 27, 28, 31, 32, 35, 36, 41, 42, 47, 48, 54, 55, 64, 65, 67, 67, 64, 63, 61, 60, 57, 56, 54, 53, _ 51, 50, 48, 47, 46, 45, 43, 42, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 24, 23, 21, 20, 13, 13, 11, _ 11, 10, 10, 11, 11, 12, 13, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, _ 36, 37, 38, 39, 40, 42, 43, 45, 46, 47, 48, 50, 51, 53, 54, 56, 57, 60, 61, 63, 64, 67, 68, 71, 72, 75, 76, 80, 81, 84, _ 85, 89, 90, 95, 96, 100, 101, 106, 107, 113, 114, 120, 121, 128, 129, 136, 137, 146, 147, 158, 159, 172, 173, 194, 195, 254, 255, 276, 277, 290, _ 291, 302, 303, 312, 313, 320, 321, 328, 329, 335, 336, 342, 343, 348, 349, 353, 354, 359, 360, 364, 365, 368, 369, 373, 374, 377, 378, 381, 382, 385, _ 386, 388, 389, 392, 393, 395, 396, 398, 399, 401, 402, 403, 404, 406, 407, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, _ 425, 426, 428, 429, 436, 436, 438, 438, 439, 439, 438, 438, 436, 436, 435, 435, 434, 434, 433, 433, 431, 431, 431, 431, 432, 432, 433, 433, 432, 432, _ 431, 431, 430, 430, 429, 429, 428, 428, 427, 427, 426, 426, 425, 425, 423, 423, 422, 422, 419, 419, 407, 406, 403, 402, 400, 399, 397, 396, 395, 394, _ 393, 392, 391, 390, 389, 388, 387, 385, 384, 383, 382, 380, 379, 376, 375, 372, 371, 367, 366, 360, 359, 341, 340, 339) py = Array(182, 181, 181, 180, 180, 179, 179, 178, 178, 177, 177, 176, 176, 175, 175, _ 174, 174, 173, 173, 172, 172, 171, 171, 170, 170, 168, 168, 166, 166, 163, 163, 151, 150, 147, 146, 145, 144, 142, 141, 140, 139, 138, 137, 136, 135, _ 134, 132, 131, 129, 128, 128, 127, 127, 126, 126, 125, 125, 124, 124, 123, 123, 122, 122, 120, 120, 118, 118, 115, 115, 114, 114, 115, 118, 119, 120, _ 121, 121, 123, 123, 124, 124, 125, 125, 126, 126, 127, 127, 128, 128, 129, 129, 130, 130, 131, 131, 132, 132, 133, 133, 134, 134, 133, 133, 132, 132, _ 131, 131, 130, 130, 129, 129, 128, 128, 127, 127, 126, 126, 125, 125, 124, 124, 123, 123, 121, 121, 120, 119, 118, 115, 114, 113, 112, 112, 111, 110, _ 110, 109, 109, 108, 108, 107, 107, 106, 106, 105, 105, 104, 104, 103, 103, 102, 102, 101, 101, 100, 100, 98, 98, 97, 97, 96, 96, 95, 95, 94, _ 94, 93, 93, 92, 92, 91, 91, 90, 90, 89, 89, 88, 88, 87, 87, 86, 86, 85, 85, 84, 84, 83, 83, 81, 81, 79, 79, 72, 71, 69, _ 67, 66, 60, 59, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 47, 46, 45, 45, 44, 43, 43, 42, 42, 41, 41, 40, 40, 39, 39, _ 38, 38, 37, 37, 36, 36, 35, 35, 34, 34, 33, 33, 32, 32, 31, 31, 30, 30, 29, 29, 28, 28, 27, 27, 26, 26, 25, 25, 24, 24, _ 23, 23, 22, 22, 21, 21, 20, 20, 19, 19, 18, 18, 17, 17, 16, 16, 15, 15, 14, 14, 13, 13, 12, 12, 11, 11, 12, 12, 13, 13, _ 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, _ 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, _ 45, 45, 47, 47, 54, 55, 57, 59, 60, 66, 67, 69, 71, 72, 73, 82, 83, 85, 86, 88, 90, 91, 93, 96, 97, 102, 103, 118, 119, 124, _ 125, 128, 129, 131, 132, 134, 135, 136, 137, 138, 139, 140, 141, 142, 144, 145, 146, 147, 150, 151, 163, 163, 166, 166, 168, 168, 170, 170, 171, 171, _ 172, 172, 173, 173, 174, 174, 175, 175, 176, 176, 177, 177, 178, 178, 179, 179, 180, 180, 181, 181, 182, 182, 181, 181) For i = 0 To UBound(px) P(i).X = px(i) P(i).Y = py(i) Next Rgn = CreatePolygonRgn(P(0), 428, 0) SetWindowRgn Form1.hwnd, Rgn, True DeleteObject Rgn End Sub Private Sub Form_Load() CutForm End Sub Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Call ReleaseCapture Call SendMessage(Me.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&) End Sub Private Sub Label1_Click() End 'Автор: Никифоров Максим End Sub наверх Форма, реагирующая на события (min,max,close) Данный пример покажет, как можно запрограммировать действия на попытку свернуть или развернуть форму, нажатия на панель заголовка, или выбора системного меню. Добавьте дополнительный модуль в ваш проект. 'КОД ФОРМЫ Private Sub Form_Load() SetProc hWnd End Sub 'КОД МОДУЛЯ Option Explicit Private Declare Function CallWindowProcA Lib "user32" (ByVal lpPrevWndFunc As Long, ByVal lngHandle As Long, ByVal lngMsg As Long, ByVal lngFirstParam As Long, ByVal lngLastParam As Long) As Long Private Declare Function SetWindowLongA Lib "user32" (ByVal lngHandle As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private lngOldProc As Long Public Sub SetProc(ByVal lngHandle As Long) lngOldProc = SetWindowLongA(lngHandle, -4, AddressOf WinProc) End Sub Private Function WinProc(ByVal lngHandle As Long, ByVal lngMsg As Long, ByVal lngFirstParam As Long, ByVal lngLastParam As Long) As Long If lngMsg = &HA1 Then Select Case lngFirstParam Case 2 Form1.Caption = "Кто-то нажал на заголовке" Case 3 Form1.Caption = "Кому-то нужно системное меню формы" Case 8 Form1.Caption = "Зачем сворачивать форму?!" Case 9 Form1.Caption = "Кто-то хочет развернуть форму!" Case 20 Form1.Caption = "Зачем закрывать форму?!" End Select End If WinProc = CallWindowProcA(lngOldProc, lngHandle, lngMsg, lngFirstParam, lngLastParam) 'Автор примера Беляев Данила <outen@mail.ru> End Function наверх Получение всех параметров командной строки Простой пример, как можно получить все значения командной строки. Вам понадобится элемент CommandButton. Private Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineA" () As String Function ParamStr(index As Integer) As String Dim str As String Dim PStr() As String Dim i As Integer Dim c As Integer Dim openQ As Boolean str = GetCommandLine c = 0 ReDim PStr(c) For i = 1 To Len(str) PStr(c) = PStr(c) + Mid(str, i, 1) If Mid(str, i, 1) = Chr(34) And openQ = False Then openQ = True Else If Mid(str, i, 1) = Chr(34) And openQ = True Then openQ = False If Mid(str, i, 1) = " " And openQ = False Then c = c + 1 ReDim Preserve PStr(c) End If Next i If (index > c) Then ParamStr = "" Else ParamStr = deleteQ(PStr(index)) End Function 'эта функция удаляет кавычки из строки Function deleteQ(str As String) As String For i = 1 To Len(str) If Mid(str, i, 1) <> Chr(34) Then deleteQ = deleteQ + Mid(str, i, 1) Next i End Function Private Sub Command1_Click() MsgBox ParamStr(1) MsgBox ParamStr(2) MsgBox ParamStr(3) End Sub наверх Перекодировка текста: Rus-Lat Данный пример переводит текст, набранный в одной раскладке клавиатуры в другую. Например из Ghbdtn получить Привет. Private Function Replace_letters(InputStr As String) As String enStr = "@#$^&QWERTYUIOP{}ASDFGHJKL:" & Chr(34) & "ZXCVBNM<>?qwertyuiop[]asdfghjkl;'zxcvbnm,./" & Chr(34) & "№;:?ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,йцукенгшщзхъфывапролдэжячсмитьбю." rusStr = Chr(34) & "№;:?ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,йцукенгшщзхъфывапролджэячсмитьбю." & "@#$^&QWERTYUIOP{}ASDFGHJKL:" & Chr(34) & "ZXCVBNM<>?qwertyuiop[]asdfghjkl;'zxcvbnm,./" Dim i As Integer, pos As Integer, temp As String For i = 1 To Len(InputStr) temp = Mid$(InputStr, i, 1) pos = InStr(1, enStr, temp, vbBinaryCompare) If pos <> 0 Then Replace_letters = Replace_letters & Mid$(rusStr, pos, 1) Else Replace_letters = Replace_letters & temp End If Next i End Function Private Sub Form_Load() MsgBox Replace_letters("Dctv ghbdtn") End Sub наверх Мои программы BalloonMessage for MS Agent BalloonMessage for Microsoft Agent реализует диалог программы с
пользователем, используя при этом технологию Microsoft Agent. OCX реализует три
типа диалоговых окон: InputBox, MsgBox и MsgLabels. Автора: Шатрыкин Иван и Павел Сурменок. наверх Вопрос/Ответ Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы. Вопросы:Автор вопроса: SMM Ответ ожидается по этому адресу Добавляю в проект DataEnvironment, подключаю таблицу ия Access, соядаю под этой таблицей SQL (вс? средствами DE). Ставлю на форму DataGrid, подключаю к SQL. Внимание, вопрос: Как можно после добавления данных в таблицу, этот самый SQL обновить? (Добавляю в таблицу данные, а SQL до переяапуска программы обновляться не хочет!) Автор вопроса: Юрий Ответ ожидается по этому адресу Как получить полный объем жесткого диска и объем яагруженности жесткого диска. Автор вопроса: Мунгалов Андрей Ответ ожидается по этому адресу Помогите советом. Можно ли в 98 Виндовсе сделать так чтобы нельзя было установить ни одной программы. А то достали пользователи. И еще где то мне попадалась инфа, что можно сделать чтоб при выключении компа реестр не сохраняется. соответсвенно какие бы настройки не изменяли. после загрузки будет все по старому. Проблемма в классе с учениками. то шрифт поставят большой, то цвета черти какие, а любимое выставлять частоту которую монитор не поддерживает. Вобщем достало это дело. Может кто то с этим сталкивался. Автор вопроса: Alex Ответ ожидается по этому адресу Есть-ли универсальные способы яаполнения ListView и TreeView ия объекта типа recordset. Это может быть как код, так и контролы, но код лучше. Автор вопроса: Vir Ответ ожидается по этому адресу Как на форме нарисовать треугольник по 3 точкам, может быть с помощью API функции, важна скорость прорисовки! Автор вопроса: Denis Yesiev Ответ ожидается по этому адресу Тупой вопрос Открываю Notepad пишу туда число 20 Закрываю. Смотрю размер файла - 2 байта Делаю тоже самое в ВБ Dim FileNum As Integer Dim txt As Byte FileNum = FreeFile txt = 20 Open "c:\file.txt" For Output As FileNum Write #FileNum, txt Close #FileNum Смотрю размер 4 байта Мне необходимо создать именно 2 байтовый Пробовал через Binary Access - добавляются левые символы Помогите примером Автор вопроса: Dmitriy Alimov Ответ ожидается по этому адресу Подскажите как сохранить фаил .txt не вызывая диалога сохранения Автор вопроса: Spart Ответ ожидается по этому адресу Как сделать, чтобы RichTextBox скроллился автоматически? Автор вопроса: Михаил Ответ ожидается по этому адресу Как в VBA Excel импортировать формы, модули и листы в другую книгу( только в неё, а не во все )? Можно ли создать библиотеку собственных модулей и форм и пользоваться ей в других книгах? Автор вопроса: Роман Ответ ожидается по этому адресу Как подключить FileSystemObject? Какая библиотека за нее отвечает? Автор вопроса: Alexey Ответ ожидается по этому адресу Пожалуйста подскажите, как программным образом управлять полосой прокрутки в ListBoxe, скажем сдвинуть указатель на 25% вниз, при этом не касаясь содержимого самого ListBox-a и не снимая выделения, если выделено несколько записей? Автор вопроса: Alex Ответ ожидается по этому адресу Есть таблица Exel, состоящая из трех столбцов. Как на VBA написать макрос который умножает каждую ячейку первого столбца на соответствующую ячейку второго столбца, а результат заносит в соответствующую ячейку третьего столбца Автор вопроса: Костик Ответ ожидается по этому адресу Как найти число строк в Text1.Text? Как найти первое слово ия каждой стоки? Как польяоваться функцией Find в RichTextBox? Другими словами я соядал цикл: For i = 0 To [число строк в Text1.Text] RTFText1.Find [первое слово ия строки i] If [слово найдено] Then . . . End If Next i Всё что яаписанно в квадратных скобках, туда надо вписать правильный код. Да, и ещё, в Text1 текст записан вот так: чёрный, белый большой, малый . . . Автор вопроса: goodroman Ответ ожидается по этому адресу Здрасьте, мой вопрос про изображения. Короче у элемента ImageBox есть свойство Stretch, оно подгоняет картинку под размеры элемента, но когда переносишь это изображение в PictureBox, то размеры опять меняются. А мне надо, чтобы они остались такими какими были в ImageBox (Stretch=true). Я пробовал делать так: Загружаю картинку в ИмагеБокс и с помощью метода PaintPicture пытаюсь перенести её в ПикчерБокс в том же виде, но получается ещё большая фигня чем была. Последнее я делал так: Private Sub Command1_Click() Image1.Picture = LoadPicture(Text1.Text) Picture1.ScaleMode = 3 Picture1.PaintPicture Image1.Picture, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, _ 0, 0, Image1.Width, Image1.Height, vbSrcCopy End Sub Что здесь не так? Или как мне вообще перенести картинку из ImageBox (stretch=true) в PictureBox не потеряв размеров? Помогите пожайлуста, я уже просто в отчаянии, пробовал и через буфер, и через файл - никак не получается. Была надежда на метод PaintPicture и та провалилась. Как мне сделать так, как написано выше? Автор вопроса: Shade Ответ ожидается по этому адресу Вот вам товарищи программеры обломный вопрос - как вставлять модели 3DMax'а в VB6 программы и самое главное как ими потом управлять, если можно с примерами и по проще... А то вот собрался 3D елку к новому году зделать а как MAX'овские модели всавлять неизвестно :( P.S. кстати если кто хочет присоединится к моему проэкту всегда пожалуйста, несколько vb программеров работающих за одно - это сила :)) Автор вопроса: Denis Ответ ожидается по этому адресу В панели управления VB6 есть меню "Query" у меня постоянно задисейблено я так догадываюсь это для прямой работы с SQL сервером. хотелось бы узнать как и чего надо доустановить чтобы это меню подключить (SQL сервер установлен). И можно ли этим меню пользоваться для работы с Ораклом Автор вопроса: Саша Ответ ожидается по этому адресу Как с помощью VB ияменить скорость CD-ROM Автор вопроса: Серж Ответ ожидается по этому адресу В VB.NET появились такие понятия как сериалияация (яапись объекта в поток данных) и десериалияация (обратный процесс). Если я правильно понял можно объекты (структуры) передавать ия программы в программу по локальной сети!? Если кто-нибудь с этим вопросом сталкивался подскажите где вяять хоть какие-то примеры. Буду беямерно благодарен! Автор вопроса: Shade Ответ ожидается по этому адресу Впривет всем, не подскажет ли кто, как ставить на форму воидоусовские элементы по умолчанию, как например делает WinZip 8.1 - если его запустить в WinME то у него обычные кнопочки, а если его запустить под ХР то кнопки меняются на ХР'шные причем если поменять оформление рабочего стола (голубое / серебрянное / оливковое) то кнопки тоже меняются. Я что-то собневаюсь, что WinZip Computing (как они себя называют) переделала все контролы из ХР заново. Автор вопроса: Dr.Max Ответ ожидается по этому адресу Что такое Package & Deployment Wizard и нафиг это надо???? Автор вопроса: Demon Ответ ожидается по этому адресу Мне нужен код что бы сделать вывод на экран список имеющичся шрифтов, начертаний и размер вообщем как Word'е и чтобы был возможен поиск по первым буквам и все такое. И еще нужен код как в TextBoxe сделать так чтоб его собственая полоса прокрутки не оставалась на месте а шла вслед за текстом то есть опускалась вниз сама если это возможно. Автор вопроса: phis Ответ ожидается по этому адресу Есть ли у кого-нибудь библиотека Microsoft Data Bound Grid Control 5.0 или ссылка где её можно скачать. В VB6.0 у меня она отсутствует. Автор вопроса: raptor Ответ ожидается по этому адресу есть прога которая паботает с базой данных mbd. Переношу на другую машину, инсталлирую. При запуске пишет что не может найти поставщика данных. Для доступа к базе использую Microsoft Jet 3.51 OLE DB Provider(выбираю в свойствах элемента ADO Data). В литературе пишут что надо создать источник данных, т.е. файл с расширением mdl. Это не получилось. Тем не менее приложение работает на машине где есть VB. Win 2000 VB 6.0 Автор вопроса: malex Ответ ожидается по этому адресу Помогите! Кто-нибудь знает как сделать прогу, которая по нажатию на кнопку (Command1 например) удаляла бы все файлы из заданой папки? И еще. Кто-нибудь знает как сделать прогу при запуске которой по эрану бегала бы какая-нибудь зверюшка (может кто-нибудь видел овцу бегающую по экрану)? Автор вопроса: Роман Ответ ожидается по этому адресу Как пользоваться DLL? Желательно с примерами, но без ссылок. Автор вопроса: Ruslan Ответ ожидается по этому адресу Народ, подскажите, можно ли в VB 6 генерить явук на Пищалку с яаданной частотой (по аналогу Basic'a: sound x,x)? И как это сделать? Ответы: Вопрос: Пишу: private sub fff (optional option1 as byte) Print IsMissing(option1) end sub Не работает всегда говорит False а если пишу private sub fff (optional option1) Print IsMissing(option1) end sub Все работает правельно ! Кто янает почему ??? Ответ: Автор ответа: RealSoft Потому что IsMissing работает только для типа Variant. Во втором варианте процедуры private sub fff (optional option1) option1 - типа variant. А если нужен простой тип, то нужно использовать вместо IsMissing значение по умолчанию private sub fff (optional option1 as byte = 0) If option1 = 0 then Print "is missing" End If end sub Вопрос: Пишу: private sub fff (optional option1 as byte) Print IsMissing(option1) end sub Не работает всегда говорит False а если пишу private sub fff (optional option1) Print IsMissing(option1) end sub Все работает правельно ! Кто янает почему ??? Ответ: Автор ответа: P@Ssword Optional-переменная должна быть типа Variant. Тогда если при отладке в IDE навести на неё мышь, то в подсказке читаем: Option1=Missing. А если тип задан заранее, то переменной невозможно присвоить значение Missing. Вопрос: Пишу: private sub fff (optional option1 as byte) Print IsMissing(option1) end sub Не работает всегда говорит False а если пишу private sub fff (optional option1) Print IsMissing(option1) end sub Все работает правельно ! Кто янает почему ??? Ответ: Автор ответа: Vladimir Необязательные параметры в процедурах должны иметь тип Variant. И оператор IsMissing работает только с Variant, у которого есть значения Nothihg, Empty и подобные. Вопрос: Пишу: private sub fff (optional option1 as byte) Print IsMissing(option1) end sub Не работает всегда говорит False а если пишу private sub fff (optional option1) Print IsMissing(option1) end sub Все работает правельно ! Кто янает почему ??? Ответ: Автор ответа: ViTal Потому, что лишь в типе Variant имеется байт, отвечающий за Missing! Вопрос: Я пишу public sub aaaa(frm as form) .... .... end sub на первой строке выскакивает ошибка ! если я приминяю Private все работает нормально. Вопрос: Как передать Form при Public. ? Ответ: Автор ответа: ViTal Попробуй не через Form, а через Object. Вопрос: Подскажите как работать с FTP - сервером; тоесть вводить адресс, имя, пароль. Ответ: Автор ответа: -=CBK=-CRaSH Vir что ты там такое интерестное делаеш А Используй "microsoft internet transfer control"-MSINET.OCX. С ним можно делать че хош Вопрос: Имеется 2 звуковых файла... каждый из них представляет примерно такую стуктуру 1011100111 (1-сигнал, 0-пустота)...частота сигналов может быть разной, а вот пробелы между сигналами (0) всегда одинаковы. Требуется средствами VB сравнить эти два файла, причем сравнивать по пробелам между сигналами. P.S. Побайтовое сравнение не пойдет... т.к. частота сигналов разная, вся загвоздка во времени этих сигналов... Если у кого какие есть идеи (любые), шлите на мыло Ответ: Автор ответа: Andrew Isakov Где-то в старом журнале Байт я встречал интересный алгоритм поиска/сравнения строк. С использованием bit-матриц. Если интересно, найду статью, пришлю. Ссылку или отсканирую/распознаю. Вопрос: Подскажите где взять Function и Sub у WinInet ? Все кто хоть немного знает что-то шлите на email. Ответ: Автор ответа: Владимир Кирко Полнее чем в wininet.h, наверное не найти. (Если понимаете "сишный" синтаксис могу прислать.) Более удобный справочник для использования в VB можно пока ещё найти на http://www.allapi.net (API-GUIDE). Файл agsetup_ver3_7.exe 2313081-байт. Замечательный справочник с работающими примерами. Вот, например, первый десяток функций в этом справочнике из интересующего Вас dll: Declare Function DeleteUrlCacheEntry Lib "wininet.dll" Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long Declare Sub FindCloseUrlCache Lib "wininet.dll" (ByVal hEnumHandle As Long) Declare Function FindFirstUrlCacheEntry Lib "wininet.dll" Alias "FindFirstUrlCacheEntryA" (ByVal lpszUrlSearchPattern As String, ByVal lpFirstCacheEntryInfo As Long, ByRef lpdwFirstCacheEntryInfoBufferSize As Long) As Long Declare Function FindNextUrlCacheEntry Lib "wininet.dll" Alias "FindNextUrlCacheEntryA" (ByVal hEnumHandle As Long, ByVal lpNextCacheEntryInfo As Long, ByRef lpdwNextCacheEntryInfoBufferSize As Long) As Long Declare Function FtpCreateDirectory Lib "wininet.dll" Alias "FtpCreateDirectoryA" (ByVal hFtpSession As Long, ByVal lpszDirectory As String) As Boolean Declare Function FtpDeleteFile Lib "wininet.dll" Alias "FtpDeleteFileA" (ByVal hFtpSession As Long, ByVal lpszFileName As String) As Boolean Declare Function FtpFindFirstFile Lib "wininet.dll" Alias "FtpFindFirstFileA" (ByVal hFtpSession As Long, ByVal lpszSearchFile As String, lpFindFileData As WIN32_FIND_DATA, ByVal dwFlags As Long, ByVal dwContent As Long) As Long Declare Function FtpGetCurrentDirectory Lib "wininet.dll" Alias "FtpGetCurrentDirectoryA" (ByVal hFtpSession As Long, ByVal lpszCurrentDirectory As String, lpdwCurrentDirectory As Long) As Long Declare Function FtpGetFile Lib "wininet.dll" Alias "FtpGetFileA" (ByVal hConnect As Long, ByVal lpszRemoteFile As String, ByVal lpszNewFile As String, ByVal fFailIfExists As Long, ByVal dwFlagsAndAttributes As Long, ByVal dwFlags As Long, ByRef dwContext As Long) As Boolean Declare Function FtpPutFile Lib "wininet.dll" Alias "FtpPutFileA" (ByVal hConnect As Long, ByVal lpszLocalFile As String, ByVal lpszNewRemoteFile As String, ByVal dwFlags As Long, ByVal dwContext As Long) As Boolean Вопрос: Подскажите где взять Function и Sub у WinInet ? Все кто хоть немного знает что-то шлите на email. Ответ: Автор ответа: P@Ssword F2 не пробовал нажать? Вопрос: Работаю во всякого рода рекламных и публицистических газетах очень давно, собралось кучу разных скриптов и програмулек целая гора, пишу свои скрипты, базы данных и программы.... И вот в один прекрасный день задумал написать большую программу "идеальная газета", в которой есть все: верстка и учет рекламы, верстка и учет текстов, планирование верстки текстовых полос, сбор информации с новосных сайтов, кроссворды и сканворды, верстка тв программы, и т.д. Предполагаю все это сделать: хранение данных в ACCESS или MsSQL, оболочка в VB. Модули для Corel, InDesign, PageMaker, PhotoShop, Ventura 1:C Бухгалтерия, и т.д. Программа бесплатной не будет. Собираю команду. Все кто в ее войдет будут иметь право ее распространять. Если увас возникли какие либо мысли по этому поводу пишите. Пишите мне на адрес rdw@rdw.by Ответ: Автор ответа: PortAlex Могу оказать помощь в разработке в рамках Access и 1С. Опыт и там и там большой… Конкретно проясни ситуацию, или тех. задание… Вопрос: Работаю во всякого рода рекламных и публицистических газетах очень давно, собралось кучу разных скриптов и програмулек целая гора, пишу свои скрипты, базы данных и программы.... И вот в один прекрасный день задумал написать большую программу "идеальная газета", в которой есть все: верстка и учет рекламы, верстка и учет текстов, планирование верстки текстовых полос, сбор информации с новосных сайтов, кроссворды и сканворды, верстка тв программы, и т.д. Предполагаю все это сделать: хранение данных в ACCESS или MsSQL, оболочка в VB. Модули для Corel, InDesign, PageMaker, PhotoShop, Ventura 1:C Бухгалтерия, и т.д. Программа бесплатной не будет. Собираю команду. Все кто в ее войдет будут иметь право ее распространять. Если увас возникли какие либо мысли по этому поводу пишите. Пишите мне на адрес rdw@rdw.by Ответ: Автор ответа: Luza С удовольствием, помог бы вам в этом. Кстати базы лучше в MSAccess. Вопрос: В который раз вопрошаю как сделать DLL на VB так, чтобы С++ программы могли использовать функции DLL Ответ: Автор ответа: -=CBK=-CRaSH Блин. Сделай ты ActivXE и подключи его в С++. Вопрос: В который раз вопрошаю как сделать DLL на VB так, чтобы С++ программы могли использовать функции DLL Ответ: Автор ответа: Alexandrov Dmitry Делаешь ActiveX dll и используешь ее откуда хочешь! Вопрос: В который раз вопрошаю как сделать DLL на VB так, чтобы С++ программы могли использовать функции DLL Ответ: Автор ответа: ViTal Расшарь её! (проще говоря Instancing = GlobalMultiUse) Вопрос: Как сделать распечатку на принтр из txt файла? Ответ: Автор ответа: Реестр - Электроника самый элементарный вариант: Dim s As String Open "Txt.txt" For Output As #1 Do Line Input #1, s Printer.Print s Loop Until EOF(1) Close 1 Printer.EndDoc ..... если надо сложнее - напиши - поищу как это делается через API. Вопрос: Как сделать распечатку на принтр из txt файла? Ответ: Автор ответа: Gernovich Скопировать txt фаил на lpt устройство Вопрос: 1. Как прочитать название CD-привода, т.е. если зайти в "свойства системы" на закладку "Устройства" и открыть ноду "Устройства чтения компакт-дисков" - то там сразу видно название устройста (ASUS CDS360 ..., Teac ... и т. д.). А вот как енто програмно прочитать ?????? 2. Народ, дайте ПРЯМУЮ ссылку на программу Fusion (прога внедрения ядра в ЕХЕ-шник), а то я пытался найти через поисковики и там столько мусора попадалось ... так и не откопал нормальную. Ответ: Автор ответа: Shade http://wasm.ru/tools/8/fusionv3.exe Вопрос: 1. Как прочитать название CD-привода, т.е. если зайти в "свойства системы" на закладку "Устройства" и открыть ноду "Устройства чтения компакт-дисков" - то там сразу видно название устройста (ASUS CDS360 ..., Teac ... и т. д.). А вот как енто програмно прочитать ?????? 2. Народ, дайте ПРЯМУЮ ссылку на программу Fusion (прога внедрения ядра в ЕХЕ-шник), а то я пытался найти через поисковики и там столько мусора попадалось ... так и не откопал нормальную. Ответ: Автор ответа: -=CBK=-CRaSH Прямую ссылку я тебе сказать не смогу но произвадитель этой программы http://www.bit-arts.com/. Качай версию 1.0 я тебе кряк для нее пошлю Вопрос: 1. Как прочитать название CD-привода, т.е. если зайти в "свойства системы" на закладку "Устройства" и открыть ноду "Устройства чтения компакт-дисков" - то там сразу видно название устройста (ASUS CDS360 ..., Teac ... и т. д.). А вот как енто програмно прочитать ?????? 2. Народ, дайте ПРЯМУЮ ссылку на программу Fusion (прога внедрения ядра в ЕХЕ-шник), а то я пытался найти через поисковики и там столько мусора попадалось ... так и не откопал нормальную. Ответ: Автор ответа: RomanBor вопервых Fusion не запихывает в екзешник все а только создает самараскручивающийся архив... который при запуске распаковывает все Dll и OCx по местам тоясть в System и т.д. а потом просто запускается екзешник но если очень надо есть у мня вроде 3 версия этой шняги.. но кряка нет... если надо пиши пришлю... Вопрос: 1. Как прочитать название CD-привода, т.е. если зайти в "свойства системы" на закладку "Устройства" и открыть ноду "Устройства чтения компакт-дисков" - то там сразу видно название устройста (ASUS CDS360 ..., Teac ... и т. д.). А вот как енто програмно прочитать ?????? 2. Народ, дайте ПРЯМУЮ ссылку на программу Fusion (прога внедрения ядра в ЕХЕ-шник), а то я пытался найти через поисковики и там столько мусора попадалось ... так и не откопал нормальную. Ответ: Автор ответа: Tushkin Могу на мыла скинуть триал пиши - tushkin@dsnews.com.ua Вопрос: Есть код Dim vData As Variant vData = Me.Inet1.OpenURL("http://vbstreets.ru/bookstore/20.gif", icByteArray)' подклучаем библиотеку Internet Transfer control Open "C:\pic.gif" For Output As #1 Print #1, , vData Close #1 Но ,как вы уже поняли,он не работает.точнее работает ,но "недорабатывает". Код должен сохранить рисунок ,он его сохраняет ,но рисунка -то нет! Тоже самое при попытке сохранить веб страницу . т. е. файл есть ,но пустой! Придательский красный крестик и всё!!! Мне кажется ,что проблема не в открытии файла,а в его сохранении. Помогите!!!!!!!!!! Ответ: Автор ответа: -=CBK=-CRaSH Я знаю только как загрузить сайт Dim txt As String Dim b() As Byte On Error GoTo ErrorHandler b() = Inet1.OpenURL(URL.Text, 1) txt = "" For t = 0 To UBound(b) - 1 txt = txt + Chr(b(t)) Next RichTextBox1.Text = txt Exit Sub ErrorHandler: MsgBox "ТЫ че внатуре", vbCritical Exit Sub End Sub Вопрос: Есть код Dim vData As Variant vData = Me.Inet1.OpenURL("http://vbstreets.ru/bookstore/20.gif", icByteArray)' подклучаем библиотеку Internet Transfer control Open "C:\pic.gif" For Output As #1 Print #1, , vData Close #1 Но ,как вы уже поняли,он не работает.точнее работает ,но "недорабатывает". Код должен сохранить рисунок ,он его сохраняет ,но рисунка -то нет! Тоже самое при попытке сохранить веб страницу . т. е. файл есть ,но пустой! Придательский красный крестик и всё!!! Мне кажется ,что проблема не в открытии файла,а в его сохранении. Помогите!!!!!!!!!! Ответ: Автор ответа: ViTal Вот так работает: Dim vImage() As Byte vImage = Me.Inet1.OpenURL("http://vbstreets.ru/bookstore/20.gif", icByteArray) Open "C:\pic.gif" For Binary Access Write As #1 Put #1, , vImage() Close #1 Вопрос: Есть код Dim vData As Variant vData = Me.Inet1.OpenURL("http://vbstreets.ru/bookstore/20.gif", icByteArray)' подклучаем библиотеку Internet Transfer control Open "C:\pic.gif" For Output As #1 Print #1, , vData Close #1 Но ,как вы уже поняли,он не работает.точнее работает ,но "недорабатывает". Код должен сохранить рисунок ,он его сохраняет ,но рисунка -то нет! Тоже самое при попытке сохранить веб страницу . т. е. файл есть ,но пустой! Придательский красный крестик и всё!!! Мне кажется ,что проблема не в открытии файла,а в его сохранении. Помогите!!!!!!!!!! Ответ: Автор ответа: Luza На твой вопрос: Попробуй сохранять в файле, открыв его не как OUTPUT, а как BINARY. Вопрос: Есть код Dim vData As Variant vData = Me.Inet1.OpenURL("http://vbstreets.ru/bookstore/20.gif", icByteArray)' подклучаем библиотеку Internet Transfer control Open "C:\pic.gif" For Output As #1 Print #1, , vData Close #1 Но ,как вы уже поняли,он не работает.точнее работает ,но "недорабатывает". Код должен сохранить рисунок ,он его сохраняет ,но рисунка -то нет! Тоже самое при попытке сохранить веб страницу . т. е. файл есть ,но пустой! Придательский красный крестик и всё!!! Мне кажется ,что проблема не в открытии файла,а в его сохранении. Помогите!!!!!!!!!! Ответ: Автор ответа: Tibor Вот тебе вырезка из 55-го выпуска рассылки: Как сохранить содержимое web-страницы на диск Расположите на форме элемент Inet (меню Project|Components - Microsoft Internet Transfer Control 6.0). 'Вариант 1 'Расположите на форме элемент Inet (меню Project|Components - Microsoft Internet Transfer Control 6.0). Private Sub Form_Load() Dim b() As Byte 'установить протокол HTTP Inet1.Protocol = icHTTP 'установить скачиваемый адрес Inet1.URL = "http://www.microsoft.com" 'загрузить данные HTML-страницы в массив b() = Inet1.OpenURL(Inet1.URL, icByteArray) 'создать файл на диске и записать в него информацию Open "c:\test.htm" For Binary Access Write As #1 Put #1, , b() Close #1 End Sub 'Вариант 2 'Расположите на форме элемент CommandButton. Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long Public Function DownloadFile(URL As String, LocalFilename As String) As Boolean Dim lngRetVal As Long lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0) If lngRetVal = 0 Then DownloadFile = True End Function Private Sub Command1_Click() DownloadFile "http://sharig.webzone.ru", "c:\sharig_webzone_ru.htm" End Sub 'Вариант 3 'Расположите на форме элемент CommandButton. Данный пример только загрузить данные со страницы в элемент TextBox. А здесь вы можете узнать, как сохранить содержимое TextBox'а в файл. Private Sub Command1_Click() On Error GoTo handle Text1.Text = Inet1.OpenURL(Text2.Text, icString) Exit Sub handle: MsgBox "Error " & Err.Description End Sub Вопрос: Вопрос по VBA (WORD). Нужна функция окна диалога для открытия папки (не файла!). Внимание! API функция - не работает, на то есть причины. Ответ: Автор ответа: Vladimir Для Office 2000, 2002. Для других не знаю, может и подойдет. Public Sub PathOpen() Dim dlg As FileDialog Dim strPath Set dlg = Application.FileDialog(FileDialogType:=4) dlg.Show For Each strPath In dlg.SelectedItems MsgBox strPath Next strPath End Sub Вопрос: Возможно ли средствами VB докачивать какой-либо файл, т.е. качаем...связь обрывается...перезваниваем...докачиваем... Если можно, напишите как! Ответ: Автор ответа: P@Ssword А ты чем качаешь-то? Если FlashGet-ом, то ему и VB не нужен:) Вопрос: На Вашем сайте нашел интересные советы по ВБ. Не будете ли Вы так любезны ответить новичку еще на несколько вопросов.Не очень сложно , чтобы я понял. 1.Могу ли я из своего ВБ 6 открыть какой-либо документ из моего компьютора или более конкретно - окно для связи с Интернетом и нажать кнопку подключения и тд .2.Из ВБ 6 можно говорят заблокировать любое окно виндоус. А если кто-то заблокировал окно / к примеру настройку часов в компьютере и тп / , можно ли взломать этот запрет , ведь его коды мне не видны.и я не знаю даже с помощью какой программы и языка это заблокировано 3.Я нашел маленькую програмку для ВБ, которая позволяет увидеть данные за звездочками .Я ее коды скопировал, заустил ,запаролил данные в текстовом окне своей ВБ-формы и действительно звездочки открываются. Но вот что я не понял: ведь она работает когда пароль размещен на моей ВБ-форме, А как же быть если скрытые данные расположены в другом месте 4.У меня на вэб-странице есть ВБ 6-форма с окном Text, в который можно вписывать текст / типа гостевой книги/ .Можно ли с помощью кода в моей ВБ-форме сделать чтобы этот текст добавлялся в мою форму на сервере, чтобы при новом открытии страницы этот текст сохранялся 5.Я вставляю в пикче-бокс флэш-анимацию, а она в нем не движется Ответ: Автор ответа: Tibor 5: А он и не будет её воспроизводить. А вот такой контрол как "Shockwave Flash" будет :) Вопрос: Чтотакое ping (пинг) и что яначит запинговать? Ответ: Автор ответа: Ревягин_Алексей ping - это проверка есть ли в сети хост с указанным IP Вопрос: Чтотакое ping (пинг) и что яначит запинговать? Ответ: Автор ответа: Мунгалов Андрей Ping если в двух словах то это проверка связи с определенным компом в сети. либо в локалке либо в инете. можно задавать как Ping имя компа или Ping IPадрес. после этого твой комп пытается обменятся пакетами по умолчанию 4 раза. и затем выводит информацию сколько отправил, сколько пришло, за какое время. Вопрос: Чтотакое ping (пинг) и что яначит запинговать? Ответ: Автор ответа: Владимир Кирко Команда ето такая. (Существует, практически, во всех операционных системах). Очень часто используется просто для проверки связи к каким-либо узлом (хотя выдаёт и более содержательную информацию). Вот что про неё говорит Help. (Вообще-то Вы и сами могли бы это проделать: щёлкаете мышом по пустому месту рабочего стола, потом жмёте клавишу F1, потом в поиске набираете ping.) Ping Проверка соединения с удаленным компьютером или компьютерами. Эта команда доступна только после установки поддержки протокола TCP/IP. ping [-t] [-a] [-n счетчик] [-l длина] [-f] [-i ttl] [-v тип] [-r счетчик] [-s число] [[-j список_комп] | [-k список_комп]] [-w интервал] список_назн Параметры -t Повторяет запросы к удаленному компьютеру, пока не программа будет остановлена. -a Разрешает имя компьютера в адрес. -n счетчик Передается число пакетов ECHO, заданное параметром счетчик. По умолчанию — 4. -l длина Отправляются пакеты типа ECHO, содержащие порцию данных заданной длины. По умолчанию — 32 байта, максимум — 65527. -f Отправляет пакеты с флагом запрещения фрагментации (Do not Fragment). Пакеты не будут разрываться при прохождении шлюзов на своем маршруте. -i ttl Устанавливает поле времени жизни пакетов TTL (Time To Live). -v тип Устанавливает поле типа службы (Type Of Service) пакетов. -r счетчик Записывает маршрут отправленных и возвращенных пакетов в поле записи маршрута Record Route. Параметр счетчик задает число компьютеров в интервале от 1 до 9. -s число Задает число ретрансляций на маршруте, где будет делаться отметка времени. -j список_комп Направляет пакеты по маршруту, задаваемому параметром список_комп. Компьютеры в списке могут быть разделены промежуточными шлюзами (свободная маршрутизация). Максимальное количество, разрешаемое протоколом IP, равно 9. -k список_комп Направляет пакеты по маршруту, задаваемому параметром список_комп. Компьютеры в списке не могут быть разделены промежуточными шлюзами (ограниченная маршрутизация). Максимальное количество, разрешаемое протоколом IP, равно 9. -w интервал Указывает промежуток времени ожидания (в миллисекундах). список_назн Указывает список компьютеров, которым направляются запросы. Можете заполнить эту форму, либо отослать вопрос СЮДА Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта. |
|||||||||||||||
Выпуск подготовили: |
Сурменок Павел |