From d9cadf2cac6283609b0c1d6f2e1983c202ea6c8f Mon Sep 17 00:00:00 2001 From: r-zakarya <82443831+r-zakarya@users.noreply.github.com> Date: Fri, 14 Aug 2026 23:41:41 +0100 Subject: [PATCH] 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. --- mainApk.pas | 55 +++++++++++++++++++++++++++++------------------------ 1 file changed, 30 insertions(+), 25 deletions(-) diff --git a/mainApk.pas b/mainApk.pas index bc9af20..ab5e81a 100644 --- a/mainApk.pas +++ b/mainApk.pas @@ -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;