PDA

Показать полную графическую версию : Visual Basic 2008


Страниц : 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15 16 17 18

Admiral
30-07-2008, 20:45
SendKeys.Send (http://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.send.aspx) не интересуется чем закончилась передача, а SendKeys.SendWait (http://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.sendwait.aspx) будет дожидаться реакции от приложения в которое отправили программно клавишу, а уже потом продолжит выполнять дальнейшие действия.

Проверяя параметры запуска My.Application.CommandLineArgs(0..n)
пример здесь (http://www.daniweb.com/forums/post591231.html)
есть ещё и другой вариант (http://www.functionx.com/vbasic/topics/main.htm) используя конструкцию вида
Public Sub Main(ByVal args() As String)
' Pull the commandline arguments out of the args() variable
End Sub

Uzvern
30-07-2008, 23:09
В чем различие между :
ByVal и ByRef
Private Sub, Sub, Function, Private Function и т.д. какие ещё бывают

Admiral
31-07-2008, 01:34
ByVal – означает по конкретному значению (в контексте определённая переменная); ByRef - по ссылке (адресу) в памяти на место где размещается конкретное значение.
ByVal vs ByRef (http://www.developerfusion.co.uk/show/1763/3/)
Private ( http://msdn.microsoft.com/en-us/library/wx059ey1.aspx) Sub - приватная процедура, её вызов возможен только из текущего модуля (vb файла)
Sub (http://msdn.microsoft.com/en-us/library/dz1z94ha.aspx) - процедура, вызывается на определённое событие
Function (http://msdn.microsoft.com/en-us/library/sect4ck6.aspx) - тоже что и процедура, но обязана явно возвращать значение (ключевое слово Return)
Private ( http://msdn.microsoft.com/en-us/library/wx059ey1.aspx) Function - тоже что и Private ( http://msdn.microsoft.com/en-us/library/wx059ey1.aspx) Sub с той лишь разницей что есть явный возврат значения.
Declared Elements in Visual Basic (http://msdn.microsoft.com/en-us/library/2204db15.aspx)
http://www.intuit.ru/department/office/vba2000/6/ для VBA правда но определения подходят даже к VB.NET

Uzvern
31-07-2008, 02:09
Как работать с Buffer как я понял, он существует для хранения информации или для чего-то другого?

Admiral
31-07-2008, 02:47
Есть пример на MSDN как работать с Buffer Class (http://msdn.microsoft.com/en-us/library/system.buffer(VS.95).aspx)
Buffer only affects arrays of primitive types: Boolean, Char, SByte, Byte, Int16, UInt16, Int32, UInt32, Int64, UInt64, IntPtr, UIntPtr, Single, and Double; this class does not apply to objects. Each primitive type is treated as a series of bytes without regard to any behavior or limitation associated with the primitive type. >> (http://msdn.microsoft.com/en-us/library/system.buffer(VS.95).aspx)
Он нужен для хранения массивов примитивных типов: Boolean, Char, SByte, Byte, Int16, UInt16, Int32, UInt32, Int64, UInt64, IntPtr, UIntPtr, Single, и Double. Созданные объекты в нём хранить нельзя.

mrcnn
01-08-2008, 19:06
а в нете можно асм использовать?

Admiral
01-08-2008, 22:02
Я видел один вариант (доступный лишь в С#).
Использование Assembler в .NET (http://forum.oszone.net/thread-29363.html)
Самое интересное автор искал возможность заюзать его в Visual C++ входящему в .NET студии.

Uzvern
04-08-2008, 00:10
Как узнать регистр нужного символа и при необходимости его сменить?!

Admiral
04-08-2008, 01:09
Узнать номер символа в строчке, которая например, располагается в TextBox1: малого регистра (vbLowerCase) и большого (vbUpperCase) можно так
Format(TextBox1.Text, vbLowerCase)
Format(TextBox1.Text, vbUpperCase)
Что б привести всю строку к малому или большому регистру нужно писать так
TextBox1.Text = StrConv(TextBox1.Text, VbStrConv.Lowercase)
TextBox1.Text = StrConv(TextBox1.Text, VbStrConv.Uppercase)
Немного из истории функции Format (http://www.vbnet.ru/vbguide/showfunction.asp?id=135) в VB6.

Uzvern
04-08-2008, 01:23
Admiral, а где можно почитать про все функции Vb***** Желательно на советском языке.

Delirium
04-08-2008, 01:50
Uzvern, неплохой хелп в MS Excel встроенный. И на русском и понятно. Это если на советском. А если на англ - то MSDN :)

Admiral
04-08-2008, 01:54
Vb*****, это константны языка, а в данном случаи константа VbStrConv.***** используется как параметр функции StrConv.
Что б все и на русском это сложно, вот описание 162* на текущий момент функций Visual Basic .NET (http://kbyte.ru/Refbooks/ShowGroup.aspx?id=3&lang=ru)
Значения констант, на английском правда, http://vb2py.sourceforge.net/docs/vbconstants.html#list-of-constants

Delirium
04-08-2008, 01:57
Admiral, зачем вам MSDN, такое впечатление, что все ссылки и остальное в голове держишь :)

Admiral
04-08-2008, 02:06
Delirium попросили на русском, вот как раз ссылку с одного ресурса программистов и дал, а вторая даёт в удобной форме представление. А так конечно, всё, кроме недокументированных возможностей, можно найти в MSDN. А ссылки, если что, можно всегда вспомнить через поисковик...

alexa___
04-08-2008, 08:44
Помогите пожалуйста.
Нужно на форме разместить фрейм с вертикальной прокруткой, чтобы на нем можно было разместить несколько изображений. Как это можно сделать?

Delirium
04-08-2008, 09:12
alexa___, вы имеете в виду веб приложение или VBA?

alexa___
04-08-2008, 09:34
Delirium, обычное оконное приложение. Вот незнаю каким компонентом сделать.

Uzvern
04-08-2008, 20:53
alexa___, если я правильно понял, то будет что-то типо этого (ток над кодом надо ещё немного подшаманить) :
Public Class Form1

Private VSB As New VScrollBar
Private PB As PictureBox

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Controls.Add(VSB)

AddHandler VSB.Scroll, AddressOf VSB_Scroll

VSB.Dock = DockStyle.Right

For PBI As Integer = 0 To 3
Dim PB As New PictureBox
PB.Size = New Size(100, 100)
PB.Image = PB.ErrorImage
PB.Location = New Point(100, PB.Location.Y + 100 + PBI * 100)
Controls.Add(PB)
Next

End Sub

Private Sub VSB_Scroll(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ScrollEventArgs)
If Not VSB.Value = 0 And Not VSB.Value = 91 Then
For Each CE In Controls
If TypeOf CE Is PictureBox Then
PB = CE
If e.OldValue > e.NewValue Then
PB.Location = New Point(PB.Location.X, PB.Location.Y + e.NewValue + e.OldValue)
Else
PB.Location = New Point(PB.Location.X, PB.Location.Y - e.NewValue - e.OldValue)
End If
End If
Next
End If
End Sub
End Class

alexa___
05-08-2008, 10:03
Uzvern, Спасибо, но не то наверное. Мне ненужен код.
Нужен инструмент (компонент), с помощью которого можно сделать.
Необходимо поле с прокруткой на котором можно расположить другие объекты, всего лишь.

Uzvern
05-08-2008, 14:08
alexa___, если надо поле, то можно спокойно использовать ToolStripContainer или GroupBox применя вышеизложеный код для прокрутки компонентов. На счет компонента : самому бы хотелось узнать существует ли такой.




© OSzone.net 2001-2012