звините, что опоздал... Вчера склепал несколько кодов. Только вот, мне ближе .NET, поэтому сегодня коды касаются программирования под .NET Framework (за исключением первого кода).
Читайте!
Эта книга была задумана как одна из первых книг о .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 г.
Очень часто требуется получить строку (DataRow), выделенную в DataGrid. Можно было бы просто получить строку из коллекции Rows объекта DataTable с индексом равным свойству CurrentRowIndex грида, но это будет работать, только если грид не отсортирован. Иначе индекс строки грида и индекс в коллекции Rows не совпадут.
Предлагаю вам 2 функции. Вункция GetCurrentRow возвращает текущую строку DataGrid'а, указанного в параметре функции. А функция GetRow позволяет получить строку с произвольным номером.
Public Function GetCurrentRow(ByVal Grid As DataGrid) As DataRow
Dim cm As CurrencyManager = CType(Grid.BindingContext(Grid.DataSource, Grid.DataMember), CurrencyManager)
Dim drv As DataRowView = CType(cm.Current, DataRowView)
Return drv.Row
End Function
Public Function GetRow(ByVal Grid As DataGrid, ByVal ID As Integer) As DataRow
Dim cm As CurrencyManager = CType(Grid.BindingContext(Grid.DataSource, Grid.DataMember), CurrencyManager)
Dim dv As DataView = CType(cm.List, DataView)
Dim drv As DataRowView = dv(ID)
Return drv.Row
Небольшая, но несомненно полезная функция. Заимствована мной из книги Евангелоса Петрусоса "Эффективная работа с Visual Basic .NET". Она создаёт объект Graphics для заданного объекта PictureBox.
Public Function GetGraphicsObject(ByVal pic As PictureBox) As Graphics
Dim bmp As Bitmap
bmp = New Bitmap(pic.Width, pic.Height - 50)
pic.Image = bmp
Dim G As Graphics
G = Graphics.FromImage(bmp)
Return G
End Function
Для своего проекта я когда-то сделал очень полезную процедуру. Она создаёт письмо и закидывает его в папку OutBox почтовика TheBat!. Заодно вы научитесь производить запись файлов и запускать процесс. Писал я этот код для себя, поэтому в некоторых местах требует доработки. Во-первых, следует изменить имя ящика, куда мы закидываем письмо (у меня он называется "Main"). Во-вторых, нужно предварительно проверить, где лежит TheBat.exe.
Опс... Чуть не забыл: нужно ещё положить рядом с вашим exe файл с именем msg.tpl. Он приведён ниже. Это шаблон файла .msg, который будет импортирован в папку OutBox.
Процедура отправки письма:
Private Sub SendMess(ByVal Text As String, ByVal subject As String, ByVal Name As String, ByVal Email As String)
Dim tpl As String
Dim mess As String
Dim fs As IO.FileStream
Dim sr As IO.StreamReader
Dim sw As IO.StreamWriter
fs = New IO.FileStream(System.AppDomain.CurrentDomain.BaseDirectory & "msg.tpl", IO.FileMode.Open, IO.FileAccess.Read)
sr = New IO.StreamReader(fs, System.Text.Encoding.GetEncoding(1251))
tpl = sr.ReadToEnd()
fs = New IO.FileStream("C:\ temp.msg", IO.FileMode.Create, IO.FileAccess.Write)
sw = New IO.StreamWriter(fs, System.Text.Encoding.GetEncoding(1251))
sw.Write(mess)
sw.Close()
fs.Close()
Process.Start("C:\Program files\The Bat!\thebat.exe", "/IMPORTF=""\\Main\Outbox"";FILE=C:\temp\temp.msg;READ") 'Здесь следует подправить путь к TheBat.exe и название почтового ящика
End Sub
Файл msg.tpl. Тут тоже следует кое-что подправить (поля From и Reply-To).
Date: [now]
From: Your name <vasya@pupkin.ru>
X-Mailer: MyProgram
Reply-To: Your name <vasya@pupkin.ru>
X-Priority: 3 (Normal)
To: [to]
Subject: [subject]
MIME-Version: 1.0
Content-Type: text/plain; charset=Windows-1251
Content-Transfer-Encoding: 8bit
BalloonMessage for Microsoft Agent реализует диалог программы с
пользователем, используя при этом технологию Microsoft Agent. OCX реализует три
типа диалоговых окон: InputBox, MsgBox и MsgLabels.
Написал прогу, но не знаю - будет ли работать на других компах:
Прога следующего содержания:
Создал DTHML страницу. При загрузке, страница читает из реестра адрес(getsetting) и грузит по этому адресу ресурс и и-нета в Image.src.
Страница, как и любой DHTML, работает (правильно работает) только при наличии DLL-шки, путь к которой он запоминает при компиле(куда компилировал - там и ищет). Я скомпилил в "С:\", что значительно расширяет список компов, которым прога становится доступна(лучше, чем не чего). Но осенило: а будет ли этот DHTML ВООБЩЕ работать на других машинах??
Может кто-нибудь захочет по-узать "Просмотрщик графики в и-нет"??
Или ответьте пожалуйста на вопрос. Может реестр/ДХТМЛ - это муть, и достаточно WebBrowser.navinate??
Вообще подскажите, как лучше это дело устроить...
Даже при помощи той мути, что я на мудрил, нет доступа ко всем ресурсам.
Например, фоменковские приколы не грузит.
А я встречал прогу, которая делала это легко, вот я тоже хочу такую сделать.
Про плохое качество связи с мировой паутиной молчу...
Как можно в проге сделать так, чтобы она была поверх всех окон (как у StatWin 5.5), и запретить или что-то в этом роде доступ к другим программам(меню и др.) кроме этой. И как скрыть её от Ctrl+Alt+Del?
Если знаете, то киньте мне на мыло или опубликуйте здесь.
1. Возможно ли сделать под VB форму нестандартной геометрии? К примеру, с отверстиями, скруглёнными краями и т.п. В Delphi такая фишка имеется. Если можно, примерчик пжалста...
2. Как проверить, существует ли такая-то директория или файл в ней?
Как определить координаты курсора в TextBox или RichTextBox (т.е. номер текущей строки и номер текущего символа на этой строке) с последующей их передачей в StatusBar.
Это нужно для контроля при вводе форматированных данных
Подскажите как работает API функция и как можно записать про помощи неё новое значение в определённую ячейку памяти. Вот как выглядит функция:
WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Объясните, что значат параметры IpBuffer, nSize и lnNumberOfBytesWritten и в какой из них нужно записывать новое значение. И ещё подскажите как работает ReadProcessMemory и объясните её параметры. Очень нужно.
Некоторые программы, которые я создал,ну не как не хотят запускаться на "компе" моего друга. При запуске выдаётся ошибка о повреждённом файле динамической библиотеки. Кто знает, подскажите в чём дело?
У меня такой вопрос: я делал проекты на ASP, но ни разу еще не запусал их в ИНЕТ. Подскажите, имеет ли бесплатный хостинг поддержку ASP скриптов?
Ответы:
Вопрос:
Известно, как картинку, которая находится в Picture1.Picture сохранить через диалоговое окно. А как сделать, чтобы в Листбоксе диалогового окна можно было бы выбирать несколько форматов сохранения (BMP,JPG,GIF)?
ShellExecute'ом. В качестве параметра - строка вида "mailto:vassya_pupkin@mail.ru" Откроется стандарный мэйлер и сам создаст новое сообщение на указанный адрес. Можно туда же добавить "?Subject=тема".
'Объявление (данный пример для модуля)
Public Declare Function ShellExecute& Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long)
Private Declare Function ShellExecute& Lib "shell32.dll" Alias "ShellExecuteA" (ByVal _
hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters _
As String, ByVal lpDirectory As String, ByVal nShowCmd As Long)
Private Sub Label1_Click()
Label1.FontBold = True
Call ShellExecute(0&, "Open", "mailto:" + "Miki@online.sinor.ru" + "?Subject=" + _
"Как сделать, чтобы при клике по метке с "мыльным" адресом открывалась заготовка сообщения?" + "&body=" + "Привет, Максим!!!", "", "", 1)
End Sub
У меня есть целая глава электронной(HTML) книги, где рассказывается о хелпе в стиле WinHelp.
Могу намылить. В архиве весит около 100 кб. Если ты это имел в виду.
Вопрос:
Расскажите, как осуществляется в VB передача параметров в программу и прием ей их.
Параметры передаются так же, как и любой другой проге. А чтобы их узнать, надо воспользоваться ф-ей Command$. Потом ее можно разбить на массив параметров функцией Split. По разделителю "-". Я так делаю.
Приём и передачу можно сделать 3 способами: командной строкой, промежуточным файлом, записью в реестре (не рекомендуется).
1) Передача: Shell "путь и командная строка".
Приём: w = Command
2) Передача: пишем файл (к примеру TXT с помощью команд Open и Output) и запускаем приложение.
Приём: открываем файл (к примеру TXT с помощью команд Open и Input)
3) не привожу по причине выше
Есть фунция command(), которая выдаст тебе все, что написал юзер после имени файла проги в командной строке. Как ты будешь обрабатывать полученныую строку - решать тебе.
Вопрос:
Как можно произвести сохранение html-страницы методами VB, при условии, что броузер написан в VB, путем использования стандартных компонентов VB
Юзай WinAPI!
FindFirstFile, FindNextFile, FindClose!
Там указывай путь поиска с маской и организовывай рекурсию по сканированию вложенных папок.
Если будет напряг - пиши.
http://vbrussian.com/Files/AfileLib.zip - ActiveX DLL для работы с архивами RAR или ZIP. DLL представляет из себя простой интерфейс для работы с консольными версиями указанных архиваторов. Так -же содержит под 50 методов для работы с файлами. Такие как удаление непустого каталога со всем содержимым, копирование непустого каталога, и многое другое (пример включен в архив). Автор Андрей Федоров
От себя - пробовал, все работает!!!
Если будут проблемы с поиском консольных версий архиваторов, мыль мне ngale@mail.ru - пришлю!!!
Можете заполнить эту форму, либо отослать вопрос СЮДА
Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.