Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Visual Basic для новичков и профессионалов 51


Visual Basic для новичков и профессионалов

Выпуск
51
Дата выхода
13.08.2006
Ответственный за выпуск
Константин
Подписчиков
7299
Архив рассылки
Архив этого выпуска
   

Сайт рассылки
VisualBasic.noka.ru - сайт для любителей Visual Basic. На сайте вы найдете большое количество исходников, статей, компонентов. Книги, программы, форум, статьи, а также другие рассылки нашего портала, помогут вам найти любую исчерпывающую информацию на любой вопрос.

Новости

Здравствуйте, уважаемые подписчики!

Рассылка не выходила очень длительное время. Это обусловлено очень низкой активностью среди вас, уважаемые подписчики! За время прошлого выпуска я получил всего восемь вопросов и пять ответов! А рассылка жить без ваших вопросов и ответов не сможет. Все мы понимаем, что сейчас летняя пора, у кого экзамены, кто-то в отпуске и забыл про компьютер, а кто-то просто гуляет на улице. Поэтому рассылка будет выходить раз в месяц, до появления активности с вашей стороны.

Вопросы и ответы

Сегодня в выпуске:
Вопросов: 8
Ответов: 5

Десятка лучших

Игорь
167
*Casper*
131
Bourn None
116
visualprogs@yandex.ru
103
Stormbringer
92
Master (Роман)
87
Андрей
73
Перекладов Владимир
61
HouseBugs
60
Bullet [PCLO]
59

Новые вопросы

219/Создал программу на VB6: по клику выскакивает очередной Перл или Перл по набранному номеру. Вопрос: как спрограммировать "Поиск Перла по набранному Слову"?.Сама программа KvintEssencGrac.rar находится на http://graciologiy.narod.ru/, а также на http://freesoft.ru/?id=667597. По требованию вышлю исходники. [Ответить]
220/Как в VB и VB.NET перехватить событие ВРАШЕНИЕ КОЛЕСИКА МЫШИ, например в Grid'е?[Ответить]
221/Здравствуйте! У меня вопрос: В моей программе есть определенные шрифты, которые есть не у каждого, но есть в папке с моей программой. Как мне сделать так, чтобы эти шрифты при установке программы автоматически устанавливались в папку Шрифты на ПК. Благодарю. Владимир.[Ответить]
222/Здарова всем! У меня такой вопрос (желательно отвечать подробнее, потому как я новичок). Мне надо сделать так, чтобы вtext моей программыкопировался определённый текст из html в браузере. Думаю вопрос понятен :) Спасибо![Ответить]
223/И снова поводу автоматизации (Вопрос # 204). Дело не в том, что мне нужен механизм копирования и хранение кода, он уже существует и встроен в Visual Studio.NET (раскрывающаяся панель справа). И не в классах дело, так как это не автоматизация, и лишь способ конструирования данных. В общем, я говорю даже не о проектировании кода, и даже не о проектировании как таковом, а о способах сделать эти процессы легче, быстрее, безошибочней и самое главное всеобъемлющими, имеется в виду то, что сама система должна подсказывать о следующем шаге. Ведь по существу все действия проделываемые программистами являются циклическими, это и называется опытом. Начинаем с мастеров, а дальше всё идёт, возвращаясь на круги своя. Короче, в Visual Studio.NET можно сделать всё что угодно, вопрос же не в этом. А в том, как добиться желаемого, более лёгким путём используя Add-In или что-либо в этом роде? Причём дело не в самом создании Add-In, это описывается в MSDN достаточно подробно, а в том, что же с помощью него необходимо автоматизировать в первую очередь. В общем, пишите, что бы вы хотели добавить в Visual Studio.NET, а так же в Visual Basic 6.3, который входит в состав AutoCAD, Corel, Microsoft Office и так далее.[Ответить]
224/Здравствуйте Подскажите как реализовать DOS печать на VB6.0, на работе только матричные принтеры Epson LX300 и Epson LX1050. Пользуюсь методом создания файла на диске с последующим открытием его DOS приложением, или просто командой "copy to prn...". Нет ли более изящного и правильного способа похожего на использование объекта printer (объект, свойства, события) ну или в крайнем случае строка инициализации и функции WinAPI ?[Ответить]
225/Здравствуйте. Вопрос такой. Мне нужно изменить структуру уже заполненной базы (в ручную нерационально, потому что эти изменения надо будет сделать 11 раз в разных географических местах) Хотела автоматизировать. Вопрос - как открыть существующую таблицу. чтобы можно было изменять ее структуру? ( изменить названия неокторых полей и его комментарий, затем добавить новые поля) Заранее и всегда - спасибо![Ответить]
226/Чтобы отправлять сообщения по локальной сети через службу сообщений в своей программе на VB6, я написал вот так. ExecCmd "net send " & user & " " & text 'где ExecCmd - модуль ждущий завершения вызваной програмы, user – пользователь, text - текст сообщения. Как отправить сообщение не через вызов net send, а через функцию API или через WinSock или ...? Если это возможно, то как перед отправкой проверить есть ли пользователь в сети? [Ответить]
227/Здравствуйте! Подскажите каким образом можно сделать свод по таблице. Имеется один столбец текстовый и пара числовых. Заранее спасибо.[Ответить]

Вопросы, нуждающиеся в ответах

183/ Как запустить свою прогу как сервис Винды? [Ответить]
184/ Здравствуйте!
Я по поводу субклассирования.
Определяю стандартную оконую функцию в модуле. Как теперь сделать так, чтобы эта функия вызвала другую, именно из той копии класса, которая субклассирует даное окно?
Напремер:
У меня есть три контрола:

ContrA субклассирует окно 1
ContrB --////--- 2
ContrC --////--- 3

и NewWindowFunction (в стандартном модуле) если она будет вызвана как можно узнать какая именно копия котнрола ёё вызвала? И вызвать функцию именно того контрла, которая ёё вызвала?

Может ёще существует какой-нибудь другой алгоритм? А то я понатия не имею как можно его организовать.

А как еще можно субклассировать окно пренадлежащее другому процессу?
SetWindowLong конечно возвращае ошибку. Для этой цели пользовался специальным контролом, но хотелось бы "избавиться" от необходимости его присутствия для даных целей.
[Ответить]
210/Здравствуйте! Как выводить на форму вертикальный или наклонный текст? Где-то встречал способ, но не могу найти. Спасибо, Игорь.[Ответить]

211/Уважаемые эксперты. Как в VB.Net перетаскивание картинки сделать таким же наглядным, как в VB6? В VB6 указываешь для перетаскиваемой картинки в качестве свойства DragIcon саму картинку, и таскаешь имено ее. А в VB.Net такого свойства нет и таскаешь какой-то перечеркнутый кружок. Не красиво и не наглядно.[Ответить]

212/В VB6 c помощью ShowDefaultCharacterProperties вызываю в своей программе галерею MS агентов. 2 вопроса по работе с ней. 1) Почему в галерее показывается только 5 стандартных агентов, хотя в C:\Windows\Msagent\Chars их у меня 16? 2) Как передать в программу ссылку на выбранного в галерее агента?[Ответить]

213/Прив всем. Вотпрос такой. Никто не задавался целью не то чтобы написать своего клиента ICQ, а просто разобраться с технологией. Мне надо сделать так, чтобы мой комп периоически отправлял сообщения в аську... Как реализовать? Без дополнительных клиентов. То есть прога сама должна логиниться и писать мне сообщения...[Ответить]

214/в дополнению к 206 вопросу. Для вывода данных из MS SQL использую запрос и DataGrid Public Sub zapros1(sSQL) Set rs = New ADODB.Recordset With rs .ActiveConnection = cn .CursorLocation = adUseClient .CursorType = adOpenKeyset .Source = sSQL .Open End With Set frmZagruzka.DataGrid1.DataSource = rs Files_name = DataGrid1.Text End Sub хотел спросить, есть ли иной путь передачи сведений из MS SQL в части передачи одного значения (например: количества строк)сразу в переменную, кроме как создавать невидимый на форме DataGrid1 передавать ему сведения, а потом забирать из DataGrid1 сведения (как показано выше).[Ответить]

215/Доброго времени суток. Недавно скачал "iRender 3D 2.5", правда не знаю как им пользоваться. Напишите пожалуйста пару примерчиков. Заранее спасибо.[Ответить]

216/Доброго времени суток, уважаемые разработчики. Делаю РПГ. В ней карту, типа Фоллаутовской. Столкнулся с такой проблемой: есть поле с картинкой (местность, вид сверху), по ней двигаеться обьект, в данном случае кружок. Есть черно-белая маска местности.. Так вот как сделать так, чтобы кружок двигался только в пределах белой области маски, а на черную не лез? Заранее благодарю. [Ответить]

217/Здравствуйте! Помогите!!! Расскажите как создавать файлы с данными на VB, заносить в них новые данные, изменять ну и т.д. Ну например хочу сделать прогу типа телефонного справочника, я заношу данные, удаляю и все это должно где то хранится. Я понятия не имею как это сделать. Помогите!!! Если не трудно вышлите ответ на senichka85@mail.ru Заранее благодарен![Ответить]

218/Здравствуйте, у меня два вопроса о защите: 1) Как сделать так, чтобы программа работала только с CD диска. 2) Как сделать так чтобы при установке программа требовала серийный номер, а по истечении 3-х дней без этого номера браковалась или блокировалась.[Ответить]

Ответы на вопросы

Вопрос # 183
Как запустить свою прогу как сервис Винды?

Отвечает
Анатолий Присяжнюк
Вам поможет Андрей Гарнаев (вернее его книга)
Вот отрывок:
...
Запуск из программы другого приложения
Класс Process пространства имен System.Diagnostics предоставляет в распоряжение пользователя метод start, позволяющий запускать приложение, специфицированное в качестве значения его параметра. Другой необязательный параметр этого метода обеспечивает загрузку указанного документа в открытое приложение. Инструкцию с методом start лучше всего разместить внутри блока Try - Catch для обработки исключения, которое может быть выброшено при попытке запустить приложение. В приводимом ниже коде осуществляется запуск из программы пустого блокнота и Internet Explorer с одновременной загрузкой в него указанной Web-страницы.
Sub Demo_Run
Dim proc As System.Diagnostics.Process
proc = New System.Diagnostics.Process()
Try
proc.Start( notepad.exe")
proc.Start( IExplore.exe", http://www.kbyte.ru")
Catch e As Exception
Console.WriteLine( Ошибка при загрузке: (0)", e.ToString)
End Try
End Sub
...
Читайте!
С уважением - АВП

Оценка за ответ эксперту Анатолий Присяжнюк: 4 баллов

Вопрос # 208
Подскажите пожалуйста как сделать программу для открытия и закрытия дверки привода CD при нажатии определенной клавиши. Спасибо.

Отвечает
Vadim
В предыдущем номере было несколько ответов…
Но что делать если несколько CD-ROM-ов? Вот так открывается и
закрывается указанный CD-ROM:

' Form
' - - - - - -
' Command1 – кнопка
' Command2 – кнопка
' - - - - - -
' Код формы

Private Declare Function mciSendString Lib "winmm.dll" Alias _
"mciSendStringA" (ByVal lpstrCommand As String, ByVal _
lpstrReturnString As Long, ByVal uReturnLength As _
Long, ByVal hwndCallback As Long) As Long

Dim vDrive As String
Dim vAlias As String

Private Sub Command1_Click()
' Открыть
vDrive = "f:/"
vAlias = "vv" & vDrive
Call mciSendString("Open " & vDrive & ": Alias " & vAlias & " Type
CDAudio", 0, 0, 0)
Call mciSendString("Set " & vAlias & " Door Open", 0, 0, 0)
End Sub

Private Sub Command2_Click()
' Закрыть
vDrive = "f:/"
vAlias = "vv" & vDrive
Call mciSendString("Open " & vDrive & ": Alias " & vAlias & " Type
CDAudio", 0, 0, 0)
Call mciSendString("Set " & vAlias & " Door Closed", 0, 0, 0)
End Sub

Кроме того, иногда более удобно нажимать так называемые горячие
клавиши не активируя программу на VB, и не считывая постоянно нажатые
клавиши таймером или в цикле. Это я даже не о том, что можно назначить
глобальные горячие клавиши. Эт я о том что можно сделать так:
Создаём ярлык на рабочем столе к нашей программе открывающей и
закрывающей CD-ROM;
Вызываем свойства созданного ярлыка;
Переходим на вкладку «Ярлык»;
Кликаем мышкой в поле «Быстрый вызов» и нажимаем, например, «0» на
цифровой клавиатуре (Num Lock должен быть включён), затем кнопку
«применить». Теперь по нажатии этой клавиши будет запускаться наша
программа и открывать или закрывать CD-ROM (код помещается в
Form_Load).

Оценка за ответ эксперту Vadim: 5 баллов

Вопрос # 210
Здравствуйте! Как выводить на форму вертикальный или наклонный текст? Где-то встречал способ, но не могу найти. Спасибо, Игорь.

Отвечает
Vadim
‘Вывод текста под углов в 45 градусов

Private Const DEFAULT_CHARSET = 1
Private Declare Function CreateFont Lib "gdi32" Alias "CreateFontA"
(ByVal H As Long, ByVal W As Long, ByVal E As Long, ByVal O As Long,
ByVal W2 As Long, ByVal i As Long, ByVal u As Long, ByVal S As Long,
ByVal c As Long, ByVal OP As Long, ByVal CP As Long, ByVal Q As Long,
ByVal PAF As Long, ByVal f As String) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As
Long) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long,
ByVal hObject As Long) As Long

Private Sub Command1_Click()
Dim grad As Long
Dim vFont As Long
Dim vFontOld As Long
Dim dl As Long

grad = 45
vFont = CreateFont(24, 0, grad * 10, 0, 400, 0, 0, 0,
DEFAULT_CHARSET, 1, 1, 2, 2, "Times New Roman")
vFontOld = SelectObject(hdc, vFont)
CurrentX = Me.ScaleWidth \ 2
CurrentY = Me.ScaleHeight \ 2
Print "Текст 45 градусов"
dl = SelectObject(hdc, vFontOld)
dl = DeleteObject(vFont)
End Sub

Оценка за ответ эксперту Vadim: 5 баллов

Вопрос # 213
Прив всем. Вотпрос такой. Никто не задавался целью не то чтобы написать своего клиента ICQ, а просто разобраться с технологией. Мне надо сделать так, чтобы мой комп периоически отправлял сообщения в аську... Как реализовать? Без дополнительных клиентов. То есть прога сама должна логиниться и писать мне сообщения...

Отвечает
*Casper*
См вложение. Там контрол и примеры. Когда-то мне это помогло

Скачать приложенный к ответу файл >>>

Оценка за ответ эксперту *Casper*: 5 баллов

Вопрос # 217
Здравствуйте! Помогите!!! Расскажите как создавать файлы с данными на VB, заносить в них новые данные, изменять ну и т.д. Ну например хочу сделать прогу типа телефонного справочника, я заношу данные, удаляю и все это должно где то хранится. Я понятия не имею как это сделать. Помогите!!! Если не трудно вышлите ответ на senichka85@mail.ru Заранее благодарен!

Отвечает
Master
Возможно, звучит немного нескромно, но подпишись на почтовое издание
"Практическая работа в Visual Studio.NET и Microsoft Office". Кстати, оно
создано по идее автора этой рассылки и как я лично считаю в дополнение к
нему. Можешь использовать форму внизу для подписки вебом или отправить любое
письмо на этот почтовый адрес с последующим подтверждением заказа:
comp.soft.prog.vsnetmsoffice-sub@subscribe.ru
Далее напиши в неё по адресу
comp.soft.prog.vsnetmsoffice-owner@subscribe.ru
(ограничение на одно письмо 15Кб, не чаще 5-и в час) по интересующей тебя
теме. Тогда, я в силу своих скромных способностей попытаюсь создать прототип
программы телефонного справочника, который будет описываться в какой-либо из
рубрик (скорее всего в "Реальных проектах"). Так же возможно рассмотрение и
работа над другими предложениями.
Можно конечно попытаться написать код ответа и сюда, в "Visual Basic
для новичков и профессионалов", но до этого необходимо обсудить множество
условий. К примеру, использовать ли Access, или его гибрид с Visual
Studio.NET, нужно ли звонить по этим номерам, применять ли древовидные
списки для быстрого поиска данных и так далее. Да мало ли что ещё
понадобится. В общем, нахрапом баррикаду не взять, придётся последовательно
и методично выводить нужные условия и возможности, в противном случае
получится ни чем не примечательная табличка, практически нечего не умеющая и
выглядящая так себе. О том, как нужно начинать писать любую программу, чтобы
она вообще была закончена, будет рассказано в #08 выпуске.

Оценка за ответ эксперту Master: 5 баллов

Советуем подписаться на следующие рассылки


В избранное