unit uFrmGotoLine; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, SynEditTypes; type TfrmGotoLine = class(TForm) edtCharNumber: TEdit; edtLineNumber: TEdit; Button1: TButton; btnGoto: TButton; lblLineNumber: TLabel; lblCharNumber: TLabel; procedure FormShow(Sender: TObject); private function GetCaret: TBufferCoord; procedure SetCaret(const Value: TBufferCoord); procedure SetChar(const Value: Integer); procedure SetLine(const Value: Integer); function GetChar: Integer; function GetLine: Integer; { Private declarations } public { Public declarations } property Char : Integer read GetChar write SetChar; property Line : Integer read GetLine write setLine; property CaretXY:TBufferCoord read GetCaret write SetCaret; end; var frmGotoLine: TfrmGotoLine; implementation {$R *.dfm} { TfrmGotoLine } function TfrmGotoLine.GetCaret: TBufferCoord; begin Result.Char := StrToInt(edtCharNumber.Text); Result.Line := StrToInt(edtLineNumber.Text); end; function TfrmGotoLine.GetChar: Integer; begin Result := StrToInt(edtCharNumber.Text) end; function TfrmGotoLine.GetLine: Integer; begin Result := StrToInt(edtLineNumber.Text) end; procedure TfrmGotoLine.SetCaret(const Value: TBufferCoord); begin edtCharNumber.Text := IntToStr(Value.Char); edtLineNumber.Text := IntToStr(Value.Line); end; procedure TfrmGotoLine.SetChar(const Value: Integer); begin edtCharNumber.Text := IntToStr(Value); end; procedure TfrmGotoLine.SetLine(const Value: Integer); begin edtLineNumber.Text := IntToStr(Value); end; procedure TfrmGotoLine.FormShow(Sender: TObject); begin edtLineNumber.SetFocus; end; end.