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

Rusland

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

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

  • Посещение

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

    26

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

  1. Может быть попробуете прикрутить Java библиотеку Zip4J?
  2. К обычному Button можно подсоединить ImageList с картинками и указать ему ImageIndex. IconButton.zip
  3. krapotkin, почему-то doExit отрабатывает только при третьем нажатии
  4. У нас с вами аналогичные проблемы (только у меня планшет Lenovo Lenovo Tab 2 A7-30DC Android 5.0.1). Разработчики делают вид что не видят наших тем
  5. Есть у кого-нибудь идеи как побороть проблему на планшете с Android 5?
  6. У меня один раз переключает... может какой-то обработчик добавлен на Switch? PS. Проверил на Android и Windows
  7. Это просто способ завлечь потенциальных программистов, подсадить их на C++Builder. Расчет на то что на Starter все равно ничего путного написать нельзя... поэтому купят версию Pro или выше. Странно что не проводят аналогичные акции на Delphi Starter.
  8. Вот нашел код для записи видео (проверил - работает): unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, Androidapi.JNI.GraphicsContentViewText, System.Messaging, // TMessageManager FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls, FMX.Controls.Presentation; type TForm1 = class(TForm) BtnRecord: TButton; Label1: TLabel; procedure BtnRecordClick(Sender: TObject); private { Private declarations } procedure HandleActivityMessage(const Sender: TObject; const M: TMessage); function OnActivityResult(RequestCode, ResultCode: Integer; Data: JIntent): Boolean; public { Public declarations } FMessageSubscriptionID:integer; end; var Form1: TForm1; const RECORD_VIDEO = 9; implementation {$R *.fmx} uses System.IOUtils, Androidapi.JNI.Provider, Androidapi.JNI.App, Androidapi.JNI.Net, Androidapi.JNIBridge, Androidapi.Helpers, Androidapi.JNI.JavaTypes, Androidapi.JNI.Os; procedure TForm1.BtnRecordClick(Sender: TObject); var VideoIntent: JIntent; videoUri: Jnet_Uri; AFile: JFile; FileName: TFileName; begin FMessageSubscriptionID := TMessageManager.DefaultManager.SubscribeToMessage( TMessageResultNotification, HandleActivityMessage); VideoIntent := TJIntent.JavaClass.init( TJMediaStore.JavaClass.ACTION_VIDEO_CAPTURE ); if ( VideoIntent.resolveActivity( SharedActivityContext.getPackageManager() ) <> nil) then begin FileName := TPath.Combine( TPath.GetSharedDocumentsPath, 'recording.mp4'); // см. /storage/sdcard0/Documents AFile:=TJFile.JavaClass.init( StringToJString(FileName)); videoUri:=TJnet_Uri.JavaClass.fromFile(AFile); VideoIntent.putExtra( TJMediaStore.JavaClass.EXTRA_OUTPUT, TJParcelable.Wrap((videoUri as ILocalObject).GetObjectID)); SharedActivity.startActivityForResult(VideoIntent, RECORD_VIDEO); end; end; procedure TForm1.HandleActivityMessage(const Sender: TObject; const M: TMessage); begin if M is TMessageResultNotification then OnActivityResult( TMessageResultNotification(M).RequestCode, TMessageResultNotification(M).ResultCode, TMessageResultNotification(M).Value); end; function TForm1.OnActivityResult(RequestCode, ResultCode: Integer; Data: JIntent): Boolean; begin Result := False; TMessageManager.DefaultManager.Unsubscribe( TMessageResultNotification, FMessageSubscriptionID); FMessageSubscriptionID := 0; if RequestCode = RECORD_VIDEO then begin if ResultCode = TJActivity.JavaClass.RESULT_OK then begin TThread.Queue(nil, procedure begin Label1.Text:='recording completed'; Invalidate; end); end; end; end; end. Пишет стандартной программой и сохраняет под названием recording.mp4 Если нужно просто писать видео, то подойдет.
  9. Что-нибудь изменилось за два года? Есть способы легко записывать видео на Android с частотой хотя бы 24кадра в секунду?
  10. chaplin.u@gmail.com, индекс у item-а не изменится, просто выделится последний item в листбоксе
  11. Это можно легко проверить скопировав эту букву, например, в редактор FAR - он покажет код символа и станет ясно русская или английская.
  12. Оказывается есть возможность вызывать javascript: WebBrowser1.EvaluateJavaScript('alert("OK")');
  13. Rusland

    [Android] WebBrowser и Javascript

    В Windows можно работать c javascript через execScript (см. FMX.WebBrowser.Win), а как "общаться" с js на Android? Мне нужно выполнять свои скрипты, передавать данные в переменные.
  14. А почему в Windows не срабатывает этот вариант при обычном Navigate?
  15. На вкладе Effects есть столько Эффектов, но зачем они нужны и как их использовать неизвестно. Хотелось бы узнать их возможности.
  16. Rusland

    MapView + Windows

    В Windows не поддерживается.
  17. У меня при наведении ничего не показывает (Yandex браузер)
  18. Пропал год опубликования сообщения. Теперь когда читаешь форум, то не знаешь за какой год сообщение и соответственно не можешь понять о какой версии продукта идет речь. Верните пожалуйста как было.
  19. Как узнать сколько свободного места на внутренней и внешней памяти (SD-карте)?
  20. Кривяков Виталий, проверил у себя - все работает, мусора нет, спасибо! Еще бы понять почему многоточий в конце нет как в Windows
  21. Попробуйте запустить в режиме Debug-a запустить - прежде чем приложение умрет, оно выдаст ошибку, нажмите Break и посмотрите Call stack - возможно там будет видно где происходит ошибка.
  22. Rusland

    MapView и Form.FullScreen

    Вот принтскрины с 7дюймового Lenovo Компилировал сам в Берлине
  23. Может быть такой код поможет? unit UntNetwork; interface function IsConnected: Boolean; function IsWiFiConnected: Boolean; function IsMobileConnected: Boolean; implementation uses System.SysUtils, Androidapi.JNIBridge, Androidapi.JNI.GraphicsContentViewText, Androidapi.JNI.JavaTypes, FMX.Helpers.Android, Androidapi.Helpers{, Misc}; type JConnectivityManager = interface; JNetworkInfo = interface; JNetworkInfoClass = interface(JObjectClass) ['{E92E86E8-0BDE-4D5F-B44E-3148BD63A14C}'] end; [JavaSignature('android/net/NetworkInfo')] JNetworkInfo = interface(JObject) ['{6DF61A40-8D17-4E51-8EF2-32CDC81AC372}'] {Methods} function isAvailable: Boolean; cdecl; function isConnected: Boolean; cdecl; function isConnectedOrConnecting: Boolean; cdecl; end; TJNetworkInfo = class(TJavaGenericImport<JNetworkInfoClass, JNetworkInfo>) end; JConnectivityManagerClass = interface(JObjectClass) ['{E03A261F-59A4-4236-8CDF-0068FC6C5FA1}'] {Property methods} function _GetTYPE_WIFI: Integer; cdecl; function _GetTYPE_WIMAX: Integer; cdecl; function _GetTYPE_MOBILE: Integer; cdecl; {Properties} property TYPE_WIFI: Integer read _GetTYPE_WIFI; property TYPE_WIMAX: Integer read _GetTYPE_WIMAX; property TYPE_MOBILE: Integer read _GetTYPE_MOBILE; end; [JavaSignature('android/net/ConnectivityManager')] JConnectivityManager = interface(JObject) ['{1C4C1873-65AE-4722-8EEF-36BBF423C9C5}'] {Methods} function getActiveNetworkInfo: JNetworkInfo; cdecl; function getNetworkInfo(networkType: Integer): JNetworkInfo; cdecl; end; TJConnectivityManager = class(TJavaGenericImport<JConnectivityManagerClass, JConnectivityManager>) end; function GetConnectivityManager: JConnectivityManager; var ConnectivityServiceNative: JObject; begin ConnectivityServiceNative := SharedActivityContext.getSystemService(TJContext.JavaClass.CONNECTIVITY_SERVICE); if not Assigned(ConnectivityServiceNative) then raise Exception.Create('Could not locate Connectivity Service'); Result := TJConnectivityManager.Wrap( (ConnectivityServiceNative as ILocalObject).GetObjectID); if not Assigned(Result) then raise Exception.Create('Could not access Connectivity Manager'); end; function IsConnected: Boolean; var ConnectivityManager: JConnectivityManager; ActiveNetwork: JNetworkInfo; begin ConnectivityManager := GetConnectivityManager; ActiveNetwork := ConnectivityManager.getActiveNetworkInfo; Result := Assigned(ActiveNetwork) and ActiveNetwork.isConnected; end; function IsWiFiConnected: Boolean; var ConnectivityManager: JConnectivityManager; WiFiNetwork: JNetworkInfo; begin ConnectivityManager := GetConnectivityManager; WiFiNetwork := ConnectivityManager.getNetworkInfo(TJConnectivityManager.JavaClass.TYPE_WIFI); Result := WiFiNetwork.isConnected; end; function IsMobileConnected: Boolean; var ConnectivityManager: JConnectivityManager; MobileNetwork: JNetworkInfo; begin ConnectivityManager := GetConnectivityManager; MobileNetwork := ConnectivityManager.getNetworkInfo(TJConnectivityManager.JavaClass.TYPE_MOBILE); Result := MobileNetwork.isConnected; end; end. Хотя лично мне интересно как пропинговать какой-нибудь сервер (желательно без Indy компонент)...
×
×
  • Создать...