Zitat von
jokeBB:
Zu dem doppelten TEdit und dem Panel als Owner: zunächst hatte ich mein Objekt nur von TObject abgeleitet.
Eine Komponente sollte natürlich von TComponent abgeleitet sein.
Leite deinen TInputBlock von TPanel ab und positioniere seine Objekte (Edit, Label und Co.) in diesem.
(vielleicht noch den Rahmen des Panels im Constructor verstecken)
Dann verpaß deinem TInputBlock ein neues öffentliches Property OnChange und eine interne Methode Change.
Das Edit wird dann im Constructor erstellt und Owner, sowie Parent auf Self gesetzt.
(freigeben mußt du das Edit nicht, denn darum kümmert sich ja der Owner, also die Inputbox selber, wenn diese freigegeben wird)
Change wird dann den eigenen Edits (also denen innerhalb der InputBox) als Edit.OnChange zugewiesen.
In TInputBlock.Change kommt dannnoch ein
if Assigned(FOnChange) then FOnChange(Self);
Wird nun eines der Edits verändert, dann kann die Komponente (TInputBlock) dort darauf reagieren und falls der TInputBlock ein OnChange von außerhalb zugewiesen wurde, dann wird auch dieses aufgerufen.