unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, ComCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    StatusBar1: TStatusBar;
    Timer1: TTimer;
    procedure Memo1Click(Sender: TObject);
    procedure Memo1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    procedure pozycja_kursora;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  with StatusBar1 do
   Panels[Panels.Count-1].Text:=TimeTostr(Time);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   with StatusBar1 do
   Panels[Panels.Count-1].Alignment:=taCenter;
end;

procedure TForm1.Memo1Click(Sender: TObject);
begin
  pozycja_kursora;
end;

procedure TForm1.Memo1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  pozycja_kursora;
end;

procedure TForm1.pozycja_kursora;
var kursor:TPoint;
begin
  kursor:=Memo1.CaretPos; //funkcja CaretPos zwraca współrzędne
                            //położenia kursora
  Inc(kursor.Y);
  Inc(kursor.X);
  with StatusBar1 do Panels[0].Text:='linia='+
  IntToStr(kursor.Y) + ',' + ' kol='+IntToStr(kursor.X);
end;

end.
