Страница: 1 |
Вопрос: Типы.... | Добавлено: 23.07.05 14:10 |
Автор вопроса: ![]() |
Есть ли в VB функция, определяющая тип переменной ? |
Ответы | Всего ответов: 14 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() Вопросов: 0 Ответов: 1876 ![]() |
Профиль | Цитата | #1 | Добавлено: 23.07.05 15:10 |
Если ты переменную объявил, то ты уже знаешь, какой у неё тип. |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ICQ: 203660381 Вопросов: 29 Ответов: 205 |
Web-сайт: Профиль | Цитата | #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 Автор ответа: ![]() ![]() ![]() Вопросов: 0 Ответов: 1876 ![]() |
Профиль | Цитата | #3 | Добавлено: 24.07.05 08:11 |
Про Variant я не забыл. Просто показалось, что человек не любит option explicit.
Кстати, VarType возвращает не чистый номер. Там ещё может быть Or с vbArray. Поэтому проверять возвращаемое значение надо не на чистое равенство, а через And. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 334781088 Вопросов: 108 Ответов: 2822 |
Профиль | Цитата | #4 | Добавлено: 26.07.05 12:44 |
Хм... ежели ты не про примитивные типы, а про пользовательские типы и классы - то рулит TypeOf. |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ICQ: 288876730 Вопросов: 6 Ответов: 14 |
Профиль | Цитата | #5 | Добавлено: 27.07.05 11:59 |
Огромное спосибо. |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ICQ: 288876730 Вопросов: 6 Ответов: 14 |
Профиль | Цитата | #6 | Добавлено: 27.07.05 12:05 |
GSerg Не мог бы ты по подробне объяснить? А то не очень понятно, или примерчик маленький..... |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() Вопросов: 0 Ответов: 1876 ![]() |
Профиль | Цитата | #7 | Добавлено: 27.07.05 12:32 |
Код покажи.
Как объявлена переменная и в каком смысле ты определяешь её тип. |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ICQ: 288876730 Вопросов: 6 Ответов: 14 |
Профиль | Цитата | #8 | Добавлено: 28.07.05 12:19 |
Да нет, кода пока нет.
Но вот приблизительно мне нужно вот что: Допустим я заношу в ТекстБокс символы типа стринг, а мне можно только интеджер и я в условии проверяю, если занесенные данные типа string, то exit..... что-то здесь конечно не то, но я не долго думала, просто видимо у меня каша с Delphy. По-мойму мне здесь нужно просто проверку на ошибку, но все равно хотелось бы знать проверку типов.... |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 334781088 Вопросов: 108 Ответов: 2822 |
Профиль | Цитата | #9 | Добавлено: 28.07.05 12:41 |
Хм... А не проще ли использовать IsNumeric() ? |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 204447456 Вопросов: 180 Ответов: 4229 |
Web-сайт: Профиль | Цитата | #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 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 204447456 Вопросов: 180 Ответов: 4229 |
Web-сайт: Профиль | Цитата | #11 | Добавлено: 28.07.05 12:52 |
То что ты заносишь в текстбокс по любому преобразуется в стринг, какого бы типа оно не было.
По идее правильно писать Text1.Text=Str$(5), а если ты пишешь Text1.Text=5, то VB подставляет Str$ автоматически. |
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ICQ: 288876730 Вопросов: 6 Ответов: 14 |
Профиль | Цитата | #12 | Добавлено: 28.07.05 13:01 |
Поняла как сформировать.....
Мне нужно чтобы в текст бокс можно было вводить скажем только числа . |
Номер ответа: 13 Автор ответа: ![]() ![]() ![]() Вопросов: 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 Автор ответа: ![]() ![]() ![]() ICQ: 288876730 Вопросов: 6 Ответов: 14 |
Профиль | Цитата | #14 | Добавлено: 29.07.05 13:04 |
Спосибо, попробую. |
Страница: 1 |
|