Aunque sigo estando de acuerdo con lo que dije en el hilo que menciona
dca, aquí va una manera de presentar el texto de un Edit con la fuente que tenga asignada, es decir, tal como se ve cuando está habilitado:
Código:
interface
type
// Esta declaración debe ir antes de el formulario
TEdit = class(StdCtrls.TEdit)
private
procedure WMPaint(var Msg: TWMPaint); message WM_PAINT;
end;
TForm1 = class(TForm)
end;
implementation
procedure TEdit.WMPaint(var Msg: TWMPaint);
var
ps: PaintStruct;
dc: hdc;
obj: HGdiObj;
begin
if Enabled then
inherited
else
begin
dc := BeginPaint(Handle, ps);
obj := SelectObject(dc, Font.Handle);
SetTextColor(dc, Font.Color);
TextOut(dc, 1, 0, PChar(Text), Length(Text));
SelectObject(dc, obj);
EndPaint(Handle, ps);
Msg.Result := 0;
end;
end;
Esto no pretende ser una clase de GDI y de hecho muestra mi escazo conocimiento en el asunto así que no respondo por su funcionamiento, pero acabo de probarlo y funciona.
// Saludos