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

AlexShaman

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

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

  • Посещение

Информация

  • Пол
    Мужчина

Посетители профиля

2 092 просмотра профиля

Достижения 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
×
×
  • Создать...