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

Pax Beach

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

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

  • Посещение

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

    12

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

  1. Like
    Pax Beach отреагировална Kitty в TBeacon не работает в iOS   
    Приложение запустилось. Для iOS, в отличии от андроид оказалось, что надо добавить дополнительно свойство (TBeaconRegionCollection).
  2. Like
    Pax Beach отреагировална krapotkin в Вращение Bitmap   
    в учебнике про линейной алгебре
  3. Like
    Pax Beach получил реакцию от virus_forever в Вращение Bitmap   
    Вот пример вращения матрицы на канве.
  4. Like
    Pax Beach получил реакцию от enatechno в После "сна" программа с сервисом не стартует   
    Ты молодец!
    На эту проблему потрачено неимоверно много времени, и не мной одним.
    В итоге, действительно проблема решилась.
    Всегда молодым программистам по 100 раз говорю — Проверяйте объекты на NULL! Простое условие "if not Assigned(Object)" сэкономит кучу времени. — и сам же в это болото залез.
     
  5. Like
    Pax Beach получил реакцию от Равиль Зарипов (ZuBy) в После "сна" программа с сервисом не стартует   
    Ты молодец!
    На эту проблему потрачено неимоверно много времени, и не мной одним.
    В итоге, действительно проблема решилась.
    Всегда молодым программистам по 100 раз говорю — Проверяйте объекты на NULL! Простое условие "if not Assigned(Object)" сэкономит кучу времени. — и сам же в это болото залез.
     
  6. Like
    Pax Beach отреагировална Равиль Зарипов (ZuBy) в Failed to load libssl.so   
    теперь кстати можно определить запущено приложение на интеле или нет
  7. Like
    Pax Beach получил реакцию от Rusland в После "сна" программа с сервисом не стартует   
    Ты молодец!
    На эту проблему потрачено неимоверно много времени, и не мной одним.
    В итоге, действительно проблема решилась.
    Всегда молодым программистам по 100 раз говорю — Проверяйте объекты на NULL! Простое условие "if not Assigned(Object)" сэкономит кучу времени. — и сам же в это болото залез.
     
  8. Like
    Pax Beach отреагировална Rusland в После "сна" программа с сервисом не стартует   
    Всем кто в сервис передает параметры, типа:
    procedure TFrmMain.StartService(); var LIntent: JIntent; begin LIntent := TJIntent.Create; LIntent.setClassName(TAndroidHelper.Context.getPackageName(), TAndroidHelper.StringToJString('com.embarcadero.services.TestRemoteServ')); LIntent.setAction(StringToJString('StartService')); TAndroidHelper.Activity.startService(LIntent); end; function TDM.AndroidServiceStartCommand(const Sender: TObject; const Intent: JIntent; Flags, StartId: Integer): Integer; begin if Intent.getAction.equalsIgnoreCase(StringToJString('StopService')) then begin Log('START_NOT_STICKY'); Result := TJService.JavaClass.START_NOT_STICKY; end else // if Intent.getAction.equalsIgnoreCase(StringToJString('StartService')) then begin Log('START_STICKY'); Result := TJService.JavaClass.START_STICKY; end; end; обязательно проверяйте Intent на nil !
    Когда система убивает ваше приложение из-за нехватки памяти и перезапускает сервис, то на Intent.getAction происходит Segmentation fault и сервис остается в подвешенном состоянии (на процессоре ARM в Приложения - Работающие у меня отображается как-будто сервис нормально перезапустился, а вот на процессоре Intel - видно как сервис находится в вечном перезапуске). И естественно хост-приложение не может нормально стартануть.
    Делаем примерно так:
    function TDM.AndroidServiceStartCommand(const Sender: TObject; const Intent: JIntent; Flags, StartId: Integer): Integer; begin if Intent<>nil then begin if Intent.getAction.equalsIgnoreCase(StringToJString('StopService')) then begin Log('START_NOT_STICKY'); Result := TJService.JavaClass.START_NOT_STICKY; end else // if Intent.getAction.equalsIgnoreCase(StringToJString('StartService')) then begin Log('START_STICKY'); Result := TJService.JavaClass.START_STICKY; end; end else begin Log('RESTART BY SYSTEM'); Result := TJService.JavaClass.START_STICKY; end; end;  
  9. Like
    Pax Beach отреагировална Камышев Александр в Обработка разрыва соединения в FireDAC   
    Раньше тоже пользовался продуктами devart, хоть и недорогие, удобные, надежные, но все же они платные, плюс вообще не люблю подключать сторонние компоненты. 
    На oldschool теплом ламповом CBuilder приходилось много всего подключать: скины, компоненты доступа к бд, инди последних версий, компоненты для отчетов, png и т.п. С тех пор стараюсь избегать всего не родного.
    FireDAC понравился, хорош CmdExecMode amAsync - The calling thread and GUI are not blocked. The called method will return immediately.
    Позволяет работать с базой из основного потока без завешивания, отправил запрос и занимайся другими задачами пока callback не придет.
  10. Like
    Pax Beach отреагировална Равиль Зарипов (ZuBy) в Неудачная компиляция или кривые руки?   
    это не тот случай когда стоит стоять до конца, обновите среду до актуальной и будет время заняться программированием, а не изобретением великов (которые так и не поедут)
  11. Like
    Pax Beach отреагировална HyperZen в Ошибка InputBox...   
    Кому интересно, вот ссылка с примерами со всеми deprecated диалогами и InputBox'ами: http://c2design5sh.blogspot.ru
    unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.ListBox, FMX.Layouts, FMX.Platform, FMX.StdCtrls, FMX.Controls.Presentation, FMX.DialogService, FMX.ScrollBox, FMX.Memo; type TForm1 = class(TForm) ToolBar1: TToolBar; Label1: TLabel; ListBox1: TListBox; ListBoxItem1: TListBoxItem; ListBoxItem2: TListBoxItem; ListBoxItem3: TListBoxItem; ListBoxItem4: TListBoxItem; ListBoxItem5: TListBoxItem; ListBoxItem6: TListBoxItem; Memo1: TMemo; procedure ListBoxItem1Click(Sender: TObject); procedure ListBoxItem2Click(Sender: TObject); procedure ListBoxItem3Click(Sender: TObject); procedure ListBoxItem4Click(Sender: TObject); procedure ListBoxItem5Click(Sender: TObject); procedure ListBoxItem6Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.fmx} // uses FMX.Platform, FMX.DialogService //************************************************************************************************** procedure TForm1.ListBoxItem1Click(Sender: TObject); var ASyncService : IFMXDialogServiceASync; begin if TPlatformServices.Current.SupportsPlatformService (IFMXDialogServiceAsync, IInterface (ASyncService)) then begin ASyncService.ShowMessageAsync ( ( Sender as TListBoxItem ).Text ); end; Memo1.Lines.Clear; Memo1.Lines.Add( 'ShowMessageAsync Displayed' ); end; procedure TForm1.ListBoxItem2Click(Sender: TObject); var SyncService : IFMXDialogServiceSync; begin if TPlatformServices.Current.SupportsPlatformService (IFMXDialogServiceAsync, IInterface (SyncService)) then begin SyncService.ShowMessageSync ( ( Sender as TListBoxItem ).Text ); end; Memo1.Lines.Clear; Memo1.Lines.Add( 'ShowMessageSync Displayed' ); end; //************************************************************************************************** procedure TForm1.ListBoxItem3Click(Sender: TObject); var ASyncService : IFMXDialogServiceASync; caption, inData : array[0..1] of string; begin caption[0] := 'ID :'; caption[1] := #1 + 'Pass :'; // #1 앞에 붙이면 마스킹 기능 inData[0] := 'admin'; // 초기값 inData[1] := '1234'; if TPlatformServices.Current.SupportsPlatformService (IFMXDialogServiceAsync, IInterface (ASyncService)) then begin ASyncService.InputQueryAsync( 'Input String', caption, inData, procedure (const AResult : TModalResult; const AValues : array of string) begin case AResult of mrOk: ( Sender as TListBoxItem ).Text := AValues[0] + '/' + AValues[1]; end; end ); end; Memo1.Lines.Clear; Memo1.Lines.Add( 'InputQueryAsync Displayed' ); end; procedure TForm1.ListBoxItem4Click(Sender: TObject); var SyncService : IFMXDialogServiceSync; caption, inData : array[0..1] of string; begin caption[0] := 'ID :'; caption[1] := #1 + 'Pass :'; // #1 앞에 붙이면 마스킹 기능 inData[0] := 'admin'; // 초기값 inData[1] := '1234'; if TPlatformServices.Current.SupportsPlatformService (IFMXDialogServiceSync, IInterface(SyncService)) then begin if SyncService.InputQuerySync( 'Input String', caption, inData ) then ( Sender as TListBoxItem ).Text := inData[0] + '/' + inData[1]; end; Memo1.Lines.Clear; Memo1.Lines.Add( 'InputQuerySync Displayed' ); end; //************************************************************************************************** procedure TForm1.ListBoxItem5Click(Sender: TObject); var ASyncService : IFMXDialogServiceASync; begin if TPlatformServices.Current.SupportsPlatformService (IFMXDialogServiceAsync, IInterface(ASyncService)) then begin ASyncService.MessageDialogAsync( 'Question ?', TMsgDlgType.mtConfirmation, [TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo], TMsgDlgBtn.mbNo, 0, procedure(const AResult: TModalResult) begin case AResult of mrYES : ( Sender as TListBoxItem ).Text := 'YES'; end; end); end; Memo1.Lines.Clear; Memo1.Lines.Add( 'MessageDialogAsync Displayed' ); end; procedure TForm1.ListBoxItem6Click(Sender: TObject); var SyncService : IFMXDialogServiceSync; rValue, i : integer; begin if TPlatformServices.Current.SupportsPlatformService (IFMXDialogServiceSync, IInterface(SyncService)) then begin rValue := SyncService.MessageDialogSync( 'Question ?', TMsgDlgType.mtConfirmation, [TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo], TMsgDlgBtn.mbNo, 0 ); ( Sender as TListBoxItem ).Text := rValue.ToString; end; Memo1.Lines.Clear; Memo1.Lines.Add( 'MessageDialogSync Displayed' ); end; end.  
  12. Like
  13. Like
    Pax Beach отреагировална Rusland в Исключить устройства с Intel Atom как не поддерживаемые   
    Взял код вот отсюда:
    procedure TForm10.Button2Click(Sender: TObject); begin Memo1.Lines.Add(Format('%s:%s', ['BOARD', JStringToString(TJBuild.JavaClass.BOARD)])); Memo1.Lines.Add(Format('%s:%s', ['BOOTLOADER', JStringToString(TJBuild.JavaClass.BOOTLOADER)])); Memo1.Lines.Add(Format('%s:%s', ['BRAND', JStringToString(TJBuild.JavaClass.BRAND)])); Memo1.Lines.Add(Format('%s:%s', ['CPU_ABI', JStringToString(TJBuild.JavaClass.CPU_ABI)])); Memo1.Lines.Add(Format('%s:%s', ['CPU_ABI2', JStringToString(TJBuild.JavaClass.CPU_ABI2)])); Memo1.Lines.Add(Format('%s:%s', ['DEVICE', JStringToString(TJBuild.JavaClass.DEVICE)])); Memo1.Lines.Add(Format('%s:%s', ['DISPLAYドID', JStringToString(TJBuild.JavaClass.DISPLAY)])); Memo1.Lines.Add(Format('%s:%s', ['FINGERPRINT', JStringToString(TJBuild.JavaClass.FINGERPRINT)])); Memo1.Lines.Add(Format('%s:%s', ['HARDWARE', JStringToString(TJBuild.JavaClass.HARDWARE)])); Memo1.Lines.Add(Format('%s:%s', ['HOST', JStringToString(TJBuild.JavaClass.HOST)])); Memo1.Lines.Add(Format('%s:%s', ['ID', JStringToString(TJBuild.JavaClass.ID)])); Memo1.Lines.Add(Format('%s:%s', ['MANUFACTURER', JStringToString(TJBuild.JavaClass.MANUFACTURER)])); Memo1.Lines.Add(Format('%s:%s', ['MODEL', JStringToString(TJBuild.JavaClass.MODEL)])); Memo1.Lines.Add(Format('%s:%s', ['PRODUCT', JStringToString(TJBuild.JavaClass.PRODUCT)])); Memo1.Lines.Add(Format('%s:%s', ['RADIO', JStringToString(TJBuild.JavaClass.RADIO)])); Memo1.Lines.Add(Format('%s:%s', ['TAGS', JStringToString(TJBuild.JavaClass.TAGS)])); Memo1.Lines.Add(Format('%s:%d', ['TIME', TJBuild.JavaClass.TIME])); // Memo1.Lines.Add(Format('%s:%s', ['TYPE', // JStringToString(TJBuild.JavaClass.&TYPE)])); Memo1.Lines.Add(Format('%s:%s', ['UNKNOWN', JStringToString(TJBuild.JavaClass.UNKNOWN)])); Memo1.Lines.Add(Format('%s:%s', ['USER', JStringToString(TJBuild.JavaClass.USER)])); Memo1.Lines.Add(Format('%s:%s', ['CODENAME', JStringToString(TJBuild_VERSION.JavaClass.CODENAME)])); Memo1.Lines.Add(Format('%s:%s', ['INCREMENTAL', JStringToString(TJBuild_VERSION.JavaClass.INCREMENTAL)])); Memo1.Lines.Add(Format('%s:%s', ['RELEASE', JStringToString(TJBuild_VERSION.JavaClass.RELEASE)])); Memo1.Lines.Add(Format('%s:%d', ['SDK_INT', TJBuild_VERSION.JavaClass.SDK_INT])); end; Единственное упоминание Intel в Fingerprint... ну хоть что-то

  14. Like
    Pax Beach получил реакцию от Rusland в Исключить устройства с Intel Atom как не поддерживаемые   
    FMX Express же выкладывали все обертки.
  15. Like
    Pax Beach получил реакцию от Равиль Зарипов (ZuBy) в Исключить устройства с Intel Atom как не поддерживаемые   
    Не смешно даже.
  16. Like
    Pax Beach отреагировална Равиль Зарипов (ZuBy) в Исключить устройства с Intel Atom как не поддерживаемые   
    я так понимаю это MIPS архитектура
  17. Like
    Pax Beach отреагировална Равиль Зарипов (ZuBy) в Исключить устройства с Intel Atom как не поддерживаемые   
    у меня вот так
     
  18. Like
    Pax Beach отреагировална Равиль Зарипов (ZuBy) в Исключить устройства с Intel Atom как не поддерживаемые   
    кажется это не прокатит, т.к. запускается в эмуляторе (JVM Dalvik или ART), поэтому архитектура будет ARM
    я пытался через java пробиться к процессору, но всегда получал ARM
  19. Like
    Pax Beach отреагировална Rusland в Как нормально установить Berlin?   
    Подозреваю, что антивирус тоже лучше выключить - у меня DrWeb сильно напрягался во время установки.
  20. Like
    Pax Beach отреагировална krapotkin в Как нормально установить Berlin?   
    уже более 10 лет я не ставлю крупные программы, особенно делфи и SDK по путям производителей
    началось это тогда, когда выяснилось, что имена файлов длиннее 255 и среда просто не справляется с ними. а если там кириллица, то шеф, усё пропало....
    лучше ставить в корень. SDK ставить отдельно. тоже в корень. а потом просто показать делфи, где они лежат...
  21. Like
    Pax Beach отреагировална krapotkin в Как нормально установить Berlin?   
    у них новый директор первым делом взялся за новый инсталлер, когда в тихом ужасе увидел получасовую установку
    но в берлине заменить полностью уже не могли.
    они сначала распаковывают в temp все, а потом ставят
    поэтому 35 вроде гиг именно на C надо хоть ты тресни
    я мучался переносил на другой диск профиль пользователя через симлинки, пока не наскреб нужное кол-во
    а дома вообще плюнул и купил SSD 500 г
  22. Like
    Pax Beach отреагировална Евгений Корепов в NetHTTPClient и личные сообщения на сайте forum.ru-board.com на C++Builder 10.1   
    Сейчас посмотрю исходники. Минутку...
    Да, в Update1 System.Net.HttpClient.pas исправлен :-)
  23. Like
    Pax Beach отреагировална Равиль Зарипов (ZuBy) в NetHTTPClient и личные сообщения на сайте forum.ru-board.com на C++Builder 10.1   
    попробуйте включить AllowCoockie
  24. Like
    Pax Beach отреагировална Равиль Зарипов (ZuBy) в NetHTTPClient и личные сообщения на сайте forum.ru-board.com на C++Builder 10.1   
    DataList->Add("action=dologin&inmembername=USER&inpassword=PASSWORD=http%3A%2F%2Fforum.ru-board.com%2F"); явно ошибка в параметрах
    action=dologin
    inmembername=USER
    inpassword=PASSWORD
    ??????=http%3A%2F%2Fforum.ru-board.com%2F
  25. Like
    Pax Beach отреагировална sargon в Анимация при переходе между формами   
    Добрый день уважаемое сообщество. Возможно ли, и если возможно, то как, сделать что-то наподобие этого http://developer.alexanderklimov.ru/android/animation/overridependingtransition.php. В Android есть стандартная анимация при переходе между окнами в приложениях, мне было бы достаточно и такой, не знаю только как ее прикрутить, в какую сторону рыть - ничего не нагуглил, знаю про TFloatAnimation но может быть есть какой-нибудь нативный способ для этого в FMX. Заранее благодарю за помощь.
×
×
  • Создать...