Feedback on the "Visual Responsive Design for Delphi" beta version

My first test with a VCL application...

It's just a button and an edit field on the form, with no code.

Tested with:

  • Delphi 11.2
  • Only one monitor connected
  • resolution 4k, 200%

.
In the development environment

State 1:
State_1

State 2:
State_2

.
The result is not yet as it should be:

State 1:

State 2:
State_2_run

Here still as video:
first_test_with_vcl_app.zip (135.5 KB)

.
Notes:

  • With an FMX application, which also contains only one button and one edit field, the result looks correct (same test conditions)
  • It would be good if the status name can be set manually. State 1, State 2 is not self-speaking and since there is no confirmation prompt, the layout is overwritten very quickly.

Additional notes:
When trying to use an HD monitor with 100% scaling, the arrangement of the VCL components works. If the scaling is set to 150%, the arrangement of the components does not work correctly.

With FMX it worked again correctly.

Thank you very much for the feedback! The first version of the BETA unfortunately does not yet take high DPI into account. This will be worked on next week and your test application will help with that. We'll make sure to update the BETA when we have high DPI working! Thanks

This can be done by editing the Name property in the States collection editor

This can be done by editing the Name property in the States collection editor

Before overwriting an existing state it would be useful to introduce a security query ("do you really want to overwrite")

The first version of the BETA unfortunately does not yet take high DPI into account. 

It affects not only High DPI, but the scaling if it differs from 100%
(In a later test I tested with a HD monitor with a scaling of 150% - see post #2).

1 Like

Thanks, I will look into this!

Hi,

We have applied improvements and will roll out a new beta later this week

There is a new BETA update available: TMS Software | Blog

Este error sale cuando se llama el método TMSFNCResponsiveManager2.LoadSettingsFromStream(ms);

Project Project1.exe raised exception class TTMSFNCJSONReader.EInvalidStateException with message 'Invalid Json parser state. Expected state: 1'.

procedure TForm1.FormCreate(Sender: TObject);
VAR
TMSFNCResponsiveManager2: TTMSFNCResponsiveManager;
ms: TMemoryStream;
begin
ms := TMemoryStream.Create;
try
ms.LoadFromFile('tms.rsettings');
TMSFNCResponsiveManager2:= TTMSFNCResponsiveManager.Create(nil);
TMSFNCResponsiveManager2.LoadSettingsFromStream(ms);
TMSFNCResponsiveManager2.LoadState;
finally
ms.Free;
end;
end;

Hi,

Please add the unit FMX.TMSFNCTypes.pas

and use the following code instead:

TMSFNCResponsiveManager2.States.LoadFromJSONStream(ms);

No produce el error. pero no se muestra los diferentes estados que me falta agregar es aplicación vcl

implementation
uses FMX.TMSFNCTypes;
{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.FormCreate(Sender: TObject);
VAR
TMSFNCResponsiveManager2: TTMSFNCResponsiveManager;
ms: TMemoryStream;
begin
ms := TMemoryStream.Create;
try
ms.LoadFromFile('tms.rsettings');
TMSFNCResponsiveManager2:= TTMSFNCResponsiveManager.Create(self);
TMSFNCResponsiveManager2.States.LoadFromJSONStream(ms);
TMSFNCResponsiveManager2.LoadState;
finally
ms.Free;
end;
end;

En tiempo de diseño el load settings no esta cargando bien los estados y uso save settings para salvar el archivo tms.rsettings. para usarlo en tiempo de ejecución al caer el formulario.

Ya esta funcionando con vcl.TMSFNCTypes
Favor de revisar Load settings en tiempo de diseño.

Unfortunately, it's unclear exactly what you mean. Spanish is unfortunately not our native language. Is it possible to bundle all feedback in English with step-by-step instructions?

I have not been able to detect any errors with different scaling at the moment.

However, I have noticed one small thing:

Create a new project
Add edit field, button and the component "TMSFNCResponsiveManager
create first state
resize the window and rearrange the components
save the state and then start the program
Result:
The component does't work, the current display remains.

For it to work, I need to change the state after saving the new state (state 2 -> state 1) and only then the program will work properly. This applies to VCL and FMX.

Thanks Roland! I'll make sure to check this asap.

Hi,

I've tried to reproduce this here multiple times but couldn't reproduce it. Do you mean there is only one state?