ďťż

Ładny brzuch

Co zrobić, aby wyświetlić tekst w którym wierszu i linijce się aktualnie znajduję w
komponencie SynEdit? Do Memo tworzyło się następującą procedurkę
do zdarzenia onkeyup:

procedure Tjakaś_forma.Memo1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
var
T : TPoint;
begin
T:=Memo1.CaretPos;
Status.Panels[0].Text:=IntToStr(T.x)+':'+IntToStr(T.Y);
end;

W ten oto sposób na pasku stanu, gdy kursor znajdował się w pierwszej linii i wierszu,
widniał tekst: 0:0... Lecz mi chodzi o to, aby pojawił się txt: 1:1 :excl:



Nie mam synEdit ale spróbuj:

 Pos.Y := SendMessage(SynEdit1.Handle, EM_EXLINEFROMCHAR, 0,   RichEdit1.SelStart);  Pos.X := (SynEdit1.SelStart - SendMessage(SynEdit1.Handle,   EM_LINEINDEX, Pos.Y, 0));  Inc(Pos.X);  Inc(Pos.Y);  Label2.Caption:=(Format(  '%d', [Pos.Y]));    Label4.Caption:=(Format(  '%d', [Pos.X]));

Możesz dać to przykładowo do Timera na Interval 30 itd.
Użytkownik tulio edytował ten post 11 lipiec 2005, 09:35

W ten oto sposób na pasku stanu, gdy kursor znajdował się w pierwszej linii i wierszu,
widniał tekst: 0:0... Lecz mi chodzi o to, aby pojawił się txt: 1:1 :excl:

Dzięki, właściwie nie wiem czy zadziała, bo nie jestem teraz w domu gdzie mam zainstalowane Delphi, ale... powinno działać :blink: W każdym razie dzieki za odpowiedz B)



hm... klasa TSynEdit na takie własności jak .CaretX i .CaretY
 with SynEdit do     StatusBar.Panels[0].Text := Format('%d : %d', [CaretY, CaretX]);

Przynajmniej ja tak robiłem, :) nie ma sensu bawić sie z TPointami
Pozdr

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •