fix(android): create the top-aligned controls in reverse so they appear in order

FMX stacks Align=Top controls in reverse creation order, so the URL field ended up under the buttons.
This commit is contained in:
r-zakarya
2026-08-14 23:41:41 +01:00
parent 8796bb341d
commit d9cadf2cac
+30 -25
View File
@@ -53,24 +53,21 @@ begin
inherited;
Caption := 'PM — crypto self-test';
// Champs de configuration. Rien n'est persiste : c'est un banc d'essai, et
// le mot de passe de sync ouvre le coffre entier — il n'a pas a trainer sur
// le disque tant que le stockage Keystore n'est pas ecrit.
FUrl := TEdit.Create(Self);
FUrl.Parent := Self; FUrl.Align := TAlignLayout.Top;
FUrl.Margins.Rect := RectF(8, 8, 8, 0);
FUrl.TextPrompt := 'http://127.0.0.1:8080/server-php/sync.php';
FToken := TEdit.Create(Self);
FToken.Parent := Self; FToken.Align := TAlignLayout.Top;
FToken.Margins.Rect := RectF(8, 4, 8, 0);
FToken.TextPrompt := 'jeton Bearer';
FPwd := TEdit.Create(Self);
FPwd.Parent := Self; FPwd.Align := TAlignLayout.Top;
FPwd.Margins.Rect := RectF(8, 4, 8, 0);
FPwd.TextPrompt := 'mot de passe de sync';
FPwd.Password := True;
// ORDRE DE CREATION INVERSE : en FMX, des controles alignes en haut
// s'empilent a rebours de leur creation — le dernier cree se retrouve tout
// en haut. On cree donc du bas vers le haut pour obtenir URL, jeton, mot de
// passe, puis les deux boutons.
//
// Rien n'est persiste : c'est un banc d'essai, et le mot de passe de sync
// ouvre le coffre entier — il n'a pas a trainer sur le disque tant que le
// stockage Keystore n'est pas ecrit.
FBtn := TButton.Create(Self);
FBtn.Parent := Self;
FBtn.Align := TAlignLayout.Top;
FBtn.Margins.Rect := RectF(8, 4, 8, 8);
FBtn.Height := 48;
FBtn.Text := 'Test crypto (vecteur)';
FBtn.OnClick := RunSelfTest;
FBtnFetch := TButton.Create(Self);
FBtnFetch.Parent := Self; FBtnFetch.Align := TAlignLayout.Top;
@@ -79,13 +76,21 @@ begin
FBtnFetch.Text := 'Telecharger et dechiffrer';
FBtnFetch.OnClick := RunFetch;
FBtn := TButton.Create(Self);
FBtn.Parent := Self;
FBtn.Align := TAlignLayout.Top;
FBtn.Margins.Rect := RectF(8, 4, 8, 8);
FBtn.Height := 48;
FBtn.Text := 'Test crypto (vecteur)';
FBtn.OnClick := RunSelfTest;
FPwd := TEdit.Create(Self);
FPwd.Parent := Self; FPwd.Align := TAlignLayout.Top;
FPwd.Margins.Rect := RectF(8, 4, 8, 0);
FPwd.TextPrompt := 'mot de passe de sync';
FPwd.Password := True;
FToken := TEdit.Create(Self);
FToken.Parent := Self; FToken.Align := TAlignLayout.Top;
FToken.Margins.Rect := RectF(8, 4, 8, 0);
FToken.TextPrompt := 'jeton Bearer';
FUrl := TEdit.Create(Self);
FUrl.Parent := Self; FUrl.Align := TAlignLayout.Top;
FUrl.Margins.Rect := RectF(8, 8, 8, 0);
FUrl.TextPrompt := 'http://127.0.0.1:8080/server-php/sync.php';
FLog := TMemo.Create(Self);
FLog.Parent := Self;