-1

As the question says i want to start typing from the center intead of starting from the left.

A short code value:

with WizardForm.UserInfoNameEdit do
  begin
    Left := ScaleX(104);
    Top := ScaleY(182);
    Width := ScaleX(233);
    Height := ScaleY(31);
    Font.Height := -19;
    MaxLength := 30;
    ParentFont := False;
  end;

here some images:

Exemples

Exemples

Joshua
  • 277
  • 1
  • 9

1 Answers1

0

According to your third picture you may use a custom form and position your controls in the center of your form.

function CreateMyCustomUserDialog(): Boolean; 
var
   Form: TSetupForm;
   OKButton, CancelButton: TNewButton;
   Label1: TLabel;
   Edit1: TEdit;
begin
  Form := CreateCustomForm();
  try
    Form.ClientWidth := ScaleX(256);
    Form.ClientHeight := ScaleY(256);
    Form.Caption := 'User Information';
    Form.CenterInsideControl(WizardForm, true);

    OKButton := TNewButton.Create(Form);
    OKButton.Parent := Form;
    OKButton.Width := ScaleX(75);
    OKButton.Height := ScaleY(23);
    OKButton.Left := Form.ClientWidth - ScaleX(75 + 6 + 75 + 10);
    OKButton.Top := Form.ClientHeight - ScaleY(23 + 10);
    OKButton.Caption := 'OK';
    OKButton.ModalResult := mrOk;

    Label1 := TLabel.Create(Form);
    Label1.Parent := Form;
    Label1.Alignment := taCenter;
    Label1.Caption := 'Username:';
    Label1.Width := Form.ClientWidth;
    Label1.Height := ScaleY(23);    
    Label1.Top := 30;    

    Edit1 := TEdit.Create(Form);
    Edit1.Parent := Form;
    Edit1.Top := 50;
    Edit1.Width := 100;
    Edit1.Left := (Form.ClientWidth -  Edit1.Width) / 2;
    Edit1.Text := 'Admin';           

    CancelButton := TNewButton.Create(Form);
    CancelButton.Parent := Form;
    CancelButton.Width := ScaleX(75);
    CancelButton.Height := ScaleY(23);
    CancelButton.Left := Form.ClientWidth - ScaleX(75 + 10);
    CancelButton.Top := Form.ClientHeight - ScaleY(23 + 10);
    CancelButton.Caption := 'Cancel';
    CancelButton.ModalResult := mrCancel;
    CancelButton.Cancel := True;

    Form.ActiveControl := OKButton;

    if Form.ShowModal() = mrOk then
      MsgBox('You clicked OK.', mbInformation, MB_OK);
  finally
    Form.Free();
  end;
end;
  • Your code isn't complete. However I see you are using WizardForm.UserInfoPage; as parent form. So why don't you try something like that on controls you want to center. `Left := (WizardForm.UserInfoPage.ClientWidth - Width) / 2;` – QuicheLorraine Aug 31 '17 at 07:00