Font property lässt sich nicht bearbeiten

Rund um die LCL und andere Komponenten

Font property lässt sich nicht bearbeiten

Beitragvon braunbär » 4. Sep 2018, 17:24 Font property lässt sich nicht bearbeiten

Hallo, ich habe eine eigene von TEdit abgeleitete Eingabe-Komponente, die unter anderem ihren eigenen Label verwaltet.
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;
 


Wenn ich nun im OI auf den Button zum Auswählen einer Font klicke, kommt die Fehlermeldung:

[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.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
braunbär
 
Beiträge: 236
Registriert: 8. Jun 2017, 17:21

Beitragvon braunbär » 4. Sep 2018, 17:41 Re: Font property lässt sich nicht bearbeiten

Ok, jetzt bin ich doch noch selbst draufgekommen - CaptionFont muss mit einem gültigen Font initialisiert sein, wenn da nil drinnen steht, streikt der OI.
Ist wohl ein kleiner Schönheitsfehler des OI, aber es gibt schlimmeres.

Bleibt die Frage nach Tipps, wie man lästigere Design-Time-Probleme am Besten debuggen kann.
braunbär
 
Beiträge: 236
Registriert: 8. Jun 2017, 17:21

• Themenende •

Zurück zu Komponenten und Packages



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

porpoises-institution
accuracy-worried