Показать сообщение отдельно
  #3  
Старый 12.01.2016, 17:19
cadil cadil вне форума
Начинающий
 
Регистрация: 24.10.2007
Сообщения: 169
Репутация: 10
По умолчанию

Цитата:
Сообщение от Kailon
Как это не верно?AnsiUpperCase
Каюсь. Неправильно пояснил суть проблемы. Если в исходнике принудительно заменить String на AnsiString, Char на AnsiChar, то все в XE7 компилируется, но по другому пути, чем в SE7. Впрочем, как и со String и Char. Причиной может быть, как пишут в нете:
Цитата:
Все зависит от того на какой версии Дельфи ты компилишь данный код, если на ANSI, то один символ = один байт, если на Unicode, то один символ - два байта.
Вопрос "символ - один или два байта", я планирую решить по схеме (может, это и неверно):
Код:
function HConvert(E:TEdit; var H:Byte):Boolean;
var Hp:Byte; S:String; Error:Boolean;
begin
 Hp:=H; Result:=true;
 Error:=false;
 S:=UpperCase(E.Text);
S:= RawByteString(S);  //!
 case ??? of
 1: if ConvD(S[1])>=0 then H:=ConvD(S[1])
                     else Error:=true;
...
Как вместо ??? записать переменную S в новом формате RawByteString?
Ответить с цитированием