Einzelnen Beitrag anzeigen

josefkoller

Registriert seit: 22. Okt 2012
49 Beiträge
 
#5

AW: Cursor hinkt nach

  Alt 1. Nov 2012, 22:06
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
  Mit Zitat antworten Zitat