-
Постов
58 -
Зарегистрирован
-
Посещение
Активность репутации
-
afors отреагировална ENERGY в Как достать данные из Intent
Чтобы отправить строку в чужой Intent: Intent.putExtra(TJIntent.JavaClass.EXTRA_TEXT, StringtoJString(AText)); Чтобы получить строку в своем Activity (если кто-то отправил) : var Intent: JIntent; ... Intent := TAndroidHelper.Activity.getIntent; Text := JStringToString(Intent.getStringExtra( StringToJString(_NAME_) ) ); -
afors получил реакцию от hippocamus в TWebBrowser всегда отображается поверх всех контролов
@hippocamus Как получить картинку содержимого рабочей области WebBrowser? Ты об этом? WebBrowser1.MakeScreenshot
-
afors получил реакцию от rakhmet в Топ мобильных приложений
Может и банально, но соответствует критериям...
Официальное название: whatsapp Официальный сайт: https://www.whatsapp.com/ Платформы: Android, iPhone, Компьютеры Mac или Windows, Windows Phone -
afors получил реакцию от Rusland в Возникает ошибка при открытии приложения после получения локального уведомления
Эксперементировал на разных формах, кидал WebBrowser в дизайнере на форму, создавал динамически, загружал страницы в потоке... пока не удалось победить. Зависания могли быть и при вызове календаря, интентах. НО после использования браузера.
-
afors получил реакцию от Anatoliy в Возникает ошибка при открытии приложения после получения локального уведомления
@Владимир
У меня было похожее поведение, при получении уведомлений программа могла зависнуть (не всегда). Долго пытался найти причину, оказалось, что зависало после использования TWebBrowser.
-
afors отреагировална dnekrasov в Как скрыть иконку на панели задач?
Winapi.Windows и FMX.Platform.Win
-
afors отреагировална Andrey Efimov в [Статья][AdMob] Добавляем рекламный блок в приложение
Ссылка: http://delphifmandroid.blogspot.ru/2016/07/admob.html
Автор: Андрей Ефимов
Описание: Подробная инструкция по добавлению рекламного блока в приложение, разработанное в RAD Studio.
-
afors отреагировална rareMax в Kernow Software FMX Components for XE7, XE8 & XE10 Seattle
Давненько еще нашел этот пак компонентов, но не было времени ознакомиться с ним ближе. Сегодня посмотрел демки - думаю нашему сообществу понравится эта библиотека. Описание оригинальное с гитхаба.
Как скачать:
GetIT(нет лицензии на студию? смотрим ниже) Прямая ссылка на последнюю версию С помощью GIT-клиента: https://github.com/gmurt/KernowSoftwareFMX.git .Можете либо встроенным в делфи, либо своим любимым. Могу посоветовать SourceTreeApp. Рекомендую именно этот способ - вам не придется постоянно перекачивать компонент для обновления. Достаточно в приложении нажать одну кнопку - и компонент обновился.
Kernow Software FMX Components for XE7, XE8 & XE10 Seattle.
(May work with earlier versions but untested)
Firemonkey Slide menu, ListView and Segment buttons for Delphi. Inherits from a non-visual component to keep things simple.
Includes demo with source. Demo App also available on app store: https://itunes.apple.com/gb/app/kscomponents-reference/id1031179701?mt=8
Feel free to support the components with a donation ;-)
If you'd like to support the ksComponents project, you can do so at the following link ;-)
http://www.kernow-software.co.uk/?page_id=397
TksTableView
Cached table view provides native performance regardless of the number of text/items/graphics added support for embedded switches support for embedded buttons support for embedded segment buttons Canvas style methods for adding text/shapes/images Built-in support for Image, Title, SubTitle, Detail and Accessory elements Check list option support - single check or multi check Custom check mark colours Image cropping (square, round rect or circle) "Indicator" colours - add colour indicators to each row "Sticky" headers TksSlideMenu
set menu background colour set selected item colour set font colours add images to items fade background left or right aligned menus inherites from non-visual Tcomponent for quick integration into existing projects uses bitmap caching for optimised performance TksSegmentButtons
segment button component support for iOS style badges TksFormTransition
component for animating transitions between forms TksTabControl
Tab control component with support for different colours/themes Large number of built-in icons Support for iOS style badges TksNetHttpClient
enhanced http client with ASync Get method TksTileMenu
simple but effective main menu component TksChatView
component for building iOS style chat applications TksSpeedButton
TSpeedButton descendant with support for iOS style badges Any suggestions for updates are welcome :-)
-
afors получил реакцию от Rusland в Как осуществить набор номера?
Можно без показа экрана набора номера:
procedure TForm1.Button1Click(Sender: TObject); // Uses FMX.Dialogs, FMX.PhoneDialer, FMX.Platform var PhoneDialerService: IFMXPhoneDialerService; begin if TPlatformServices.Current.SupportsPlatformService(IFMXPhoneDialerService, IInterface(PhoneDialerService)) then PhoneDialerService.Call('+71234567890') Else ShowMessage ('Вызовы не поддерживаются'); end;
-
afors отреагировална XXXXXX в GCM
procedure TForm1.Button1Click(Sender: TObject); var AJson: TJSONObject; AJsonData: TJSONObject; ARegisterIds:TJSONArray; AData, AResponseContent:TSTringStream; DeviceToken:String; begin ARegisterIds := TJSONArray.Create; AJson := TJSONObject.Create; try DeviceToken := 't2uIvqpZ_o7u3sUxCBBAICxaRuj05mgHaGWY6x6Dwd3oYnwAEoSY5vl1BkcLzfLt4TPbNbFxr7WCKW5IictG_QCMTqSQ7QEp-mk-g9OG0CHaE5Rx01FT51Zc5om'; ARegisterIds.Add(DeviceToken); AJsonData := TJSONObject.Create; AJsonData.AddPair('id', ID.ToString()); ID := ID + 1; AJsonData.AddPair('message', Edit1.Text); AJson.AddPair('registration_ids', ARegisterIds); AJson.AddPair('data', AJsonData); IdHTTP1.Request.ContentType := 'application/json'; IdHTTP1.Request.CustomHeaders.AddValue('Authorization', 'key=AIzaSyBuYtgzrIE6Z-AQobRf1-taJOl6CdWUfL8'); AData := TStringStream.Create(AJson.ToString); AData.Position := 0; AResponseContent := TStringStream.Create('', TEncoding.UTF8); IdHTTP1.Post('https://android.googleapis.com/gcm/send', AData, AResponseContent); AResponseContent.Position := 0; Memo1.Lines.Add(AResponseContent.DataString); finally end; end; до записи в AData которую потом пересылаю через IdHttp, в AJson все символы отображаются отлично.
-
afors получил реакцию от Rusland в TWebBrowser всегда отображается поверх всех контролов
@hippocamus Как получить картинку содержимого рабочей области WebBrowser? Ты об этом? WebBrowser1.MakeScreenshot
-
afors отреагировална Равиль Зарипов (ZuBy) в Скриншот с WebBrowser (WebBrowser1.MakeScreenshot)
Замените код на такой
procedure TForm1.WebBrowser1DidStartLoad(ASender: TObject); var aThread: TThread; begin aThread := TThread.CreateAnonymousThread( procedure begin TThread.Synchronize(nil, procedure begin If CheckBox1.IsChecked Then Image1.Bitmap := WebBrowser1.MakeScreenshot; end) end); aThread.FreeOnTerminate := true; aThread.Start; end; -
afors отреагировална ENERGY в TTimeEdit/TDateEdit. Программно раскрыть. Можно ли проще?
TimeEdit1.OpenPicker ?
-
afors отреагировална ENERGY в как заставить TTimeEdit работать в режиме 24ч.
Вообще время должно отображаться в том формате, который показывает TimeEdit по умолчанию. Т.к. это системный формат, и он удобен тому пользователю, которые его установил.
24 часовой формат:
TimeEdit1.Format := 'HH:mm';
Чтобы принудительно на am pm перевести:
TimeEdit1.Format := 'hh:mm ampm' - главное чтобы была строчка ampm или am\pm или .
-
afors отреагировална Andrey Efimov в Не работает с вибрацией
Права дали точно?
Вот вам мой класс для работы с вибрацией, там есть код проверки прав - https://github.com/AndrewEfimov/Android-API/blob/master/Vibrator/class/Vibrator.Android.pas (https://github.com/AndrewEfimov/Android-API/tree/master/Vibrator, класс и тестовое приложение)
либо посмотрите в настройках приложения, раздел с правами.
-
afors отреагировална Brovin Yaroslav в Как я могу скрыть / показать клавиатуру под "Android"?
Русский
За управление виртуальной клавиатурой в FireMonkey отвечает сервис IFMXVirtualKeyboardService (Embarcadero Doc Wiki). Который позволяет отображать и скрывать клавиатуру.
Для скрытия клавиатуры достаточно выполнить следующий код:
uses FMX.Platform, FMX.VirtualKeyboard; procedure TForm5.ButtonHideKeybordClick(Sender: TObject); var KeyboardService: IFMXVirtualKeyboardService; begin // Запрашиваем сервис виртуальной клавиатуры if TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService, IInterface(KeyboardService)) then KeyboardService.HideVirtualKeyboard; end; Чтобы показать клавиатуру для контрола:
procedure TForm5.ButtonShowKeyboardClick(Sender: TObject); var KeyboardService: IFMXVirtualKeyboardService; begin // Запрашиваем сервис виртуальной клавиатуры if TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService, IInterface(KeyboardService)) then KeyboardService.ShowVirtualKeyboard(Edit1); end;
English
FireMonkey has special service for managing Virtual Keyboard. It is IFMXVirtualKeyboardService (Embarcadero Doc Wiki). It allows show and hide keyboard.
For showing virtual keyboard use next code: uses FMX.Platform, FMX.VirtualKeyboard; procedure TForm5.ButtonHideKeybordClick(Sender: TObject); var KeyboardService: IFMXVirtualKeyboardService; begin // Request service of visrtual keyboard if TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService, IInterface(KeyboardService)) then KeyboardService.HideVirtualKeyboard; end; For showing virtual keyboard for control:
procedure TForm5.ButtonShowKeyboardClick(Sender: TObject); var KeyboardService: IFMXVirtualKeyboardService; begin // Request service of visrtual keyboard if TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService, IInterface(KeyboardService)) then KeyboardService.ShowVirtualKeyboard(Edit1); end; -
afors отреагировална HyperZen в Запрет потери активности приложения
Запретить отключение экрана приложения в Андроид:
в файл проекта (Project - View Source) добавить строки:
// в uses {$IFDEF ANDROID} Androidapi.Helpers, Androidapi.JNI.App, Androidapi.JNI.GraphicsContentViewText, {$ENDIF} {$R *.res} // и далее - перед Application.Initialize begin {$IFDEF ANDROID} TAndroidHelper.Activity.getWindow.addFlags(TJWindowManager_LayoutParams.JavaClass.FLAG_KEEP_SCREEN_ON); {$ENDIF} Application.Initialize; ...
-
afors отреагировална ENERGY в Запрет потери активности приложения
{$IFDEF ANDROID} procedure KeepScreenOn(aEnable: boolean); var vFlags: integer; begin vFlags := TJWindowManager_LayoutParams.JavaClass.FLAG_KEEP_SCREEN_ON; if aEnable then begin CallInUIThread ( // uses FMX.Helpers.Android procedure begin TAndroidHelper.Activity.getWindow.setFlags (vFlags, vFlags); end ); end else CallInUIThread ( procedure begin TAndroidHelper.Activity.getWindow.clearFlags (vFlags); end ); end; {$ENDIF} Это для Berlin и ниже.
При использовании Tokyo - вызов CallInUIThread не нужен, можно вызывать напрямую, т.к. теперь главный Delphi поток это Java UIThread.
iOS
uses iOSapi.UIKit; {$R *.fmx} procedure TForm6.Button1Click(Sender: TObject); var UIApp : UIApplication; begin UIApp := TUIApplication.Wrap(TUIApplication.OCClass.sharedApplication); UIApp.setIdleTimerDisabled(True); end; -
afors отреагировална Ufomaster в Как при переходе с эдита на эдит очистить предыдущий текст в клавиатуре, что бы он не попал в новый эдит?
Как при переходе с эдита на эдит очистить предыдущий текст в клавиатуре, что бы он не попал в новый эдит при нажатии на любой символ?
-
afors отреагировална Andrey Efimov в [Статья] Публикация приложения в Google Play
Ссылка: http://delphifmandroid.blogspot.ru/2016/06/google-play-google-play.html
Автор: Андрей Ефимов
Описание: Публикация приложения в Google Play
-
afors получил реакцию от Kitty в FileExits не находит файл хотя он есть
procedure TForm1.Button1Click(Sender: TObject); Var s: String; begin s := '×123.txt'; If FileExists (s) Then ShowMessage(s + ' yes') Else ShowMessage (s+ ' No'); end; Вот так FileExists находит файл с символом × в имени. Но этот файл был создан обычным проводником Windows. Total Commander отказался создавать такой файл, заменив × на вопросительный знак.
Файл создается программой?
-
afors отреагировална Fedor K в TListView: список в виде CheckBox в ListViewItem
У стандартного TListView уже все есть:
//устанавливаем режим редактирования у списка либо в редакторе свойств выставляем ListView1.EditMode := True; //... //Получаем список всех выбранных элементов ListView1.Items.CheckedIndexes(true); //обращаться к свойству текущего элемента так: ListView1.Items.SetChecked(const Index: Integer; const Value: Boolean); ListView1.Items.GetChecked(const Index: Integer): Boolean;
-
afors отреагировална Равиль Зарипов (ZuBy) в [Статья] Настройка пуш уведомлении через сервис Firebase для ANDROID и IOS [Часть 1]
Ссылка: http://blog.rzaripov.kz/2017/02/firebase-android-ios.html
Автор: Зарипов Равиль @ZuBy
Описание: Настройка пуш уведомлении через сервис Firebase для ANDROID и IOS
-
afors отреагировална Kitty в krapotkin и Равиль Зарипов
Даже не знаю или в правильный раздел форума пишу. Я, например, хочу поблагодарить в своей теме - krapotkin и Равиль Зарипов за очень полезные ответы. Реально помогают решить вопросы. Спасибо.
Хотя все они паскалисты, все же удается иногда получить код на С++ со стороны. Очень в этом помогает автор Indy rlebeau, например эту статью: Статья
он переводит в С++ тут: C++ и никто бы другой не помог. В этом плане тяжело, без него и никак вопрос не решить.
А этот форум это симбиоз ума и решений! Спасибо Ярославу за реализацию и хоты бы одного спеца по С++ как по Дельфи и - вот оно счастье.
Спасибо!
-
afors отреагировална Равиль Зарипов (ZuBy) в Отображение в виде плиток
Предыстория была такая:
Изначально такие плитки были сделаны на Button'ах (стиль) и TPresentedScrollBox. Но как только пошло дело в тест основательный идею тут же выбросил. 120+ элементов выключили телефон (samsung ace2 duos) при отрисовке, точней при динамической загрузке картинок. да и в целом вся эта беда работает медленней чем реализация на TListView
Я не художник, но смысл вроде передал
Пример: У нас есть 12 элементов,и 4 колонки
Можно в LV отрисовывать дополнительные "контролы" и поместить в один реальный айтем, 4 виртуальные панельки (в нашем случае)
Для того чтобы такое получилось:
1) ListView должна при ресайзе рассчитать сколько колонок она может иметь (ширина LV / на ширину одной панельки)
2) дальше Вам нужно будет разбить отрисовку Itema на 4 панельки
2.1) тоже самое проделать и при выделении
3) При таком подходе не будет стандартных элементов отображения (Text, Detail, Image и прочее нужно выключить)
Добавление Itema будет проходить в два цикла: первый добавляет реальный Item (0-2), а второй заполняет данными наши поля в панельках (title1, price1, bitmap1, title2, price2, bitmap2 и тд...)
4) Ну и самое важное в OnUpdateObjects все это отрисовать
Надеюсь вам это поможет!