Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Jak zjistit v RichEditu pozici textoveho kurzoru v pixelech (delphi)

Zdravím všechny,
řeším problém s určením pozice textového kurzoru v RichEditu na Delphi(pozici potřebuji v pixelech).
Znám vlastnost Richeditu CaretPos, ale ta vrací pouze na kterém řádku a znaku se kurzor nachází.
Já ale potřebuji pozici kurzoru v rámci okna RichEditu v pixelech - tzn. např: x = 200px, y = 150px.

Předem děkuji za jakoukoliv pomoc vedoucí k cíli.

Předmět Autor Datum
Vyzkoušej: procedure TForm1.sbut_FindPointClick(Sender: TObject); var ClarPos: TPoint; begin {I use…
host 13.03.2008 12:38
host
díky moc, už mi to šlape :-) poslední
mrazek 13.03.2008 13:24
mrazek

Vyzkoušej:

procedure TForm1.sbut_FindPointClick(Sender: TObject);
var
ClarPos: TPoint;
begin
{I use RichEdit1.SelStart for the charater position, but you can use any number to specify
the charater (position) in the RichEdit}
SendMessage(RichEdit1.Handle, EM_POSFROMCHAR, Integer(@ClarPos),RichEdit1.SelStart);
{check to see if the charater is ot of view}
if (ClarPos.x < 0) or (ClarPos.y < 0) or (ClarPos.x > RichEdit1.ClientRect.Right) or
(ClarPos.y > RichEdit1.ClientRect.Bottom) then Exit;
{change the Point Mapping to the Main Form}
MapWindowPoints(RichEdit1.Handle, Handle, ClarPos, 1);
{set your control to the charater Position}
Panel1.Top := ClarPos.y;
Panel1.Left := ClarPos.x;
end;

Zpět do poradny Odpovědět na původní otázku Nahoru