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

Brovin Yaroslav

Администраторы
  • Постов

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

  • Посещение

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

    390

Активность репутации

  1. Like
    Brovin Yaroslav получил реакцию от Alisson R Oliveira в Не удается перетащить (Drag and Drop) итем TListBoxItem между двумя TListBox   
    Ставим TListBox.AllowDrag = True для источника итемов. С которого будем перетаскивать итемы в другой. В обработчике TListBox.OnDragOver у приемника пишем:
    procedure TForm1.ListBox1DragOver(Sender: TObject; const Data: TDragObject; const Point: TPointF; var Operation: TDragOperation); begin Operation := TDragOperation.Copy;// или Move end; Пишем обработчик TListBox.OnDragDrop для списка приемника:
    procedure TForm1.ListBoxDestinationDragDrop(Sender: TObject; const Data: TDragObject; const Point: TPointF); begin if Data.Source is TFmxObject then TFmxObject(Data.Source).Parent := ListBoxDestination; end; Запускаем и смотрим.

  2. Like
    Brovin Yaroslav получил реакцию от Anatoliy в Мерцание при запуски на Android ниже 7 версии   
    Не думаю, что удастся победить данный эффект. Поскольку мерцание связано с тем, что андроид не сразу выдает графический контекст, а делает это несколько раз. На каждое изменение контекста, FMX пересоздает свой контекст и выполняет инициализацию и иногда отрисовку. Именно по этому вы и наблюдаете этот эффект.
  3. Like
    Brovin Yaroslav отреагировална Tumaso в Переход на новую модель разрешений   
    @Alex7wrt,
    устанавливают в том числе и новые пользователи на старых версиях андроида, и у них работает. minSdkVersion для этого.
    Что касается targetSDK, то этим значением приложение уведомляет операционку, что возможно будет использовать api вплоть до данной версии. targetSDK 27 пока не использовал, только 26, и все что надо работает.
    В самом коде делаю анализ текущей версии SDK, и в зависимости от нее возможно делаю дополнительные действия. Вот например, работа с правами:
    {$IFDEF ANDROID} // для Android 6+ требуется дополнительная работа с правами if TJBuild_VERSION.JavaClass.SDK_INT >= 23 then begin if (TAndroidHelper.context.checkSelfPermission( StringToJString(PERMISSION_FILE_READ) ) = TJPackageManager.JavaClass.PERMISSION_DENIED) or (TAndroidHelper.context.checkSelfPermission( StringToJString(PERMISSION_FILE_WRITE) ) = TJPackageManager.JavaClass.PERMISSION_DENIED) then begin // необходимо запросить разрешение на использование галереи LIsWaitPermissions := True; TAndroidHelper.Activity.requestPermissions( CreateJavaStringArray([PERMISSION_FILE_READ, PERMISSION_FILE_WRITE]), BUTTON_FILE ); end; end; {$ENDIF}  
  4. Like
    Brovin Yaroslav получил реакцию от Anatoliy в Встреча в Питере 11-го октября 2018   
    Я буду, как обычно. На встрече дам попробовать демки, сделанные с библиотекой FGX Native.
  5. Thanks
    Brovin Yaroslav получил реакцию от Zyablik3000 в Как отловить изменение положения контрола   
    Если это свой компонент, то перекройте метод TControl.DoAbsoluteChanged и не забудьте вызывать базовый метод через inherited;
  6. Haha
    Brovin Yaroslav получил реакцию от kami в Встреча в Питере 11-го октября 2018   
    Я буду, как обычно. На встрече дам попробовать демки, сделанные с библиотекой FGX Native.
  7. Like
    Brovin Yaroslav получил реакцию от kami в Как отловить изменение положения контрола   
    Если это свой компонент, то перекройте метод TControl.DoAbsoluteChanged и не забудьте вызывать базовый метод через inherited;
  8. Like
    Brovin Yaroslav получил реакцию от dnekrasov в Как отловить изменение положения контрола   
    Если это свой компонент, то перекройте метод TControl.DoAbsoluteChanged и не забудьте вызывать базовый метод через inherited;
  9. Like
    Brovin Yaroslav получил реакцию от Alex7wrt в Как отловить изменение положения контрола   
    Если это свой компонент, то перекройте метод TControl.DoAbsoluteChanged и не забудьте вызывать базовый метод через inherited;
  10. Like
    Brovin Yaroslav отреагировална Zyablik3000 в Как отловить изменение положения контрола   
    Так мне и нужно событие изменения позиции (если оно существует). И в нем считать все что нужно.
    Если, скажем я напишу
    MyComponent.Height:=Random(1000); то отработает
    procedure Resize; override; моего компонента. И тут можно отреагировать на измнение размера.
    Вопрос в том, есть ли аналогичная процедура для реакции на
    MyComponent.Position.X:=Random(1000);
  11. Sad
    Brovin Yaroslav отреагировална Ильдар в Как отловить изменение положения контрола   
    в компоненте создать таймер в котором проверять/обрабатывать изменение положения?
  12. Thanks
    Brovin Yaroslav получил реакцию от Vitaldj в Встреча в Питере 11-го октября 2018   
    Я буду, как обычно. На встрече дам попробовать демки, сделанные с библиотекой FGX Native.
  13. Like
    Brovin Yaroslav отреагировална Vitaldj в Встреча в Питере 11-го октября 2018   
    Уважаемые коллеги, 11-го октября 2018 года, в славном городе Санкт-Петербурге состоится встреча ценителей FMX и нашего любимого форума fire-monkey.ru. Встреча будет ближе к 19-00, место, предварительно «чердак» в районе Авроры. Кто точно знает, что появится, отпишитесь!
  14. Like
    Brovin Yaroslav получил реакцию от Tot999 в [Android/Windows] [XE7] Как запретить прокручивание?   
    Тогда, отключение:
    ScrollBox.AniCalculations.TouchTracking := []; Включение:
    ScrollBox.AniCalculations.TouchTracking := [ttVertical];
  15. Like
    Brovin Yaroslav получил реакцию от Евгений Корепов в General Manager Update for September 2018   
    As we start September, I want to provide some important updates around products and product packaging.
    Earlier in the year, we simplified our SKUs by including the FireMonkey (FMX) Framework for developing Cross-Platform Apps into all Professional editions. These are also now available to all customers with a Professional license who are on Update Subscription. There are many upcoming changes with iOS, Android, MacOS, etc. that will be included in the upcoming 10.3 release and updates throughout the next 12 months. We also included a single site RAD Server deployment license with all Enterprise licenses. An update to RAD Server will come with 10.3 and is already available for beta testing. Both changes were popular with our customers. We also have two other areas, where we think we can improve.
    Architect SKU Update
    We will update Architect Edition alongside our 10.3 release. This edition has traditionally allowed our customers to gain value from other products within our family of tools. Idera Inc.’s portfolio has grown and we have some exciting new products that are better aligned with our customer needs than the current data modeling tooling. The data modeling tools are still included with Architect Edition, but will be replaced with the following in our 10.3 release:
    Ext JS Professional – the most extensive professionally supported JS components and tooling from our Sencha brand. Our surveys indicate that over 50% of our customer base is using or planning to use JavaScript for Web Development together with Delphi. Ext JS has some similarities with Delphi in its object development approach and high level of productivity, so this should be a great way to start your team’s JS journey.
    RAD Server Multi-site Deployment License – allows RAD Server to be deployed on multiple Servers and Locations, extending what is possible with the Enterprise License of RAD Studio. This supports our vision for modern multi-tier REST based architectures that can be highly cost effective.
    Aqua Data Studio (ADS) – award winning tools for database management and development with great support for SQL and many more databases. ADS can be used with InterBase with increased support coming soon.  Aquafold is part of Idera, Inc. Database Tools businesses.
    Ranorex Test Automation – the best Testing Automation tool, especially popular for Windows development, recently increased Delphi support and can be a great addition for large and small teams. Ranorex is part of Idera, Inc. Testing Tools businesses.
    We believe that these represent substantial increase in value for our Architect edition. We are currently evaluating if an update in price is required. As with all changes, we want to provide customers with plenty of advance notice. Further, if you purchase the current version, you will  be current on Update Subscription and once 10.3 is released, you will  have access to the additional tooling described above.
    Community and EDN Portal Update
    Another important change to come in the next several months is the update to our Community and EDN portals. I am sure that most customers will agree that this is way overdue. Our objective is to improve performance and usability by adopting better, more standard technologies. In the spirit of continued adoption of our own tooling, the new EDN is built with Ext JS, which makes it very easy to expand and maintain. You will receive specific notifications if there are changes to your authentication or access, so please be in the lookout for these. Having your most updated information updated in EDN and with your Account Representative or Reseller Partner always help to ensure effective communications.
     
    Просмотр полной статьи
  16. Like
    Brovin Yaroslav получил реакцию от Barbanel в [TMultiView] Починили TMultiView.Enable в Tokyo   
    Моя работа  По просьбе трудящихся на этом форуме сделал эту задачу. А еще добавил настройки, чтобы можно было линию убирать.
  17. Like
    Brovin Yaroslav получил реакцию от Barbanel в [DX10.1][Android][TMultiView] Как убрать белую полоску у TMutiView?   
    В Токио в TMultiView имеет специальное свойство, которое позволяет настроить цвет этой линии или скрыть ее совсем.
    TMultiView.BorderOptions  
  18. Like
    Brovin Yaroslav получил реакцию от Шамсуддин в [DX10.1][Android][TMultiView] Как убрать белую полоску у TMutiView?   
    В Токио в TMultiView имеет специальное свойство, которое позволяет настроить цвет этой линии или скрыть ее совсем.
    TMultiView.BorderOptions  
  19. Like
    Brovin Yaroslav получил реакцию от Dev в В Android TimeEdit не позволяет устанавливать секунды   
    через всплывающее окно не получится это сделать. Потому что сам андроид не дает такой возможности. А если использовать инплейс редактирование через клавиатуру, то просто задайти кастомный формат времени, в котором добавьте секунды.
  20. Like
    Brovin Yaroslav получил реакцию от Ingalime в В Android TimeEdit не позволяет устанавливать секунды   
    через всплывающее окно не получится это сделать. Потому что сам андроид не дает такой возможности. А если использовать инплейс редактирование через клавиатуру, то просто задайти кастомный формат времени, в котором добавьте секунды.
  21. Like
    Brovin Yaroslav отреагировална Fedor K в JAVA и Delphi   
    @Pavel M, Судя по вашей обертке класса и самой JAR:
     Нужно удалить все не статические методы из описания интерфейса наследуемого от JObjectClass: JUserClass = interface(JObjectClass) ['{A4B29440-8C8B-4C1F-A8E7-B7612D4FEEB4}'] function init(uuid : JString; secondName : JString; firstName : JString; inn : JString; phone : JString; pin : JString; roleUuid : JString; roleTitle : JString) : JUser; cdecl; overload; function init(uuid : JString; secondName : JString; firstName : JString; phone : JString; pin : JString; roleUuid : JString; roleTitle : JString) : JUser; cdecl; overload; end; У класса User нету конструктора по умолчанию, поэтому вызов такого кода вызовет ошибку: //неправильный вариант с ошибкой TestClass := TJUser.Create; //правильный вариант TestClass := TJUser.JavaClass.init( StringToJString('uuid'), StringToJString('secondName'), StringToJString('firstName'), StringToJString('phone'), StringToJString('pin'), StringToJString('roleUuid'), StringToJString('roleTitle') );  
    Если к проекту подключаете любые JAR файлы, то следите, чтобы вместе с ними были подключены и все остальные .jar библиотеки с классами, на которые ссылаются исходники. Например, в Вашем примере при вызове вышеприведенного конструктора первым делом выскочит ошибка:
    Вам нужно найти все такие подключения и найти сборки, в которых они валяются:

    Если в проекте в Android Studio включено копирование всех сторонних библиотек в папку libs, то после компиляции всего преокта практически все либы можно найти:
    папка libs; output папке проекта; папка Android SDK. п.с. Тему лучше перенести в раздел Android, так больше шансов получить помощь.
  22. Like
    Brovin Yaroslav получил реакцию от Ingalime в Unsupported media file   
    На официальном сайте написано:
     
     
    нет, на все популярные платформы 
  23. Like
    Brovin Yaroslav получил реакцию от Ingalime в THTTPClient авторизация   
    http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Using_an_HTTP_Client#Handling_Authentication_and_Certificates
  24. Like
    Brovin Yaroslav получил реакцию от Ingalime в C++’s Strengths Keep it Relevant in an Age of Code Bootcamps   
    There is an interesting post on Medium aiming to inspire students why to learn C++. Its main point is that learning C++ teaches fundamental computer science concepts: memory management, compile-time vs run-time, polymorphism implementation, iterators and containers, and more.  Unfortunately, it phrases itself in an exclusionary manner. While C++ is not the only language where you can learn these fundamentals, it is one of the most popular.
    However, with dozens of coding "boot camps" popping up and charging thousands of dollars for the promise of a quick path to a software development career, why should you consider learning a complex language like C++?
    Here are three key reasons to learn and use C++ today:
     
    Technical Foundation It's Widely Used Support and Future  
    Let’s look at these in order.
    Technical Foundation
    C++ is one of the most common languages used to teach strong foundational knowledge that is applicable to all other languages. There are many core concepts you can learn with C++:
    Memory management: Allocating and freeing; use of pointers, and very quickly why you should not manually manage memory Different memory management models: reference-counted in the form of shared_ptr; strict ownership in the form of unique_ptr 
    Ownership and deterministic behaviour, illustrated by RAII (see C++ specifics)
    Polymorphism behaviours: this one is in fact illustrated by some odd behaviours of C++, such as that the type identity of an object changes throughout its construction - hint, what happens when you call a virtual method in a constructor?
    Fundamental containers and algorithms
    Optimizations: what causes fast or slow code?
    Functional programming: while not a pure functional language, functional style is a direction the language has been heading and is very powerful in C++
     
    If you learn C++, you will have a solid background that will allow you to understand other languages’ designs and implementations.
    It’s Widely Used
    C++ is the most widely used language for software today, especially in areas requiring performance. The following applications are written totally or mostly in C++:
    Windows Explorer
    Photoshop
    Word
    Clang compiler
    Windows (key area, including the new wrappers for XAML and desktop in C++17)
    Amazon’s key services
    Large parts of Apple’s macOS
    Bloomberg’s financial software
    And many more.
    Why is it widely used?
    Because C++ is powerful, expressive, concise, and performant. When you need to write solid, fast, applications and need powerful concepts in your code, you use C++.
    Support and the Future
    Finally, one key item in learning a language is the direction it’s going in the future. C++ is an ISO standard, and is evolving rapidly. You can read an overview of the various standard versions here.
    It’s a language that is being kept up-to-date and extended as developers need it. That’s a language to rely on.
     
    Ready to Get Started learning or expanding your C++ knowledge? Start with our free tools and C++ Bootcamp replays.
     
    Просмотр полной статьи
  25. Like
    Brovin Yaroslav получил реакцию от CASPER GAMER в Описание TfgRatingBar   
    Доработал компонент. Добавлено:
    Поддержка Tint эффекта - TfgRatingBar.TintColor Автоматический размер - TfgRatingBar.AutoSize Режим только отображения - TfgRatingBar.ReadOnly Событие окончательного изменения рейтинга (отжатие пальца от экрана или кнопки мышки) - TfgRatingBar.OnChange Событие в процессе изменения рейтинга - TfgRatingBar.OnChanging

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