Ich bastle gerade eine Testkomponente, die von TComponent abgeleitet wird. Im Objektinspektor soll der Anwender später ein bestimmtes Editfeld (z.B. zur Ausgabe von Infos) auswählen können. Damit es aber bei der Freigabe der zugewiesenen Komponente nicht zu Problemen kommt, möchte ich den Zeiger auf das Editfeld per NOTIFICATION auf NIL setzen. Leider bekomme ich jedes mal beim Compilieren einen Fehler... wisst ihr woran es liegt?
Delphi-Quellcode:
unit BeispielComp;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Stdctrls;
type
TBeispielComp =
class(TControl)
private
FEdit: TEdit;
protected
procedure Notification (AComponent: TComponent; Operation: TOperation);
override;
public
constructor Create (AOwner: TComponent);
override;
published
property Edit: TEdit
read FEdit
write FEdit;
end;
procedure Register;
implementation
constructor TBeispielComp.Create (AOwner: TComponent);
begin
inherited Create (AOwner);
FEdit:=nil;
end;
procedure Notification (AComponent: TComponent; Operation: TOperation);
begin
inherited Notification(AComponent, Operation);
{hier kommt der Fehler: "this form of method call only allowed in methods of derived types"}
if (Operation=opRemove)
and (AComponent=FEdit)
then FEdit:=nil;
end;
procedure Register;
begin
RegisterComponents('
Samples', [TBeispielComp]);
end;
end.