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

AlexShaman

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

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

  • Посещение

Весь контент AlexShaman

  1. Создаю файл в Paint (для теста), сохраняю в bmp 32bit 1680x373 tmpIcon.PixelFormat := vcl.Graphics.TPixelFormat.pf32bit; tmpIcon.Width := 1680; tmpIcon.Height:= 373; Какие еще надо установить значения до tmpIcon.LoadFromStream(tmpStream); ?
  2. tmpIcon.LoadFromStream(tmpStream); Ошибка Bitmap image is not valid
  3. Как сделать обратное преобразование TBitmap -> HBitmap ?
  4. Теперь не могу сохранить фото, т.е. оно вроде бы сохраняется, файл в папке появляется, но при открытии через стандарный(и не стандартный) Viewer ничего не открывается... "элемент не найден".. Если из программы попытаться открыть-вылетает procedure TfMain.TakePhotoFromCameraAction1DidFinishTaking(Image: TBitmap); var sPath:string; Image2: TBitmap; SaveParams: TBitmapCodecSaveParams; begin Image2 := TBitmap.Create; sPath := TPath.Combine(TPath.GetSharedCameraPath, '1.jpg'); TThread.Synchronize(nil, procedure begin Image2.Assign(Image); SaveParams.Quality := 100; Image2.SaveToFile(sPath, @SaveParams); Image2.Free; end ); //AddPhoto(1,sPath, lDialogsActive); //AddImage(1,sPath, lDialogsActive); end;
  5. Что-то у меня не получается. Такая же ошибка, как у вас, добавил PhotoIntent.setFlags(TJIntent.javaclass.FLAG_ACTIVITY_NEW_TASK ); ошибка ушла, но не срабатывает callback
  6. Подозреваю, что передача имени файла для сохранения происходит неверно Как сделать првильно?
  7. procedure TfMain.PhotoClick(Sender: TObject); var sPath,FLastPhotoName:string; {$IF DEFINED(ANDROID)} PhotoIntent: JIntent; photoUri: Jnet_Uri; JFileName: JFile; {$ENDIF} begin {$IF DEFINED(ANDROID)} FLastPhotoName := ''; FLastPhotoFullName := ''; FMessageSubscriptionID := TMessageManager.DefaultManager.SubscribeToMessage(TMessageResultNotification, HandleActivityMessage); PhotoIntent := TJIntent.JavaClass.init(TJMediaStore.JavaClass.ACTION_IMAGE_CAPTURE); if (PhotoIntent.resolveActivity(TAndroidHelper.Context.getPackageManager()) <> nil) then begin FLastPhotoName := THashMD5.GetHashString('JPEG PHOTO FILE ' + DateTimeToStr(Now)) + '.jpg'; FLastPhotoFullName := TPath.Combine(TPath.GetSharedDocumentsPath, FLastPhotoName); JFileName := TJFile.JavaClass.init(StringToJString(FLastPhotoFullName)); photoUri := TJnet_Uri.JavaClass.fromFile(JFileName); PhotoIntent.putExtra(TJMediaStore.JavaClass.EXTRA_OUTPUT, TJParcelable.Wrap((photoUri as ILocalObject).GetObjectID)); if PhotoIntent.resolveActivity(TAndroidHelper.Activity.getPackageManager) <> nil then TAndroidHelper.Activity.startActivityForResult(PhotoIntent, REQUEST_IMAGE_CAPTURE); end; {$ENDIF} Приложение камеры открывается, фото делается, но при закрытии приложение вылетает В логах ошибки java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=null} to activity {com.embarcadero.test/com.embarcadero.firemonkey.FMXNativeActivity}: java.lang.NullPointerException
  8. Нашел готовое решение, переделал немного (Berlin). Используя это решение можно получать символы от вирт клавиатуры. Регистрация клавиатуры SetMyVirtualKeyboard(const AControl: TFmxObject), где AControl - компонент обрабатывающий события OnKeyUp procedure SetMyVirtualKeyboard(const AControl: TFmxObject); begin {$IFDEF ANDROID} if FNativeVKService <> nil then Exit; if not Assigned(FMyVirtualKeyboardAndroid) then begin FMyVirtualKeyboardAndroid := TVirtualKeyboardAndroidEx.Create; FMyVirtualKeyboardAndroid.OnKeyUp := TForm(AControl).OnKeyUp; end; FNativeVKService := IFMXVirtualKeyboardService(TPlatformServices.Current.GetPlatformService(IFMXVirtualKeyboardService)); if FNativeVKService <> nil then begin TPlatformServices.Current.RemovePlatformService(IFMXVirtualKeyboardService); end; TPlatformServices.Current.AddPlatformService(IFMXVirtualKeyboardService, FMyVirtualKeyboardAndroid); {$ENDIF} end; Вызов клавиатуры стандартно TPlatformServices.Current.SupportsPlatformService( IFMXVirtualKeyboardService, IInterface(aVirtualKeyboardService)); if (aVirtualKeyboardService <> nil) then aVirtualKeyboardService.ShowVirtualKeyboard(fMain); Скрытие, тоже стандартно if (key=13) then begin //если нажата клавиша enter if TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService, IInterface(aVirtualKeyboardService)) then aVirtualKeyboardService.HideVirtualKeyboard; end; MyFMX.VirtualKeyboard.Android.rar
  9. Удалось как-то решить эту проблему?
  10. У меня виртуальная клавиатура передает в программу только Enter(13) и Backspace(08) Открываю так TPlatformServices.Current.SupportsPlatformService( IFMXVirtualKeyboardService, IInterface(aVirtualKeyboardService)); if (aVirtualKeyboardService <> nil) then aVirtualKeyboardService.ShowVirtualKeyboard(fMain); Обработчик нажатий кнопок procedure TfMain.FormKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); var i:integer; s:string; aVirtualKeyboardService: IFMXVirtualKeyboardService; begin //tCursor.Visible := false; if Key=27 then begin sInputBox := ''; iCurrentPos := 1; end; if Key=37 then begin if iCurrentPos > 0 then iCurrentPos := iCurrentPos-1; end; end; Почему не срабатывает события при вводе текста? Berlin+ android , под win работает как надо.
  11. По поводу обрезки и дробления можно по подробней
  12. Как можно передать файл, с контролем целостности данных?
  13. Уже разобрался, немного переделал. Сервер включен всегда, а клиент работает по схеме Connected-Send-Disconected
  14. Мне нужно чтоб UDPServer и UDPClient работали одновременно на одном порту и IP в одном приложении. Реализую технологию UDP Hole Punching для peer-to-peer соединения (Peer-to-Peer Communication Across Network Address Translators) Код уже написан и оттестирован под Win32, все работает как надо, но на Android почему-то не хочет. Если клиент и сервер на одном порту, то сервер ничего не получает, ReuseSocket= true uClient := TIdUDPClient.Create( nil ); uClient.ReuseSocket := TIdReuseSocket.rsTrue; uClient.OnConnected := ClientConnected; uClient.Host := '192.168.0.100'; uClient.Port := 5551; uClient.BoundIP := ''; uClient.BoundPort := 5551; uClient.Active := true; uClient.Connect; procedure TPeerToPeerClient.ClientConnected(Sender: TObject); begin bConToMainServer := true; sPrivateMyIP := uClient.Binding.IP; iPrivateMyPort := uClient.Binding.Port; StartServer(); end; Код сервера uServer := TIdUDPServer.Create( nil ); uServer.ReuseSocket := TIdReuseSocket.rsTrue; uServer.OnUDPRead := ServerRead; uServer.Active := false; uServer.Bindings.Clear; uServer.Bindings.Add; uServer.Bindings.Items[0].IP := sPrivateMyIP; uServer.Bindings.Items[0].Port := iPrivateMyPort; uServer.DefaultPort := iPrivateMyPort; uServer.IPVersion := Id_IPv4; uServer.ReuseSocket := TIdReuseSocket.rsTrue; uServer.ThreadedEvent := false; uServer.BroadcastEnabled := false; uServer.Active := true; procedure TPeerToPeerClient.ServerRead(AThread: TIdUDPListenerThread; const AData: TIdBytes; ABinding: TIdSocketHandle); var sCommand,sCl,sMessageText:string; i:integer; sync: TMySync; begin sCommand := ''; try i := 0; while (AData <> 0) do begin sCommand := sCommand + chr(AData); i := i + 1; end; finally ShowMessage(sCommand); end; end;
  15. У меня сервер ничего не получает, может надо какие-то разрешения дать приложению?
  16. База mssql 2008 r2 Если кинуть на форму компонент tUniTable (или tUniQuery ) и настроить их на таблицу в которой хоть одно поле integer или float Ошибка bus error. Только под Андроид. В Delphi xe 8 работает без проблем. У кого-то есть такая же проблема ?
  17. AlexShaman

    JMethod

    Почему нет метода invoke в JMethod ?
  18. Такая же ошибка и у меня. Вот тут есть решение, вроде бы, http://stackoverflow.com/questions/25698585/bluetooth-connection-failed-java-io-ioexception-read-failed-socket-might-clos Помогите переделать код на Delphi ry { bluetoothSocket.connect(); success = true; break; } catch (IOException e) { //try the fallback try { Class<?> clazz = tmp.getRemoteDevice().getClass(); Class<?>[] paramTypes = new Class<?>[] {Integer.TYPE}; Method m = clazz.getMethod("createRfcommSocket", paramTypes); Object[] params = new Object[] {Integer.valueOf(1)}; bluetoothSocket = (BluetoothSocket) m.invoke(tmp.getRemoteDevice(), params); Thread.sleep(500); bluetoothSocket.connect(); success = true; break;
  19. Lenovo k900 atom android 4.2.1 С начала приложение не запускалось, "Application does nit support..." Убрал lib-native.so для x86 - сообщение об ошибке ушло, но при запуске зависает на заставке. Можно ли как-то запускать приложения на этом телефоне? Как узнать если ли в этом телефоне поддержка эмулятора intel houdini ?
  20. AlexShaman

    Bluetooth Принтер, отчет

    Есть приложение (xe8, android) в котором я распечатываю чеки через блютуз принтер (JP-5802LYA). Отправка данных на принтер идет через SocketConnection, используя ESC-команды принтера. Все работает как надо. Проблема в том, что код получается "Заточенный" под конкретно эту модель принтера. А программа обрастает пользователями, у которые хотят использовать другие принтеры. Есть ли какие-то компоненты, типа FastReport, которые могут с этим справится, или надо писать код под все модели принтеров?
  21. AlexShaman

    MapView + Windows

    Поддерживает ли MapView в Delphi 10 работу в windows среде? У компонента в списке поддерживаемых платформ указано, что поддерживает. Чем отличается работа с MapView в Android и Windows?
  22. Delphi xe8. Если в программе возникает какая-то ошибка, то приложение сразу закрывается без отображения сообщения об ошибке. Вылетает только на Android 6, на других версия работает как надо. Из-за этого долго приходится выяснять где проблема.
×
×
  • Создать...