Hi Eric,
um schon zur Entwicklungszeit z.B. ein Edit auf dem Panel zu sehen, musst du im Constructor deiner Komponente dieses Edit erzeugen.
constructor TMyComponent.Create(AOwner : TComponent);
begin
inherited;
with TEdit.Create(Self) do
begin
Parent := Self;
Left := 10;
Top := 10;
end;
end;
Solltest du auf den Inhalt des Edits zugreifen müssen, (was ziemlich sicher ist), erstelle entweder ein entsprechende Variable im public-Teil (MyEdit : TEdit) deiner Komponente oder erzeug eine Property (z.B. EditText) über die du den Inhalt des Edits zur Entwicklungszeit im Objektinspektor ändern kannst.
Mit anderen Worten im published-Teil eine property deklarieren
property EditText : String read GetEditText write SetEditText
Im private-Teil deklarierst du die beiden Methoden und die Variable für das Edit
FMyEdit : TEdit;
function GetEditText : String;
procedure SetEditText(const Value : String);
die Implementation sieht dann so aus
constructor TMyComponent.Create(AOwner : TComponent);
begin
inherited;
FMyEdit := TEdit.Create(Self);
FMyEdit.Parent := Self;
FMyEdit.Left := 10;
FMyEdit.Top := 10;
end;
function TMyComponent.GetEditText : String;
begin
try
Result := FMyEdit.Text;
except
// Hier sollte eine entsprechende Fehlerbehandlung sein.
end;
end;
function TMyComponent.SetEditText(const Value : String);
begin
try
FMyText.Text := Value;
except
// Hier sollte eine entsprechende Fehlerbehandlung sein.
end;
end;
Ich hoffe dass hilft dir weiter
Gruß
Mike
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]