Rollo62
Members-
Content Count
1812 -
Joined
-
Last visited
-
Days Won
23
Everything posted by Rollo62
-
Didn't that re-install Dave and I described above worked out for you ? Maybe its better re-start IDE too. That solved the case for me, linker error was gone.
-
@Dave Nottage Thanks, that was a little unclear howto make such updates. So this seems to un-install and re-install the TeeChart. The linker error was gone afterwards, I could'nt check TeeChart versions before/after, but it looks as if the latest version was downloaded. I was forced to do that by the Patch Tool.
-
I had the same when testing my projects with 10.4. But it turned out that I forgot to clean and build a designtime package, which used an already changed unit. Since I don't use too many designtime packages, this was easy overseen, and I wish there could be some reliable "out-of-date" warning. Sometimes the llnker makes a warning, sometimes not. So far I seldom see such mis-aligned breakpoints, and usually cleaning up all DCU's help to fix it. I also recomment, like Dave, to install into a new VM. Since I did this, some years ago, I seldom have such weird failures I can see here in the blog. I think worst idea is to install two versions side by siide, there are simply too many positions where things may go wrong. Usually I have two different VM (VM10.3.3; VM10.4), which I can use even in parallel if I ever need that.
-
Anyone knows of a good Delphi library encapsulating Stripe payments?
Rollo62 replied to Andrea Raimondi's topic in Delphi Third-Party
Is that helpful somehow ? Not sure if this is still actual. Or the commercial TMS CLoud Pack. But I would always check if this is still currently working, the cloud APIs change too frequently. -
Disadvantage of using defined type of TArray?
Rollo62 replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
Exactly, to find something is not very reliable or convenient, with Rx10.4 LSP this is getting somewhat better in the right direction, but not perfect. Maybe Uwes MMX-Tool fills that gap, but I'm still learning howto use it at best. Still I'll do a lot of intensive "search and replace" with external tools, which gave me much better feeling of reliability. -
Installed 10.4 Patch (Patch Tool) Test 1.0 - Components needing Teechart don't work any more
Rollo62 replied to microtronx's topic in Delphi IDE and APIs
I've just run the patch, here a list of whats going on: Before install I had TChart and all Features I installed via welcome page this seems to be just a shortcut to the GeitManager Got the first message Yes, I want ... Then I've got a fullscreen terminal, which is odd. because I cannot see a hanging message-box request, it was behind the terminal. After pressing OK, it moved on Seems to de-install all features I've had installed before even Interbase and all SDK's ... Then its restarting the IDE Of course something is missing now, need attention later ... Then the features components 2nd page were all removed (as they were uninstalled), I had to enable them. Even the samples. Installing the components ... tea time ... Re-Installing also loads the TeeChart, I hope this is the new version then. I will see later in my tests. Finally after install Teechart is back I can compile Android, so also the SDK seems to be back, but I'm unsure if all Android-Components wer initialized. The welcome page still shows a patch, it seems to be an error in "patch installed" detection I re-enabled my TChart usage in a project, and compile the project for test. I found a few issues then: 1. The message box was hiding behind the full-screen terminal 2. All features were disabled and de-installed, even the samples. This is maybe for safety, but I think this could be optimized. 3. When IDE ist startin, to re-install, it noted about missing BPL Surely this could be optimized too, to set the IDE into a kind "installer mode" before, ignoring missing BPL. Then only show message after 2nd start, if still anything is missing. 4. Patch "installed" detection doesn't work reliably -
Installed 10.4 Patch (Patch Tool) Test 1.0 - Components needing Teechart don't work any more
Rollo62 replied to microtronx's topic in Delphi IDE and APIs
So howto get TeeChart back ? Did I understand right that this works with Manage platforms, and uncheck/check the TeeChart checkbox, to uninstall/reinstall TeeChart ? My point is that I don't want to re-install the whole IDE at the moment, since I'm fighting to get things stable again. I've deactivated the TChart in my app for testing purposes. -
Installed 10.4 Patch (Patch Tool) Test 1.0 - Components needing Teechart don't work any more
Rollo62 replied to microtronx's topic in Delphi IDE and APIs
Thanks Uwe. I also will follow the good advice to backup the system, especially because the name of the "patch" doesn't sound too reliable to me. -
Installed 10.4 Patch (Patch Tool) Test 1.0 - Components needing Teechart don't work any more
Rollo62 replied to microtronx's topic in Delphi IDE and APIs
Thanks for pointing my head to the Patch tool. Is this an official patch, or not, why this crazy name ? What I don't really understand is what this has to do with TeeChart. I have currently similar issues, linking to TChart is broken. Is this Patch Tool of any use, or is this just an internal test of Embarcarero before launching the real Patch-2 ? Is there any available Readme BEFORE installation ? -
Disadvantage of using defined type of TArray?
Rollo62 replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
I can see also benefit in maintaining code. Imaging you change TItemArray = TArray<TItem>; to TItemArray = TArray<TItemEx>; In the TItemArray version you touch the code in one place only. In the TArray<TItemEx> version you touch the code in thousands of places maybe. -
Now it hits me too while testing, I hope I can add this in the same thread here At least the title makes the subject clear. I've got the error Maybe I installed too early, and now the setup included a newer, compatible version ? I think it should be available already at Steema. But how can I update this in my Rx!0.4.0 installation: GetIt - no Do I have to wait until Patch2 arrives ?
-
Not sure where you lost your TChart. But I think its worth to make clear that you have to check the TeeChart checkbox in the WebInstaller, to have this available directly after installation. Usually I check everything in the WebInstaller, so I'm sure it will be installed in right order and nothing is missing later on.
-
Can I use iOS .storyboards generated from Rc10.4 under Rx10.3.3 ?
Rollo62 posted a topic in Cross-platform
Hi there, I'm still fighting a little with Rx10.4 Patch 1, to get my projects smoothly running. Since debugging is somewhat broken for me, I regularily got out-of-system-ressources message, and also had some other exception that I haven't not seen before. The apps are running, but I think I better don't put them productive already. Unfortunately the Apple deadline for storyboard comes closer. Since Rx10.3.3 was quite stable for me, I came to the thought above. I think that should be possible to let .storyboard generate by Rx10.4, and then include this somehow in Rx10.3.3. Probably including in the Deployment and fumbling in the "%storyboard%" entry in the plist is good enough, but I doubt that its so easy.. I'm loosing a lot of time right now by testing and trying to get my projects as stable as before, maybe someone got similar idea and already tested this to prevent Apples deadline. Would be nice if you could share your experiences. By the way: Also the Rx10.4 .storyboard has some issues, as my logo did appear much too small, but that would be acceptable in the worst-case. Also changing background color has the known issues, which needs to re-boot the phone before getting fixed. I had not enought time to check it more deeply yet, but I just replaces the original icons by my own of same size. Maybe thats not good enought, and I need some special graphics format ? -
Can I use iOS .storyboards generated from Rc10.4 under Rx10.3.3 ?
Rollo62 replied to Rollo62's topic in Cross-platform
Thanks Chris, this secret was well hidden I will check that. -
Can I use iOS .storyboards generated from Rc10.4 under Rx10.3.3 ?
Rollo62 replied to Rollo62's topic in Cross-platform
My hope is that just copy the storyboard and edit info.plist is enough. What else should be missing ? Rx10.3.3 was rock solid for me, Rx10.4 is still fragile and Im working on it. -
iOS Bluetooth LE with background-central stops after 1-10 minute
Rollo62 posted a topic in Cross-platform
Hi there, I have a very nasty problem again with BLE background mode. Since I have the feeling that I have read all available articles and references about this topic worldwide, I still got no clue howto get this working. All is working as expected under forground mode. I hope that I can find some help or new ideas from here, because my head is going to be empty right now. My setup is: Rx10.3.3, XCode 11.4.1, iOS13.4.1, modern iPhone/iPad devices, all running fine with debug and release My task: I need to connect external Bluetooth LE peripherials, which works well in foreground. They send data string (20 bytes) via unspecific custom characteristics, and I receive a HEX string, all that is fine. With integrated logging functions in the app, I can monitor all behaviour in fore- and background. Also debugging in fore- and background is no problem. The devices send new datastring every < 2 sec., and the other every < 12 sec., anyway, both get killed after a while. Maybe there are some restrictions in the datarate, I have read somewhere that peripherals > 2 sec. might considered to be killed (?), but I cannot find anything about that in the official docs (also not much in the forums, seems only one case). The connected devices stay connected, I cannot see any unusual behaviour, moreover I test with three different hardware types, all behave same. So the issue seems not to be caused by the peripheral hardware. I use the following settings: Background modes: audio, bluetooth-central (audio is used for Tts text-to-speech also in background, but its not used currently when receiving the data sting). Info PList NSBluetoothPeripheralUsageDescription (deprecated, but shouldn't it be there for older devices ?) I didn't see any hint that this might be harmful. NSBluetoothAlwaysUsageDescription (defining both should be any problem, right ?) Permissions FMLocalNotificationPermission = true; Location: I do not use that, since Apple rejected this once, for adding an "unused background operation". Some time before I added this background location as workaround to keep background mode permanently running. I've made also some experiments before to add bluetooth-peripheral mode, as workaround to keep background mode permanently running. Both workarounds should be not necessary, but I was searching for a stable way to keep background active. I touch the location in foreground, so that the Location permission alert appears to the user,, since I think that location might be relevant for Bluetooth as well, same as is under Android. But I don't use Location in foreground, but in the past it seems that location permission alert seemed to help keeping background active.. When I take the location out completely, then also the Bluetooth LE permission alert seems not to appear every time, so sometimes BLE stays unavailable, and I need re-install to fix that problem. Thats why I touch the location in foreground, to enable location, and then I don't use the location any more, but BLE works with that approach in foreground. Device capabilities: I don't set specific BluetoothLE capabilities (UIRequiredDeviceCapabilities - bluetooth-le), as I never had to, and it works in foreground. Application events, I handle all of them, and especially at WillEnterBackground I stop some unneeded timers and delay the Threaded ringbuffer for receiving and processing the data, by TThread.Sleep(500);. (I used this sleep method before, and it seem to work well under older iOS, but I never checked that too deeply). on BecameActive I restart the timer and threads With TThread.Sleep(500); I throttle the thread which processes the incoming data (there is no data overflow, datarate is too small). I can see the processed incoming data, also in background, the ReadCharacteristic appends the data to the ring buffer, and then every 500ms the thread still seems to run and process this. In background I stop running timer, and I can see data from the periperal coming in. So far, so good, but longer operation (> 1min, > 10min) might kill the app in background. With kill I mean, its not only in background stopped, but the app is killed and restarts fresh. There is no other resource shortage, enough memory, etc., no need to be killed IMHO. I don't see any place where my app could get stucked, so that Apple might push me out of business, I tried to implement all measures to keep everything lightweight, asynchronously, only the threaded ringuffer sleeps for 500ms every cycle. I can see the data package running through the process handler, even debugging in background is possible. Please let me know if you have some helpful hints here, because I got stucked a while now by this issue, I'm at my wits end right now.- 6 replies
-
- ios
- bluetooth le
-
(and 3 more)
Tagged with:
-
iOS Bluetooth LE with background-central stops after 1-10 minute
Rollo62 replied to Rollo62's topic in Cross-platform
I have done some more tests, but cannot really say that I know whats going on here. Maybe I point out some more facts I can see: - The app works fine in foreground (FG), and may crash in (BG) - The BG crash occurs when the phone looses the IoT device, while connected in BG all is fine. - The BG crash never happens in my office, I can even move out-of-range while the IoT gracefully disconnects, and can be reconnect after that (while app in BG can be opened, its not a new start). - The app in BG can send a notification when disconnect, all this is OK. - When connected in FG, I can move about 15m, still the connection keeps active (no disconnect, no crash) When connected in BG, when I move 15m, the connection gets disconnected (no crash). - It seems that BG operation uses maybe less energy or less QoS All that would be OK, only - in some critical places the same app on same phone crashes directly when entering BG these places are offices where a lot of RF noise can be seen (about 50 BLE devices in the scan, manye WiFi devices, ...). - these places contain many surrounding IoT devices, like smartwatches, several nearby (< 50m) WiFi company routers - in normal places, I also have about 20 IoT devices, and some WiFi devices nearby, but maybe not that many as in above. What happens in those critical places is - The app works fine in foreground (FG), and crash directly when entering (BG) - No notification is sended before, means OnDisconnect is not normally fired - The app cannot really be logged, as it can be in normal places When I make experiments with different IoT, one 2sec, one 12sec., both are two different devices, so maybe also they have other different settings. The interesting I can see in the critical places: - the 2sec. device work in BG, no crash - the 12sec. device shows all negative behaviour from above This leads me to the question: Does the iOS Phones switch to different power-mode, or energy-saving mode, when the data rate is lower (e.g. < 10sec.) ? This would be my only explanation for the odd behaviour, that a fast sending device keeps iOS more active (maybe within the 10 sec. range), so the Phone has better capabilities to keep the connection. Is there any paper or site from Apple that would explain such behaviour ? I have searched the web deeply, but I have not found any matching info to my assumption, maybe there is some help out there ? This is interesting reading https://github.com/opentrace-community/opentrace-ios/issues/4 Also regarding background state restoration. I have not implemented that, but of course that may help, but its not supported in FMX. I've put this questions also as double-post into the German DP.- 6 replies
-
- ios
- bluetooth le
-
(and 3 more)
Tagged with:
-
ANN HTML Library 4.1 released
Rollo62 replied to Alexander Sviridenkov's topic in Delphi Third-Party
aaaand, what is the state of CSS Grid, would be also nice to have (didn't checked the current version, but I doublt it in right now). -
Yóu can draw like this. But the Canvas is a raster-based area, which doesn't contain graphical objects. So the only way would be to re-paint the objects, as you like. Usually this is done via FrameBuffer bitmaps, where you can do the clearing and drawing, and then paint the whole frame buffer to the canvas each frame (or when changed).
-
Using iOS LocalNotification with EKAlarm, EKEvent, EKEventStore as "short time, timer alarm"
Rollo62 posted a topic in Cross-platform
Hi there, I'm looking for ways to create a simple short-time timer under iOS. via LocalNotifications: One possibility is to use LocalNotifications, but its not much customizeable, nor to make it prominent. Also it seems not to be too reliable via PushKit: that looks more interesting, but I'm afraid that all notifications (even the 15 sec. timer) has to be launched via Apples APNs server. via Calendar system: The Apple doc say that this is not the right way anyway, but to use the EventKit Calendar and EKEventStore. https://developer.apple.com/documentation/eventkit To access the EKEventKit would mean that the app needs calendar permissions Which is quite heavy requirements for a simple timer notification, of <= 2h. But at least with that I could possibly change the alarm sound. The alarm would then be handled from the central calendar app of the phone, I think that this also will open my app via LocalNotification, under the right condition, when user presses the open button. Moreover, I'm not sure if this adds an visible event in the calendar, what I don't want. But I think there should be ways to hide/delete an invisible event, but Apple docs, see note below, restricts that. There are some old calendar examples already in the D.P.F. component suite, the first 3rd party componentes of FMX, as far as I know. I think they are a little outdated by permissions now, but maybe basically still OK. The URL is deprecated, it shall use EMailAddress instead. Which also sets Sound to nil, and doesn't seem to be able to open an related app. Via EventKit this is maybe still possible, maybe with the EventStoreChanged, with a lot of overhead (see note below). Is there any lighter middle way: Two notes from Apple docs: My question is if there is maybe a middle way, or an extension to the LocalNotification, to allow a simple alarm timer running without too much permission requests or overhead ?- 4 replies
-
- ios
- notification
-
(and 1 more)
Tagged with:
-
Using iOS LocalNotification with EKAlarm, EKEvent, EKEventStore as "short time, timer alarm"
Rollo62 replied to Rollo62's topic in Cross-platform
I found some API to customize UserNotifications UI, not looked too deep into it, but maybe that could do what I want. At least the UI customization part.- 4 replies
-
- ios
- notification
-
(and 1 more)
Tagged with:
-
Maybe you'looking for something like AVAudioEngine, as the blog said, this is much more tricky API, I wouldn't count that FMX can do that out-of-the-box. https://developer.apple.com/documentation/avfoundation/avaudioengine If not in the FMX library, then have a look at FmxExpress headers.
-
Don't think to difficult, its all in FMX. Uses , FMX.Media var FMicrophone : TAudioCaptureDevice; // get the microphone device FMicrophone := TCaptureDeviceManager.Current.DefaultAudioCaptureDevice; FMicrophone.FileName := AFileName; // GetAudioFileName(AUDIO_FILENAME); try if Assigned( FMicrophone ) and ( FMicrophone.State = TCaptureDeviceState.Stopped ) then begin FMicrophone.StartCapture; end; except on E : Exception do begin LTxt := E.Message; end; end; And you have to provide the NSMicrophoneUsageDescription in the version info.
-
Using iOS LocalNotification with EKAlarm, EKEvent, EKEventStore as "short time, timer alarm"
Rollo62 replied to Rollo62's topic in Cross-platform
@Dave Nottage Yes "short time" means about 30sek ... 2h max., typically around a few minutes), while it should do the following 1. at least show a notification alert (this works also in normal FMX)- 2. it should exchange the default "bling" sound with another short ringtone (Edit: Finally I found my issue with SoundName, it shall not include the full absolute path, only the filename, see references below) 3. maybe recurring alarms, if the user doesn't react at first note (this should work with normal FMX to) 4. recurring alarms with a specific delay (this should work with normal FMX too, it seems only a range can be set (sec,min,h,...), not e.g. 20 sec. ?) 5. better to have a "customized" looking notification, which looks like a custom popup 6. while this notation popup stays a little longer visible than normal notification 7. best of all if it would wake and notify the app in the background, also before the user presses the button (I think this is probably not possible under iOS) 8. the notified app could possibly start a text-to-speech voice in the background, before the user clicked, explaining additional info to the user I think not all from my wishlist is possible, but I try to get as far as I could. I have checked also with your KastriFree implementation, with what I did the following: create a .caf file from .mp3 via "afconvert", doing the following steps: copy Snd_Bell_001.mp3 to ~/Downloads cd ~/Downloads cd /Users/username/Downloads afconvert -f caff -d LEI16 '~/Downloads/Snd_Bell_001.mp3' '~/Downloads/Snd_Bell_001.caf' add the .caf file to the ressources, to put them in iOS on iOS I create sub-folder /Library/Sounds and copy the .caf file to there, as described here (maybe I may skip the file copy to /Sounds, and use the file directly from the bundle, but I can check the right paths later) The sound file works in forground, what I could test when playing it with mediaplayer When creating a scheduled notification, I have to use the SoundName as filename (e.g. "tone.caf") only, it shall not include the full path. Edit: Only then iOS is searching in all the places above, for the SoundName. So I can confirm that your UserNotifications in KastriFree implementation work well so far. I think an app can get until step 2./3. so far, but all above that will be not possible (at least I can see no way to do it). Maybe there are other hidden APIs, or new idea, in iOS that could do it, but I cannot find them.- 4 replies
-
- ios
- notification
-
(and 1 more)
Tagged with:
-
Hi there, I have seen already a few blogs talking about the new feature internals of the coming Rx10.4 release: https://www.delphiworlds.com/2020/05/its-time-to-get-excited/ https://blog.marcocantu.com/blog/2020-may-per-control-styling.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+marcocantublog+(marcocantu.blog) https://www.uweraabe.de/Blog/2020/05/15/delphi-10-4-leverages-vcl-styles/ https://dalijap.blogspot.com/2020/05/delphi-nullable-with-custom-managed.html https://community.idera.com/developer-tools/b/blog/posts/new-vcl-tedgebrowser-component-coming-rad-studio-10-4 https://community.idera.com/developer-tools/b/blog/posts/adopting-the-openjdk-for-delphi-android-development I hope this is ending the long, long favorized age of "SORRY, I can't say anything, because of RadStudio Beta NDA will kill me and eat my soul". Hurray: That is a very good step in the right direction, open information instead of information hiding I'm with it, and this gives all customers an early insight in the new features they might have been waiting for, in a more technical perspective rather marketing. We trust our MVP's to give good advices, that also lead to make decisions about prolonging our subscriptions (so there is a little marketing inside anyway, thats fine).