Jetzt wollte ich ihr eine im OI zu setzende Property Captionfont verpassen, mit der der Font des zur Edit-Komponente gehörenden Labels geändert werden kann.
Die entsprechende Deklaration schaut so aus:
Code: Alles auswählen
TfdEdit = class(TEdit)
private
FLabel: TLabel;
FCaptionFont: TFont;
....
procedure SetCaptionProperties;
procedure SetCaptionFont(value: TFont);
...
published
...
property CaptionFont: TFont read FCaptionFont write SetCaptionFont;
end;
und der Setter für die Font:
Code: Alles auswählen
procedure TfdEdit.SetCaptionProperties;
begin
...
if assigned(FCaptionFont) then FLabel.Font:=FCaptionfont;
...
end;
procedure TfdEdit.SetCaptionFont(value: TFont);
begin
if value = nil then exit; // habe ich probeweise hinzugefügt, hilft aber auch nichts
FCaptionFont := value;
SetCaptionProperties;
end;
[Window Title]
Fehler
[Content]
Cannot assign a Nil to a TFont.
[Ok]
Die Meldung kommt, obwohl ich vor der Zuweisung auf nil abfrage und bei nil keine Zuweisung mache, das ist also etwas, was der OI macht, bevor ich an die Daten komme. Im übrigen kommt die Meldung schon, bevor ich den Font-Auswahldialog präsentiert bekomme, der erscheint, wenn ich beispielsweise die property Font des TEdit ändern will.
Hat jemand einen Tipp für mich?
und nebenbei prinzipiell: Wie kann ich generell das Verhalten meiner Komponente halbwegs komfortabel debuggen, wenn schon im Object Inspector ein derartiger Fehler auftritt. Als Notlösung Debug Meldungen auf eine Datei schreiben erscheint mir schon sehr umständlich, aber mir fällt sonst nicht viel dazu ein.