Quantcast
Channel: Firemonkey | Delphi 11 10 XE8 XE7 XE Seattle Berlin Tokyo Rio Firemonkey, Delphi Android, Delphi IOS
Viewing all 97 articles
Browse latest View live

Free GeekAlarm Delphi Productivity App Source Code In Delphi FireMonkey For Delphi’s 25th Anniversary

$
0
0

Around 2002 I built an application called GeekAlarm! in Delphi 7 using the VCL. I released it as shareware on quite a few shareware sites and it saw quite a few (10k-100k) downloads. It forces you to take a break from your computer for a configurable amount of time (4 minutes every 30 minutes is the default). The description of the app is “GeekAlarm! is a unique way for you to keep track of when you should take a break while using your computer. By taking breaks you can increase your productivity, reduce eye strain, and allay fatigue. GeekAlarm! has varying degrees of break enforcement including passive, medium, and aggressive enforcement. This helpful utility is a must have for anyone that uses a computer for long periods of time.” Here is a screenshot of the original version and you can check out the GeekAlarm! website from 2006.

GeekAlarm! 2

I have been personally running the GeekAlarm! break app on my machine since then (so maybe 18 years or so). Fast forward to a couple years ago when a Windows 10 update came out and seemed to break the app. Not sure where the source code is so I rebuilt the app in the latest version of Delphi using the FireMonkey framework. It should run on Windows 10 and I believe I have tested it on macOS. Now I am making the source code available for free over on Github to celebrate Delphi’s 25th Anniversary! If you use your computer a lot you owe it to yourself to take break and this might just help you do that!

GeekAlarm!

Head over and download the full source code for GeekAlarm! built in Delphi 10.3.3 FireMonkey!


25 Free Cross Platform Samples For Delphi’s 25th Anniversary On Android, IOS, OSX, Windows, Linux

$
0
0

Delphi's 25th AnniversaryDelphi is celebrating it’s 25th Anniversary this year and I am going to outline 25 different Delphi FireMonkey demos which should run cross platform on Android, IOS, OSX, Windows, Linux, and HTML5. The main repo for the demos is over on Github and there are 100 Cross Platform Samples there (plus the same set of demos for C++ developers!). In this post we are going to highlight 25 of the most significant demos in the 100 demo list. Let’s get started!

#1 98-EmojiApp – Display and use emoji’s.

#2 99-DrawApp – Draw tools and canvas.

#3 92-MusicPlayerApp – Play music files with TMediaPlayer.

#4 95-NewsReaderApp – Consume RSS feeds.

#5 79-EmailApp – Connect to IMAP and SMTP in this email app.

#6 85-EncryptedSQLite – Create and access an encrypted SQLite database.

#7 87-InstagramFeed – Create an Instagram style image feed.

#8 94-PlaySounds – Play sounds across multiple platforms.

#9 77-Signature – Record signatures on a canvas.

#10 65-WebView – Embed a webview (web browser) in your app.

#11 67-NotesApp – Classic take notes style app.

#12 69-MakeScreenshot – Take screenshots within your app.

#13 71-HTTPPost – Send an HTTP post request.

#14 89-HTTPImage – Download an image from HTTP.

#15 90-NativeConnectivity – Check the connectivity status of your device.

#16 88-RESTToSQLite – Download from a REST service and insert it into an SQLite database.

#17 57-RunAtStartup – Run code at the start of your app (after the splash screen).

#18 56-SimpleBarChart – Create a simple bar chart in your app.

#19 49-Camera – Utilize the device camera in your app.

#20 32-SnackBar – Create a pop up message bar at the bottom of your app.

#21 31-BottomSheets – Create a pop up menu from the bottom of the app.

#22 100-AnimatedGIF – Display animated GIFs in the app.

#23 09-AsyncREST – Make an asynchronous REST request from within your app.

#24 08-FrameTabs – Break up a large app across tabs into modular frames.

#25 44-TodoList – Create a classic todo app.

Finally, head over to the Delphi 25th Anniversary site to check out some history about Delphi and what’s ahead in 2020 according to the Delphi Roadmap.

Free Emoji Easter Egg Builder Built In Delphi Firemonkey For Android, IOS, OSX, Windows, Linux, And HTML5

$
0
0
Emoji Easter Egg Builder Delphi Firemonkey

Emoji Easter Egg Builder Delphi FiremonkeyDelphi Firemonkey lets you quickly build out prototype apps very quickly and deploy them to Android, IOS, OSX, Windows, Linux, and HTML5. I put together this Emoji Easter Eggs builder app over a couple days (between 5 and 10 hours). There are a number of different Delphi 10.3.3 FireMonkey features that are used within the app including Effects, LiveBindings, custom pixel access, sharing on mobile devices, the color picker panel components, and much more. The background color gradient can be customized,  the color of the egg, the font color, the text of the message, the design on the egg, the accessory included in the lower right of the egg, and stripes available on some of the designs. The only image used within the app is the grass image. The app was mainly developed and tested on Windows 10 so there may need to be polish done for it to work at 100% on the other platforms.  Deploying the app to HTML5 would be done via Thinfinity VirtualUI or broadwayd on Linux. The Linux version is possible via FMXLinux which is available in Delphi 10.3.3 Enterprise and Architect. In addition to the Delphi features used Emojis (special graphical Unicode characters) were used for a large part of the graphics found within the Emoji Easter Egg builder app. Emoji graphics are provided by the font and platform itself so the graphics look different depending on which platform you run the app on. One the emoji egg is configured how you would like it you can take a screenshot of your configuration. The screenshots can be saved or shared depending on the platform the app is run on.

Head over and download the full source code for the Emoji Easter Egg builder app in Delphi 10.3.3 FireMonkey on Github.

 

Build Delphi And C++Builder Projects In Parallel Using This Delphi 10.3.3 FireMonkey Tool

$
0
0

It is possible to build multiple Delphi projects at the same time using MSBuild and utilize the multiple cores on most modern CPUs. I had a need to build a large number of Delphi projects (the 100 cross platform samples) and I wanted to speed this up so I build a simple utility to do so. The utility is built in Delphi 10.3.3 FireMonkey and full source code is available. The project is set to build for Windows 64bit but it would also compile to other platforms like Windows 32bit, Android, IOS, OSX, Linux, and HTML5. I noticed that Windows treats a Windows 64bit executable in TaskManager differently than a Windows 32bit executable so that’s why I went with 64bit as the default. Basically, the utility uses the TDirectory.GetFiles function to pull in all of the DPROJ and CBPROJ files recursively from a directory. Once it has the list of files it uses TTask, MSBuild, and an ExecAndWait function to run multiple compiles of the different projects at the same time. It has an option to select how many CPUs (processes) to utilize at the same time (between 1 and 9). It’s possible it could go over 9 parallel compiles but the MSBuild command line it uses wouldn’t allow a two digit number (maybe it needs to be escaped). The command line parameter might be able to be left out. This utility makes no attempt to compile a single project in parallel. The utility does include an option to clean up the project after the build as the goal is to see if there are any build errors. Build errors are loaded into a Build Log tab. The utility supports building 10.3.3 projects but support for other versions could be added.

Download the full source code for the Delphi Parallel Build utility build in Delphi 10.3.3 FireMonkey over on Github.

 

Massive Update With Tons Of Fixes For Delphi 10.4 Firemonkey On Android, IOS, MacOS, Windows, And Linux

$
0
0

RAD Studio 10.4 Sydney (Delphi + C++Builder) has been released with some significant enhancements to the Firemonkey framework. 10.4 includes new Metal API support on macOS and iOS and it brings significant performance improvements. Additionally, there is a new TBufferedLayout control which will cache painting of controls contained inside of it. The product itself received over 1000 updates and fixes across the IDE, RTL, VCL, and FMX. There are a ton of updates and new features in this release which makes it difficult to catalog them all!

Items from the release that are related to cross platform Firemonkey are:

  • Apple’s new launch screen storyboard requirement.
  • Delphi memory management is now unified across all supported platforms – mobile, desktop, and server.
  • New styled TMemo component on the Windows platform.
  • FMXLinux integration for building Linux GUI applications in Enterprise and Architect.
  • TWebBrowser control for iOS is now implemented using the WKWebView API
  • macOS implementation of Media Player control now used AVFoundation
  • Expanded HTTP and REST Client libraries with additional HTTPS features
  • LiveBindings Performance and Features Enhancements

The list of fixes applied to FireMonkey 10.4 are as follows:

TListView OnUpdatingObjects event handler not synch with datasource Data, Data\LiveBindings, FireMonkey RSP-16014
Live Bindings Master/ Detail problem in FireMonkey Data, Data\LiveBindings, FireMonkey RSP-16255
Access violation in dclbindcomp250.bpl when opeing a project Data, Data\LiveBindings, FireMonkey RSP-18445
FMX relationship TClientDataSet TGrid program Data, Data\LiveBindings, FireMonkey RSP-23224
Column index,1 out of bounds Data, Data\LiveBindings, FireMonkey RSP-23941
Error formatting the TDateColumn with LiveBindings on Mac Os 64 bit Data, Data\LiveBindings, FireMonkey RSP-27237
When using BindingsList, The number in the edit box is not inserted or updated after submission when the mouse clicks the up or down button of TUpDown (FMX / TSpinBox) Data, Data\LiveBindings, FireMonkey, VCL RSP-21412
Interaction of Swipe gestures with button clicks FireMonkey AP-208
fmx client align apparently ignores system toolbar at bottom of screen FireMonkey AP-209
Exception when setting the text property of a TLabel if the text contains a line feed character FireMonkey RSB-1753
Integer overflow in FMX.InertialMovement (TAniCalculations FUpdateTimerCount) FireMonkey RSB-2555
Move some TControl3D methods from private section to protected FireMonkey RSB-2724
Can’t upload MacOS-64-App to AppStore because of deprecated API usage FireMonkey RSB-3037
iOS 13 Dark mode – switch event FireMonkey RSB-3357
Video playback fails on Catalina FireMonkey RSB-3375
iOS missing property list keys for Bluetooth LE development FireMonkey RSB-3428
access to macOS Documents folder is missing from the entitlements list FireMonkey RSB-3468
Audio recording is not working even though entitlement is set FireMonkey RSB-3469
DateEdit onEnter called too late FireMonkey RSB-3486
CameraControl freezes on all windows FireMonkey RSP-11625
FMX Hint FireMonkey RSP-13220
Disabling FMX Border Icon cause tips to not be displayed FireMonkey RSP-13663
Create double buffered FMX controls FireMonkey RSP-15576
Hints not shown when BorderIcons maximize is disabled. FireMonkey RSP-16240
TGrid: move Tcolumn.Layout property to public FireMonkey RSP-16415
TTetheringAppProfile.SendStream() doesn’t return false if the transmission failed everytime FireMonkey RSP-16430
TEdit ValidChars doesn’t work on Android FireMonkey RSP-16585
Delphi 10.1 Berlin FireMonkey (Mobile platform) – English and Chinese characters arrangement proble FireMonkey RSP-16590
OpenGL we always recreate the shared context just after the form is created FireMonkey RSP-16602
Memory Leak in TTextLayoutNG from FMX.TextLayout.GPU FireMonkey RSP-16664
Toggling Active state of TCameraComponent causes app to crash FireMonkey RSP-16812
TCheckCell.DrawCell should place CheckBox image into center of cell FireMonkey RSP-17083
Pan and Zoom gestures cannot be used simultaneously in Android FireMonkey RSP-17835
Push Notifications from FCM in an Android Service and iOS FireMonkey RSP-18006
Regarding Hint problem again FireMonkey RSP-18265
[Windows] FMX TEdit Component Error!!! FireMonkey RSP-18276
Regarding Control’s ClipChildren property FireMonkey RSP-18795
TBindNavigator::Visible property does not compile in C++ FireMonkey RSP-19037
Hint on TSpeedButton Result Segmentation Fault FireMonkey RSP-19306
Firemonkey Slow Paint [BUFFER IS THE SOLUTION] FireMonkey RSP-19432
GDI Leaks at FMX.Memo.Win FireMonkey RSP-19474
SharedHint Issue/Crash on mobile devices FireMonkey RSP-19479
Add TToolbar ShowHint & ParentShowHint FireMonkey RSP-19507
The size of the TTextLayout text displayed by TTextLayout::ConvertToPath and TTextLayout::LenderLayout is different. FireMonkey RSP-19590
Please change visibility of StyledMemo method FireMonkey RSP-19944
TCurrencyColumn for TGrid does not work properly FireMonkey RSP-20095
Cant get Caret position from mouse in TMemo FireMonkey RSP-20112
TGrid.OnSetValue evoke twice when click TCheckCell FireMonkey RSP-20125
VisualBindings is Slow, should be improved FireMonkey RSP-20325
Add IIsChecked interface to TRadioButton FireMonkey RSP-20374
Add IIsChecked interface to TMenuItem FireMonkey RSP-20410
Add IIsChecked interface to TSpeedButton FireMonkey RSP-20411
Multi-point gradients fail FireMonkey RSP-20497
Androidapi.JNIBridge source appears to be misaligned with binaries FireMonkey RSP-20651
Using Metal instead of OpenGL on Mac / iOS FireMonkey RSP-20667
TListView onChange called twice FireMonkey RSP-20828
FMX.Canvas.TextToPath() on Android behaves differently to Windows FireMonkey RSP-21137
wrong behave of OnClick in TLabel (Firemonkey) FireMonkey RSP-21187
OnResize event is triggered before (Frame)Create is complete FireMonkey RSP-21188
Can’t link xcode9.4 build Static Library framework in firemonkey FireMonkey RSP-21247
Invalid assumption in TTextLayoutNG.CreateFrame FireMonkey RSP-21249
TGestureEventInfo.Distance wrong on multimonitor system FireMonkey RSP-21326
TFrame.Enabled problem FireMonkey RSP-21447
TPushDeviceTokenData must contain the NSData of the token FireMonkey RSP-21539
Dont remove “Translation Tools” (FireMonkey TLang) FireMonkey RSP-21641
Ignoring value TComboTrackBar.DecimalDigits in runtime FireMonkey RSP-21821
TakeFotoFromCameraAction property Editable doesn’t work FireMonkey RSP-21921
FMX.Listbox.TComboBox Sort ignores comparer FireMonkey RSP-21924
Changes to FMX.Memo.Style.pas FireMonkey RSP-22406
dbl-click on TEdit doesn’t select last word FireMonkey RSP-22876
IF UIFileSharingEnabled is true/YES Application Loader rejects iOS-App because of type mismatch FireMonkey RSP-22926
TMemo crash triggered by EndUpdate during destruction FireMonkey RSP-22948
Hints stop displaying after form’s handle recreation FireMonkey RSP-23062
“ld” exited with code 1 when adding TetheringManager to project (Android) FireMonkey RSP-23073
TTimer can suddenly die without any notification FireMonkey RSP-23114
FMX.ListView.OnChange fires even if item doesn’t change FireMonkey RSP-23188
Rio officially only support Android 5+ but minSDK is 19 (4.4) which has problems FireMonkey RSP-23219
Android TNumberbox: onExit gets wrong value FireMonkey RSP-23299
Visibility of TFont.FFontSvc: IFMXSystemFontService FireMonkey RSP-23757
Tooltips and hints do not function for controls placed on layout containers FireMonkey RSP-23835
procedure TCustomForm.PaintBackground; must be set as virtual FireMonkey RSP-23841
Calendar causing crashes FireMonkey RSP-23873
Popup menu closes when clicking on item separator and on disabled items. FireMonkey RSP-23890
FMX [ANDROID] unable to use NDK API beyond 22 – App Crash on 23+ FireMonkey RSP-24016
MapView.OnMarkerDragEnd does not give new position FireMonkey RSP-24168
Access violation on TEdit when TEdit.ShowHint=True and there is text in TEdit.Hint and you tap on it FireMonkey RSP-24246
TCalendar OnDateSelected trigger loop FireMonkey RSP-24324
Inner borders drawn on TEdit, TCombo, TButton, TLabel …… FireMonkey RSP-24392
AV in TFMXViewBase.insertText FireMonkey RSP-24409
miss the declaration of UIAlertController/UIAlertAction in iOSApi.uiKit FireMonkey RSP-24740
Usage descriptions that could be added for macOS FireMonkey RSP-25593
Tab Stops do not follow Tab Order FireMonkey RSP-25964
fmx gpu rendering text property bug FireMonkey RSP-25974
TPopup and TScrollBox is not working well FireMonkey RSP-26042
Implement automatic dark mode switching FireMonkey RSP-26110
TCurrencyColumn wrong display FireMonkey RSP-26184
TCalendar wrong resizing with FireMonkey styles FireMonkey RSP-26332
TDateEdit IsEmpty is not persistent FireMonkey RSP-26353
TLayout Size 0 is not persistent FireMonkey RSP-26361
TBitmapCodecManager.SaveToFile raises AV FireMonkey RSP-26363
FireMonkey scaling of PopupMenu subitems doesn’t work FireMonkey RSP-26572
[macOS 64] Crash due to a tap with three fingers FireMonkey RSP-26642
Android 64 bit app crashes when calling TInAppPurchase.QueryProducts FireMonkey RSP-27140
Any iOS app cannot start without debugger FireMonkey RSP-27146
FMX.Tmediaplayer.Duration is negative. FireMonkey RSP-27166
Firemonkey App compiled with Rio 10.3.3 is not usable on a MacbookPro with macOS10.13 FireMonkey RSP-27197
InAppPurchase.QueryProducts crash App in Android64 FireMonkey RSP-27228
Wrong Decimals in NumberBox when Value is greater than 32767 FireMonkey RSP-27282
incorrect declaration export function JSStringCreateWithUTF8CString FireMonkey RSP-27340
NSLocale missing a number of methods FireMonkey RSP-27353
FMX.TListBoxGroupHeader – default FALSE value in TextSettings.WordWrap not works FireMonkey RSP-27470
Firemomkey – android. Onkeyup event not called FireMonkey RSP-27496
Support newer Android NDK than 17 FireMonkey RSP-27509
Bad TLabel text rendering quality on some Android devices FireMonkey RSP-27520
TTreeView expanding items during begin update does not work FireMonkey RSP-27739
InputQuery on iOS should not show first prompt as message when using two prompts FireMonkey RSP-27777
ITMS-90809: Deprecated API Usage UIWebView warning from Apple FireMonkey RSP-27902
Bug in rendering ListView items FireMonkey RSP-27917
TNumberCell. Shortcoming in the validation of valid characters FireMonkey RSP-28057
FMX and VCL default exception handlers produce uninformative error messages with EAggregateException (as raised by ITask.Wait etc.) FireMonkey RSP-9539
Circular references when using 3D controls FireMonkey, FireMonkey\3D Components RSP-9785
FMX Hint Cannot display if the form is transparent FireMonkey, FireMonkey\Components RSP-12907
C++Builder 10 Seattle – Hint function will fail FireMonkey, FireMonkey\Components RSP-13065
Hint is not shown if there is no Maximize button in form frame FireMonkey, FireMonkey\Components RSP-13218
classes.dex contains superfluous gingerbread dialog classes FireMonkey, FireMonkey\Runtime RSP-13159
TApplicationEvent.WillBecomeInactive is called after TApplicationEvent.EnteredBackground for the Android platform FireMonkey, FireMonkey\Runtime RSP-18686
provider_paths.xml is missing entries FireMonkey, FireMonkey\Runtime RSP-26950
Performance optimizations – TStyledControl.FindStyleResource FireMonkey, FireMonkey\Styles RSP-10814
LongTap ​gesture event in Android has no TInteractiveGestureFlag.gfEnd​ FireMonkey, IDE RSP-23806
BannerAd header error on Windows targeted android project FireMonkey, Install RSP-20929
TNotificationCenter.PresentNotification not working on iOS10 devices (for R104) FireMonkey, RTL RSP-16762
Multi-platform App crashes on OSX when Abort is called and ‘posix.stdlib’ is in ‘uses’ section FireMonkey, RTL, RTL\Delphi RSP-19307
GLHasAnyErrors is a little useless as it’s not show the error code FireMonkey, RTL, RTL\Delphi RSP-21577
The iOS framework interface for NSNotification is missing ‘object’ property FireMonkey, RTL, RTL\Delphi RSP-24206
Light and dark theme flag for VCL and FMX styles FireMonkey, VCL RSP-21531
Replace Internet Explorer based TWebBrowser with IWebView2 FireMonkey, VCL RSP-27543

Head over and check out the full list of updates for Delphi 10.4 Firemonkey.

TStringList and TFDMemTable Contribute To The Powerhouse That Is Cross Platform Delphi Development In FireMonkey

$
0
0
Delphi Android IOS Macos Windows OSX Linux

Delphi Android IOS Macos Windows OSX LinuxOne of my all time favorite objects in Delphi is TStringList which I have been using for over 20 years. Most apps I write with Delphi usually contain at least one usage of TStringList. I rarely use arrays as TStringList usually fills that space in my toolchest (the updated array syntax makes them tempting though). TFDMemTable is becoming the new TStringList for me though as now I rarely write an app that doesn’t use a TFDMemTable at least once. Yet TStringList is still use at least once as well!

TStringList is such a versatile object because it supports easily returning it’s contents as a string and saving/loading those same contents from a file. It easily handles key value pairs, splitting strings, and holding whatever string list (as the name implies) in memory. It handles sorting and even custom sorting. It can hold a list of objects that are tied to a string name and it can even free those objects automatically with the OwnsObjects property. It can ignore duplicates like an index database table. It can even be easily searched using IndexOf or Find.

Some of my favorite TStringList methods are TStringList.SaveToFile(), TStringList.LoadFromFile(), TStringList.SaveToStream(), TStringList.LoadFromStream(), TStringList.Append(), TStringList.AddObject(), TStringList.AddStrings(), and TStringList.IndexOfName(). While the properties I use most are probably TStringList.Text, TStringList.ValueFromIndex, and TStringList.Values. You can find a full breakdown of all of these methods and properties over in the Embarcadero DocWiki for TStringList.

The details are lost but I think I even used TStringList and the legendary FastStrings library at the core of a search engine index I built at the dawn of the new millennium with ~100,000 records. The results were returned in a second or two.

TFDMemTable Data IO

Lately I’ve been using TFDMemTable because it allows me to easily LiveBind bidirectional data to visual controls. TFDMemTable is a in memory database table that is part of the FireDAC (data access library) which is available in with FireMonkey in Delphi and C++Builder. TFDMemTable supports multiple columns (not just the 2 key value columns of TStringList), indexes, searching, exporting and importing from JSON, XML, binary, and even CSV format (through TFDBatchMove). TFDMemTable can be used as a visibility state machine for buttons through livebindings (see demo).

TFDMemTable is also the recipient of JSON that is automatically imported and consumed from TRESTResponse and TRESTResponseDatasetAdapter. The JSON can be imported directly, based on a specific root field name, or even flatted so all of the fields appear as columns. TFDMemTable can even be setup as persistent so that it automatically loads and saves the data contained within it (see demo) just like as if you had used SQLite.

TFDMemTable LocalSQL And Performance

I’ve easily used over 100,000 records in a TFDMemTable on the Windows platform and it was still pretty fast. TFDMemTable can be defined as a virtual table using the TFDLocalSQL component (see demo) and then queried as if it was an SQLite table using TFDQuery and TFDTable. There are a number of performance tuning tricks for TFDMemTable available in the Embarcadero DocWiki. These tricks include turning off transaction logging, setting a record maximum, and wrapping changes in a BeginBatch EndBatch clause. When I utilize TFDMemTable with a large number of records I usually deploy the code provided in the DocWiki and see significant performance improvements.

TFDMemTable Searching

There are a number of different ways to search a TFDMemTable. Some of them require an index and some of them do not. The two main ways I’ve used are TFDMemTable.Locate() and TFDMemTable.Lookup(). The Locate() function moves the cursor of the dataset to the record if it is found while the Lookup() function does not move the cursor to the found record and instead returns the found data. Locate() and Lookup() are not unique to TFDMemTable and can be used with most FireDAC based datasets. There is a third way to search a TFDMemTable and that is through the TFDMemTable.FindKey() method. FindKey() requires an index and I’ve heard it is faster than Locate() but I haven’t used it quite as much as Locate().

As we’ve seen in the above post it is really easy to work with text based files and create structured data files like JSON, XML, and CSV in Delphi FireMonkey using both TStringList and TFDMemTable. These two objects work cross platform on Android, IOS, Macos, Windows, and Linux and can really increase developer productivity through their use. Do you use TStringList and TFDMemTable? If not what do you use instead and why?

Top Tips And Tricks To Speed Up Development With Delphi 10.4 FireMonkey On Android and IOS

$
0
0
Delphi 10.4 Sydney FireMonkey Tips

Delphi 10.4 Sydney FireMonkey TipsREST Debugger Tool

The REST Debugger is a UI based app that ships with Delphi 10.4 and allows you to easily craft REST requests. You can enter various login information and parameters and then see the results parsed into a grid based on the returned JSON. The JSON can even been flattened (using the Nested setting) so that all of JSON fields are available in the grid columns. This is great but now is where the magic happens. You can click Copy Components in the REST Debugger and then directly paste them onto your form or datamodule in Delphi 10.4 Sydney (this also works with C++Builder). It will automatically create all of the TRESTRequest components plus pipe it directly into a TFDMemTable where you can utilize the data at both design time (in the IDE) and runtime after a simple TRESTRequest.Execute call.

http://docwiki.embarcadero.com/RADStudio/en/REST_Debugger_Tool

MonkeyBuilder

If you are using Delphi or C++Builder to publish to the apps stores (verses ad hoc enterprise deployment) MonkeyBuilder can be a huge time saving utility. It offers “Single-click build/deployment of iOS and Android apps”, “Generates Android *.aab 32bit/64bit app bundles”,
“Automatically uploads *.ipa files to AppStoreConnect”, “Generate all required icons from a single 1024×1024 *.png file with the Icon Generator feature”, and a bunch of other features to streamline the app deployment process. If you’ve ever wasted time getting your apps into the App Stores take a look.

https://www.monkeybuilder.io/

TFDMemTable Design Time Edit DataSet

Delphi 10.4 has a feature with TFDMemTable where you can edit the data inside a TFDMemTable at design time. This feature can really speed up development because you can edit and bake data directly into a TFDMemTable during development. It also allows you to easily investigate the contents of a TFDMemTable at design time if you are using some of the other design time features like Executing a TRESTRequest at design time. Additionally, you can use the feature to create data at design time and LiveBind it to controls. One example of this is using TFDMemTable to hold the state of buttons (Visible True and False) across tabs. Instead of writing a bunch of state change code to toggle button visibility (especially on Android and IOS devices) you just set up the states at design time with the Edit DataSet feature and you’re done.

https://flixengineering.com/archives/398

Alcinoe Component Library For Delphi

If you’re looking to do video with Delphi FireMonkey it can be overwhelming because of all of the different formats (across devices) and building a high quality video player is not for the faint of heart. The Alcinoe component library is an open source library that has already done a lot of the hard work for you to make video work great in FireMonkey on Android and IOS. On top of the video player functionality it also offers “WebRTC delphi wrapper, native ios/android TEdit, improved firemonkey controls, Firebase cloud messaging, Android/ios facebook sdk login, Json/Bson Parser, ImageMagick wrapper, MongoDb client, and much more”. It appears to be somewhat widely used as it has a high GitHub Stars count as well.

https://github.com/Zeus64/alcinoe

100 Cross Platform Samples For FireMonkey

There are over 100 cross platform samples available in one of our GitHub repos. It features a lot of simple apps but also some more complex tricks like saving a TFDMemTable to SQLite, encrypting an SQLite database, a drawing app, an emoji navigator app, a mail app, a music player, an instagram style feed interface, an RSS newsreader, a notes app, persistent TFDMemTable sample, a connectivity tester, DNS lookup, ping sample, and many many more. There are a lot of tricks used in the samples utilizing LiveBindings (like the button visibility state trick) and even control drawing buffering with TScene. The first 50 samples are also available in C++.

https://github.com/FMXExpress/Cross-Platform-Samples

https://github.com/FMXExpress/CPP-Cross-Platform-Samples

TFrameStand / TFormStand

TFrameStand and TFormStand are an easy way to break up your app into “screens” (frames and forms). The T*Stand components provide nice transitions between the screens and make it easy to wire up the screens to navigation via code. TTabControl can also be used to do something similar but visually. For large projects with a lot of frames TFrameStand and TFormStand can be a lifesaver. It keeps the memory usage of your app down by not having all of the interface controls active at the same time. I don’t directly use TFrameStand but I did use the principles behind it using the TTabControl way to easily handle over 30 screens in an enterprise app for IOS. It helped to keep IOS from closing the app due to low memory on some of the original Ipad devices.

https://github.com/andrea-magni/TFrameStand

Boyer-Moore String Search

If you are looking to get some extra speed while searching through strings using native Object Pascal code there are some Boyer-Moore implementations that can help out. Apparently, it depends on your use case whether you get extra speed out of this algorithm or not but in the one case I tested I saw a speed increase of over 10%. Ten percent may not sound like a lot until you start talking about tasks that take a long time (like an hour). I’d rather wait 54 minutes than 60 minutes for a task to complete.

Object Pascal Boyer-Moore Version On StackOverFlow

Alternate Object Pascal Boyer-Moore Version On Delphi Dabbler

For Old Versions Of Delphi There Is The Original FastStrings Library

Delphi Javascript Bridge For TWebBrowser

If you’re looking to build apps in a similar fashion to how Electron apps are put together there is an open source library called ScriptGate which can really help out there. Basically you can use the native WebView control of the device (instead of Electron’s Chromium) and have Javascript call out to Delphi for access to the file system, notifications, and high performance code. ScriptGate makes it easy to build and ship such and app with Delphi. Electron apps are known for their high inefficient memory usage and Delphi provides a solution to that through ScriptGate. Delphi FireMonkey can compile to Windows, macOS, and Linux just like Electron. Additionally, Delphi also supports Android and IOS. You can leverage the power of the Delphi RTL from within your Electron like apps.

https://bitbucket.org/freeonterminate/scriptgate/src/master/

Significant Update Available For Delphi FireMonkey 10.4.1 On Android, IOS, OSX, Windows, And Linux

$
0
0

The latest version for FireMonkey is available in Delphi 10.4.1 and C++Builder 10.4.1. There are a massive number of fixes included which touch all major supported operating systems including Android, IOS, MacOS, Windows, and Linux. On the IOS side there was an API change for THTTPClient in the form of “The NSURLConnection API was deprecated by Apple on Mac OS X 10.11 and iOS 9, but it was still used in our HTTP Client Library. 10.4.1 introduces support for the newer NSURLSession API on both platforms. This change also addresses issues with proxy support on macOS.” Additional enhancements were made to the new TMemo on Windows and the new TMemo was also now upgraded on MacOS. Much of the “focus is on TMemo IME mode for Korean, Japanese, and Chinese (among other languages) but there are also general improvements in performance, stability, scrolling behavior, mouse selection, copy and paste, and more.” Lastly, these enhancements were added for FireMonkey:

  • The Storyboard Launch Screen has added support for icon sizes required by Apple for iOS.
  • Improved permissions management for iOS Push notifications
  • TListView OnItemClick fires even if already selected
  • Fixed an issue with inconsistent values for TMediaPlayer.Duration on Android
  • iOS WebBrowser issue with external links
  • TStringGrid OnCellDblClick event
  • TListView Checkmark Accessory disappearing

Here is a list of bug fixes as they relate to FireMonkey and cross platform development with Delphi 10.4.1:

Delphi 10.4 ListView, TClientDataSet bug in Android 10 Data, Data\Midas, FireMonkey RSP-29482
Simulator’s devices with version 11.3 doesn’t work Debugger, FireMonkey RSP-20589
Build Error Unit “Androidapi.JNI.PlayServices.Tasks’ not found. when I build Android. File Delivery, Install\GetIt RSB-4074
Roate text is not show on mobile devices FireMonkey RSP-30348
Can’t turn on camera function FireMonkey RSP-30273
LISTVIEW IOS DARK MODE FireMonkey RSP-30130
Double Click on TStringGrid FireMonkey RSP-29863
Setting Parent to nil for a frame that has a TMemo causes a crash FireMonkey RSP-29798
Issue with deploying apps to AppStoreConnect FireMonkey RSP-29692
FMX: An error occurs when undoing twice after pasting a string to Memo control FireMonkey RSP-29633
Metal backend does not support 8-bit textures FireMonkey RSP-29563
FMX TMediaPlayer.Duration nonsense value on Android FireMonkey RSP-29561
Display rotated text, some angles cannot be displayed FireMonkey RSP-29170
iOS App simply crashes with a TWebBrowser on it. FireMonkey RSP-29129
Metal is slow compare to the old quartz canvas under macos FireMonkey RSB-4208
Crash with TRadiantPathShape with metal under macos FireMonkey RSB-4207
Crash with TReflectionEffect with metal under macos FireMonkey RSB-4206
FMXTee.Canvas not compilable due to FreeAndNil change FireMonkey RSP-28780
FMX.DAE.Schema.MathTypes and FMX.DAE.Schema.GLES are missing FireMonkey RSB-4098
TabOrder information lost on parent change FireMonkey RSB-4081
TBitmap.Canvas does not work properly on Metal macOS FireMonkey RSB-4019
Windows listview font bigger at first time FireMonkey RSB-3859
TWebBrowser losing focus on EvaluateJavaScript (Android) FireMonkey RSP-27622
iOS dark mode messes up buttons with glyphs FireMonkey RSP-27620
The use of webBrowser and BannerAd on the same form makes bannerAd invisible FireMonkey RSP-27406
Edit controls appear focused when they should not FireMonkey RSP-27378
TMapview with zoom error in Delphi 10.3.3 Android FireMonkey RSP-27261
Assigning a transparent TBitmapSurface does not make it transparent FireMonkey RSP-27111
OnKeyUp does not work well on Mac FireMonkey RSP-27066
Unable to press button after iOS virtual keyboard is entered #2 FireMonkey RSB-3473
ClientArea painting problem when MainMenu wraps or unwraps. FireMonkey RSP-26601
Unable to press button after returning from suspend. FireMonkey RSB-3431
TDateEdit.ClosePicker method fails on Android FireMonkey RSP-26301
Accelerators also trigger on Ctrl, not just Alt FireMonkey RSP-26074
Dismissing TDialogService.MessageDialog causes access violation FireMonkey RSP-26009
Changing TGrid.RowCount from code makes the size adjustment strange FireMonkey RSP-25677
EvaluateJavaSript procedure causes browser flickering on Android app FireMonkey RSP-25660
TMemo – some weird issues – flickering and incorrect srollbar FireMonkey RSP-24744
TGeocoder is not returning Locality field with city name FireMonkey RSP-24431
Accessibility Package does not compile FireMonkey RSP-24082
TWebBrowser only loads PDF first time on Mac OSX FireMonkey RSP-23976
TEdit readonly property if ControlType=Platform has no effect FireMonkey RSP-23870
FMX.ListView.OnChange fires even if item doesn’t change FireMonkey RSP-23188
TMemo crashes when system time changed FireMonkey RSP-23148
Memoryleak in TControl3D FireMonkey RSP-21549
TViewport3D align errors with TTabControl on Android and iOS FireMonkey RSP-21471
TFlowLayout problems FireMonkey RSP-21442
TMemo performance problem with big data FireMonkey RSP-21376
TListView onChange called twice FireMonkey RSP-20828
Live Bindings does not work on TSpinBox and TNumberBox controls FireMonkey RSP-20661
TMemo bug FireMonkey RSP-20576
TTreeview.Clear don’t clear Selected node FireMonkey RSP-20299
[FMX] In TMemo the cursor does not correspond to the alignment of the text. FireMonkey RSP-19843
Tmemo Problem – CharCase ecUppercase or ecLowerCase FireMonkey RSP-19203
Tmemo not realign it’s content when vkback is puched FireMonkey RSP-19119
Android App Crash Tedit segmentation error 11 FireMonkey RSP-18757
TCustomForm.RecalcControlsUpdateRect; bad source code FireMonkey RSP-18200
FMX-TMemo Undo-Bug FireMonkey RSP-17870
TPrintDialog.Copies: property value doesn’t set in the print dialog FireMonkey RSP-16274
[FMX]TWebBrowser.LoadFromStrings win and Phone need different charset FireMonkey RSP-15686
Regression in TModel3D – Load MeshCollection FireMonkey, FireMonkey\3D Components RSB-2295
TModel3D generiates error when loading DAE file that works with10.2.2 FireMonkey, FireMonkey\3D Components RSB-2225
Design time issue when working with TGridPanelLayout FireMonkey, FireMonkey\Components RSB-1911
missing test on FMX.WebBrowser destroy (extra call of destructor) FireMonkey, FireMonkey\Components RSP-14724
FMX Memo Scrolling Bug FireMonkey, FireMonkey\Components RSP-12137
iOS camera needs permission FireMonkey, FireMonkey\Components, FireMonkey\Runtime RSP-29813
iOS Push notifications doesn’t working FireMonkey, FireMonkey\Runtime RSP-29793
TCameraComponent ignores set resolution on Re-Activate FireMonkey, FireMonkey\Runtime RSP-27734
FMX TFrame owned components property TabOrder values being lost. (VCL side is ok) FireMonkey, IDE RSP-29552
SDK API-Level Location folder empty after install Sydney FireMonkey, IDE RSP-29547
Default TabOrder= -1 for FMX [REGRESSION] FireMonkey, IDE RSB-3944
[macOS 64] Failure to draw a pattern on a canvas when GlobalUseMetal = true FireMonkey, RTL, RTL\Delphi RSB-3552
TCustomContextOpenGL.BuildShader crash if acode contain non-preprocessor tokens FireMonkey, RTL, RTL\Delphi RSP-16829
OnCellDblClick FireMonkey\Components\Grid RSP-29247
Can’t add icon for App Store in project options IDE, IDE\Build System, IDE\Deployment RSP-23042
Android support completely broken (on Devices running Android 6/7) RTL, RTL\Delphi, RTL\Delphi\Other RSB-4345
AV when opening a notification on iOS RTL, RTL\Delphi, RTL\Delphi\Other RSP-30335
HttpValidateServerCertificate give different data under iOS/Android/Windows RTL\Delphi\Net RSP-27220
TNetHttpClient should use proxies on macOS RTL\Delphi\Net RSP-26426
TNetHTTPClient proxy settings works under Windows but not under MacOS RTL\Delphi\Net RSP-19621

Head over and check out the full list of fixes and updates available in FireMonkey 10.4.1.

The post Significant Update Available For Delphi FireMonkey 10.4.1 On Android, IOS, OSX, Windows, And Linux first appeared on Delphi XE8 10 Seattle Berlin Tokyo Rio Sydney Firemonkey, Delphi Android, Delphi IOS.


Powerful Cross Platform Email App Sample In Delphi 10.4.1 FireMonkey For Android And IOS

$
0
0

Delphi FireMonkey Cross Platform Email App SourceOver on Github there is a sample email client which uses IMAP and SMTP for receiving and sending mail. It has basic features like viewing, composing, and sending mail. Full source code is available and it should run on Android, IOS, OSX, Windows, and Linux. It uses the Indy library which ships with Delphi 10.4.1 for IMAP and SMTP. The Indy library for email is quite extensive but only the most basic features were added into the app because it is a sample. Indy is also available for use from C++ from within C++Builder.

The email app is a sample app which is part of the 100 cross platform samples set. It was mainly tested on Windows so there may need to be small tweaks made for it to run smoothly on the other platform. It uses TFDMemTable to store settings and the mail itself. It only took 585 lines of code to build the entire app (obviously the libraries it uses are a lot more code).

Here is some sample code which shows how simple it is to send an SMTP message via Indy:

var
LMessage: TIdMessage;
LAddress: TIdEmailAddressItem;
begin
  // send
  LMessage := TIdMessage.Create(nil);
  try
    LAddress := LMessage.Recipients.Add;
    //LAddress.Name := '';
    LAddress.Address := SendToEdit.Text;
    //LMessage.BccList.Add.Address := '';
    //LMessage.From.Name := '';
    LMessage.From.Address := SendFromEdit.Text;
    LMessage.Body.Text := SendMemo.Lines.Text;
    LMessage.Subject := SendSubjectEdit.Text;

    IdSMTP1.Host := SettingsFDMemTable.FieldByName('SmtpHost').AsString;
    IdSMTP1.Port := SettingsFDMemTable.FieldByName('SmtpPort').AsInteger;
    IdSMTP1.Username := SettingsFDMemTable.FieldByName('SmtpUser').AsString;
    IdSMTP1.Password := SettingsFDMemTable.FieldByName('SmtpPass').AsString;
    case SmtpSSLCB.ItemIndex of
      -1,0: IdSMTP1.UseTLS := utNoTLSSupport;
      1: IdSMTP1.UseTLS := utUseExplicitTLS;
      2: IdSMTP1.UseTLS := utUseImplicitTLS;
      3: IdSMTP1.UseTLS := utUseRequireTLS;
    end;
    IdSMTP1.Connect;
    try
      IdSMTP1.Send(LMessage);
    finally
      IdSMTP1.Disconnect
    end;
  finally
    LMessage.Free
  end;

Head over and download the full source code for the app on Github for Delphi 10.4.1 FireMonkey on Android and IOS.

The post Powerful Cross Platform Email App Sample In Delphi 10.4.1 FireMonkey For Android And IOS first appeared on Delphi XE8 10 Seattle Berlin Tokyo Rio Sydney Firemonkey, Delphi Android, Delphi IOS.

Powerful Commercial Gorilla3D Framework Upgraded For Delphi FireMonkey On Windows And Android

$
0
0

The Gorilla3D Framework for FireMonkey has been updated with significant new features and support for Android64 (in addition to Windows). Gorilla3D is a powerful, easy to use, and modern 3D framework for Delphi and C++ Builder FireMonkey. IOS and OSX support are not mentioned. This is a commercial product but source code is available. It’s nice to see some significant improvement in 3D solutions for FireMonkey with this solution. The main new features in this release are listed as:

  • 10.4.1 support incl. ANDROID64 support
  • WBOIT Rendering for order-independent rendering (no sorting of elements anymore)
  • TGorillaPhysicsCharacterController
  • TGorillaFirstPersonController, TGorillaThirdPersonController
  • TGorillaAnimationController
  • TGorillaTriggerPointsManager
  • TGorillaAudioManagerController
  • Multiple sources in billboarding
  • Texture format support for 2D, 3D and CubeMap textures
  • Individual blend controlling in your render pass
  • New primitives: torus, cone, tube, capsule
  • New 3D formats: gltf, babylon, sketchfab
  • more materials inherited from TGorillaDefaultMaterialSource
  • New Materials: TGorillaSharedMaterialSource, TGorillaSharedAtlasMaterialSource
  • New capsule physics collider
  • Bugfixed terrain/mesh collider
  • Skybox is now rendered from cube map
  • 100+ bugfixes

Key-Features

Here a list of the currently implemented features inside the framework.

  •   Skin-, Skeleton- und Vertexanimations for 3D Meshes (Key-Animations)
  •   Integrated and fast Q3 Physics Engine (with collision detection)
  •   Materials: textures, normal-mapping, vertex-color, phong-, blinn-, lambert-materials, water and reflection, layered materials, splatmaps, terrain-material, atlas-texturing
  •   Loading complex multi-mesh models with UV-textures
  •   Logical model management (independent from FireMonkey tree), to manage a large amount of meshes and to instanciate separatly
  •   Flexible particle-system with influencer-classes (up to 100K particle at runtime)
  •   Shadow-Mapping and Variance-Shadow-Mapping (experimental)
  •   Frustum Culling
  •   Fog rendering
  •   Cubemap-Textures and Texture3D support
  •   Mesh-Multiplication with multiple sources for grass and trees
  •   Order-Independent Rendering (WBOIT) for better transparency effects
  •   Multipass-Rendering
  •   Bokeh/Depth-Of-Field
  •   Skybox-support
  •   Terrain rendering: from height-maps and procedural algorithms (Diamond-Square, Perlin-Noise, …)
  •   SphereTerrain variation of default terrain component
  •   CVLOD Terrain for large terrain with chunks and auto-focus level of detail detection
  •   New Point3D-, Quaternion-, Transformationsmatrix- und VertexKey-Animationen
  •   FMOD AudioManager for professional audio playback
  •   AssetsManager with packaging system
  •   Flexible DialogueSystem: load, save and edit at runtime
  •   Flexible InventorySystem: load, save and edit at runtime
  •   Flexible SkillSystem: load, save and edit at runtime
  •   InputController for easy usage of hotkeys and input sequence detection
  •   FirstPerson- and ThirdPerson character controllers
  •   PhysicsCharacterController combines InputController, CharacterController (FirstPerson/ThirdPerson), AnimationController, AudioManagerController, TriggerPoints controlling and Q3 Physics to build a modern 3D game with physics collision.
  •   GorillaScript for easy scripting implementation and using FMX and Gorilla3D at runtime
  •   Fast 3D model loading
  •   Compatible with existing FireMonkey components
  •   Platform-independent: WIN32, WIN64, ANDROID, ANDROID64
  •   Formate: G3D, X3D, X3DZ, X3DVZ, OBJ, STL, DAE, FBX, glTF, Babylon, Sketchfab
  •   C++ support by header and lib files

Head over and check out all of the info about Gorilla3D for Delphi FireMonkey!

The post Powerful Commercial Gorilla3D Framework Upgraded For Delphi FireMonkey On Windows And Android first appeared on Delphi XE8 10 Seattle Berlin Tokyo Rio Sydney Firemonkey, Delphi Android, Delphi IOS.

DelphiCon 2020 FireMonkey Sessions Available Starting November 19

$
0
0

Embarcadero is having a Delphi online event in November 2020 featuring two FireMonkey sessions. The first session is around a new FireMonkey book called Delphi GUI Programming with FireMonkey by Andrea Magni. The second session called FireMonkey and Multi-Device Panel is a roundtable featuring Marco Cantù, Ray Konopka, Kelver Merlotti, David Millington and Olaf Monien. The sessions will be available after the date for on demand viewing. There are also a lot of other Delphi sessions available at Delphicon 2020.

  • Delphicon 2020 Keynote
  • Delphi at the University: Insights for Students and Teachers
  • High Performance Delphi
  • Functional Programming With Delphi
  • Delphi Product Management & Architect Panel
    Real-world CodeSite Logging Techniques
  • Windows VCL Panel
    Leveraging High DPI in VCL Applications
  • FireDAC Database Access Panel
  • Code Faster in Delphi
  • Upgrade and Migration Panel
    Delphi GUI Programming with FireMonkey
  • Powering the Web with Delphi
  • Introduction to Spring4D – Taking Delphi Development to the Next Level
  • FireMonkey and Multi-Device Panel
  • Delphi in Education Panel

Head over and watch the new Delphicon 2002 FireMonkey sessions from Embarcadero!

The post DelphiCon 2020 FireMonkey Sessions Available Starting November 19 first appeared on Delphi XE8 10 Seattle Berlin Tokyo Rio Sydney Firemonkey, Delphi Android, Delphi IOS.

FireMonkey 10.4.2 Features Updated iOS 14, Android 11, And macOS 11 Support Plus Hundreds Of Fixes

$
0
0

The latest version for FireMonkey is available in Delphi 10.4.2 and C++Builder 10.4.2. There are a massive number of fixes included which touch all major supported operating systems including Android, IOS, MacOS, Windows, and Linux. It features updated support for iOS 14 in the App Store and ad-hoc enterprise deployment. Additionally, it features support for macOS 11 Big Sur on Intel and 64-bit App Store and enterprise deployment. Finally, it supports Android 11 and App Bundle format improvements. You can check out the full release notes here. Lastly, these enhancements were added for FireMonkey:

  • MSIX support for Windows Store
  • Enhanced Code Insight using the LSP technology for Delphi and C++
  • Many Improved IDE features and a new IDE style
  • A silent installer
  • Delphi RTL and C++ RTL improvements, including Dinkumware STL
  • Quality improvements for Delphi compiler speed, the C++ toolchain, FMX, database access, HTTP, and REST client libraries, Parallel Programming Library, SOAP, the Migration Tool, and more.

Here is a list of bug fixes as they relate to FireMonkey and cross platform development with Delphi 10.4.2:

Add support for Xcode 12, macOS 11 Big Sur and iOS 14 when officially released by Apple Compiler, Compiler\C++, Compiler\Delphi, FireMonkey RSP-30806
No Warning Message when you Publish 64bit Android App on a 32Bit OS Android Compiler, Compiler\Delphi RSP-31676
MacOS64: Raising an exception causes application and PAServer to crash Compiler, Compiler\Delphi RSP-31667
Delphi gets stuck on “Installing apk” Compiler, Compiler\Delphi, FireMonkey RSP-27424
Android app compiled on Delphi 10.4.1, does not work on Google Pixel with Android 11. Compiler, Compiler\Delphi, FireMonkey RSP-31398
Android App closes/crashes if an exception is raised on TListView:OnItemClickEx-event Compiler, Compiler\Delphi, FireMonkey RSP-16639
PAServer errors FireMonkey RSB-4353
Access violation with a Styles TDateTimeEdit FireMonkey RSP-18153
TEdit with ControlType = Platform bringtofront method does not work FireMonkey RSP-13190
iOS-App crashes when Virtual Keyboard is on and when switching to another app which hides the keyboard FireMonkey RSP-30002
Texture are lost FireMonkey RSP-16121
Motion sensor does not work on Android 7 FireMonkey RSP-18644
TTrackBar does not track correctly when Tracking is false FireMonkey RSP-32116
ListView.OnItemClickEx.ItemIndex bug with non standard object FireMonkey RSP-31407
Caret (^) is not displayed in iOS. FireMonkey RSP-31897
Confusing ifdef elseif android64 FireMonkey RSP-31617
TFlowLayout affected by children’s Margins.Top FireMonkey RSP-32321
Device refresh button in toolbar broken. FireMonkey RSP-30800
errro msgs FireMonkey RSP-31365
Default ICNS file must be upgraded [Mac Store] FireMonkey RSP-30733
Firebase push notifications for iOS FireMonkey RSP-25637
Modal Forms are not modal on macOS FireMonkey RSB-2866
[FMX] TListBox FireMonkey RSB-4022
Typing after selecting a string then selected string will not be removed.(in OSX TEdit or TMemo) FireMonkey RSB-3596
FMX TPopup actions not updated FireMonkey RSP-21495
(TTextLayout::ConvertToPath -> TPath::MakeScreenShot) Text drawing is distorted FireMonkey RSP-19288
Windows can be trapped behind other windows when using showmodal FireMonkey RSP-26434
FMX. Tstringgrid customeditor access violation on change value FireMonkey RSP-24257
Updating a filtered TListView is not working FireMonkey RSP-16186
TListView refresh issue in combination with TClientDataset FireMonkey RSP-25930
FlowLayout child components order is totally random FireMonkey RSP-32009
10.4.1 regression: tflowlayoutbreak doesn’t work anymore FireMonkey RSP-31816
Access Violation during program finalization in FMX.Controls.TControl.AncestorParentChanged FireMonkey RSP-32205
TListView with LiveBinding crash with Android11 FireMonkey RSP-31548
TCustomScrollBox.InternalAlign sometimes shows scrollbar due to Single calculations FireMonkey RSP-31976
D10.4.1 TDateEdit dialog for select date is different than previous version D10.3 FireMonkey RSP-31993
Livebinding Designer does not detect TListView change of ItemAppearance.ItemAppearance FireMonkey RSP-31578
FMX [ANDROID] FMXDefaultDialogFragment.onCreate App Crash FireMonkey RSP-23962
ComboBox doesn’t scroll to make the selected item visible. FireMonkey RSP-18749
[Windows] FMX TEdit Component Error!!! FireMonkey RSP-18276
Sensors do not work in android FireMonkey RSP-24713
IOS: Premium Style TSpeedButton With StyleLookup segmentedbuttonright Out Of Alignment FireMonkey RSP-20034
CheckColumn at most right sets to default width FireMonkey RSP-20878
OpenDialog causes Invalid Argument when used on modal dialog macOS FireMonkey RSP-26517
FMX library/WIC is unable to open readonly or already opened images FireMonkey RSP-14171
Project raised exception class EJNIException with message ‘java.lang.NullPointerException: Attempt to invoke virtual method ‘boolean java.lang.String.contains(java.lang.CharSequence)’ on a null object reference FireMonkey RSP-24695
CMD+Q invoke onFormCloseQuery two times on macOS 32/64 FireMonkey RSP-26004
Screen.displayCount=0 for Fire HD 10 (9.Gen) FireMonkey RSP-26563
TCustomMultiResBitmap.ItemByScale is little slow FireMonkey RSP-15542
Transfer of Cookies to TWebBrowser FireMonkey RSP-22920
Can’t run Firemonkey-App on Android 7.1.2 FireMonkey RSP-20273
You are not allowed to use location services FireMonkey RSP-16406
Menu of MainMenu pops up sometimes on a wrong screen FireMonkey RSP-21871
Atom leak in FMX.Platform.Win FireMonkey RSP-16557
Date / Time Picker for iOS 14+ (14.4) FireMonkey RSP-32342
Camera Component threading issue Android FireMonkey RSP-31238
Native iOS TComboBox with 28+ items will crash FireMonkey RSP-31235
Change to TControl.SetNewScene causes virtual call to destroyed object FireMonkey RSP-31202
[macOS][Metal]TMemo and wordwrap FireMonkey RSP-31134
TGrid shows current time instead of the value FireMonkey RSP-31119
TListview crash on swipe to delete (iOS) FireMonkey RSP-31111
CloseQuery causes exception in Firemonkey on styled form FireMonkey RSP-31074
TBufferedLayout has small graphical issues FireMonkey RSP-31069
Incorrect TChart drawing on macOS Big Sur FireMonkey RSP-30202
TListView – Missing OnChange when switching entries with mouse click FireMonkey RSP-30866
Adding text to TMemo with sLinebreak-signs crashed the Memo FireMonkey RSP-30846
Behaviour different to 10.3.3 and wrong for Inserting text in TMemo FireMonkey RSP-30845
Duplicate resource FireMonkey RSP-30637
[iOS] TiOSGeocoder.GeocodeForwardHandler can cause a crash FireMonkey RSP-30483
Empty app crashing on Android 10 FireMonkey RSP-30546
Delphi 10.4.1-FMX Combo-box and Combo-edit useless becouse of latency in drop-down FireMonkey RSP-31383
TTextureStyle.MipMaps is de facto not supported on Metal FireMonkey RSP-28576
Newly created TBItmap content in not zeroed on Metal FireMonkey RSP-28895
Metal cause my ios apps to be jerky slow and flickerl FireMonkey RSP-28340
TListBox selection bug FireMonkey RSP-28235
LocationSensor is not useable FireMonkey RSP-29859
No changing center point in Brush Gradient (at least in D2D version), its fixed. FireMonkey RSP-29242
If TButton.Default=True, click is still executed even if it TButton.Enabled=False FireMonkey RSP-29788
Circumflex ^ character in edit controls not visible FireMonkey RSP-30030
TabOrder property of TPanel not saved when part of TFrame FireMonkey RSP-29989
Pressing Enter key in TComboEdit causes text to change unexpectedly FireMonkey RSP-29429
Firemonkey android form onclose no works with TCloseAction.caNone FireMonkey RSP-29529
iOS: Virtual Keyboard not switching mode when changing focus between text input controls FireMonkey RSP-30045
TMemo with Word Wrap displays Caret at start of memo in Android and iOS FireMonkey RSP-29905
Raise Exception causes application shut down under MacOS BigSur Beta2 FireMonkey RSP-30000
Custom scheme URL not working on iOS FireMonkey RSP-29996
Keyboard not showing on iOS FireMonkey RSP-29573
(Metal) 3D forms don’t render 3D controls unless there are also 2D controls on the form. FireMonkey RSP-29537
TSpeedButton does not respond after interrupting the input of Japanese IME on iOS FireMonkey RSP-28094
InputQuery window should be made wider to accomodate the caption FireMonkey RSP-27778
TComboBox item selection by typing doesn’t work FireMonkey RSP-27970
MultiView Drawer mode doesn’t work in push mode when changing orientation FireMonkey RSP-27785
Pasting into a TEdit does not behave properly when maxlength is set FireMonkey RSP-27894
TForm.activecontrol does not work? FireMonkey RSP-27486
TCanvasD2D is not threadsafe when call DrawBitmap FireMonkey RSP-27447
FMX.Graphics.TBitmap.Map with Write acess does not free underlying textures in TCanvasD2D FireMonkey RSP-27273
Cannot set tab order of fields on an FMX form where fields are in a TLayout FireMonkey RSP-27086
FMX Form No FormMouseMove Events FireMonkey RSP-27065
Light.style always shows a TCheckBox as checked when style activated FireMonkey RSP-27351
TCameraComponent can capture up to 8 times faster FireMonkey, FireMonkey\Components RSP-10592
[FMX] TListViewItem.Index is not updated after inserting new items FireMonkey, FireMonkey\Components RSP-15387
At design time, controls stored into a TGridPanelLayout are wrongly resized. FireMonkey, FireMonkey\Components RSP-17073
[Android] OnKeyUp and OnCloseQuery handlers are called twice for Back button if Key parameter is not set to 0 in OnKeyUp FireMonkey, FireMonkey\Runtime RSP-11815
FireUIAppPreview infos options must be upgrading for macOS FireMonkey, IDE RSP-30504
Trying to add a OnClick handler to a TSpeedbutton crashed FireMonkey, IDE RSB-3710
TGridPanelLayout added control jump to free cell when clicked. FireMonkey, IDE RSP-27277
Improper installation of Radiant Shapes in Delphi 10.4 FireMonkey, Install\GetIt RSP-29544
IFuture in loop issue FireMonkey, RTL RSP-19425
Android App closes if an exception is raised on Timer:OnTimer-event FireMonkey, RTL, RTL\Delphi RSP-16638
FireMonkey Form Blacked Out in IDE when Windows comes out of sleep IDE RSP-29350
Android SDK will not install IDE RSB-2669
Android SDK setup automatically chooses very old build tools IDE RSP-21979
Linker error after new iOS 14.2 update Linker RSP-31746
IOS Linking : Failed to set locale to ??2I? Linker RSP-30295
Updateing to iOS to 14.0 Linker RSP-31049
Delphi forces wrong binary into APK Linker RSP-27025
weak symbols not recognized in macos 11/iOS14 SDK PAServer RSP-31766
Linker error after Using iOS 14 PAServer RSP-31014
TXMLDocument does not suppot UTF-16 on iOS RTL, RTL\Delphi RSP-23607
CreateGUID returns wrong GUID on Android. RTL, RTL\Delphi RSP-20225
MacOS App hangs if TNetHTTPClient.OnValidateServerCertificate is assigned RTL, RTL\Delphi RSP-31643
Handling Client-side Certificates in HTTPS request for Android OS RTL, RTL\Delphi, RTL\Delphi\Net RSP-20194
REST component not work in Android app RTL\Delphi\Net RSP-30944

Head over and check out the full fix list for RAD Studio 10.4.2 FireMonkey for Android, iOS, macOS, Windows, and Linux.

The post FireMonkey 10.4.2 Features Updated iOS 14, Android 11, And macOS 11 Support Plus Hundreds Of Fixes first appeared on Delphi XE8 10 Seattle Berlin Tokyo Rio Sydney Firemonkey, Delphi Android, Delphi IOS.

How To Build Stable Diffusion Text To Image Prompts

$
0
0

As developers, we are always looking for new and interesting ways to challenge ourselves and create something new. In this blog post, we will explore how to create AI text-to-image prompts using a cross-platform application built using Delphi 11 FireMonkey. These prompts will be used to generate images using Stable Diffusion. Stay tuned as we walk you through the process of creating these prompts and show you some examples!

What is Stable Diffusion?

StableDiffusion is an open source software development platform that enables generative AI. It allows developers to create and train neural networks without the need for extensive coding knowledge. The platform also provides a library of pre-trained models that can be used to generate new data sets or improve the accuracy of existing ones. In addition, StableDiffusion offers a number of tools for visualizing and debugging neural networks. As a result, it is an essential tool for anyone interested in developing generative AI applications.

What is a generative AI prompt generator?

A prompt generator is a type of AI that is designed to generate creative prompts for writers, artists, and others. The goal of a prompt generator is to help spark the creative process by providing ideas and inspiration. Prompt generators can be used for a wide range of purposes, from generating ideas for new stories and characters to helping artists come up with new painting or sculpture concepts. There are many different types of prompt generators, but they all share the same basic goal: to help you tap into your creativity and come up with new ideas. Whether you’re a writer who is struggling to find new story ideas, an artist who wants to explore new mediums, or simply someone who is looking for a fun way to spark their creativity, a prompt generator can be a helpful tool.

What is the Stable Diffusion Text To Image Prompts generator?

The Prompts generator is a tool that allows you to select from a number of different image art formats, perspectives, styles, variations, and more to build the ultimate prompt for generative AI text to images using Stable Diffusion, MidJourney, or DALL-E. The Prompts generator comes with a built in Generate Image feature which uses the StableDiffusionApi.com REST API to use the prompt you’ve built to generate an image.

What are some sample fan art for Delphi prompts created with the app?

  • Glass Paint of Greek Temple, Tilted Frame, in the style of Gothic, Metallic, Trending On Artstation
  • Action Photography of Greek Temple, Shallow Depth Of Field, in the style of Cyberpunk, Ethereal, 70Mm
  • Architectural Photography From Magazine of Greek Temple, 1/1000 Sec Shutter, in the style of Art Deco, Utopian, Unreal Engine
  • Glitter of Greek Temple, Aerial View, in the style of The Movie Matrix, Muted, Well Preserved
  • Stained Glass Window of Greek Temple, Long Shot, in the style of Fauvism, Broken, Vivid

What does a Stable Diffusion generated image of a Greek Temple look like?

Greek temple with Stable Diffusion generative AI.

What does the Stable Diffusion Text To Image Prompts generator look like?

Here is a screenshot from the Prompts generator running on Windows. It is cross-platform so it also runs on Android, iOS, macOS, and Linux with a single codebase and single UI.

Stable Diffusion Prompts generator.

Ready to download the Prompts generator?

The full source code for the Stable Diffusion Text To Speed Prompts generator is available over on Github. You need Delphi 11.1 or higher to be able to compile it and you will also need an API key from StableDiffusionApi.com to generate images from within the app. There is also a prompt generator available for the Delphi VCL framework.

Head over to Github to download the full source code for the Stable Diffusion Text To Speed Prompts generator.

The post How To Build Stable Diffusion Text To Image Prompts first appeared on Delphi 11 10 XE8 XE7 XE Seattle Berlin Tokyo Rio Firemonkey, Delphi Android, Delphi IOS.

Unleashing Creativity With Song Writer AI: A Deep Dive

$
0
0
Song Writer AI

In an era where artificial intelligence (AI) has emerged as a game-changer in various fields, it comes as no surprise that songwriting isn’t an exception. Machine learning models have now evolved to such a point where they can assist artists in creating lyrics, offering a blend of AI and human creativity that was once unimaginable. Today, I’ll introduce you to Song Writer AI, its capabilities, and how it could potentially revolutionize the music industry.

Introduction to Song Writer AI

Songwriting AI refers to advanced machine learning models designed to help in creating song lyrics. These models, like OpenAI’s GPT-4 and Vicuna-13b, learn from vast amounts of text data and generate text that is contextually relevant and remarkably human-like. They are capable of understanding prompt and context, making them incredibly useful for tasks such as songwriting.

Which AI Models can do Songwriting?

A variety of AI models can produce songwriting. These include:

  1. GPT-4: An advanced version of the Generative Pretrained Transformer developed by OpenAI. The model is known for its ability to generate high-quality, coherent text.
  2. Vicuna-13b: A powerful language model designed for a range of applications, including songwriting.
  3. GPT-3.5-Turbo: Another OpenAI model, GPT-3.5-Turbo is a slightly smaller and more cost-effective model than GPT-4, but still capable of generating high-quality text.

How Does Song Writer AI Work?

To get started, you’ll need to sign up for an API key from OpenAI or Replicate.com. Once you have an API key, you can integrate it into a software client built with a framework such as Delphi using the FireMonkey framework, which supports multiple platforms like Windows, macOS, and Linux with a single codebase and UI. It is an open source project on Github.

The client features a REST integration with the services mentioned, allowing users to access the AI’s functionality directly within the client. The user provides a prompt (a line, a theme, or even a mood), and the AI models generate song lyrics based on this input, offering a new level of creativity and inspiration.

What is The Future of Songwriting with AI?

AI’s role in songwriting is not to replace human creativity but to augment it. It can help generate ideas, overcome writer’s block, and inspire new directions for songs. Moreover, its ability to learn and improve over time can lead to even more impressive results in the future.

However, it’s essential to understand that while these models can generate lyrics, the human element in music—the raw emotion, personal experiences, and unique perspective—is something that AI cannot replicate. Therefore, AI in songwriting serves as a tool, a creative partner, rather than a replacement for human songwriters.

In conclusion, songwriting AI is a fascinating field, poised to push the boundaries of creativity in the music industry. As AI continues to evolve,

we can only imagine how much further it will enhance the songwriting process.

What are the Applications in the Music Industry?

Beyond just aiding individual songwriters, AI has the potential to significantly influence the broader music industry. Here are a few potential applications:

  1. Music Education: Songwriting AI can serve as an incredible tool for teaching and learning music. It can provide students with a wide array of lyrics and song structures to study and learn from.
  2. Music Production: Producers and music directors can use AI to quickly generate lyrics for various moods and genres, significantly reducing the time and effort required in the songwriting process.
  3. Music Therapy: AI-generated music and lyrics can be used in therapeutic settings to help people express their emotions and promote mental well-being.
  4. Inclusive Songwriting: AI can be programmed to generate songs in multiple languages and cultural contexts, promoting inclusivity in music.

What are the Challenges and Ethical Considerations?

Like any technology, Song Writer AI also presents its share of challenges and ethical considerations. For instance, questions about intellectual property rights can arise when AI-generated songs become commercial hits. Determining who owns the copyright—the AI, the person who inputted the prompt, or the entity that owns the AI—will be a complex issue to navigate.

Moreover, there’s the question of originality and authenticity. As AI becomes more prevalent, distinguishing between human-made and AI-generated songs may become increasingly difficult. This could potentially dilute the value of human creativity in the music industry.

Ready to get started writing your first song lyrics with AI?

Song Writer AI presents a thrilling blend of technology and creativity, offering a myriad of possibilities for the future of music. While it’s not without its challenges, its potential to revolutionize the songwriting process and the music industry as a whole is undeniable.

As we continue to explore the possibilities and navigate the complexities, one thing is clear: Song Writer AI is not just the future—it’s the present. It’s a new tool in our creative arsenal, ready to inspire and be inspired. After all, isn’t that what music is all about?

Check out the full Song Writer AI project on Github. Access the source and download the Windows client.

The post Unleashing Creativity With Song Writer AI: A Deep Dive first appeared on Delphi 11 10 XE8 XE7 XE Seattle Berlin Tokyo Rio Firemonkey, Delphi Android, Delphi IOS.

AutoBlogAI: FireMonkey Client To Leverage LLMs And Generative AI For Blogging

$
0
0
Auto Blog AI featured image.

As a writer, blogger, and marketer, you know the importance of quality content to attract and engage audiences. But you also know how time-consuming and demanding content creation can be, especially if you need to come up with fresh and relevant ideas on a regular basis. What if you could automate and streamline the writing process using cutting-edge software that leverages advanced natural language processing and machine learning models? That’s where AutoBlogAI comes in.

What is AutoBlogAI?

AutoBlogAI is a cross-platform software tool built with Delphi FireMonkey, a popular rapid application development environment, to enable automatic article writing. With AutoBlogAI, you can use the power of latest language models such as GPT-3.5-Turbo, GPT-4, and Vicuna, to generate high-quality and customized articles that match your preferences and specifications. AutoBlogAI features APIs from OpenAI and Replicate.com that allow it to learn from and adapt to diverse datasets and contexts.

Auto Blog AI screenshot.

What are the differences between OpenAI LLMs and open source LLMs like Vicuna-13b?

GPT-4 and GPT-3.5-turbo, both creations of OpenAI, have undeniably revolutionized the AI landscape with their robust capabilities in understanding and generating language. However, their accessibility is somewhat limited as they are primarily available through OpenAI’s proprietary API. This mode of deployment restricts their use to internet-enabled contexts and may present challenges for applications that require local, offline utilization or when data privacy is a top concern.

Contrarily, Vicuna 13b stands out due to its enhanced versatility in deployment options. One way of running Vicuna-13b is via Replicate.com’s API, but it also offers the unique advantage of being able to run locally, a feature that significantly broadens its utility across various scenarios. This element of flexibility gives it an edge over GPT-4 and GPT-3.5-turbo, particularly in instances where data security is paramount, or when offline operation is required. Additionally, Vicuna 13b has been trained using responses from OpenAI’s GPT series, contributing to its impressive language understanding and generation capabilities. While it might not yet match the intricate sophistication of GPT-4 or the turbo version of GPT-3 in all aspects, its combined strengths of near-par language proficiency and versatile accessibility make it a compelling choice in the world of AI language models.

How does AutoBlogAI work?

AutoBlogAI uses a combination of deep learning, language model fine-tuning, and text generation algorithms to produce human-like articles that capture the tone, style, and essence of your desired niche. You can provide specific prompts or topics to AutoBlogAI, as well as adjustable parameters such as length, coherence, creativity, and fluency. AutoBlogAI also supports multiple languages and formats, from news articles to blog posts to product reviews.

What are LLMs and generative AI?

LLM stands for Large Language Models, which are advanced deep learning models trained on massive amounts of text data to learn patterns and structures of natural language. LLMs are capable of generating coherent and fluent text that mimics human-written text. Generative AI refers to the class of AI algorithms that can create new content based on existing data or conditions, using probabilistic or rule-based approaches. AutoBlogAI is a prime example of generative AI, powered by LLM and other AI techniques.

What is Delphi FireMonkey?

Delphi FireMonkey is an Object Pascal-based framework that allows developers to create visually stunning and cross-platform applications for Windows, macOS, iOS, and Android. Delphi FireMonkey offers an easy-to-use and flexible interface that enables developers to design, code, debug, and deploy applications with high performance and scalability. Delphi FireMonkey is also compatible with many popular libraries and APIs, including those used by AutoBlogAI.

What are the benefits of AutoBlogAI?

AutoBlogAI offers several advantages over traditional article writing, such as:

1. Time-saving and efficiency: AutoBlogAI can generate articles in minutes or even seconds, saving you hours or days of writing and editing. AutoBlogAI can also optimize your keyword strategy, enhance your search engine optimization (SEO) rankings, and expand your content reach.
2. Quality and customization: AutoBlogAI can produce articles that are both informative and engaging, tailored to your target audience and goals. AutoBlogAI can also generate multiple versions of the same article, enabling you to test and compare different styles and options.
3. Innovation and differentiation: AutoBlogAI can help you stand out from the competition by offering unique and diverse content that captures the latest trends and insights. AutoBlogAI can also provide fresh perspectives and ideas that you may not have thought of.

What is the future of generative AI?

AI is a fast-evolving technology that has the potential to transform the content creation industry. As AI models and frameworks improve and expand, AI may become more accurate, versatile, and user-friendly. AI may also address some of the ethical and cultural challenges of content creation, such as representation, diversity, and authenticity.

In conclusion, AutoBlogAI is a powerful tool that enables you to unleash your creativity and productivity as a writer, blogger, and marketer. By harnessing the power of Delphi, LLMs, and generative AI, AutoBlogAI frees you from mundane and repetitive tasks, and empowers you with quality and relevance. Whether you are a freelancer, a business owner, or a content strategist, AutoBlogAI can help you achieve your goals and expand your impact. Try AutoBlogAI today and see the results for yourself!

Head over and download the AutoBlogAI binary for Windows or get the source code.

The post AutoBlogAI: FireMonkey Client To Leverage LLMs And Generative AI For Blogging first appeared on Delphi 11 10 XE8 XE7 XE Seattle Berlin Tokyo Rio Firemonkey, Delphi Android, Delphi IOS.

Flux 1.1 Pro Desktop GUI Client: Harnessing Generative AI with FireMonkey for Python

$
0
0

The realm of generative AI continues to push boundaries, and Flux 1.1 Pro emerges as a standout generative AI image generation model. To bridge the gap between this powerful model and end-users, we’ve developed a desktop GUI client that wraps around the Replicate API, providing seamless access to Flux 1.1 Pro’s capabilities. Built using Delphi FireMonkey for Python, this application not only showcases the generative prowess of Flux 1.1 Pro but also demonstrates the cross-platform versatility of FireMonkey.

This project serves as a practical example of how developers can leverage FireMonkey to create AI applications with ease.

What are the Key Features?

  • Generative AI Integration: Direct access to the Flux 1.1 Pro image generation model via the Replicate API.
  • Cross-Platform Compatibility: Thanks to FireMonkey, the GUI client runs smoothly on Windows, macOS, Linux, and even mobile platforms.
  • Delphi FireMonkey for Python: Combines the robustness of Delphi Object Pascal with the simplicity of Python, offering a flexible development environment.
  • User-Friendly Interface: An intuitive GUI that makes generative AI accessible to users without deep technical expertise.
  • Open-Source and Customizable: The code is open for contributions, allowing developers to tweak and enhance the application as needed.

How can I Harnessing FireMonkey for AI Applications?

FireMonkey (FMX) is renowned for its ability to create cross-platform applications using a single codebase. By integrating FireMonkey with Python, developers can enjoy the best of both worlds—Delphi’s powerful UI framework and Python’s simplicity and extensive libraries.

Our desktop GUI client demonstrates how FireMonkey for Python can be utilized to build sophisticated AI applications:

  • Seamless API Integration: Utilizing the Replicate API, the client communicates with the Flux 1.1 Pro model to generate images based on user input.
  • Rich UI Components: FireMonkey provides a wealth of UI elements that enhance user experience and streamline application development.
  • Efficient Development Workflow: The combination of Delphi and Python accelerates the development process, reducing time-to-market.

#image_title

How can I Getting Started with the Flux 1.1 Pro GUI Client?

To experience the generative capabilities of Flux 1.1 Pro through our GUI client:

  1. Clone the Repository: Navigate to our GitHub page and clone the project to your local machine.
  2. Install Dependencies:
    • Ensure you have Python installed.
    • Install FireMonkey for Python and any other required libraries as specified in the repository.
  3. Acquire a Replicate API Key:
    • Sign up on the Replicate platform to obtain an API key.
    • This key will allow the application to access the Flux 1.1 Pro model.
    • Add the key into the source code.
  4. Run the Application:
    • Launch the GUI client.
    • Enter your Replicate API key when prompted.
    • Begin generating images using Flux 1.1 Pro’s generative AI capabilities.

What About The Power of Generative AI with Flux 1.1 Pro?

Flux 1.1 Pro is a cutting-edge image generation model that leverages advanced algorithms to create stunning visuals based on user prompts. By integrating this model into a desktop application:

  • Accessibility: Users can interact with generative AI without needing to write code or understand complex algorithms.
  • Creativity Unleashed: Artists, designers, and hobbyists can experiment with image generation to inspire new ideas and creations.
  • Educational Value: Developers and students can learn about AI integration and application development in a hands-on manner.

Is FireMonkey Cross-Platform?

One of the standout features of our GUI client is its cross-platform nature:

  • Single Codebase Deployment: Write once, deploy everywhere—FireMonkey eliminates the need to write platform-specific code.
  • Delphi and Python Synergy: Whether you prefer Delphi’s Object Pascal or Python, FireMonkey accommodates both, providing flexibility in development.
  • Consistent User Experience: Users enjoy a uniform interface and performance across different operating systems.

What are you waiting for? Unlock the power of Flux 1.1 Pro and FireMonkey!

The Flux 1.1 Pro Desktop GUI Client exemplifies how generative AI models can be made accessible through thoughtful application design. By leveraging FireMonkey for Python, we’ve created a cross-platform tool that not only unlocks the potential of Flux 1.1 Pro but also serves as a testament to the capabilities of FireMonkey in AI application development.

Whether you’re a developer eager to explore the intersection of AI and cross-platform development, or a user excited to dive into generative image creation, our GUI client offers a gateway to innovation and creativity.

Download the Flux 1.1 Pro Desktop GUI project.

The post Flux 1.1 Pro Desktop GUI Client: Harnessing Generative AI with FireMonkey for Python first appeared on Delphi 11 10 XE8 XE7 XE Seattle Berlin Tokyo Rio Firemonkey, Delphi Android, Delphi IOS.

Desktop AI Image Upscaling with FireMonkey: A Python-Powered Demo

$
0
0

In the world of digital imagery, achieving the perfect balance between resolution and quality is a constant challenge. Whether you’re working on a personal project or a professional portfolio, having access to tools that enhance the clarity and detail of your images is critical. The AI Image Upscaler, built with DelphiFMX for Python, is a desktop application that uses cutting-edge artificial intelligence to upscale images while preserving—and even enhancing—their quality. Let’s explore how this tool can revolutionize your image processing workflow.

What Makes the AI Image Upscaler Unique?

The AI Image Upscaler stands out for several reasons. First, it’s a cross-platform desktop application that works seamlessly on Windows, macOS, and Linux, giving users flexibility regardless of their operating system. As a locally hosted solution, it allows you to process images securely on your machine without relying on cloud services, ensuring privacy and faster results.

The app is built with DelphiFMX, a powerful framework that allows Python developers to build native desktop applications. This means you get the performance and responsive design typical of native apps, with the added benefit of Python’s extensive libraries and simplicity. DelphiFMX enables this app to run efficiently on multiple platforms, offering a uniform and user-friendly experience.

#image_title

How Does FireMonkey (FMX) Enhance This App?

The FireMonkey (FMX) framework, used in DelphiFMX, plays a pivotal role in the development of the AI Image Upscaler. FireMonkey is a cross-platform UI framework that supports Windows, macOS, Linux, iOS, and Android. Its flexibility allows developers to build a single codebase that works seamlessly across all these platforms, significantly reducing development time and effort.

FireMonkey is known for its powerful graphics rendering capabilities, making it a natural fit for applications that handle images. It supports GPU-accelerated graphics, enabling smooth handling of high-resolution images, animations, and 3D objects. Additionally, it allows the creation of highly customized, visually appealing user interfaces, ensuring that the app not only functions well but also provides a great user experience.

For Python developers using DelphiFMX, FireMonkey opens the door to creating native desktop applications without the overhead of managing multiple platform-specific codebases. This makes the AI Image Upscaler an optimal solution for cross-platform image processing, offering a high level of performance and graphical fidelity.

How Does AI Enhance Image Quality?

Artificial intelligence is the core technology behind the AI Image Upscaler. Traditional methods of upscaling images, like bilinear or bicubic interpolation, can result in pixelation or blurry images because they merely stretch the existing pixels. However, AI-based upscaling uses deep learning algorithms to analyze the image and add new details that weren’t present in the original.

The AI model behind this tool is designed to recognize patterns in textures, edges, and shapes, allowing it to intelligently enhance the image without introducing noise or distortion. This means that your upscaled images retain sharpness, detail, and color accuracy, making them look like they were captured in a higher resolution from the start.

Whether you’re working with photos, digital art, or low-resolution graphics, this tool can add layers of detail that transform the visual quality of your work.

How Does the Clarity Upscaler Model Enhance Image Quality?

The Clarity Upscaler model, hosted on Replicate.com, applies advanced machine learning techniques to improve image resolution and visual fidelity. This model uses sophisticated diffusion-based upscaling, LoRA techniques, and customizable settings for optimal performance. Let’s break down its key features and how they contribute to upscaling.

What Role Does the Seed Play in Image Upscaling?

In this case, the seed is set to 1337, which helps ensure reproducibility. The seed controls the randomness involved in generating results during upscaling, so using the same seed guarantees the same visual outcome. When using machine learning models like this, it’s crucial for testing different configurations or reapplying the same model to yield consistent results.

What Impact Does the Prompt Have on the Upscaling Process?

The prompt used in this case—"masterpiece, best quality, highres, <lora:more_details:0.5> <lora:SDXLrender_v2.0:1>"—helps guide the model in terms of what qualities to emphasize. It includes references to LoRA (Low-Rank Adaptation) models, such as more_details and SDXLrender_v2.0, which fine-tune the output to add intricate detail and improve rendering quality. The prompt essentially tells the model to prioritize high-resolution, masterpiece-like qualities.

What Happens When Handfix Is Disabled?

The handfix option is disabled here, meaning the model doesn’t specifically adjust for hand-related artifacts or errors. This feature is generally used when working with images of people to ensure accurate rendering of hands, a common area of difficulty for AI models.

How Does Pattern Mode Affect the Upscaling?

In this configuration, pattern mode is set to false, meaning the model doesn’t prioritize maintaining patterns or textures in specific repetitive ways. This is useful when working with images that need to retain certain uniform textures, but disabling it might result in a more natural and fluid upscale without rigid pattern preservation.

How Does the Model Deal with Sharpness?

Sharpness control is set to 0, indicating that no additional sharpening filters are applied. This ensures that the model relies solely on its native processes for enhancing clarity rather than artificially sharpening the image, which could lead to overly harsh or unnatural edges.

What Is the Significance of Using the juggernaut_reborn.safetensors Model?

The sd_model field points to the model file juggernaut_reborn.safetensors [338b85bc4f]. This specific checkpoint is likely optimized for image quality and high-fidelity upscaling, providing a balance between detail enhancement and naturalness in the output. Safetensors format ensures that the model is memory-efficient and optimized for performance.

How Does the DPM++ 3M SDE Karras Scheduler Affect the Upscaling Process?

The scheduler chosen, DPM++ 3M SDE Karras, is a specific type of noise scheduler used in diffusion models. This setting impacts the smoothness and fidelity of the image generation process, helping the model traverse from noise to the final upscaled image in a controlled manner. Karras schedulers are known for balancing speed and quality in diffusion processes.

What Does Creativity Control at 0.35 Do?

The creativity parameter, set to 0.35, fine-tunes the balance between adhering to the original image structure and introducing creative freedom in the upscaling process. A lower value, like 0.35, means the model sticks closer to the original image without making too many artistic changes or enhancements, ensuring that the upscaling looks natural and faithful to the source.

What Is the Purpose of the Resemblance Setting at 0.6?

The resemblance parameter, set to 0.6, defines how closely the upscaled image should match the original. A value of 0.6 suggests that the model is allowed some freedom in introducing changes to improve quality while still maintaining a significant resemblance to the original image.

What Does the Scale Factor of 2 Achieve?

The scale_factor is set to 2, meaning the model doubles the resolution of the input image. This is a typical use case for upscaling models where the goal is to increase the resolution while preserving or enhancing visual details.

How Does Tiling Work in This Model?

The tiling_width and tiling_height are set to 112 and 144, respectively. This indicates that the model breaks the image into tiles of these dimensions during processing. Tiling is a useful technique for handling large images by processing smaller chunks and reassembling them, thus managing memory and computational load more effectively.

What Does the Negative Prompt Control?

The negative_prompt parameter, (worst quality, low quality, normal quality:2) JuggernautNegative-neg, directs the model to avoid specific undesirable outcomes, such as low-quality or average results. This negative prompt ensures the model steers clear of creating an image with poor visual fidelity by explicitly telling it what not to focus on.

How Does the Number of Inference Steps Affect the Result?

With num_inference_steps set to 18, the model goes through 18 steps during the diffusion process to upscale the image. Fewer steps typically result in faster processing but lower quality, while more steps offer finer detail at the cost of speed. Here, 18 steps suggest a balance between quality and performance.

What Is the Purpose of Downscaling Resolution?

The downscaling_resolution is set to 768, meaning the model downsamples the image to this resolution at some stage in the process before applying enhancements. This technique helps manage larger images, allowing the model to focus on detail before resizing for the final upscale.

What Are the Key Features of the AI Image Upscaler?

  • AI-Powered Image Enhancement: The tool uses sophisticated machine learning models to upscale images, adding realistic details and textures that traditional upscaling methods can’t match.
  • DelphiFMX-Powered UI: Built with DelphiFMX for Python, the app offers a smooth, intuitive desktop experience on Windows, macOS, and Linux. It provides a native application feel, thanks to FireMonkey’s high-performance graphics capabilities.
  • Cross-Platform Compatibility: The application runs seamlessly on all major desktop platforms, allowing users to work in their preferred environment.
  • Responsive Background Processing: The upscaling process runs in the background, allowing users to continue interacting with the app without any delays or interruptions.

How Can You Get Started with the AI Image Upscaler?

Getting started with the AI Image Upscaler is as simple as cloning the GitHub repository. The app is built with an easy-to-use graphical interface, so you don’t need to be a developer to start enhancing your images. Just load your image, run the upscaler, and let the AI do the heavy lifting.

The application provides real-time feedback via a status bar, showing you the progress of the upscaling process, and ensures that your workflow is never disrupted.

Why Should Developers Choose FireMonkey for Cross-Platform Applications?

For developers, FireMonkey (FMX) is one of the most robust and flexible frameworks available for creating cross-platform applications. By using DelphiFMX for Python, developers can take advantage of FireMonkey’s graphical performance, native platform integration, and the ability to maintain a single codebase for multiple operating systems.

With FireMonkey, developers can build feature-rich desktop applications that are both visually stunning and incredibly efficient. The framework’s support for GPU acceleration ensures that even resource-intensive applications, such as those handling high-resolution images, run smoothly across all platforms. For Python developers looking to create desktop applications that combine functionality with aesthetics, FireMonkey offers the best of both worlds.

Ready to Experience AI-Powered Image Upscaling?

Are you ready to transform your images with the power of AI? The AI Image Upscaler provides an efficient, cross-platform solution for enhancing image quality, all while preserving the integrity and details of the original. Whether you’re a photographer, artist, or developer, this tool gives you the ability to upscale your images with ease and precision.

Head over to the GitHub repository today, download the AI Image Upscaler source code, and experience the future of image upscaling for yourself!

The post Desktop AI Image Upscaling with FireMonkey: A Python-Powered Demo first appeared on Delphi 11 10 XE8 XE7 XE Seattle Berlin Tokyo Rio Firemonkey, Delphi Android, Delphi IOS.
Viewing all 97 articles
Browse latest View live