CarretPos i CursorPOs

YaQb
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 95
0

Jak ustawić "carret" w richedit na miejscu gdzie znajduje się kursor myszy przy ruchu myszką?

RA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 72
0

Pobierz pozycję x i y kursora myszy i w richedit kursor ustaw na ich postawie.

Marmar
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 317
0

Robittsoft a jak dokladnie? jedno jest w pixlach a drugie w "znakach" to jest wierszach i znakach od lewej.

YaQb
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 95
0

Dokładnie. Dlatego mam wałaśnie problem. Jak to zrobić??

cimak
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1668
0

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] .

Marmar
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 317
0

Cimak a odległości między wierszami też komuś zostawiasz? ;p

Marmar
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 317
0

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;

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.