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

Janex72

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

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

  • Посещение

Сообщения, опубликованные Janex72

  1. Привет всем.

    Отправляю 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

     

     

     

     

     

     

     

     

  2. Привет всем.

    Есть идея написать свои Screen Lock-er, ну типа когда включаеш телефон то спрашивает пароль

    или ета фигня с 9 точками где пальцом водиш по точкам ...

    Подозреваю что простои апликациеи там необоидтись, надо наверно как то с сомим андроидом

    ето связывать...

    Мож у каго есть какие то примеры или советы куда копать?

    WBR

    Janex

     

     

  3. Привет всем.
    Искал как в 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

  4. 2 минуты назад, kiz35196 сказал:

    а почему бы просто не запускать питоновские файлы питоном ?

    а с дэлфи только отправлять команды в консоль на запуск

    Мне задачи по сложнее.

    Надо не просто запускать готовые скрипти, а чтоб юзер сам мог их писать для апликации, на пример, при запуске какого то юзерского скрипта

    передаётся в нём (в скриптовую функцию, на пример) какие то параметри, скрипт обрабатывает данные и взаимодеиствует

    с контролями на форме.

    На пример, запускается скрипт, где в параметр передаётся XML, в скрипте он обрабатывается и на форме высвечиваются результати

    в выде, на пример, Gauge, Progressbar, или заливаются текст в TMemo итд. И контролы тоже не вшиты в екзешник в дизаинтаиме, их

    юзер в рантаиме сам дизаинит и ставит что надо ...

    Ето как бы примитивная дельфовская IDE но только на питоне ...

    В "Python 4 Delphi"  ето вроде всё можно, но нехватает ума перевести чтоб в дельфе под линукс он компилился, а то под

    линукс он предусмотрен только для FPC :(

     

     

     

     

  5. Привет всем.

    Прокопал весь интернет в поисках чего то чем внедрить Python в

    мою апликацию написаную на Delphi. Нашёл "Python 4 Delphi", под

    wинду компилится и работает, но мне надо как раз под Linux (Delphi 10.2).

    Самому подпилить под fmx неудаётся как то :(

    Неужели етот "Python 4 Delphi" единственныи в природе для связки

    дельфи с питоном ??

    WBR

    Janex

     

  6. Привет всем.

    Сделал компонент, в нём своиство/обект типа TPersistent, а на нём колекция (TCollection) ...

    Изначально натклнулся, что в дизаинтаиме в обект инспекторе неоткривался редактор где TCollectionitem-и делаются, искал, гуглил, нашёл

    решение здесь (код по середине):

    https://stackoverflow.com/questions/6980401/collection-editor-does-not-open-for-a-tcollection-property-in-a-tpersistent-prop

    Всё работает, в колекцие на пример 5 елементов, но вот если скомпилю под wинду то:

    Mycomponent.MyPersistentproperty.MyCollection паказывает правильно - 5, а

    если всё то же скомпилю под андроид, то всегда в любом случаес показывает 1 (!!!)

    Тоесть всегда одан кокая то пустая колекция, хоть убеися ...

    Тут под андроид какие то глюки или чё то другое ?

     

    WBR

    Janex

     

     

     

     

     

  7. Будем пробовать ...

    Но вопрос то другои - рисовать на канве с DrawLine самыи быстрии способ ?

    Подозреваю, что, если, на пример, захочу мультик показывать на канве (сотни всяких draw) с 25fps то врятли канва ето потянет ...

    Может бить для супер скорости вообше другои подход нужен ?

  8. 5 минут назад, GASCHE сказал:

    Не совсем понятно, надо при каждом изменении дорисовывать в конец графика по одной точке, или каждый раз "менять/перерисовывать" весь график? 

    Приходится каждыи раз перерисовывать весь график. При приходе новых данных, весь графих сдвигается в лево и в конце (с право) рисуется

    новая точка. Все точки соедены с Line...

  9. 17 минут назад, POV сказал:

    А вопрос-то в чём? Возьми нарисуй что хочешь в событии OnPaint любого контрола. Минут за 10 напишешь. Оцени как быстро рисуется.

    Так сделал уже, рисуется, вроде даже быстро...

    Но мне нужно построить график, как уже писал, которыи будет менятся/перерисовыватся 10 или чаше раз в секунду, и

    из етого вопрос - рисовать на канве линии с DrawLine будет самыи быстрыи метод или ето каким то другим

    способом лучше делать ?

     

  10. Привет всем.

    Надо мне создать свои Scope - незнаю как по русски он называется :(

    Как пример брал TTMSFMXScope - етот типо TChart но сами линии по таимеру передвигаются с право на лево.

    Готовых компонентов для етого мало (TMS, TeeChart, больше ненашёл), компонент от TMS слишком медlеленныи,

    мне нужен тупои квадрат в котором двигались отрисованые линии с скоростю как минимум 10 кадров в секунду и

    отрисовка занимало самое минимальное возможное время, а то на форме ето будет не единственное что будет отрисовыватся...

    Ну кароч, решил ето делать на TPaintbox-е рисуя линии с DrawLine.

    Но возникает вопрос - будет ли ето самыи быстрии способ ето сделать, мож есть какие то другие методы?

    Мож рисовать сперва на TBitmap-е и потом его кидать на канвy?

    Есть идеи что использовать чтоб достич максимальную возможную скорость отрисовки ?

    WBR
    Janex

     

     

     

     

     

  11. Привет всем.

    Надо создать простой компонент который содержал бы фрейм, на 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

     

     

     

  12. 4 часа назад, Равиль Зарипов (ZuBy) сказал:

    Спасибо, но тут он сылается на ТEdit у которого есть своиство TTextSettings :

     
    function TZMaterialEdit.GetTextSettings: TTextSettings;
    begin
    Result := FEdit.TextSettings;
    end; 

    Но у меня свои пустои компонент которыи НЕ наслседовает другои компонент с своиством TTextSettings, и внутри тоже никого с готовым своиством TTextSettings :(

    Хотел прикрутить его для моих нужд... обект TTextSettings создаётся и доступен, вот только в дизаинтаиме он

    в Oбject Inspector-е  почему то неразвёртвовается

  13. Ешё проблемы с 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

     

  14. 18 минут назад, kami сказал:

    Вы обладатель великолепнейшего зрения, реакции и т.п. если в состоянии распознать и проанализировать за 100мс содержимое экрана :)

    На самом деле эта проблема аналогична "хочу, чтобы показывалось все 100500 записей" - пользователь физически не сможет оценить всё то, что вы ему отображаете + получается, что сильно нагружается система абсолютно ненужными действиями.

    Логируйте значения, сохраняйте их в БД, проводите внутренние манипуляции в реальном времени.

    А пользователю - поставьте таймер, в котором показывайте последнее пришедшее значение + при желании "всего принято столько-то фреймов данных" (по аналогии с отображением количества кадров в секунду).

    Да, вы правы, 10 раз в секунду менять значение излышно, но смушает скорость отображения ... Если мне на форме будет, на пример, 50 лабелов и каждыи меняет

    текст раз в секунду, то каждому лабелу свои поток делать, что ли ? А то обновить за секунду 50 лабелов качется невозможно ...

     

     

  15. Привет всем.
    Сделал маленькую апликацию для Андроида. Апликация принимает данные
    через BlueToothLE и на на двух TLabel показывает цифорки ...
    Обём данных маленькии, одна посылка около 20 баитов.
    Если данны приходит с интервалом 100 мс, то TLabel-а ешё успевают отобразить информацию,
    а если интервал уменьшить, то приходит копец :(
    Данные заливаются в буффер BlueTooth-а и TLabel-а неуспевают их показать, тоесть,
    можем послать данные, скажем, пол минуты, потом даже отрубить BlueTooth посылаюшее их и
    данные на TLabel-а ешё минуту мигают - отображаются ...

    Поставил ешё Gauge от TMS Components - там тормоза вообше ужас, если 2 цифри за секунду
    отобразить на циферблате, то ето уже предел ...

    Шас немогу понять - телефон у меня тормознутыи какои то (CAT-S30, новыи, незагруженыи) или
    всётаки FMX контролы работают так ужасно медленно ...

    WBR
    Janex

  16. 12 часов назад, rareMax сказал:

    https://github.com/dph2011/Object-Debugger-for-FireMonkey

     

    Ну а создавать в приложении нужные компоненты динамически думаю не сложно.

    Создовать то просто, но ешё надо визуально их редактировать, типо как в IDE дельфах - кликнул

    на конктроль и появляются вокруг её 6 точек и можеш шас растягывать её, мышкои передвигать

    по форме итд ... вот что мне надо для FMX форм ...

  17. Привет всем.

    У LMD и TMS Components есть скриптери и соответственно восможность в рантаиме редактировать

    формы, тоесть кидать на форму контролы итд, и property editor где у контролов своиство посмотреть/поменять.

    Но ето всё под VCL а мне надо редактировать форми в рантаиме в FMX.

    Есть что то такое в природе, тоесть как бы в готовых компонентах, если нет, то реально такое

    создать для FMX-а ?

     

    WBR

    Janex

  18. Привет всем!

     

    Задача в кратце токая - в рантаиме создаю, например, 10 фреимов, на каждом по TImageControl, и
    на каждом фреиме запускаю отдельныи поток где загружается картинка в битмап и дальше уже в TImageControl.
    Облом получил при загрузки фаила в битмап. Обясняли мне, что битмапи в FMX не Thread Safe.

    Хотя непонемаю при чём тут Thread Safe а то создаю ведь 10 отдельных
    екземпляров битмапов, непитаюсь ведь из разных потаках обрашатся к одному и тому же битмапу ... но ок, хрен сними ..

    Задумался что мож задачу не так поставил. Мне надо ведь просто показать тумбнаил картинки на фреиме, а мож
    там битмап и не нужен ? В TStream картинка читается в потоке нормально.. мож есть какои то способ её шас отрисовать
    на Canvas ?
    Где то упоминалось что надо юзать TStream и TBitmapsurface, что ето будет работать в потоках. Пример как TBitmapsurface отобразить
    на канве нашёл, но как картинку запихнуть в етот TBitmapsurface (без обрашения к битмапу, ге получаю AV или Out of memory) опять таки немогу понять :(

     

    Целевая задача построить просмотршик фоток на подобие как в дефолтовои камере где пальцом крутиш тумбнаили в лево/в право. Проблема

    в том что они загружются достаточно долго и прокрутка слишком тормозит ... шас ишу способ загрузить и отобразить тумбнаили как то

    в отдельных потоках ...

     

    WBR

    Janex

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