Bueno, gracias de nuevo a todos. El metodo paint del TEdit no se puede sobreescribir ya que no lo implementa el componente para ello, deberia heredar mi nuevo componente desde mas arriba TCustomEdit o aun mas, no lo he mirado.
Bueno el caso es que no queria complicarme mucho y tampoco soy partidario de ir implementando componentes a diestro y siniestro asi que al final he hecho lo siguiente por si alguien lo necesita. Simplemente cuando me place llamo a este procedimiento que lo unico que hace es repintar encima poniendome en rojo la letra numero "idx".
Código Delphi
[-]procedure TMyEdit.settonica( idx : integer);
var
fCanvas: Tcanvas;
i, p, t: integer;
st, st2: string;
left : integer;
c, c2: char;
begin
try
fcanvas := tcontrolcanvas.Create;
TcontrolCanvas(fcanvas).Control := Self;
fcanvas.Brush.Color := Brush.Color;
fcanvas.font := font;
st := Text;
st2 := uppercase(Text);
p := ((self.Width - fcanvas.TextWidth(st)) div 2)-2;
t := ((self.Height - fcanvas.TextHeight(st)) div 2)-3;
for i := 1 to length(st) do begin
c := st[i];
c2 := st2[i];
if i = idx then fcanvas.Font.Color := clred
else fcanvas.Font.Color := clblack;
fcanvas.TextOut(p, t, c);
P := P + fcanvas.TextWidth(c);
end;
finally
fcanvas.Free;
end;
end;