Конференция "Компоненты" » ImageIndex в TCollectionItem не показывается
 
  • DimaBr © (30.05.12 15:55) [20]
    Понятно, я наблюдал на RAD 2009 кривую работу стандартной функции Val, тоже удивлялся
    http://www.sql.ru/forum/actualthread.aspx?bid=20&tid=931379
  • Rouse_ © (30.05.12 16:55) [21]

    > DimaBr ©   (30.05.12 15:55) [20]
    >
    > Понятно, я наблюдал на RAD 2009 кривую работу стандартной
    > функции Val, тоже удивлялся

    Ну у них периодически косяки всплывают.
    В 2010-ой например, сейчас не работает CharInSet с русскими буквами, как пример:

    var
     С: Char;
    begin
     С := 'я';
     if not CharInSet(С, ['а'..'я']) then
       ShowMessage('FAILED!!!');



    ибо реализация у него:
    function CharInSet(C: WideChar; const CharSet: TSysCharSet): Boolean;
    begin
     Result := (C < #$0100) and (AnsiChar(C) in CharSet);
    end;

    передаваемая буква "я" равна #$44F и фэйл происходит на первом сравнении,
    а второе сравнение фейлит на приведении к AnsiChar-у, возвращая вместо ансишной "я" (с кодом 255) ансишное "O" (с кодом 79)
  • Cobalt © (01.06.12 13:11) [22]
    Ну, это методологический косяк.
    Странно то, что они не отметили эту функцию как obsolete, для ясности.
  • Rouse_ © (01.06.12 14:19) [23]

    > Cobalt ©   (01.06.12 13:11) [22]
    >
    > Ну, это методологический косяк.
    > Странно то, что они не отметили эту функцию как obsolete,
    >  для ясности.

    Что за методологический? Ты иногда так выражаешся, что я категорически не понимаю об чем спичь :)
    Что за метода и почему они должны отметить данную функцию как obsolete с учетом того что она только в 2010-ой дельфе была введена, как замена старому
    if C in [setdata] then.


    Об чем собственно компилер при сборке и предупреждает:
    [DCC Warning] Project1.dpr(63): W1050 WideChar reduced to byte char in set expressions.  Consider using 'CharInSet' function in 'SysUtils' unit.


    Получается, что они должны были выпустить уже устаревшую, на момент ее появления, функцию? :))))
  • Cobalt © (01.06.12 15:01) [24]
    не шибко мудро сравнивать 2байт-символ с 1байт-символ
  • Rouse_ © (02.06.12 10:50) [25]

    > Cobalt ©   (01.06.12 15:01) [24]
    > не шибко мудро сравнивать 2байт-символ с 1байт-символ

    Советую это объяснить напрямую разработчикам данной функции :)
  • Cobalt © (02.06.12 22:35) [26]
    И вдобавок разработчикам-пользователям этой функции :)
  • Rouse_ © (02.06.12 23:22) [27]
    Вовч, опять не понял...
    Грамотные пользователи воспользуются оператором case, ну или на крайняк перепишут столь поразившее тебя двухбайтовое сравнение через приведение на AnsiString[Char]
 
Конференция "Компоненты" » ImageIndex в TCollectionItem не показывается
Есть новые Нет новых   [118609   +49][b:0][p:0.001]