-
Постов
2 124 -
Зарегистрирован
-
Посещение
-
Победитель дней
390
Активность репутации
-
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; Запускаем и смотрим.
-
Brovin Yaroslav получил реакцию от Anatoliy в Мерцание при запуски на Android ниже 7 версии
Не думаю, что удастся победить данный эффект. Поскольку мерцание связано с тем, что андроид не сразу выдает графический контекст, а делает это несколько раз. На каждое изменение контекста, FMX пересоздает свой контекст и выполняет инициализацию и иногда отрисовку. Именно по этому вы и наблюдаете этот эффект.
-
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}
-
Brovin Yaroslav получил реакцию от Anatoliy в Встреча в Питере 11-го октября 2018
Я буду, как обычно. На встрече дам попробовать демки, сделанные с библиотекой FGX Native.
-
Brovin Yaroslav получил реакцию от Zyablik3000 в Как отловить изменение положения контрола
Если это свой компонент, то перекройте метод TControl.DoAbsoluteChanged и не забудьте вызывать базовый метод через inherited;
-
Brovin Yaroslav получил реакцию от kami в Встреча в Питере 11-го октября 2018
Я буду, как обычно. На встрече дам попробовать демки, сделанные с библиотекой FGX Native.
-
Brovin Yaroslav получил реакцию от kami в Как отловить изменение положения контрола
Если это свой компонент, то перекройте метод TControl.DoAbsoluteChanged и не забудьте вызывать базовый метод через inherited;
-
Brovin Yaroslav получил реакцию от dnekrasov в Как отловить изменение положения контрола
Если это свой компонент, то перекройте метод TControl.DoAbsoluteChanged и не забудьте вызывать базовый метод через inherited;
-
Brovin Yaroslav получил реакцию от Alex7wrt в Как отловить изменение положения контрола
Если это свой компонент, то перекройте метод TControl.DoAbsoluteChanged и не забудьте вызывать базовый метод через inherited;
-
Brovin Yaroslav отреагировална Zyablik3000 в Как отловить изменение положения контрола
Так мне и нужно событие изменения позиции (если оно существует). И в нем считать все что нужно.
Если, скажем я напишу
MyComponent.Height:=Random(1000); то отработает
procedure Resize; override; моего компонента. И тут можно отреагировать на измнение размера.
Вопрос в том, есть ли аналогичная процедура для реакции на
MyComponent.Position.X:=Random(1000); -
Brovin Yaroslav отреагировална Ильдар в Как отловить изменение положения контрола
в компоненте создать таймер в котором проверять/обрабатывать изменение положения?
-
Brovin Yaroslav получил реакцию от Vitaldj в Встреча в Питере 11-го октября 2018
Я буду, как обычно. На встрече дам попробовать демки, сделанные с библиотекой FGX Native.
-
Brovin Yaroslav отреагировална Vitaldj в Встреча в Питере 11-го октября 2018
Уважаемые коллеги, 11-го октября 2018 года, в славном городе Санкт-Петербурге состоится встреча ценителей FMX и нашего любимого форума fire-monkey.ru. Встреча будет ближе к 19-00, место, предварительно «чердак» в районе Авроры. Кто точно знает, что появится, отпишитесь!
-
Brovin Yaroslav получил реакцию от Tot999 в [Android/Windows] [XE7] Как запретить прокручивание?
Тогда, отключение:
ScrollBox.AniCalculations.TouchTracking := []; Включение:
ScrollBox.AniCalculations.TouchTracking := [ttVertical]; -
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.
Просмотр полной статьи
-
Brovin Yaroslav получил реакцию от Barbanel в [TMultiView] Починили TMultiView.Enable в Tokyo
Моя работа По просьбе трудящихся на этом форуме сделал эту задачу. А еще добавил настройки, чтобы можно было линию убирать.
-
Brovin Yaroslav получил реакцию от Barbanel в [DX10.1][Android][TMultiView] Как убрать белую полоску у TMutiView?
В Токио в TMultiView имеет специальное свойство, которое позволяет настроить цвет этой линии или скрыть ее совсем.
TMultiView.BorderOptions
-
Brovin Yaroslav получил реакцию от Шамсуддин в [DX10.1][Android][TMultiView] Как убрать белую полоску у TMutiView?
В Токио в TMultiView имеет специальное свойство, которое позволяет настроить цвет этой линии или скрыть ее совсем.
TMultiView.BorderOptions
-
Brovin Yaroslav получил реакцию от Dev в В Android TimeEdit не позволяет устанавливать секунды
через всплывающее окно не получится это сделать. Потому что сам андроид не дает такой возможности. А если использовать инплейс редактирование через клавиатуру, то просто задайти кастомный формат времени, в котором добавьте секунды.
-
Brovin Yaroslav получил реакцию от Ingalime в В Android TimeEdit не позволяет устанавливать секунды
через всплывающее окно не получится это сделать. Потому что сам андроид не дает такой возможности. А если использовать инплейс редактирование через клавиатуру, то просто задайти кастомный формат времени, в котором добавьте секунды.
-
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, так больше шансов получить помощь.
-
Brovin Yaroslav получил реакцию от Ingalime в Unsupported media file
На официальном сайте написано:
нет, на все популярные платформы
-
Brovin Yaroslav получил реакцию от Ingalime в THTTPClient авторизация
http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Using_an_HTTP_Client#Handling_Authentication_and_Certificates
-
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.
Просмотр полной статьи
-
Brovin Yaroslav получил реакцию от CASPER GAMER в Описание TfgRatingBar
Доработал компонент. Добавлено:
Поддержка Tint эффекта - TfgRatingBar.TintColor Автоматический размер - TfgRatingBar.AutoSize Режим только отображения - TfgRatingBar.ReadOnly Событие окончательного изменения рейтинга (отжатие пальца от экрана или кнопки мышки) - TfgRatingBar.OnChange Событие в процессе изменения рейтинга - TfgRatingBar.OnChanging