Ich gehe mal davon aus, dass Du das zur Laufzeit machen willst.
Ja das geht:
Delphi-Quellcode:
// ungefähr so:
var
NewButton: TButton;
...
NewButton := TButton.Create(Self);
NewButton.Parent := Self;
NewButton. Top := XYZ;
NewButton.OnClick := aOnClickMethode;
Um sinnvoll mit solchen dynamisch erzeugten Controls umzugehen müsste man sie aber ggf. in einer Liste verwalten um sie später wieder ansprechen zu können. Sonst hast Du keine Variable mehr, die den Button repräsentiert und kannst z.B. deren Position nicht ändern.
Schreib am besten mal, was Du vor hast, vielleicht gibt es noch andere Ansätze (eben wie vom schnellen Deddy die Visible-Lösung
)