ct := concat(ct, String(Chr(ctInt)));
function Escape(const Value: string);
var
C: Char;
begin
Result := '';
for C in Value do begin
if C = #0 then begin
Result := Result + '''#0''';
end else begin
Result := Result + C;
end; // if
end; // loop
end;
procedure RPR;
var
AL: UInt32;
begin
AL := GDAL;
if (AL <> AL1s[1]) and (AL <> AL1s[2]) then ALV;
end;
constructor TDSTableProducerEditor.Create(DSTableProducer: TDSTableProducer);
begin
inherited Create;
FDSTableProducer := DSTableProducer;
FDSTableProducer.Editor := Self;
{$IFDEF MSWINDOWS}
RPR;
{$ENDIF}
{$IFDEF LINUX}
RCS;
{$ENDIF}
end;
constructor TDBXClientDriver.Create(DriverDef: TDBXDriverDef);
begin
inherited Create(DriverDef);
{$IF NOT (DEFINED(IOS) or DEFINED(ANDROID))}
rpr;
{$ENDIF}
Кроме того, в mobile очень долго пихали несовместимый Delphi NextGen. Мы до сих пор не можем оправиться от несовместимого перехода между Delphi 2007 и Delphi 2009 на Юникод (на моей текущей работе тоже упёрлись в 2007 и дальше до сих пор никак). А NextGen был как Юникод номер два. Причём, для desktop не было NextGen. Короче, много дров наломали.
Потом началась вторая трансформация, бум HTML5. В этот период desktop и mobile оба вместе съёживаются по отношению к web, и Delphi до сих пор нечего предложить на этом поприще.
Сейчас в первую очередь делается web-версия, потом, если сил хватит, mobile, но часто просто берётся тот же web и пихается внутрь программы-браузера. А до desktop уже никто и не доходит толком. А кто всё же дошёл, там каждый первый сделал программу-браузер. В этом сценарии нет места для Delphi.
Абстрагируйтесь от языка программирования и попробуйте в своём городе найти вакансию desktop-разработчика. Это не Delphi вымирает, а desktop вымирает, а уже потом вместе с desktop и Delphi, который не смог особо вылезти за пределы своей основной ниши.
В ЖКХ и энергетике остались как раз такие резервации, где немыслимо начинать с web. Там остался полноценный desktop, и только там может комфортно существовать Delphi.