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; inherited;
Caption := 'PM — crypto self-test'; Caption := 'PM — crypto self-test';
// Champs de configuration. Rien n'est persiste : c'est un banc d'essai, et // ORDRE DE CREATION INVERSE : en FMX, des controles alignes en haut
// le mot de passe de sync ouvre le coffre entier — il n'a pas a trainer sur // s'empilent a rebours de leur creation — le dernier cree se retrouve tout
// le disque tant que le stockage Keystore n'est pas ecrit. // en haut. On cree donc du bas vers le haut pour obtenir URL, jeton, mot de
FUrl := TEdit.Create(Self); // passe, puis les deux boutons.
FUrl.Parent := Self; FUrl.Align := TAlignLayout.Top; //
FUrl.Margins.Rect := RectF(8, 8, 8, 0); // Rien n'est persiste : c'est un banc d'essai, et le mot de passe de sync
FUrl.TextPrompt := 'http://127.0.0.1:8080/server-php/sync.php'; // ouvre le coffre entier — il n'a pas a trainer sur le disque tant que le
// stockage Keystore n'est pas ecrit.
FToken := TEdit.Create(Self); FBtn := TButton.Create(Self);
FToken.Parent := Self; FToken.Align := TAlignLayout.Top; FBtn.Parent := Self;
FToken.Margins.Rect := RectF(8, 4, 8, 0); FBtn.Align := TAlignLayout.Top;
FToken.TextPrompt := 'jeton Bearer'; FBtn.Margins.Rect := RectF(8, 4, 8, 8);
FBtn.Height := 48;
FPwd := TEdit.Create(Self); FBtn.Text := 'Test crypto (vecteur)';
FPwd.Parent := Self; FPwd.Align := TAlignLayout.Top; FBtn.OnClick := RunSelfTest;
FPwd.Margins.Rect := RectF(8, 4, 8, 0);
FPwd.TextPrompt := 'mot de passe de sync';
FPwd.Password := True;
FBtnFetch := TButton.Create(Self); FBtnFetch := TButton.Create(Self);
FBtnFetch.Parent := Self; FBtnFetch.Align := TAlignLayout.Top; FBtnFetch.Parent := Self; FBtnFetch.Align := TAlignLayout.Top;
@@ -79,13 +76,21 @@ begin
FBtnFetch.Text := 'Telecharger et dechiffrer'; FBtnFetch.Text := 'Telecharger et dechiffrer';
FBtnFetch.OnClick := RunFetch; FBtnFetch.OnClick := RunFetch;
FBtn := TButton.Create(Self); FPwd := TEdit.Create(Self);
FBtn.Parent := Self; FPwd.Parent := Self; FPwd.Align := TAlignLayout.Top;
FBtn.Align := TAlignLayout.Top; FPwd.Margins.Rect := RectF(8, 4, 8, 0);
FBtn.Margins.Rect := RectF(8, 4, 8, 8); FPwd.TextPrompt := 'mot de passe de sync';
FBtn.Height := 48; FPwd.Password := True;
FBtn.Text := 'Test crypto (vecteur)';
FBtn.OnClick := RunSelfTest; 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 := TMemo.Create(Self);
FLog.Parent := Self; FLog.Parent := Self;