Firemonkey with Memo Classes and Landscape orientation for Android - delphi

There are many demonstration units provided by both Embarcadero and other third parties for auto-scrolling on showing the Android virtual keyboard.
However non work correctly when working in landscape mode. Even if you manage to get the top of the memo visible, changing line will render the control out of sight, or you try and stay with the caret position and find the offset is wrong, manually correcting this causes issues with different resolutions.
Is there any article / component / code example, that anyone has seen, which solves this problem. I would opine that something so simple should be already resolved in the examples with RAD Studio, but alas it is not.
I am using native controls but am more than happy to switch back to Firemonkey styled controls if required.
Thank you in advance.

Related

10.4 IDE Cuts Off Component Toolbar

I downloaded latest Delphi IDE (10.4) and installed it. I turned off the embedded designer and set the layout to Classic Undocked.
Now the toolbar, in fact everything in the top form, is cut off. Can't see the save icons, run button or anything else. Also can't expand the form to make it taller.
If I change to startup layout it will let me expand the form, but I prefer Classic Undocked. Has anyone else had this yet and, more importantly, does anyone know a workaround?
I stumbled on a workaround for this problem. Here are the steps that makes the entire tool panel visible for me in Classic Undocked mode for Delphi 10.4 Sydney (on Win 7):
Grab the right edge of the top form (Classic Toolbar) and resize it slightly (make sure it is in Resizeable mode, not Full Screen). Zap! now everything works. Not only that, it appears to remember the "lesson" permanently once this has been done once - it is a complete and permanent fix.
This bug should be trivial for Embarcadero to fix.

Disable the scroll temporarily ,of a TvertScrollBox component in Delphi?

I am making an application for IOS and Android devices in Delphi Rad Studio XE10.1 Berlin, and I have a problem.
In a form, I have a TvertScrollbox, and within it, there is many components to display, and one of them is a Tlistview.
The problem is, when I make a scroll in the Tlistview, because there is more data that shows, also makes a scroll in the TvertScrollbox, which in the end is impossible to visualize the data correctly.
Is there any way to disable the scroll of the TvertScrollbox temporarily, and then enable again?
I hope I have explained well. My English is very bad, Thank you.
Yes you can disable the TvertScrollbox by simply putting AniCalculations.TouchTracking := [] and then put it back to AniCalculations.TouchTracking := [ttVertical]
I made a TvertscollBox that implement all of this kind of behavior (deactivate the scroll when child object are scrolling), and that also correct some other bug ... the source code is too big to copy past here, so you can see it directly here :
(svn) https://svn.code.sf.net/p/alcinoe/code/
look the unit ALFmxLayouts
if you want to see a demo of the scroll deactivation look the project /demos/alfmxControls/ or load directly
https://sourceforge.net/p/alcinoe/code/HEAD/tree/demos/ALFmxControls/Android/Release/ALFmxControls/bin/ALFmxControls.apk?format=raw or the shorten variant if you need to write it manually in android: http:// tinyurl .com/zsamrbn (url of the compiled apk to install on android)
in the demo you can see a tabcontrol, when you scroll on it, the scroll of the vertscrollbox is deactivated

Firemonkey - updating visual components

We are working with Firemonkey since version 1, and still find difficulties updating components that are currently visible on the screen. There are many 'ways' to request a repaint in Firemonkey, perhaps too many:
Applying a style (ApplyStyle event) - mostly when it becomes visible on screen
Requesting ".repaint" - some components have this
Requesting ".realign" - sometime works, current versions of FMX seem to drop / hide it
Requesting ".invalidate" - some components, mostly forms, have this
Requesting ".invalidateRect" - most components have this
Calling the ApplyStyle event manually - not guaranteed to work and design-wise is incorrect...
Given the lacking documentation for the platform, is there a "well defined" way to change the visual appearance (internal values of a style) when a component is already displayed? I.e. a listboxItem that is already present and visible on screen, a TGrid cell, and so on. Would appreciate your thoughts...
I don't think there's a single unified 'correct way' to refresh the visual of components in Firemonkey.
However, as a recommendation from personal experience, I'd take the .repaint route - this method is at the TControl level, and so it precedes primitives and styled controls (which are generally made up of primitives) and so applies to all visual controls. It also doesn't require parameters, so it's a good all-round solution.
I have noted that Firemonkey has always had an issue correctly repainting controls of it's own accord. Often I'm left with a 'shadow' of the previous visual of a control/primitive, and must call .repaint manually to update it. This got noticeably worse with FM2 and FM3 (presumably due to optimizations made for mobile platforms), and so doing a manual .repaint -- especially where effects such as TGlow and moving or rotating controls/primitives are concerned, has become a standard practice for me.

DotNetNuke Bug in IE10

So I am using DotNetNuke 7 and when I log onto my site to develop, I go into Edit Mode and start to edit a module.
Once the edit screen shows up (the little text area that looks like a mini version of MS Word) I can type and everything is fine.
However when that little screen loses focus from the mouse the editing area "greys-out" but I can still type in it.
I want to know how to fix this so that the editing screen does NOT do this as it is very confusing to potential customers.
Does anyone know what to do to fix this issue?
(sorry if this is not descriptive enough, if anyone has problems understanding I will try to add more explicit wording)
There have been reports of other oddities in IE10.
One thing you could try is adding a meta tag to force IE into IE9 mode.

Delphi TListBox contents overflow when selecting (Win7, 32bit, themed)

I've a TListBox on a Windows form with 966 elements in it. When I click a button on my form, a subset of these strings are selected (roughly 200 of them).
If I now unfocus my application by clicking somewhere on the task bar, the entries from my TListBox bleed upward, so as they are visible above the boundaries of the TListBox. They are thankfully bleeding out behind the TGroupBox component which is directly above them - however this still looks extrememly unpolished.
I'm able to reproduce this only on one Win 7 x64 machine using the Aero theme (I've another Win 7 x64 laptop which doesn't exhibit the same problem with the same theme setting).
I've tried issuing a PostMessage( Self.Handle, WM_PAINT, 0, 0) directly after changing the select status, preceded by a ListBox.Refresh. This doesn't help.
Any help would be much appreciated. Please advise if you need more details.
Cheers, Duncan
Are you using the XPManifest unit, or have you enabled themes for your app? If so, try not using it to see what happens. It can be very bad if you dont have a good video card.
My 2 cents? Avoid using themes at all. It simple does not work very well.

Resources