На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (245) « Первая ... 207 208 [209] 210 211 ...  244 245  ( Перейти к последнему сообщению )  
> Есть ли будущее у DELPHI?
    jack128, оно там -2 что ли? :)
      Цитата jack128 @
      Смайк, ты уже не эксперт в дельфях, не говори чего не знаешь.

      :whistle:
      ExpandedWrap disabled
        function BoolToStr(B: Boolean; UseBoolStrs: Boolean = False): string;
        const
          cSimpleBoolStrs: array [boolean] of String = ('0', '-1');
        begin
          if UseBoolStrs then
          begin
            VerifyBoolStrArray;
            if B then
              Result := TrueBoolStrs[0]
            else
              Result := FalseBoolStrs[0];
          end
          else
            Result := cSimpleBoolStrs[B];
        end;


      Хотя Ord(True) = 1, проблемы таки были помню, в том же FIBPlus.
        То есть разницы между строковым представлением и самим значением переменной ты не видишь?
          Помнится, TRUE равное -1 - это в выросшем из VB типе VARIANT. И видимо это через COM вылезает в Delphi.
          А то, что любое ненулевое значение преобразуется в true - это похоже заимствовано из C.
          Сообщение отредактировано: trainer -
            trainer, откуда в C true? :)

            Добавлено
            В C89, конечно же.
              Цитата Мяут-Настоящий @
              trainer, откуда в C true?
              Отсюда:
              ExpandedWrap disabled
                int i = -1;
                if( i )
                   printf("It's true!");
                Цитата trainer @
                А то, что любое ненулевое значение преобразуется в true.

                В дельфи - это не так. Точнее в дельфи есть несколько логических типов, у каждого свое внутреннее представление.
                родной для дельфи/паскаля boolean предполагает, что 0 - это False, а 1 - это True. Но есть еще набор ByteBool/WordBool/LongBool, для взаимодействия с сишными апи, вот для них считается, что 0 - это False, а не 0 - это True.
                  Цитата jack128 @
                  То есть разницы между строковым представлением и самим значением переменной ты не видишь?

                  Так а если наследник TField пользуется BoolToStr/StrToBool? :whistle:
                    Цитата [S]mike @
                    Так а если наследник TField пользуется BoolToStr/StrToBool?

                    а есть наcледник TField пользуется Random() < 0.5 ??

                    Добавлено
                    на счет TBooleanField, в 2010ой дельфе так написано:

                    ExpandedWrap disabled
                      function TBooleanField.GetAsBoolean: Boolean;
                      var
                        B: WordBool;
                      begin
                        if GetData(@B) then Result := B else Result := False;
                      end;


                    то есть если в поле ноль сидит, значит False возвращаем, иначе - True.

                    Вобщем пока не доказано обратного - можно считать, что это korvin где то лажает, а не дельфя.
                      Цитата trainer @
                      Отсюда:

                      Но здесь же нет true. Я к тому, что такого литерала в C89 вообще нет.
                      Это просто "особенность" оператора if, сравни (Python):
                      ExpandedWrap disabled
                        >>> if [1]:
                        ...    print 'a'
                        ...
                        a
                        >>>
                        >>> if [1] is True:
                        ...    print 'a'
                        ...
                        >>>
                        >>> if [1] == True:
                        ...    print 'a'
                        ...
                        >>>
                        Все оказалось немного по-другому: FieldsEditor сгенерил все булевые поля как TStringField, у которого
                        ExpandedWrap disabled
                          function TStringField.GetAsBoolean: Boolean;
                          var
                            S: AnsiString;
                          begin
                            S := GetAsAnsiString;
                            Result := (Length(S) > 0) and CharInSet(S[1], ['T', 't', 'Y', 'y']);
                          end;

                        Кто виноват? Delphi? ADO? ODBC? PostgreSQL?
                          Цитата korvin @
                          Кто виноват? Delphi? ADO? ODBC? PostgreSQL?

                          Ты б например тут спросил, толку было больше
                            Цитата jack128 @
                            Ты б например тут спросил, толку было больше

                            Не, это-то понятно.
                              Delphi такое Delphi :D

                              Цитата
                              ---------------------------
                              Skype
                              ---------------------------
                              Access violation at address 012AD530 in module 'Skype.exe'. Read of address 00000008.
                              ---------------------------
                              OK
                              ---------------------------

                              Версия Скайпа - самая последняя.
                                Цитата [S]mike @
                                Версия Скайпа - самая последняя.

                                Он еще не на .NET разве переписан?
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (245) « Первая ... 207 208 [209] 210 211 ...  244 245


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,1848 ]   [ 14 queries used ]   [ Generated: 16.09.25, 23:33 GMT ]