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

Александр Лукьянов (Filament Extruder 1.75)

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

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

  • Посещение

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

    1

Весь контент Александр Лукьянов (Filament Extruder 1.75)

  1. Добрый день. Использую платный компонент и не могу пока купить его. использую триал версию. проблема в том что Android 64 в бесплатной версии отствует. Могу ли я выложить в плей маркет х64 какой нибудь скачивающее приложение . что бы он скачал 32х разрядную версию и запустил ее потом./установил. спасибо
  2. Поставил Rio и никакого решения из коробки я там не увидел. скриншот по ссылке https://yadi.sk/i/Ww89PHu67dTU_Q
  3. определяется как стандартная камера. почему берлин - я использую tms mqtt. мне нужно сфоткать , посчитать точки темные в ряд и отправить данные на сервер. В rio есть пример по умолчанию с otg? просто в berlin просто передняя и задняя камера есть только пример
  4. сам прибор нужно воспринимать как камера. микроскопом он становится из за линз. у меня к сожалению знаний маловато. мой уровень - скачать чужой компонент и применить. или исходники какие нибудь переделать под себя.
  5. Добрый день. к OTG подключен микроскоп. с приложением от play market он работает - картинка идет.мне Хочу написать андройд приложение которое будет захватывать картинку с микроскопа в bitmap по таймеру. может быть есть готовый компонент с которым можно без проблем захватить в bitmap подскажите как сделать. Готов проспонсировать решение данного вопроса. Необходимо рабочий пример на Delphi 10.1 Berlin
  6. ребята где бы вы сохранили свой файл текстовый c настройками?
  7. Вот такой например вариант. Может быть тут ошибка.? package com.PanelControlReceiver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import java.text.Format; import java.text.SimpleDateFormat; import java.util.Date; import android.app.AlarmManager; import android.app.PendingIntent; import android.os.Bundle; import android.os.PowerManager; import android.widget.Toast; import java.util.Calendar; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.io.File; import android.media.Ringtone; import android.media.RingtoneManager; import android.net.Uri; import android.util.Log; public class BootCompletedReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) { Intent TestLauncher = new Intent(); TestLauncher.setClassName(context, "com.embarcadero.firemonkey.FMXNativeActivity"); TestLauncher.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(TestLauncher); //обычный запуск приложени¤ } } } unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation, FMX.StdCtrls, {$IFDEF ANDROID} Androidapi.Helpers, FMX.Platform.Android, androidapi.JNI.Os, FMX.Helpers.Android, Androidapi.JNI.GraphicsContentViewText, Androidapi.JNIBridge, Androidapi.JNI.JavaTypes, Androidapi.JNI.App, Androidapi.JNI.Telephony, Androidapi.JNI.Provider, System.DateUtils,Posix.Unistd, //ВАЖНО ЧТО ЭТОТ ФАЙЛ МЫ СГЕНЕРИРОВАЛИ ПО СТАТЬЕ ИЗ ПАПКИ C:\DB\eHomeSmartMobile\eHSforAndroid\Application\java Androidapi.JNI.BootCompletedReceiver, //ВАЖНО ЧТО ЭТОТ ФАЙЛ МЫ СГЕНЕРИРОВАЛИ ПО СТАТЬЕ ИЗ ПАПКИ C:\DB\eHomeSmartMobile\eHSforAndroid\Application\java Androidapi.JNI.Net; {$ELSE} {$IFDEF IOS} Macapi.Helpers, iOSapi.Foundation, FMX.Helpers.iOS, iOSapi.UIKit; {$ENDIF IOS} {$ENDIF ANDROID} type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.fmx} function DateTimeLocalToUnixMSecGMT(const ADateTime: TDateTime): Int64; begin Result := DateTimeToUnix(ADateTime) * MSecsPerSec - Round(TTimeZone.Local.UtcOffset.TotalMilliseconds); end; function CreateAlarmIntent(const AID: Integer): JPendingIntent; var Intent: JIntent; begin Intent := TJIntent.Create; Intent.setClassName(TAndroidHelper.Context, TAndroidHelper.StringToJString('com.embarcadero.firemonkey.FMXNativeActivity')); Result := TJPendingIntent.JavaClass.getService(TAndroidHelper.Context, 0, Intent, TJPendingIntent.JavaClass.FLAG_UPDATE_CURRENT); end; procedure set_autorestart_app; var PendingIntent: JPendingIntent; begin PendingIntent := CreateAlarmIntent(1); TAndroidHelper.AlarmManager.&setRepeating(TJAlarmManager.JavaClass.RTC_WAKEUP,DateTimeLocalToUnixMSecGMT(now),10000,PendingIntent); //запуск каждые X секунд end; procedure TForm1.Button1Click(Sender: TObject); begin Application.Terminate; end; procedure TForm1.Button2Click(Sender: TObject); begin set_autorestart_app; end; end.
  8. Ребята столкнулся еще с такой проблемой. пытаюсь каждые 5 секунд запустить свое приложение, но запуск происходит раз в минуту. какие бы настройки я не ставил. Даже если ставлю 90 секунд то все равно раз в минуту. почему так может быть. Intent restartIntent = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName()); PendingIntent intent1 = PendingIntent.getActivity(context, 0,restartIntent, PendingIntent.FLAG_UPDATE_CURRENT); AlarmManager manager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); manager.setRepeating(AlarmManager.ELAPSED_REALTIME, 5000, 3000, intent1); //manager.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),(long) 5000, intent1); //Повторный запуск каждые 5 секунд
  9. Ребята, важное уточнение для Xiaomi - выключайте оптимизацию в настройках телефона. в режиме разработчика. заработало не только мое приложение но еще одно из плей маркета - даже не заметил что оно и не работало пока не снял опцию и перезагрузил телефон
  10. В Embarcadero RAD Studio 10.1 Berlin повторить фокус не получается. вроде бы все тоже самое делаю. генерирую classes и подключаю, компилирую но после рестарта ОС автозапуска нет. Не совсем понятно можно ли этим компонентом сделать тоже самое? https://github.com/barisatalay/delphi-android-broadcast-receiver-component
  11. Добрый день. У меня есть android 4.4.2 , 512mb Ram, Примерно раз в 5 дней мое приложение на андройде просто закрывается. отследить причину не понятно как. Может память заканчивается из -за утечки. может еще что. ADB over Wifi перестает работать тоже, хоть и порт телнетом открывается... Посоветуйте костыли какие нибудь - что бы приложение автоматически вновь запускалось как только закрылось. Спасибо.
  12. Добрый день! Хочу эмулировать в андройд боксе курсор в системе из под сервиса, в том числе касания под курсором. насколько это сложно? может быть есть какие то готовые компоненты или готовые примеры - мне бы как по проще. Меня бы так же устроило и аппаратное решение, когда мы в usb вставляем стик и каким либо образом при помощи приложения обращаясь к стику смогли бы управлять курсором.
  13. Добрый день. Написал приложение и иногда оно закрывается само по себе через сутки или двое. возможно заканчивается ram. Хотел бы видеть в приложении свободное ram что бы точнее определиться что происходит... Поделитесь кодом определения на андройде свободного RAM
  14. почему компилятор ругается? приложение компилируется и работаетЭто в потоке Delphi 10.2, android 4.4.2
  15. та же проблема только у меня андройд 4.4.2. пробывал накатывать андройд 7.0 - отладка заработала, но греется проц и лагает девайс. вернусля к 4.4.2 ROOT есть. но увы не особо зарешало
  16. еще пробывал вот так type // Объявление записи клиента TStructureConfig = Record TopicName : TStringList; MQTT_Server: TStringList; MQTT_Port: TStringList; MQTT_ClientID: TStringList; MQTT_User: TStringList; MQTT_Password : TStringList; MYSQL_Server : TStringList; MYSQL_Port : TStringList; MYSQL_DataBase : TStringList; MYSQL_TableName : TStringList; MYSQL_TableRowName : TStringList; MYSQL_TableRowCount : TStringList; MYSQL_TableWriteTime : TStringList; MYSQL_HTTP_API : TStringList; end; Config:TStructureConfig; килент form2.IdTCPClient1.Host:=form2.Edit1.Text; form2.IdTCPClient1.Port:=strtoint(form2.Edit2.Text); form2.IdTCPClient1.Connect; form2.IdTCPClient1.ConnectTimeout:=5000; //form2.IdTCPClient1.Socket.WriteLnRFC(,en); Buf := RawToBytes(form1.Config, sizeOf(form1.Config)); form2.IdTCPClient1.IOHandler.Write(Buf); сервер form1.Config.TopicName.Clear; form1.Config.MYSQL_Server.Clear; form1.Config.MYSQL_Port.Clear; form1.Config.MYSQL_DataBase.Clear; form1.Config.MYSQL_TableName.Clear; form1.Config.MYSQL_TableRowName.Clear; form1.Config.MYSQL_TableRowCount.Clear; form1.Config.MYSQL_TableWriteTime.Clear; form1.Config.MYSQL_HTTP_API.Clear; en:=IndyTextEncoding(IdTextEncodingType.encUTF8); // strText:=AContext.Connection.Socket.ReadLnRFC(b1,en); AContext.Connection.IOHandler.ReadBytes(buf,sizeof(buf),false); BytesToRaw(buf, form1.Config, sizeof(form1.Config));
  17. Отправляю через idtcpclient текст вида "текстовая строка1"+chr(9)+"значение текстовой строки". на выходе получаю "текстовая строка1\t1значение текстовой строки". каким образом получить со стороны сервера аналогичную строку. дело в том что комбинации у меня встречаются такие же в самом тексте (meteo\temp например) и я не смогу понять что мне нужно \t заменить на chr(9) \t Перемещает позицию печати к следующей позиции горизонтальной табуляции. клиент en:=IndyTextEncoding(IdTextEncodingType.encUTF8); try form2.IdTCPClient1.Host:=form2.Edit1.Text; form2.IdTCPClient1.Port:=strtoint(form2.Edit2.Text); form2.IdTCPClient1.Connect; form2.IdTCPClient1.ConnectTimeout:=5000; form2.IdTCPClient1.Socket.WriteLn(st.Text,en); form2.IdTCPClient1.Disconnect; сервер en:=IndyTextEncoding(IdTextEncodingType.encUTF8); strText:=AContext.Connection.Socket.ReadLn(b1,en);
  18. Active возвращается в true Если tcpserver1 на форму бросить и не создавать компонент то работает пример. Использую 10.1 berlin. Дома попробую 10.1 update 2 и отпишусь
  19. Добрый день. Под Windows этот же код нормально работает. под Android - нет. когда клиентом пытаюсь подключиться то получаю 10061 ошибку сокета. и ошибок приложение под андройд не выдает. пытаюсь создать компонент и получить текст по TCP unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, IdContext, IdBaseComponent, IdComponent, IdCustomTCPServer, IdTCPServer, FMX.Controls.Presentation, FMX.StdCtrls,IDGlobal, FMX.ScrollBox, FMX.Memo; type // Объявление записи клиента TStructureConfig = Record TopicName : TStringList; MYSQL_Server : TStringList; MYSQL_Port : TStringList; MYSQL_DataBase : TStringList; MYSQL_TableName : TStringList; MYSQL_TableRowName : TStringList; MYSQL_TableRowCount : TStringList; MYSQL_TableWriteTime : TStringList; MYSQL_HTTP_API : TStringList; end; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure TCPServerOnExecute(AContext: TIdContext); private { Private declarations } public { Public declarations } Config:TStructureConfig; IdTCPServer1:TIdTCPServer; end; var Form1: TForm1; implementation {$R *.fmx} procedure TForm1.FormCreate(Sender: TObject); begin form1.Config.TopicName:=TstringList.Create; form1.Config.MYSQL_Server:=TstringList.Create; form1.Config.MYSQL_Port:=TstringList.Create; form1.Config.MYSQL_DataBase:=TstringList.Create; form1.Config.MYSQL_TableName:=TstringList.Create; form1.Config.MYSQL_TableRowName:=TstringList.Create; form1.Config.MYSQL_TableRowCount:=TstringList.Create; form1.Config.MYSQL_TableWriteTime:=TstringList.Create; form1.Config.MYSQL_HTTP_API:=TstringList.Create; IdTCPServer1:=TIdTCPServer.Create(nil); IdTCPServer1.OnExecute:=form1.TCPServerOnExecute; //IdTCPServer1.DefaultPort:=5000; IdTCPServer1.Bindings.Clear; idTCPserver1.Bindings.Add.Port:=5000; idTCPserver1.Bindings.Add.IP:='0.0.0.0'; IdTCPServer1.Active:=true; end; procedure TForm1.TCPServerOnExecute(AContext: TIdContext); var tmp,strText: String; en:IIDTextEncoding; h:integer; st:TstringList; begin try en:=IndyTextEncoding(IdTextEncodingType.encUTF8); strText:=AContext.Connection.Socket.ReadLn(en); strText := StringReplace(strText, chr(12),chr(13)+chr(10),[rfReplaceAll, rfIgnoreCase]); st:=TstringList.Create; st.Text:=strText; form1.Config.TopicName.Clear; form1.Config.MYSQL_Server.Clear; form1.Config.MYSQL_Port.Clear; form1.Config.MYSQL_DataBase.Clear; form1.Config.MYSQL_TableName.Clear; form1.Config.MYSQL_TableRowName.Clear; form1.Config.MYSQL_TableRowCount.Clear; form1.Config.MYSQL_TableWriteTime.Clear; form1.Config.MYSQL_HTTP_API.Clear; h:=0; while h<=st.Count-1 do begin tmp:=st.Strings[h]; delete(tmp,pos(chr(9),tmp),length(tmp)); form1.Config.TopicName.Add(tmp); tmp:=st.Strings[h]; delete(tmp,1,pos(chr(9),tmp)); delete(tmp,pos(chr(9),tmp),length(tmp)); form1.Config.MYSQL_Server.Add(tmp); tmp:=st.Strings[h]; delete(tmp,1,pos(chr(9),tmp)); delete(tmp,1,pos(chr(9),tmp)); delete(tmp,pos(chr(9),tmp),length(tmp)); form1.Config.MYSQL_Port.Add(tmp); tmp:=st.Strings[h]; delete(tmp,1,pos(chr(9),tmp)); delete(tmp,1,pos(chr(9),tmp)); delete(tmp,1,pos(chr(9),tmp)); delete(tmp,pos(chr(9),tmp),length(tmp)); form1.Config.MYSQL_DataBase.Add(tmp); tmp:=st.Strings[h]; delete(tmp,1,pos(chr(9),tmp)); delete(tmp,1,pos(chr(9),tmp)); delete(tmp,1,pos(chr(9),tmp)); delete(tmp,1,pos(chr(9),tmp)); delete(tmp,pos(chr(9),tmp),length(tmp)); form1.Config.MYSQL_TableName.Add(tmp); tmp:=st.Strings[h]; delete(tmp,1,pos(chr(9),tmp)); delete(tmp,1,pos(chr(9),tmp)); delete(tmp,1,pos(chr(9),tmp)); delete(tmp,1,pos(chr(9),tmp)); delete(tmp,1,pos(chr(9),tmp)); delete(tmp,pos(chr(9),tmp),length(tmp)); form1.Config.MYSQL_TableRowName.Add(tmp); tmp:=st.Strings[h]; delete(tmp,1,pos(chr(9),tmp)); delete(tmp,1,pos(chr(9),tmp)); delete(tmp,1,pos(chr(9),tmp)); delete(tmp,1,pos(chr(9),tmp)); delete(tmp,1,pos(chr(9),tmp)); delete(tmp,1,pos(chr(9),tmp)); delete(tmp,pos(chr(9),tmp),length(tmp)); form1.Config.MYSQL_TableRowCount.Add(tmp); tmp:=st.Strings[h]; delete(tmp,1,pos(chr(9),tmp)); delete(tmp,1,pos(chr(9),tmp)); delete(tmp,1,pos(chr(9),tmp)); delete(tmp,1,pos(chr(9),tmp)); delete(tmp,1,pos(chr(9),tmp)); delete(tmp,1,pos(chr(9),tmp)); delete(tmp,1,pos(chr(9),tmp)); delete(tmp,pos(chr(9),tmp),length(tmp)); form1.Config.MYSQL_TableWriteTime.Add(tmp); tmp:=st.Strings[h]; delete(tmp,1,pos(chr(9),tmp)); delete(tmp,1,pos(chr(9),tmp)); delete(tmp,1,pos(chr(9),tmp)); delete(tmp,1,pos(chr(9),tmp)); delete(tmp,1,pos(chr(9),tmp)); delete(tmp,1,pos(chr(9),tmp)); delete(tmp,1,pos(chr(9),tmp)); delete(tmp,1,pos(chr(9),tmp)); delete(tmp,pos(chr(9),tmp),length(tmp)); form1.Config.MYSQL_HTTP_API.Add(tmp); inc(h); end; except end; try st.Free; except end; end; end.
  20. Aliwinner h5 все таки сможет собрать мое приложение или нет?????
  21. Да, я хочу виндовый, но на первом скрине он какой то не виндовый. Прозрачные кнопки. Приложение под android
  22. на сколько я понял у моей рабочей области (реальный компонент Panel4) установлено событие MyResize и оно вызывается раньше чем Form.create где прописано что объект нужно создать (сама ошибка возникала в setWidhtHight)
×
×
  • Создать...