Gleich nen Befehl zum "Neuzeichnen" hinterher schicken?
Ich erzeuge einen ControlCanvas und dies PaintWindow Procedure schreibt das Ganze dann auf den EditCanvas.
Delphi-Quellcode:
procedure TKEdit.PaintWindow(
DC: HDC);
begin
FCanvas.Lock;
try
FCanvas.Handle :=
DC;
try
TControlCanvas(FCanvas).UpdateTextFlags;
Paint;
updateWindowRgn;
finally
FCanvas.Handle := 0;
end;
finally
FCanvas.Unlock;
end;
end;
In einer Paint Prozedure wird ein Rahmen gemalen und eben der Text des Editfeldes um 2 Punkte nach rechts gesetzt.
Delphi-Quellcode:
procedure TKEdit.Paint;
begin
....
inflateRect(r, -2, 0);
DrawText{Ex}(Canvas.Handle, PChar(Text),-1, R, DT_LEFT or DT_NOPREFIX or
DT_WORDBREAK or DT_NOCLIP or DrawTextBiDiModeFlagsReadingOnly{, @params});
.....
end;
Es paßt sonst alles. Nur eben der Textcursor hinkt um besagte Stellen nach.
Ich wüßte jetzt auch nicht, wo ich da noch einen Befehl zum "Neuzeichnen", also RecreateWnd oder so nachschicken soll.
Josef