Rollo62
Members-
Content Count
1812 -
Joined
-
Last visited
-
Days Won
23
Everything posted by Rollo62
-
Google Play requires Android 13 after 31. august !!!
Rollo62 replied to Hans♫'s topic in Cross-platform
This would probably break MAUI, Xamarin, Unity, ReactNative and many others as well, so I doubt Google or Apple would gain from this decision. -
Great stuff, thanks for that, but what keeps me from looking much deeper into this is, the missing platform status for a full multi-platform support. Do you have a list or table, showing which parts can be used under FMX ( iOS, Android, Windows 32/64, Macos, Linux ) and which one only under VCL ( Windows 62/64 ) ? I understand that it isn't made for mobile in the first place, but your library is so overwhelming full of goodies and tools, it would be great to get a clear picture for each single piece.
-
Google Play requires Android 13 after 31. august !!!
Rollo62 replied to Hans♫'s topic in Cross-platform
Nevermind, even if I could use a Subscription Beta, I would not even think about porting all my Apps now, just 8 days before the end-of-expiration date, with unclear outcome what else will break down in the apps then. -
Maybe, if your project option settings got mixed up, are you aware of Uwe's great ProjectMagician tool ?
-
It looks as if you want to download a file via HTTP request, like this here in a German blog. Then you should use something like Indy IdHttpClient for that purpose, as a rough guess what you are looking for.
-
Google Play requires Android 13 after 31. august !!!
Rollo62 replied to Hans♫'s topic in Cross-platform
The structure of your generated AndroidManifest.xml looks alien to me, usually this looks like that, in my RadStudio environment: Did you changed your AndroidManifest.template.xml completely ? It looks like this in my, usually original case, except the manual override of targetSDK "33": -
Ok, I didn't know that Phantom.js was suspended, thats a pity. I had played around with Pyppeteer project a while ago and it's now suspended too, so I had assumed their successors will do well too. They recommend playwritgh-python as successor, but never tested that. Not sure if Pyppeteer was based on Phantom.js, it seems not, according to this info. As far as I knew, the Pyppeteer was bundles with Chromium and Python, which would be large, but reasonable as standalone scraper. Maybe Cef4Delphi could also be usable for such task, have you experience with that ?
-
Thanks god, I still have usual certificate for 2+ years, but looking into the dark future to come What I found it this article, maybe it helps, but I couldn't check it, because I have no SafeNet yet. https://medium.com/@joshualipson/ev-code-certificates-automated-builds-for-windows-6100fb8e8be6 Perhaps, somebody has experiences or comments with that solution? Personally, I find it particularly silly to enforce a world-class security system that is so super-secure that the developer has to hack it himself, probably using insecure and dubious third-party tools. Isn't that in stark contrast to the original goal?
-
Maybe, if you are willing to bundle with Python or the ike, a headless browser could help. https://www.zenrows.com/blog/selenium-python-web-scraping#prerequisites But that is usually too fat for a simple, I would guess. Or if you are willing to think about online-services, maybe there were also some online webscraper tools out there, which have limited free tier, but thats also problematic to integrate. https://www.scraping-bot.io/pricing-web-scraper-api/ https://www.parsehub.com/pricing I'm not sure if something like HtmlComponents could handle that, I think the JS part is still missing and bundling with JS parsers would be also a big task. Maybe there is any full Pascal HTML5, CSS, JS engine out in te wild, which I'm not yet aware of ? That would be great for my projects too 🙂
-
I have not tested for any differences, but I directly used different AppleId's on different AppStoreAccounts. Moreover you can have different account types, like personal and enterprise, which also has different behaviour in certain cases. My philosophy is that, the more granular, the better control you should have over the whole ecosystem, especially to cover future changes. That needs a lot of discipline in keeping all accounts, passwords, emails etc. on track. It took me a decade to evolve such discipline, but unfortunately I'm still not always as straight as I should
-
Delphi pulls the account info from XCode via PAServer, so if XCode can handle several accounts, then Delphi can do it too. Yes, to have different developer accounts works for me, but you have to take care that you switch all provisioning profiles and BundleID's correctly. To have even one account can be enerving enough, but that not a Delphi issue, it comes from the Apple side.
-
Where is the link to register to the forum?
Rollo62 replied to FPiette's topic in Community Management
How about the pro-active approach ? This should have a huge, preventive effect against SPAM -
[Android] Some insights with this TBitmap SaveToFile snippet
Rollo62 posted a topic in Cross-platform
Hi there, recently I've got some insights, about the internal TBitmap magic in FMX, for the following code snippet, under Android: procedure TTestForm.SaveImageToTemporaryStore( const AImage : TBitmap; const AArrayList : JArrayList; const AIndex : Integer ); var LImageFile : JFile; LImageUri : Jnet_Uri; LOutputDir : JFile; LPath : String; begin // Retrieves the apps cache, temporary file storage folder LOutputDir := TAndroidHelper.Context.getExternalCacheDir(); // Creates a temporary file in that cache folder LImageFile := TJFile.JavaClass.createTempFile( StringToJString( 'attachment' + AIndex.ToString ), StringToJString( '.png' ), //<== This is the only palce where png comes into play LOutputDir ); // Get that file as URI LImageUri := TAndroidHelper.JFileToJURI( LImageFile ); // Retrieve that path, for testing purposes, it looks like this: // '/storage/emulated/0/Android/data/com.embarcadero.APPNAMEHERE/cache/attachment05833119307942135994.png' LPath := JStringToString( LImageFile.getAbsolutePath ); // Save the TBitmap to that IRI file Path, works pretty well AImage.SaveToFile( LPath ); That works well and all as expected. When I send that file via sharesheet then after, also that works fine. // If we use ACTION_SEND_MULTIPLE action of Intent, we should put image throught Parcelable Array List. // Because in this case other application read EXTRA_STREAM like a ArrayList<Uri> // Created externally by LArrayList := TJArrayList.Create; AArrayList.add( LImageUri ); end; Then finally this is added to an Intent, to share to other apps. That works well, put it as below into the Intent as EXTRA_STREAM, it sends the .png file via different apps: LIntent.putParcelableArrayListExtra( TJIntent.JavaClass.EXTRA_STREAM, LArrayList ); So all works well and I should not complain. But it struck my, when I asked myself: Why does the source TBitmap converts to a *.png file in the first place ? Why didn't I had to fumble around with TBitmapCodecManager or something else, to get this conversion coded ? After some investigation, looking into the TBitmap.SaveToFile( LPath ); I found that the trick, by hidden conversion, depending on the file extension: procedure TBitmap.SaveToFile(const AFileName: string; const SaveParams: PBitmapCodecSaveParams = nil); var Surf: TBitmapSurface; begin TMonitor.Enter(Self); try Surf := TBitmapSurface.Create; try Surf.Assign(Self); if not TBitmapCodecManager.SaveToFile(AFileName, Surf, SaveParams) then raise EBitmapSavingFailed.CreateFMT(SBitmapSavingFailedNamed, [AFileName]); finally Surf.Free; end; finally TMonitor.Exit(Self); end; end; Sometimes, I'm still surprised by the hidden convenience that Firemonkey provides for us. Under VCL I would have to convert this image the hard way by myself, for example with TPNGImage, like PeterBelow pointer out here. I'm always happy when FMX made me forget such nasty details -
Oh my, I didn't notice that, my sincere condolences So I hope he is well productive on the next level now.
-
That sounds like a simple task, but turns out to be quite complex and difficult. I would tend to use integrate external tools, which is maybe the simplest way, but also there are not many simple ones. Probably ImageMagick, GhostScript, ... Not sure if Pdfium can do this Probably Debenu can do this, but is maybe not supported any longer, not sure. https://github.com/Belval/pdf2image https://github.com/oschwartz10612/poppler-windows UberPdf is probably dead
-
Yes, I use TPath too, a lot. Works nice and reliable and is probably the most simple way to do that in FMX. Nevertheless, if you need more advanced drawing, I would look into SVG and/or into TImage32 from Angus, or even into SkiaForDelphi from Vinicious and friends.
-
Same do I The advantage of frames is, that you can mimic any complex component even with many complex controls, and other frames, inside. Offering the ability to visually create and separately test them nice and easy, without the need to install them in the IDE on every change. The only drawback is, that you cannot drag-and-drop (although you could, but this RAD approach seems not reliable too me), but you have to use them at runtime instead. But for me this is a benefit, not a drawback 🙂
-
Seeing External exception 0 error using TRESTRequest on some Samsung phones
Rollo62 replied to Chris Pim's topic in Cross-platform
An External exception is mostly the worst case, since this usually happens before you have any control over the app. Very likely, this is caused by any permission or forbidden access problems. I've learned the hard way, that it makes much sense to massively modularize the app and separate and encapsulate all specific features, to simplify separate feature testing on different devices. Monolithic apps are so Windows - 1990 This philosophy doesn't work any more on mobile. With ifdef defines, I can add/remove/compose certain features fast and easy, for step-by-step testing purposes, without touching the whole app. That way, I can produce test-apps for specific customers, which are able to reproduce and test errors. I use also massive logging, to follow the patch in the app, which also can be used in released apps. -
Doesn't the TextSettings property work for you ? https://docwiki.embarcadero.com/Libraries/Sydney/en/FMX.Graphics.TTextSettings
-
I usually don't rely on the TabControl UI for multi-plattform. The TabControl itself works fine, but I remove its visual Tabs and use separate navigation controls to switch between Tabs, for example simple TButton's in a separate TLayout. That way I have full control over behaviour and appearance and the UI and the navigation can even separated from the tab-control itself, or even easily replaced by different visual impressions for different device categories ( phone, tablet, desktop).
-
[Android] How to put data from a dataset into a listbox?
Rollo62 replied to Fabian1648's topic in FMX
If speed is your issue here, then maybe because you try to use too many items in the ListBox. Perhaps, better switch to TListView then ? -
ANN HTML Library 4.7 released
Rollo62 replied to Alexander Sviridenkov's topic in Delphi Third-Party
@Alexander Sviridenkov That looks great, as always. I'm not sure if the performance, SVG and large-file features were limited to VCL and desktop mostly, or if also mobile apps will improve a lot, with or without SKIA ? -
Developing apps for GPS related info, i.e., miles/speed/location/etc
Rollo62 replied to JohnLM's topic in General Help
Although this should be possible with Rx11.2, you should be aware that you are touching quite a lot of critical Android stuff, which needs each a lot of experience and knowledge, like - sensors and location - permission handling - I assume you would like to have background operation - therefor you would need Android services very likely I am not sure, if you start with a new project with Rx11.2 on Android for the first time. That's why I think this maybe quite a big task to get a smooth and easy start. Better try and test each of those problem zones separately, instead of putting it all together in the first try. -
ImageEN is great, but unfortunately VCL only, and Windows specific.
-
Yes, I think there are many applications, physics, math, measurements, even finance .... But I think Delphi is not the first choice for those applications. Anyhow, it would be great to get a little bit of info, about what initial problem should be solved, since this may have many complete different solutions paths too. Just to have a huge chunk of bits is one, maybe some kind of bit-compression could be another one, especially if only 5% of the bits really need to be "1". How about finding useful bit-combinations, to encode larger chunks into something like enhanced HEX code or the like, to save a lot of space in smaller memory ? Without a little more information, it's like poking in the fog.