VB Студия
VB Line
Голосование:
Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.
В какой день (дни) недели Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."?
С какой периодичностью Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."?
Результаты голосования
Доска почёта:
Sergey Y. Tkachev
Кононенко Роман
Sergey Sapozhnikov
Sobic
Ссылки:
Улицы VB
Использование VB
VB Line
Азбука VB
VB на русском
Улицы VB
VB - шаг за шагом
Кирпичики VB
CообЧа VB
VB - мания
VB по русски
Snoozex Design
|
Несколько слов от автора:
Наверное Вы уже успели заметил, что вырос размер рубрики "Вопрос/Ответ" из-за того, что не на все вопросы есть ответы. Теперь в рассылке будут публиковаться вопросы и ответы только за последние 7 дней (со времени выхода предыдущего выпуска).
Добавились два новых раздела. Первый раздел с книгами о VB от магазина "Колибри". Внимание! Если Вы купите книгу по ссылке из этой рассылки, то получите скидку в размере 5% от стоимости книги!
Во втором новом разделе будут публиковаться анонсы эхо-конференций проекта СообЧа.
Читайте!
Содержание выпуска
Новости сайта VB Студия
- 26 октября 2001 года - В разделе Статьи появилась статья "Взаимодействие ADO Data Control и DataGrid ActiveX Control".
Два новых примера в разделе Примеры
Вышел тринадцатый выпуск рассылки
- 19 октября 2001 года - Пополнение в Хитростях. Добавлено 4 хитрости.
Давненько не обновлял раздел Windows Api. Сегодня добавил десяток описаний функций в этот раздел.
В библиотеке кодов один новый код.
В примерах тоже пополнение.
И напоследок - добавлена статья Классы в Visual Basic.
наверх
Новости сайта VB Line
21 октября 2001 г. Новый
сайт про ЭТО Технологии Программирования -
Visual Basic, обязательно загляните. Для новичков в разделе Примеры как сделать калькулятор. В Советах можно узнать как открывается
CD-ROM. В ActiveX очень хороший контрол для
работы с анимационными GIF.
15 октября 2001 г.
Здравствуйте, любители Visual Basic! Сегодня совсем мало обновлений. В Примерах можно посмотреть
интересный пример: как
сохранить картинку в формате GIF и загрузка файлов с FTP
сервера. Мало? Сам знаю, что мало, но ничего не поделаешь, нет времени.
наверх
Как закрыть чужое приложение?
cmdClose - CommandButton
Text1 - TextBox Содержит название окна.
Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Declare Function PostMessage Lib "user32" Alias _
"PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long
Public Const WM_CLOSE = &H10
Private Sub cmdClose_Click()
Dim winHwnd As Long
Dim RetVal As Long
winHwnd = FindWindow(vbNullString, Text1.Text)
Debug.Print winHwnd
If winHwnd <> 0 Then
RetVal = PostMessage(winHwnd, WM_CLOSE, 0&, 0&)
If RetVal = 0 Then
MsgBox "Ошибка."
End If
Else
MsgBox Text1.Text + " не открыт."
End If
End Sub
наверх
Как определить, открыта ли программа?
Option Explicit
Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Public Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Const STILL_ACTIVE = 259
Const PROCESS_QUERY_INFORMATION = 1024
Public hProg As Long
Function IsRunning(idProg As Long) As Boolean
Dim hProc As Long, iRet As Long
hProc = OpenProcess(PROCESS_QUERY_INFORMATION, False, idProg)
If hProc <> vbNull Then GetExitCodeProcess hProc, iRet
IsRunning = (iRet = STILL_ACTIVE)
CloseHandle hProc
End Function
наверх
Выравнивание меню по правому краю
Добавьте на форму любое меню, состоящее из скольки угодно пунктов, а также одну кнопку
Command1. Затем внесите в модуль кода формы следующее:
'Необходимые нам API функции
Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetMenuItemInfo Lib "user32" Alias "GetMenuItemInfoA" _
(ByVal hMenu As Long, ByVal un As Long, ByVal b As Boolean, lpMenuItemInfo _
As MENUITEMINFO) As Long
Private Declare Function SetMenuItemInfo Lib "user32" Alias "SetMenuItemInfoA" _
(ByVal hMenu As Long, ByVal un As Long, ByVal bool As Boolean, _
lpcMenuItemInfo As MENUITEMINFO) As Long
'Константы
Const MIIM_TYPE = &H10
Const MFT_RIGHTJUSTIFY = &H4000
Const MFT_STRING = &H0&
'Тип MENUITEMINFO
Private Type MENUITEMINFO
cbSize As Long
fMask As Long
fType As Long
fState As Long
wID As Long
hSubMenu As Long
hbmpChecked As Long
hbmpUnchecked As Long
dwItemData As Long
dwTypeData As String
cch As Long
End Type
'При нажатии на кнопку меню перескочит из левого края в правый
Private Sub Command1_Click()
Dim MnuInfo As MENUITEMINFO
Dim mnuH As Long, MyTemp As Long
mnuH = GetMenu(Me.hwnd)
MnuInfo.cbSize = Len(MnuInfo)
MnuInfo.fMask = MIIM_TYPE
'Если вы хотите выравнять только часть пунктов меню, тогда замените в следующей
'строке, а также в строке над End Sub число 0 на число пунктов, которое вы хотите
'оставить слева
MyTemp = GetMenuItemInfo(mnuH, 0, True, MnuInfo)
MnuInfo.fType = MFT_RIGHTJUSTIFY Or MFT_STRING
'Вам также надо заменить "MenuCaption" на имя пункта, которое будет крайним слева
'в новой расстановке
MnuInfo.cch = Len("MenuCaption")
MnuInfo.dwTypeData = "MenuCaption"
MnuInfo.cbSize = Len(MnuInfo)
MyTemp = SetMenuItemInfo(mnuH, 0, True, MnuInfo)
MyTemp = DrawMenuBar(Me.hwnd)
End Sub
наверх
Модернизация контролов с помощью WithEvents
Думаю временами всем нам не хватает в контролах какой -либо мелочи. К примеру какие -то действия при использовании текстбокса. Решение есть - можно написать процедуру и вызывать е как эвент для контролов. Собственно именно для этого и существует команда "WihEvents"
К примеру хочется ограничить ввод в текстбокс только символов в верхнем регистре. Буквы в нижнем регистре должны быть автоматически преобразованы в верхний. Ну и еще при проходе мышки над текстбоксом - путь показывает координаты мышы в тултипсе
Создаем стандартный EXE project, добавляем 4 текстбокса , добавляем class module. В Form1 добавляем код
'General Declarations
Private clsTextBox1 As Class1
Private clsTextBox2 As Class1
Private clsTextBox3 As Class1
Private clsTextBox4 As Class1
Private Sub Form_Load()
Set clsTextBox1 = New Class1
Set clsTextBox1.TextBoxCtl = Text1
Set clsTextBox2 = New Class1
Set clsTextBox2.TextBoxCtl = Text2
Set clsTextBox3 = New Class1
Set clsTextBox3.TextBoxCtl = Text3
Set clsTextBox4 = New Class1
Set clsTextBox4.TextBoxCtl = Text4
End Sub
В Class1, добавим следующий код .
Private WithEvents txt As TextBox
Public Property Set TextBoxCtl(OutsideTextBox As TextBox)
Set txt = OutsideTextBox
End Property
Private Sub txt_KeyPress(KeyAscii As Integer)
'-- Преобразуем в верхний регистр
KeyAscii = Asc(UCase$(Chr$(KeyAscii)))
End Sub
Private Sub txt_MouseMove(Button As Integer, Shift As Integer, X As
Single, Y As Single)
txt.ToolTipText = "X:" & X & " Y:" & Y
End Sub
Чтобы добавить что то еще - просто добавьте код в класс. Единственно что - эвент в классе случается после эвента в контроле.
наверх
Книги
Язык программирования Visual Basic - мощный
инструмент разработки приложений для 32-разрядных систем Windows 95 и
Windows NT. В книге рассматриваются как фундаментальные понятия и
темы, так и сложные вопросы, адресованные профессиональным программистам.
Нет данных по
автору(ам), «БХВ - Санкт-Петербург» — 2000, 959
стр. 248,19 руб. - 5% = 235.6 руб.
Второе издание существенно расширенное и обновленное
описание языка SQL, являющегося основным инструментом работы с
реляционными базами данных.
Д. Р. Грофф,
«СПАРРК, Издательская группа BHV» — 2001, 816 стр. 343,08 руб. - 5%
= 325.85 руб.
наверх
Анонсы эхо-конференций СообЧа
Вопрос-Ответ
Как позвонить на телефон в другом городе через интернет?
Какой программой просмотреть файлы *.wmv? Отчего текст
печатается закорючками? В этой группе вы сможете задать
любые интересующие вас вопросы. Чем сможем — поможем!
Подписаться
Железо
Среди людей, имеющих компьютеры, я еще не встречал таких,
которые не задавали бы следующие вопросы: «Как сделать,
чтобы мой компьютер работал быстрее? Нет, еще быстрее…
И еще… А ничего не сгорит?», «Хочу поменять материнку.
Какую лучше взять? Кто может поделиться опытом?», и т.д.
Если вас мучают такие вопросы — то вам сюда. Группа
предназначена для обсуждения компьютерного железа, в
том числе апгрейда (модернизации) и оверклокинга (разгона).
Подписаться
наверх
Доска объявлений
Объявляется конкурс на лучщий баннер для сайта VB Студия. Приз за лучший баннер - 5000 баннеров баннерообменной сети TLE. Вопросы и предложения по этому адресу
Требуется человек, знающий HTML для работы с сайтом группы СооБчаVB. Вопросы и предложения по этому адресу
наверх
Мои программы
BalloonMessage for MS Agent
BalloonMessage for Microsoft Agent реализует диалог программы с
пользователем, используя при этом технологию Microsoft Agent. OCX реализует три
типа диалоговых окон: InputBox, MsgBox и MsgLabels.
наверх
Вопрос/Ответ
Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.
Вопросы:
Автор вопроса: Глебов Алексей
Ответ ожидается по этому адресу
Расскажите пожалуйста, как управлять прерываниями компьютера из VB.
Автор вопроса: Юра
Ответ ожидается по этому адресу
Вы не подскажите как научить VB копировать каталоги и работать с архиватором.
Я только начинаю работать с VB и хотел написать программу резервного копирования.
Автор вопроса: Sergey Broukhis
Ответ ожидается по этому адресу
Не могу найти, что нужно и как писать код для ловли всех (или почти всех) прерываний от клавиатуры и работы с ними.
Автор вопроса: Шурик
Ответ ожидается по этому адресу
Как опубликовать DataReport в Word?
Ответы:
Вопрос:
Необходимо обработать событие от мыши, на компоненте, который эти события не поддерживает.
Например, MaskEdit не имеет события dblClick...
Как это сделать с использованием API? Или без?
Ответ:
Автор ответа: Самохин Владимир
Попробуй включить обрабоку нажатия кнопки мыши в форме, но в обработчике событий включи условие - Выполнить данную процедуру только если курор мыши находится в определенной области формы, т.е. над каким либо компонентом, если это не так то выполнять обычную обработку событий.
Сам не пробовал, но думаю, что должно получится.
Вопрос:
У меня такой вопрос: как менять IP через какой-то промежуток времени и как узнать что твой IP пытаются узнать?
Ответ:
Автор ответа: Andrew S. Arutunyan
Никак ты не узнаешь, потому что адрес узнают не у тебя, а у DNS серверов, которых милионы.
Вопрос:
Есть прога в Excel, а доступ к коду VB запоролен (просит ввести VBAProject Password).
Нельзя ли как-то её взломать?
Есть ли подобные кряки?
Ответ:
Автор ответа: Yury Yurchenko
Есть программка Advansed VBA Password Recovery.
Правда, она отламывает только коротенькие пароли.
Она доступна по адресу http://vb-studio.boom.ru/utils.htm
Вопрос:
Можно-ли приделать баяы Аксесса2000 к ВБ6, если можно, то как, если это невояможно в принципе - все равно напишите.
Ответ:
Автор ответа: Кононенко Роман
Я делаю так: в меню Разработать>Ссылки выбираешь Microsoft DAO 3.6 Objekt Library или какая там у тебя версия. Создаешь в проекте модуль и в нем пропизываешь следующее:
Public strSQL As String 'Переменная создания запроса
Public rs As Recordset 'Переменная результата запроса
Public DB As Database 'Переменная ссылки на базу данных
Public ws As Workspace 'Переменная ссылки на рабочую область
Sub DB_Open() 'Открытие базы данных
Set ws = DBEngine.Workspaces(0)
Set DB = ws.OpenDatabase("имя_базы.mdb")
ws.Databases.Refresh
End Sub
Sub DB_Close() 'Закрытие базы данных
ws.Databases.Refresh
DB.Close
ws.Close
End Sub
Sub RS_Load() 'Зпрос на чтение
Set rs = DB.OpenRecordset(strSQL)
End Sub
Sub DB_Update() 'Зпрос на добавление, изменение.
DB.Execute (strSQL)
End Sub
Используется так:
...
DB_Open 'произходит открытие и подключение к базе данных
strSQL="Строка запроса на чтение чего либо из базы":RS_Load 'после этого переменная rs будет содержать результат запроса.
...
strSQL="Строка изменения данных или их добавление в базу":RS_Update
...
DB_Close 'произходит закрытие и отключение от базы данных
...
Вот в принципе и всё, будут вопросы пиши kononenko@dnp.ukrpack.net
Вопрос:
Кто мне поможет программно отключить нажатие клавиши Start на клавиатуре или хотя бы скажет ее код.
Ответ:
Автор ответа: Kirill
Из онлайновой библиотеки MSDN :
Platform SDK: Windows User Interface
Virtual-Key Codes
....
VK_LWIN 5B Left Windows key (Microsoft® Natural® keyboard)
VK_RWIN 5C Right Windows key (Natural keyboard)
....
Насколько я понимаю, это обе клавиши Start -- левая и правая :)
Вопрос:
Как сгруппировать данные в DstsReport (например выводить список товаров, сгруппированный по видам и над каждой группой выводить название вида товара)
Ответ:
Автор ответа: Кононенко Роман
Я когда-то делал, точно не помню, но суть такова. В DataEnvirоment создаешь родительскую команду на выборку к примеру товаров. Потом в эту команду добавляешь дочерную команду на выборку по критериям от родительской. А на отчёте добавляешь групировочный раздел. И вот результат родительского запроса вставляешь в групировочный раздел, а результат дочерного запроса вставляешь в раздел Details. Или наоборот, точно не помню. Поэкспериментируй. У меня получалось.
Можете заполнить эту форму, либо отослать вопрос СЮДА
Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
наверх
|