-
Постов
363 -
Зарегистрирован
-
Посещение
-
Победитель дней
64
Весь контент OnePeople
-
Возмите TabControl отсюда https://github.com/Zeus64/alcinoe/
- 21 ответ
-
- User interface
- slide
-
(и ещё 2 )
C тегом:
-
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;
-
Ошибку чего??? Вы создаете процедуру, с именем каким вы хотите, как это может быть ошибкой, проверяйте синтаксис
-
По поведению на различных прошивках я не могу вам ни чего сказать вообще не думаю что это связанно с версией андроида, а связанно с прошивкой вендора. Выдернул из рабочего проекта, строго не пинать, за корявость) 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 нужно немного дописать
-
Audiofocus отлавливать, пример могу через пару часиков скинуть, а лучше сами в справке Гугла посмотрите
-
Проверьте пути к файлу 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;
- 5 ответов
-
- delphi
- delphi 10.3.3
-
(и ещё 3 )
C тегом:
-
У меня было на винде создавал папку с именем aux)))) А оказывается нельзя её создать!
-
TDirectory.CreateDirectory(IncludeTrailingPathDelimiter('/storage/emulated/0/3D Мебель: Расчет')); TDirectory.CreateDirectory(IncludeTrailingPathDelimiter(FinalyDir)); Проверьте создаются ли папки? TDirectory.ForceDirectories('/storage/emulated/0/3D Мебель: Расчет/Проект № ' + AppForm.Order.OID) вернет true если все хорошо
-
Ну пишите сразу код, а то не понятно куда вы записываете, что в bitmap и т.д.
-
Ну все правильно дайте на чтение также разрешение, соответственно и в манифесте также FPermissionReadExternalStorage := JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE); FPermissionWriteExternalStorage := JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE); PermissionsService.RequestPermissions([ FPermissionReadExternalStorage, FPermissionWriteExternalStorage], nil);
-
Покажите код записи И приложите ваш манифест
-
Так окно запроса разрешений появляется??? PERMITWRITEEXT := JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE); PermissionsService.RequestPermissions([PERMITWRITEEXT], nil)
-
Если в манифесте есть <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> то все должно работать! Context.getExternalFilesDir(String) и Context.getExternalCacheDir() в эти каталоги должно и без разршения записывать если API 19 или выше!
-
У всех, кто запросил разрешение на это;)
- 13 ответов
-
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; А так?
- 40 ответов
-
- delphi
- delphi 10.3.3
-
(и ещё 6 )
C тегом:
-
А в deployment для android 32 release пути прописаны?
-
Последний параметр ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK И этот флаг должен совпадать с манифестом
-
Ну так в 29 public final void startForeground (int id, Notification notification, int foregroundServiceType)
-
Да нормально сервисы работают, другое дело что инфы именно для rad studio очень мало, вот эта тема для вас Тут в теме есть все действия чтобы сервис работал вечно;)
- 2 ответа
-
- embarcadero
- firemoneky
-
(и ещё 1 )
C тегом:
-
Да вроде не должно, тут по идее нужно только расширение файла: SHGetFileInfo(PChar(Extension), FILE_ATTRIBUTE_NORMAL, FileInfo, SizeOf(FileInfo), SHGFI_ICON or SHGFI_SMALLICON or SHGFI_SYSICONINDEX or SHGFI_USEFILEATTRIBUTES );
-
И добавить ncb.setsound
-
Не знаю как правильно ни когда не задумывался, всегда делал по старинке, тут надо ещё проверить чтобы последний символ не был равен "/". 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; Или
-
Copy(path,0,lastDelimiter('/',path)-1);