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

OnePeople

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

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

  • Посещение

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

    64

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

  1. Возмите TabControl отсюда https://github.com/Zeus64/alcinoe/
  2. procedure DownloadImages; var RS: TResourceStream; begin RS:=TResourceStream.Create(HInstance, 'FonMain', RT_RCData); try Fon <<<<<<<<<<<<<<<<<< Где Create??? Fon.Width:=420; Fon.Height:=680; Fon.LoadFromStream(RS); finally RS.Free; end; end; Тута нет procedure TForm1.FormCreate(Sender: TObject); begin Regim:=0; Buf:=TBitmap.Create; Buf.Width:=420; Buf.Height:=680; form1.Border.Styling:=false; DownloadImages; //zagruzka kartinok end;
  3. Ошибку чего??? Вы создаете процедуру, с именем каким вы хотите, как это может быть ошибкой, проверяйте синтаксис
  4. По поведению на различных прошивках я не могу вам ни чего сказать вообще не думаю что это связанно с версией андроида, а связанно с прошивкой вендора. Выдернул из рабочего проекта, строго не пинать, за корявость) 1. type {$IFDEF ANDROID} TMyAudioFocusChangeListener = class; {$ENDIF} TForm1 = class(TForm) 2. private { Private declarations } {$IFDEF ANDROID} afChangeListener: TMyAudioFocusChangeListener; 3. public procedure onAudioFocusChange(focusChange: Integer); end; TAudioFocusChangeEvent = procedure(focusChange: Integer) of object; TMyAudioFocusChangeListener = class(TJavaLocal, JAudioManager_OnAudioFocusChangeListener) private [weak] FParent : TForm1; FOnAudioFocusChanged: TAudioFocusChangeEvent; public constructor Create(AParent : TForm1); property OnAudioFocusChanged: TAudioFocusChangeEvent read FOnAudioFocusChanged write FOnAudioFocusChanged; Destructor Destroy; Override; procedure onAudioFocusChange(focusChange: Integer); cdecl; end; 4. constructor TMyAudioFocusChangeListener.Create; begin inherited Create; FParent := AParent; end; destructor TMyAudioFocusChangeListener.Destroy; begin inherited; end; procedure TMyAudioFocusChangeListener.onAudioFocusChange(focusChange: Integer); begin if Assigned(FOnAudioFocusChanged) then begin FOnAudioFocusChanged(focusChange); end; FParent.onAudioFocusChange(focusChange); end; procedure TForm1.onAudioFocusChange(focusChange: Integer); begin Form1.Memo2.Lines.Add('focus change:'+focusChange.ToString); if (focusChange=TJaudioManager.JavaClass.AUDIOFOCUS_LOSS) then begin MusicControl.AudioFocus:=false; case MusicControl.MusicType of TMusicType.Music: if MusicControl.Music.MusicState=TMusicState.Play then begin MusicPlayPause; exit; end; TMusicType.Radio: if MusicControl.Radio.MusicState=TMusicState.Play then begin RadioPlayPause; exit; end; end; end; end; 5. procedure TForm1.GetAudioFocus; begin // {$IFDEF ANDROID} CallinUIThread(procedure var AudioFocusRequest: JAudioFocusRequest; playbackAttributes: JAudioAttributes; afHandler: JHandler; res: integer; begin afChangeListener:=TMyAudioFocusChangeListener.Create(Self); afHandler:= TJHandler.Create; playbackAttributes := TJAudioAttributes_Builder.Create .setUsage(TJAudioAttributes.JavaClass.USAGE_MEDIA) .setContentType(TJAudioAttributes.JavaClass.CONTENT_TYPE_MUSIC) .build(); AudioFocusRequest:=TJAudioFocusRequest_Builder(TJAudioManager.JavaClass.AUDIOFOCUS_GAIN).Create .setAudioAttributes(playbackAttributes) .setAcceptsDelayedFocusGain(true) .setOnAudioFocusChangeListener(afChangeListener, afHandler) .build(); res:=FAudioManager.requestAudioFocus(AudioFocusRequest); if res = TJAudioManager.JavaClass.AUDIOFOCUS_REQUEST_DELAYED then LogCAAdd('AUDIOFOCUS_REQUEST_DELAYED') else if res = TJAudioManager.JavaClass.AUDIOFOCUS_REQUEST_GRANTED then begin MusicControl.AudioFocus:=true; LogCAAdd('AUDIOFOCUS_REQUEST_GRANTED'); end else if res = TJAudioManager.JavaClass.AUDIOFOCUS_REQUEST_DELAYED then LogCAAdd('AUDIOFOCUS_REQUEST_DELAYED'); end ); {$ENDIF} end; P.S. Для android 8 выше! для поддержки ранешних версий Android нужно немного дописать
  5. Audiofocus отлавливать, пример могу через пару часиков скинуть, а лучше сами в справке Гугла посмотрите
  6. Проверьте пути к файлу procedure TForm1.TetheringAppProfile1Resources3ResourceReceived( const Sender: TObject; const AResource: TRemoteResource); var GetImage : TMemoryStream; begin GetImage := TMemoryStream.Create; GetImage.LoadFromStream(AResource.Value.AsStream); GetImage.Position := 0; ImageViewer1.Bitmap.LoadFromStream(GetImage); GetImage.Free; end;
  7. В DesignMode зайдите и попробуйте поменять размеры Height и Width на 0
  8. У меня было на винде создавал папку с именем aux)))) А оказывается нельзя её создать!
  9. TDirectory.CreateDirectory(IncludeTrailingPathDelimiter('/storage/emulated/0/3D Мебель: Расчет')); TDirectory.CreateDirectory(IncludeTrailingPathDelimiter(FinalyDir)); Проверьте создаются ли папки? TDirectory.ForceDirectories('/storage/emulated/0/3D Мебель: Расчет/Проект № ' + AppForm.Order.OID) вернет true если все хорошо
  10. Ну пишите сразу код, а то не понятно куда вы записываете, что в bitmap и т.д.
  11. Ну все правильно дайте на чтение также разрешение, соответственно и в манифесте также FPermissionReadExternalStorage := JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE); FPermissionWriteExternalStorage := JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE); PermissionsService.RequestPermissions([ FPermissionReadExternalStorage, FPermissionWriteExternalStorage], nil);
  12. Покажите код записи И приложите ваш манифест
  13. Так окно запроса разрешений появляется??? PERMITWRITEEXT := JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE); PermissionsService.RequestPermissions([PERMITWRITEEXT], nil)
  14. Если в манифесте есть <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> то все должно работать! Context.getExternalFilesDir(String) и Context.getExternalCacheDir() в эти каталоги должно и без разршения записывать если API 19 или выше!
  15. У всех, кто запросил разрешение на это;)
  16. procedure TForm1.Timer2Timer(Sender: TObject); var FileIndex, FileName : String; I : Integer; begin Timer2.Enabled := False; randomize; FileIndex := IntToStr(random(5000)); for I := 0 to ListBox1.Items.Count-1 do begin FileIndex := IntToStr(StrToInt(FileIndex) + 1); FileName := FileIndex + Exp; TFile.Copy(ListBox1.Items[I], FileName); end; end; А так?
  17. А в deployment для android 32 release пути прописаны?
  18. Последний параметр ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK И этот флаг должен совпадать с манифестом
  19. Ну так в 29 public final void startForeground (int id, Notification notification, int foregroundServiceType)
  20. Да нормально сервисы работают, другое дело что инфы именно для rad studio очень мало, вот эта тема для вас Тут в теме есть все действия чтобы сервис работал вечно;)
  21. Да вроде не должно, тут по идее нужно только расширение файла: SHGetFileInfo(PChar(Extension), FILE_ATTRIBUTE_NORMAL, FileInfo, SizeOf(FileInfo), SHGFI_ICON or SHGFI_SMALLICON or SHGFI_SYSICONINDEX or SHGFI_USEFILEATTRIBUTES );
  22. И добавить ncb.setsound
  23. Не знаю как правильно ни когда не задумывался, всегда делал по старинке, тут надо ещё проверить чтобы последний символ не был равен "/". If path[length(path)]='/' then // или if pos('/',path)=length(path) then Copy(path,0, lastDelimiter ('/',copy(path,0,length(path)-1)-1) else Copy(path,0,lastDelimiter('/',path)-1); Или допустим copy(path, 0, lastDelimiter ( tpath.getfilename, path)-1; Или
  24. Copy(path,0,lastDelimiter('/',path)-1);
×
×
  • Создать...