-
Постов
64 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные neo
-
-
Всем привет! =) товарищи... может немного не по теме но очень интересно узнать.
работаю с idHttp
он вызывается в потоке... а могу ли я из него делать вызов в трейИкон? чтоб к примеру в случае ошибки
вылетал BalloonHint и говорил об ошибке?
except on e: Exception do begin my.TrayIcon1.BalloonFlags:=bfNone; my.TrayIcon1.BalloonHint := 'Не могу установить соединение с сервером.'; my.TrayIcon1.Visible := True; my.TrayIcon1.ShowBalloonHint;
или я должен сделать это через Synchronize(Отдельная процедура);
Просто знаю что на форме не положено делать изменения из потока тк могут быть ошибки... а тут не понятно =(
-
16 минут назад, ZuBy сказал:
можно сделать открытие этого окошка через Intent
// uses Androidapi.Jni.GraphicsContentViewText, Androidapi.Helpers; var Intent: JIntent; begin Intent := TJIntent.Create; Intent.setAction(StringToJString('com.android.settings.TTS_SETTINGS')); Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK); TAndroidHelper.Activity.startActivity(Intent); end;
только посл строка не определялась заменил
//TAndroidHelper.Activity.startActivity(Intent); SharedActivity.startActivity(Intent);
тк у меня XE8
-
спасибо
PS
тем кому нужно устанавливать языковые пакеты называется:
Синтезатор речи Google
-
1 минуту назад, ZuBy сказал:
Это в настройках делается, Синтез речи и там где-то должны быть голосовые пакеты/данные
точно Настройки\Доп. возможности\Синтез речи там включил англ. яз
А нельзя сделать чтоб он там автоматически включался?
-
подскажите точное название плз =)
поиск в Play Маркет с запросом Языковые пакеты ничего не дал.
-
Всем привет! народ подскажите в чём может быть проблема?
Использую этот пример [см. аттач]
TextToSpeech.speak(StringToJString(Memo.text), TJTextToSpeech_QUEUE_ADD, nil);
Нажимаю на SAY но на моём телефоне Xiaomi Redmi ничего не говорит.. тестировал до этого Sony Z3 было всё ок.
проверил привилегии но ничего =( в чём может быть проблема?
может на телефоне что-то должно быть установлено но не знаю что =(
-
там указан этот путь C:\Users\Public\Documents\Embarcadero\Studio\16.0\PlatformSDKs\android-sdk-windows
внутри по этому адресу находится android-sdk-windows но почему то пишет что неверно
как всю эту хрень снести и заново поставить с правильным путём?
в sdk manager нету android 24
-
1 минуту назад, umkes сказал:
Наверно вы побили SDK, его пробовали перекачать?
вообще ничего там не трогал.. сам как то слетел... комп живёт своей жизнью..
-
-
3 минуты назад, Brovin Yaroslav сказал:
Тогда проверьте корректность заполнения полей в профиле SDK в Delphi.
а как это сделать? =(
-
-
телефон Sony z3 compact
и самсунг гэлакси таб
-
уже 100 раз их сносил.. то что ставит сама винда не видит дельфи... а если самостоятельно указываю путь к google usb driver он не ставится выдаёт ошибку которую я прикрепил
-
Всем привет!
народ подскажите в чём дело?
Delphi XE8 перестал видеть мой телефон в Target
проверял с разными проводами... на Андройде включен режим отладки.
уже стёр дельфи и заново поставил... в SDK менеджере добавил Google USB Driver
в диспетчере устройств выбираю свой телефон => обновляю драйвера -> указываю путь к android_winusb
но выдаёт такую ошибку:
-
Всем привет)
Народ тут появилась идея встроить мини-ассистента в приложение...
тк одна девушка очень хорошо на эту роль подходит =)
Идея такая что девушка подсказывает в приложении что нужно делать...
Никогда такого в firemonkey не делал)
может у кого-то был опыт?
вот думаю сделать gif с анимацией и отдельно запускать звуковой файл
или может сразу вставлять видео со звуком?
какие для этого компоненты в фм лучше использовать?
можно ли в плеере скрывать bar?
-
Здравствуйте нашёл код для андройда
который читает текст
он работает но я не всё в нём понимаю...
зачем понадобилось создавать слабую форму FFormMain (weak)
почему просто не сделали класс с событиями
и при TJTextToSpeech_SUCCESS через TThread.Queue меняли что-то на форме?
unit Main; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Layouts, FMX.Memo, FMX.StdCtrls, android.speech.tts, Androidapi.JNIBridge, FMX.ScrollBox, FMX.Controls.Presentation; type TFormMain = class(TForm) ButtonSay: TButton; Memo: TMemo; procedure ButtonSayClick(Sender: TObject); procedure FormCreate(Sender: TObject); private type TOnInitListener = class(TJavaLocal, JTextToSpeech_OnInitListener) private [weak] FFormMain: TFormMain; public constructor Create(FormMain: TFormMain); procedure onInit(Status: Integer); cdecl; end; private OnInitListener: TOnInitListener; TextToSpeech: JTextToSpeech; public { Public declarations } end; var FormMain: TFormMain; implementation uses Androidapi.Helpers, FMX.Helpers.Android; {$R *.fmx} constructor TFormMain.TOnInitListener.Create(FormMain: TFormMain); begin inherited Create; FFormMain := FormMain; end; procedure TFormMain.TOnInitListener.onInit(Status: Integer); begin if Status = TJTextToSpeech_SUCCESS then FFormMain.ButtonSay.Enabled := True; end; procedure TFormMain.ButtonSayClick(Sender: TObject); begin TextToSpeech.speak(StringToJString(Memo.text), TJTextToSpeech_QUEUE_ADD, nil); end; procedure TFormMain.FormCreate(Sender: TObject); begin OnInitListener := TOnInitListener.Create(Self); TextToSpeech := TJTextToSpeech.JavaClass.init(SharedActivityContext, OnInitListener); end; end.
-
длина то на андройдовскую подправлена?
если например в винде делали так
for I:=1 to Length(Value) do
begin
Result:=Chr(Ord(Value)+Ord(Code[X]));
Inc(X);
end;то в андройде она начинается на 1 раньше
for I:=0 to Length(Value)-1 do
begin
Result:=Chr(Ord(Value)+Ord(Code[X]));
Inc(X);
end; -
китайцы уже давно не делают. а насчет нашего который делал, так его выловила в сети эмбаркадера, его реальный адрес, и вежливо попросила так больше так не делать.
так потому то пока и пользуюсь делфи потому что в данный момент более-менее вменяемая система если закрывать глаза на то что ПО вываливается под андроидом не сказав ни слова почему и от чего. сам еще с 4 версии, не ХЕ4 а Делфи4, начинал проги писать
вы про господина Unis(а)?
общался с ним как-то на трекере мне показалось нормальный чел и вираки не прицепляет... у него патч какой-то универсальный..
он сказал что подправлять практически ничего не нужно в новых версиях...
но делать ему это надоело а исходники выкладывать не хочет =)
-
не знал как сформировать запрос) тк хз как она называется)
[Android] Как отключить программную кнопку Меню?
Итог
Открываете файл AndroidManifest.template.xml. Он лежит в папке с вашим проектным файлом (появляется при первой попытке компиляции на Андроид)
было<uses-sdk android:minSdkVersion="%minSdkVersion%" android:targetSdkVersion="%targetSdkVersion%" />
стало
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" />
добавить |screenSize
сюдаandroid:configChanges="orientation|keyboardHidden|screenSize"
-
пфф... этих кнопок нету в дизайнере... чёрная панель идёт от OS
на новых аппаратах SONY этих стандартных кнопок физически нету...
поэтому они отображаются на дисплее... но на всех Дельфовых приложениях появляется ещё эта кнопка [...]
если на неё нажать ничего не происходит... но походу туда можно добавить менюшку
-
-
а with разве еще не убрали из языка? обещали вродe
для работы с более сложными файлами хорошо подходит TSreamReader/TStreamWriter
там есть и Read/WriteString и Read/WriteInteger и т.д.
в XE8, with всё ещё есть...
без него тоже не прокатывает... а вот TSreamReader/TStreamWriter пригодился =) спасибо классный метод
В какой кодировке у вас файл?
with TStringList.Create do LoadFromFile('c:\q.txt', TEncoding.UTF8);
так грузит текст в UTF-8 кодировке
уже всё заработало через TSreamReader/TStreamWriter =)
-
with TStringStream.Create do try LoadFromFile('d:\11.txt', TEncoding.UTF8); Edit1.Text := DataString; finally Free; end;
всё что нужно было
не... в андройде так не компилируется (Too many actual parameters)
но пробовал вот так первые 5 симв в utf8 декодировать тоже не работает
m:=TMemoryStream.Create; m.LoadFromFile(TPath.GetDocumentsPath + PathDelim +'access.key'); m.Seek(0,soFromBeginning); SetLength(Bytes,5); m.Read(Bytes,5); Result:=TEncoding.UTF8.GetString(Bytes,Low(Bytes),High(Bytes)+1);
-
итак расскажу о своём опыте... вдруг кому-то будет полезно
попробовал максимально простым способом записать/считать строку в файле
procedure WriteToFile(s: String); var f: TMemoryStream; begin f:=TMemoryStream.Create; try f.Write(S[1], Length(s)); f.SaveToFile(TPath.GetDocumentsPath + PathDelim +'access.key'); finally f.Free; end; end; function GetTextFromFile: string; begin with TStringStream.Create do try LoadFromFile(TPath.GetDocumentsPath + PathDelim +'access.key'); Result:=DataString; finally Free; end; end;
но тоже ничего не получилось...
в XE8 под android нету ShortString и AnsiString
поэтому скачал их отдельно и изменил на WriteToFile(s: ShortString);
и всё заработало...
не понятно только зачем их убрали? и как сдалать без них?вот ссылка на ShortString и AnsiString http://www.fmxexpress.com/use-ansistring-and-utf8string-in-delphi-xe5-firemonkey-on-android-and-ios/
Multi-touch при нажатии на картинку
в Изображения
Опубликовано
Всем привет!
Народ кто-нибудь умеет работать с Мульти-тачем?
нужно одновременно нажать на две картинки...
они после нажатия должны вращаться... то есть тк нажимаю на них одновременно они должны одновременно вращаться...
но они делают это поочерёдно =(
пробовал каждое нажатие запихнуть в TThread.Synchronize(TThread.CurrentThread, procedure но это не работает
Думал может просто моя Дельфи XE8 не поддерживает multi-touch.. но посмотрел доки вроде всё поддерживает... может где-то что-то включить нужно?