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

zairkz

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

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

  • Посещение

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

    12

Активность репутации

  1. Like
    zairkz получил реакцию от BoriZZ_21 в Кодировка под Android   
    with TStringStream.Create do try LoadFromFile('d:\11.txt', TEncoding.UTF8); Edit1.Text := DataString; finally Free; end; всё что нужно было
  2. Thanks
    zairkz отреагировална bigjorj в Прогрессбар во время загрузки файла.   
    Вот пример моего потока загрузки
    Запуск:
    unit DownloadT; interface uses System.Classes, System.Net.URLClient, System.Net.HttpClient, System.Net.HttpClientComponent, System.SysUtils; type TonDownloadProgress = procedure (Progress:integer) of object; TonDownloadEnd = procedure (FileName:string; Done:boolean; MessageText:string='') of object; TDownloadThread = class(TThread) private IdHTTP1: TNetHTTPClient; fonDownloadProgress:TonDownloadProgress; FonDownloadEnd: TonDownloadEnd; Done: boolean; Max: integer; ProgressValue: integer; procedure ReceiveData(const Sender: TObject; AContentLength:int64; AReadCount:int64; var Abort:boolean); procedure SetonDownloadProgress(const Value: TonDownloadProgress); procedure SetonDownloadEnd(const Value: TonDownloadEnd); protected procedure Execute; override; public url, Status: string; Filename: string; property onDownloadProgress: TonDownloadProgress read FonDownloadProgress write SetonDownloadProgress; property onDownloadEnd: TonDownloadEnd read FonDownloadEnd write SetonDownloadEnd; end; implementation { TDownloadThread } procedure TDownloadThread.Execute; var MyFile: TMemoryStream; begin FreeOnTerminate := true; IdHTTP1 := TNetHTTPClient.Create(nil); MyFile := TMemoryStream.Create(); try IdHTTP1.OnReceiveData := ReceiveData; IdHTTP1.HandleRedirects := true; MyFile.Position := 0; IdHTTP1.Get(url, MyFile); MyFile.SaveToFile(Filename); Done := true; MyFile.Free; IdHTTP1.Free; if Assigned(FonDownloadEnd) then Synchronize(procedure begin FonDownloadEnd(Filename, True); end); except on E:Exception do if Assigned(FonDownloadEnd) then Synchronize(procedure begin FonDownloadEnd(Filename, False, E.Message); end); end; end; procedure TDownloadThread.ReceiveData(const Sender: TObject ; AContentLength:int64 ; AReadCount:int64 ;var Abort:boolean); begin if Terminated then Abort := true else begin Done := false; ProgressValue := AReadCount; if Assigned(fonDownloadProgress) then Synchronize(procedure begin if AContentLength>0 then fonDownloadProgress(Trunc(ProgressValue / AContentLength * 100)) else fonDownloadProgress(0); end); end; end; procedure TDownloadThread.SetonDownloadEnd(const Value: TonDownloadEnd); begin FonDownloadEnd := Value; end; procedure TDownloadThread.SetonDownloadProgress(const Value: TonDownloadProgress); begin FonDownloadProgress := Value; end; end. Запуск:
    procedure TMainForm.InstallUpdates(aDownloadLink:string); begin DownloadThread:=TDownloadThread.Create(true); DownloadThread.Filename := TPath.Combine(Options.WorkPath,'updates.exe'); DownloadThread.url := aDownloadLink; DownloadThread.onDownloadEnd := OnDownloadEnd; DownloadThread.onDownloadProgress := OnDownloadProgress; DownloadThread.Start;  
  3. Like
    zairkz отреагировална gonzales в Не корректно отрабатывает Disconnect   
    Помогло вот такое, интересно, это бага или фича ?
    IdTCPClient.Disconnect; if IdTCPClient.IOHandler <> nil then IdTCPClient.IOHandler.InputBuffer.Clear;
  4. Like
    zairkz получил реакцию от Ingalime в Как отловить нажатие на кнопку "Домой" на android   
    Вроде прекрасно все отлавливает procedure TForm_Main.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); begin  if Key = vkHardwareBack   then ShowMessage('Назад')  else  if Key = vkMenu   then ShowMessage('Меню'); end;     А вот "Открытые приложения" наврятли получиться отловить
  5. Like
    zairkz получил реакцию от Manfred в Получение результата голосового распознавания   
    Если еще актуально:
    Установил компонент SpeechRecognition1 (во вложении)
    Накидываю на форму компонент TSpeechRecognition из панели компонентов
    в нем имеются свойства(у меня следующие):
    AlwaysGuesses: true; Language: ru-RU; Prompt: Пожалуйста скажите ЧЕ нибудь! Объявите глобально FSpeech: TStrings; является своего рода посредником передачи данных иначе все глючит) Теперь при необходимости вызывайте SpeechRecognition1.ListenFor(FSpeech); появится окно обработки голоса Далее в компоненте обработчике OnRecognitionEx прописываем куда распознанный текст должен попасть   Edit1.Text := Guesses[0]; Ссылка на источник http://delphi.org/2014/10/voice-enable-your-android-apps/ но кажись сейчас можно скачать только Триал версию, а во вложении полная версия (да простят меня Боги!), демки там есть, а также примеры для перевода текста в голос.
    Speech.zip
  6. Like
    zairkz получил реакцию от Александр Жевлаков в Получение результата голосового распознавания   
    Если еще актуально:
    Установил компонент SpeechRecognition1 (во вложении)
    Накидываю на форму компонент TSpeechRecognition из панели компонентов
    в нем имеются свойства(у меня следующие):
    AlwaysGuesses: true; Language: ru-RU; Prompt: Пожалуйста скажите ЧЕ нибудь! Объявите глобально FSpeech: TStrings; является своего рода посредником передачи данных иначе все глючит) Теперь при необходимости вызывайте SpeechRecognition1.ListenFor(FSpeech); появится окно обработки голоса Далее в компоненте обработчике OnRecognitionEx прописываем куда распознанный текст должен попасть   Edit1.Text := Guesses[0]; Ссылка на источник http://delphi.org/2014/10/voice-enable-your-android-apps/ но кажись сейчас можно скачать только Триал версию, а во вложении полная версия (да простят меня Боги!), демки там есть, а также примеры для перевода текста в голос.
    Speech.zip
  7. Like
    zairkz получил реакцию от Anatoliy в Печать на сетевом принтере   
    Первое что пришло в голову в виде "бреда", точнее так уже сделали))
    Но не знаю насколько вам подойдет такое решение.
    У нас есть сервер базы данных, на сервере понятно есть все данные необходимые для печати, принтер настроен на сервере, на сервере есть служба которая мониторит базу (таблицу) в которой если появилась новая команда для печати тогда служба формирует документ из данных базы с использованием FastReport, и кидает на принтер по умолчанию для печати.
    Сервер (а точнее комп Pentium DualCore, 2 gb RAM) на котором MySQL, Windows (хотя FastReport есть и для Linux (beta)) работает автономно уже 8-й месяц, и за это время не прикоснулись к нему ни разу (даже если честно очень странно)
  8. Like
    zairkz получил реакцию от osvirt в Печать на сетевом принтере   
    Первое что пришло в голову в виде "бреда", точнее так уже сделали))
    Но не знаю насколько вам подойдет такое решение.
    У нас есть сервер базы данных, на сервере понятно есть все данные необходимые для печати, принтер настроен на сервере, на сервере есть служба которая мониторит базу (таблицу) в которой если появилась новая команда для печати тогда служба формирует документ из данных базы с использованием FastReport, и кидает на принтер по умолчанию для печати.
    Сервер (а точнее комп Pentium DualCore, 2 gb RAM) на котором MySQL, Windows (хотя FastReport есть и для Linux (beta)) работает автономно уже 8-й месяц, и за это время не прикоснулись к нему ни разу (даже если честно очень странно)
  9. Like
    zairkz отреагировална Brovin Yaroslav в Описание TfgImageList   
    Первый набросок компонента, позволяющего организовать централизованное хранение графических ресурсов для всех платформ.
    Основные особенности:
    Спроектирован для использования одного экземпляра изображения во многих компонентах. Позволяет хранить все графические ресурсы любых размеров. В будущем не будет грузить картинки в память, если они не используются. А будет подгружать их из файла по мере необходимости. Тем самым будет значительно экономиться память. Хранение именованных графических ресурсов, а не по индексу. Это позволяет отразить в названии назначение картинки. Использование папок. Группировка изображений по смыслу для удобства работы с ними. Возможность загрузки разных картинок для разных устройств, или же загрузить один набор картинок для всех устройств. Удобная и быстрая загрузка изображений путем перетаскивания Хранение отступов изображения.  Наглядное отображение картинки в свойствах компонентах. При изменении имени картинки, в компонентах используемых картинку идет автоматическое обновление имени картинки. В стандартном TImageList, из-за индексной структуру все картинки съезжают и при удалении картинки, компонент начинает отображать уже другую картинку.


  10. Like
    zairkz получил реакцию от Евгений Корепов в TMultiView и TListBox   
    Если вам подойдет можете на MultiView1 ->OnHidden прописать  
    ListBox1.ItemIndex:=-1;
  11. Like
    zairkz отреагировална Равиль Зарипов (ZuBy) в Отсылка на пользователя   
    Доброго времени суток уважаемые пользователи форума!
    Часто в постах Вы делаете отсылку(упоминание) на пользователя, но как правило делается это не правильно.
    Я записал небольшое видео, которое поможет сделать это правильно
    При упоминании пользователя, он получает уведомление (даже если он не подписан на эту тему) и сможет быстрее ответить на вопрос
    Удачи!
  12. Like
    zairkz отреагировална Brovin Yaroslav в Описание TfgRatingBar   
    Доработал компонент. Добавлено:
    Поддержка Tint эффекта - TfgRatingBar.TintColor Автоматический размер - TfgRatingBar.AutoSize Режим только отображения - TfgRatingBar.ReadOnly Событие окончательного изменения рейтинга (отжатие пальца от экрана или кнопки мышки) - TfgRatingBar.OnChange Событие в процессе изменения рейтинга - TfgRatingBar.OnChanging

  13. Like
    zairkz получил реакцию от Alex7wrt в Более быстрая альтернатива DrawBitmap   
    Попробуй движок Shadow Engine для Firemonkey, FPS впечатляет.
    https://www.youtube.com/watch?v=w6lGasU61HQ
     
    Gihub: https://github.com/dimsa/ShadowEngine
  14. Like
    zairkz отреагировална ENERGY в [Статья]Как создать простой Android Broadcast Receiver. How to implement simplest Android Broadcast Receiver in Delphi   
    Как создать простейший Android Broadcast Receiver.
    Создайте класс, для приема Intent уведомлений:
     
    uses Androidapi.JNIBridge, Androidapi.JNI.Embarcadero, Androidapi.JNI.GraphicsContentViewText; type TMyReceiver = class(TJavaLocal, JFMXBroadcastReceiverListener) public constructor Create; procedure onReceive(context: JContext; intent: JIntent); cdecl; end; uses Androidapi.Helpers, Androidapi.JNI.JavaTypes; { TMyReceiver } constructor TMyReceiver.Create; begin inherited; end; procedure TMyReceiver.onReceive(context: JContext; intent: JIntent); begin Log.d('Broadcast Received = ' + JStringToString(intent.getAction)); end;  
    Регистрируем тип уведомлений и приемник в событиях формы:
     
    type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private { private } FMyListener: TMyReceiver; FBroadcastReceiver: JFMXBroadcastReceiver; public { public } end; procedure TForm1.FormCreate(Sender: TObject); var Filter: JIntentFilter; begin FMyListener := TMyReceiver.Create; FBroadcastReceiver := TJFMXBroadcastReceiver.JavaClass.init(FMyListener); Filter := TJIntentFilter.JavaClass.init; Filter.addAction(TJIntent.JavaClass.ACTION_SCREEN_OFF); Filter.addAction(TJIntent.JavaClass.ACTION_SCREEN_ON); TAndroidHelper.context.getApplicationContext.registerReceiver (FBroadcastReceiver, Filter); end; procedure TForm1.FormDestroy(Sender: TObject); begin TAndroidHelper.context.getApplicationContext.unregisterReceiver (FBroadcastReceiver); end; Все.
    Теперь когда вы запустите программу и выключите\включите экран, лог покажет :
    FMX: BroadcastSample: Broadcast Received = android.intent.action.SCREEN_OFF FMX: BroadcastSample: Broadcast Received = android.intent.action.SCREEN_ON Takashi Yamamoto
  15. Like
    zairkz отреагировална Равиль Зарипов (ZuBy) в [Статья] Настройка пуш уведомлении через сервис Firebase для ANDROID и IOS [Часть 2]   
    Токен - это идентификатор который отправил сервер (APNs/GCM), он используется для связи приложения и серверной части. Кинвей на своей стороне хранит ваши токены, чтобы по ним отправить пуш. Иначе другого варианта нет. Это классно, если у вам не требуется делать выборку по определенным критериям.
    Я такие сервисы не использую, т.к. часто в пушах присылаю техническую информацию, которая обычным (не всем) пользователям не должна быть показана. А для того чтобы сделать подобное, нужна своя база с токенами и другой инфой о владельце девайса.
    Отослать пуши по критерию:
    Обновление приложения на определенной платформе Техническая информация по типу учетной записи (админ, модер, пользователь и тд..) Поздравление с днем рождения, предоставление скидок Уведомление о недостаточном балансе и тд.. примеров масса Я слабо представляю такую реализацию через сервис кинвей и подобным которые предоставляются из коробки в RAD.
    Статья была написана, чтобы показать именно НАСТРОЙКУ через сервис Firebase, и никак не претендует на полное описание работы с пушами в целом.
    Код на делфи был показан, чтобы убрать зависимость от сервисов из коробки
    Код на PHP был показан, чтобы можно было реализовать функционал на своём сервере
    Пару слов было сказано о правильном сохранении в БД, а вот бизнес логика уже у каждого приложения своя.
     
  16. Like
    zairkz отреагировална Равиль Зарипов (ZuBy) в Как сделать стандартные диалоговые окна не такими скучными?   
    ну вот такая есть штука у меня
     
    Это нативные окошки пока только под андроид
    NativeView.zip
  17. Like
    zairkz отреагировална Кривяков Виталий в Как рассчитать Baseline для выводимого текста?   
    Добрый день!
    Столкнулся с проблемой вывода текста разного размера по одной линии. Не получается использовать BaseLine доступную для Firemonkey. 
    Baseline -   воображаемая прямая линия, проходящая по нижнему краю прямых знаков без учёта свисаний и нижних выносных элементов. В строке символы текста стоят на базовой линии, а нижние выносные элементы текста «свисают» с неё.
    Из описанного выше ясно, что выводимые символы должны лежать на это линии, но в реале как то все некорректно выводится.
    Сделал два примера VCL (черный фонт) и FireMonkey(черный полупрозрачный фонт), оказалось, что вывод текста осуществляется по разному, при одном и том же значении размера шрифта. Базовая линия в обоих примерах 356.
    Совмещаем отображение символов: GlyphsEqual.png Символы совпали, но базовая линия смещена.
    Совмещаем базовую линию: PosEqual.png Базовая линия совпала, как и верхний край контролов, а вот текст (серый) значительно ниже.
    А теперь собственно вопрос вопрос, где ошибка? Как рассчитать базовую линию для FMX?
     
    P.S.
    Про attributes у TTextLayout знаю.


    BaseLine.rar

  18. Like
    zairkz отреагировална Brovin Yaroslav в Описание TfgRadioGroup   
    Описание
    Назначение: Компонент предназначен для отображения группы TRadioButton и осуществления выбор. Поддерживает стилизацию.  Поддерживаемые платформы: Windows, OSX, iOS, Android Демо проект: Samples\RadioGroupDemo\RadioGroupDemo.dproj  
    Возможности
    Стилизация через указание двух картинок отображающих голос и пустой голос Настройки отображения заголовка группы TfgRadiouGroup.TextOptions.TitleTextSettings Возможность выбрать настройки отображения заголовка группы из стиля TfgRadioGroup.TextOptions.StyledTitleTextSettings Настройки отображения текста TRadioGroup TfgRadiouGroup.TextOptions.ButtonTextSettings Возможность выбрать настройки отображения текста TRadioGroup из стиля TfgRadioGroup.TextOptions.StyledButtonTextSettings Текущий выбранный вариант TfgRadioGroup.ItemIndex Возможность разбить варианты на колонки TfgRadioGroup.AlignOptions.Columns Возможность указать отступы для вариантов по вертикале и горизонател TfgRadioGroup.AlignOptions.HorzSpace, TfgRadioGroup.AlignOptions.VertSpace  Возможность узнать, когда пользователь делает выбор TfgRadioGroup.OnChanged
  19. Like
    zairkz отреагировална Равиль Зарипов (ZuBy) в [Андроид] интерфейс приложения   
    можно сделать на TListView в режиме колонок и использовать FontAwesome
    получится примерно такое

  20. Like
    zairkz отреагировална Steepe_Hare в С Наступающим Новым Годом!   
    С наступившим !
  21. Like
    zairkz отреагировална AngryOwl в С Наступающим Новым Годом!   
    Присоединяюсь!
    Желаю всем здоровья, благополучия и успехов в работе и личной жизни!
    С наступающим Новым Годом!
  22. Like
    zairkz отреагировална #WAMACO в С Наступающим Новым Годом!   
    С Новым годом! Удачи, здоровья, всех благ!
  23. Like
    zairkz отреагировална Kitty в С Наступающим Новым Годом!   
    Шарик ветром развернуло.
    С Новым Годом!

  24. Like
    zairkz отреагировална Error в С Наступающим Новым Годом!   
    С новым годом!
  25. Like
    zairkz отреагировална Andrey Efimov в С Наступающим Новым Годом!   
    Уважаемые форумчане!
    Поздравляю Вас с Наступающим Новым Годом и Рождеством!
    Пусть 2017 год станет новым этапом на Вашем пути и принесет успех, самореализацию и, конечно же, счастье.

×
×
  • Создать...