Перейти к содержанию
Fire Monkey от А до Я

zairkz

Пользователи
  • Постов

    135
  • Зарегистрирован

  • Посещение

  • Победитель дней

    12

Активность репутации

  1. Like
    zairkz получил реакцию от Andrey Efimov в Не работает IFMXPhoneDialerService?   
    uses 
      Androidapi.Helpers,
      Androidapi.JNI.GraphicsContentViewText,
      Androidapi.JNI.App,
      Androidapi.JNI.JavaTypes,
      Androidapi.JNIBridge,
      Androidapi.JNI.Provider;
     
  2. Like
    zairkz получил реакцию от Andrey Efimov в Не работает IFMXPhoneDialerService?   
    Вообщем так как андройд не поддерживает функцию определения соединения, сделал через журнал звонков
    В Андройде после звонка если было соединение, время звонка будет больше нуля.
    //PhoneDialerService.OnCallStateChanged := MyOnCallStateChanged;
    На Disconnected проверяю журнал звонков, так как бывает не успевает падать информация использую таймер с интервалом 1 секунда, ниже приведен код в нем или iOS соединения и все ок или андройд на дисконекте и пуск таймера.
    procedure TForm_Main.MyOnCallStateChanged(const ACallID: String; const ACallState: TCallState); begin   case ACallState of     TCallState.Connected:       begin  {$IFDEF IOS} TThread.Synchronize(nil, ShowDialDialog); {$ENDIF}       end;     TCallState.Disconnected:       begin {$IFDEF ANDROID} TimerCallCheck.Enabled := true; {$ENDIF}         PhoneDialerService.OnCallStateChanged := nil;       end;   end; end; Пока не добавил такую архитектуру с ТТаском и Синхронизацией были иногда вылеты приложения
    procedure TForm_Main.TimerCallCheckTimer(Sender: TObject); begin   TimerCallCheck.Enabled := false;   TTask.Run(     procedure     var       Dur: Int64;     begin       Dur := CheckStat; //Функция проверки журнала       TThread.Synchronize(nil,         procedure         begin           if Dur = -1 then              TimerCallCheck.Enabled := true           else           begin             TimerCallCheck.Enabled := false;             if Dur > 0 then               ShowDialDialog; //Вызывается форма у меня в приложении           end;         end);     end); end;  
    function TForm_Main.CheckStat: Int64; var   cursor: JCursor;   Dtime, CallDuration: Int64;   JsortOrder, JSelection: String;   wJQueryParams: TJavaObjectArray<JString>; begin   Result := 0;   wJQueryParams := TJavaObjectArray<JString>.Create(4);   wJQueryParams[0] := TJCallLog_Calls.JavaClass.CACHED_NAME;   wJQueryParams[1] := TJCallLog_Calls.JavaClass.NUMBER;   wJQueryParams[2] := TJCallLog_Calls.JavaClass.DURATION;   wJQueryParams[3] := TJCallLog_Calls.JavaClass.DATE;   JsortOrder := 'date DESC LIMIT 1';   Dtime := (DateTimeToUnix(Now, true) - 360) * 1000;  //Последние пять минут   JSelection := 'number = "+77017017708" AND type = 2 AND date > ' + IntToStr(Dtime);   cursor := TAndroidHelper.Activity.getContentResolver.query(TJCallLog_Calls.JavaClass.CONTENT_URI, wJQueryParams,     StringToJString(JSelection), nil, StringToJString(JsortOrder));   if (cursor.getCount > 0) then   begin     while (cursor.moveToNext) do     begin       CallDuration := StrToInt64(JStringToString(cursor.getString(cursor.getColumnIndex(TJCallLog_Calls.JavaClass.DURATION))));       Result := CallDuration;     end;   end   else     Result := -1;   cursor.Close;   FreeAndNil(wJQueryParams); end;  
  3. Like
    zairkz получил реакцию от enatechno в Не работает IFMXPhoneDialerService?   
    Вообщем так как андройд не поддерживает функцию определения соединения, сделал через журнал звонков
    В Андройде после звонка если было соединение, время звонка будет больше нуля.
    //PhoneDialerService.OnCallStateChanged := MyOnCallStateChanged;
    На Disconnected проверяю журнал звонков, так как бывает не успевает падать информация использую таймер с интервалом 1 секунда, ниже приведен код в нем или iOS соединения и все ок или андройд на дисконекте и пуск таймера.
    procedure TForm_Main.MyOnCallStateChanged(const ACallID: String; const ACallState: TCallState); begin   case ACallState of     TCallState.Connected:       begin  {$IFDEF IOS} TThread.Synchronize(nil, ShowDialDialog); {$ENDIF}       end;     TCallState.Disconnected:       begin {$IFDEF ANDROID} TimerCallCheck.Enabled := true; {$ENDIF}         PhoneDialerService.OnCallStateChanged := nil;       end;   end; end; Пока не добавил такую архитектуру с ТТаском и Синхронизацией были иногда вылеты приложения
    procedure TForm_Main.TimerCallCheckTimer(Sender: TObject); begin   TimerCallCheck.Enabled := false;   TTask.Run(     procedure     var       Dur: Int64;     begin       Dur := CheckStat; //Функция проверки журнала       TThread.Synchronize(nil,         procedure         begin           if Dur = -1 then              TimerCallCheck.Enabled := true           else           begin             TimerCallCheck.Enabled := false;             if Dur > 0 then               ShowDialDialog; //Вызывается форма у меня в приложении           end;         end);     end); end;  
    function TForm_Main.CheckStat: Int64; var   cursor: JCursor;   Dtime, CallDuration: Int64;   JsortOrder, JSelection: String;   wJQueryParams: TJavaObjectArray<JString>; begin   Result := 0;   wJQueryParams := TJavaObjectArray<JString>.Create(4);   wJQueryParams[0] := TJCallLog_Calls.JavaClass.CACHED_NAME;   wJQueryParams[1] := TJCallLog_Calls.JavaClass.NUMBER;   wJQueryParams[2] := TJCallLog_Calls.JavaClass.DURATION;   wJQueryParams[3] := TJCallLog_Calls.JavaClass.DATE;   JsortOrder := 'date DESC LIMIT 1';   Dtime := (DateTimeToUnix(Now, true) - 360) * 1000;  //Последние пять минут   JSelection := 'number = "+77017017708" AND type = 2 AND date > ' + IntToStr(Dtime);   cursor := TAndroidHelper.Activity.getContentResolver.query(TJCallLog_Calls.JavaClass.CONTENT_URI, wJQueryParams,     StringToJString(JSelection), nil, StringToJString(JsortOrder));   if (cursor.getCount > 0) then   begin     while (cursor.moveToNext) do     begin       CallDuration := StrToInt64(JStringToString(cursor.getString(cursor.getColumnIndex(TJCallLog_Calls.JavaClass.DURATION))));       Result := CallDuration;     end;   end   else     Result := -1;   cursor.Close;   FreeAndNil(wJQueryParams); end;  
  4. Like
    zairkz получил реакцию от DirtyBorov в Не работает IFMXPhoneDialerService?   
    Вообщем так как андройд не поддерживает функцию определения соединения, сделал через журнал звонков
    В Андройде после звонка если было соединение, время звонка будет больше нуля.
    //PhoneDialerService.OnCallStateChanged := MyOnCallStateChanged;
    На Disconnected проверяю журнал звонков, так как бывает не успевает падать информация использую таймер с интервалом 1 секунда, ниже приведен код в нем или iOS соединения и все ок или андройд на дисконекте и пуск таймера.
    procedure TForm_Main.MyOnCallStateChanged(const ACallID: String; const ACallState: TCallState); begin   case ACallState of     TCallState.Connected:       begin  {$IFDEF IOS} TThread.Synchronize(nil, ShowDialDialog); {$ENDIF}       end;     TCallState.Disconnected:       begin {$IFDEF ANDROID} TimerCallCheck.Enabled := true; {$ENDIF}         PhoneDialerService.OnCallStateChanged := nil;       end;   end; end; Пока не добавил такую архитектуру с ТТаском и Синхронизацией были иногда вылеты приложения
    procedure TForm_Main.TimerCallCheckTimer(Sender: TObject); begin   TimerCallCheck.Enabled := false;   TTask.Run(     procedure     var       Dur: Int64;     begin       Dur := CheckStat; //Функция проверки журнала       TThread.Synchronize(nil,         procedure         begin           if Dur = -1 then              TimerCallCheck.Enabled := true           else           begin             TimerCallCheck.Enabled := false;             if Dur > 0 then               ShowDialDialog; //Вызывается форма у меня в приложении           end;         end);     end); end;  
    function TForm_Main.CheckStat: Int64; var   cursor: JCursor;   Dtime, CallDuration: Int64;   JsortOrder, JSelection: String;   wJQueryParams: TJavaObjectArray<JString>; begin   Result := 0;   wJQueryParams := TJavaObjectArray<JString>.Create(4);   wJQueryParams[0] := TJCallLog_Calls.JavaClass.CACHED_NAME;   wJQueryParams[1] := TJCallLog_Calls.JavaClass.NUMBER;   wJQueryParams[2] := TJCallLog_Calls.JavaClass.DURATION;   wJQueryParams[3] := TJCallLog_Calls.JavaClass.DATE;   JsortOrder := 'date DESC LIMIT 1';   Dtime := (DateTimeToUnix(Now, true) - 360) * 1000;  //Последние пять минут   JSelection := 'number = "+77017017708" AND type = 2 AND date > ' + IntToStr(Dtime);   cursor := TAndroidHelper.Activity.getContentResolver.query(TJCallLog_Calls.JavaClass.CONTENT_URI, wJQueryParams,     StringToJString(JSelection), nil, StringToJString(JsortOrder));   if (cursor.getCount > 0) then   begin     while (cursor.moveToNext) do     begin       CallDuration := StrToInt64(JStringToString(cursor.getString(cursor.getColumnIndex(TJCallLog_Calls.JavaClass.DURATION))));       Result := CallDuration;     end;   end   else     Result := -1;   cursor.Close;   FreeAndNil(wJQueryParams); end;  
  5. Like
    zairkz получил реакцию от DirtyBorov в Не работает IFMXPhoneDialerService?   
    uses 
      Androidapi.Helpers,
      Androidapi.JNI.GraphicsContentViewText,
      Androidapi.JNI.App,
      Androidapi.JNI.JavaTypes,
      Androidapi.JNIBridge,
      Androidapi.JNI.Provider;
     
  6. Like
    zairkz получил реакцию от Rusland в Не работает IFMXPhoneDialerService?   
    uses 
      Androidapi.Helpers,
      Androidapi.JNI.GraphicsContentViewText,
      Androidapi.JNI.App,
      Androidapi.JNI.JavaTypes,
      Androidapi.JNIBridge,
      Androidapi.JNI.Provider;
     
  7. Like
    zairkz получил реакцию от Rusland в Не работает IFMXPhoneDialerService?   
    Вообщем так как андройд не поддерживает функцию определения соединения, сделал через журнал звонков
    В Андройде после звонка если было соединение, время звонка будет больше нуля.
    //PhoneDialerService.OnCallStateChanged := MyOnCallStateChanged;
    На Disconnected проверяю журнал звонков, так как бывает не успевает падать информация использую таймер с интервалом 1 секунда, ниже приведен код в нем или iOS соединения и все ок или андройд на дисконекте и пуск таймера.
    procedure TForm_Main.MyOnCallStateChanged(const ACallID: String; const ACallState: TCallState); begin   case ACallState of     TCallState.Connected:       begin  {$IFDEF IOS} TThread.Synchronize(nil, ShowDialDialog); {$ENDIF}       end;     TCallState.Disconnected:       begin {$IFDEF ANDROID} TimerCallCheck.Enabled := true; {$ENDIF}         PhoneDialerService.OnCallStateChanged := nil;       end;   end; end; Пока не добавил такую архитектуру с ТТаском и Синхронизацией были иногда вылеты приложения
    procedure TForm_Main.TimerCallCheckTimer(Sender: TObject); begin   TimerCallCheck.Enabled := false;   TTask.Run(     procedure     var       Dur: Int64;     begin       Dur := CheckStat; //Функция проверки журнала       TThread.Synchronize(nil,         procedure         begin           if Dur = -1 then              TimerCallCheck.Enabled := true           else           begin             TimerCallCheck.Enabled := false;             if Dur > 0 then               ShowDialDialog; //Вызывается форма у меня в приложении           end;         end);     end); end;  
    function TForm_Main.CheckStat: Int64; var   cursor: JCursor;   Dtime, CallDuration: Int64;   JsortOrder, JSelection: String;   wJQueryParams: TJavaObjectArray<JString>; begin   Result := 0;   wJQueryParams := TJavaObjectArray<JString>.Create(4);   wJQueryParams[0] := TJCallLog_Calls.JavaClass.CACHED_NAME;   wJQueryParams[1] := TJCallLog_Calls.JavaClass.NUMBER;   wJQueryParams[2] := TJCallLog_Calls.JavaClass.DURATION;   wJQueryParams[3] := TJCallLog_Calls.JavaClass.DATE;   JsortOrder := 'date DESC LIMIT 1';   Dtime := (DateTimeToUnix(Now, true) - 360) * 1000;  //Последние пять минут   JSelection := 'number = "+77017017708" AND type = 2 AND date > ' + IntToStr(Dtime);   cursor := TAndroidHelper.Activity.getContentResolver.query(TJCallLog_Calls.JavaClass.CONTENT_URI, wJQueryParams,     StringToJString(JSelection), nil, StringToJString(JsortOrder));   if (cursor.getCount > 0) then   begin     while (cursor.moveToNext) do     begin       CallDuration := StrToInt64(JStringToString(cursor.getString(cursor.getColumnIndex(TJCallLog_Calls.JavaClass.DURATION))));       Result := CallDuration;     end;   end   else     Result := -1;   cursor.Close;   FreeAndNil(wJQueryParams); end;  
  8. Like
    zairkz отреагировална dnekrasov в Как перемешать форму если стиль установлен BSnone ?   
    Если приложение под Windows, то самое простое решение это в обработчике OnMouseDown написать следующее:
    ReleaseCapture; SendMessage(FormToHWND(Self), WM_SYSCOMMAND, SC_MOVE + 2, 0);  
  9. Like
    zairkz отреагировална #WAMACO в TSelectionPoint   
    HitTest ?
  10. Like
    zairkz получил реакцию от rareMax в Не работает IFMXPhoneDialerService?   
    Вообщем так как андройд не поддерживает функцию определения соединения, сделал через журнал звонков
    В Андройде после звонка если было соединение, время звонка будет больше нуля.
    //PhoneDialerService.OnCallStateChanged := MyOnCallStateChanged;
    На Disconnected проверяю журнал звонков, так как бывает не успевает падать информация использую таймер с интервалом 1 секунда, ниже приведен код в нем или iOS соединения и все ок или андройд на дисконекте и пуск таймера.
    procedure TForm_Main.MyOnCallStateChanged(const ACallID: String; const ACallState: TCallState); begin   case ACallState of     TCallState.Connected:       begin  {$IFDEF IOS} TThread.Synchronize(nil, ShowDialDialog); {$ENDIF}       end;     TCallState.Disconnected:       begin {$IFDEF ANDROID} TimerCallCheck.Enabled := true; {$ENDIF}         PhoneDialerService.OnCallStateChanged := nil;       end;   end; end; Пока не добавил такую архитектуру с ТТаском и Синхронизацией были иногда вылеты приложения
    procedure TForm_Main.TimerCallCheckTimer(Sender: TObject); begin   TimerCallCheck.Enabled := false;   TTask.Run(     procedure     var       Dur: Int64;     begin       Dur := CheckStat; //Функция проверки журнала       TThread.Synchronize(nil,         procedure         begin           if Dur = -1 then              TimerCallCheck.Enabled := true           else           begin             TimerCallCheck.Enabled := false;             if Dur > 0 then               ShowDialDialog; //Вызывается форма у меня в приложении           end;         end);     end); end;  
    function TForm_Main.CheckStat: Int64; var   cursor: JCursor;   Dtime, CallDuration: Int64;   JsortOrder, JSelection: String;   wJQueryParams: TJavaObjectArray<JString>; begin   Result := 0;   wJQueryParams := TJavaObjectArray<JString>.Create(4);   wJQueryParams[0] := TJCallLog_Calls.JavaClass.CACHED_NAME;   wJQueryParams[1] := TJCallLog_Calls.JavaClass.NUMBER;   wJQueryParams[2] := TJCallLog_Calls.JavaClass.DURATION;   wJQueryParams[3] := TJCallLog_Calls.JavaClass.DATE;   JsortOrder := 'date DESC LIMIT 1';   Dtime := (DateTimeToUnix(Now, true) - 360) * 1000;  //Последние пять минут   JSelection := 'number = "+77017017708" AND type = 2 AND date > ' + IntToStr(Dtime);   cursor := TAndroidHelper.Activity.getContentResolver.query(TJCallLog_Calls.JavaClass.CONTENT_URI, wJQueryParams,     StringToJString(JSelection), nil, StringToJString(JsortOrder));   if (cursor.getCount > 0) then   begin     while (cursor.moveToNext) do     begin       CallDuration := StrToInt64(JStringToString(cursor.getString(cursor.getColumnIndex(TJCallLog_Calls.JavaClass.DURATION))));       Result := CallDuration;     end;   end   else     Result := -1;   cursor.Close;   FreeAndNil(wJQueryParams); end;  
  11. Like
    zairkz получил реакцию от Равиль Зарипов (ZuBy) в Не работает IFMXPhoneDialerService?   
    uses 
      Androidapi.Helpers,
      Androidapi.JNI.GraphicsContentViewText,
      Androidapi.JNI.App,
      Androidapi.JNI.JavaTypes,
      Androidapi.JNIBridge,
      Androidapi.JNI.Provider;
     
  12. Like
    zairkz получил реакцию от Равиль Зарипов (ZuBy) в Не работает IFMXPhoneDialerService?   
    Вообщем так как андройд не поддерживает функцию определения соединения, сделал через журнал звонков
    В Андройде после звонка если было соединение, время звонка будет больше нуля.
    //PhoneDialerService.OnCallStateChanged := MyOnCallStateChanged;
    На Disconnected проверяю журнал звонков, так как бывает не успевает падать информация использую таймер с интервалом 1 секунда, ниже приведен код в нем или iOS соединения и все ок или андройд на дисконекте и пуск таймера.
    procedure TForm_Main.MyOnCallStateChanged(const ACallID: String; const ACallState: TCallState); begin   case ACallState of     TCallState.Connected:       begin  {$IFDEF IOS} TThread.Synchronize(nil, ShowDialDialog); {$ENDIF}       end;     TCallState.Disconnected:       begin {$IFDEF ANDROID} TimerCallCheck.Enabled := true; {$ENDIF}         PhoneDialerService.OnCallStateChanged := nil;       end;   end; end; Пока не добавил такую архитектуру с ТТаском и Синхронизацией были иногда вылеты приложения
    procedure TForm_Main.TimerCallCheckTimer(Sender: TObject); begin   TimerCallCheck.Enabled := false;   TTask.Run(     procedure     var       Dur: Int64;     begin       Dur := CheckStat; //Функция проверки журнала       TThread.Synchronize(nil,         procedure         begin           if Dur = -1 then              TimerCallCheck.Enabled := true           else           begin             TimerCallCheck.Enabled := false;             if Dur > 0 then               ShowDialDialog; //Вызывается форма у меня в приложении           end;         end);     end); end;  
    function TForm_Main.CheckStat: Int64; var   cursor: JCursor;   Dtime, CallDuration: Int64;   JsortOrder, JSelection: String;   wJQueryParams: TJavaObjectArray<JString>; begin   Result := 0;   wJQueryParams := TJavaObjectArray<JString>.Create(4);   wJQueryParams[0] := TJCallLog_Calls.JavaClass.CACHED_NAME;   wJQueryParams[1] := TJCallLog_Calls.JavaClass.NUMBER;   wJQueryParams[2] := TJCallLog_Calls.JavaClass.DURATION;   wJQueryParams[3] := TJCallLog_Calls.JavaClass.DATE;   JsortOrder := 'date DESC LIMIT 1';   Dtime := (DateTimeToUnix(Now, true) - 360) * 1000;  //Последние пять минут   JSelection := 'number = "+77017017708" AND type = 2 AND date > ' + IntToStr(Dtime);   cursor := TAndroidHelper.Activity.getContentResolver.query(TJCallLog_Calls.JavaClass.CONTENT_URI, wJQueryParams,     StringToJString(JSelection), nil, StringToJString(JsortOrder));   if (cursor.getCount > 0) then   begin     while (cursor.moveToNext) do     begin       CallDuration := StrToInt64(JStringToString(cursor.getString(cursor.getColumnIndex(TJCallLog_Calls.JavaClass.DURATION))));       Result := CallDuration;     end;   end   else     Result := -1;   cursor.Close;   FreeAndNil(wJQueryParams); end;  
  13. Like
    zairkz получил реакцию от #WAMACO в Не работает IFMXPhoneDialerService?   
    Вообщем так как андройд не поддерживает функцию определения соединения, сделал через журнал звонков
    В Андройде после звонка если было соединение, время звонка будет больше нуля.
    //PhoneDialerService.OnCallStateChanged := MyOnCallStateChanged;
    На Disconnected проверяю журнал звонков, так как бывает не успевает падать информация использую таймер с интервалом 1 секунда, ниже приведен код в нем или iOS соединения и все ок или андройд на дисконекте и пуск таймера.
    procedure TForm_Main.MyOnCallStateChanged(const ACallID: String; const ACallState: TCallState); begin   case ACallState of     TCallState.Connected:       begin  {$IFDEF IOS} TThread.Synchronize(nil, ShowDialDialog); {$ENDIF}       end;     TCallState.Disconnected:       begin {$IFDEF ANDROID} TimerCallCheck.Enabled := true; {$ENDIF}         PhoneDialerService.OnCallStateChanged := nil;       end;   end; end; Пока не добавил такую архитектуру с ТТаском и Синхронизацией были иногда вылеты приложения
    procedure TForm_Main.TimerCallCheckTimer(Sender: TObject); begin   TimerCallCheck.Enabled := false;   TTask.Run(     procedure     var       Dur: Int64;     begin       Dur := CheckStat; //Функция проверки журнала       TThread.Synchronize(nil,         procedure         begin           if Dur = -1 then              TimerCallCheck.Enabled := true           else           begin             TimerCallCheck.Enabled := false;             if Dur > 0 then               ShowDialDialog; //Вызывается форма у меня в приложении           end;         end);     end); end;  
    function TForm_Main.CheckStat: Int64; var   cursor: JCursor;   Dtime, CallDuration: Int64;   JsortOrder, JSelection: String;   wJQueryParams: TJavaObjectArray<JString>; begin   Result := 0;   wJQueryParams := TJavaObjectArray<JString>.Create(4);   wJQueryParams[0] := TJCallLog_Calls.JavaClass.CACHED_NAME;   wJQueryParams[1] := TJCallLog_Calls.JavaClass.NUMBER;   wJQueryParams[2] := TJCallLog_Calls.JavaClass.DURATION;   wJQueryParams[3] := TJCallLog_Calls.JavaClass.DATE;   JsortOrder := 'date DESC LIMIT 1';   Dtime := (DateTimeToUnix(Now, true) - 360) * 1000;  //Последние пять минут   JSelection := 'number = "+77017017708" AND type = 2 AND date > ' + IntToStr(Dtime);   cursor := TAndroidHelper.Activity.getContentResolver.query(TJCallLog_Calls.JavaClass.CONTENT_URI, wJQueryParams,     StringToJString(JSelection), nil, StringToJString(JsortOrder));   if (cursor.getCount > 0) then   begin     while (cursor.moveToNext) do     begin       CallDuration := StrToInt64(JStringToString(cursor.getString(cursor.getColumnIndex(TJCallLog_Calls.JavaClass.DURATION))));       Result := CallDuration;     end;   end   else     Result := -1;   cursor.Close;   FreeAndNil(wJQueryParams); end;  
  14. Like
    zairkz отреагировална Равиль Зарипов (ZuBy) в Недавние изменения в публикации   
    нет, только TNetHTTPClient
  15. Like
    zairkz отреагировална Равиль Зарипов (ZuBy) в Недавние изменения в публикации   
    он не использует HTTPS
  16. Like
    zairkz отреагировална Равиль Зарипов (ZuBy) в Недавние изменения в публикации   
    тесты проходят без вайфая, мобильные данные. Дело в том что у него успешная публикация в appstore (berlin+el capitan)
    сайт наш собственный, ipv6 кстати вырублен в настройках nginx'a. Скорей всего тут у вас загвоздка?
  17. Like
    zairkz отреагировална Равиль Зарипов (ZuBy) в [Андроид] доступ к базе данных   
    перенесите в OnCreate или еще куда-нибудь, для теста
  18. Like
    zairkz отреагировална Kitty в [Андроид] доступ к базе данных   
    Итак все работает теперь и на планшете. Какой вывод можно сделать с профессором Преображенским из Собачьего сердца?
    1. Не читаете газет и документацию эмбаркадеро.
    2. Используйте вместо TForm1::FDConnection1BeforeConnect конструктор TForm1::TForm1
    3. Спасибо ZuBy за наводку. Самой воображалки не хватило.
  19. Like
    zairkz отреагировална Kitty в [Андроид] доступ к базе данных   
    Создать FireDAC Аревьев написал:
    Я не знаю, почему пишут так:
    void __fastcall TForm1::FDConnection1BeforeConnect(TObject *Sender) { #if defined(_PLAT_IOS) || defined(_PLAT_ANDROID) FDConnection1->Params->Values["Database"] = System::Ioutils::TPath::Combine(System::Ioutils::TPath::GetDocumentsPath(), "mikros.s3db"); #endif } когда проще писать эдак:
    void __fastcall TForm1::FDConnection1BeforeConnect(TObject *Sender) { #if defined(_PLAT_IOS) || defined(_PLAT_ANDROID) FDConnection1->Params->Values["Database"] = "$(DOC)/mikros.s3db"; #endif } Даже не хочу проверять его теории, о которых не слова не сказано в документации!!!
  20. Like
    zairkz получил реакцию от Равиль Зарипов (ZuBy) в Недавние изменения в публикации   
    Было за неделю 5 отказов (2 точно таких же), пока не перешел на Berlin и не обновил Mac на EL Capitan, ну и соответственно последний Xcode.
    Скиньте описание отказа

  21. Like
    zairkz отреагировална FeLDMARShaL в Недавние изменения в публикации   
    Нужна публикация, занимаюсь проблемой в плотную. Как оказалось то же самое прилоежние на андройде, который подключен к той же маковской сети NAT64/DNS64 без проблем выходит в инет. Получается запара именно в iOS девайсах. У кого нибудь за это время появились какие нибудь идеи?
    Переход на новый берлин не исправил проблему. Есть люди которые смогли опубликовать приложение которое работает с сетью, может кто поделится опытом?
  22. Like
    zairkz отреагировална Равиль Зарипов (ZuBy) в RTF в Memo   
    нет, но платные компоненты (функционал) не всегда оправдывают цену
  23. Like
    zairkz отреагировална #WAMACO в RTF в Memo   
    и главное дорогие...
  24. Like
    zairkz отреагировална krapotkin в Отловить двойное нажатие кнопки Back...   
    отладчик в руки
    логируем заход в каждую ветку, получаем ответ
  25. Like
    zairkz отреагировална Равиль Зарипов (ZuBy) в ListView Color Helper   
    добавление Item'ов
    for I := 0 to 20 do begin AItem := ListView1.Items.Add; with AItem do begin Text := 'Item Random ' + I.ToString; Detail := 'Detail for ' + Text; ButtonText := 'Custom Color'; Bitmap := Image1.Bitmap; end; ListView1.Adapter.ResetView(AItem); // fix TextButton ( TListViewTextButtonFix ) end; устраняем багу
    procedure TForm1.ListView1UpdatingObjects(const Sender: TObject; const AItem: TListViewItem; var AHandled: Boolean); begin TListViewTextButtonFix.Rendering(Sender, AItem, AHandled); // fix end; FMX.ListView.TextButtonFix.zip
×
×
  • Создать...