Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Типы.... Добавлено: 23.07.05 14:10  

Автор вопроса:  Gog | ICQ: 288876730 
Есть ли в VB функция, определяющая тип переменной ?

Ответить

  Ответы Всего ответов: 14  

Номер ответа: 1
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #1 Добавлено: 23.07.05 15:10
Если ты переменную объявил, то ты уже знаешь, какой у неё тип.

Ответить

Номер ответа: 2
Автор ответа:
 Softer



ICQ: 203660381  

Вопросов: 29
Ответов: 205
 Web-сайт: hware.org.ua
 Профиль | | #2
Добавлено: 24.07.05 07:03
2 GSerg. А про Variant ты не забыл?

Функция такая есть. Называется VarType
В аргументе пишешь имя переменной, функция фозвращает номер типа данных:
Код Тип данных Константа
0 - Variant/Empty - vbEmpty
1 - Variant/Null - vbNull
2 - Integer - vbInteger
3 - Long - vbLong
4 - Single - vbSingle
5 - Double - vbDouble
6 - Currency - vbCurrency
7 - Date - vbDate
8 - String - vbString
9 - Object - vbObject
10 - Variant/Error - vbError
11 - Boolean - vbBoolean
17 - Byte - vbByte

Насчет других типов не знаю, у меня в описании только эти.

Ответить

Номер ответа: 3
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #3 Добавлено: 24.07.05 08:11
Про Variant я не забыл. Просто показалось, что человек не любит option explicit.

Кстати, VarType возвращает не чистый номер. Там ещё может быть Or с vbArray. Поэтому проверять возвращаемое значение надо не на чистое равенство, а через And.

Ответить

Номер ответа: 4
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #4 Добавлено: 26.07.05 12:44
Хм... ежели ты не про примитивные типы, а про пользовательские типы и классы - то рулит TypeOf.

Ответить

Номер ответа: 5
Автор ответа:
 Gog



ICQ: 288876730 

Вопросов: 6
Ответов: 14
 Профиль | | #5 Добавлено: 27.07.05 11:59
Огромное спосибо.

Ответить

Номер ответа: 6
Автор ответа:
 Gog



ICQ: 288876730 

Вопросов: 6
Ответов: 14
 Профиль | | #6 Добавлено: 27.07.05 12:05
 GSerg Не мог бы ты по подробне объяснить? А то не очень понятно, или примерчик маленький.....

Ответить

Номер ответа: 7
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #7 Добавлено: 27.07.05 12:32
Код покажи.
Как объявлена переменная и в каком смысле ты определяешь её тип.

Ответить

Номер ответа: 8
Автор ответа:
 Gog



ICQ: 288876730 

Вопросов: 6
Ответов: 14
 Профиль | | #8 Добавлено: 28.07.05 12:19
Да нет, кода пока нет.
Но вот приблизительно мне нужно вот что:
 Допустим я заношу в ТекстБокс символы типа стринг, а мне можно только интеджер и я в условии проверяю, если занесенные данные типа string, то exit.....
 что-то здесь конечно не то, но я не долго думала, просто видимо у меня каша с Delphy.
 По-мойму мне здесь нужно просто проверку на ошибку, но все равно хотелось бы знать проверку типов....

Ответить

Номер ответа: 9
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #9 Добавлено: 28.07.05 12:41
Хм... А не проще ли использовать IsNumeric() ?

Ответить

Номер ответа: 10
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #10
Добавлено: 28.07.05 12:45
Не понял, тебе нужно проверять вводится число в текстбокс или нет?
Если фильтр по числам, то можно так:
Private Sub Text1_KeyPress(KeyAscii As Integer)
 Select Case KeyAscii
 Case 48 To 57
 Case Else
  KeyAscii = 0
 End Select
End Sub

Ответить

Номер ответа: 11
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #11
Добавлено: 28.07.05 12:52
 То что ты заносишь в текстбокс по любому преобразуется в стринг, какого бы типа оно не было.
 По идее правильно писать Text1.Text=Str$(5), а если ты пишешь Text1.Text=5, то VB подставляет Str$ автоматически.

Ответить

Номер ответа: 12
Автор ответа:
 Gog



ICQ: 288876730 

Вопросов: 6
Ответов: 14
 Профиль | | #12 Добавлено: 28.07.05 13:01
Поняла как сформировать.....
Мне нужно чтобы в текст бокс можно было вводить скажем только числа .

Ответить

Номер ответа: 13
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #13 Добавлено: 28.07.05 13:17
Тогда
Option Explicit

Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Private Const ES_NUMBER As Long = &H2000&
Private Const GWL_STYLE As Long = -16

Private Sub Form_Load()
  Text1.Text = vbNullString
  SetWindowLong Text1.hwnd, GWL_STYLE, GetWindowLong(Text1.hwnd, GWL_STYLE) Or ES_NUMBER
End Sub

Ответить

Номер ответа: 14
Автор ответа:
 Gog



ICQ: 288876730 

Вопросов: 6
Ответов: 14
 Профиль | | #14 Добавлено: 29.07.05 13:04
Спосибо, попробую.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам