VBNet
VBMania
Голосование: Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты. Subscribe.Ru увеличило максимальный размер рассылки до 100 кб. В связи с этим вопрос: Какого размера Вы хотели бы получать рассылку? В какой день (дни) недели Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."? С какой периодичностью Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."? Результаты голосования Доска почёта: Sergey Y. Tkachev Кононенко Роман Kirill Sergey Sapozhnikov Sobic Ссылки: |
Несколько слов от автора:
Внимание!!! Сайты VBСтудия и VBLine объединились. 14 января был открыт сайт VBNet. Появился удобный форум, транслируемый на других VB сайтах. Обязательно зайдите!
Читайте! Содержание выпуска
Citycat by Email Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое. Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru. наверх Новости сайта VBNet
наверх Новости сайта VBMania
наверх Новости сайта Азбука VB
наверх Определение типа рисунка и его размеров По материалам сайта VBcode.FAQ Данный пример позволяет узнать такие параметры файла рисунка в формате GIF или JPG как: тип картинки, размер по ширине и размер по высоте Private Type ThePicInfo Type As String Width As Long Height As Long End Type Private Function CheckPicSpecs(TheFile) As ThePicInfo Dim TheContent, TheImageInfo As ThePicInfo, TheVar, TheFreeFile TheFreeFile = FreeFile Open TheFile For Binary As TheFreeFile TheContent = Input(10, TheFreeFile) Close TheFreeFile If Mid(TheContent, 7, 4) = "JFIF" Then TheImageInfo.Type = "JPG" Open TheFile For Binary As TheFreeFile TheContent = Input(167, TheFreeFile) Close TheFreeFile TheImageInfo.Height = Asc(Mid(TheContent, 165, 1)) + 256 * Asc(Mid(TheContent, 164, 1)) TheImageInfo.Width = Asc(Mid(TheContent, 167, 1)) + 256 * Asc(Mid(TheContent, 166, 1)) End If If Mid(TheContent, 1, 3) = "GIF" Then TheImageInfo.Type = "GIF" TheImageInfo.Width = Asc(Mid(TheContent, 7, 1)) + 256 * Asc(Mid(TheContent, 8, 1)) TheImageInfo.Height = Asc(Mid(TheContent, 9, 1)) + 256 * Asc(Mid(TheContent, 10, 1)) End If CheckPicSpecs = TheImageInfo End Function Private Sub Command1_Click() Dim a As ThePicInfo 'в качестве параметра функции CheckPicSpecs установите путь к вашей картинке a = CheckPicSpecs("D:\garbage\way2house.gif") MsgBox a.Type MsgBox a.Width MsgBox a.Height End Sub наверх Пример, как можно вытащить все иконки из файла и нарисовать их на форме По материалам сайта VBcode.FAQ Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hicon As Long) As Long Private Declare Function DestroyIcon Lib "user32" (ByVal hicon As Long) As Long Dim hicon As Long Dim rval As Long Dim index As Long Private Sub Command1_Click() Form1.WindowState = vbMaximized Form1.Cls Dim i Dim x, y y = 0 x = -10 For i = 0 To 100 If i / 10 = Int(i / 10) Then y = y + 40 x = x + 10 End If 'далее должна быть правильно указана директория Windows hicon = ExtractIcon(App.hInstance, "C:\WIN\SYSTEM\SHELL32.DLL", i) rval = DrawIcon(Form1.hdc, (i - x) * 40, y, hicon) rval = DestroyIcon(hicon) Next End Sub наверх Получить список запущенных приложений По материалам сайта VBcode.FAQ Расположите на форме элемент CommandButton и элемент ListBox. Const TH32CS_SNAPPROCESS As Long = 2& Const MAX_PATH As Integer = 260 Private Type PROCESSENTRY32 dwSize As Long cntUsage As Long th32ProcessID As Long th32DefaultHeapID As Long th32ModuleID As Long cntThreads As Long th32ParentProcessID As Long pcPriClassBase As Long dwFlags As Long szExeFile As String * MAX_PATH End Type Private Declare Function CreateToolhelpSnapshot Lib "Kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long Private Declare Function ProcessFirst Lib "Kernel32" Alias "Process32First" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long Private Declare Function ProcessNext Lib "Kernel32" Alias "Process32Next" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long Private Declare Sub CloseHandle Lib "Kernel32" (ByVal hPass As Long) Private Sub Command1_Click() List1.Clear Dim hSnapShot As Long Dim uProcess As PROCESSENTRY32 Dim r As Long hSnapShot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0&) If hSnapShot = 0 Then Exit Sub End If uProcess.dwSize = Len(uProcess) r = ProcessFirst(hSnapShot, uProcess) Do While r List1.AddItem uProcess.szExeFile r = ProcessNext(hSnapShot, uProcess) Loop Call CloseHandle(hSnapShot) End Sub наверх ASP: Короткий оператор If Информация взята с сайта prosto.pp.ru Конструкция If Then при частом выполнении простых выборов значений в коде программы делает текст растянутым, а следовательно плохо читаемым. Для повышения наглядности кода можно применить следующую функцию: ' Короткий опереатор If ' Value1 - Первое значение для сравнения ' Value2 - Второе значение для сравнения ' sTrue - Строка возврата при равенстве ' sFalse - Строка возврата при неравенстве Function IfThen(Value1,Value2,sTrue,sFalse) If Trim(Value1)=Trim(Value2) Then IfThen=sTrue Else IfThen=sFalse End Function Пример применения. Dim n,aValue(10) aValue(0)=... ... aValue(3)="Value3" ... aValue(9)=... <SELECT> <%For n=0 To 9%> <OPTION VALUE="<%=aValue(n)%>" <%=IfThen(aValue(n),"Value3","SELECTED","")%>><%=aValue(n)%></OPTION> <%NEXT%< </SELECT> Кстати, не все знакомы со следующей формой записи оператора сравнения: Dim sA,sB,b sA="Value1" sB="Value2" b=(sA=sB) ' False sB=sA b=(sA=sB) ' True If (sA=sB)=True Then ... ' Тоже рабочий вариант наверх Как сделать кнопку закрытия окна недоступной Все, наверное, видели окна с недоступной кнопкой закрытия окна. А как это сделать? Все не так уж и сложно, если обратиться к Windows API. К сожалению автор этого кода мне неизвестен, поэтому все "шишки" мне shatrykin@mail.ru. Нам потребуются всего две константы и четыре функции: Const MF_BYPOSITION = &H400 А вот, собственно, и процедура, которая все сделает. Public Sub Disable_Close(Form_hWnd As Long) Ну вот, а Вы боялись! ;-) Недавно появилось некоторое изменение для такого кода. Alex Murygin пишет, что этот код в некоторых ситуациях работает не совсем корректно и предлагает другое решение проблемы:
Private Declare Function GetMenuItemCount Lib "user32"
(ByVal hMenu As Long) As Long Книги
Остальные книги о VB из магазина Колибри можно найти здесь. наверх Анонсы эхо-конференций СообЧа Игры
Работа, работа, работа — документы, базы, отчеты…
Ну все пора расслабиться: работа не волк — в лес
не убежит! Представь себе, у нас есть группа,
которая поможет тебе скрасить тяжелые рабочие
будни — мы помогаем друг другу играть!!!
Обсуждаем все вопросы, которые только могут
появиться у любителя игр: к примеру, как
поиграть в StarCraft по сети или как написать
свой конфиг к QUAKE III, и обсудим еще
многое-многое-многое… Новости, ссылки на демки,
патчи, обзоры и прохождение игр — все это
у нас есть! Есть вопросы — ответим, есть
новенький секрет — расскажем! Ну, а если
ты супер-геймер, сам бог тебе велел быть с нами! Подписаться Шифрование
Встречались ли вы в своей жизни с компьютерными
пиратами? Одной из сфер их деятельности является
перехват любой информации во время ее пересылки
в просторах сети и воровство данных прямо с
вашего компьютера. Даже если хакеру и удастся
завладеть секретными данными — каково же будет
его разочарование, когда он не сможет их прочесть!
Давайте же поговорим о шифровании данных с помощью
PGP и других алгоритмов... Подписаться Все о Linux
Конференция, посвященная ОС Linux, которую
имеете или будете иметь вы, а не она вас.
Чем больше будет задано вопросов, тем больше
будет получено ответов. Количество как известно
перерастает в качество... И что приятно, ответы
не канут в лету, их всегда можно будет найти в
архиве нашей группы... Добро пожаловать! Подписаться Всё, что связано с пакетом программ MS Office.
Вы хотели создать красивый документ в Word, но
не знаете как форматировать текст? Или же в
Excel вам нужно создать сложнейший и, в тоже
время, красивый отчет, содержащий тысячи цифр,
и вам не хватает для этого возможностей программы?
Вам нужно создать базу данных в Access и по ней
составлять отчеты или вы не знаете как послать
письмо из Oulook? Всё это - от основ форматирования
текста до сложнейших работ в таких программах,
как MS Access и MS Publisher, - вы можете узнать
в нашей группе Soobcha_Office. Подписаться Мощь и красота С++
С++ является одним из самых гибких языков
программирования. Сочетание низкоуровневых и
высокоуровневых средств делает его сильным
инструментом в руках программиста. Данная
группа призвана помочь программирующим на Си и
просто их сблизить. Давайте будем решать
проблемы вместе!!! Подписаться наверх Доска объявлений Ищу телеработу.
наверх Мои программы BalloonMessage for MS Agent BalloonMessage for Microsoft Agent реализует диалог программы с
пользователем, используя при этом технологию Microsoft Agent. OCX реализует три
типа диалоговых окон: InputBox, MsgBox и MsgLabels. Автор: Шатрыкин Иван. Соавтор: Павел Сурменок. наверх Вопрос/Ответ Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы. Вопросы:Автор вопроса: Алексей Ответ ожидается по этому адресу Как можно при вызове моей программы получить аргументы из командной строки? Автор вопроса: Дмитрий Ответ ожидается по этому адресу Может ли кто подскаяать, как раявернуть картинку *.bmp или *.jpg ия поля OLE объекта в таблице баяы *.mdb(LONGBINARY) в image, бея испольяования OLE контейнера(картинка была вставлена в это поле черея OLE контейнер). Интересен также и обратный процесс: как свернуть картинку в это поле так чтобы содержимое поля было совместимо с OLE контейнером. Автор вопроса: Константин Ответ ожидается по этому адресу Вопрос по VB-6, как мне вставить объект OLE Automation на Rich Textbox(Форматированный текстовый блок). Автор вопроса: Андрей Ответ ожидается по этому адресу Скжите как в VB-5 cделать так, чтоб например при нажатии на клавишу Enter, курсор переходил из отного окна TextBox в другое? Автор вопроса: Андрей Ответ ожидается по этому адресу Подскажите пожалуйста как в VBA, открыть нужный текстовой файл, и данные фала отобразить в TextBox? Автор вопроса: Сергей Ответ ожидается по этому адресу Как сформировать popup menu? Автор вопроса: Islentyev Dmitri Ответ ожидается по этому адресу Можно ли в принципе на VB писать DLL с экспортируемыми функциями? Если да, то КАК????? Может есть в VB какой-то спецификатор импорта, типа _declspec(dllexport) ? Автор вопроса: Cheremisinov Ответ ожидается по этому адресу Кто знает как вставить новую строку в ADODB.RecordSet, открытый как adCmdTableDirect, если там( в table) есть поле IDENTITY(счетчик) и в него надо вставить свое значение. При вызове .addnew и присвоении этому полю значения - он ругается. Автор вопроса: Проскурин Ответ ожидается по этому адресу Я работаю над созданием программы на VB 6.0. Как сделать так, чтобы текст из текстового файла копировался в буфер обмена ? Автор вопроса: Владимир Ответ ожидается по этому адресу 1.Как из базы данных на основе Excel осуществлять поиск в VB автоподстановкой? 2.Тот же самый поиск по ближайшим значениям(т.е. даны 100,200,300... введено 187 ;ответ- 100,200 3.Как производить вычисления в той же форме? скажем перемножить индексы в трех полях? Автор вопроса: Vladimir Ivanov Ответ ожидается по этому адресу Нужно вставить таймер в Excel , т.е. чтобы через нужное время вызывалась определенная процедура VBA (типа автосохранения). Автор вопроса: Evgeniy Ответ ожидается по этому адресу Подскажите пожалуйста, как сделать закачку файла на FTP с progressbar. Ответы: Вопрос: Подскажите, пожалуйста, как сделать так, что бы событие возникало при нажатие трех клавиш. Например: shift+ctrl+m. Ответ: Автор ответа: Sergey Y. Tkachev Обработайте событие Form_KeyDown формы, предварительно установив свойство KeyPreview этой формы в True. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) По поводу параметра Shift MSDN говорит следующее: An integer that corresponds to the state of the SHIFT, CTRL, and ALT keys at the time of the event. The shift argument is a bit field with the least-significant bits corresponding to the SHIFT key (bit 0), the CTRL key (bit 1), and the ALT key (bit 2 ). These bits correspond to the values 1, 2, and 4, respectively. Some, all, or none of the bits can be set, indicating that some, all, or none of the keys are pressed. For example, if both CTRL and ALT are pressed, the value of shift is 6. Ну а KeyCode - это код нажатой клавиши Например: shift+ctrl+m. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If Shift = 3 And KeyCode = vbKeyM Then Do_MySub End Sub Вопрос: Подскажите, пожалуйста, как сделать так, что бы событие возникало при нажатие трех клавиш. Например: shift+ctrl+m. Ответ: Автор ответа: Vamp Создаешь процедуру MouseDown( мышь ) или KeyDown( клава ) для нужного объекта Например для формы ( свойство формы "KeyPreview" должно быть "True" ) : Мышь : Sub Form_MouseDown (Button As Integer, Shift As Integer, x As Single, y As Single) ' Button это код нажатой на мышке клавиши ' 1 - левая кнопка ' 2 - правая кнопка ' 4 - средняя кнопка ' Shift это код нажатой на клавиатуре клавиши ' 1 - Shift ' 2 - Ctrl ' 4 - Alt If Button = 2 And Shift = 6 Then frmAbout.Show vbModal ' Если над формой нажать правую мышки , Ctrl и Alt ( 2+4=6), то откроется форма End sub Клава : Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) ' KeyCode это код нажатой клавиши ' vbKeyF1 - "F1" ' vbKeyF2 - "F2" ' vbKeyM - "M" ' vbKeyX - "X" ' и так далее ' Shift это код нажатой на клавиатуре клавиши ' 1 - Shift ' 2 - Ctrl ' 4 - Alt If KeyCode= vbKeyM And Shift = 6 Then frmAbout.Show vbModal " Если над формой нажать "M" , Ctrl и Alt ( 2+4=6), то откроется форма End Sub Вопрос: Скажите, пожалуйста, у меня есть основная форма, как мне по нажатию какой-нибудь функциональной клавиши (например F3) запускалась другая форма? Ответ: Автор ответа: Sergey Y. Tkachev Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyF3 Then NewForm.Show End Sub Вопрос: У меня вот что за проблема: я написал программу (в VB6, когда её запускаещь, она работает превосходно). После её компиляции и запуске при нажатии на кнопку "Открыть" (должно вызваться стандартное окно открытия Windows), она выдаёт ошибку: "Run-time error "401". Can't show non-madal form when modal form is displeyed." И дальше перестаёт работать. Ответ: Автор ответа: Sergey Y. Tkachev Что-то я не заню, что это такое: стандартное окно открытия "виндомс". Это окно, из которого "виндомс" открывается? :) Может, это диалог OpenFile? Ну, а насчет вопроса, Действительно, никогда не откроешь немодальное окно (все равно что), если открыто модальное. Так что, придется открывать как модальное Вопрос: Пользователь в поля вбивает координаты и размеры заготовок (досок толщ. 16 мм.) а прога должна их показать в два и трухмерном пространстве (выполнить так сказать чертеж и распечатать). Вот не знаю как сделать (проще). Мои варианты: создать свой трех движок, найти чужой, подключать МАХ, остыть и заняться чем нибудь другим - ). Можете что посоветовать? Ответ: Автор ответа: Vadim Kotryaga Еще вариант: использовать MSGraph-диаграмму, это смотря какую картинку тебе надо. Вопрос: Моё почтение! Ввиду моего дилетанства ,заранее приношу извинения за возможные некорректные формулировки аспектов вопроса. Ситуация. Моё приложение на VB 6 использует файл Access 2000. В полях таблицы этого файла,имеющих тип Text ,я без проблем пишу по-русски (весь "офис" у меня с русской поддержкой). Но при "вытаскивании" содержимого этих полей в TextBox-ы приложения ,получаю лишь набор ????? и т.д. На машине у меня 98-й windows(английский). Помогите ,пожалуйста, разобраться в причине проблемы.По-возможности, пример разрешения подобной ситуации, Ответ: Автор ответа: Vadim Kotryaga Возможно, в проге VB в TextBox используется не русский шрифт. Поменяй например на Arial CYR. Вопрос: Не могу толком разобраться с построением отчетов мне нужно вот такую штуку. вывести данные в несколько столбцов причем заранее кол-во столбцов неизвестно. Подробней: Есть расписание уроков по дням допустим на 20 групп. они выводятся так,одна группа один столбец. при выводе пользователь отмечает какие группы нужно выводить на принтер, а какие нет. Я пробовал но выводятся все сразу группы. как на лету управлять непонятно ?! Ответ: Автор ответа: Vadim Kotryaga Если все описанное происходит в MS Acceess, то стоит воспользоваться сводной таблицей как источником для отчета. Можете заполнить эту форму, либо отослать вопрос СЮДА Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта. |
||||||||||||||||||||||||||||||||
Выпуск подготовили: |
Сурменок Павел |