Autor Beitrag
icolo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: So 23.03.03 16:36 
Hallo allerseits.

Ich möchte in meiner von TEdit abgeleiteten Klasse eine Prozedur (genauergesagt SetColor), die wiederum in TFont (einer Unterklasse der Klasse TEdit) deklariert ist, überschreiben.
ausblenden Quelltext
1:
procedure SetColor(value: TColor); override;					

Der Compiler motzt, diese Prozedur sei in der Basis-Klasse nicht gefunden worden, was ich ja auch verstehen kann... ;)

Kann mir jemand auf die Sprünge helfen, wie man das machen müsste?

greets
icolo
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: So 23.03.03 17:48 
Da das Feld FFont bereits von TControl eingebunden wird, ist dies nur über Tricks möglich, die nicht zu empfehlen sind.

Du kannst aber das Ereignis CM_FONTCHANGED, das von der Font-Instanz der TControl bzw. TEdit Klasse ausgelöst wird, abfangen.

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
TMyEdit = class(TEdit)
protected
  procedure CMFontChanged(var Msg: TMessage); message CM_FONTCHANGED;
end;

procedure TMyEdit.CMFontChanged(var Msg: TMessage);
begin
  inherited;
  if Font.Color = clRed then ShowMessage('Rot wurde gewählt');
end;

_________________
Ist Zeit wirklich Geld?