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

haword

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

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

  • Посещение

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

    19

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

  1.  (Sender as TStringGrid).StylesData['background.content.selection.Fill.Color'].AsType<TAlphaColor>

    (Sender as TStringGrid)(если тут nil то будет ошибка).StylesData['background.content.selection.Fill.Color'](если тут nil то будет ошибка).AsType<TAlphaColor>

    https://stackoverflow.com/questions/43624260/how-to-change-color-of-a-cell-in-a-delphi-tgrid-firemonkey-component тут варианты как можно рисовать, в конце способ отрисовки по умолчанию, если у Canvas изменить цвет то нарисует я думаю нужным цветом текст.

     

  2. вариант со своим TTreeViewItem нашел в интернете, проверил - работает.

    type
    
      TTreeViewItemNew = class(TTreeViewItem)
        private
          FOnChangeExpanded: TNotifyEvent;
          FOnChangeCollapsed: TNotifyEvent;
        protected
          procedure SetIsExpanded(const Value: Boolean); override;
        published
          property OnApplyStyleLookup;
          property OnChangeExpanded: TNotifyEvent read FOnChangeExpanded write FOnChangeExpanded;
          property OnChangeCollapsed: TNotifyEvent read FOnChangeCollapsed write FOnChangeCollapsed;
      end;
    
    ..........
    
    procedure TTreeViewItemNew.SetIsExpanded(const Value: Boolean);
    var
      LWasExpanded: boolean;
    begin
      LWasExpanded := IsExpanded;
      inherited;
      if (IsExpanded) AND (LWasExpanded = false) then
      begin
        if Assigned(OnChangeExpanded) then
          OnChangeExpanded(Self)
      end
      else
        if Assigned(OnChangeCollapsed) then
          OnChangeCollapsed(Self);
    end;
    
    
    procedure TForm.OnExpand(Sender: TObject);
    begin
    //
    end;
    ....
    
    
    
        newitem:= TTreeViewItemNew.Create(TreeView);
        newitem.Parent:= TreeView;
        newitem.OnChangeExpanded:= OnExpand;
        newitem.Text:= 'cccccccccc';

       
     

  3. делай на 320х240 и будет счастье )

    а вообще, для телефонов надо делать интерфейс адаптивный к размерам экрана.

    а стандартно, да, при большом экране будет масштабироваться в большую сторону, но в малую сторону не будет никто масштабирование делать так как вообще все может нечитаемым быть. 

    если не получается адаптивный сделать интерфейс, попробуй https://docwiki.embarcadero.com/Libraries/Sydney/en/FMX.Layouts.TScaledLayout может подойдет.

  4. я думаю там не только firemonkey но и андроидная часть рассчитана под новую версию. хотя я собрал свой старый проект на 11 версии, на 7 андроиде запустился без проблем. НО! обнаружились косяки которых не было в предыдущей версии. выразилось в том что не сработало заполнение картинкой области. я проверил и на 11 андроиде, косяки были и там. 

  5. В 24.09.2021 в 16:30, Alisson R Oliveira сказал:

    Мне нужно, чтобы это выполнялось всякий раз, когда элемент разворачивается или сворачивается, система несколько раз перезагружает список при его запуске. Так что это не имело бы смысла, когда я его закрываю или открываю.

    как вариант

    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.TreeView,
      FMX.Layouts, FMX.Controls.Presentation, FMX.StdCtrls;
    
    type
      TForm1 = class(TForm)
        TreeView1: TTreeView;
        TreeViewItem1: TTreeViewItem;
        TreeViewItem2: TTreeViewItem;
        TreeViewItem3: TTreeViewItem;
        TreeViewItem4: TTreeViewItem;
        TreeViewItem5: TTreeViewItem;
        TreeViewItem6: TTreeViewItem;
        TreeViewItem7: TTreeViewItem;
        TreeViewItem8: TTreeViewItem;
        TreeViewItem9: TTreeViewItem;
        TreeViewItem10: TTreeViewItem;
        TreeViewItem11: TTreeViewItem;
        TreeViewItem12: TTreeViewItem;
        procedure TreeViewItem2ApplyStyleLookup(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
        FOldClick: TNotifyEvent;
        FButton: TCustomButton;
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.fmx}
    
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    
      FOldClick(Sender);
      if (FButton.Parent.Parent is TTreeViewItem) then
      begin
        Caption:= BoolToStr((FButton.Parent.Parent as TTreeViewItem).IsExpanded);
      end;
    
    end;
    
    procedure TForm1.TreeViewItem2ApplyStyleLookup(Sender: TObject);
    begin
        if TreeViewItem2.FindStyleResource('button', FButton) then
        begin
          FOldClick:= FButton.OnClick;
          FButton.OnClick:= Button1Click;
    
    
        end;
    
    end;
    
    end.
    

    перекрывать ApplyStyleLookup у всех новых TTreeViewItem и хранить FButton например в массиве TArray<TCustomButton>, но это не очень красивый вариант. более красивый сделать TNewTreeViewItem, в нем реализовать нужный функционал и добавлять в TreeView.

  6. 21 час назад, Alisson R Oliveira сказал:

    Приносим извинения, но я не думаю, что был очень ясен в вопросе.
    Я говорю о состоянии элемента TTreeView, когда он развернут или свернут.
    Благодарный

     

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

  7. 21 час назад, Maka сказал:

    Удалось ли привести в соответствие приложения, скомпилированное в RadStudio 11?

    По докам embarcadero, вроде как в студии 11, добавила поддержку библиотек платежей версии 4, однако у меня предупреждение об устаревших версиях в PlayMarket'е все еще всплывает. У всех так, или нужны какие-то дополнительные манипуляции?

    Revert system files to default, на папке Library в нужной версии android в списке платформ. должно помочь если они действительно добавили поддержку 4 версии. 

  8. с ембаркадерой так будет всегда. нужно устанавливать 11 версию. хочешь релизить свои программы - покупай новые версии. 

    ну или переходи на что то другое, например чистый андроид на java/kotlin или на крайний случай xamarin. 

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

  10. 20 часов назад, Андрей Рулин сказал:

    Да, ведь хотел всё на Java перевести и лишний раз убеждаюсь, что была правильная мысль.

    100% правильная мысль. андроид + файрмонкей = глюки в проекте серьезнее калькулятора. я уже пытаюсь переписать на java свой проект. плюсы огнеобезьяны для меня в том что можно базу данных шифровать и достать от туда данные простому человеку будет очень и очень трудно. на андроиде то же можно шифровать, НО только сторонними библиотеками, а из-за них могут быть проблемы совместимости с новыми версиями андроида. минусы, из тех что я обнаружил, причем на последней версии - попробовал передать в ватсап или телегу текст из своей программы, да текст ушел но после возвращения в программу шрифт у листвью резко изменился почему-то, стал какой то странный, одна буква большая другая маленькая, хз от куда такой шрифт прицепил. из-за нехватки памяти что ли такое произошло, но произошло. скорость прорисовки - раза в три хуже чем на java, хотя странно, тут код нативный, и работает медленнее чем java. да на новых телефонах не заметно но у меня есть старый телефон с 7 андроидом и там это все заметно. ну и самое веселое - новые версии андроида часто несовместимые со старыми версиями делфи. программа написанная на java пашет и не падает, на делфи просто перестала запускаться на 11 андроиде. 

    для меня лично огнеобезьяна хороша только для десктопных приложений, да никакой там красоты современной не получишь, гридов нормальных нет, бесплатных именно, редакторов текста типа ричедита так же нет нормальных, есть два варианта, от tms но у него картинку можно только в один ряд поставить с текстом, обтекать нельзя, ну и htmlcomponent использовать, все что надо есть, но цена у него кусачая. под линукс только через стороннюю библиотеку крюкова, которая без исходников. генератор отчетов только один - фастрепорт. в остальном более-менее рабочее ПО кросплатформенное написать можно. 

     

  11. В 10.05.2021 в 22:09, Delpher-X сказал:

    Из TMemoryStream в TStrings все передается нормально. Однако - как обратно? Как снова преобразовать объект TString в поток данных, дабы снова можно было бы сохранить его в полноценный файл? 

      SaveToStream не подходит?)

    если грузить jpeg в tstringlist а потом через text выбирать куски и передавать, то с вероятностью 99.9999% на той стороне ничего не соберется, будут большие потери данных. так как в тексте будут отсутствовать комбинации байтов для которых нет символов. 

    сколько годиков гению программирования интересно?)

  12. В 11.04.2021 в 12:31, Вадим Смоленский сказал:

    Ну вот я и хочу найти выход. И пока не нахожу. Оттого и обратился к коллективному разуму.

    а что тут искать то? это ошибка огнеобезьяны. Либо находите способ как обновиться до 10.4.1, либо ищите исходники огнеобезьяны от 10.4.1 сравниваете со своими и добавляете изменения, подкидывайте их в свой проект и радуетесь. больше никак. 

  13. В 06.04.2021 в 13:34, Вадим Смоленский сказал:

    Это замечательная новость. Но у меня 10.2, и бесплатно обновиться до 10.4, как я понимаю, нельзя.

    никто вам старую машину на новую не поменяет ) 

    но кто хочет найти выход тот находит. особенно если это касается ПО где старые глюки правят в новых только версиях, добавляя при этом новых )

  14. на таких постоматах есть листание экрана кнопками такой, метод и использовать.

    либо использовать компоненты типа html component library либо thtmlview если vcl и там уже реализовать что надо. 

  15. 11 часов назад, ElenaS. сказал:

    Скидки точно будут, правда, пока что не могу назвать точную дату. Если Вам удобно, могу закинуть сюда сообщение, когда они появятся

    был бы очень благодарен.

    11 часов назад, ElenaS. сказал:

    Верно, скриптов нет.

    а в GetIt будет 2.8 версия? я что то там не нашел ее ( хотел под Linux попробовать ее.

  16. В 29.01.2021 в 14:55, ElenaS. сказал:

    Привет! У нас вышла новая версия FastReport FMX с поддержкой FmxLinux. 

    Классно! 

    В 29.01.2021 в 14:55, ElenaS. сказал:

    Буду рада ответить на вопросы!

    скидки будут?)

    я так понимаю в версии что идет GetIt нет ни скриптов, ни событий на элементах? 

  17. В 31.12.2020 в 18:26, Android сказал:

    haword

    Не знаю как сейчас, а пару лет назад Android Studio был тихим ужасом. Начиная от уродской разметки и заканчивая глючным Градлом

    конечно это не компоненты на форму кидать это руками описывать компоненты ) сделали правда что то похожее но и только похоже. но cмысл то не в этом а в том что работает все менее глючно чем у firemonkey. программа написанная для 4 андроида будет работать и на 10. а вот с firemonkey уже не так радостно. и скорость работы - на Java все намного плавнее работает чем под FM. 

    В 31.12.2020 в 18:54, Vitaldj сказал:

    FGX самый, что ни на есть нативный. А отсутствующие контролы или невизуальные компоненты, допиливающая в течении 2021 года. 

    для мелких проектов еще пойдет но для крупных не знаю. сегодня человек поддерживает а через год закопал проект и все. 

     

  18. в Lazarus вообще закопали Android потому что некому его там развивать и поддерживать, насколько я в курсе. Так же как и FPGUI. 

    мое мнение - писать на Firemonkeyi под Android можно но стабильности работы не получить, если пишешь что то серьезное. Возможно FGX и работает, не проверял. Но для себя уяснил, хочешь для андроида написать нужна писать на Android Studio. И не будет ни лагов при прокручивании больших списков, непонятных вылетов, и вид будет нативный. И даже - о ужас, не придется ждать выхода новой версии Delphi чтобы там пересобрать свою программу для новой версии Android. Все будет работать и так. Как более худший но рабочий вариант - попробовать Xamarin. Разработка полностью отличается от Delphi но программа более стабильна, с нативностью конечно такие же проблемы, но зато обновления идут часто, и поддержка более лучшая. А то что с каждой новой версией понимается минимальная версия Android вообще молчу, скоро минимальной станет 7 версия когда в Android Studio и Xamarin до сих пор можно под 4.4 писать. Конечно скажут сейчас что все уже на 9 и 10 сидят, но у меня телефон на 7.0 Android, и меня в нем все устраивает, но судя по всему в 10.5 Delphi будет последней кто будет поддерживать Android 7. 

    За то для написания под Windows + MacOS + Linux одновременно, Firemonkey или Lazarus тут уже нельзя точно определиться, везде есть и свои минусы и свои плюсы. 

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