Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.
Эта книга является вводным курсом по
изучению языка программирования Visual Basic .NET.
Даны основные принципы объектно-ориентированного
программирования в контексте языка VB .NET,
поскольку без хорошей подготовки в этой
области невозможно в полной мере
пользоваться всеми преимуществами VB .NET.
Изложены азы всех аспектов языка, которыми
должен владеть любой профессиональный
разработчик VB .NET
Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.
Основная задача книги - быстро ознакомить
разработчиков Visual Basic с изменениями в .NET
Framework. Программисты, использующие Java, C++, Delphi
или другие инструменты разработки
приложений и интересующиеся Visual Basic или
технологией .NET Framework, также найдут эту книгу
полезной. Хотя книга посвящена Visual Basic.NET, ее
основная цель - продемонстрировать
взаимодействие Visual Basic и ...
Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.
Программа Citycat by Email позволяет работать с сервером Subscribe.ru с
помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в
online и просматривать мегабайты рекламы для того, чтобы подписаться на
нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем
рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и
отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять
поиск по каталогу рассылок и многое другое.
Программу Citycat by Email можно бесплатно загрузить с сайта
http://sapisoft.h1.ru.
Взаимодействие с процессом DOS в Visual Basic - Как-то раз мне понадобилось написать на Visual Basic программу, взаимодействующую с процесcом DOS - т.е. фактически оболочку для него. Естественная лень заставила меня в первую очередь обратится к Интернет ресурсам на эту тему. Однако максимум найденного как в наших, так и в англоязычных ресурсах - чтение вывода этого окна. С другой стороны, на форумах по программированию на VB этот вопрос поднимается достаточно часто, и обычно остается без ответа.
21.11.02
Утилиты - Help Maker
Утилита помогающая как созданию, так и обучению создания файлов помощи Windows
Проблемы и решения - Пример запрета на ввод данных в ComboBox, через "Ctrl+V" и PopMenu - "Paste"
Пример показывает, как без помощи Api - функций можно запретить ввод данных в ComboBox, через "Ctrl+V" и PopMenu - "Paste".
Visual Basic - Исходные коды - Элементы управления - Пример связанной работы двух ComboBox
Пример показывает синхронную работу двух ComboBox.
Программы в кодах - Пользовательские - Программа резервного копирования
Очень печально, когда "летит" винчестр....а еще печальнее, когда безвозвратно теряется информация. " Программа резервного копирования" - автоматически сделает за вас рутинную работу, вам только и нужно, что сделать некоторые установки.
VB - Работа с Windows - Пример помещения программ в автозагрузку
Пример показывает, как можно прописать в реестре свою программу, чтобы она автоматически загружалась с загрузкой Windows-а.
Visual Basic - Статьи - Как добиться успеха в безнадежных проектах
Многим руководителям ИТ-проектов знакомы ситуации, когда прекрасно спланированный процесс не укладывается во временные рамки. Несмотря на то что сроки были определены с запасом, одни модули «забирают» все доступные ресурсы, другие сразу после появления на свет удаляются за ненадобностью, а постоянные изменения требований окончательно разрушают проект.
BalloonMessage for Microsoft Agent реализует диалог программы с
пользователем, используя при этом технологию Microsoft Agent. OCX реализует три
типа диалоговых окон: InputBox, MsgBox и MsgLabels.
Есть у меня программа которая рассчитывает кое-какие параметры для босса. Как зделать что бы данные посылались по E-mail 'у без использования стандартных почтовых клиентов, таких как Outlook Express или the bat. Т.е если они у меня не установленны.
При получении фокуса на кнопке прорисовывается прямоугольник (FocusRect)
Как избавиться от него (слышал вроде через WindowsProc)
Если можно поподробней
1) Как регистрировать библиотеки в реестре. Меня не интересует "regsvr32.exe" и пр., только программный код. Как подбирается универсальный номер (это самое важное), что прописывается внутрь этого ключа и т.д. (грамотный текстовик по реестру приветствуетсся)
2) Я написал библиотеку и OCX, и зараза VB их автоматом прописал в реестре. Теперь в раздумье, будут ли они работать на другой машине (с голыми 98(5)-и окнами). Задумывалось поместить библиотеку и OCX в папку с программой, нигде их не регистрировать и вызывать их прямо из этой папки.
Как добавить иконку в ListBox? Хотелось бы вывести список запущенных процессов в ListBox и возле показать иконку процесса. Знаю что можно легко сделасть это в ListView, но не хочется таскать громадный ocx.
Ответы:
Вопрос:
Как в VBA Excel импортировать формы, модули и листы в другую книгу( только в неё, а не во все )? Можно ли создать библиотеку собственных модулей и форм и пользоваться ей в других книгах?
Для сохранения формы или модуля в отдельном файле необходимо щелкнуть по нужной форме или модулю в Project Explorer правой кнопкой мыши и в контекстном меню выбрать Export file...
Соответственно для вставки ранее сохраненного модуля или формы необходимо в том же контекстном меню выбрать опцию Import file...
Отдельно листы сохранять нельзя, но можно сохранять код, который к ним относится.
Вопрос:
Товарищи!! Может кто знает как в DirectDraw7 сделать объекта полупрозрачными????????
У меня VB60. Почему в его собственном редакторе не работает колесико у скролинговой мыши? Везде работает а в VB нет. Мышь обыкновенная Genius NetScroll. Драйвера стандартные Windows. Установлена Win98. Как можно решить? Или никак? А?
Попробуй поставить драйвера от поставщика (в трее появится иконка мыши с бегающими глазками). Скроллинг заработает во всех окнах, имеющих линейки прокрутки.
Про драйвер мыши
да, у меня тоже так было.
Когда мышь с колесом - то в Виндах и офисе колесо работает, а в байсике нет. Для этого надо поставить родные драйвера для мыши. Обычно они с ней продаются. Тогда все станет нармально и в визуал байсике.
Сам тоже мучился, привыкаешь ведь в офисе колесом катать документ.
Не знаю поможет тебе мой ответ или нет, но у меня мышь Logitech и прокрутка работает. А вообще, насчет мышек, то все продавцы рекомендуют брать Logitech, ну а если нет на нее денег, то взамен идеальный вариант - Mitsumi.
Вопрос:
Private Declare Function RasEnumConnections Lib "RasApi32.dll" Alias "RasEnumConnectionsA" (lpRasCon As Any, lpcb As
Long, lpcConnections As Long) As Long
Private Declare Function RasGetConnectStatus Lib "RasApi32.dll" Alias "RasGetConnectStatusA" (ByVal hRasCon As Long,
lpStatus As Any) As Long
Private Const RAS95_MaxEntryName = 256
Private Const RAS95_MaxDeviceType = 16
Private Const RAS95_MaxDeviceName = 32
Private Type RASCONN95
dwSize As Long
hRasCon As Long
szEntryName(RAS95_MaxEntryName) As Byte
szDeviceType(RAS95_MaxDeviceType) As Byte
szDeviceName(RAS95_MaxDeviceName) As Byte
End Type
Private Type RASCONNSTATUS95
dwSize As Long
RasConnState As Long
dwError As Long
szDeviceType(RAS95_MaxDeviceType) As Byte
szDeviceName(RAS95_MaxDeviceName) As Byte
End Type
Public Function IsConnected() As Boolean
Dim TRasCon(255) As RASCONN95
Dim lg As Long
Dim lpcon As Long
Dim RetVal As Long
Dim Tstatus As RASCONNSTATUS95
TRasCon(0).dwSize = 412
lg = 256 * TRasCon(0).dwSize
RetVal = RasEnumConnections(TRasCon(0), lg, lpcon)
Tstatus.dwSize = 160
RetVal = RasGetConnectStatus(TRasCon(0).hRasCon, Tstatus)
If Tstatus.RasConnState = &H2000 Then
IsConnected = True
Else
IsConnected = False
End If
End Function
Private Sub Form_Load()
MsgBox IsConnected()
End Sub
Эта программа проверяет есть свяяь с инетом или нет
Когда программу яапускаю под Win98 все рабоиает нормально, а когда под Win2000 Происходит крах программы
Вопросы:
1.Почему ?
2.Какими функциями можно яаменить их чтобы работали под Win2000
3.Может кто янает как еще можно проверить есть свьяь с инетом или нет.
Private Declare Function RasEnumConnections Lib "RasApi32.dll" Alias "RasEnumConnectionsA" (lpRasCon As Any, lpcb As Long,
lpcConnections As Long) As Long
Private Declare Function RasGetConnectStatus Lib "RasApi32.dll" Alias "RasGetConnectStatusA" (ByVal hRasCon As Long,
lpStatus As Any) As Long
Private Type RASCONN95
dwSize As Long
hRasCon As Long
szEntryName(RAS95_MaxEntryName) As Byte
szDeviceType(RAS95_MaxDeviceType) As Byte
szDeviceName(RAS95_MaxDeviceName) As Byte
End Type
Private Type RASCONNSTATUS95
dwSize As Long
RasConnState As Long
dwError As Long
szDeviceType(RAS95_MaxDeviceType) As Byte
szDeviceName(RAS95_MaxDeviceName) As Byte
End Type
'----------------------------------------------
'А вот и сама функция If IsConnected = True Then...End If
Public Function IsConnected() As Boolean
On Error Resume Next
Dim TRasCon(255) As RASCONN95
Dim lg As Long
Dim lpcon As Long
Dim retVal As Long
Dim Tstatus As RASCONNSTATUS95
TRasCon(0).dwSize = 412
lg = 256 * TRasCon(0).dwSize
retVal = RasEnumConnections(TRasCon(0), lg, lpcon)
Tstatus.dwSize = 160
retVal = RasGetConnectStatus(TRasCon(0).hRasCon, Tstatus)
If Tstatus.RasConnState = &H2000 Then
IsConnected = True
Else
IsConnected = False
End If
End Function
Private Declare Function InternetGetConnectedStateEx Lib "wininet.dll" Alias "InternetGetConnectedStateExA" (ByRef lpdwFlags As Long, ByVal lpszConnectionName_ As String, ByVal dwNameLen As Long, ByVal dwReserved As Long) As Long 'Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef lpdwFlags As_ Long, ByVal dwReserved As Long) As Long 'this function used with IE4
Private Sub Check(Optional ByRef ConnectionInfo As Long, Optional ByRef ConnectionName As String)
Dim dwFlags As Long
Dim NameBuf As String
Dim lPos As Long
NameBuf = String$(513, 0)
If InternetGetConnectedStateEx(dwFlags, NameBuf, 512, 0&) Then
lPos = InStr(NameBuf, vbNullChar)
If lPos > 0 Then
ConnectionName = Left$(NameBuf, lPos - 1)
Else
ConnectionName = ""
End If
MsgBox "Есть связь"
Else
MsgBox "Нет связи"
End If
End Sub
Private Sub Form_Load()
Call Check
End Sub
Вопрос:
А все таки как нарисовать треугольник по трем точкам. Конкретно мне надо: чтобы на экране нарисовался закрашенный треугольник. Если я буду рисовать его по линиям, то это займет много времени.
Я думаю, есть смысл попробовать функции типа Polygon, виндовые. Правда, в какой библиотеке они лежат я не в курсе... Да и лежат ли?
Можно библиотеку на С написать :).
'Кода много, но работает быстро.
'Рисует треугольник на форме. Если нужен desktop см. GetDesktopWindow,
'GetDC, ReleaseDC
Option Explicit
Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As
Long) As Long
Private Declare Function FillRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long) As Long
Private Declare Function CreateBrushIndirect Lib "gdi32" (lpLogBrush As LOGBRUSH) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Private Type POINTAPI
x As Long
y As Long
End Type
Private Type LOGBRUSH
lbStyle As Long
lbColor As Long
lbHatch As Long
End Type
Const ALTERNATE = 1
Const WINDING = 2
Const BLACKBRUSH = 4
Dim pts(1 To 3) As POINTAPI
Dim hwdRgn&, brush As LOGBRUSH, hwdBrush&
Private Sub cmd1_Click()
pts(1).x = Rnd * frm1.ScaleWidth
pts(1).y = Rnd * frm1.ScaleHeight
pts(2).x = Rnd * frm1.ScaleWidth
pts(2).y = Rnd * frm1.ScaleHeight
pts(3).x = Rnd * frm1.ScaleWidth
pts(3).y = Rnd * frm1.ScaleHeight
brush.lbColor = Val("&HFFF0ff")
brush.lbHatch = 0
brush.lbstyle="0"
hwdRgn& = CreatePolygonRgn(pts(1), 3, ALTERNATE)
hwdBrush& = CreateBrushIndirect(brush)
If hwdRgn& And hwdBrush& Then
FillRgn(frm1.hdc, hwdRgn&, hwdBrush&)
DeleteObject hwdRgn&
DeleteObject hwdBrush&
End If
End Sub
Private Sub Form_Load()
frm1.ScaleMode = 3
End Sub
Private Type COORD
x As Long
y As Long
End Type
Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As Any, ByVal
nCount As Long, ByVal nPolyFillMode As Long) As Long
Private Declare Function Polygon Lib "gdi32" (ByVal hdc As Long, lpPoint As
Any, ByVal nCount As Long) As Long
Private Declare Function FillRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn
As Long, ByVal hBrush As Long) As Long
Private Declare Function GetStockObject Lib "gdi32" (ByVal nIndex As Long)
As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As
Long
Const ALTERNATE = 1 ' ALTERNATE and WINDING are
Const WINDING = 2 ' constants for FillMode.
Const BLACKBRUSH = 4 ' Constant for brush type.
Private Sub Form_Paint()
'KPD-Team 1999
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
Dim poly(1 To 3) As COORD, NumCoords As Long, hBrush As Long, hRgn As
Long
Me.Cls
' Number of vertices in polygon.
NumCoords = 3
' Set scalemode to pixels to set up points of triangle.
Me.ScaleMode = vbPixels
' Assign values to points.
poly(1).x = Form1.ScaleWidth / 2
poly(1).y = Form1.ScaleHeight / 2
poly(2).x = Form1.ScaleWidth / 4
poly(2).y = 3 * Form1.ScaleHeight / 4
poly(3).x = 3 * Form1.ScaleWidth / 4
poly(3).y = 3 * Form1.ScaleHeight / 4
' Polygon function creates unfilled polygon on screen.
' Remark FillRgn statement to see results.
Polygon Me.hdc, poly(1), NumCoords
' Gets stock black brush.
hBrush = GetStockObject(BLACKBRUSH)
' Creates region to fill with color.
hRgn = CreatePolygonRgn(poly(1), NumCoords, ALTERNATE)
' If the creation of the region was successful then color.
If hRgn Then FillRgn Me.hdc, hRgn, hBrush
DeleteObject hRgn
End Sub
Private Sub Form_Resize()
Form_Paint
End Sub
Вопрос:
Как сделать запрос к двум таблицам, которые храняться в разных базах данных?
Народ непоскажител какие есть типы БД с которымиможно было работать на ВБ, хорошобы чтоб они поддерживали тип данных в котором моглт бы храниться графические файлы.
Может кто подскажет, как сделать звонилку для Инета, восстанавливающую связь при обрыве, при работе по системе CallBack (обратный звонок). Т.к. телефонщики перешли на повременную оплату, все перешли на этот способ в ответ, но поставить задачу закачки на ночь невозможно т.к. этот метод стандартный софт дозвона не поддерживает.
ну вот тебе и вылажи всё да разжуй, ты конкретезируй вопросы. звонилку то можно зделать, скажи что именно тебе не понятно,
с удовольствием отвечу :)
Вопрос:
Если в буфер обмена помещается строка текста (к примеру адрес сайта), то как записать его отдельной строкой в файл(txt), если строка уже сужествует вывести сообщение и повторно не записывать.
Private Sub Form_Load()
Dim f$, rStr$, a$
Dim Yes As Boolean
f = FreeFile
' Clipboard.SetText "искомая строка" ' - этой строкой сам понял что вожно зделать :)
rStr = Clipboard.GetText
Open "c:\autoexec.bat" For Input As #f
While Not EOF(f)
Line Input #f, a
If a = rStr Then Yes = True Else Yes = False
Wend
Close
If Not Yes Then
Open FileName For Append As #f
Print #f, rStr
Close
End If
End
End Sub
Если я правильно понял вопрос то так:
сначала считываем файл в массив (желательно делать это в Form_load)
dim mas() as string
dim str as string,i&
i=0
open "ПУТЬ_К_ФАЙЛУ" for input as #2
do until eof(2)
line input #2,str
i=i+1
loop
close #2
redim mas(i) as string
i=0
open "ПУТЬ_К_ФАЙЛУ" for input as #2
do until eof(2)
line input #2,str
mas(i)=str
i=i+1
loop
close #2
размести на форме таймер с интервалом в 500 мс
объяви в declarations переменную buf as string
в таймере пиши:
buf=Clipboard.GetText
теперь проверяем имеется ли такой URL
for i=0 to ubound(mas)
if mas(i)=buf then
msgbox "Already have"
exit sub
endif
next i
'а если такой строки нет, то пишем её в файл
open "ПУТЬ_К_ФАЙЛУ" for append as #2
? #2,buf
close #2
form_load 'снова заполняем массив из файла
можно сделать по другому объявить массив к примеру в 101 элемент (mas(100) as string), но тогда придётся вводить проверку на пустые элементы массива и следить за тем, чтобы не произошло переполнение массива.
Можно щаранее объявить большой массив (1000) или больше, но он сожрёт много памяти.
Вопрос:
Как можно прицепить к TextBox'у свое контекстное меню, чтобы при нажатии правой кнопки мыши выскакивала моя менюшка а не стандартная. А может можно как-нибудь добавить в стандартное меню свой пункт? (хотя сильно в этом сомневаюсь). Писать свой контрол с нуля или подключать уже готовый не хотелось бы, т.к. данный ход нужен только в одном месте на весь проект, а сторонний контрол ресурсов сожрет немерено.
Конечно можно добавить и в стандарную менуху своё но реч сейчас не об етом.
1. Создаёшь новую форму(или на уже созданой форме создаёшь меню)
2. Создаёшь меню.
3. В свойстве TextBox-а MouseDown:
Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
PopupMenu MenuName
End If
End Sub
Для создания меню для любого элемента, нужно:
1) сделать это меню в "Редактор меню". Допустим, у тебя получилось следующее
"Меню"
"....Подменю1"
2) для элемента пишишь следующий код
Private Sub ЭЛЕМЕНТ_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
ФОРМА_С_ЭЛЕМЕНТОМ.PopupMenu Меню
End If
End Sub
И всё.
Действия по добавлению в стандартное меню своего пункта сложнее.
Можете заполнить эту форму, либо отослать вопрос СЮДА
Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.