Jak ustawić "carret" w richedit na miejscu gdzie znajduje się kursor myszy przy ruchu myszką?
CarretPos i CursorPOs
- Rejestracja: dni
- Ostatnio: dni
- Postów: 72
Pobierz pozycję x i y kursora myszy i w richedit kursor ustaw na ich postawie.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 317
Robittsoft a jak dokladnie? jedno jest w pixlach a drugie w "znakach" to jest wierszach i znakach od lewej.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 95
Dokładnie. Dlatego mam wałaśnie problem. Jak to zrobić??
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1668
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] .
- Rejestracja: dni
- Ostatnio: dni
- Postów: 317
Cimak a odległości między wierszami też komuś zostawiasz? ;p
- Rejestracja: dni
- Ostatnio: dni
- Postów: 317
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;