Wenn dies Ihr erster Besuch hier ist,
lesen Sie bitte zuerst die Hilfe - Häufig gestellte Fragen
durch. Sie müssen sich vermutlich registrieren,
bevor Sie Beiträge verfassen können. Klicken Sie oben auf 'Registrieren', um den Registrierungsprozess zu
starten. Sie können auch jetzt schon Beiträge lesen. Suchen Sie sich einfach das Forum aus, das Sie am meisten
interessiert.
Hallo Karlsey,<br>na klar ist das Möglich. Füge einfach eine entspechende Property zu Deiner Komponente.<br>Beispiel. In einer von TTimer abgeleiteten Komponente möchten wir auf eine TListbox zugreifen.<br>
<pre><font size="1" face="Verdana">unit MyTimer;
procedure Register;
begin
RegisterComponents('MyComps', [TMyTimer]);
end;
{ TMyTimer }
procedure TMyTimer.Notification(AComponent: TComponent;
Operation: TOperation);
begin
inherited Notification(AComponent, Operation);
if (Operation = opRemove) and (FListbox<>Nil) and (AComponent = ListBox) then
ListBox := nil;
end;
procedure TMyTimer.SetListbox(const Value: TListbox);
begin
FListbox := Value;
end;
end.</font>
</pre>
<br>Dadurch, das Listbox im published Abschnitt steht, kannst Du die Listbox über den Objektinspektor zuweisen. Deshalb mußt Du die procedure Notification überschreiben. Über diese Procedure wird TMyTimer, innerhalb der IDE informiert, ob die zugewiesene Listbox gelöscht wurde. Wenn Du das nicht machst, erhälst Du richtig miese Fehlermeldungen. Wenn Du Objekte unterhalb von TComponent verwenden möchtest, gehst Du im Prinzip genauso vor. Nur das Du dann die properties im public Abschnitt deklarierst und die Zuweisung zur Laufzeit erfolgt. Für diese Objekte brauchst Du nicht die Notification Procedure.<br>:-) Jens Schuman
Comment