Страница: 1 | 2 |
Байты - 8-битовые (1-байтовые) целые числа без знака, располагающиеся в ценности от 0 до 255 (0 к 2^8-1). Характер(знак) спецификатора типа для Байта:?. Переменные Байта идентифицированы следующим переменное название(имя) с маркой вопроса (то есть, var?), или, используя DEFBYT утверждение(заявление) как описано в предыдущем обсуждении Целых чисел. Вы можете также объявлять переменные Байта, использующие БАЙТ keyword с ТУСКЛЫМ утверждением(заявлением). Например: ТУСКЛЫЙ я КАК БАЙТ это меня ваще прибило))
Вопрос: Boolean
Добавлено: 17.06.04 05:56
Автор вопроса: freeloader | Web-сайт:
Ответы
Всего ответов: 16
Номер ответа: 1
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #1
Добавлено: 17.06.04 09:43
А зачем он тебе? У VB-шных выражений TRUE и FALSE есть вполне определённые цифровые выражения: False соответствует значению 0, а True - любое ненулевое значение. T.е. если ф-ция возвратила ноль - значит False, в остальных случаях -True. Примерно так:
IF MyFunction THEN
'здесь код, выполняемый, если True
ELSE
'здесь - если False
END IF
Можно писать так: IF MyFunction = %TRUE или наоборот IF MyFunction = %FALSE, что эквивалентно соответственно = -1 или = 0
Номер ответа: 2
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #2
Добавлено: 17.06.04 10:22
так что заместо двухбайтового Bool использовать рекомендуется однобайтовый Byte...
Номер ответа: 3
Автор ответа:
freeloader
ICQ: 50804884
Вопросов: 72
Ответов: 642
Web-сайт:
Профиль | | #3
Добавлено: 17.06.04 10:52
Номер ответа: 4
Автор ответа:
alex
Вопросов: 84
Ответов: 453
Профиль | | #4
Добавлено: 17.06.04 12:09
В VB тип BOOLEAN реализован через 2-байтовое целое. Поэтому его аналогом в PB должен быть Long или Dword, а не Byte.
Номер ответа: 5
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #5
Добавлено: 17.06.04 12:22
это без разницы, два байта или один. Все boolean функции в ВБ можно смело использовать byte...
ЗЫ
Dword (double word), это не как не ДВА байта!!!! а все ЧЕТЫРЕ!
Номер ответа: 6
Автор ответа:
alex
Вопросов: 84
Ответов: 453
Профиль | | #6
Добавлено: 17.06.04 13:17
Действительно никакой разницы нет, что Byte, что Word...
Один пес.. работают оба варианта
'PB DLL
#Compile Dll
Function TEST1() Export As Byte
Function=1 'TRUE
End Function
Function TEST2() Export As Byte
Function=0 'FALSE
End Function
'VB исходник
Private Declare Function TEST1 Lib "TEST.dll" () As Boolean
Private Declare Function TEST2 Lib "TEST.dll" () As Boolean
Private Sub Command1_Click()
MsgBox TEST1
MsgBox TEST2
End Sub
Номер ответа: 7
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #7
Добавлено: 17.06.04 16:32
А чего бы им не работать ) Процессор не понимает БУКВЫ (True или False). Он понимает только ЦИФРЫ (0 или 1 или -1 или ещё что). А слово True обозначает буквально следующее:
Const True = 1&
Const False = 0&
И слово False как раз не является булевым выражением, оно подставляется для удобства пользования, булевым выражением является 0&
Номер ответа: 8
Автор ответа:
@CyRax PTR
ICQ: 204447456
Вопросов: 28
Ответов: 664
Web-сайт:
Профиль | | #8
Добавлено: 17.06.04 20:50
Эй, люди, вы чего? Какой байт, какой лонг/дворд.
Болеан в ПБ - это интегер.
 im A as Integer
A=%TRUE
IF ISTRUE THEN
ELSEIF ISFALSE ...
Номер ответа: 9
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #9
Добавлено: 18.06.04 02:00
Ну правильно, интегер, но не в этом суть, а в том, что False - это просто константа = 0
Номер ответа: 10
Автор ответа:
@CyRax PTR
ICQ: 204447456
Вопросов: 28
Ответов: 664
Web-сайт:
Профиль | | #10
Добавлено: 18.06.04 03:34
Не, ну конечно же экспортная функция не вернёт тебе Boolean. В PB его просто нету.
Вот если бы ты был знаком с VB3, тогда бы тебе было конечно легче. Интерфейс PB остановился в развитии примерно на том уровне. В VB3 тоже не было глобальной COM-мизации и TRUE/FALSE нужно было объявлять как константу.
Номер ответа: 11
Автор ответа:
freeloader
ICQ: 50804884
Вопросов: 72
Ответов: 642
Web-сайт:
Профиль | | #11
Добавлено: 18.06.04 07:57
Номер ответа: 12
Автор ответа:
freeloader
ICQ: 50804884
Вопросов: 72
Ответов: 642
Web-сайт:
Профиль | | #12
Добавлено: 18.06.04 08:41
Номер ответа: 13
Автор ответа:
@CyRax PTR
ICQ: 204447456
Вопросов: 28
Ответов: 664
Web-сайт:
Профиль | | #13
Добавлено: 18.06.04 09:46
Открой Win32Api.inc и поищи там объявляемую функцию. Если она там уже есть, то объявить второй раз ты её не можешь.
Есть два пути:
1. Прибить её объявление в Win32Api.inc
2. Прибить директиву #Include "Win32Api.inc"
Номер ответа: 14
Автор ответа:
alex
Вопросов: 84
Ответов: 453
Профиль | | #14
Добавлено: 18.06.04 10:07
Декларировать самому в PB API функции не следует, почти все они есть в Win32Api.inc
VB декларации могут глючить в PB, сам с таким сталкивался...
Номер ответа: 15
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #15
Добавлено: 18.06.04 10:49
И ещё бывает, что названия API ф-ций в VB и PB различные.