Janex72
-
Постов
22 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные Janex72
-
-
Привет всем.
Есть идея написать свои Screen Lock-er, ну типа когда включаеш телефон то спрашивает пароль
или ета фигня с 9 точками где пальцом водиш по точкам ...
Подозреваю что простои апликациеи там необоидтись, надо наверно как то с сомим андроидом
ето связывать...
Мож у каго есть какие то примеры или советы куда копать?
WBR
Janex
-
-
Привет всем.
Искал как в FMX Linux-e определить координаты миши если курсор за пределами апликации,
нашёл такое:function MousePos: TPointF; var MouseService: IFMXMouseService; begin if TPlatformServices.Current.SupportsPlatformService(IFMXMouseService, IInterface(MouseService)) then Exit(MouseService.GetMousePos); Result := PointF(0, 0); end;
всё работает, даже под Linux-ом, но шас нужно ешё определить нажата ли какая то клавиша миши, и тоже если курсор
за пределами апликации ...
Есть идеи как ???
WBR
Janex -
2 минуты назад, kiz35196 сказал:
а почему бы просто не запускать питоновские файлы питоном ?
а с дэлфи только отправлять команды в консоль на запуск
Мне задачи по сложнее.
Надо не просто запускать готовые скрипти, а чтоб юзер сам мог их писать для апликации, на пример, при запуске какого то юзерского скрипта
передаётся в нём (в скриптовую функцию, на пример) какие то параметри, скрипт обрабатывает данные и взаимодеиствует
с контролями на форме.
На пример, запускается скрипт, где в параметр передаётся XML, в скрипте он обрабатывается и на форме высвечиваются результати
в выде, на пример, Gauge, Progressbar, или заливаются текст в TMemo итд. И контролы тоже не вшиты в екзешник в дизаинтаиме, их
юзер в рантаиме сам дизаинит и ставит что надо ...
Ето как бы примитивная дельфовская IDE но только на питоне ...
В "Python 4 Delphi" ето вроде всё можно, но нехватает ума перевести чтоб в дельфе под линукс он компилился, а то под
линукс он предусмотрен только для FPC
-
Привет всем.
Прокопал весь интернет в поисках чего то чем внедрить Python в
мою апликацию написаную на Delphi. Нашёл "Python 4 Delphi", под
wинду компилится и работает, но мне надо как раз под Linux (Delphi 10.2).
Самому подпилить под fmx неудаётся как то
Неужели етот "Python 4 Delphi" единственныи в природе для связки
дельфи с питоном ??
WBR
Janex
-
Привет всем.
Сделал компонент, в нём своиство/обект типа TPersistent, а на нём колекция (TCollection) ...
Изначально натклнулся, что в дизаинтаиме в обект инспекторе неоткривался редактор где TCollectionitem-и делаются, искал, гуглил, нашёл
решение здесь (код по середине):
Всё работает, в колекцие на пример 5 елементов, но вот если скомпилю под wинду то:
Mycomponent.MyPersistentproperty.MyCollection паказывает правильно - 5, а
если всё то же скомпилю под андроид, то всегда в любом случаес показывает 1 (!!!)
Тоесть всегда одан кокая то пустая колекция, хоть убеися ...
Тут под андроид какие то глюки или чё то другое ?
WBR
Janex
-
46 минут назад, POV сказал:
ХЗ чего тебе не так. У меня чарт выдал 64 fps
Хммм, да, вроде пашет ... я через dataset дёргал его, наверно изза етого ...
-
Будем пробовать ...
Но вопрос то другои - рисовать на канве с DrawLine самыи быстрии способ ?
Подозреваю, что, если, на пример, захочу мультик показывать на канве (сотни всяких draw) с 25fps то врятли канва ето потянет ...
Может бить для супер скорости вообше другои подход нужен ?
-
5 минут назад, GASCHE сказал:
Не совсем понятно, надо при каждом изменении дорисовывать в конец графика по одной точке, или каждый раз "менять/перерисовывать" весь график?
Приходится каждыи раз перерисовывать весь график. При приходе новых данных, весь графих сдвигается в лево и в конце (с право) рисуется
новая точка. Все точки соедены с Line...
-
17 минут назад, POV сказал:
А вопрос-то в чём? Возьми нарисуй что хочешь в событии OnPaint любого контрола. Минут за 10 напишешь. Оцени как быстро рисуется.
Так сделал уже, рисуется, вроде даже быстро...
Но мне нужно построить график, как уже писал, которыи будет менятся/перерисовыватся 10 или чаше раз в секунду, и
из етого вопрос - рисовать на канве линии с DrawLine будет самыи быстрыи метод или ето каким то другим
способом лучше делать ?
-
Привет всем.
Надо мне создать свои Scope - незнаю как по русски он называется
Как пример брал TTMSFMXScope - етот типо TChart но сами линии по таимеру передвигаются с право на лево.
Готовых компонентов для етого мало (TMS, TeeChart, больше ненашёл), компонент от TMS слишком медlеленныи,
мне нужен тупои квадрат в котором двигались отрисованые линии с скоростю как минимум 10 кадров в секунду и
отрисовка занимало самое минимальное возможное время, а то на форме ето будет не единственное что будет отрисовыватся...
Ну кароч, решил ето делать на TPaintbox-е рисуя линии с DrawLine.
Но возникает вопрос - будет ли ето самыи быстрии способ ето сделать, мож есть какие то другие методы?
Мож рисовать сперва на TBitmap-е и потом его кидать на канвy?
Есть идеи что использовать чтоб достич максимальную возможную скорость отрисовки ?
WBR
Janex -
Атбои ...
Часами искал где что нехватает и надобыло только тут написать, как сразу сам нашёл где грабли
Надо было только одну строчку добавить, как всё стало на свои места:
FFrame.Stored := False;
-
Привет всем.
Надо создать простой компонент который содержал бы фрейм, на VCL много лет такие делал, всё работало, а
тут что то не так ...
Вот код:
Type TxdfScope = Class(TStyledControl) Private FFrame :TmyFrame; Public Constructor Create(Owner :TComponent); Override; Published End; Constructor TxdfScope.Create(Owner :TComponent); Begin Inherited Create(Owner); FFrame := TmyFrame.Create(Self); FFrame.Parent := Self; FFrame.Align := TAlignLayout.Client; SetAcceptsControls(False); End;
На фрейме один TButton;
Всё вроде как бы правильно, компилится итд.
Кидаю компонент на форму - прекрасно, всё как хочется. Сохраняю, открываю заново и получаю AV и т.д.
Смотрю в соурс форм и вижу, что видны всё внутренности компонента:
object xdfScope1: TxdfScope object TmyFrame Align = Client Size.Width = 200.000000000000000000 Size.Height = 100.000000000000000000 Size.PlatformDefault = False object Button1: TButton Position.X = 32.000000000000000000 Position.Y = 32.000000000000000000 TabOrder = 0 Text = 'Button1' end end end
Чувствую что что то не хватает чтоб вёл он себя как нормальный компонент ...
WBR
Janex
-
mmover, спасибо, то что надо ...
-
4 часа назад, Равиль Зарипов (ZuBy) сказал:
Спасибо, но тут он сылается на ТEdit у которого есть своиство TTextSettings :
function TZMaterialEdit.GetTextSettings: TTextSettings; begin Result := FEdit.TextSettings; end;
Но у меня свои пустои компонент которыи НЕ наслседовает другои компонент с своиством TTextSettings, и внутри тоже никого с готовым своиством TTextSettings
Хотел прикрутить его для моих нужд... обект TTextSettings создаётся и доступен, вот только в дизаинтаиме он
в Oбject Inspector-е почему то неразвёртвовается
-
Ешё проблемы с TTextSettings;
Делаю свои компонент, хочу в него добавить TTextSettings. Смотрел всякие примеры, но у меня почему то он
в Oбject Inspector-е неразвёртвовается, тоесть, клиекая на +/- стоит в однои строке.
Код примерно такои:
TxdfLabel = Class(TControl) Private FTextSettings :TTextSettings; Procedure SetTextSettings(const Value: TTextSettings); Public Constructor Create(AOwner: TComponent); Override; Published Property TextSettings :TTextSettings Read FTextSettings Write SetTextSettings; End; Constructor TxdfLabel.Create(AOwner: TComponent); begin Inherited Create(AOwner); FTextSettings := TTextSettings.Create(Nil); End; procedure TxdfLabel.SetTextSettings(const Value: TTextSettings); begin FTextSettings.Assign(Value); End;
Немогу понять где грабли ...
WBR
Janex
-
18 минут назад, kami сказал:
Вы обладатель великолепнейшего зрения, реакции и т.п. если в состоянии распознать и проанализировать за 100мс содержимое экрана
На самом деле эта проблема аналогична "хочу, чтобы показывалось все 100500 записей" - пользователь физически не сможет оценить всё то, что вы ему отображаете + получается, что сильно нагружается система абсолютно ненужными действиями.
Логируйте значения, сохраняйте их в БД, проводите внутренние манипуляции в реальном времени.
А пользователю - поставьте таймер, в котором показывайте последнее пришедшее значение + при желании "всего принято столько-то фреймов данных" (по аналогии с отображением количества кадров в секунду).
Да, вы правы, 10 раз в секунду менять значение излышно, но смушает скорость отображения ... Если мне на форме будет, на пример, 50 лабелов и каждыи меняет
текст раз в секунду, то каждому лабелу свои поток делать, что ли ? А то обновить за секунду 50 лабелов качется невозможно ...
-
Привет всем.
Сделал маленькую апликацию для Андроида. Апликация принимает данные
через BlueToothLE и на на двух TLabel показывает цифорки ...
Обём данных маленькии, одна посылка около 20 баитов.
Если данны приходит с интервалом 100 мс, то TLabel-а ешё успевают отобразить информацию,
а если интервал уменьшить, то приходит копец
Данные заливаются в буффер BlueTooth-а и TLabel-а неуспевают их показать, тоесть,
можем послать данные, скажем, пол минуты, потом даже отрубить BlueTooth посылаюшее их и
данные на TLabel-а ешё минуту мигают - отображаются ...
Поставил ешё Gauge от TMS Components - там тормоза вообше ужас, если 2 цифри за секунду
отобразить на циферблате, то ето уже предел ...
Шас немогу понять - телефон у меня тормознутыи какои то (CAT-S30, новыи, незагруженыи) или
всётаки FMX контролы работают так ужасно медленно ...
WBR
Janex -
12 часов назад, rareMax сказал:
https://github.com/dph2011/Object-Debugger-for-FireMonkey
Ну а создавать в приложении нужные компоненты динамически думаю не сложно.
Создовать то просто, но ешё надо визуально их редактировать, типо как в IDE дельфах - кликнул
на конктроль и появляются вокруг её 6 точек и можеш шас растягывать её, мышкои передвигать
по форме итд ... вот что мне надо для FMX форм ...
-
Привет всем.
У LMD и TMS Components есть скриптери и соответственно восможность в рантаиме редактировать
формы, тоесть кидать на форму контролы итд, и property editor где у контролов своиство посмотреть/поменять.
Но ето всё под VCL а мне надо редактировать форми в рантаиме в FMX.
Есть что то такое в природе, тоесть как бы в готовых компонентах, если нет, то реально такое
создать для FMX-а ?
WBR
Janex
-
Привет всем!
Задача в кратце токая - в рантаиме создаю, например, 10 фреимов, на каждом по TImageControl, и
на каждом фреиме запускаю отдельныи поток где загружается картинка в битмап и дальше уже в TImageControl.
Облом получил при загрузки фаила в битмап. Обясняли мне, что битмапи в FMX не Thread Safe.Хотя непонемаю при чём тут Thread Safe а то создаю ведь 10 отдельных
екземпляров битмапов, непитаюсь ведь из разных потаках обрашатся к одному и тому же битмапу ... но ок, хрен сними ..
Задумался что мож задачу не так поставил. Мне надо ведь просто показать тумбнаил картинки на фреиме, а мож
там битмап и не нужен ? В TStream картинка читается в потоке нормально.. мож есть какои то способ её шас отрисовать
на Canvas ?
Где то упоминалось что надо юзать TStream и TBitmapsurface, что ето будет работать в потоках. Пример как TBitmapsurface отобразить
на канве нашёл, но как картинку запихнуть в етот TBitmapsurface (без обрашения к битмапу, ге получаю AV или Out of memory) опять таки немогу понятьЦелевая задача построить просмотршик фоток на подобие как в дефолтовои камере где пальцом крутиш тумбнаили в лево/в право. Проблема
в том что они загружются достаточно долго и прокрутка слишком тормозит ... шас ишу способ загрузить и отобразить тумбнаили как то
в отдельных потоках ...
WBR
Janex
Проблема с посылкои из преложения
в Сообщения SMS
Опубликовано
Привет всем.
Отправляю SMS из своего преложения:
Procedure _SendSMS (Target, Messagestr :String); Var smsManager :JSmsManager; smsTo :JString; begin smsManager := TJSmsManager.JavaClass.getDefault; smsTo := StringToJString(target); smsManager.sendTextMessage(smsTo, Nil, StringToJString(messagestr), Nil, Nil); End;
Отправляется и приходит нормально. Шас смотрю в content://sms/sent
Uri := StrToJURI('content://sms/sent'); Cursor := SharedActivity.GetContentResolver.query(Uri, Nil, Nil, Nil, Nil); Date_SentIdx := Cursor.GetColumnIndex(StringToJstring('date_sent')); StatusIdx := Cursor.GetColumnIndex(StringToJstring('status')); While (Cursor.MoveToNext) Do Begin Date_Sent := JStringToString(Cursor.getString(Date_SentIdx )); Status := Cursor.getInt(StatusIdx); End;
и есть большая проблема - в поле date_sent всегда пусто
Если отправляю на несушествуюшии номер, то даже в поле status всегда -1.
Если тож само отправляю в телефоне из стандартного приложения, то нормально - date_sent с датои,
и status с кодом заполнен если номер несушествуюшии...
Android 7.0
Delphi 10.4.2
Android API Level вроде как 24
Есть идеи как ето лечить?
WBR
Janex