70 сообщений в этой теме

ето получается когда я повернул устройство

Screenshot_20170714-152605.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, aldi77 сказал:

ето получается когда я повернул устройство

Какое устройство? intel?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
16 часов назад, Равиль Зарипов (ZuBy) сказал:

Какое устройство? intel?

HTC U11

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добрый день

Тестирую покраску статус бара методом, описанным в блоге Равиля.

Не совсем понятен нюанс с добавлением styles.xml в RemotePath res\values-v21\.

Если так сделать, то при попытке компиляции проекта с SDK API Level, меньшим 19, среда выдает ошибки об отсутствии функций 

\res\values-v21\styles.xml:4: error: Error: No resource found that matches the given name: attr 'android:windowTranslucentNavigation

\res\values-v21\styles.xml:3: error: Error: No resource found that matches the given name: attr 'android:windowTranslucentStatus

Значит ли это, что приложения с этим статус баром не смогут работать под Android ниже 4.4? Даже если они и не поддерживают перекраску статус бара?

И как будет отображаться статус бар под Android 4.4?

Заранее спасибо! 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Стиль наследуется, потому указан v21, что соответствует Lollipop. Ниже 21 сдк, не будет покраски, будет чёрный статус бар

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, включён.

Но переделан под 9 patch.

В деплойменте к названиям сплешей в конце добавлено _def.9.png и деактивирован файл splash_image_def.xml согласно инструкции http://docwiki.embarcadero.com/RADStudio/Berlin/en/Using_9-patch_Images_in_Android

Изменено пользователем Alex7wrt

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добрый день, сначала мне жаль, потому что я не знаю русского языка. Я использую переводчик Google.
У меня есть следующая проблема: я использую вашу библиотеку для изменения цвета панели состояния (ZenFone3, android 7) отлично работает, пока я не отключу «Включить всплывающее изображение» там, где он больше не компилируется, и возвращает мне следующую ошибку.

[Ошибка PAClient] E2312 D: \ OffersCap \ Mobile \ Android \ Release \ OfferCap \ res \ values-v21 \ styles.xml: 5: Ошибка: Ошибка: ресурс не найден, который соответствует указанному имени (на 'android: windowBackground 'со значением' @ drawable / splash_image_def ').

если вы можете мне помочь, спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
16 часов назад, Alisson R Oliveira сказал:

если вы можете мне помочь, спасибо

решение может быть такое

не использовать стиль, тоже самое можно сделать программно. посмотрите этот модуль

Скрытый текст

unit FMX.StatusBar;

{
  author : ZuBy
  rzaripov1990@gmail.com
}

interface

uses
  System.UITypes, FMX.Platform
{$IFDEF ANDROID} ,
  Androidapi.JNI.GraphicsContentViewText, Androidapi.JNIBridge, Androidapi.Helpers,
  Androidapi.JNI.JavaTypes, Androidapi.JNI.App, FMX.Platform.Android, FMX.Helpers.Android
{$ELSEIF defined(IOS)}
    , FMX.Helpers.iOS, FMX.Platform.iOS, iOSapi.UIKit, iOSapi.Foundation, iOSapi.CoreGraphics, iOSapi.CoreImage
{$ENDIF};

{$IFDEF ANDROID}

type
  JWindowManager_LayoutParamsClassExt = interface(JWindowManager_LayoutParamsClass)
    ['{48861EC2-BC53-440A-B1B8-76FF4DF36F97}']
    { class } function _GetFLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS: Integer; cdecl;
    { class } property FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS: Integer read _GetFLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS;
  end;

  TJWindowManager_LayoutParamsExt = class(TJavaGenericImport<JWindowManager_LayoutParamsClassExt,
    JWindowManager_LayoutParams>)
  end;

  [JavaSignature('android/view/Window')]
  JWindowExt = interface(JWindow)
    ['{2810B178-9634-453D-8963-19CE145E6669}']
    procedure setStatusBarColor(color: Integer); cdecl;

    function getStatusBarColor: Integer; cdecl;
  end;

  TJWindowExt = class(TJavaGenericImport<JWindowClass, JWindowExt>)
  end;

function GetWindowExt: JWindowExt;
{$ENDIF}
function Darker(color: TAlphaColor; Percent: Byte): TAlphaColor;

procedure StatusBarGetBounds(out StatusBar, navigationBar: Integer);  // получаем размеры статус бара и нав бара
procedure StatusBarSetColor(const aColor: TAlphaColor); // устанавливаем цвет формы!!

implementation

uses
  System.SysUtils;

function MulDiv(nNumber, nNumerator, nDenominator: Integer): Integer;

  function MathRound(AValue: Extended): Int64; inline;
  begin
    if AValue >= 0 then
      Result := Trunc(AValue + 0.5)
    else
      Result := Trunc(AValue - 0.5);
  end;

begin
  if nDenominator = 0 then
    Result := -1
  else
    Result := MathRound(Int64(nNumber) * Int64(nNumerator) / nDenominator);
end;

function Darker(color: TAlphaColor; Percent: Byte): TAlphaColor;
var
  r, g, b: Byte;
begin
  r := TAlphaColorRec(color).r;
  g := TAlphaColorRec(color).g;
  b := TAlphaColorRec(color).b;
  r := r - MulDiv(r, Percent, 100);
  g := g - MulDiv(g, Percent, 100);
  b := b - MulDiv(b, Percent, 100);
  Result := TAlphaColorF.Create(r / 255, g / 255, b / 255, 1).ToAlphaColor;
end;

function Lighter(color: TAlphaColor; Percent: Byte): TAlphaColor;
var
  r, g, b: Byte;
begin
  r := TAlphaColorRec(color).r;
  g := TAlphaColorRec(color).g;
  b := TAlphaColorRec(color).b;
  r := r + MulDiv(255 - r, Percent, 100);
  g := g + MulDiv(255 - g, Percent, 100);
  b := b + MulDiv(255 - b, Percent, 100);
  Result := TAlphaColorF.Create(r / 255, g / 255, b / 255, 1).ToAlphaColor;
end;

{$IFDEF ANDROID}

function GetWindowExt: JWindowExt;
begin
  Result := TJWindowExt.Wrap((MainActivity.getWindow as ILocalObject).GetObjectID);
end;
{$ENDIF}

procedure StatusBarGetBounds(out StatusBar, navigationBar: Integer);
{$IFDEF ANDROID}
var
  KeyCharacterMap: JKeyCharacterMap;
  resourceID: Integer;
  ScreenService: IFMXScreenService;
  sScale: Single;
{$ENDIF}
begin
  navigationBar := 0;
  StatusBar := 0;
{$IFDEF ANDROID}
  if TOSVersion.Check(5, 0) then // вроде только работает с 5.0 ниже нет устройства проверить
  begin
    sScale := 1;
    if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService, IInterface(ScreenService)) then
      sScale := ScreenService.GetScreenScale; // получаем скейл

    resourceID := TAndroidHelper.Activity.getResources.getIdentifier(StringToJString('status_bar_height'),
      StringToJString('dimen'), StringToJString('android'));
    if resourceID > 0 then
      StatusBar := Trunc(TAndroidHelper.Activity.getResources.getDimensionPixelSize(resourceID) / sScale);

    if not TJKeyCharacterMap.JavaClass.deviceHasKey(TJKeyEvent.JavaClass.KEYCODE_BACK) then
    // проверка на существование наэкранных кнопок или физических
    begin
      resourceID := TAndroidHelper.Activity.getResources.getIdentifier(StringToJString('navigation_bar_height'),
        StringToJString('dimen'), StringToJString('android'));
      if resourceID > 0 then
        navigationBar := Trunc(TAndroidHelper.Activity.getResources.getDimensionPixelSize(resourceID) / sScale);
    end;
  end;
{$ENDIF}
end;

{$IFDEF IOS}

function GetStatusBarView: UIView;
var
  I: Integer;
  LViews: NSArray;
  LView: UIView;
begin
  Result := nil;
  LViews := SharedApplication.keyWindow.rootViewController.view.subviews;
  for I := 0 to LViews.count - 1 do
  begin
    LView := TUIView.Wrap(LViews.objectAtIndex(I));
    if CGRectEqualToRect(LView.frame, SharedApplication.statusBarFrame) <> 0 then
    begin
      Result := LView;
      Break;
    end;
  end;
end;

procedure SetStatusBarBackgroundColor(const ABackgroundColor: TAlphaColor);
var
  Red: Single;
  Green: Single;
  Blue: Single;
  ColorCI: CIColor;
  ColorUI: UIColor;
  StatusBarView: UIView;
begin
  StatusBarView := GetStatusBarView;
  if StatusBarView = nil then
    Exit;
  Red := TAlphaColorRec(ABackgroundColor).r / 255;
  Green := TAlphaColorRec(ABackgroundColor).g / 255;
  Blue := TAlphaColorRec(ABackgroundColor).b / 255;
  ColorCI := TCIColor.Wrap(TCIColor.OCClass.colorWithRed(Red, Green, Blue));
  ColorUI := TUIColor.Wrap(TUIColor.OCClass.colorWithCIColor(ColorCI));
  StatusBarView.setBackgroundColor(ColorUI);
  if TOSVersion.Check(7, 0) then
    SharedApplication.keyWindow.rootViewController.setNeedsStatusBarAppearanceUpdate;
end;
{$ENDIF}

procedure StatusBarSetColor(const aColor: TAlphaColor);
{$IFDEF ANDROID}
var
  Window: JWindowExt;
{$ENDIF}
begin
{$IFDEF ANDROID}
  CallInUIThread(
    procedure
    begin
      if TOSVersion.Check(5, 0) then
      begin
        Window := GetWindowExt;
        Window.setFlags(TJWindowManager_LayoutParams.JavaClass.FLAG_TRANSLUCENT_STATUS,
          TJWindowManager_LayoutParams.JavaClass.FLAG_TRANSLUCENT_STATUS);
        Window.setFlags(TJWindowManager_LayoutParamsExt.JavaClass.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS,
          TJWindowManager_LayoutParamsExt.JavaClass.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        Window.setStatusBarColor(-16777216);
      end;
    end);
{$ENDIF}
{$IFDEF IOS}
  SetStatusBarBackgroundColor(aColor);
{$ENDIF}
end;

end.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Он работал, теперь он рисует строку состояния, но экран идет позади ... Я не видел, чтобы функция могла получить высоту строки состояния, чтобы сделать интервал, например, один из предыдущего примера
"Layout.Margins.Top: = TmyWindow.StatusBarHeight;"
Не могли бы вы помочь мне, как мне это сделать с этим новым подразделением, которое вы показали?

благодарный

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Alisson R Oliveira сказал:

Он работал, теперь он рисует строку состояния, но экран идет позади ... Я не видел, чтобы функция могла получить высоту строки состояния, чтобы сделать интервал, например, один из предыдущего примера
"Layout.Margins.Top: = TmyWindow.StatusBarHeight;"
Не могли бы вы помочь мне, как мне это сделать с этим новым подразделением, которое вы показали?

благодарный

Использовать процедуру 

StatusBarGetBounds, там будет высота статус бара

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

извините за мое понимание вашего подразделения. Процедура «StatusBarGetBounds» не является функцией, которая не возвращает мне значение высоты строки состояния, поэтому я говорю, что у меня есть много знаний о предмете, высота бара состояния и босса для всех версий android (от 5 ) и независимо от марки устройства (asus, samsung, lg и др.)? Как вы можете привести пример правильного использования описанных вами процедур.

еще раз спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Alisson R Oliveira сказал:

извините за мое понимание вашего подразделения. Процедура «StatusBarGetBounds» не является функцией, которая не возвращает мне значение высоты строки состояния, поэтому я говорю, что у меня есть много знаний о предмете, высота бара состояния и босса для всех версий android (от 5 ) и независимо от марки устройства (asus, samsung, lg и др.)? Как вы можете привести пример правильного использования описанных вами процедур.

еще раз спасибо

Процедура возвращает результат в параметрах

var
  statusbar, navbar: integer;
begin
  StatusBarGetBounds(statusbar, navbar);
  Control.Margin.Top := statusbar;
end;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Очень хорошая проблема позиционирования управления по отношению к разрешенной строке состояния, я искал функцию, которая возвращает мне целое число, плюс и процедуру.

кажется, что все работает отлично, за исключением одной детали, цвет, который я передаю как параметр, не используется для рисования строки состояния. и фиксированный цвет. анализируя процедуру, которая делает это «StatusBarSetColor» увидела, что он получает «const aColor: TAlphaColor» и только использует на устройствах iOS в Android фиксированное значение

procedure StatusBarSetColor(const aColor: TAlphaColor);
{$IFDEF ANDROID}
var
  Window: JWindowExt;
{$ENDIF}
begin
{$IFDEF ANDROID}
  CallInUIThread(
    procedure
    begin
      if TOSVersion.Check(5, 0) then
      begin
        Window := GetWindowExt;
        Window.setFlags(TJWindowManager_LayoutParams.JavaClass.FLAG_TRANSLUCENT_STATUS,
          TJWindowManager_LayoutParams.JavaClass.FLAG_TRANSLUCENT_STATUS);
        Window.setFlags(TJWindowManager_LayoutParamsExt.JavaClass.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS,
          TJWindowManager_LayoutParamsExt.JavaClass.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        Window.setStatusBarColor(-16777216);
      end;
    end);
{$ENDIF}
{$IFDEF IOS}
  SetStatusBarBackgroundColor(aColor);
{$ENDIF}
end;

Screenshot_20171113-104835.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Alisson R Oliveira сказал:

Очень хорошая проблема позиционирования управления по отношению к разрешенной строке состояния, я искал функцию, которая возвращает мне целое число, плюс и процедуру.

кажется, что все работает отлично, за исключением одной детали, цвет, который я передаю как параметр, не используется для рисования строки состояния. и фиксированный цвет. анализируя процедуру, которая делает это «StatusBarSetColor» увидела, что он получает «const aColor: TAlphaColor» и только использует на устройствах iOS в Android фиксированное значение

procedure StatusBarSetColor(const aColor: TAlphaColor);
{$IFDEF ANDROID}
var
  Window: JWindowExt;
{$ENDIF}
begin
{$IFDEF ANDROID}
  CallInUIThread(
    procedure
    begin
      if TOSVersion.Check(5, 0) then
      begin
        Window := GetWindowExt;
        Window.setFlags(TJWindowManager_LayoutParams.JavaClass.FLAG_TRANSLUCENT_STATUS,
          TJWindowManager_LayoutParams.JavaClass.FLAG_TRANSLUCENT_STATUS);
        Window.setFlags(TJWindowManager_LayoutParamsExt.JavaClass.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS,
          TJWindowManager_LayoutParamsExt.JavaClass.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        Window.setStatusBarColor(-16777216);
      end;
    end);
{$ENDIF}
{$IFDEF IOS}
  SetStatusBarBackgroundColor(aColor);
{$ENDIF}
end;

Screenshot_20171113-104835.jpg

Текущая реализация не позволяет нам менять цвет статус бара, потому что в FMX используется старая тема Holo.

Поэтому устанавливается полупрозрачный цвет для нативного окна, и регулируется цвет статус бара с помощью установки цвета формы. 

Так достигается эффект покраски статус бара

Anatoliy понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я понимаю, что я рассмотрю дорожную карту грузоотправителя, чтобы посмотреть, будет ли эта деталь изменена. С вашим объяснением и вашим устройством я помещаю TRectangle с желаемым цветом, чтобы быть backgroud, поэтому у меня был «желаемый результат».

Большое спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а тему поменять нельзя с Holo на Material в ресурсах?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
16 минут назад, haword сказал:

а тему поменять нельзя с Holo на Material в ресурсах?

наверное можно поменять, но не ясно на что это повлияет

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Похожие публикации

    • Автор: om.pranayama
      Здравствуйте форумчане и профессионалы разработчики.
      Компилирую проект через C++Builder 10.2  под Android
      Появилась следующая проблема при использовании компонента TBitmapListAnimation
      Если приложение свернуть, а затем развернуть - то появляются жуткие глитчи в ввиде чёрных фонов вокруг компонентов, типа TImage, TButton.
      В Windows такая проблема - не наблюдается.
      Попытки вызвать Repaint или даже Invalidate для всей формы - положительного результата не дают.
      Пожалуйста, помогите решить эту проблему.
      //--------------------------------------------------------------------------------------------------------------------------------------------
      ТЕМУ МОЖНО УДАЛЯТЬ
      Причина не в TBitmapListAnimation а в TAniIndicator, который работал совместно с TBitmapListAnimation.
      Приношу извинения за беспокойство. Проблема была в TAniIndicator. Буду разбираться почему он так себя безобразно ведёт.
      Тему можно удалять.
    • Автор: Aptyp
      В приложении:
          procedure TForm7.Button1Click(Sender: TObject);     var AIntent: JIntent;         AServiceName: string;     begin       AIntent := TJIntent.Create;       AServiceName := 'com.embarcadero.services.Service';       AIntent.setClassName( TAndroidHelper.Context.getPackageName(), TAndroidHelper.StringToJString( AServiceName ) );       AIntent.putExtra( TAndroidHelper.StringToJString( 'Code' ), 0 );       AIntent.putExtra( TAndroidHelper.StringToJString( 'Data' ), TAndroidHelper.StringToJString( 'DataString' ) );       TAndroidHelper.Activity.startService( AIntent );     end;
      В сервисе:
          procedure TDM.AndroidIntentServiceCreate(Sender: TObject);     begin       Toast( 'Create' );     end;          procedure TDM.AndroidIntentServiceHandleIntent(const Sender: TObject;       const AnIntent: JIntent);     begin       Toast( 'HandleIntent' );     end; Сообщение 'Create' показывается, а 'HandleIntent' нет. OnCreate срабатывает, но onHandleIntent не вызывается что бы я не делал. Может я что-то не так делаю?
    • Автор: Roman V
      Всем привет. Учусь работать с ini-файлами на Android. И сразу же возникла проблема, которую никак не могу решить. Хотел написать подобие приложение-тест с хранением данных в ini файле. В итоге все отлично работает на windows,а под Андроид при запуске висит только значок firemonkey секунд 10 и приложение вырубается так и не запустившись. В чем может быть проблема? Использую отладку по USB. 
      TIniFile *Ini = new TIniFile(System::Ioutils::TPath::GetDocumentsPath() + PathDelim + "options.ini"); Юзаю эти библиотеки 
      #include <System.IOUtils.hpp> #include <System.IniFiles.hpp>  
    • Автор: gonzales
      Доброго времени суток!
      Решаю следующую задачу, в приложении динамически формируются разные объекты, наследники от одного класса. При формировании объектов заполняется динамический массив этих элементов. Далее я хочу в отдельном потоке для каждого из элементов массива получить его состояние, то есть делаю запрос к серверу. Все это повешено на таймер, каждую секунду должен отрабатываться запрос. Все более менее работает в Windows, а на Андроиде со временем приложение валится. Вот код таймера, для читаемости я удалил куски с различными вариантами E. RootElements - это массив TEssense от которого есть наследники. Функции GetBoardCurrentValue, GetBoardMaxValue - по сути запросы к серверу. 
      Подскажите, правильно ли я оформляю работу с потоками для работы на Андроиде?
      procedure TForm1.MasterTimerTimer(Sender: TObject); begin TTask.Run( procedure var l, d, a: byte; i,j:integer; E: TEssence; p: Pointer; VirtualNode: IXMLNode; VirtualElementNode: IXMLNode; id: byte; begin l := Length(Form1.RoomElements); for j := 0 to l - 1 do begin E := Form1.RoomElements[j]; // Реле if E is TRele then begin d := (E as TRele).Device_ID; a := (E as TRele).Device_Adress; if Form1.GetBoardCurrentValue(d, a) = true then begin TThread.Synchronize(nil, procedure begin (E as TRele).ReleSwitch.IsChecked := Form1.device[d].Board[a].CurrentValue.ToBoolean; end); end; // (E as TRele).ReleOnTimer(E) end // Диммер else if E is TDimmer then begin d := (E as TDimmer).Device_ID; a := (E as TDimmer).Device_Adress; if Form1.GetBoardMaxValue(d, a) = true then begin TThread.Synchronize(nil, procedure begin if (Form1.device[d].Board[a].Type_ID = TType.Светодиод) or (Form1.device[d].Board[a].Type_ID = TType.Диммер220) then begin (E as TDimmer).DimmerValue.Text := (Form1.device[d].Board[a].MaxValue).ToString; end; end); end; // (E as TDimmer).DimmerOnTimer(E) end // Таймер else if E is TSTimer then begin id := (E as TSTimer).STimerIndex; Form1.FillHTTPRequest(0, 0, HTTP_GET_TIMER_INFO, id); if Form1.AnswerIsComming = HTTP_GET_TIMER_INFO then begin TThread.Synchronize(nil, procedure begin if Form1.HTTPAnswer.Data1 = 0 then (E as TSTimer).Interval.Text := 'OFF' else (E as TSTimer).Interval.Text := 'ON' end); end; // (E as TSTimer).STimerOnTimer(E); end; end; end); end;   
    • Автор: andahay
      Доброго времени суток. Есть android приложение, в нем есть диалоговое окно, которое предлагает перейти в google play и скачать другое приложение (pro версию), с 2 кнопками (да/нет). Как реализовать этот переход в Google play, чтобы в нем сразу было загружено нужное приложение. Использую Delphi XE7
    • Автор: zekelive
      Добрый день, друзья. Начал заниматься вопросом описанным в шапке и столкнулся со множеством непонятных для меня проблем. Как примерно должно выглядеть на Рис. ниже. Знаю, что сам список барабан выполнен в TlistBox. Есть хорошая ссылка на блог Ярослава тут. Пошерстил файлы в FMX, и не нашел ключа для своего дела. Может кто занимался этим? Я изначально брал TScrollBox, кидал на него Tlayout и в него TLabel. Но думаю, видимо не то совсем.

    • Автор: zekelive
      Добрый день. Кто знает, подскажите, можно ли средствами firemonkey менять иконку приложения в рантайм либо после закрытия и повторного открытия приложения? На win вроде бы можно, статьи на форуме находил, а для Андроида найти не удалось.
    • Автор: bossalex
      Недавно компилил приложение на Delphi  FMX Android  при обращении  к серверу https при выполнении Get запроса от компонента TIdHttp запросил библиотеку "Could not load SSL library" используется протокол sslvTLSv1_2 в windows все пашет в андроид нет , накопал что можно подключить библиотеки  libssl.so и  libcrypto.so через  deployment .assets\internal , А вот как в коде дальше их использовать никто примерчик не выложил, хоть и обсуждали на интернет просторах 100 раз, те как прикрутить  к IdSSLIOHandlerSocketOpenSSL1.SSLOptions.CertFile. Если есть у кого код выложите пожалуйста? или скинте по email bossalex@ya.ru
      IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method.sslvTLSv1_2;
      IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode.sslmUnassigned;
       
    • Автор: zekelive
      Добрый день, друзья. Подскажите, есть ли возможность в firemonkey открыть форму как представлено на картинке ниже? Если да, то подскажите в какую сторону копать. Спасибо.

    • Автор: Аров Марат (Coolmarat)
      Здравствуйте, коллеги.
      При написании клиента под андроид для Datasnap сервера столкнулся с проблемой, что из телефона строки с русскими буквами
      уходят в нечитаемом виде на сервер. При запуске приложения под Windows проблемы нет. Даже тестовые методы, генерируемые
      мастером создания DataSnap сервера (EchoString, ReverseString) не работают с русским текстом при запуске клиента на
      андроиде. Прилагаю тестовые проекты сервера и клиента с вызовом одной только функции ReverseString - у меня все равно
      выходят кракозябры. Помогите разобраться, как правильно передавать строки с русскими буквами.

      DSTestStrAndroidServer.zip
      DSTestStrAndroidClient.zip
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу