Full RightToLeft support means Mirroring controls so that they are drawn R2L, starting with the TForm and continuing through every visual control that has a direction.
In that direction, another required feature is a layout manager. Like putting all controls in a grid layout (similar to qt/java, but more complex layouts are also possible).
Then you could mirror the controls platform-independent.
You might think the current anchor system is more powerful, but it does not really work if you have many platforms. You cannot make any assumption. On some systems an edit might be bigger than a label, on some systems, the label is bigger than the edit, on some the form is too small, on others to big, on some the controls should be horizontally aligned, on some vertically...
There is no place you can reliable anchor to.
- In-block variable declarations. for var i := 1 to .. do, the current way of declaring variables is scaring everyone who used a c-like away
could you please elaborate on this?
Well, in Pascal every variable needs to be declared before the begin block.
var i: integer;
begin
for i := 1 to 10 do ...
end;
But in almost every other programming language, you declare the variable where you use it:
for (int i = 1; i <= 10; i++) ...
This prevents errors by using uninitialized variables, errors by using the wrong variable later (because it would be out of scope), and most important it is what people are used to nowadays, so they do not like to switch to a language not supporting it.
The syntax would be to allow var, wherever you assign to a variable, having the same effect as putting the var before the begin.
begin
for var i := 1 to 10 do ...
end;
And it would not be limited to for
begin
var s := '12345';
for var i := 1 to length(s) do begin
var c := s[i];
var c_with_another_type: string := s[i];
end;
end;