I have two forms,one is main and other is inherited form main.Lets say I have a function on the main form:
procedure FormMain.CreateButton;
begin
with TsButton.Create(Self) do begin
Width := 31;
Height := 31;
Left := 31;
Top := 31;
Visible := true;
Parent := Self;
end;
end;
Usually everything on the main form should be on the inherited form,but this is what I do:
I call CreateButton from mainForm ,but the button is only on the main form.
Is it possible to inherit that button too?
There’s a difference between design-time and runtime. The form designer creates a definition for your form, which it instantiates at runtime. If you inherit one form from another, then it takes the base template and adds to it. But form-designer forms are only templates, like class definitions.
Now, at runtime, you instantiate a base form and a derived form, and it creates them from the templates stored in the resource section of your app. If you add something to the instance of the base form, you’re modifying an individual instance, not the definition, so of course it’s not going to show up on another instance. If you want to add a button dynamically to a form, you have to create it on that instance (in this case, the derived form) individually.