Jak ustawić "carret" w richedit na miejscu gdzie znajduje się kursor myszy przy ruchu myszką?
Pobierz pozycję x i y kursora myszy i w richedit kursor ustaw na ich postawie.
Robittsoft a jak dokladnie? jedno jest w pixlach a drugie w "znakach" to jest wierszach i znakach od lewej.
Dokładnie. Dlatego mam wałaśnie problem. Jak to zrobić??
pobierasz pozycje RichEdit wzgl. (0,0), pobierasz pozycje myszy.
Bawisz się stringami i Canvas.TextWidth, Canvas.TextHeight i przeliczasz...
Może być problem, gdy tekst się przesunie w RichEdit, ale to już zostawiam innym, mądrzejszym ode mnie [hurra] .
Cimak a odległości między wierszami też komuś zostawiasz? ;p
Juz wiem , a to dzięki kodowi który znalazł kalifat
http://4programmers.net/Forum/viewtopic.php?id=51864
procedure mousetoWZn(RE: TRichEdit; mouse: TPoint;var wiersz,lpznaku:integer);
var charindex:integer;
Begin
charindex := RE.Perform(Messages.EM_CHARFROMPOS, 0,
integer(@mouse));
wiersz:=-1;lpznaku:=-1;
if charindex >= 0 then
begin
wiersz := RE.Perform(EM_EXLINEFROMCHAR, 0, charindex);
lpznaku := charindex - RE.Perform( EM_LINEINDEX, wiersz, 0 );
end;
end;