wie ich bereits schrieb: Du bräuchtest nur Change überschreiben.
Ein abstrakter Bleistift würde so aussehen:
Delphi-Quellcode:
uses
StdCtrls;
type
TCelsiusEdit = class(TEdit)
protected
procedure Change; override;
end;
implementation
uses
StrUtils,
SysUtils;
{ TCelsiusEdit }
procedure TCelsiusEdit.Change;
var
TrimmedText :string;
Dummy :double;
IsNumeric, EndsWithCelcius :Boolean;
begin
TrimmedText := Trim(Text);
IsNumeric := TryStrToFloat(TrimmedText,Dummy);
EndsWithCelcius := (RightStr(TrimmedText, 2) = '°C');
if IsNumeric and not EndsWithCelcius then
inherited Text := TrimmedText + ' °C'
else
inherited;
end;
Der Code ist /nicht/ gedacht um direkt übernommen zu werden! Nur um dir das Prinzip zu zeigen.